]> Git Repo - linux.git/commitdiff
Merge branch 'for-next' of git://github.com/rydberg/linux into next
authorDmitry Torokhov <[email protected]>
Fri, 28 Jun 2013 06:00:25 +0000 (23:00 -0700)
committerDmitry Torokhov <[email protected]>
Fri, 28 Jun 2013 06:00:25 +0000 (23:00 -0700)
Pull in changes from Henrik: "a trivial MT documentation fix".

1  2 
arch/arm/mach-mmp/aspenite.c
arch/arm/mach-mmp/teton_bga.c
drivers/input/keyboard/Kconfig
drivers/input/keyboard/Makefile
drivers/input/keyboard/omap4-keypad.c
drivers/input/misc/Kconfig
drivers/input/touchscreen/egalax_ts.c
drivers/tty/sysrq.c

index 1e233467fffa3b1f87411f8aa889bedc4386480e,5b660ec09ef52da82afe5b51176cfec4a4f8d4af..0c002099c3a39e60babe8fffff9634322c8015e4
@@@ -9,6 -9,7 +9,7 @@@
   *  publishhed by the Free Software Foundation.
   */
  #include <linux/gpio.h>
+ #include <linux/gpio-pxa.h>
  #include <linux/init.h>
  #include <linux/kernel.h>
  #include <linux/platform_device.h>
@@@ -110,6 -111,10 +111,10 @@@ static unsigned long common_pin_config[
        GPIO121_KP_MKIN4,
  };
  
+ static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+ };
  static struct smc91x_platdata smc91x_info = {
        .flags  = SMC91X_USE_16BIT | SMC91X_NOWAIT,
  };
@@@ -205,7 -210,7 +210,7 @@@ struct pxa168fb_mach_info aspenite_lcd_
        .invert_pixclock        = 0,
  };
  
 -static unsigned int aspenite_matrix_key_map[] = {
 +static const unsigned int aspenite_matrix_key_map[] = {
        KEY(0, 6, KEY_UP),      /* SW 4 */
        KEY(0, 7, KEY_DOWN),    /* SW 5 */
        KEY(1, 6, KEY_LEFT),    /* SW 6 */
        KEY(4, 7, KEY_ESC),     /* SW 9 */
  };
  
 +static struct matrix_keymap_data aspenite_matrix_keymap_data = {
 +      .keymap                 = aspenite_matrix_key_map,
 +      .keymap_size            = ARRAY_SIZE(aspenite_matrix_key_map),
 +};
 +
  static struct pxa27x_keypad_platform_data aspenite_keypad_info __initdata = {
        .matrix_key_rows        = 5,
        .matrix_key_cols        = 8,
 -      .matrix_key_map         = aspenite_matrix_key_map,
 -      .matrix_key_map_size    = ARRAY_SIZE(aspenite_matrix_key_map),
 +      .matrix_keymap_data     = &aspenite_matrix_keymap_data,
        .debounce_interval      = 30,
  };
  
  #if defined(CONFIG_USB_EHCI_MV)
- static char *pxa168_sph_clock_name[] = {
-       [0] = "PXA168-USBCLK",
- };
  static struct mv_usb_platform_data pxa168_sph_pdata = {
-       .clknum         = 1,
-       .clkname        = pxa168_sph_clock_name,
        .mode           = MV_USB_MODE_HOST,
        .phy_init       = pxa_usb_phy_init,
        .phy_deinit     = pxa_usb_phy_deinit,
@@@ -252,6 -247,8 +251,8 @@@ static void __init common_init(void
        pxa168_add_nand(&aspenite_nand_info);
        pxa168_add_fb(&aspenite_lcd_info);
        pxa168_add_keypad(&aspenite_keypad_info);
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
  
        /* off-chip devices */
index d8967fa483743bbfcc3aff542b67b176899195c5,e4d95b4c6bb272a427c5e4d6dae3cb7676b11ae9..6aa53fb29d2663c58add1cf9139dd65ed6642eb9
@@@ -16,6 -16,7 +16,7 @@@
  #include <linux/kernel.h>
  #include <linux/platform_device.h>
  #include <linux/gpio.h>
+ #include <linux/gpio-pxa.h>
  #include <linux/input.h>
  #include <linux/platform_data/keypad-pxa27x.h>
  #include <linux/i2c.h>
@@@ -49,6 -50,10 +50,10 @@@ static unsigned long teton_bga_pin_conf
        GPIO78_GPIO,
  };
  
+ static struct pxa_gpio_platform_data pxa168_gpio_pdata = {
+       .irq_base       = MMP_GPIO_TO_IRQ(0),
+ };
  static unsigned int teton_bga_matrix_key_map[] = {
        KEY(0, 6, KEY_ESC),
        KEY(0, 7, KEY_ENTER),
        KEY(1, 7, KEY_RIGHT),
  };
  
 +static struct matrix_keymap_data teton_bga_matrix_keymap_data = {
 +      .keymap                 = teton_bga_matrix_key_map,
 +      .keymap_size            = ARRAY_SIZE(teton_bga_matrix_key_map),
 +};
 +
  static struct pxa27x_keypad_platform_data teton_bga_keypad_info __initdata = {
        .matrix_key_rows        = 2,
        .matrix_key_cols        = 8,
 -      .matrix_key_map         = teton_bga_matrix_key_map,
 -      .matrix_key_map_size    = ARRAY_SIZE(teton_bga_matrix_key_map),
 +      .matrix_keymap_data     = &teton_bga_matrix_keymap_data,
        .debounce_interval      = 30,
  };
  
@@@ -83,6 -84,8 +88,8 @@@ static void __init teton_bga_init(void
        pxa168_add_uart(1);
        pxa168_add_keypad(&teton_bga_keypad_info);
        pxa168_add_twsi(0, NULL, ARRAY_AND_SIZE(teton_bga_i2c_info));
+       platform_device_add_data(&pxa168_device_gpio, &pxa168_gpio_pdata,
+                                sizeof(struct pxa_gpio_platform_data));
        platform_device_register(&pxa168_device_gpio);
  }
  
index 706e11bb6a32f08503a5bc14225969a9b4921c13,62a2c0e4cc998774e1c12185b4f04369bbde4d28..77412d8249632d549de2583b66408bbfd946bb33
@@@ -175,7 -175,7 +175,7 @@@ config KEYBOARD_EP93X
  
  config KEYBOARD_GPIO
        tristate "GPIO Buttons"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          This driver implements support for buttons connected
          to GPIO pins of various CPUs (and some other chips).
  
  config KEYBOARD_GPIO_POLLED
        tristate "Polled GPIO buttons"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          This driver implements support for buttons connected
@@@ -241,7 -241,7 +241,7 @@@ config KEYBOARD_TCA841
  
  config KEYBOARD_MATRIX
        tristate "GPIO driven matrix keypad support"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_MATRIXKMAP
        help
          Enable support for GPIO driven matrix keypad.
@@@ -418,16 -418,6 +418,16 @@@ config KEYBOARD_NOMADI
          To compile this driver as a module, choose M here: the
          module will be called nmk-ske-keypad.
  
 +config KEYBOARD_NSPIRE
 +      tristate "TI-NSPIRE built-in keyboard"
 +      depends on ARCH_NSPIRE && OF
 +      select INPUT_MATRIXKMAP
 +      help
 +        Say Y here if you want to use the built-in keypad on TI-NSPIRE.
 +
 +        To compile this driver as a module, choose M here: the
 +        module will be called nspire-keypad.
 +
  config KEYBOARD_TEGRA
        tristate "NVIDIA Tegra internal matrix keyboard controller support"
        depends on ARCH_TEGRA && OF
@@@ -451,7 -441,6 +451,7 @@@ config KEYBOARD_OPENCORE
  config KEYBOARD_PXA27x
        tristate "PXA27x/PXA3xx keypad support"
        depends on PXA27x || PXA3xx || ARCH_MMP
 +      select INPUT_MATRIXKMAP
        help
          Enable support for PXA27x/PXA3xx keypad controller.
  
@@@ -639,4 -628,16 +639,16 @@@ config KEYBOARD_W90P91
          To compile this driver as a module, choose M here: the
          module will be called w90p910_keypad.
  
+ config KEYBOARD_CROS_EC
+       tristate "ChromeOS EC keyboard"
+       select INPUT_MATRIXKMAP
+       depends on MFD_CROS_EC
+       help
+         Say Y here to enable the matrix keyboard used by ChromeOS devices
+         and implemented on the ChromeOS EC. You must enable one bus option
+         (MFD_CROS_EC_I2C or MFD_CROS_EC_SPI) to use this.
+         To compile this driver as a module, choose M here: the
+         module will be called cros_ec_keyb.
  endif
index 89d997b05452bcc7e9a9d76024c9a21932e42ccd,0c43e8cf8d0ec253b78f68ea175985dba09c9244..a699b617230383510727cc3c4a45611eed1c58d7
@@@ -11,6 -11,7 +11,7 @@@ obj-$(CONFIG_KEYBOARD_AMIGA)          += amikbd
  obj-$(CONFIG_KEYBOARD_ATARI)          += atakbd.o
  obj-$(CONFIG_KEYBOARD_ATKBD)          += atkbd.o
  obj-$(CONFIG_KEYBOARD_BFIN)           += bf54x-keys.o
+ obj-$(CONFIG_KEYBOARD_CROS_EC)                += cros_ec_keyb.o
  obj-$(CONFIG_KEYBOARD_DAVINCI)                += davinci_keyscan.o
  obj-$(CONFIG_KEYBOARD_EP93XX)         += ep93xx_keypad.o
  obj-$(CONFIG_KEYBOARD_GOLDFISH_EVENTS)        += goldfish_events.o
@@@ -35,7 -36,6 +36,7 @@@ obj-$(CONFIG_KEYBOARD_MCS)            += mcs_touc
  obj-$(CONFIG_KEYBOARD_MPR121)         += mpr121_touchkey.o
  obj-$(CONFIG_KEYBOARD_NEWTON)         += newtonkbd.o
  obj-$(CONFIG_KEYBOARD_NOMADIK)                += nomadik-ske-keypad.o
 +obj-$(CONFIG_KEYBOARD_NSPIRE)         += nspire-keypad.o
  obj-$(CONFIG_KEYBOARD_OMAP)           += omap-keypad.o
  obj-$(CONFIG_KEYBOARD_OMAP4)          += omap4-keypad.o
  obj-$(CONFIG_KEYBOARD_OPENCORES)      += opencores-kbd.o
index d715c0d10bf20c8a6a640167f040930c74a7a555,1b289092f4e30915ce9005678f8ca84991435b3b..f4aa53a1fd69bb70f0e680e95688e251f355f1e9
@@@ -215,18 -215,12 +215,12 @@@ static int omap4_keypad_parse_dt(struc
                                 struct omap4_keypad *keypad_data)
  {
        struct device_node *np = dev->of_node;
+       int err;
  
-       if (!np) {
-               dev_err(dev, "missing DT data");
-               return -EINVAL;
-       }
-       of_property_read_u32(np, "keypad,num-rows", &keypad_data->rows);
-       of_property_read_u32(np, "keypad,num-columns", &keypad_data->cols);
-       if (!keypad_data->rows || !keypad_data->cols) {
-               dev_err(dev, "number of keypad rows/columns not specified\n");
-               return -EINVAL;
-       }
+       err = matrix_keypad_parse_of_params(dev, &keypad_data->rows,
+                                           &keypad_data->cols);
+       if (err)
+               return err;
  
        if (of_get_property(np, "linux,input-no-autorepeat", NULL))
                keypad_data->no_autorepeat = true;
@@@ -425,6 -419,8 +419,6 @@@ static int omap4_keypad_remove(struct p
        kfree(keypad_data->keymap);
        kfree(keypad_data);
  
 -      platform_set_drvdata(pdev, NULL);
 -
        return 0;
  }
  
index f6002a76c29f38668262ecb51fea3b7e99dbb781,bb698e1f9e429b1c5d6dee2b59f0603807918d84..0b541cdf9b8e69f238c2f7fcd5eadebe644ec3e3
@@@ -214,7 -214,7 +214,7 @@@ config INPUT_APANE
  config INPUT_GP2A
        tristate "Sharp GP2AP002A00F I2C Proximity/Opto sensor driver"
        depends on I2C
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        help
          Say Y here if you have a Sharp GP2AP002A00F proximity/als combo-chip
          hooked to an I2C bus.
  
  config INPUT_GPIO_TILT_POLLED
        tristate "Polled GPIO tilt switch"
-       depends on GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          This driver implements support for tilt switches connected
@@@ -472,7 -472,7 +472,7 @@@ config INPUT_PWM_BEEPE
  
  config INPUT_GPIO_ROTARY_ENCODER
        tristate "Rotary encoders connected to GPIO pins"
-       depends on GPIOLIB && GENERIC_GPIO
+       depends on GPIOLIB
        help
          Say Y here to add support for rotary encoders connected to GPIO lines.
          Check file:Documentation/input/rotary-encoder.txt for more
  config INPUT_RB532_BUTTON
        tristate "Mikrotik Routerboard 532 button interface"
        depends on MIKROTIK_RB532
-       depends on GPIOLIB && GENERIC_GPIO
+       depends on GPIOLIB
        select INPUT_POLLDEV
        help
          Say Y here if you want support for the S1 button built into
@@@ -637,14 -637,4 +637,14 @@@ config INPUT_XEN_KBDDEV_FRONTEN
          To compile this driver as a module, choose M here: the
          module will be called xen-kbdfront.
  
 +config INPUT_SIRFSOC_ONKEY
 +      bool "CSR SiRFSoC power on/off/suspend key support"
 +      depends on ARCH_SIRF && OF
 +      default y
 +      help
 +        Say Y here if you want to support for the SiRFSoC power on/off/suspend key
 +        in Linux, after you press the onkey, system will suspend.
 +
 +        If unsure, say N.
 +
  endif
index 1602c5b6c0945d2c4731daffa320411fa12e2164,39f3df8670c311ec2373ec4ddad585ce4217743b..ef5fcb0945e910b11918b26159a2860cec2cba2a
@@@ -166,22 -166,24 +166,22 @@@ static int egalax_firmware_version(stru
  }
  
  static int egalax_ts_probe(struct i2c_client *client,
 -                                     const struct i2c_device_id *id)
 +                         const struct i2c_device_id *id)
  {
        struct egalax_ts *ts;
        struct input_dev *input_dev;
 -      int ret;
        int error;
  
 -      ts = kzalloc(sizeof(struct egalax_ts), GFP_KERNEL);
 +      ts = devm_kzalloc(&client->dev, sizeof(struct egalax_ts), GFP_KERNEL);
        if (!ts) {
                dev_err(&client->dev, "Failed to allocate memory\n");
                return -ENOMEM;
        }
  
 -      input_dev = input_allocate_device();
 +      input_dev = devm_input_allocate_device(&client->dev);
        if (!input_dev) {
                dev_err(&client->dev, "Failed to allocate memory\n");
 -              error = -ENOMEM;
 -              goto err_free_ts;
 +              return -ENOMEM;
        }
  
        ts->client = client;
        error = egalax_wake_up_device(client);
        if (error) {
                dev_err(&client->dev, "Failed to wake up the controller\n");
 -              goto err_free_dev;
 +              return error;
        }
  
 -      ret = egalax_firmware_version(client);
 -      if (ret < 0) {
 +      error = egalax_firmware_version(client);
 +      if (error < 0) {
                dev_err(&client->dev, "Failed to read firmware version\n");
 -              error = -EIO;
 -              goto err_free_dev;
 +              return error;
        }
  
        input_dev->name = "EETI eGalax Touch Screen";
        input_dev->id.bustype = BUS_I2C;
 -      input_dev->dev.parent = &client->dev;
  
        __set_bit(EV_ABS, input_dev->evbit);
        __set_bit(EV_KEY, input_dev->evbit);
        input_set_abs_params(input_dev,
                             ABS_MT_POSITION_X, 0, EGALAX_MAX_X, 0, 0);
        input_set_abs_params(input_dev,
-                            ABS_MT_POSITION_X, 0, EGALAX_MAX_Y, 0, 0);
+                            ABS_MT_POSITION_Y, 0, EGALAX_MAX_Y, 0, 0);
        input_mt_init_slots(input_dev, MAX_SUPPORT_POINTS, 0);
  
        input_set_drvdata(input_dev, ts);
  
 -      error = request_threaded_irq(client->irq, NULL, egalax_ts_interrupt,
 -                                   IRQF_TRIGGER_LOW | IRQF_ONESHOT,
 -                                   "egalax_ts", ts);
 +      error = devm_request_threaded_irq(&client->dev, client->irq, NULL,
 +                                        egalax_ts_interrupt,
 +                                        IRQF_TRIGGER_LOW | IRQF_ONESHOT,
 +                                        "egalax_ts", ts);
        if (error < 0) {
                dev_err(&client->dev, "Failed to register interrupt\n");
 -              goto err_free_dev;
 +              return error;
        }
  
        error = input_register_device(ts->input_dev);
        if (error)
 -              goto err_free_irq;
 +              return error;
  
        i2c_set_clientdata(client, ts);
        return 0;
 -
 -err_free_irq:
 -      free_irq(client->irq, ts);
 -err_free_dev:
 -      input_free_device(input_dev);
 -err_free_ts:
 -      kfree(ts);
 -
 -      return error;
 -}
 -
 -static int egalax_ts_remove(struct i2c_client *client)
 -{
 -      struct egalax_ts *ts = i2c_get_clientdata(client);
 -
 -      free_irq(client->irq, ts);
 -
 -      input_unregister_device(ts->input_dev);
 -      kfree(ts);
 -
 -      return 0;
  }
  
  static const struct i2c_device_id egalax_ts_id[] = {
@@@ -277,6 -301,7 +277,6 @@@ static struct i2c_driver egalax_ts_driv
        },
        .id_table       = egalax_ts_id,
        .probe          = egalax_ts_probe,
 -      .remove         = egalax_ts_remove,
  };
  
  module_i2c_driver(egalax_ts_driver);
diff --combined drivers/tty/sysrq.c
index 80310f7f58d3f93eb391a39b768cf4707573c106,b51c15408ff317980205880dae4961e1db793eb4..55ba46f6207d257137bbbace7f3fda43f1797d26
@@@ -44,7 -44,6 +44,7 @@@
  #include <linux/uaccess.h>
  #include <linux/moduleparam.h>
  #include <linux/jiffies.h>
 +#include <linux/syscalls.h>
  
  #include <asm/ptrace.h>
  #include <asm/irq_regs.h>
@@@ -106,7 -105,7 +106,7 @@@ static void sysrq_handle_SAK(int key
  }
  static struct sysrq_key_op sysrq_SAK_op = {
        .handler        = sysrq_handle_SAK,
-       .help_msg       = "saK",
+       .help_msg       = "sak(k)",
        .action_msg     = "SAK",
        .enable_mask    = SYSRQ_ENABLE_KEYBOARD,
  };
@@@ -122,7 -121,7 +122,7 @@@ static void sysrq_handle_unraw(int key
  
  static struct sysrq_key_op sysrq_unraw_op = {
        .handler        = sysrq_handle_unraw,
-       .help_msg       = "unRaw",
+       .help_msg       = "unraw(r)",
        .action_msg     = "Keyboard mode set to system default",
        .enable_mask    = SYSRQ_ENABLE_KEYBOARD,
  };
@@@ -140,7 -139,7 +140,7 @@@ static void sysrq_handle_crash(int key
  }
  static struct sysrq_key_op sysrq_crash_op = {
        .handler        = sysrq_handle_crash,
-       .help_msg       = "Crash",
+       .help_msg       = "crash(c)",
        .action_msg     = "Trigger a crash",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -153,7 -152,7 +153,7 @@@ static void sysrq_handle_reboot(int key
  }
  static struct sysrq_key_op sysrq_reboot_op = {
        .handler        = sysrq_handle_reboot,
-       .help_msg       = "reBoot",
+       .help_msg       = "reboot(b)",
        .action_msg     = "Resetting",
        .enable_mask    = SYSRQ_ENABLE_BOOT,
  };
@@@ -164,7 -163,7 +164,7 @@@ static void sysrq_handle_sync(int key
  }
  static struct sysrq_key_op sysrq_sync_op = {
        .handler        = sysrq_handle_sync,
-       .help_msg       = "Sync",
+       .help_msg       = "sync(s)",
        .action_msg     = "Emergency Sync",
        .enable_mask    = SYSRQ_ENABLE_SYNC,
  };
@@@ -176,7 -175,7 +176,7 @@@ static void sysrq_handle_show_timers(in
  
  static struct sysrq_key_op sysrq_show_timers_op = {
        .handler        = sysrq_handle_show_timers,
-       .help_msg       = "show-all-timers(Q)",
+       .help_msg       = "show-all-timers(q)",
        .action_msg     = "Show clockevent devices & pending hrtimers (no others)",
  };
  
@@@ -186,7 -185,7 +186,7 @@@ static void sysrq_handle_mountro(int ke
  }
  static struct sysrq_key_op sysrq_mountro_op = {
        .handler        = sysrq_handle_mountro,
-       .help_msg       = "Unmount",
+       .help_msg       = "unmount(u)",
        .action_msg     = "Emergency Remount R/O",
        .enable_mask    = SYSRQ_ENABLE_REMOUNT,
  };
@@@ -199,7 -198,7 +199,7 @@@ static void sysrq_handle_showlocks(int 
  
  static struct sysrq_key_op sysrq_showlocks_op = {
        .handler        = sysrq_handle_showlocks,
-       .help_msg       = "show-all-locks(D)",
+       .help_msg       = "show-all-locks(d)",
        .action_msg     = "Show Locks Held",
  };
  #else
@@@ -250,7 -249,7 +250,7 @@@ static void sysrq_handle_showallcpus(in
  
  static struct sysrq_key_op sysrq_showallcpus_op = {
        .handler        = sysrq_handle_showallcpus,
-       .help_msg       = "show-backtrace-all-active-cpus(L)",
+       .help_msg       = "show-backtrace-all-active-cpus(l)",
        .action_msg     = "Show backtrace of all active CPUs",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -265,7 -264,7 +265,7 @@@ static void sysrq_handle_showregs(int k
  }
  static struct sysrq_key_op sysrq_showregs_op = {
        .handler        = sysrq_handle_showregs,
-       .help_msg       = "show-registers(P)",
+       .help_msg       = "show-registers(p)",
        .action_msg     = "Show Regs",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -276,7 -275,7 +276,7 @@@ static void sysrq_handle_showstate(int 
  }
  static struct sysrq_key_op sysrq_showstate_op = {
        .handler        = sysrq_handle_showstate,
-       .help_msg       = "show-task-states(T)",
+       .help_msg       = "show-task-states(t)",
        .action_msg     = "Show State",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -287,7 -286,7 +287,7 @@@ static void sysrq_handle_showstate_bloc
  }
  static struct sysrq_key_op sysrq_showstate_blocked_op = {
        .handler        = sysrq_handle_showstate_blocked,
-       .help_msg       = "show-blocked-tasks(W)",
+       .help_msg       = "show-blocked-tasks(w)",
        .action_msg     = "Show Blocked State",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -301,7 -300,7 +301,7 @@@ static void sysrq_ftrace_dump(int key
  }
  static struct sysrq_key_op sysrq_ftrace_dump_op = {
        .handler        = sysrq_ftrace_dump,
-       .help_msg       = "dump-ftrace-buffer(Z)",
+       .help_msg       = "dump-ftrace-buffer(z)",
        .action_msg     = "Dump ftrace buffer",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -315,7 -314,7 +315,7 @@@ static void sysrq_handle_showmem(int ke
  }
  static struct sysrq_key_op sysrq_showmem_op = {
        .handler        = sysrq_handle_showmem,
-       .help_msg       = "show-memory-usage(M)",
+       .help_msg       = "show-memory-usage(m)",
        .action_msg     = "Show Memory",
        .enable_mask    = SYSRQ_ENABLE_DUMP,
  };
@@@ -346,7 -345,7 +346,7 @@@ static void sysrq_handle_term(int key
  }
  static struct sysrq_key_op sysrq_term_op = {
        .handler        = sysrq_handle_term,
-       .help_msg       = "terminate-all-tasks(E)",
+       .help_msg       = "terminate-all-tasks(e)",
        .action_msg     = "Terminate All Tasks",
        .enable_mask    = SYSRQ_ENABLE_SIGNAL,
  };
@@@ -365,7 -364,7 +365,7 @@@ static void sysrq_handle_moom(int key
  }
  static struct sysrq_key_op sysrq_moom_op = {
        .handler        = sysrq_handle_moom,
-       .help_msg       = "memory-full-oom-kill(F)",
+       .help_msg       = "memory-full-oom-kill(f)",
        .action_msg     = "Manual OOM execution",
        .enable_mask    = SYSRQ_ENABLE_SIGNAL,
  };
@@@ -377,7 -376,7 +377,7 @@@ static void sysrq_handle_thaw(int key
  }
  static struct sysrq_key_op sysrq_thaw_op = {
        .handler        = sysrq_handle_thaw,
-       .help_msg       = "thaw-filesystems(J)",
+       .help_msg       = "thaw-filesystems(j)",
        .action_msg     = "Emergency Thaw of all frozen filesystems",
        .enable_mask    = SYSRQ_ENABLE_SIGNAL,
  };
@@@ -390,7 -389,7 +390,7 @@@ static void sysrq_handle_kill(int key
  }
  static struct sysrq_key_op sysrq_kill_op = {
        .handler        = sysrq_handle_kill,
-       .help_msg       = "kill-all-tasks(I)",
+       .help_msg       = "kill-all-tasks(i)",
        .action_msg     = "Kill All Tasks",
        .enable_mask    = SYSRQ_ENABLE_SIGNAL,
  };
@@@ -401,7 -400,7 +401,7 @@@ static void sysrq_handle_unrt(int key
  }
  static struct sysrq_key_op sysrq_unrt_op = {
        .handler        = sysrq_handle_unrt,
-       .help_msg       = "nice-all-RT-tasks(N)",
+       .help_msg       = "nice-all-RT-tasks(n)",
        .action_msg     = "Nice All RT Tasks",
        .enable_mask    = SYSRQ_ENABLE_RTNICE,
  };
@@@ -587,7 -586,6 +587,7 @@@ struct sysrq_state 
  
        /* reset sequence handling */
        bool reset_canceled;
 +      bool reset_requested;
        unsigned long reset_keybit[BITS_TO_LONGS(KEY_CNT)];
        int reset_seq_len;
        int reset_seq_cnt;
@@@ -626,26 -624,18 +626,26 @@@ static void sysrq_parse_reset_sequence(
        state->reset_seq_version = sysrq_reset_seq_version;
  }
  
 -static void sysrq_do_reset(unsigned long dummy)
 +static void sysrq_do_reset(unsigned long _state)
  {
 -      __handle_sysrq(sysrq_xlate[KEY_B], false);
 +      struct sysrq_state *state = (struct sysrq_state *) _state;
 +
 +      state->reset_requested = true;
 +
 +      sys_sync();
 +      kernel_restart(NULL);
  }
  
  static void sysrq_handle_reset_request(struct sysrq_state *state)
  {
 +      if (state->reset_requested)
 +              __handle_sysrq(sysrq_xlate[KEY_B], false);
 +
        if (sysrq_reset_downtime_ms)
                mod_timer(&state->keyreset_timer,
                        jiffies + msecs_to_jiffies(sysrq_reset_downtime_ms));
        else
 -              sysrq_do_reset(0);
 +              sysrq_do_reset((unsigned long)state);
  }
  
  static void sysrq_detect_reset_sequence(struct sysrq_state *state,
@@@ -847,8 -837,7 +847,8 @@@ static int sysrq_connect(struct input_h
        sysrq->handle.handler = handler;
        sysrq->handle.name = "sysrq";
        sysrq->handle.private = sysrq;
 -      setup_timer(&sysrq->keyreset_timer, sysrq_do_reset, 0);
 +      setup_timer(&sysrq->keyreset_timer,
 +                  sysrq_do_reset, (unsigned long)sysrq);
  
        error = input_register_handle(&sysrq->handle);
        if (error) {
This page took 0.095883 seconds and 4 git commands to generate.