From: Stephen Boyd <sboyd@codeaurora.org> To: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-input@vger.kernel.org Subject: [PATCH 1/7] Input: pmic8xxx-pwrkey - Pass input device directly to interrupt Date: Tue, 10 Dec 2013 15:43:10 -0800 [thread overview] Message-ID: <1386718996-3733-2-git-send-email-sboyd@codeaurora.org> (raw) In-Reply-To: <1386718996-3733-1-git-send-email-sboyd@codeaurora.org> 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> --- drivers/input/misc/pmic8xxx-pwrkey.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/input/misc/pmic8xxx-pwrkey.c b/drivers/input/misc/pmic8xxx-pwrkey.c index ce3c426..233b216 100644 --- a/drivers/input/misc/pmic8xxx-pwrkey.c +++ b/drivers/input/misc/pmic8xxx-pwrkey.c @@ -32,26 +32,21 @@ * @key_press_irq: key press irq number */ struct pmic8xxx_pwrkey { - struct input_dev *pwr; 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; - - 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; - - 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; } @@ -147,12 +142,11 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) } pwrkey->key_press_irq = key_press_irq; - pwrkey->pwr = pwr; platform_set_drvdata(pdev, pwrkey); err = devm_request_irq(&pdev->dev, 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); @@ -160,7 +154,7 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) } err = devm_request_irq(&pdev->dev, 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); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 1/7] Input: pmic8xxx-pwrkey - Pass input device directly to interrupt Date: Tue, 10 Dec 2013 15:43:10 -0800 [thread overview] Message-ID: <1386718996-3733-2-git-send-email-sboyd@codeaurora.org> (raw) In-Reply-To: <1386718996-3733-1-git-send-email-sboyd@codeaurora.org> 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> --- drivers/input/misc/pmic8xxx-pwrkey.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/input/misc/pmic8xxx-pwrkey.c b/drivers/input/misc/pmic8xxx-pwrkey.c index ce3c426..233b216 100644 --- a/drivers/input/misc/pmic8xxx-pwrkey.c +++ b/drivers/input/misc/pmic8xxx-pwrkey.c @@ -32,26 +32,21 @@ * @key_press_irq: key press irq number */ struct pmic8xxx_pwrkey { - struct input_dev *pwr; 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; - - 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; - - 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; } @@ -147,12 +142,11 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) } pwrkey->key_press_irq = key_press_irq; - pwrkey->pwr = pwr; platform_set_drvdata(pdev, pwrkey); err = devm_request_irq(&pdev->dev, 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); @@ -160,7 +154,7 @@ static int pmic8xxx_pwrkey_probe(struct platform_device *pdev) } err = devm_request_irq(&pdev->dev, 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); -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2013-12-10 23:43 UTC|newest] Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-12-10 23:43 [PATCH 0/7] Use regmap+devm in pm8xxx input drivers Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd [this message] 2013-12-10 23:43 ` [PATCH 1/7] Input: pmic8xxx-pwrkey - Pass input device directly to interrupt Stephen Boyd 2013-12-15 11:21 ` Dmitry Torokhov 2013-12-15 11:21 ` Dmitry Torokhov 2013-12-16 19:59 ` Stephen Boyd 2013-12-16 19:59 ` Stephen Boyd 2013-12-10 23:43 ` [PATCH 2/7] Input: pmic8xxx-pwrkey - Migrate to regmap APIs Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-15 11:33 ` Dmitry Torokhov 2013-12-15 11:33 ` Dmitry Torokhov 2014-01-02 18:49 ` Mark Brown 2014-01-02 18:49 ` Mark Brown 2014-01-02 19:17 ` Dmitry Torokhov 2014-01-02 19:17 ` Dmitry Torokhov 2014-01-02 19:17 ` Dmitry Torokhov 2014-01-03 0:50 ` Mark Brown 2014-01-03 0:50 ` Mark Brown 2014-01-21 9:34 ` bug fix for mmc queue.c Wang, Yalin 2014-01-21 9:34 ` Wang, Yalin 2013-12-10 23:43 ` [PATCH 3/7] Input: pm8xxx-vibrator - Migrate to devm_* APIs Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-10 23:43 ` [PATCH 4/7] Input: pm8xxx-vibrator - Migrate to regmap APIs Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-10 23:43 ` [PATCH 5/7] genirq: Add devm_request_any_context_irq() Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-15 10:42 ` Dmitry Torokhov 2013-12-15 10:42 ` Dmitry Torokhov 2013-12-10 23:43 ` [PATCH 6/7] Input: pmic8xxx-keypad - Migrate to devm_* APIs Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd 2013-12-16 15:37 ` Dmitry Torokhov 2013-12-16 15:37 ` Dmitry Torokhov 2013-12-17 2:01 ` spamassassin system account 2013-12-17 2:01 ` spamassassin system account 2013-12-10 23:43 ` [PATCH 7/7] Input: pmic8xxx-keypad - Migrate to regmap APIs Stephen Boyd 2013-12-10 23:43 ` Stephen Boyd
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1386718996-3733-2-git-send-email-sboyd@codeaurora.org \ --to=sboyd@codeaurora.org \ --cc=dmitry.torokhov@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-input@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.