From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Jiang Liu <jiang.liu@linux.intel.com>,
Simon Horman <horms@verge.net.au>,
Magnus Damm <magnus.damm@gmail.com>
Subject: [patch 4/5] sh/intc: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
Date: Mon, 13 Jul 2015 20:51:25 -0000 [thread overview]
Message-ID: <20150713151626.792845830@linutronix.de> (raw)
In-Reply-To: 20150713151529.858862519@linutronix.de
[-- Attachment #1: sh-Intc-Use-irq_desc_get_xxx-to-avoid-redundant-look.patch --]
[-- Type: text/plain, Size: 4094 bytes --]
From: Jiang Liu <jiang.liu@linux.intel.com>
Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we
already have a pointer to corresponding irq_desc.
Also replace generic_handle_irq with generic_handle_irq_desc() to avoid
looking up irq_desc again.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <magnus.damm@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/sh/boards/mach-se/7343/irq.c | 2 +-
arch/sh/boards/mach-se/7722/irq.c | 2 +-
arch/sh/boards/mach-x3proto/gpio.c | 2 +-
drivers/sh/intc/core.c | 2 +-
drivers/sh/intc/virq.c | 14 ++++++++------
5 files changed, 12 insertions(+), 10 deletions(-)
Index: tip/arch/sh/boards/mach-se/7343/irq.c
===================================================================
--- tip.orig/arch/sh/boards/mach-se/7343/irq.c
+++ tip/arch/sh/boards/mach-se/7343/irq.c
@@ -31,7 +31,7 @@ struct irq_domain *se7343_irq_domain;
static void se7343_irq_demux(unsigned int irq, struct irq_desc *desc)
{
- struct irq_data *data = irq_get_irq_data(irq);
+ struct irq_data *data = irq_desc_get_irq_data(desc);
struct irq_chip *chip = irq_data_get_irq_chip(data);
unsigned long mask;
int bit;
Index: tip/arch/sh/boards/mach-se/7722/irq.c
===================================================================
--- tip.orig/arch/sh/boards/mach-se/7722/irq.c
+++ tip/arch/sh/boards/mach-se/7722/irq.c
@@ -30,7 +30,7 @@ struct irq_domain *se7722_irq_domain;
static void se7722_irq_demux(unsigned int irq, struct irq_desc *desc)
{
- struct irq_data *data = irq_get_irq_data(irq);
+ struct irq_data *data = irq_desc_get_irq_data(desc);
struct irq_chip *chip = irq_data_get_irq_chip(data);
unsigned long mask;
int bit;
Index: tip/arch/sh/boards/mach-x3proto/gpio.c
===================================================================
--- tip.orig/arch/sh/boards/mach-x3proto/gpio.c
+++ tip/arch/sh/boards/mach-x3proto/gpio.c
@@ -62,7 +62,7 @@ static int x3proto_gpio_to_irq(struct gp
static void x3proto_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
{
- struct irq_data *data = irq_get_irq_data(irq);
+ struct irq_data *data = irq_desc_get_irq_data(desc);
struct irq_chip *chip = irq_data_get_irq_chip(data);
unsigned long mask;
int pin;
Index: tip/drivers/sh/intc/core.c
===================================================================
--- tip.orig/drivers/sh/intc/core.c
+++ tip/drivers/sh/intc/core.c
@@ -67,7 +67,7 @@ void intc_set_prio_level(unsigned int ir
static void intc_redirect_irq(unsigned int irq, struct irq_desc *desc)
{
- generic_handle_irq((unsigned int)irq_get_handler_data(irq));
+ generic_handle_irq((unsigned int)irq_desc_get_handler_data(desc));
}
static void __init intc_register_irq(struct intc_desc *desc,
Index: tip/drivers/sh/intc/virq.c
===================================================================
--- tip.orig/drivers/sh/intc/virq.c
+++ tip/drivers/sh/intc/virq.c
@@ -111,7 +111,7 @@ static int add_virq_to_pirq(unsigned int
static void intc_virq_handler(unsigned int irq, struct irq_desc *desc)
{
- struct irq_data *data = irq_get_irq_data(irq);
+ struct irq_data *data = irq_desc_get_irq_data(desc);
struct irq_chip *chip = irq_data_get_irq_chip(data);
struct intc_virq_list *entry, *vlist = irq_data_get_irq_handler_data(data);
struct intc_desc_int *d = get_intc_desc(irq);
@@ -120,12 +120,14 @@ static void intc_virq_handler(unsigned i
for_each_virq(entry, vlist) {
unsigned long addr, handle;
+ struct irq_desc *vdesc = irq_to_desc(entry->irq);
- handle = (unsigned long)irq_get_handler_data(entry->irq);
- addr = INTC_REG(d, _INTC_ADDR_E(handle), 0);
-
- if (intc_reg_fns[_INTC_FN(handle)](addr, handle, 0))
- generic_handle_irq(entry->irq);
+ if (vdesc) {
+ handle = (unsigned long)irq_desc_get_handler_data(vdesc);
+ addr = INTC_REG(d, _INTC_ADDR_E(handle), 0);
+ if (intc_reg_fns[_INTC_FN(handle)](addr, handle, 0))
+ generic_handle_irq_desc(entry->irq, vdesc);
+ }
}
chip->irq_unmask(data);
next prev parent reply other threads:[~2015-07-13 20:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 20:51 [patch 0/5] sh: Interrupt cleanups and API change preparation Thomas Gleixner
2015-07-13 20:51 ` [patch 1/5] sh/irq: Use accessor irq_data_get_node() Thomas Gleixner
2015-07-27 15:59 ` [tip:irq/core] " tip-bot for Jiang Liu
2015-07-29 8:16 ` tip-bot for Jiang Liu
2015-07-13 20:51 ` [patch 2/5] sh/irq: Use irq accessor functions instead of open coded access Thomas Gleixner
2015-07-27 15:59 ` [tip:irq/core] " tip-bot for Jiang Liu
2015-07-29 8:16 ` tip-bot for Jiang Liu
2015-07-13 20:51 ` [patch 3/5] sh/irq: Use access helper irq_data_get_affinity_mask() Thomas Gleixner
2015-07-27 15:59 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2015-07-29 8:16 ` tip-bot for Thomas Gleixner
2015-07-13 20:51 ` Thomas Gleixner [this message]
2015-07-27 16:00 ` [tip:irq/core] sh/intc: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc tip-bot for Jiang Liu
2015-07-29 8:17 ` tip-bot for Jiang Liu
2015-07-13 20:51 ` [patch 5/5] sh/intc: Prepare irq flow handlers for irq argument removal Thomas Gleixner
2015-07-27 16:00 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2015-07-29 8:17 ` tip-bot for Thomas Gleixner
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=20150713151626.792845830@linutronix.de \
--to=tglx@linutronix.de \
--cc=horms@verge.net.au \
--cc=jiang.liu@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=magnus.damm@gmail.com \
/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: link
Be 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.