]> git.karo-electronics.de Git - linux-beck.git/commitdiff
pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
authorJiang Liu <jiang.liu@linux.intel.com>
Thu, 4 Jun 2015 04:13:16 +0000 (12:13 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 17 Jul 2015 19:56:20 +0000 (21:56 +0200)
Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc while we
already have a pointer to corresponding irq_desc.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
16 files changed:
drivers/pinctrl/intel/pinctrl-cherryview.c
drivers/pinctrl/intel/pinctrl-intel.c
drivers/pinctrl/mediatek/pinctrl-mtk-common.c
drivers/pinctrl/nomadik/pinctrl-nomadik.c
drivers/pinctrl/pinctrl-amd.c
drivers/pinctrl/pinctrl-at91.c
drivers/pinctrl/pinctrl-coh901.c
drivers/pinctrl/pinctrl-rockchip.c
drivers/pinctrl/pinctrl-single.c
drivers/pinctrl/pinctrl-st.c
drivers/pinctrl/qcom/pinctrl-msm.c
drivers/pinctrl/samsung/pinctrl-exynos.c
drivers/pinctrl/samsung/pinctrl-s3c24xx.c
drivers/pinctrl/samsung/pinctrl-s3c64xx.c
drivers/pinctrl/sirf/pinctrl-sirf.c
drivers/pinctrl/sunxi/pinctrl-sunxi.c

index ab87f5c5e9dfa6473c2c4432d6826b74e84b54b8..f9a4767657367676698ed0420307744bcea28e31 100644 (file)
@@ -1412,7 +1412,7 @@ static void chv_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        struct chv_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        unsigned long pending;
        u32 intr_line;
 
index 27e4aa6971d1689acc694723c93130946a35c81d..bb377c110541b34d09a65867765706cb278cb9c9 100644 (file)
@@ -840,7 +840,7 @@ static void intel_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        struct intel_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        int i;
 
        chained_irq_enter(chip, desc);
index ad1ea1695b4ae46781f7329416f8a94e2791cd4b..4be0124e9936192ac75604f8eb83a63918f49e57 100644 (file)
@@ -1118,8 +1118,8 @@ mtk_eint_debounce_process(struct mtk_pinctrl *pctl, int index)
 
 static void mtk_eint_irq_handler(unsigned irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct mtk_pinctrl *pctl = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct mtk_pinctrl *pctl = irq_desc_get_handler_data(desc);
        unsigned int status, eint_num;
        int offset, index, virq;
        const struct mtk_eint_offsets *eint_offsets =
index 809d88445db5aa8acd4b1f73fdc993b36812b6c9..56e79c12562eb7a0af9094a9b76d9517867e1eb6 100644 (file)
@@ -843,10 +843,9 @@ static void nmk_gpio_irq_shutdown(struct irq_data *d)
        clk_disable(nmk_chip->clk);
 }
 
-static void __nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc,
-                                  u32 status)
+static void __nmk_gpio_irq_handler(struct irq_desc *desc, u32 status)
 {
-       struct irq_chip *host_chip = irq_get_chip(irq);
+       struct irq_chip *host_chip = irq_desc_get_chip(desc);
        struct gpio_chip *chip = irq_desc_get_handler_data(desc);
 
        chained_irq_enter(host_chip, desc);
@@ -871,17 +870,16 @@ static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
        status = readl(nmk_chip->addr + NMK_GPIO_IS);
        clk_disable(nmk_chip->clk);
 
-       __nmk_gpio_irq_handler(irq, desc, status);
+       __nmk_gpio_irq_handler(desc, status);
 }
 
-static void nmk_gpio_latent_irq_handler(unsigned int irq,
-                                          struct irq_desc *desc)
+static void nmk_gpio_latent_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
        struct gpio_chip *chip = irq_desc_get_handler_data(desc);
        struct nmk_gpio_chip *nmk_chip = container_of(chip, struct nmk_gpio_chip, chip);
        u32 status = nmk_chip->get_latent_status(nmk_chip->bank);
 
-       __nmk_gpio_irq_handler(irq, desc, status);
+       __nmk_gpio_irq_handler(desc, status);
 }
 
 /* I/O Functions */
index ef72a8a8dc2044881bd4b7fa83e0e96a3448e55b..2663a055546ea26e6ca630287e1565b4c171db39 100644 (file)
@@ -501,7 +501,7 @@ static void amd_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
        u64 reg64;
        int handled = 0;
        unsigned long flags;
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        struct amd_gpio *gpio_dev = to_amd_gpio(gc);
 
index 6cec3861dff758b98c1e145f325a573de3b0d6d3..e1ab69928bba38b4f864602b00db8f4faa2b0ae7 100644 (file)
@@ -1596,7 +1596,7 @@ static struct irq_chip gpio_irqchip = {
 
 static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        struct gpio_chip *gpio_chip = irq_desc_get_handler_data(desc);
        struct at91_gpio_chip *at91_gpio = container_of(gpio_chip,
                                           struct at91_gpio_chip, chip);
index 29cbbab8c3a673cecb6225e45c7bb8343700c2a6..9579442a221db3f853b584f7be9ae75a485c28c4 100644 (file)
@@ -521,8 +521,8 @@ static struct irq_chip u300_gpio_irqchip = {
 
 static void u300_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
-       struct irq_chip *parent_chip = irq_get_chip(irq);
-       struct gpio_chip *chip = irq_get_handler_data(irq);
+       struct irq_chip *parent_chip = irq_desc_get_chip(desc);
+       struct gpio_chip *chip = irq_desc_get_handler_data(desc);
        struct u300_gpio *gpio = to_u300_gpio(chip);
        struct u300_gpio_port *port = &gpio->ports[irq - chip->base];
        int pinoffset = port->number << 3; /* get the right stride */
index 6e56c962b6553949d93cce3a325d28f2ebe8d160..28f9d08faf278bb7b4a5fc01869020b2c69e553b 100644 (file)
@@ -1471,8 +1471,8 @@ static const struct gpio_chip rockchip_gpiolib_chip = {
 
 static void rockchip_irq_demux(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct rockchip_pin_bank *bank = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc);
        u32 pend;
 
        dev_dbg(bank->drvdata->dev, "got irq for bank %s\n", bank->name);
index 07661c86f7ef5da16ff27dd6ead4f35d1845a62d..b8aaf9559dddbe4aacc7e36c4ad91d7b494d4b2d 100644 (file)
@@ -1684,7 +1684,7 @@ static void pcs_irq_chain_handler(unsigned int irq, struct irq_desc *desc)
        struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc);
        struct irq_chip *chip;
 
-       chip = irq_get_chip(irq);
+       chip = irq_desc_get_chip(desc);
        chained_irq_enter(chip, desc);
        pcs_irq_handle(pcs_soc);
        /* REVISIT: export and add handle_bad_irq(irq, desc)? */
index c262e5f35c2808d873678560f4abc89dd75a1fae..f8338d2e6b6b91d53bf531abd0a522ac99d75c1b 100644 (file)
@@ -1463,7 +1463,7 @@ static void __gpio_irq_handler(struct st_gpio_bank *bank)
 static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 {
        /* interrupt dedicated per bank */
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        struct st_gpio_bank *bank = gpio_chip_to_bank(gc);
 
@@ -1474,8 +1474,8 @@ static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
 
 static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct st_pinctrl *info = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct st_pinctrl *info = irq_desc_get_handler_data(desc);
        unsigned long status;
        int n;
 
index 367ddbf518f76edff11eecab8aed55eb82d426c7..3fd39921b3e864e442a444b3e4a0c3ed79c67b66 100644 (file)
@@ -770,7 +770,7 @@ static void msm_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
        struct gpio_chip *gc = irq_desc_get_handler_data(desc);
        const struct msm_pingroup *g;
        struct msm_pinctrl *pctrl = to_msm_pinctrl(gc);
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        int irq_pin;
        int handled = 0;
        u32 val;
index f402eff2867adca60f6e01e933de0b3ddf70a358..07773c70c12cf48597ece41cc3c81be34ad0fb49 100644 (file)
@@ -422,9 +422,9 @@ static const struct of_device_id exynos_wkup_irq_ids[] = {
 /* interrupt handler for wakeup interrupts 0..15 */
 static void exynos_irq_eint0_15(unsigned int irq, struct irq_desc *desc)
 {
-       struct exynos_weint_data *eintd = irq_get_handler_data(irq);
+       struct exynos_weint_data *eintd = irq_desc_get_handler_data(desc);
        struct samsung_pin_bank *bank = eintd->bank;
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        int eint_irq;
 
        chained_irq_enter(chip, desc);
@@ -454,8 +454,8 @@ static inline void exynos_irq_demux_eint(unsigned long pend,
 /* interrupt handler for wakeup interrupt 16 */
 static void exynos_irq_demux_eint16_31(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct exynos_muxed_weint_data *eintd = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc);
        struct samsung_pinctrl_drv_data *d = eintd->banks[0]->drvdata;
        unsigned long pend;
        unsigned long mask;
index 7a77eae60b83308bc54ecd5f181b08550fe9701e..5d7b6112fc7e4aca469969b078cfdb635ae0b820 100644 (file)
@@ -243,7 +243,7 @@ static struct irq_chip s3c2410_eint0_3_chip = {
 static void s3c2410_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
 {
        struct irq_data *data = irq_desc_get_irq_data(desc);
-       struct s3c24xx_eint_data *eint_data = irq_get_handler_data(irq);
+       struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
        unsigned int virq;
 
        /* the first 4 eints have a simple 1 to 1 mapping */
@@ -297,9 +297,9 @@ static struct irq_chip s3c2412_eint0_3_chip = {
 
 static void s3c2412_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
        struct irq_data *data = irq_desc_get_irq_data(desc);
-       struct s3c24xx_eint_data *eint_data = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_data_get_irq_chip(data);
        unsigned int virq;
 
        chained_irq_enter(chip, desc);
@@ -357,11 +357,11 @@ static struct irq_chip s3c24xx_eint_chip = {
        .irq_set_type   = s3c24xx_eint_type,
 };
 
-static inline void s3c24xx_demux_eint(unsigned int irq, struct irq_desc *desc,
+static inline void s3c24xx_demux_eint(struct irq_desc *desc,
                                      u32 offset, u32 range)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct s3c24xx_eint_data *data = irq_get_handler_data(irq);
+       struct s3c24xx_eint_data *data = irq_desc_get_handler_data(desc);
+       struct irq_chip *chip = irq_desc_get_irq_chip(desc);
        struct samsung_pinctrl_drv_data *d = data->drvdata;
        unsigned int pend, mask;
 
@@ -374,7 +374,7 @@ static inline void s3c24xx_demux_eint(unsigned int irq, struct irq_desc *desc,
        pend &= range;
 
        while (pend) {
-               unsigned int virq;
+               unsigned int virq, irq;
 
                irq = __ffs(pend);
                pend &= ~(1 << irq);
@@ -390,12 +390,12 @@ static inline void s3c24xx_demux_eint(unsigned int irq, struct irq_desc *desc,
 
 static void s3c24xx_demux_eint4_7(unsigned int irq, struct irq_desc *desc)
 {
-       s3c24xx_demux_eint(irq, desc, 0, 0xf0);
+       s3c24xx_demux_eint(desc, 0, 0xf0);
 }
 
 static void s3c24xx_demux_eint8_23(unsigned int irq, struct irq_desc *desc)
 {
-       s3c24xx_demux_eint(irq, desc, 8, 0xffff00);
+       s3c24xx_demux_eint(desc, 8, 0xffff00);
 }
 
 static irq_flow_handler_t s3c2410_eint_handlers[NUM_EINT_IRQ] = {
index 41050f4c67dc078289bd8ec96071d38af82ec9c6..8700f0c9eee15db1fbeef421f44dda7e8822abb9 100644 (file)
@@ -410,8 +410,8 @@ static const struct irq_domain_ops s3c64xx_gpio_irqd_ops = {
 
 static void s3c64xx_eint_gpio_irq(unsigned int irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct s3c64xx_eint_gpio_data *data = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc);
        struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
 
        chained_irq_enter(chip, desc);
@@ -599,11 +599,10 @@ static struct irq_chip s3c64xx_eint0_irq_chip = {
        .irq_set_type   = s3c64xx_eint0_irq_set_type,
 };
 
-static inline void s3c64xx_irq_demux_eint(unsigned int irq,
-                                       struct irq_desc *desc, u32 range)
+static inline void s3c64xx_irq_demux_eint(struct irq_desc *desc, u32 range)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct s3c64xx_eint0_data *data = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct s3c64xx_eint0_data *data = irq_desc_get_handler_data(desc);
        struct samsung_pinctrl_drv_data *drvdata = data->drvdata;
        unsigned int pend, mask;
 
@@ -616,11 +615,10 @@ static inline void s3c64xx_irq_demux_eint(unsigned int irq,
        pend &= range;
 
        while (pend) {
-               unsigned int virq;
+               unsigned int virq, irq;
 
                irq = fls(pend) - 1;
                pend &= ~(1 << irq);
-
                virq = irq_linear_revmap(data->domains[irq], data->pins[irq]);
                /*
                 * Something must be really wrong if an unmapped EINT
@@ -636,22 +634,22 @@ static inline void s3c64xx_irq_demux_eint(unsigned int irq,
 
 static void s3c64xx_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
 {
-       s3c64xx_irq_demux_eint(irq, desc, 0xf);
+       s3c64xx_irq_demux_eint(desc, 0xf);
 }
 
 static void s3c64xx_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
 {
-       s3c64xx_irq_demux_eint(irq, desc, 0xff0);
+       s3c64xx_irq_demux_eint(desc, 0xff0);
 }
 
 static void s3c64xx_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
 {
-       s3c64xx_irq_demux_eint(irq, desc, 0xff000);
+       s3c64xx_irq_demux_eint(desc, 0xff000);
 }
 
 static void s3c64xx_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
 {
-       s3c64xx_irq_demux_eint(irq, desc, 0xff00000);
+       s3c64xx_irq_demux_eint(desc, 0xff00000);
 }
 
 static irq_flow_handler_t s3c64xx_eint0_handlers[NUM_EINT0_IRQ] = {
index 8ba26e45499a35a41f31682336acfb0d133f6820..9455a2acf6c615ac8b224061585a52f0db518b08 100644 (file)
@@ -552,7 +552,7 @@ static void sirfsoc_gpio_handle_irq(unsigned int irq, struct irq_desc *desc)
        struct sirfsoc_gpio_bank *bank;
        u32 status, ctrl;
        int idx = 0;
-       struct irq_chip *chip = irq_get_chip(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
        int i;
 
        for (i = 0; i < SIRFSOC_GPIO_NO_OF_BANKS; i++) {
index f09573e132035a700d7b3f782b7c4aa50f70fc6d..4b1a35cc5578ede9d21ba8fab9af9ae283571a3b 100644 (file)
@@ -711,8 +711,8 @@ static struct irq_chip sunxi_pinctrl_level_irq_chip = {
 
 static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc)
 {
-       struct irq_chip *chip = irq_get_chip(irq);
-       struct sunxi_pinctrl *pctl = irq_get_handler_data(irq);
+       struct irq_chip *chip = irq_desc_get_chip(desc);
+       struct sunxi_pinctrl *pctl = irq_desc_get_handler_data(desc);
        unsigned long bank, reg, val;
 
        for (bank = 0; bank < pctl->desc->irq_banks; bank++)