)]}'
{
  "log": [
    {
      "commit": "829c4f96900577afb1d91c0195b2e2a219e7d80f",
      "tree": "b46cac701534679be36caf469fcadc85e295df7b",
      "parents": [
        "b45c8f35a7fec17bdd159a7815203b6137c00ab9"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Thu May 10 22:37:16 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:40:02 2012 -0700"
      },
      "message": "Input: spear-keyboard - add device tree bindings\n\nThis adds simple DT bindings for spear-keyboard controller.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b45c8f35a7fec17bdd159a7815203b6137c00ab9",
      "tree": "c6fc8efe76ff2b382e8290d6df59129200032a5d",
      "parents": [
        "1932811f426fee71b7ece67e70aeba7e1b0ebb6d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:37:15 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:39:43 2012 -0700"
      },
      "message": "Input: matrix-keymap - wire up device tree support\n\nWhen platform keymap is not supplied to matrix_keypad_build_keymap()\nand device tree support is enabled, try locating specified property\nand load keymap from it. If property name is not defined, try using\n\"linux,keymap\".\n\nBased on earlier patch by Viresh Kumar \u003cviresh.kumar@st.com\u003e\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1932811f426fee71b7ece67e70aeba7e1b0ebb6d",
      "tree": "ffc4598961733707a89e711b4614c8cc14446ad5",
      "parents": [
        "d0a3457d38adbad37e43ffe6b763360b2bfe71d9"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:37:08 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:38:47 2012 -0700"
      },
      "message": "Input: matrix-keymap - uninline and prepare for device tree support\n\nChange matrix-keymap helper to be out-of-line, like sparse keymap,\nallow the helper perform basic keymap validation and return errors,\nand prepare for device tree support.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d0a3457d38adbad37e43ffe6b763360b2bfe71d9",
      "tree": "ed1dcb47e63d38be8205c829564cde4247fc51bd",
      "parents": [
        "f77621cc640a7c50b3d8c5254ecc5d91eaa99d0d"
      ],
      "author": {
        "name": "Jean-François Dagenais",
        "email": "jeff.dagenais@gmail.com",
        "time": "Thu May 10 22:32:00 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:34:16 2012 -0700"
      },
      "message": "Input: adp5588 - add support for gpio names\n\nSigned-off-by: Jean-François Dagenais \u003cjeff.dagenais@gmail.com\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f77621cc640a7c50b3d8c5254ecc5d91eaa99d0d",
      "tree": "e5674d3f114399e1d6cd855a15ed42f8e56a9795",
      "parents": [
        "1a49a0a04d13049ac4f90d2e61da9b29a36962f7"
      ],
      "author": {
        "name": "Poddar, Sourav",
        "email": "sourav.poddar@ti.com",
        "time": "Thu May 10 22:32:00 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 10 22:33:58 2012 -0700"
      },
      "message": "Input: omap-keypad - dynamically handle register offsets\n\nHi Dmitry,\n\nOn Wed, May 9, 2012 at 3:14 PM, Poddar, Sourav \u003csourav.poddar@ti.com\u003e wrote:\n\u003e Hi Dmitry,\n\u003e\n\u003e I did some minor fixes to the patch which you suggested above and\n\u003e the keypad is functional now.\n\u003e\n\u003e Changes:\n\u003e - Move \"pm_runtime_enable\" before using \"pm_runtime_get_sync\".\n\u003e\n\u003e Sending the patch inlined..(also attached).\n\u003e\n\u003e From: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\n\u003e Date: Mon, 10 Oct 2011 20:52:05 +0530\n\u003e Subject: [PATCH] Input: omap-keypad: dynamically handle register offsets\n\u003e\n\u003e Keypad controller register offsets are different for omap4\n\u003e and omap5. Handle these offsets through static mapping and\n\u003e assign these mappings during run time.\n\u003e\n\u003e Tested on omap4430 sdp with 3.4-rc3.\n\u003e Tested on omap5430evm with 3.1-custom kernel.\n\u003e\n\u003e Cc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n\u003e Signed-off-by: Felipe Balbi \u003cbalbi@ti.com\u003e\n\u003e Signed-off-by: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\n\u003e Signed-off-by: Sourav Poddar \u003csourav.poddar@ti.com\u003e\n\u003e Signed-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n\u003e ---\n\u003e  drivers/input/keyboard/Kconfig        |    4 +-\n\u003e  drivers/input/keyboard/omap4-keypad.c |  120 +++++++++++++++++++++++++-------\n\u003e  2 files changed, 95 insertions(+), 29 deletions(-)\n\u003e\n\u003e diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig\n\u003e index f354813..33bbdee 100644\n\u003e --- a/drivers/input/keyboard/Kconfig\n\u003e +++ b/drivers/input/keyboard/Kconfig\n\u003e @@ -512,9 +512,9 @@ config KEYBOARD_OMAP\n\u003e          module will be called omap-keypad.\n\u003e\n\u003e  config KEYBOARD_OMAP4\n\u003e -       tristate \"TI OMAP4 keypad support\"\n\u003e +       tristate \"TI OMAP4+ keypad support\"\n\u003e        help\n\u003e -         Say Y here if you want to use the OMAP4 keypad.\n\u003e +         Say Y here if you want to use the OMAP4+ keypad.\n\u003e\n\u003e          To compile this driver as a module, choose M here: the\n\u003e          module will be called omap4-keypad.\n\u003e diff --git a/drivers/input/keyboard/omap4-keypad.c\n\u003e b/drivers/input/keyboard/omap4-keypad.c\n\u003e index e809ac0..d7102e8 100644\n\u003e --- a/drivers/input/keyboard/omap4-keypad.c\n\u003e +++ b/drivers/input/keyboard/omap4-keypad.c\n\u003e @@ -68,19 +68,52 @@\n\u003e\n\u003e  #define OMAP4_MASK_IRQSTATUSDISABLE    0xFFFF\n\u003e\n\u003e +enum {\n\u003e +       KBD_REVISION_OMAP4 \u003d 0,\n\u003e +       KBD_REVISION_OMAP5,\n\u003e +};\n\u003e +\n\u003e  struct omap4_keypad {\n\u003e        struct input_dev *input;\n\u003e\n\u003e        void __iomem *base;\n\u003e -       int irq;\n\u003e +       unsigned int irq;\n\u003e\n\u003e        unsigned int rows;\n\u003e        unsigned int cols;\n\u003e +       u32 reg_offset;\n\u003e +       u32 irqreg_offset;\n\u003e        unsigned int row_shift;\n\u003e        unsigned char key_state[8];\n\u003e        unsigned short keymap[];\n\u003e  };\n\u003e\n\u003e +static int kbd_readl(struct omap4_keypad *keypad_data, u32 offset)\n\u003e +{\n\u003e +       return __raw_readl(keypad_data-\u003ebase +\n\u003e +                               keypad_data-\u003ereg_offset + offset);\n\u003e +}\n\u003e +\n\u003e +static void kbd_writel(struct omap4_keypad *keypad_data, u32 offset, u32 value)\n\u003e +{\n\u003e +       __raw_writel(value,\n\u003e +                    keypad_data-\u003ebase + keypad_data-\u003ereg_offset + offset);\n\u003e +}\n\u003e +\n\u003e +static int kbd_read_irqreg(struct omap4_keypad *keypad_data, u32 offset)\n\u003e +{\n\u003e +       return __raw_readl(keypad_data-\u003ebase +\n\u003e +                               keypad_data-\u003eirqreg_offset + offset);\n\u003e +}\n\u003e +\n\u003e +static void kbd_write_irqreg(struct omap4_keypad *keypad_data,\n\u003e +                            u32 offset, u32 value)\n\u003e +{\n\u003e +       __raw_writel(value,\n\u003e +                    keypad_data-\u003ebase + keypad_data-\u003eirqreg_offset + offset);\n\u003e +}\n\u003e +\n\u003e +\n\u003e  /* Interrupt handler */\n\u003e  static irqreturn_t omap4_keypad_interrupt(int irq, void *dev_id)\n\u003e  {\n\u003e @@ -91,12 +124,11 @@ static irqreturn_t omap4_keypad_interrupt(int\n\u003e irq, void *dev_id)\n\u003e        u32 *new_state \u003d (u32 *) key_state;\n\u003e\n\u003e        /* Disable interrupts */\n\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e -                    keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e +                        OMAP4_VAL_IRQDISABLE);\n\u003e\n\u003e -       *new_state \u003d __raw_readl(keypad_data-\u003ebase + OMAP4_KBD_FULLCODE31_0);\n\u003e -       *(new_state + 1) \u003d __raw_readl(keypad_data-\u003ebase\n\u003e -                                               + OMAP4_KBD_FULLCODE63_32);\n\u003e +       *new_state \u003d kbd_readl(keypad_data, OMAP4_KBD_FULLCODE31_0);\n\u003e +       *(new_state + 1) \u003d kbd_readl(keypad_data, OMAP4_KBD_FULLCODE63_32);\n\u003e\n\u003e        for (row \u003d 0; row \u003c keypad_data-\u003erows; row++) {\n\u003e                changed \u003d key_state[row] ^ keypad_data-\u003ekey_state[row];\n\u003e @@ -121,12 +153,13 @@ static irqreturn_t omap4_keypad_interrupt(int\n\u003e irq, void *dev_id)\n\u003e                sizeof(keypad_data-\u003ekey_state));\n\u003e\n\u003e        /* clear pending interrupts */\n\u003e -       __raw_writel(__raw_readl(keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS),\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e +                        kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));\n\u003e\n\u003e        /* enable interrupts */\n\u003e -       __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e +               OMAP4_DEF_IRQENABLE_EVENTEN |\n\u003e +                               OMAP4_DEF_IRQENABLE_LONGKEY);\n\u003e\n\u003e        return IRQ_HANDLED;\n\u003e  }\n\u003e @@ -139,16 +172,17 @@ static int omap4_keypad_open(struct input_dev *input)\n\u003e\n\u003e        disable_irq(keypad_data-\u003eirq);\n\u003e\n\u003e -       __raw_writel(OMAP4_VAL_FUNCTIONALCFG,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_CTRL);\n\u003e -       __raw_writel(OMAP4_VAL_DEBOUNCINGTIME,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_DEBOUNCINGTIME);\n\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e -       __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e -       __raw_writel(OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA,\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_WAKEUPENABLE);\n\u003e +       kbd_writel(keypad_data, OMAP4_KBD_CTRL,\n\u003e +                       OMAP4_VAL_FUNCTIONALCFG);\n\u003e +       kbd_writel(keypad_data, OMAP4_KBD_DEBOUNCINGTIME,\n\u003e +                       OMAP4_VAL_DEBOUNCINGTIME);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e +                       OMAP4_VAL_IRQDISABLE);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e +                       OMAP4_DEF_IRQENABLE_EVENTEN |\n\u003e +                               OMAP4_DEF_IRQENABLE_LONGKEY);\n\u003e +       kbd_writel(keypad_data, OMAP4_KBD_WAKEUPENABLE,\n\u003e +                       OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA);\n\u003e\n\u003e        enable_irq(keypad_data-\u003eirq);\n\u003e\n\u003e @@ -162,12 +196,12 @@ static void omap4_keypad_close(struct input_dev *input)\n\u003e        disable_irq(keypad_data-\u003eirq);\n\u003e\n\u003e        /* Disable interrupts */\n\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e -                    keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e +                        OMAP4_VAL_IRQDISABLE);\n\u003e\n\u003e        /* clear pending interrupts */\n\u003e -       __raw_writel(__raw_readl(keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS),\n\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e +                        kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));\n\u003e\n\u003e        enable_irq(keypad_data-\u003eirq);\n\u003e\n\u003e @@ -182,6 +216,7 @@ static int __devinit omap4_keypad_probe(struct\n\u003e platform_device *pdev)\n\u003e        struct resource *res;\n\u003e        resource_size_t size;\n\u003e        unsigned int row_shift, max_keys;\n\u003e +       int rev;\n\u003e        int irq;\n\u003e        int error;\n\u003e\n\u003e @@ -241,11 +276,40 @@ static int __devinit omap4_keypad_probe(struct\n\u003e platform_device *pdev)\n\u003e        keypad_data-\u003erows \u003d pdata-\u003erows;\n\u003e        keypad_data-\u003ecols \u003d pdata-\u003ecols;\n\u003e\n\u003e +       /*\n\u003e +       * Enable clocks for the keypad module so that we can read\n\u003e +       * revision register.\n\u003e +       */\n\u003e +       pm_runtime_enable(\u0026pdev-\u003edev);\n\u003e +       error \u003d pm_runtime_get_sync(\u0026pdev-\u003edev);\n\u003e +       if (error) {\n\u003e +               dev_err(\u0026pdev-\u003edev, \"pm_runtime_get_sync() failed\\n\");\n\u003e +               goto err_unmap;\n\u003e +       }\n\u003e +       rev \u003d __raw_readl(keypad_data-\u003ebase + OMAP4_KBD_REVISION);\n\u003e +       rev \u0026\u003d 0x03 \u003c\u003c 30;\n\u003e +       rev \u003e\u003e\u003d 30;\n\u003e +       switch (rev) {\n\u003e +       case KBD_REVISION_OMAP4:\n\u003e +               keypad_data-\u003ereg_offset \u003d 0x00;\n\u003e +               keypad_data-\u003eirqreg_offset \u003d 0x00;\n\u003e +               break;\n\u003e +       case KBD_REVISION_OMAP5:\n\u003e +               keypad_data-\u003ereg_offset \u003d 0x10;\n\u003e +               keypad_data-\u003eirqreg_offset \u003d 0x0c;\n\u003e +               break;\n\u003e +       default:\n\u003e +               dev_err(\u0026pdev-\u003edev,\n\u003e +                       \"Keypad reports unsupported revision %d\", rev);\n\u003e +               error \u003d -EINVAL;\n\u003e +               goto err_pm_put_sync;\n\u003e +       }\n\u003e +\n\u003e        /* input device allocation */\n\u003e        keypad_data-\u003einput \u003d input_dev \u003d input_allocate_device();\n\u003e        if (!input_dev) {\n\u003e                error \u003d -ENOMEM;\n\u003e -               goto err_unmap;\n\u003e +               goto err_pm_put_sync;\n\u003e        }\n\u003e\n\u003e        input_dev-\u003ename \u003d pdev-\u003ename;\n\u003e @@ -273,14 +337,14 @@ static int __devinit omap4_keypad_probe(struct\n\u003e platform_device *pdev)\n\u003e                        input_dev-\u003ekeycode, input_dev-\u003ekeybit);\n\u003e\n\u003e        error \u003d request_irq(keypad_data-\u003eirq, omap4_keypad_interrupt,\n\u003e -                            IRQF_TRIGGER_RISING,\n\u003e +                           IRQF_DISABLED | IRQF_TRIGGER_RISING,\nSorry, \" IRQF_DISABLED\" got included by mistake.\nRemoving this stray change and sending it again.\n\n\u003e                             \"omap4-keypad\", keypad_data);\n\u003e        if (error) {\n\u003e                dev_err(\u0026pdev-\u003edev, \"failed to register interrupt\\n\");\n\u003e                goto err_free_input;\n\u003e        }\n\u003e\n\u003e -       pm_runtime_enable(\u0026pdev-\u003edev);\n\u003e +       pm_runtime_put_sync(\u0026pdev-\u003edev);\n\u003e\n\u003e        error \u003d input_register_device(keypad_data-\u003einput);\n\u003e        if (error \u003c 0) {\n\u003e @@ -296,6 +360,8 @@ err_pm_disable:\n\u003e        free_irq(keypad_data-\u003eirq, keypad_data);\n\u003e  err_free_input:\n\u003e        input_free_device(input_dev);\n\u003e +err_pm_put_sync:\n\u003e +       pm_runtime_put_sync(\u0026pdev-\u003edev);\n\u003e  err_unmap:\n\u003e        iounmap(keypad_data-\u003ebase);\n\u003e  err_release_mem:\n\u003e\n\u003e\n\u003e ~Sourav\n\u003e\n\u003e On Wed, May 9, 2012 at 1:15 PM, Dmitry Torokhov\n\u003e \u003cdmitry.torokhov@gmail.com\u003e wrote:\n\u003e\u003e\u003e Hi Dmitry ,\n\u003e\u003e\u003e\n\u003e\u003e\u003e\n\u003e\u003e\u003e On Wed, May 9, 2012 at 10:48 AM, Dmitry Torokhov\n\u003e\u003e\u003e \u003cdmitry.torokhov@gmail.com\u003e wrote:\n\u003e\u003e\u003e \u003e Ho Sourav,\n\u003e\u003e\u003e \u003e\n\u003e\u003e\u003e \u003e On Thu, Apr 26, 2012 at 11:24:37AM +0530, Sourav Poddar wrote:\n\u003e\u003e\u003e \u003e\u003e\n\u003e\u003e\u003e \u003e\u003e -config KEYBOARD_OMAP4\n\u003e\u003e\u003e \u003e\u003e -     tristate \"TI OMAP4 keypad support\"\n\u003e\u003e\u003e \u003e\u003e +config KEYBOARD_OMAP4+\n\u003e\u003e\u003e \u003e\n\u003e\u003e\u003e \u003e I think this works purely by accident - \u0027+\u0027 sign getting dropped by\n\u003e\u003e\u003e \u003e parser...\n\u003e\u003e\u003e \u003e\n\u003e\u003e\u003e \u003e\u003e @@ -139,16 +192,33 @@ static int omap4_keypad_open(struct input_dev *input)\n\u003e\u003e\u003e \u003e\u003e\n\u003e\u003e\u003e \u003e\u003e       disable_irq(keypad_data-\u003eirq);\n\u003e\u003e\u003e \u003e\u003e\n\u003e\u003e\u003e \u003e\u003e -     __raw_writel(OMAP4_VAL_FUNCTIONALCFG,\n\u003e\u003e\u003e \u003e\u003e -                     keypad_data-\u003ebase + OMAP4_KBD_CTRL);\n\u003e\u003e\u003e \u003e\u003e -     __raw_writel(OMAP4_VAL_DEBOUNCINGTIME,\n\u003e\u003e\u003e \u003e\u003e -                     keypad_data-\u003ebase + OMAP4_KBD_DEBOUNCINGTIME);\n\u003e\u003e\u003e \u003e\u003e -     __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e\u003e\u003e \u003e\u003e -                     keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e\u003e\u003e \u003e\u003e -     __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,\n\u003e\u003e\u003e \u003e\u003e -                     keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e\u003e\u003e \u003e\u003e -     __raw_writel(OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA,\n\u003e\u003e\u003e \u003e\u003e -                     keypad_data-\u003ebase + OMAP4_KBD_WAKEUPENABLE);\n\u003e\u003e\u003e \u003e\u003e +     keypad_data-\u003erevision \u003d kbd_read_revision(keypad_data,\n\u003e\u003e\u003e \u003e\u003e +                     OMAP4_KBD_REVISION);\n\u003e\u003e\u003e \u003e\u003e +     switch (keypad_data-\u003erevision) {\n\u003e\u003e\u003e \u003e\u003e +     case 1:\n\u003e\u003e\u003e \u003e\u003e +             keypad_data-\u003eirqstatus \u003d OMAP4_KBD_IRQSTATUS + 0x0c;\n\u003e\u003e\u003e \u003e\u003e +             keypad_data-\u003eirqenable \u003d OMAP4_KBD_IRQENABLE + 0x0c;\n\u003e\u003e\u003e \u003e\u003e +             keypad_data-\u003ereg_offset \u003d 0x10;\n\u003e\u003e\u003e \u003e\u003e +             break;\n\u003e\u003e\u003e \u003e\n\u003e\u003e\u003e \u003e This should be done in probe().\n\u003e\u003e\u003e \u003e\n\u003e\u003e\u003e Dont we then require \"pm_runtime_put_sync\" in probe, since we are trying\n\u003e\u003e\u003e to read the keypad revision register.?\n\u003e\u003e\n\u003e\u003e Ah, indeed, but I think not pm_runtime_get_sync() but\n\u003e\u003e pm_runtime_set_active().\n\u003e\u003e\n\u003e\u003e Not sure if this will fix the crash...\n\u003e\u003e\n\u003e\u003e --\n\u003e\u003e Dmitry\n\u003e\u003e\n\u003e\u003e\n\u003e\u003e Input: omap-keypad - dynamically handle register offsets\n\u003e\u003e\n\u003e\u003e From: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\n\u003e\u003e\n\u003e\u003e Keypad controller register offsets are different for omap4\n\u003e\u003e and omap5. Handle these offsets through static mapping and\n\u003e\u003e assign these mappings during run time.\n\u003e\u003e\n\u003e\u003e Tested on omap4430 sdp with 3.4-rc3.\n\u003e\u003e Tested on omap5430evm with 3.1-custom kernel.\n\u003e\u003e\n\u003e\u003e Signed-off-by: Felipe Balbi \u003cbalbi@ti.com\u003e\n\u003e\u003e Signed-off-by: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\n\u003e\u003e Signed-off-by: Sourav Poddar \u003csourav.poddar@ti.com\u003e\n\u003e\u003e Signed-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n\u003e\u003e ---\n\u003e\u003e\n\u003e\u003e  drivers/input/keyboard/Kconfig        |    4 +\n\u003e\u003e  drivers/input/keyboard/omap4-keypad.c |  117 ++++++++++++++++++++++++++-------\n\u003e\u003e  2 files changed, 94 insertions(+), 27 deletions(-)\n\u003e\u003e\n\u003e\u003e\n\u003e\u003e diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig\n\u003e\u003e index 20a3753..84ee155 100644\n\u003e\u003e --- a/drivers/input/keyboard/Kconfig\n\u003e\u003e +++ b/drivers/input/keyboard/Kconfig\n\u003e\u003e @@ -531,9 +531,9 @@ config KEYBOARD_OMAP\n\u003e\u003e          module will be called omap-keypad.\n\u003e\u003e\n\u003e\u003e  config KEYBOARD_OMAP4\n\u003e\u003e -       tristate \"TI OMAP4 keypad support\"\n\u003e\u003e +       tristate \"TI OMAP4+ keypad support\"\n\u003e\u003e        help\n\u003e\u003e -         Say Y here if you want to use the OMAP4 keypad.\n\u003e\u003e +         Say Y here if you want to use the OMAP4+ keypad.\n\u003e\u003e\n\u003e\u003e          To compile this driver as a module, choose M here: the\n\u003e\u003e          module will be called omap4-keypad.\n\u003e\u003e diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c\n\u003e\u003e index e809ac0..c9fd0df 100644\n\u003e\u003e --- a/drivers/input/keyboard/omap4-keypad.c\n\u003e\u003e +++ b/drivers/input/keyboard/omap4-keypad.c\n\u003e\u003e @@ -68,19 +68,52 @@\n\u003e\u003e\n\u003e\u003e  #define OMAP4_MASK_IRQSTATUSDISABLE    0xFFFF\n\u003e\u003e\n\u003e\u003e +enum {\n\u003e\u003e +       KBD_REVISION_OMAP4 \u003d 0,\n\u003e\u003e +       KBD_REVISION_OMAP5,\n\u003e\u003e +};\n\u003e\u003e +\n\u003e\u003e  struct omap4_keypad {\n\u003e\u003e        struct input_dev *input;\n\u003e\u003e\n\u003e\u003e        void __iomem *base;\n\u003e\u003e -       int irq;\n\u003e\u003e +       unsigned int irq;\n\u003e\u003e\n\u003e\u003e        unsigned int rows;\n\u003e\u003e        unsigned int cols;\n\u003e\u003e +       u32 reg_offset;\n\u003e\u003e +       u32 irqreg_offset;\n\u003e\u003e        unsigned int row_shift;\n\u003e\u003e        unsigned char key_state[8];\n\u003e\u003e        unsigned short keymap[];\n\u003e\u003e  };\n\u003e\u003e\n\u003e\u003e +static int kbd_readl(struct omap4_keypad *keypad_data, u32 offset)\n\u003e\u003e +{\n\u003e\u003e +       return __raw_readl(keypad_data-\u003ebase +\n\u003e\u003e +                               keypad_data-\u003ereg_offset + offset);\n\u003e\u003e +}\n\u003e\u003e +\n\u003e\u003e +static void kbd_writel(struct omap4_keypad *keypad_data, u32 offset, u32 value)\n\u003e\u003e +{\n\u003e\u003e +       __raw_writel(value,\n\u003e\u003e +                    keypad_data-\u003ebase + keypad_data-\u003ereg_offset + offset);\n\u003e\u003e +}\n\u003e\u003e +\n\u003e\u003e +static int kbd_read_irqreg(struct omap4_keypad *keypad_data, u32 offset)\n\u003e\u003e +{\n\u003e\u003e +       return __raw_readl(keypad_data-\u003ebase +\n\u003e\u003e +                               keypad_data-\u003eirqreg_offset + offset);\n\u003e\u003e +}\n\u003e\u003e +\n\u003e\u003e +static void kbd_write_irqreg(struct omap4_keypad *keypad_data,\n\u003e\u003e +                            u32 offset, u32 value)\n\u003e\u003e +{\n\u003e\u003e +       __raw_writel(value,\n\u003e\u003e +                    keypad_data-\u003ebase + keypad_data-\u003eirqreg_offset + offset);\n\u003e\u003e +}\n\u003e\u003e +\n\u003e\u003e +\n\u003e\u003e  /* Interrupt handler */\n\u003e\u003e  static irqreturn_t omap4_keypad_interrupt(int irq, void *dev_id)\n\u003e\u003e  {\n\u003e\u003e @@ -91,12 +124,11 @@ static irqreturn_t omap4_keypad_interrupt(int irq, void *dev_id)\n\u003e\u003e        u32 *new_state \u003d (u32 *) key_state;\n\u003e\u003e\n\u003e\u003e        /* Disable interrupts */\n\u003e\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e\u003e -                    keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e\u003e +                        OMAP4_VAL_IRQDISABLE);\n\u003e\u003e\n\u003e\u003e -       *new_state \u003d __raw_readl(keypad_data-\u003ebase + OMAP4_KBD_FULLCODE31_0);\n\u003e\u003e -       *(new_state + 1) \u003d __raw_readl(keypad_data-\u003ebase\n\u003e\u003e -                                               + OMAP4_KBD_FULLCODE63_32);\n\u003e\u003e +       *new_state \u003d kbd_readl(keypad_data, OMAP4_KBD_FULLCODE31_0);\n\u003e\u003e +       *(new_state + 1) \u003d kbd_readl(keypad_data, OMAP4_KBD_FULLCODE63_32);\n\u003e\u003e\n\u003e\u003e        for (row \u003d 0; row \u003c keypad_data-\u003erows; row++) {\n\u003e\u003e                changed \u003d key_state[row] ^ keypad_data-\u003ekey_state[row];\n\u003e\u003e @@ -121,12 +153,13 @@ static irqreturn_t omap4_keypad_interrupt(int irq, void *dev_id)\n\u003e\u003e                sizeof(keypad_data-\u003ekey_state));\n\u003e\u003e\n\u003e\u003e        /* clear pending interrupts */\n\u003e\u003e -       __raw_writel(__raw_readl(keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS),\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e\u003e +                        kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));\n\u003e\u003e\n\u003e\u003e        /* enable interrupts */\n\u003e\u003e -       __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e\u003e +               OMAP4_DEF_IRQENABLE_EVENTEN |\n\u003e\u003e +                               OMAP4_DEF_IRQENABLE_LONGKEY);\n\u003e\u003e\n\u003e\u003e        return IRQ_HANDLED;\n\u003e\u003e  }\n\u003e\u003e @@ -139,16 +172,17 @@ static int omap4_keypad_open(struct input_dev *input)\n\u003e\u003e\n\u003e\u003e        disable_irq(keypad_data-\u003eirq);\n\u003e\u003e\n\u003e\u003e -       __raw_writel(OMAP4_VAL_FUNCTIONALCFG,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_CTRL);\n\u003e\u003e -       __raw_writel(OMAP4_VAL_DEBOUNCINGTIME,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_DEBOUNCINGTIME);\n\u003e\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e\u003e -       __raw_writel(OMAP4_DEF_IRQENABLE_EVENTEN | OMAP4_DEF_IRQENABLE_LONGKEY,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e\u003e -       __raw_writel(OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA,\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_WAKEUPENABLE);\n\u003e\u003e +       kbd_writel(keypad_data, OMAP4_KBD_CTRL,\n\u003e\u003e +                       OMAP4_VAL_FUNCTIONALCFG);\n\u003e\u003e +       kbd_writel(keypad_data, OMAP4_KBD_DEBOUNCINGTIME,\n\u003e\u003e +                       OMAP4_VAL_DEBOUNCINGTIME);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e\u003e +                       OMAP4_VAL_IRQDISABLE);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e\u003e +                       OMAP4_DEF_IRQENABLE_EVENTEN |\n\u003e\u003e +                               OMAP4_DEF_IRQENABLE_LONGKEY);\n\u003e\u003e +       kbd_writel(keypad_data, OMAP4_KBD_WAKEUPENABLE,\n\u003e\u003e +                       OMAP4_DEF_WUP_EVENT_ENA | OMAP4_DEF_WUP_LONG_KEY_ENA);\n\u003e\u003e\n\u003e\u003e        enable_irq(keypad_data-\u003eirq);\n\u003e\u003e\n\u003e\u003e @@ -162,12 +196,12 @@ static void omap4_keypad_close(struct input_dev *input)\n\u003e\u003e        disable_irq(keypad_data-\u003eirq);\n\u003e\u003e\n\u003e\u003e        /* Disable interrupts */\n\u003e\u003e -       __raw_writel(OMAP4_VAL_IRQDISABLE,\n\u003e\u003e -                    keypad_data-\u003ebase + OMAP4_KBD_IRQENABLE);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQENABLE,\n\u003e\u003e +                        OMAP4_VAL_IRQDISABLE);\n\u003e\u003e\n\u003e\u003e        /* clear pending interrupts */\n\u003e\u003e -       __raw_writel(__raw_readl(keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS),\n\u003e\u003e -                       keypad_data-\u003ebase + OMAP4_KBD_IRQSTATUS);\n\u003e\u003e +       kbd_write_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS,\n\u003e\u003e +                        kbd_read_irqreg(keypad_data, OMAP4_KBD_IRQSTATUS));\n\u003e\u003e\n\u003e\u003e        enable_irq(keypad_data-\u003eirq);\n\u003e\u003e\n\u003e\u003e @@ -182,6 +216,7 @@ static int __devinit omap4_keypad_probe(struct platform_device *pdev)\n\u003e\u003e        struct resource *res;\n\u003e\u003e        resource_size_t size;\n\u003e\u003e        unsigned int row_shift, max_keys;\n\u003e\u003e +       int rev;\n\u003e\u003e        int irq;\n\u003e\u003e        int error;\n\u003e\u003e\n\u003e\u003e @@ -241,11 +276,40 @@ static int __devinit omap4_keypad_probe(struct platform_device *pdev)\n\u003e\u003e        keypad_data-\u003erows \u003d pdata-\u003erows;\n\u003e\u003e        keypad_data-\u003ecols \u003d pdata-\u003ecols;\n\u003e\u003e\n\u003e\u003e +       /*\n\u003e\u003e +        * Mark device as active (and wake up its parent) so we can read\n\u003e\u003e +        * revision register.\n\u003e\u003e +        */\n\u003e\u003e +       error \u003d pm_runtime_set_active(\u0026pdev-\u003edev);\n\u003e\u003e +       if (error) {\n\u003e\u003e +               dev_err(\u0026pdev-\u003edev, \"pm_runtime_set_active() failed\\n\");\n\u003e\u003e +               goto err_unmap;\n\u003e\u003e +       }\n\u003e\u003e +\n\u003e\u003e +       rev \u003d __raw_readl(keypad_data-\u003ebase + OMAP4_KBD_REVISION);\n\u003e\u003e +       rev \u0026\u003d 0x03 \u003c\u003c 30;\n\u003e\u003e +       rev \u003e\u003e\u003d 30;\n\u003e\u003e +       switch (rev) {\n\u003e\u003e +       case KBD_REVISION_OMAP4:\n\u003e\u003e +               keypad_data-\u003ereg_offset \u003d 0x00;\n\u003e\u003e +               keypad_data-\u003eirqreg_offset \u003d 0x00;\n\u003e\u003e +               break;\n\u003e\u003e +       case KBD_REVISION_OMAP5:\n\u003e\u003e +               keypad_data-\u003ereg_offset \u003d 0x10;\n\u003e\u003e +               keypad_data-\u003eirqreg_offset \u003d 0x0c;\n\u003e\u003e +               break;\n\u003e\u003e +       default:\n\u003e\u003e +               dev_err(\u0026pdev-\u003edev,\n\u003e\u003e +                       \"Keypad reports unsupported revision %d\", rev);\n\u003e\u003e +               error \u003d -EINVAL;\n\u003e\u003e +               goto err_pm_suspended;\n\u003e\u003e +       }\n\u003e\u003e +\n\u003e\u003e        /* input device allocation */\n\u003e\u003e        keypad_data-\u003einput \u003d input_dev \u003d input_allocate_device();\n\u003e\u003e        if (!input_dev) {\n\u003e\u003e                error \u003d -ENOMEM;\n\u003e\u003e -               goto err_unmap;\n\u003e\u003e +               goto err_pm_suspended;\n\u003e\u003e        }\n\u003e\u003e\n\u003e\u003e        input_dev-\u003ename \u003d pdev-\u003ename;\n\u003e\u003e @@ -281,6 +345,7 @@ static int __devinit omap4_keypad_probe(struct platform_device *pdev)\n\u003e\u003e        }\n\u003e\u003e\n\u003e\u003e        pm_runtime_enable(\u0026pdev-\u003edev);\n\u003e\u003e +       pm_runtime_put_sync(\u0026pdev-\u003edev);\n\u003e\u003e\n\u003e\u003e        error \u003d input_register_device(keypad_data-\u003einput);\n\u003e\u003e        if (error \u003c 0) {\n\u003e\u003e @@ -296,6 +361,8 @@ err_pm_disable:\n\u003e\u003e        free_irq(keypad_data-\u003eirq, keypad_data);\n\u003e\u003e  err_free_input:\n\u003e\u003e        input_free_device(input_dev);\n\u003e\u003e +err_pm_suspended:\n\u003e\u003e +       pm_runtime_set_suspended(\u0026pdev-\u003edev);\n\u003e\u003e  err_unmap:\n\u003e\u003e        iounmap(keypad_data-\u003ebase);\n\u003e\u003e  err_release_mem:\n\nFrom: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\nDate: Mon, 10 Oct 2011 20:52:05 +0530\nSubject: [PATCH] Input: omap-keypad: dynamically handle register offsets\n\nKeypad controller register offsets are different for omap4\nand omap5. Handle these offsets through static mapping and\nassign these mappings during run time.\n\nTested on omap4430 sdp with 3.4-rc3.\nTested on omap5430evm with 3.1-custom kernel.\n\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Felipe Balbi \u003cbalbi@ti.com\u003e\nSigned-off-by: G, Manjunath Kondaiah \u003cmanjugk@ti.com\u003e\nSigned-off-by: Sourav Poddar \u003csourav.poddar@ti.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f57fe78ee48f7aa1f859e7e9c4d6987276a72ecc",
      "tree": "9e9aee6c443c43c7fd9f6ba1a70f2fa939cff540",
      "parents": [
        "5d066474cd64a5877391e3711e8c7973e6478cc8"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Sun Apr 22 23:18:11 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Apr 23 23:35:53 2012 -0700"
      },
      "message": "Input: atkbd - fix language in a printed message\n\nI believe that \"trying to access hardware\" is more correct English\nthan \"trying access hardware\".\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "57b8628bb0ac4e47c806e45c5bbd89282e93869b",
      "tree": "ee9289f0898054474b7e5054abdb3ffb78666436",
      "parents": [
        "486c8aba39e5f194519cd5c0e85e5d1de8b74b03",
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Apr 21 23:28:35 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Apr 21 23:28:35 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc4\u0027 into next\n"
    },
    {
      "commit": "71f3d070a309504cdfef87b9e98836395b75ae0e",
      "tree": "75ed4cbae62fece04fd06a15a7460fa8215bb2fa",
      "parents": [
        "bcad87bd92f4331d4422c1afd571e66f7f5c95d6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 22:33:09 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 23:08:48 2012 -0700"
      },
      "message": "Input: tc3589x-keypad - remove unnecessary checks\n\nsettle_time and debounce_period are u8 and thus can not be greater than\nTC3589x_MAX_DEBOUNCE_SETTLE which is 255.\n\nThere also no need to mask out nibbles form board-\u003ekrow and board-\u003ekcol\nas we validate that they are in correct range.\n\nReported-by: Werner \u003cw.landgraf@ru.ru\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b83643ebf2242388585e95c9a8d2353745d77cfd",
      "tree": "453d51b7f20c37d90d3b8d168379ee50978669dc",
      "parents": [
        "01111fcd42b050bdb7113a7c2c0aed2eaef67b53"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 22:33:09 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 23:06:52 2012 -0700"
      },
      "message": "Input: matrix-keypad - undo GPIO setup if input_register_device fails\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "01111fcd42b050bdb7113a7c2c0aed2eaef67b53",
      "tree": "f6ecbee8e3962c8ff7c07c3f3997658fe5038707",
      "parents": [
        "0508c19a6fddd1ba5495004370e4fc2fd4a7d33a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 22:33:08 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 23:06:49 2012 -0700"
      },
      "message": "Input: matrix-keypad - allocate keycodes with keypad structure\n\nInstead of allocating and managing keymap separately from the keypad\nstructure stick it at the end as a variable-length array.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0508c19a6fddd1ba5495004370e4fc2fd4a7d33a",
      "tree": "a4c98a2a843bc7cbe9816ddce409012ca98aebc7",
      "parents": [
        "5cb727a86780fcac34de871cd12bea3f744d6be2"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 22:33:08 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Apr 20 23:06:45 2012 -0700"
      },
      "message": "Input: matrix-keypad - fix \u0027duplicate const\u0027 sparse warning\n\nSIMPLE_DEV_PM_OPS already defines constant dev_pm_ops.\n\nAlso guard PM methods with CONFIG_PM_SLEEP and get rid of some\nunneeded #ifdefs.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b5e9528bd19c6a3379aac468186f41d2bda48b04",
      "tree": "cfa21adb31d9cc7cc707a0a938bcb8454b33dd4c",
      "parents": [
        "d568778298f58330bcc8cc23845676d1143c8d33"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 11 00:13:50 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 11 00:14:16 2012 -0700"
      },
      "message": "Input: ep93xx_keypad - switch to using dev_pm_ops\n\nAlso use CONFIG_PM_SLEEP instead of CONFIG_PM to guard PM methods.\n\nAcked-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "65ac9f7a23c934ee8c40dc20955e75db4924bfea",
      "tree": "7baa3439e9b0a774073473cccef6960e7f77bc6e",
      "parents": [
        "fa7f86d157781515b74d658120552eafd890f4de"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Apr 03 23:50:17 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 04 09:25:43 2012 -0700"
      },
      "message": "Input: serio - use module_serio_driver\n\nThis patch converts the drivers in drivers/input/* to use\nmodule_serio_driver() macro which makes the code smaller and\na bit simpler.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0bf25a45386f284d591530ef174eaa9e44d84956",
      "tree": "128d3124b99531345cfbfcf4045ec03c7996eab1",
      "parents": [
        "5a966261c0dfb836f54444ff3893638802183cac"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue Apr 03 13:39:44 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Apr 04 09:25:39 2012 -0700"
      },
      "message": "Input: add support for LM8333 keypads\n\nThis driver adds support for the keypad part of the LM8333 and is\nprepared for possible GPIO/PWM drivers. Note that this is not a MFD\nbecause you cannot disable the keypad functionality which, thus,\nhas to be handled by the core anyhow.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2f7fa1be66dce77608330c5eb918d6360b5525f2",
      "tree": "05dbfe86d2b192389da11686fa380e7ae45be225",
      "parents": [
        "1338631433d8de7cf85b7e8fcf1a389ad89e7a8f",
        "f182394033d639679264d61e6dca62761e659ff7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 23:17:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 23:17:44 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull 2nd round of input updates from Dmitry Torokhov:\n - update to Wacom driver to support wireless devices\n - update to Sentelci touchpad driver to support newer hardware\n - update to gpio-keys driver to support \"interrupt-only\" keys\n - fixups to earlier commits\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: wacom - check for allocation failure in probe()\n  Input: tegra-kbc - allocate pdata before using it\n  Input: amijoy - add missing platform check\n  Input: wacom - wireless battery status\n  Input: wacom - create inputs when wireless connect\n  Input: wacom - wireless monitor framework\n  Input: wacom - isolate input registration\n  Input: sentelic - improve packet debugging information\n  Input: sentelic - minor code cleanup\n  Input: sentelic - enabling absolute coordinates output for newer hardware\n  Input: sentelic - refactor code for upcoming new hardware support\n  Input: gpio_keys - add support for interrupt only keys\n  Input: gpio_keys - consolidate key destructor code\n  Input: revert \"gpio_keys - switch to using threaded IRQs\"\n  Input: gpio_keys - constify platform data\n  Input: spear-keyboard - remove kbd_set_plat_data()\n"
    },
    {
      "commit": "9e4db1c3eed55c22328d8022c2c80adb3093833f",
      "tree": "9643545e6bd182f1d3e19942f590a6a1e3198320",
      "parents": [
        "de8856d2c11f562c60ed9340a83db4a4f829a6e6",
        "aae528d9a8ad79d4b21b1b723abc9447fdb0d200"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:17:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:17:02 2012 -0700"
      },
      "message": "Merge branch \u0027platforms\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM platform updates from Russell King:\n \"This covers platform stuff for platforms I have a direct interest in\n  (iow, I have the hardware).  Essentially:\n   - as we no longer support any other Acorn platforms other than RiscPC\n     anymore, we can collect all that code into mach-rpc.\n   - convert Acorn expansion card stuff to use IRQ allocation functions,\n     and get rid of NO_IRQ from there.\n   - cleanups to the ebsa110 platform to move some private stuff out of\n     its header files.\n   - large amount of SA11x0 updates:\n   - conversion of private DMA implementation to DMA engine support\n     (this actually gives us greater flexibility in drivers over the old\n     API.)\n   - re-worked ucb1x00 updates - convert to genirq, remove sa11x0\n     dependencies, fix various minor issues\n   - move platform specific sa11x0 framebuffer data into platform files\n     in arch/arm instead of keeping this in the driver itself\n   - update sa11x0 IrDA driver for DMA engine, and allow it to use DMA\n     for SIR transmissions as well as FIR\n   - rework sa1111 support for genirq, and irq allocation\n   - fix sa1111 IRQ support so it works again\n   - use sparse IRQ support\n\n  After this, I have one more pull request remaining from my current\n  set, which I think is going to be the most problematical as it\n  generates 8 conflicts.\"\n\nFixed up the trivial conflict in arch/arm/mach-rpc/Makefile as per\nRussell.\n\n* \u0027platforms\u0027 of git://git.linaro.org/people/rmk/linux-arm: (125 commits)\n  ARM: 7343/1: sa11x0: convert to sparse IRQ\n  ARM: 7342/2: sa1100: prepare for sparse irq conversion\n  ARM: 7341/1: input: prepare jornada720 keyboard and ts for sa11x0 sparse irq\n  ARM: 7340/1: rtc: sa1100: include mach/irqs.h instead of asm/irq.h\n  ARM: sa11x0: remove unused DMA controller definitions\n  ARM: sa11x0: remove old SoC private DMA driver\n  USB: sa1111: add hcd .reset method\n  USB: sa1111: add OHCI shutdown methods\n  USB: sa1111: reorganize ohci-sa1111.c\n  USB: sa1111: get rid of nasty printk(KERN_DEBUG \"%s: ...\", __FILE__)\n  USB: sa1111: sparse and checkpatch cleanups\n  ARM: sa11x0: don\u0027t static map sa1111\n  ARM: sa1111: use dev_err() rather than printk()\n  ARM: sa1111: cleanup sub-device registration and unregistration\n  ARM: sa1111: only setup DMA for DMA capable devices\n  ARM: sa1111: register sa1111 devices with dmabounce in bus notifier\n  ARM: sa1111: move USB interface register definitions to ohci-sa1111.c\n  ARM: sa1111: move PCMCIA interface register definitions to sa1111_generic.c\n  ARM: sa1111: move PS/2 interface register definitions to sa1111p2.c\n  ARM: sa1111: delete unused physical GPIO register definitions\n  ...\n"
    },
    {
      "commit": "131c713fd96e251fcb18f4d2d05f263aa41bb11f",
      "tree": "b5f1df0edbf89e8952ae251f49059b6a672f0731",
      "parents": [
        "3183968cbfb76c02f357151f66a1260101f9d82c"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Mon Mar 26 23:55:24 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 27 00:14:35 2012 -0700"
      },
      "message": "Input: tegra-kbc - allocate pdata before using it\n\nFollowing commit broke DT support for tegra-kbc by removing pdata\nallocation completely:\n\n   commit 023cea0ecfa2df034096c3f4afa796a0b2d1188a\n   Author: Shridhar Rasal \u003csrasal@nvidia.com\u003e\n   Date:   Fri Feb 3 00:27:30 2012 -0800\n\n       Input: tegra-kbc - allow skipping setting up some of GPIO pins\n\nThis patch restores it.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3638dd2b45ceac2e9526f0ee83b0923db3546979",
      "tree": "65c28ce1080bc827c3188de63e86566a5977f1cf",
      "parents": [
        "905cdc88b6eb9074c203be4883bce6c170757338"
      ],
      "author": {
        "name": "Rob Herring",
        "email": "rob.herring@calxeda.com",
        "time": "Thu Feb 23 14:28:36 2012 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sun Mar 25 23:57:19 2012 +0100"
      },
      "message": "ARM: 7341/1: input: prepare jornada720 keyboard and ts for sa11x0 sparse irq\n\nIn preparation for sa11x0 sparse irq conversion, explicitly include\nmach/irqs.h as it will not be included for sparse irq.\n\nSigned-off-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "d8ee4a1c90529ed06e1aa43d034986649f7b670b",
      "tree": "5a9aec5fe8a9b146799842a2dd284495051621e1",
      "parents": [
        "a16ca23935afc0d72215b139720bd07df3162a9f"
      ],
      "author": {
        "name": "Laxman Dewangan",
        "email": "ldewangan@nvidia.com",
        "time": "Mon Mar 19 17:54:31 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 19 17:56:18 2012 -0700"
      },
      "message": "Input: gpio_keys - add support for interrupt only keys\n\nSome of buttons, like power-on key or onkey, may only generate interrupts\nwhen pressed and not actually be mapped as gpio in the system. Allow\nsetting gpio to invalid value and specify IRQ instead to support such\nkeys. The debounce timer is used not to debounce but to ignore new IRQs\ncoming while button is kept pressed.\n\nSigned-off-by: Laxman Dewangan \u003cldewangan@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a16ca23935afc0d72215b139720bd07df3162a9f",
      "tree": "bcfc8bfcaed96a60728b803632ce973ca6cab0dd",
      "parents": [
        "6709c9a5d8c53092cbe89128df4e0a549e93133b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Mar 18 23:36:30 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 19 17:56:14 2012 -0700"
      },
      "message": "Input: gpio_keys - consolidate key destructor code\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "6709c9a5d8c53092cbe89128df4e0a549e93133b",
      "tree": "55f83aeda4893a9df56a4395cbd82889687a2040",
      "parents": [
        "d9080921aa32c70a95476ce387e973787b892591"
      ],
      "author": {
        "name": "David Jander",
        "email": "david@protonic.nl",
        "time": "Sun Mar 18 23:36:29 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 19 17:56:04 2012 -0700"
      },
      "message": "Input: revert \"gpio_keys - switch to using threaded IRQs\"\n\nrequest_any_context_irq() should handle the case when using GPIO expanders\nthat themselves use threaded IRQs, and so the premise of change\n7e2ecdf438bb479e2b4667fc16b1a84d6348da04 is incorrect.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d9080921aa32c70a95476ce387e973787b892591",
      "tree": "8fd5bc1886551a045116ba9d60f2fb3fe42c7611",
      "parents": [
        "598d3b707979847d96bc4bef455ac3a0e1ec45bd"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Mar 18 23:36:29 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Mar 19 17:55:45 2012 -0700"
      },
      "message": "Input: gpio_keys - constify platform data\n\nThe platform data should not be altered and therefore should be\naccessed through const pointers.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1b92c1cf6b638e7cbe9fdaac3f6efb8874f5cc02",
      "tree": "88e7cfcd088df7eba9b705285c8e0d8ba7bbd632",
      "parents": [
        "ca83922e1c51c090e62bd42f3c12c84f49374a9e"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Fri Mar 16 23:05:41 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 16 23:06:19 2012 -0700"
      },
      "message": "Input: convert I2C drivers to use module_i2c_driver()\n\nThis patch converts the drivers in drivers/input/* to use the\nmodule_i2c_driver() macro which makes the code smaller and a bit\nsimpler.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0f1142a514e101076bc01de2f93b242693d0f16f",
      "tree": "4cbc011165e9835d33bde8641114b3a8a86b0ce6",
      "parents": [
        "043916608c4b309e98a1650520ed4e88ec5e9123"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "balbi@ti.com",
        "time": "Fri Mar 16 22:47:48 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 16 22:49:46 2012 -0700"
      },
      "message": "Input: omap4-keypad - move platform_data to \u003clinux/platform_data\u003e\n\nThis patch allows us to drop the OMAP dependency from the OMAP4 keypad\ndriver.\n\nSigned-off-by: Felipe Balbi \u003cbalbi@ti.com\u003e\nSigned-off-by: Sourav Poddar \u003csourav.poddar@ti.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "145e97348a3066cf71038d02392aa8063550de6f",
      "tree": "2ef6ed98478e18030b3c266b4951e24075f8510c",
      "parents": [
        "2cd36877ad1c61429e00c099b6903ebcd936ca00"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Tue Mar 13 21:36:29 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 13 21:37:07 2012 -0700"
      },
      "message": "Input: tegra-kbc - revise device tree support\n\nThis is an incremental patch updating to the revised bindings for\nmatrix keyboards.\n\nThis includes an optional \"linux,fn-keymap\" binding that is not yet\nimplemented, that will be used to specify the Fn-key modifier layout\nif needed.\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2cd36877ad1c61429e00c099b6903ebcd936ca00",
      "tree": "c9f7618f3b49c2ba5516c9023ba7e5604aa6b08c",
      "parents": [
        "b51425becfe127e0c17a8501ffa079b37241ed11"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Tue Mar 13 21:35:51 2012 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Mar 13 21:37:04 2012 -0700"
      },
      "message": "Input: of_keymap - add device tree bindings for simple key matrices\n\nThis adds a simple device tree binding for simple key matrix data and\na helper to fill in the platform data.\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nAcked-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b675b3667f6729dcd1036a2a129b35445947f905",
      "tree": "0d58791e9063d3ca2c352da6f3e7df2bdb876f9d",
      "parents": [
        "104a5f3cad8f2f27cadbdf0029400ecd9e17ccc0",
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 09 10:55:17 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 09 10:55:17 2012 -0800"
      },
      "message": "Merge commit \u0027v3.3-rc6\u0027 into next\n"
    },
    {
      "commit": "f79e30a809d829d094c0e33d3279c43aca71472f",
      "tree": "aec43fe4510419716ff8631f8779240227f3a8ec",
      "parents": [
        "f8354c60ca2212810c168d8f992559226c8c0e71"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@st.com",
        "time": "Fri Feb 24 00:51:37 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Feb 28 01:18:32 2012 -0800"
      },
      "message": "Input: spear-keyboard - provide thaw and poweroff routines\n\nThaw and poweroff routines are missing for spear-keyboard. They are\nrequired for:\n- Error case scenarios during freeze\n- Using test features, of hibernate.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Rajeev Kumar \u003crajeev-dlh.kumar@st.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f8354c60ca2212810c168d8f992559226c8c0e71",
      "tree": "a9d8d77c9e6c7e76fa982c757e0eb82d98024998",
      "parents": [
        "5e238b548aac6227ce296d41364a3f7b10caff44"
      ],
      "author": {
        "name": "Rajeev Kumar",
        "email": "rajeev-dlh.kumar@st.com",
        "time": "Fri Feb 24 00:51:40 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Feb 28 01:18:32 2012 -0800"
      },
      "message": "Input: spear-keyboard - configure device according to supplied mode\n\nLet platform pass mode information to keyboard driver according to which\nit configures itself. The mode can be\n - KEYPAD_9x9     0\n - KEYPAD_6x6     1\n - KEYPAD_2x2     2\n\nSigned-off-by: Rajeev Kumar \u003crajeev-dlh.kumar@st.com\u003e\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@st.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "31c150a11c867da233a7b5e13b45bcbd3a796bde",
      "tree": "58202fc8e93833f3ea3e52f9cb0093e61265d73d",
      "parents": [
        "4554c135a0a017f4cd96f7c0612cb7ca78c68d08",
        "82b982c9a697e7be0745523a53334fe38a4582c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 04 10:57:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 04 10:57:42 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: i8042 - add Lenovo Ideapad U455 to \u0027reset\u0027 blacklist\n  Input: serio_raw - return proper result when serio_raw_read fails\n  Input: document device properties\n  Input: twl4030_keypad - fix comment (trivial)\n  Input: gpio_keys - fix struct device declared inside parameter list\n  Input: evdev - fix variable initialisation\n"
    },
    {
      "commit": "023cea0ecfa2df034096c3f4afa796a0b2d1188a",
      "tree": "5a17176ee7f8cfe276dc79c9d15601aebb47a73f",
      "parents": [
        "8491ee1093c476ea3a9a19ab8593d8531cab40f7"
      ],
      "author": {
        "name": "Shridhar Rasal",
        "email": "srasal@nvidia.com",
        "time": "Fri Feb 03 00:27:30 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Feb 03 00:29:06 2012 -0800"
      },
      "message": "Input: tegra-kbc - allow skipping setting up some of GPIO pins\n\nAllow marking some of GPIO pins as ignored to to avoid continuously\ngenerating KBC input events.\n\nSigned-off-by: Shridhar Rasal \u003csrasal@nvidia.com\u003e\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "4936f97cbb99c19680ea6a3cc0148ebe51f0eb68",
      "tree": "b584397592116c6a47739682a9b4b9c07a9faa44",
      "parents": [
        "b18db3d91234c03ad080d317878c7c77672ba326"
      ],
      "author": {
        "name": "Felipe Contreras",
        "email": "felipe.contreras@gmail.com",
        "time": "Wed Feb 01 09:12:23 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Feb 01 09:14:03 2012 -0800"
      },
      "message": "Input: twl4030_keypad - fix comment (trivial)\n\nAnd trivial whitespace fixes.\n\nSigned-off-by: Felipe Contreras \u003cfelipe.contreras@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b6834b02e476ff0e99b6814665839e37affa31f0",
      "tree": "68dade868915a953f5e8fbb73423c110542ee467",
      "parents": [
        "82f6aba8eacf9dec23459832c1a0c789db28faa3"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Sun Jan 22 23:27:54 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 23 00:02:46 2012 -0800"
      },
      "message": "Input: tegra-kbc - enable key interrupt for wakeup\n\nEnable keypress interrupt to support wakeup from low power state.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "69898e512a4c27017aec43796bef8fe1dd1ec661",
      "tree": "fe0d574d9cbddff98fee925546dff699ade05b8f",
      "parents": [
        "409e15442fc7f7ae9d025f3ea3fdf3c60070314f"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Sun Jan 22 23:27:54 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 23 00:02:36 2012 -0800"
      },
      "message": "Input: samsung-keypad - don\u0027t synchronise with runtime PM put\n\nWe don\u0027t actually care if the device has been runtime suspended immediately\nso we can just drop the reference without waiting for any state change to\nbe implemented. This may allow us to avoid some suspend/resume cycles and\nis a bit more friendly to the rest of the system.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "89f0f170fbec6290637c3172cb08ddf31f211ef0",
      "tree": "c550e3a4ab12dc1d8d832032b40847bbdad6836e",
      "parents": [
        "db3dbd093a7cbb201f169ace35f6cdff562e5a77"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jan 22 23:27:54 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 23 00:02:18 2012 -0800"
      },
      "message": "Input: nomadik-ske-keypad - convert to using SIMPLE_DEV_PM_OPS\n\nAlso proper guard for system suspend/resume methods is CONFIG_PM_SLEEP,\nnot CONFIG_PM.\n\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "db3dbd093a7cbb201f169ace35f6cdff562e5a77",
      "tree": "2b2d30e3cad8c9d5bb6c3bde120982ef686b5fae",
      "parents": [
        "dab78d7924598ea4031663dd10db814e2e324928"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jan 22 23:27:29 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jan 23 00:02:12 2012 -0800"
      },
      "message": "Input: nomadik-ske-keypad - do not assign driver\u0027s probe() method\n\nBecause we are using platform_device_probe() to register the driver\nwe do not need to assign driver\u0027s probe method. We also can mark\nske_keypad_probe(), together with ske_keypad_chip_init(), as __init\ninstead of __devinit.\n\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "2485a4b610171f4e1c4ab0d053569747795c1bbe",
      "tree": "1a4532e447c2640bc1378e25e1ead9a7ba7847a5",
      "parents": [
        "6733e54b669c600eb8e451939ad55130db664fed",
        "52965cc012f7a3cf35f06485ec275ebf3b3fddae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:40:41 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 12 12:40:41 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: bcm5974 - set BUTTONPAD property\n  Input: serio_raw - return proper result when serio_raw_write fails\n  Input: serio_raw - really signal HUP upon disconnect\n  Input: serio_raw - remove stray semicolon\n  Input: revert some over-zealous conversions to module_platform_driver()\n"
    },
    {
      "commit": "d3d25808df236f27ba34125e7cf90de98fbf346c",
      "tree": "41101bbce35363c62749f547b32001842589800d",
      "parents": [
        "da733563be5a9da26fe81d9f007262d00b846e22"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 10 15:08:01 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jan 10 23:12:46 2012 -0800"
      },
      "message": "Input: revert some over-zealous conversions to module_platform_driver()\n\nRecent conversion to module_platform_driver() went a bit too far and\nconverted not only drivers that used platform_driver_register() but\nalso ones using platform_driver_probe(), breaking them in process.\n\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "dbe950f201a8edd353b0bd9079e8d536ee4ce37c",
      "tree": "dffbada6b3d33cc67383758570de22b4f45693b6",
      "parents": [
        "f62f61917d72c1fb0101ad405664f6fc868d676b",
        "da733563be5a9da26fe81d9f007262d00b846e22"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 10:55:52 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (64 commits)\n  Input: tc3589x-keypad - add missing kerneldoc\n  Input: ucb1400-ts - switch to using dev_xxx() for diagnostic messages\n  Input: ucb1400_ts - convert to threaded IRQ\n  Input: ucb1400_ts - drop inline annotations\n  Input: usb1400_ts - add __devinit/__devexit section annotations\n  Input: ucb1400_ts - set driver owner\n  Input: ucb1400_ts - convert to use dev_pm_ops\n  Input: psmouse - make sure we do not use stale methods\n  Input: evdev - do not block waiting for an event if fd is nonblock\n  Input: evdev - if no events and non-block, return EAGAIN not 0\n  Input: evdev - only allow reading events if a full packet is present\n  Input: add driver for pixcir i2c touchscreens\n  Input: samsung-keypad - implement runtime power management support\n  Input: tegra-kbc - report wakeup key for some platforms\n  Input: tegra-kbc - add device tree bindings\n  Input: add driver for AUO In-Cell touchscreens using pixcir ICs\n  Input: mpu3050 - configure the sampling method\n  Input: mpu3050 - ensure we enable interrupts\n  Input: mpu3050 - add of_match table for device-tree probing\n  Input: sentelic - document the latest hardware\n  ...\n\nFix up fairly trivial conflicts (device tree matching conflicting with\nsome independent cleanups) in drivers/input/keyboard/samsung-keypad.c\n"
    },
    {
      "commit": "dab78d7924598ea4031663dd10db814e2e324928",
      "tree": "c846ae8cd9018007962b073249970cd76240c2a3",
      "parents": [
        "bd100e2ca16b929c7096e58a0ab28141476e48ae"
      ],
      "author": {
        "name": "Naga Radhesh",
        "email": "naga.radheshy@stericsson.com",
        "time": "Wed Jan 04 22:19:14 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jan 04 22:20:09 2012 -0800"
      },
      "message": "Input: tc3589x-keypad - add missing kerneldoc\n\nThis adds two missing kerneldoc entries for the TC3589x\nkeypad driver.\n\nSigned-off-by: Naga Radhesh \u003cnaga.radheshy@stericsson.com\u003e\nReviewed-by: Srinidhi Kasagar \u003csrinidhi.kasagar@stericsson.com\u003e\nSigned-off-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "48c98b1bb85a09adf4aa27316682d573e1f37ebf",
      "tree": "ca898d31965df3f7c94d7100a7ce81e58f93fe66",
      "parents": [
        "fd0fc21350838d3073647be173242db0c58744c8"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Dec 29 09:58:16 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 00:39:19 2011 -0800"
      },
      "message": "Input: samsung-keypad - implement runtime power management support\n\nWhen runtime power management is enabled put the Samsung keypad driver\ninto suspend mode with wakeups disabled whenever the device is open but\na key is not actually been pressed. As well as saving a trivial amount of\npower this will support the use of SoC wide idle modes which put the entire\ndevice into a retention mode and use explicit wakeup sources to exit.\n\nSince not all of the interrupt controllers used with the driver support\nset_irq_wake() (though they all do the right thing) and there\u0027s a nasty\nWARN() when we disable wake after failing to enable it keep track of the\ncurrent wake status from runtime PM and only disable wake if we managed\nto enable it; I\u0027m not entirely sure why this doesn\u0027t affect the existing\nuses of the API in the driver.\n\nSystem suspend is unaffected as the driver core will runtime resume any\nsuspended devices prior to system suspend.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n\nConflicts:\n\n\tdrivers/input/keyboard/samsung-keypad.c\n"
    },
    {
      "commit": "fd0fc21350838d3073647be173242db0c58744c8",
      "tree": "8139c545185c3bf034a846f9e15abc1b3dda52c1",
      "parents": [
        "a445c7f0afb9114ef3de2d123f2c851787cf9d11"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Thu Dec 29 19:27:44 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 00:27:00 2011 -0800"
      },
      "message": "Input: tegra-kbc - report wakeup key for some platforms\n\nTegra kbc cannot detect exact keypress causing wakeup in interrupt mode.\nAllow wakeup keypress to be reported for certain platforms.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nAcked-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "a445c7f0afb9114ef3de2d123f2c851787cf9d11",
      "tree": "554783015eee8cc895ee73ca0f5137ab0984f9b3",
      "parents": [
        "5245db49d44e6033fece4d9f5946f8970c0d9ca1"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Thu Dec 29 09:58:16 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Dec 30 00:26:00 2011 -0800"
      },
      "message": "Input: tegra-kbc - add device tree bindings\n\nThis adds a simple device tree binding to the tegra keyboard controller.\n\nAlso, mark the default keymap as __devinitdata since it is not referenced\nafter boot.\n\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b3d6ac3e5f937440a362c0fa187257fa1197f5b9",
      "tree": "f9d535987acc864a3948174e893077b5f6543138",
      "parents": [
        "8742e0441d6530d40d85d65a6bcc5a6c0c4eab13"
      ],
      "author": {
        "name": "Thomas Abraham",
        "email": "thomas.abraham@linaro.org",
        "time": "Wed Nov 02 19:37:22 2011 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Dec 23 10:07:10 2011 +0900"
      },
      "message": "input: samsung-keypad: Add device tree support\n\nAdd device tree based discovery support for Samsung\u0027s keypad controller.\n\nCc: Joonyoung Shim \u003cjy0922.shim@samsung.com\u003e\nCc: Donghwa Lee \u003cdh09.lee@samsung.com\u003e\nSigned-off-by: Thomas Abraham \u003cthomas.abraham@linaro.org\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    },
    {
      "commit": "aeec05171d45700d9e97fec485afea0f19bc2635",
      "tree": "0f14697f85c0f52b7608cc78f63a2d3d33e03355",
      "parents": [
        "18b2b1813f51a314d2468d0c103e593936e5f534"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Sun Dec 11 23:45:26 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Dec 12 00:03:00 2011 -0800"
      },
      "message": "Input: keyboard - staticise non-exported symbols\n\nThese symbols are not used outside it\u0027s driver so no need to\nmake the symbol global.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5146c84f87c8aa3d115cea0d77ed3553df426752",
      "tree": "9ecbaa48133f7b879f240e8b69f0c4b806b55cca",
      "parents": [
        "3bfd5c5baf66e975b0f365a0cda8d75bf2953ebe"
      ],
      "author": {
        "name": "JJ Ding",
        "email": "dgdunix@gmail.com",
        "time": "Tue Nov 29 11:08:39 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Nov 30 23:41:41 2011 -0800"
      },
      "message": "Input: keyboard - use macro module_platform_driver()\n\nCommit 940ab88962bc1aff3273a8356d64577a6e386736 introduced a new macro to\nsave some platform_driver boilerplate code. Use it.\n\nSigned-off-by: JJ Ding \u003cdgdunix@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b74201415288517845916476e79cba48caf805d8",
      "tree": "38e3fc1011b425ed5bfb7e76a7e912009dc06868",
      "parents": [
        "6485dec577e8be36bae2c21484cee8b905fe81a3"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Mon Nov 28 23:44:47 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 29 01:51:43 2011 -0800"
      },
      "message": "Input: samsung-keypad - remove redundant MODULE_ALIAS\n\nMODULE_DEVICE_TABLE will setup the module alias for us, thus adding\nMODULE_ALIAS for an entry already in MODULE_DEVICE_TABLE is redundant.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "0d2cd91bf7b1a7cc1d638296111fcc2bcf5c0bb4",
      "tree": "d2ca69347816c27f9dc352581f5d0fe76811cd49",
      "parents": [
        "3d95fd6ad8d3cf582a70ed65660017114b6e4065",
        "caca6a03d365883564885f2c1da3e88dcf65d139"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 29 01:51:07 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 29 01:51:07 2011 -0800"
      },
      "message": "Merge commit \u0027v3.2-rc3\u0027 into next\n"
    },
    {
      "commit": "8d964a2872ea0914e00bc7798e68899e01715185",
      "tree": "e55e7ed48bdf53637cb53d18d436bf0e4cecdab0",
      "parents": [
        "400bf2995be617474ebc4b2a0989f2b0a0e498cf"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Nov 07 23:59:41 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Nov 15 09:46:14 2011 -0800"
      },
      "message": "Input: samsung-keypad - enable compiling on other platforms\n\nThere is nothing in keypad platform definitions that requires\nthe driver be complied on Samsung platform only, so let\u0027s move them\nout of the platform subdirectory and relax the dependencies.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "400bf2995be617474ebc4b2a0989f2b0a0e498cf",
      "tree": "90852c80a11d57f27f5240b0b0a1a1418dcb6549",
      "parents": [
        "7968a5dd492ccc38345013e534ad4c8d6eb60ed1"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Nov 07 23:59:35 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Nov 09 21:23:36 2011 -0800"
      },
      "message": "Input: samsung-keypad - switch to using SIMPLE_DEV_PM_OPS\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "76496e7a02e99d42844f4fffa145b81e513e7acd",
      "tree": "33812cc8a9b250a95cf90c237c46ec6fc6fcf2ff",
      "parents": [
        "7cf801cfc0774b777aa6861cf4a43a90b112b1ed"
      ],
      "author": {
        "name": "JJ Ding",
        "email": "dgdunix@gmail.com",
        "time": "Wed Nov 09 10:20:14 2011 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Nov 09 21:23:26 2011 -0800"
      },
      "message": "Input: convert obsolete strict_strtox to kstrtox\n\nWith commit 67d0a0754455f89ef3946946159d8ec9e45ce33a we mark strict_strtox\nas obsolete. Convert all remaining such uses in drivers/input/.\n\nAlso change long to appropriate types, and return error conditions\nfrom kstrtox separately, as Dmitry sugguests.\n\nSigned-off-by: JJ Ding \u003cdgdunix@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d2d8442d0094a7d4b585e2bbde31e3775dba7eb1",
      "tree": "79a40716383a6a9e5285ec66b877fe548c17f4f4",
      "parents": [
        "778f523ddae8b382055a337cd58fe14adc0d17e2"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jul 03 13:53:48 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:16 2011 -0400"
      },
      "message": "drivers/input: Add module.h to modular drivers implicitly using it\n\nA pending cleanup will mean that module.h won\u0027t be implicitly\neverywhere anymore.  Make sure the modular drivers in input dir\nare actually calling out for \u003cmodule.h\u003e explicitly in advance.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "fb6c721b69d4ac518b9be6de8f44ba87a0c0d235",
      "tree": "17bd85dd0ee2c8e4e0c5d13c984a30855e8b18d0",
      "parents": [
        "73149ab8433c0ade5a4f79b137af2a081e8a5d13"
      ],
      "author": {
        "name": "Kyle Manna",
        "email": "kyle.manna@fuel7.com",
        "time": "Sat Oct 29 12:31:35 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Oct 29 12:32:24 2011 -0700"
      },
      "message": "Input: tca8418_keypad - initial driver release\n\nThis driver has been tested with hardware and works as expected.  To use\nit add the platform data as appropriate and register it with the\ncorresponding I2C bus.\n\nSigned-off-by: Kyle Manna \u003ckyle.manna@fuel7.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "396e6e49c58bb23d1814d3c240c736c9f01523c5",
      "tree": "a6ec8dac896c3ea3ac7b1bb0dce8728766afcf91",
      "parents": [
        "18974369cfe23acf16d0fb79e0d1fba7a9a95ec0",
        "6ad390a25a9d1d8606b9b826878f0a30639dc2b3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:44:20 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:44:20 2011 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (68 commits)\n  Input: adp5589-keys - add support for the ADP5585 derivatives\n  Input: imx_keypad - add pm suspend and resume support\n  Input: force feedback - potential integer wrap in input_ff_create()\n  Input: tsc2007 - make sure that X plate resistance is specified\n  Input: serio_raw - fix memory leak when closing char device\n  Input: serio_raw - kick clients when disconnecting port\n  Input: serio_raw - explicitly mark disconnected ports as dead\n  Input: serio_raw - fix coding style issues\n  Input: serio_raw - use dev_*() for messages\n  Input: serio_raw - use bool for boolean data\n  Input: serio_raw - perform proper locking when adding clients to list\n  Input: serio_raw - rename serio_raw_list to serio_raw_client\n  Input: serio_raw - use kref instead of rolling out its own refcounting\n  Input: psmouse - switch to using dev_*() for messages\n  Input: wacom - correct max Y value on medium bamboos\n  Input: wacom - add ABS_DISTANCE to Bamboo Pen reports\n  Input: wacom - remove unneeded touch pressure initialization\n  Input: lm8323 - wrap suspend and resume in CONFIG_PM_SLEEP\n  Input: ad7879-i2c - wrap suspend and resume in CONFIG_PM_SLEEP\n  Input: synaptics_i2c - wrap suspend and resume in CONFIG_PM_SLEEP\n  ...\n"
    },
    {
      "commit": "ca90666287401b475d9e0becf85bd02f069f1de8",
      "tree": "ad4dd789f8d5ab639c78997d3655b94fcbf660ef",
      "parents": [
        "60325f0c6ee7c6b68f95aaa643260fb33d4bdd88",
        "374e759db148d1e874e3afb76707082af67e0984"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:39:10 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 27 08:39:10 2011 +0200"
      },
      "message": "Merge branch \u0027gpio\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm\n\n* \u0027gpio\u0027 of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (43 commits)\n  ARM: 7135/1: ep93xx: bring back missing \u003cmach/gpio.h\u003e\n  ARM: 7104/1: plat-pxa: break out GPIO driver specifics\n  ARM: 7103/1: plat-pxa: move PXA GPIO driver to GPIO subsystem\n  ARM: 7042/3: mach-ep93xx: break out GPIO driver specifics\n  ARM: 7101/1: arm/tegra: Replace \u003cmach/gpio.h\u003e with \u003cmach/gpio-tegra.h\u003e\n  ARM: 7094/1: arm/tegra: Move EN_VDD_1V05_GPIO to board-harmony.h\n  ARM: 7083/1: rewrite U300 GPIO to use gpiolib\n  ARM: 7074/1: gpio: davinci: eliminate unused variable warnings\n  ARM: 7063/1: Orion: gpio: add missing include of linux/types.h\n  ARM: 7055/1: arm/tegra: mach/gpio.h: include linux/types.h to fix build\n  ARM: 7054/1: arm/tegra: Delete custom gpio_to_irq, and irq_to_gpio\n  ARM: 7053/1: gpio/tegra: Implement gpio_chip.to_irq\n  ARM: 7052/1: gpio/tegra: Remove use of irq_to_gpio\n  ARM: 7057/1: mach-pnx4008: rename GPIO header\n  ARM: 7056/1: plat-nomadik: kill off \u003cplat/gpio.h\u003e\n  ARM: 7050/1: mach-sa1100: delete irq_to_gpio() function\n  ARM: 7049/1: mach-sa1100: move SA1100 GPIO driver to GPIO subsystem\n  ARM: 7045/1: mach-lpc32xx: break out GPIO driver specifics\n  ARM: 7044/1: mach-lpc32xx: move LPC32XX GPIO driver to GPIO subsystem\n  ARM: 7043/1: mach-ixp2000: rename GPIO header\n  ...\n\nFix up trivial conflicts in arch/arm/mach-u300/Kconfig manually\n"
    },
    {
      "commit": "6ad390a25a9d1d8606b9b826878f0a30639dc2b3",
      "tree": "05aff14f02776bc0d59a1f777cb92df6f4456ba9",
      "parents": [
        "d6069dae4700cf5290a75002c46b9be8ea7eef3c",
        "3f48e7354358519e5b93f7f755ec270b3f8eafa0"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Oct 26 21:46:20 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Oct 26 21:46:20 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "3f48e7354358519e5b93f7f755ec270b3f8eafa0",
      "tree": "3fd938a5bec641942439c719be5a1056c3b5730d",
      "parents": [
        "81e8f2bc82cd591a749c0cc5694f57676db749ae"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Tue Oct 18 21:12:39 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Oct 18 21:26:55 2011 -0700"
      },
      "message": "Input: adp5589-keys - add support for the ADP5585 derivatives\n\nThe ADP5585 family keypad decoder and IO expander is similar to the ADP5589,\nhowever it features less IO pins, and lacks hardware assisted key-lock\nfunctionality. Unfortunately the register addresses are different, as well as\nthe event codes and bit organization within the port related registers.\n\nMove ADP5589 Register defines from the header file into the main source file.\nAdd new defines while making sure we don\u0027t break existing platform_data.\nAdd register address translation, and turn device specific defines into variables.\nIntroduce some helper functions and disable functions that doesn\u0027t\nexist on the added devices.\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "81e8f2bc82cd591a749c0cc5694f57676db749ae",
      "tree": "1b1939b610b9c65638cb9092dda8f1597ab64cba",
      "parents": [
        "05be8b81aafd4f95106a91ff3fd8581fa984fad9"
      ],
      "author": {
        "name": "Hui Wang",
        "email": "jason77.wang@gmail.com",
        "time": "Wed Oct 12 21:11:16 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Oct 12 21:13:16 2011 -0700"
      },
      "message": "Input: imx_keypad - add pm suspend and resume support\n\nThe imx_keypad driver was indicating that it was wakeup capable in\nimx_keypad_probe(), but it didn\u0027t implement suspend or resume methods.\n\nAccording to the i.MX series MCU Reference Manual, the kpp (keypad\nport) is a major wake up source which can detect any key press even\nin low power mode and even when there is no clock.\n\nSigned-off-by: Hui Wang \u003cjason77.wang@gmail.com\u003e\nReviewed-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "f80aee7fd095d9014a92a250c688ff5dbc0a6649",
      "tree": "49afde0d7f8a359e7197bb49752ac716670732d5",
      "parents": [
        "d4f4158dcda2f75ba8024e540d0bba070af1e67a"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Oct 06 15:26:52 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Oct 06 19:43:09 2011 -0700"
      },
      "message": "Input: lm8323 - wrap suspend and resume in CONFIG_PM_SLEEP\n\nCONFIG_PM is defined when CONFIG_PM_SLEEP or CONFIG_PM_RUNTIME is defined,\nhowever suspend and resume methods are only valid in the context of\nCONFIG_PM_SLEEP. If only CONFIG_PM_RUNTIME is defined we get the following\nwarning (courtesy of Geerts randconfig builds):\n\n\tlm8323.c: warning: \u0027lm8323_resume\u0027 defined but not used\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "cca84699a079a91b0a0cb4f2da8548e56859376a",
      "tree": "cbce1c7311de1f9a739e489101ab19a4555f3d09",
      "parents": [
        "c3a01ba9e45f01c6505a41efb33c420a0c959eb3"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Fri Sep 09 11:09:50 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Sep 20 22:46:32 2011 -0700"
      },
      "message": "Input: gpio_keys - use of_property_read_u32()\n\nUse the of_property_read_u32() helper function to retrieve u32 values\nfrom the device tree. Also do not pass the len parameter to\nof_get_property if it isn\u0027t checked afterwards.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "279b1e0fd90ef63c7acb34a5ca573f065a6fefb4",
      "tree": "25dfe9e76c375c2357096fc4ec334c5b00790ce0",
      "parents": [
        "abbe0d3c26c545930492981cbd64be340ff41e05",
        "8f9068609e8a5b4cbac9e0cf8332b5dcabf05422"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 16 14:09:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 16 14:09:19 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://github.com/dtor/input\n\n* \u0027for-linus\u0027 of git://github.com/dtor/input:\n  Input: wacom - fix touch parsing on newer Bamboos\n  Input: bcm5974 - add MacBookAir4,1 trackpad support\n  Input: wacom - add POINTER and DIRECT device properties\n  Input: adp5588-keys - remove incorrect modalias\n  Input: cm109 - fix checking return value of usb_control_msg\n  Input: wacom - advertise BTN_TOOL_PEN and BTN_STYLUS for PenPartner\n  Input: wacom - remove pressure for touch devices\n"
    },
    {
      "commit": "95439cbad134de58d9ea256e37fd13fbcdc87d08",
      "tree": "258e1670f91558404c94fe07d062166cc88fc9f1",
      "parents": [
        "d0d150ec28ab05eb2ec8cf9fcb7c9753ec95e0d4"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Sep 09 09:24:20 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Sep 09 09:25:50 2011 -0700"
      },
      "message": "Input: tegra-kbc - tighten locking\n\nTake spinlock when entering ISR and timer routine to ensure that we do not\nrace while enabling/disabling FIFO interrupts.\n\nAlso we do not need to take teh spinlock in tegra_kbc_startremove() since\ninterrupt is completely disabled.\n\nTested-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "d0d150ec28ab05eb2ec8cf9fcb7c9753ec95e0d4",
      "tree": "9031f750dadb8f8ba82190295755dde351c8ddc0",
      "parents": [
        "9299c08d8bfc7256645f4bf3943f80d8943fe844"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Thu Sep 08 15:34:11 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Sep 09 09:25:42 2011 -0700"
      },
      "message": "Input: tegra-kbc - fix wakeup from suspend\n\nFor wakeup to be reliable, kbc needs to be in interrupt mode before suspend.\nCreated common routine to control the FIFO interrupt.\nAdded synchronization to ensure orderly suspend.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "9299c08d8bfc7256645f4bf3943f80d8943fe844",
      "tree": "859b1ce7800425cfcc80c2eee194a88b7be3c8c8",
      "parents": [
        "ec4665c46b11f6e444911ba73dddae6044dec909"
      ],
      "author": {
        "name": "Harvey Yang",
        "email": "harvey.huawei.yang@gmail.com",
        "time": "Thu Sep 08 09:46:55 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Sep 08 09:51:10 2011 -0700"
      },
      "message": "Input: tc3589x-keypad - fix section mismatch warning\n\nWARNING: drivers/input/keyboard/built-in.o(.text+0xb55b): Section mismatch in reference from the function tc3589x_keypad_open() to the function .devinit.text:tc3589x_keypad_init_key_hardware()\nThe function tc3589x_keypad_open() references\nthe function __devinit tc3589x_keypad_init_key_hardware().\nThis is often because tc3589x_keypad_open lacks a __devinit\nannotation or the annotation of tc3589x_keypad_init_key_hardware is wrong.\n\nSigned-off-by: Harvey Yang \u003charvey.huawei.yang@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "ec4665c46b11f6e444911ba73dddae6044dec909",
      "tree": "6eef5f7046753c864d9ec8e58eaa8f32b1b59ece",
      "parents": [
        "5d7e7d479856f23eebc272128905a7ecada367fb"
      ],
      "author": {
        "name": "Yong Zhang",
        "email": "yong.zhang0@gmail.com",
        "time": "Wed Sep 07 14:04:16 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Sep 07 14:19:11 2011 -0700"
      },
      "message": "Input: remove IRQF_DISABLED from drivers\n\nThis flag is a NOOP and can be removed now.\n\nSigned-off-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "8c6756603976e9d21bba9913cd80c38ec529a1fb",
      "tree": "6a0407cd0868c049194db71e6f87f8732a394fea",
      "parents": [
        "7b727acc412c9320dc56a0fd7312febf8710ac0e"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Fri Aug 26 23:37:33 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Aug 26 23:40:14 2011 -0700"
      },
      "message": "Input: adp5588-keys - remove incorrect modalias\n\nFor i2c drivers, we should use \"i2c:\" prefix for modalias.\n\nMODULE_DEVICE_TABLE will setup the modulalias for us, thus adding\na MODULE_ALIAS is redundant (in addition to being incorrect).\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "8554cc18db47a4d2876852dad72ce3fb0561c3a7",
      "tree": "5677802cd0931b63f1baedd89dd61dee13e28a05",
      "parents": [
        "051732bcbe3cff3fea04dc9042266562fe8b0859",
        "9eff794b777ac9ca034129a1b637204000c8fb29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 24 09:19:03 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 24 09:19:03 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: ad714x - read the interrupt status registers in a row\n  Input: ad714x - use DMA-safe buffers for spi_write()\n  Input: ad714x - fix endianness issues\n  Input: ad714xx-spi - force SPI bus into the default 8-bit mode\n  Input: ep93xx_keypad - add missing include of linux/module.h\n  Input: tnetv107x-ts - add missing include of linux/module.h\n  Input: max11801_ts - correct license statement\n  Input: atmel_mxt_ts - report pressure information from the driver\n  Input: bcm5974 - Add support for newer MacBookPro8,2\n  Input: wacom - report id 3 returns 4 bytes of data\n  Input: wacom - add WAC_MSG_RETRIES define\n  Input: wacom - add support for the Wacom Bamboo Pen (CTL-660/K)\n  Input: tegra-kbc - correct call to input_free_device\n  Input: mpu3050 - correct call to input_free_device\n  Input: bcm5974 - add support for touchpads found in MacBookAir4,2\n  Input: mma8450 - fix module device table type\n  Input: remove CLOCK_TICK_RATE from analog joystick driver\n"
    },
    {
      "commit": "b9cc510b395543cb7dba89c76421d23ed9e85f95",
      "tree": "a9d89e611a167775734107621599ab426291c29b",
      "parents": [
        "2782a35132339574b06ce30556eb9f97eb1d26cd"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Sun Aug 21 12:48:08 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Aug 21 12:49:45 2011 -0700"
      },
      "message": "Input: ep93xx_keypad - add missing include of linux/module.h\n\nep93xx_keypad.c uses interfaces from linux/module.h,\nso it should include that file.  This patch fixes build errors.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "22f83205e59c97c2460ad8e4bd6e71268cb2f37f",
      "tree": "79321bf89d9b4011949ea1b0a88921c3a942d4c0",
      "parents": [
        "d9b830fa444c1f4955d0ee88f5af2aa24d2c7837"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Thu Aug 11 09:22:45 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu Aug 11 09:23:06 2011 -0700"
      },
      "message": "Input: tegra-kbc - correct call to input_free_device\n\nIf kzalloc for kbc fails, then we have NULL pointer dereference while\ncalling input_free_device(kbc-\u003eidev) in the error handling.\nSo it is safer to always use the original name, input_dev.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1bc857f700fb14bbcb990a81b1255f39807ae59e",
      "tree": "a587ef3eda0ea6d6a682b4bd5a8f6a6bcb814739",
      "parents": [
        "2f8163baada3dbd0ce891c35bc59ae46e773487a"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Tue Jul 26 10:54:55 2011 +0100"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Mon Aug 08 14:27:44 2011 +0100"
      },
      "message": "ARM: gpio: omap: convert drivers to use asm/gpio.h rather than mach/gpio.h\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "0ea648441a189f6e3e90a25c74511738799a0c7a",
      "tree": "b0efc68dd122fd51ffeffa26a396e2f01336bf62",
      "parents": [
        "35e51fe82ddcd8fb7f129d6dd8491c097d388665",
        "4fecc2088fd02ce8a6580c12822987d3c6bab9b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 22:00:09 2011 -1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 22:00:09 2011 -1000"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: ad7879 - fix deficient device disable\n  Input: gpio_keys - fix two typos in devicetree documentation\n  Input: mma8450 - add device tree probe support\n  Input: gpio_keys - return proper error code if memory allocation fails\n  Input: lm8323 - add missing device_remove_file for dev_attr_time\n  Input: tegra-kbc - fix computation of polling time\n  Input: kxtj9 - explicitly include module.h\n  Input: psmouse - hgpk.c needs module.h\n"
    },
    {
      "commit": "1f4bb066433322f6f189b084ceebdfb4add77292",
      "tree": "2c3876f2a2f6db9c58137373e22f250bd58337ef",
      "parents": [
        "52db9819ac96b0c5a4e075d836cf21dc529cbce4"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@distanz.ch",
        "time": "Sat Jul 30 12:08:10 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jul 30 12:19:02 2011 -0700"
      },
      "message": "Input: gpio_keys - return proper error code if memory allocation fails\n\nReturn -ENOMEM if kzalloc fails in gpio_keys_get_devtree_pdata().\n\nSigned-off-by: Tobias Klauser \u003ctklauser@distanz.ch\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "52db9819ac96b0c5a4e075d836cf21dc529cbce4",
      "tree": "472b517df553cd4033cda36bbd34acd386a88c98",
      "parents": [
        "3f27757a1182f5e3feff7425b1c3e43f3e466724"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Sat Jul 30 12:05:13 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jul 30 12:18:57 2011 -0700"
      },
      "message": "Input: lm8323 - add missing device_remove_file for dev_attr_time\n\nAdd missing device_remove_file() for dev_attr_time in lm8323_remove().\nAlso calling device_remove_file() in lm8323_probe() error path to\nremove sysfs attribute file.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "3f27757a1182f5e3feff7425b1c3e43f3e466724",
      "tree": "261b1a6602b833419db7cba2eee25ad93a7273f7",
      "parents": [
        "2501ec97663d84cfbc8fd8848c382f89c3bf8d1d"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Sat Jul 30 12:01:48 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jul 30 12:03:36 2011 -0700"
      },
      "message": "Input: tegra-kbc - fix computation of polling time\n\nFix a constant definition and computation of polling time.\n\n[dtor@mail.ru: switched to using DIV_ROUND_UP as was suggested by\n Thierry Reding \u003cthierry.reding@avionic-design.de\u003e]\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "70a3eff5768350c0313a9ae70a15da113171d0ab",
      "tree": "9c2558f92e567bcb35c79f59bc7ebc9cf6fdc9d3",
      "parents": [
        "9ed3689bdceb0064ee6faf0e76f6467122794970",
        "aa7eb8e78d8ecd6cd0475d86ea8385ff9cb47ece"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:24:56 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 27 09:24:56 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (53 commits)\n  Input: synaptics - fix reporting of min coordinates\n  Input: tegra-kbc - enable key autorepeat\n  Input: kxtj9 - fix locking typo in kxtj9_set_poll()\n  Input: kxtj9 - fix bug in probe()\n  Input: intel-mid-touch - remove pointless checking for variable \u0027found\u0027\n  Input: hp_sdc - staticize hp_sdc_kicker()\n  Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure\n  Input: cy8ctmg110_ts - set reset_pin and irq_pin from platform data\n  Input: cy8ctmg110_ts - constify i2c_device_id table\n  Input: cy8ctmg110_ts - fix checking return value of i2c_master_send\n  Input: lifebook - make dmi callback functions return 1\n  Input: atkbd - make dmi callback functions return 1\n  Input: gpio_keys - switch to using SIMPLE_DEV_PM_OPS\n  Input: gpio_keys - add support for device-tree platform data\n  Input: aiptek - remove double define\n  Input: synaptics - set minimum coordinates as reported by firmware\n  Input: synaptics - process button bits in AGM packets\n  Input: synaptics - rename set_slot to be more descriptive\n  Input: synaptics - fuzz position for touchpad with reduced filtering\n  Input: synaptics - set resolution for MT_POSITION_X/Y axes\n  ...\n"
    },
    {
      "commit": "aa7eb8e78d8ecd6cd0475d86ea8385ff9cb47ece",
      "tree": "3f9e98fadd5124fb05e8f6f9b06aa23698d4f215",
      "parents": [
        "cca8edfd2ec2a34d9f50f593bc753bb11e1bc1f5",
        "3c6b50141ef9f0a8844bf1357b80c0cdf518bf05"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 27 00:54:47 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 27 00:54:47 2011 -0700"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "5599d2e60b1191520778def7c0658fbc6de6d8c1",
      "tree": "ab3a56b3b6b5631866314901e9d19580635866a6",
      "parents": [
        "6eab7ce65a4e6fae1d2cb5d866515ed288f2fdcc"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "riyer@nvidia.com",
        "time": "Mon Jul 25 00:49:55 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 25 01:26:17 2011 -0700"
      },
      "message": "Input: tegra-kbc - enable key autorepeat\n\nTo support key repeats, keyboard needs to be setup as an autorepeating\ndevice.\n\nSigned-off-by: Rakesh Iyer \u003criyer@nvidia.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "edf21d9c38b945b91d100bae59d951bce131d58b",
      "tree": "73dbcfdfd47ef9765e42c37c1fee51cd7b278eb0",
      "parents": [
        "2c204109ec1018f72114c7f19132a1109a3f0653"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Mon Jul 18 17:09:22 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 18 17:10:31 2011 -0700"
      },
      "message": "Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure\n\nMake sure we are passing the same cookie in all calls to\nrequest_any_context_irq() and free_irq().\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c388b2c67e64d20cc0ad0d48d0e3e819d489bfed",
      "tree": "c9a4a6da8c6326a950466966c51e4ab535e2c2aa",
      "parents": [
        "bdda82162837a20e591ac01b306dc8f052270510"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jul 12 23:59:41 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 13 00:08:10 2011 -0700"
      },
      "message": "Input: atkbd - make dmi callback functions return 1\n\nWe only care about if there is a successful match from the table (or\nno match at all), so let\u0027s make dmi_check_system return immediately\ninstead of iterating thorough the whole table.\n\nMake the dmi callback function return 1 then dmi_check_system\nwill return immediately if we have a successful match.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "bdda82162837a20e591ac01b306dc8f052270510",
      "tree": "db5317c0f906897085b81df45ff881ffd8087449",
      "parents": [
        "fd05d08920b54d189aa247c5c5701a08e539ed0b"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jul 09 12:41:46 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jul 10 16:08:32 2011 -0700"
      },
      "message": "Input: gpio_keys - switch to using SIMPLE_DEV_PM_OPS\n\nThis reduces amount #ifdeds in the code.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "fd05d08920b54d189aa247c5c5701a08e539ed0b",
      "tree": "875b9b1bb3c055e955fec0d7342939e5965cc16c",
      "parents": [
        "eadba0c9c41bfa840b0f1e9ee369a869c2a322b3"
      ],
      "author": {
        "name": "David Jander",
        "email": "david@protonic.nl",
        "time": "Sat Jul 09 12:41:46 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sun Jul 10 16:08:28 2011 -0700"
      },
      "message": "Input: gpio_keys - add support for device-tree platform data\n\nThis patch enables fetching configuration data, which is normally provided\nvia platform_data, from the device-tree instead.\n\nIf the device is configured from device-tree data, the platform_data struct\nis not used, and button data needs to be allocated dynamically. Big part of\nthis patch deals with confining pdata usage to the probe function, to make\nthis possible.\n\nSigned-off-by: David Jander \u003cdavid@protonic.nl\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1d08382a0e8a272fed9517a1b39ae6be634a77d5",
      "tree": "cea625af3479b1cdd61ebd8aa4823d9c720fe301",
      "parents": [
        "fe0d42203cb5616eeff68b14576a0f7e2dd56625"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Wed Jun 08 11:03:23 2011 +0200"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Tue Jul 05 10:38:43 2011 +0200"
      },
      "message": "input: pmic8xxx-keypad: Do not use mfd_get_data()\n\nmfd_get_data() has been removed from the MFD API.\n\nCc: Anirudh Ghayal \u003caghayal@codeaurora.org\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "cca8edfd2ec2a34d9f50f593bc753bb11e1bc1f5",
      "tree": "38666e6d78dca54fb845b497a24c83b6b99789ed",
      "parents": [
        "cca23d0b5350c9ca0473625c3f5879422ba534a6"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 04 06:34:48 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jul 04 07:12:26 2011 -0700"
      },
      "message": "Input: sh_keysc - fix compile warning\n\nThe \"#if\" above should really be an \"#ifdef\" to avoid this warning:\n\n  CC      drivers/input/keyboard/sh_keysc.o\ndrivers/input/keyboard/sh_keysc.c:294:5: warning: \"CONFIG_PM_SLEEP\" is\nnot defined\n\nReported-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c7b4a5d58bffdf3aa7f923319643af0ebf925515",
      "tree": "e84f07099a5be7ca9543a3d5111c74f97045ef80",
      "parents": [
        "631b16e81eab82e2894425a94c3fc14bf21adb26"
      ],
      "author": {
        "name": "Jiejing Zhang",
        "email": "jiejing.zhang@freescale.com",
        "time": "Wed Jun 29 01:28:21 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jun 29 01:32:49 2011 -0700"
      },
      "message": "Input: mpr121 - improve sensibility of touch key\n\nThe Quick Charge bit in Electrode conf register should be set in init\nfunction. This bit was missed in chip\u0027s document, which may cause touch\ncontroller charge too slow to generate an interrupt.\n\nAlso, adjust the default vlaue of touch and release threshold\nto make touch key more sensitive, this fix touch may not sensitive\nafter setup with plastic case.\n\nSigned-off-by: Jiejing Zhang \u003cjiejing.zhang@freescale.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "1638207910019368253fc4c4a930c49ce2e98432",
      "tree": "e2930856c90189f1856cdae735851b26dc104b8d",
      "parents": [
        "58c244009ef6ca450f0d787828a7f2f27651db5b"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Tue Jun 28 14:23:30 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jun 29 00:22:47 2011 -0700"
      },
      "message": "Input: gpio_keys - fix a memory leak\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b23302052d96a3945e4c72aca77b5fd28884c353",
      "tree": "f17c9c6c6e5dca4ca3c43b66def63a2cc087718b",
      "parents": [
        "6a592a7f4514cd744e154a146db1ab7af06a7ee7"
      ],
      "author": {
        "name": "David Jander",
        "email": "david@protonic.nl",
        "time": "Thu Jun 23 01:30:09 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 27 12:44:05 2011 -0700"
      },
      "message": "Input: gpio_keys - move to late_initcall\n\nInitialize gpio_keys driver at late_initcall level, to give it a chance to\nwork with GPIO expanders that might not be ready yet if we initialize the\ndriver at module_init time.\n\nThis is strictly a band-aid until there is a better way to specify\ninter-device dependencies.\n\nSigned-off-by: David Jander \u003cdavid@protonic.nl\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "51a3db41e18254b938279cb4b160310e11a13d4f",
      "tree": "5e0d7c1072871fa0524f63e0d1f5180938079484",
      "parents": [
        "5993548725ba3f3deb2b90a681a62dbb7bd17961"
      ],
      "author": {
        "name": "Axel Lin",
        "email": "axel.lin@gmail.com",
        "time": "Mon Jun 27 12:38:43 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 27 12:43:23 2011 -0700"
      },
      "message": "Input: tnetv107x-keypad - fix MODULE_ALIAS\n\nRemove the space between \"platform:\" prefix and the driver name.\n\nSigned-off-by: Axel Lin \u003caxel.lin@gmail.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "5993548725ba3f3deb2b90a681a62dbb7bd17961",
      "tree": "ea0b696b9c885bb58727589facb315064ed4c7b7",
      "parents": [
        "3ead8b5ddbe6ca8e79b24535f4119c9d4ffd91e3"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Jun 27 11:59:43 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Mon Jun 27 12:42:54 2011 -0700"
      },
      "message": "Input: remove unneeded version.h includes\n\nIt was pointed out by \u0027make versioncheck\u0027 that some includes of\nlinux/version.h are not needed in drivers/input/.\nThis patch removes them.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nAcked-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "7e2ecdf438bb479e2b4667fc16b1a84d6348da04",
      "tree": "4dc99af4668935ddb64789af47e640a6e74dcfaf",
      "parents": [
        "eaa499aebf6265f18ffc836ead30059031c6d7a7"
      ],
      "author": {
        "name": "David Jander",
        "email": "david@protonic.nl",
        "time": "Tue Jun 21 14:26:18 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jun 21 14:33:34 2011 -0700"
      },
      "message": "Input: gpio_keys - switch to using threaded IRQs\n\nUse a threaded interrupt handler in order to permit the handler to use\na GPIO driver that causes things like I2C transactions being done inside\nthe handler context.\n\nSigned-off-by: David Jander \u003cdavid@protonic.nl\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "eaa499aebf6265f18ffc836ead30059031c6d7a7",
      "tree": "7788dd5e753765c22e9babef4555c17d950b3a33",
      "parents": [
        "61cf3813d32411b23d5df8a650bbd2aa89b4618c"
      ],
      "author": {
        "name": "Leigh Brown",
        "email": "leigh@solinno.co.uk",
        "time": "Tue Jun 21 04:25:21 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jun 21 05:08:40 2011 -0700"
      },
      "message": "Input: lm8323 - use oneshot level triggered interrupts\n\nAccording to the data sheet the interrupt should be level rather than\nedge triggered.  This fixes the issue of the Nokia N810 keypad stopping\nresponding if multiple key events occur in quick succession.\n\nSigned-off-by: Leigh Brown \u003cleigh@solinno.co.uk\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "61cf3813d32411b23d5df8a650bbd2aa89b4618c",
      "tree": "0865f3b31a66e31b059b0aeb054d0b0bcafc0de3",
      "parents": [
        "fef95faeae9fa5f605fbad8693e2d6e2171f5ad4"
      ],
      "author": {
        "name": "Felipe Balbi",
        "email": "balbi@ti.com",
        "time": "Tue Jun 21 04:20:57 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jun 21 05:08:30 2011 -0700"
      },
      "message": "Input: lm8323 - convert to threaded IRQ\n\nThere\u0027s no need for that workqueue anymore. Get rid of it and move to\nthreaded IRQs instead.\n\nSigned-off-by: Felipe Balbi \u003cbalbi@ti.com\u003e\nTested-by: Leigh Brown \u003cleigh@solinno.co.uk\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "fef95faeae9fa5f605fbad8693e2d6e2171f5ad4",
      "tree": "8ff82e577e954fd996011da6f14a263b2e92d249",
      "parents": [
        "56299378726d5f2ba8d3c8cbbd13cb280ba45e4f"
      ],
      "author": {
        "name": "Wolfram Sang",
        "email": "w.sang@pengutronix.de",
        "time": "Tue Jun 21 04:20:57 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Tue Jun 21 04:31:53 2011 -0700"
      },
      "message": "Input: qt1070 - remove obsolete cleanup for clientdata\n\nA few new i2c-drivers came into the kernel which clear the clientdata\npointer on exit or error. This is not required anymore since the core\nwill do it for us.\n\nSigned-off-by: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nAcked-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "c01ad4081939f91ebd7277e8e731fd90ceb3e632",
      "tree": "8eb0eccce6e0681400ddb5e33a9f13bfeb8a1fde",
      "parents": [
        "90a800de0a29426ea900ecd53f2929d5f4bc4578",
        "cca23d0b5350c9ca0473625c3f5879422ba534a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 20 08:59:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 20 08:59:46 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:\n  Input: sh_keysc - 8x8 MODE_6 fix\n  Input: omap-keypad - add missing input_sync()\n  Input: evdev - try to wake up readers only if we have full packet\n  Input: properly assign return value of clamp() macro.\n"
    },
    {
      "commit": "cca23d0b5350c9ca0473625c3f5879422ba534a6",
      "tree": "160e5a664d02bedb597d5e4e9bd9fd75c3427a23",
      "parents": [
        "b27af563befa95686c8d1abc491408aa6b9a31dc"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Sat Jun 18 02:51:52 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jun 18 02:55:01 2011 -0700"
      },
      "message": "Input: sh_keysc - 8x8 MODE_6 fix\n\nAccording to the data sheet for G4, AP4 and AG5 KEYSC MODE_6 is 8x8 keys.\nBump up MAXKEYS to 64 too.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nReviewed-by: Simon Horman \u003chorms@verge.net.au\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "b27af563befa95686c8d1abc491408aa6b9a31dc",
      "tree": "60b2359ae98bc31927b1675c831e5c5af60fd9b6",
      "parents": [
        "da40b0b6b4d3a81c5051fe6ae0544c48c13261c4"
      ],
      "author": {
        "name": "Janusz Krzysztofik",
        "email": "jkrzyszt@tis.icnet.pl",
        "time": "Wed Jun 15 21:13:55 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Sat Jun 18 02:54:42 2011 -0700"
      },
      "message": "Input: omap-keypad - add missing input_sync()\n\nOtherwise the updated evdev driver (commit cdda911c34006f1089f3c87b1a1f,\n\"Input: evdev - only signal polls on full packets\") no longer works on\ntop of omap-keypad.\n\nTested on Amstrad Delta.\n\nSigned-off-by: Janusz Krzysztofik \u003cjkrzyszt@tis.icnet.pl\u003e\nReviewed-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "39325b59d88b42ba2ccf2e62c234059e9941a47c",
      "tree": "c30b276c1a7dcd1546ef5051721647c43e9abc92",
      "parents": [
        "7e6502d577106fb5b202bbaac64c5f1b065e6daa"
      ],
      "author": {
        "name": "Trilok Soni",
        "email": "tsoni@codeaurora.org",
        "time": "Thu May 19 10:54:04 2011 +0530"
      },
      "committer": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Thu May 26 19:45:53 2011 +0200"
      },
      "message": "input: Add Qualcomm pm8xxx keypad controller driver\n\nAdd Qualcomm PMIC8XXX based keypad controller driver\nsupporting upto 18x8 matrix configuration.\n\nAcked-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Trilok Soni \u003ctsoni@codeaurora.org\u003e\nSigned-off-by: Anirudh Ghayal \u003caghayal@codeaurora.org\u003e\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "4637f40f200063973553ce3c4c1ac6c247e4535c",
      "tree": "ff317a0dfb67cae313a208d120edd5102730044d",
      "parents": [
        "5129df03d0c44b2d5a5f9d7d52f3b079706b9a8f",
        "b73077eb03f510a84b102fb97640e595a958403c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:58:49 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 24 11:58:49 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (40 commits)\n  Input: ADP5589 - new driver for I2C Keypad Decoder and I/O Expander\n  Input: tsc2007 - add X, Y and Z fuzz factors to platform data\n  Input: tsc2007 - add poll_period parameter to platform data\n  Input: tsc2007 - add poll_delay parameter to platform data\n  Input: tsc2007 - add max_rt parameter to platform data\n  Input: tsc2007 - debounce pressure measurement\n  Input: ad714x - fix captouch wheel option algorithm\n  Input: ad714x - allow platform code to specify irqflags\n  Input: ad714x - fix threshold and completion interrupt masks\n  Input: ad714x - fix up input configuration\n  Input: elantech - remove support for proprietary X driver\n  Input: elantech - report multitouch with proper ABS_MT messages\n  Input: elantech - export pressure and width when supported\n  Input: elantech - describe further the protocol\n  Input: atmel_tsadcc - correct call to input_free_device\n  Input: add driver FSL MPR121 capacitive touch sensor\n  Input: remove useless synchronize_rcu() calls\n  Input: ads7846 - fix gpio_pendown configuration\n  Input: ads7846 - add possibility to use external vref on ads7846\n  Input: rotary-encoder - add support for half-period encoders\n  ...\n"
    },
    {
      "commit": "186f200a95cbd13c291cdd3ddeb07aad0a3782cc",
      "tree": "426de0e7ecc259e696b2c4504a015668a95d889a",
      "parents": [
        "7786908c3c1bb38dcc5cd2c037251c05507eef16"
      ],
      "author": {
        "name": "Michael Schmitz",
        "email": "schmitz@biophys.uni-duesseldorf.de",
        "time": "Sun Dec 28 23:00:45 2008 +0100"
      },
      "committer": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu May 19 18:19:11 2011 +0200"
      },
      "message": "input/atari: Fix atarimouse init\n\nAtarimouse fails to load as a module (with ENODEV), due to a brown paper\nbag bug, misinterpreting the semantics of atari_keyb_init().\n\n[geert] Propagate the return value of atari_keyb_init() everywhere\n\nSigned-off-by: Michael Schmitz \u003cschmitz@debian.org\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\n"
    },
    {
      "commit": "9d2e173644bb5c42ff1b280fbdda3f195a7cf1f7",
      "tree": "723fa12e095a7dc00a02cb158028aa3f4ef2fc8a",
      "parents": [
        "891e376b1e864519bf7e49fa741f473078318530"
      ],
      "author": {
        "name": "Michael Hennerich",
        "email": "michael.hennerich@analog.com",
        "time": "Thu May 19 00:59:32 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 19 00:59:55 2011 -0700"
      },
      "message": "Input: ADP5589 - new driver for I2C Keypad Decoder and I/O Expander\n\nFrom http://www.analog.com/ADP5589:\nThe ADP5589 is an I/O port expander and keypad matrix decoder designed\nfor QWERTY type phones that require a large keypad matrix and expanded\nI/O lines.\n\nSigned-off-by: Michael Hennerich \u003cmichael.hennerich@analog.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "36682b81de32090f5c9fac165e71ab8939aab8c0",
      "tree": "117c09e71f3482fc3b483f4ee7345437df28e1f8",
      "parents": [
        "7cbbb758d3c93b24b45b169af55440d2e7d5b7f6"
      ],
      "author": {
        "name": "Zhang Jiejing",
        "email": "jiejing.zhang@freescale.com",
        "time": "Wed May 11 14:32:01 2011 -0700"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Thu May 12 08:28:58 2011 -0700"
      },
      "message": "Input: add driver FSL MPR121 capacitive touch sensor\n\nThis patch adds basic support for Freescale MPR121 capacitive touch\nsensor.  It\u0027s an i2c controller with up to 12 capacitance sensing inputs.\n\nProduct information (data sheet, application notes) can be found here:\nhttp://www.freescale.com/webapp/sps/site/prod_summary.jsp?code\u003dMPR121\n\nSigned-off-by: Zhang Jiejing \u003cjiejing.zhang@freescale.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    }
  ],
  "next": "baafb435372dd48e3854028aec669effae957c9e"
}
