Skip to content

Commit

Permalink
Input: pmic8xxx-pwrkey - pass input device directly to interrupt
Browse files Browse the repository at this point in the history
Instead of passing the pointer to the container structure just
pass the input device here. This saves a dereference in the fast
path.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
  • Loading branch information
Stephen Boyd authored and Dmitry Torokhov committed Dec 15, 2013
1 parent 21014b8 commit b27f8fe
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions drivers/input/misc/pmic8xxx-pwrkey.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,22 @@ struct pmic8xxx_pwrkey {
int key_press_irq;
};

static irqreturn_t pwrkey_press_irq(int irq, void *_pwrkey)
static irqreturn_t pwrkey_press_irq(int irq, void *_pwr)
{
struct pmic8xxx_pwrkey *pwrkey = _pwrkey;
struct input_dev *pwr = _pwr;

input_report_key(pwrkey->pwr, KEY_POWER, 1);
input_sync(pwrkey->pwr);
input_report_key(pwr, KEY_POWER, 1);
input_sync(pwr);

return IRQ_HANDLED;
}

static irqreturn_t pwrkey_release_irq(int irq, void *_pwrkey)
static irqreturn_t pwrkey_release_irq(int irq, void *_pwr)
{
struct pmic8xxx_pwrkey *pwrkey = _pwrkey;
struct input_dev *pwr = _pwr;

input_report_key(pwrkey->pwr, KEY_POWER, 0);
input_sync(pwrkey->pwr);
input_report_key(pwr, KEY_POWER, 0);
input_sync(pwr);

return IRQ_HANDLED;
}
Expand Down Expand Up @@ -154,15 +154,15 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, pwrkey);

err = request_irq(key_press_irq, pwrkey_press_irq,
IRQF_TRIGGER_RISING, "pmic8xxx_pwrkey_press", pwrkey);
IRQF_TRIGGER_RISING, "pmic8xxx_pwrkey_press", pwr);
if (err < 0) {
dev_dbg(&pdev->dev, "Can't get %d IRQ for pwrkey: %d\n",
key_press_irq, err);
goto unreg_input_dev;
}

err = request_irq(key_release_irq, pwrkey_release_irq,
IRQF_TRIGGER_RISING, "pmic8xxx_pwrkey_release", pwrkey);
IRQF_TRIGGER_RISING, "pmic8xxx_pwrkey_release", pwr);
if (err < 0) {
dev_dbg(&pdev->dev, "Can't get %d IRQ for pwrkey: %d\n",
key_release_irq, err);
Expand Down Expand Up @@ -194,8 +194,8 @@ static int pmic8xxx_pwrkey_remove(struct platform_device *pdev)

device_init_wakeup(&pdev->dev, 0);

free_irq(key_press_irq, pwrkey);
free_irq(key_release_irq, pwrkey);
free_irq(key_press_irq, pwrkey->pwr);
free_irq(key_release_irq, pwrkey->pwr);
input_unregister_device(pwrkey->pwr);
kfree(pwrkey);

Expand Down

0 comments on commit b27f8fe

Please sign in to comment.