* [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
2015-06-04 4:13 [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Jiang Liu
@ 2015-06-04 4:13 ` Jiang Liu
2015-06-05 3:06 ` Tomasz Figa
` (2 more replies)
2015-06-04 4:13 ` [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t Jiang Liu
` (2 subsequent siblings)
3 siblings, 3 replies; 16+ messages in thread
From: Jiang Liu @ 2015-06-04 4:13 UTC (permalink / raw)
To: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Mika Westerberg, Heikki Krogerus, Linus Walleij,
Matthias Brugger, Alessandro Rubini,
Jean-Christophe Plagniol-Villard, Heiko Stuebner,
Srinivas Kandagatla, Maxime Coquelin, Patrice Chotard,
Tomasz Figa, Thomas Abraham, Kukjin Kim, Krzysztof
Cc: Jiang Liu, Konrad Rzeszutek Wilk, Tony Luck, x86, linux-kernel,
linux-pci, linux-acpi, Barry Song, linux-gpio, linux-arm-kernel,
linux-mediatek, linux-rockchip, kernel, linux-samsung-soc
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>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +-
drivers/pinctrl/intel/pinctrl-intel.c | 2 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++--
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 12 +++++-------
drivers/pinctrl/pinctrl-amd.c | 2 +-
drivers/pinctrl/pinctrl-at91.c | 2 +-
drivers/pinctrl/pinctrl-coh901.c | 4 ++--
drivers/pinctrl/pinctrl-rockchip.c | 4 ++--
drivers/pinctrl/pinctrl-single.c | 2 +-
drivers/pinctrl/pinctrl-st.c | 6 +++---
drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
drivers/pinctrl/samsung/pinctrl-exynos.c | 8 ++++----
drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 18 +++++++++---------
drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 22 ++++++++++------------
drivers/pinctrl/sirf/pinctrl-sirf.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 4 ++--
16 files changed, 46 insertions(+), 50 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 82f691eeeec4..878e798bcb56 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1368,7 +1368,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;
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 00768e53deec..a40681097402 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -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);
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 474812e2b0cb..fd05ca6125b0 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -1018,8 +1018,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 =
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index a6a22054c0ba..902f53b855bf 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -854,10 +854,9 @@ static struct irq_chip nmk_gpio_irq_chip = {
.flags = IRQCHIP_MASK_ON_SUSPEND,
};
-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);
@@ -882,17 +881,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 */
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index 7de3b64bf142..639cd77c1fbb 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -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);
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 2f797cb7e205..92d5f9ec1cce 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -1581,7 +1581,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);
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c
index 29cbbab8c3a6..9579442a221d 100644
--- a/drivers/pinctrl/pinctrl-coh901.c
+++ b/drivers/pinctrl/pinctrl-coh901.c
@@ -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 */
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index dee7d5f06c60..97a4a3dddb30 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -1396,8 +1396,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);
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index 13b45f297727..a8db57db5f5b 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -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)? */
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 65bf73b70e34..a4f8d38ed7be 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -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;
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index f3d800f796c2..7439d19af0dd 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -769,7 +769,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;
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index 0b7afa50121a..66fb5ee5a8ae 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -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;
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
index f1993f42114c..8d5b36e0af80 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
@@ -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] = {
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
index 7756c1e9e763..fd241d2dd165 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -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);
@@ -600,11 +600,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;
@@ -617,11 +616,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
@@ -637,22 +635,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] = {
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index e2efbbae4061..46cafde08ebf 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -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++) {
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index f8e171b76693..563cec6dc24e 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -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++)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
2015-06-04 4:13 ` [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
@ 2015-06-05 3:06 ` Tomasz Figa
2015-06-10 8:39 ` Heiko Stübner
2015-06-10 10:29 ` Matthias Brugger
2 siblings, 0 replies; 16+ messages in thread
From: Tomasz Figa @ 2015-06-05 3:06 UTC (permalink / raw)
To: Jiang Liu
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Mika Westerberg, Heikki Krogerus, Linus Walleij,
Matthias Brugger, Alessandro Rubini,
Jean-Christophe Plagniol-Villard, Heiko Stuebner,
Srinivas Kandagatla, Maxime Coquelin, Patrice Chotard,
Thomas Abraham, Kukjin Kim, Krzysztof Kozlowski, Barry
Hi,
2015-06-04 13:13 GMT+09:00 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.
>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +-
> drivers/pinctrl/intel/pinctrl-intel.c | 2 +-
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++--
> drivers/pinctrl/nomadik/pinctrl-nomadik.c | 12 +++++-------
> drivers/pinctrl/pinctrl-amd.c | 2 +-
> drivers/pinctrl/pinctrl-at91.c | 2 +-
> drivers/pinctrl/pinctrl-coh901.c | 4 ++--
> drivers/pinctrl/pinctrl-rockchip.c | 4 ++--
> drivers/pinctrl/pinctrl-single.c | 2 +-
> drivers/pinctrl/pinctrl-st.c | 6 +++---
> drivers/pinctrl/qcom/pinctrl-msm.c | 2 +-
> drivers/pinctrl/samsung/pinctrl-exynos.c | 8 ++++----
> drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 18 +++++++++---------
> drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 22 ++++++++++------------
For Samsung stuff:
Acked-by: Tomasz Figa <tomasz.figa@gmail.com>
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
2015-06-04 4:13 ` [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
2015-06-05 3:06 ` Tomasz Figa
@ 2015-06-10 8:39 ` Heiko Stübner
2015-06-10 10:29 ` Matthias Brugger
2 siblings, 0 replies; 16+ messages in thread
From: Heiko Stübner @ 2015-06-10 8:39 UTC (permalink / raw)
To: Jiang Liu
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Mika Westerberg, Heikki Krogerus, Linus Walleij,
Matthias Brugger, Alessandro Rubini,
Jean-Christophe Plagniol-Villard, Srinivas Kandagatla,
Maxime Coquelin, Patrice Chotard, Tomasz Figa, Thomas Abraham,
Kukjin Kim, Krzysztof Kozlowski, Ba
Am Donnerstag, 4. Juni 2015, 12:13:16 schrieb Jiang Liu:
> 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>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> drivers/pinctrl/pinctrl-rockchip.c | 4 ++--
For Rockchip
Acked-by: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
2015-06-04 4:13 ` [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
2015-06-05 3:06 ` Tomasz Figa
2015-06-10 8:39 ` Heiko Stübner
@ 2015-06-10 10:29 ` Matthias Brugger
2 siblings, 0 replies; 16+ messages in thread
From: Matthias Brugger @ 2015-06-10 10:29 UTC (permalink / raw)
To: Jiang Liu
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Mika Westerberg, Heikki Krogerus, Linus Walleij,
Alessandro Rubini, Jean-Christophe Plagniol-Villard,
Heiko Stuebner, Srinivas Kandagatla, Maxime Coquelin,
Patrice Chotard, Tomasz Figa, Thomas Abraham, Kukjin Kim,
Krzysztof Kozlowski, Barry
2015-06-04 6:13 GMT+02:00 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.
>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>
> ---
[...]
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 4 ++--
For the changes in pinctrl-mtk-common.c:
Acked-by: Matthias Brugger <matthias.brugger@gmail.com>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
2015-06-04 4:13 [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Jiang Liu
2015-06-04 4:13 ` [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
@ 2015-06-04 4:13 ` Jiang Liu
2015-06-10 8:40 ` Heiko Stübner
[not found] ` <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-06-04 6:59 ` [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Geert Uytterhoeven
2015-06-05 0:22 ` Daniel Axtens
3 siblings, 2 replies; 16+ messages in thread
From: Jiang Liu @ 2015-06-04 4:13 UTC (permalink / raw)
To: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Linus Walleij, Ray Jui, Scott Branden,
Mika Westerberg, Heikki Krogerus, Matthias Brugger,
Alessandro Rubini, Jean-Christophe Plagniol-Villard,
Heiko Stuebner, Srinivas Kandagatla, Maxime Coquelin,
Patrice Chotard, Tomasz Figa, Thomas Abraham <thomas>
Cc: Jiang Liu, Konrad Rzeszutek Wilk, Tony Luck, x86, linux-kernel,
linux-pci, linux-acpi, Barry Song, linux-gpio, linux-arm-kernel,
bcm-kernel-feedback-list, linux-mediatek, linux-rockchip, kernel,
linux-samsung-soc, spear-devel
Now most IRQ flow handlers make no use of the first parameter 'irq'.
And for those who do make use of 'irq', we could easily get the irq
number through irq_desc->irq_data->irq. So kill the first parameter
'irq' of irq_flow_handler_t.
To ease review, I have split the changes into several parts, though
they should be merge as one to support bisecting.
Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
---
drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 2 +-
drivers/pinctrl/intel/pinctrl-baytrail.c | 2 +-
drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +-
drivers/pinctrl/intel/pinctrl-intel.c | 2 +-
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +-
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 ++--
drivers/pinctrl/pinctrl-adi2.c | 3 +--
drivers/pinctrl/pinctrl-amd.c | 4 ++--
drivers/pinctrl/pinctrl-at91.c | 2 +-
drivers/pinctrl/pinctrl-coh901.c | 2 +-
drivers/pinctrl/pinctrl-rockchip.c | 2 +-
drivers/pinctrl/pinctrl-single.c | 2 +-
drivers/pinctrl/pinctrl-st.c | 4 ++--
drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++--
drivers/pinctrl/samsung/pinctrl-exynos.c | 4 ++--
drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 8 ++++----
drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 10 +++++-----
drivers/pinctrl/sirf/pinctrl-sirf.c | 4 ++--
drivers/pinctrl/spear/pinctrl-plgpio.c | 2 +-
drivers/pinctrl/sunxi/pinctrl-sunxi.c | 2 +-
20 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c b/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
index 4ad5c1a996e3..df940687524f 100644
--- a/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c
@@ -143,7 +143,7 @@ static inline bool cygnus_get_bit(struct cygnus_gpio *chip, unsigned int reg,
return !!(readl(chip->base + offset) & BIT(shift));
}
-static void cygnus_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
+static void cygnus_gpio_irq_handler(struct irq_desc *desc)
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct cygnus_gpio *chip = to_cygnus_gpio(gc);
diff --git a/drivers/pinctrl/intel/pinctrl-baytrail.c b/drivers/pinctrl/intel/pinctrl-baytrail.c
index 2062c224e32f..94870cedb0ad 100644
--- a/drivers/pinctrl/intel/pinctrl-baytrail.c
+++ b/drivers/pinctrl/intel/pinctrl-baytrail.c
@@ -421,7 +421,7 @@ static void byt_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
spin_unlock_irqrestore(&vg->lock, flags);
}
-static void byt_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void byt_gpio_irq_handler(struct irq_desc *desc)
{
struct irq_data *data = irq_desc_get_irq_data(desc);
struct byt_gpio *vg = to_byt_gpio(irq_desc_get_handler_data(desc));
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 878e798bcb56..cfdc5f1c9cd6 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1364,7 +1364,7 @@ static struct irq_chip chv_gpio_irqchip = {
.flags = IRQCHIP_SKIP_SET_WAKE,
};
-static void chv_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void chv_gpio_irq_handler(struct irq_desc *desc)
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct chv_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index a40681097402..a64ca4bd69cd 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -836,7 +836,7 @@ static void intel_gpio_community_irq_handler(struct gpio_chip *gc,
}
}
-static void intel_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void intel_gpio_irq_handler(struct irq_desc *desc)
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct intel_pinctrl *pctrl = gpiochip_to_pinctrl(gc);
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index fd05ca6125b0..9ec45d4875db 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -1016,7 +1016,7 @@ mtk_eint_debounce_process(struct mtk_pinctrl *pctl, int index)
}
}
-static void mtk_eint_irq_handler(unsigned irq, struct irq_desc *desc)
+static void mtk_eint_irq_handler(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct mtk_pinctrl *pctl = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index 902f53b855bf..cd70a30f8d8e 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -871,7 +871,7 @@ static void __nmk_gpio_irq_handler(struct irq_desc *desc, u32 status)
chained_irq_exit(host_chip, desc);
}
-static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
+static void nmk_gpio_irq_handler(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);
@@ -884,7 +884,7 @@ static void nmk_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
__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(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);
diff --git a/drivers/pinctrl/pinctrl-adi2.c b/drivers/pinctrl/pinctrl-adi2.c
index 8434439c5017..6a004582cee4 100644
--- a/drivers/pinctrl/pinctrl-adi2.c
+++ b/drivers/pinctrl/pinctrl-adi2.c
@@ -530,8 +530,7 @@ static inline void preflow_handler(struct irq_desc *desc)
static inline void preflow_handler(struct irq_desc *desc) { }
#endif
-static void adi_gpio_handle_pint_irq(unsigned int inta_irq,
- struct irq_desc *desc)
+static void adi_gpio_handle_pint_irq(struct irq_desc *desc)
{
u32 request;
u32 level_mask, hwirq;
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index 31e206613814..0227fd66a555 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -492,7 +492,7 @@ static struct irq_chip amd_gpio_irqchip = {
.irq_set_type = amd_gpio_irq_set_type,
};
-static void amd_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc)
+static void amd_gpio_irq_handler(struct irq_desc *desc)
{
u32 i;
u32 off;
@@ -542,7 +542,7 @@ static void amd_gpio_irq_handler(unsigned int __irq, struct irq_desc *desc)
}
if (handled == 0)
- handle_bad_irq(__irq, desc);
+ handle_bad_irq(desc);
spin_lock_irqsave(&gpio_dev->lock, flags);
reg = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 92d5f9ec1cce..0145257991fe 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -1579,7 +1579,7 @@ static struct irq_chip gpio_irqchip = {
.irq_set_wake = gpio_irq_set_wake,
};
-static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void gpio_irq_handler(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct gpio_chip *gpio_chip = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c
index 3731cc67a88b..9c9b88934bcc 100644
--- a/drivers/pinctrl/pinctrl-coh901.c
+++ b/drivers/pinctrl/pinctrl-coh901.c
@@ -519,7 +519,7 @@ static struct irq_chip u300_gpio_irqchip = {
.irq_set_type = u300_gpio_irq_type,
};
-static void u300_gpio_irq_handler(unsigned __irq, struct irq_desc *desc)
+static void u300_gpio_irq_handler(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
struct irq_chip *parent_chip = irq_desc_get_chip(desc);
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index 1fff71221d83..c2cc5d3e81d5 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -1394,7 +1394,7 @@ static const struct gpio_chip rockchip_gpiolib_chip = {
* Interrupt handling
*/
-static void rockchip_irq_demux(unsigned int __irq, struct irq_desc *desc)
+static void rockchip_irq_demux(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct rockchip_pin_bank *bank = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index a8db57db5f5b..d71cad948bf2 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -1679,7 +1679,7 @@ static irqreturn_t pcs_irq_handler(int irq, void *d)
* Use this if you have a separate interrupt for each
* pinctrl-single instance.
*/
-static void pcs_irq_chain_handler(unsigned int irq, struct irq_desc *desc)
+static void pcs_irq_chain_handler(struct irq_desc *desc)
{
struct pcs_soc_data *pcs_soc = irq_desc_get_handler_data(desc);
struct irq_chip *chip;
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index a4f8d38ed7be..8f92e929582d 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -1460,7 +1460,7 @@ static void __gpio_irq_handler(struct st_gpio_bank *bank)
}
}
-static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void st_gpio_irq_handler(struct irq_desc *desc)
{
/* interrupt dedicated per bank */
struct irq_chip *chip = irq_desc_get_chip(desc);
@@ -1472,7 +1472,7 @@ static void st_gpio_irq_handler(unsigned irq, struct irq_desc *desc)
chained_irq_exit(chip, desc);
}
-static void st_gpio_irqmux_handler(unsigned irq, struct irq_desc *desc)
+static void st_gpio_irqmux_handler(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct st_pinctrl *info = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 7439d19af0dd..1d2e642130ab 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -764,7 +764,7 @@ static struct irq_chip msm_gpio_irq_chip = {
.irq_set_wake = msm_gpio_irq_set_wake,
};
-static void msm_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
+static void msm_gpio_irq_handler(struct irq_desc *desc)
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
const struct msm_pingroup *g;
@@ -793,7 +793,7 @@ static void msm_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
/* No interrupts were flagged */
if (handled == 0)
- handle_bad_irq(irq, desc);
+ handle_bad_irq(desc);
chained_irq_exit(chip, desc);
}
diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c
index 66fb5ee5a8ae..5a5eba7c697d 100644
--- a/drivers/pinctrl/samsung/pinctrl-exynos.c
+++ b/drivers/pinctrl/samsung/pinctrl-exynos.c
@@ -420,7 +420,7 @@ 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)
+static void exynos_irq_eint0_15(struct irq_desc *desc)
{
struct exynos_weint_data *eintd = irq_desc_get_handler_data(desc);
struct samsung_pin_bank *bank = eintd->bank;
@@ -452,7 +452,7 @@ 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)
+static void exynos_irq_demux_eint16_31(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct exynos_muxed_weint_data *eintd = irq_desc_get_handler_data(desc);
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
index 8d5b36e0af80..3d2e0f9cd52a 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c24xx.c
@@ -240,7 +240,7 @@ static struct irq_chip s3c2410_eint0_3_chip = {
.irq_set_type = s3c24xx_eint_type,
};
-static void s3c2410_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
+static void s3c2410_demux_eint0_3(struct irq_desc *desc)
{
struct irq_data *data = irq_desc_get_irq_data(desc);
struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
@@ -295,7 +295,7 @@ static struct irq_chip s3c2412_eint0_3_chip = {
.irq_set_type = s3c24xx_eint_type,
};
-static void s3c2412_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
+static void s3c2412_demux_eint0_3(struct irq_desc *desc)
{
struct s3c24xx_eint_data *eint_data = irq_desc_get_handler_data(desc);
struct irq_data *data = irq_desc_get_irq_data(desc);
@@ -388,12 +388,12 @@ static inline void s3c24xx_demux_eint(struct irq_desc *desc,
chained_irq_exit(chip, desc);
}
-static void s3c24xx_demux_eint4_7(unsigned int irq, struct irq_desc *desc)
+static void s3c24xx_demux_eint4_7(struct irq_desc *desc)
{
s3c24xx_demux_eint(desc, 0, 0xf0);
}
-static void s3c24xx_demux_eint8_23(unsigned int irq, struct irq_desc *desc)
+static void s3c24xx_demux_eint8_23(struct irq_desc *desc)
{
s3c24xx_demux_eint(desc, 8, 0xffff00);
}
diff --git a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
index fd241d2dd165..5c5beb5bdd6c 100644
--- a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
+++ b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c
@@ -408,7 +408,7 @@ static const struct irq_domain_ops s3c64xx_gpio_irqd_ops = {
.xlate = irq_domain_xlate_twocell,
};
-static void s3c64xx_eint_gpio_irq(unsigned int irq, struct irq_desc *desc)
+static void s3c64xx_eint_gpio_irq(struct irq_desc *desc)
{
struct irq_chip *chip = irq_desc_get_chip(desc);
struct s3c64xx_eint_gpio_data *data = irq_desc_get_handler_data(desc);
@@ -633,22 +633,22 @@ static inline void s3c64xx_irq_demux_eint(struct irq_desc *desc, u32 range)
chained_irq_exit(chip, desc);
}
-static void s3c64xx_demux_eint0_3(unsigned int irq, struct irq_desc *desc)
+static void s3c64xx_demux_eint0_3(struct irq_desc *desc)
{
s3c64xx_irq_demux_eint(desc, 0xf);
}
-static void s3c64xx_demux_eint4_11(unsigned int irq, struct irq_desc *desc)
+static void s3c64xx_demux_eint4_11(struct irq_desc *desc)
{
s3c64xx_irq_demux_eint(desc, 0xff0);
}
-static void s3c64xx_demux_eint12_19(unsigned int irq, struct irq_desc *desc)
+static void s3c64xx_demux_eint12_19(struct irq_desc *desc)
{
s3c64xx_irq_demux_eint(desc, 0xff000);
}
-static void s3c64xx_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
+static void s3c64xx_demux_eint20_27(struct irq_desc *desc)
{
s3c64xx_irq_demux_eint(desc, 0xff00000);
}
diff --git a/drivers/pinctrl/sirf/pinctrl-sirf.c b/drivers/pinctrl/sirf/pinctrl-sirf.c
index 89792e12d744..d3659688f440 100644
--- a/drivers/pinctrl/sirf/pinctrl-sirf.c
+++ b/drivers/pinctrl/sirf/pinctrl-sirf.c
@@ -545,7 +545,7 @@ static struct irq_chip sirfsoc_irq_chip = {
.irq_set_type = sirfsoc_gpio_irq_type,
};
-static void sirfsoc_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc)
+static void sirfsoc_gpio_handle_irq(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
@@ -570,7 +570,7 @@ static void sirfsoc_gpio_handle_irq(unsigned int __irq, struct irq_desc *desc)
printk(KERN_WARNING
"%s: gpio id %d status %#x no interrupt is flagged\n",
__func__, bank->id, status);
- handle_bad_irq(irq, desc);
+ handle_bad_irq(desc);
return;
}
diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c
index ae8f29fb5536..1f0af250dbb5 100644
--- a/drivers/pinctrl/spear/pinctrl-plgpio.c
+++ b/drivers/pinctrl/spear/pinctrl-plgpio.c
@@ -356,7 +356,7 @@ static struct irq_chip plgpio_irqchip = {
.irq_set_type = plgpio_irq_set_type,
};
-static void plgpio_irq_handler(unsigned irq, struct irq_desc *desc)
+static void plgpio_irq_handler(struct irq_desc *desc)
{
struct gpio_chip *gc = irq_desc_get_handler_data(desc);
struct plgpio *plgpio = container_of(gc, struct plgpio, chip);
diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
index ace032681d82..12c78f7330d2 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
@@ -709,7 +709,7 @@ static struct irq_chip sunxi_pinctrl_level_irq_chip = {
IRQCHIP_EOI_IF_HANDLED,
};
-static void sunxi_pinctrl_irq_handler(unsigned __irq, struct irq_desc *desc)
+static void sunxi_pinctrl_irq_handler(struct irq_desc *desc)
{
unsigned int irq = irq_desc_get_irq(desc);
struct irq_chip *chip = irq_desc_get_chip(desc);
--
1.7.10.4
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
2015-06-04 4:13 ` [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t Jiang Liu
@ 2015-06-10 8:40 ` Heiko Stübner
[not found] ` <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
1 sibling, 0 replies; 16+ messages in thread
From: Heiko Stübner @ 2015-06-10 8:40 UTC (permalink / raw)
To: Jiang Liu
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Linus Walleij, Ray Jui, Scott Branden,
Mika Westerberg, Heikki Krogerus, Matthias Brugger,
Alessandro Rubini, Jean-Christophe Plagniol-Villard,
Srinivas Kandagatla, Maxime Coquelin, Patrice Chotard,
Tomasz Figa, Thomas Abraham
Am Donnerstag, 4. Juni 2015, 12:13:54 schrieb Jiang Liu:
> Now most IRQ flow handlers make no use of the first parameter 'irq'.
> And for those who do make use of 'irq', we could easily get the irq
> number through irq_desc->irq_data->irq. So kill the first parameter
> 'irq' of irq_flow_handler_t.
>
> To ease review, I have split the changes into several parts, though
> they should be merge as one to support bisecting.
>
> Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
> ---
> drivers/pinctrl/pinctrl-rockchip.c | 2 +-
For Rockchip
Acked-by: Heiko Stuebner <heiko@sntech.de>
^ permalink raw reply [flat|nested] 16+ messages in thread[parent not found: <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>]
* Re: [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
[not found] ` <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
@ 2015-06-05 3:08 ` Tomasz Figa
2015-06-10 8:12 ` Linus Walleij
2015-06-10 10:31 ` Matthias Brugger
2 siblings, 0 replies; 16+ messages in thread
From: Tomasz Figa @ 2015-06-05 3:08 UTC (permalink / raw)
To: Jiang Liu
Cc: Krzysztof Kozlowski, Heikki Krogerus, Heiko Stuebner,
Benjamin Herrenschmidt, Linus Walleij, linux-kernel,
Bjorn Helgaas, Maoguang Meng, H. Peter Anvin,
kernel-F5mvAk5X5gdBDgjK7y7TUQ,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Axel Lin, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Hongzhou Yang, Yinghai Lu, x86-DgEjT+Ai2ygdnm+yROfE0A,
bcm-kernel-feedback-list-dY08KVG/lbpWk0Htik3J/w,
ACPI Devel Maling List, Chen-Yu Tsai, Ingo Molnar, Thomas Abraham,
Bjorn Andersson
Hi,
2015-06-04 13:13 GMT+09:00 Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>:
> Now most IRQ flow handlers make no use of the first parameter 'irq'.
> And for those who do make use of 'irq', we could easily get the irq
> number through irq_desc->irq_data->irq. So kill the first parameter
> 'irq' of irq_flow_handler_t.
>
> To ease review, I have split the changes into several parts, though
> they should be merge as one to support bisecting.
>
> Signed-off-by: Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> ---
> drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 2 +-
> drivers/pinctrl/intel/pinctrl-baytrail.c | 2 +-
> drivers/pinctrl/intel/pinctrl-cherryview.c | 2 +-
> drivers/pinctrl/intel/pinctrl-intel.c | 2 +-
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +-
> drivers/pinctrl/nomadik/pinctrl-nomadik.c | 4 ++--
> drivers/pinctrl/pinctrl-adi2.c | 3 +--
> drivers/pinctrl/pinctrl-amd.c | 4 ++--
> drivers/pinctrl/pinctrl-at91.c | 2 +-
> drivers/pinctrl/pinctrl-coh901.c | 2 +-
> drivers/pinctrl/pinctrl-rockchip.c | 2 +-
> drivers/pinctrl/pinctrl-single.c | 2 +-
> drivers/pinctrl/pinctrl-st.c | 4 ++--
> drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++--
> drivers/pinctrl/samsung/pinctrl-exynos.c | 4 ++--
> drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 8 ++++----
> drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 10 +++++-----
Assuming that it was properly compile tested, for Samsung stuff:
Acked-by: Tomasz Figa <tomasz.figa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Best regards,
Tomasz
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
[not found] ` <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-06-05 3:08 ` Tomasz Figa
@ 2015-06-10 8:12 ` Linus Walleij
[not found] ` <CACRpkdZDxAPxLAuvD5cD7XLLKM45aS7_oAcPhKBM1ewmUn9+BA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-06-10 10:31 ` Matthias Brugger
2 siblings, 1 reply; 16+ messages in thread
From: Linus Walleij @ 2015-06-10 8:12 UTC (permalink / raw)
To: Jiang Liu
Cc: Krzysztof Kozlowski, Heikki Krogerus, Heiko Stuebner,
Benjamin Herrenschmidt, Tomasz Figa,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Bjorn Helgaas, Maoguang Meng, H. Peter Anvin,
kernel-F5mvAk5X5gdBDgjK7y7TUQ, linux-samsung-soc, Axel Lin,
open list:ARM/Rockchip SoC..., Hongzhou Yang, Yinghai Lu,
x86-DgEjT+Ai2ygdnm+yROfE0A, bcm-kernel-feedback-list,
ACPI Devel Maling List, Chen-Yu Tsai, Ingo Molnar,
Thomas Abraham <thomas.abraham@
On Thu, Jun 4, 2015 at 6:13 AM, Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> wrote:
> Now most IRQ flow handlers make no use of the first parameter 'irq'.
> And for those who do make use of 'irq', we could easily get the irq
> number through irq_desc->irq_data->irq. So kill the first parameter
> 'irq' of irq_flow_handler_t.
>
> To ease review, I have split the changes into several parts, though
> they should be merge as one to support bisecting.
>
> Signed-off-by: Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Acked-by: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Assume that I can't apply this directly. If I can during
next kernel cycle, push me.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
[not found] ` <1433391238-19471-45-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-06-05 3:08 ` Tomasz Figa
2015-06-10 8:12 ` Linus Walleij
@ 2015-06-10 10:31 ` Matthias Brugger
2 siblings, 0 replies; 16+ messages in thread
From: Matthias Brugger @ 2015-06-10 10:31 UTC (permalink / raw)
To: Jiang Liu
Cc: Krzysztof Kozlowski, Heikki Krogerus, Heiko Stuebner,
Benjamin Herrenschmidt, Linus Walleij, Tomasz Figa,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Maoguang Meng, H. Peter Anvin, kernel-F5mvAk5X5gdBDgjK7y7TUQ,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA, Axel Lin,
linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Hongzhou Yang,
Yinghai Lu, x86-DgEjT+Ai2ygdnm+yROfE0A,
bcm-kernel-feedback-list-dY08KVG/lbpWk0Htik3J/w,
linux-acpi-u79uwXL29TY76Z2rM5mHXA, Chen-Yu Tsai, Ingo Molnar,
Thomas Abraham, Bjorn Andersson, linux-pci-u79uwXL29TY76Z2rM5mHXA,
Yingjoe
2015-06-04 6:13 GMT+02:00 Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>:
> Now most IRQ flow handlers make no use of the first parameter 'irq'.
> And for those who do make use of 'irq', we could easily get the irq
> number through irq_desc->irq_data->irq. So kill the first parameter
> 'irq' of irq_flow_handler_t.
>
> To ease review, I have split the changes into several parts, though
> they should be merge as one to support bisecting.
>
> Signed-off-by: Jiang Liu <jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
> ---
[...]
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 2 +-
For Mediatek:
Acked-by: Matthias Brugger <matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFT v2 00/48] Refine irq interfaces to reduce number of parameters
2015-06-04 4:13 [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Jiang Liu
2015-06-04 4:13 ` [RFT v2 06/48] pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc Jiang Liu
2015-06-04 4:13 ` [RFT v2 44/48] genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t Jiang Liu
@ 2015-06-04 6:59 ` Geert Uytterhoeven
2015-06-04 7:23 ` Jiang Liu
2015-06-05 3:53 ` Fengguang Wu
2015-06-05 0:22 ` Daniel Axtens
3 siblings, 2 replies; 16+ messages in thread
From: Geert Uytterhoeven @ 2015-06-04 6:59 UTC (permalink / raw)
To: Jiang Liu, Wu Fengguang
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Matthias Brugger, Konrad Rzeszutek Wilk,
Tony Luck, the arch/x86 maintainers, linux-kernel@vger.kernel.org,
linux-pci, ACPI Devel Maling List,
linux-arm-kernel@lists.infradead.org, linux-mediatek
Hi Gerry,
On Thu, Jun 4, 2015 at 6:13 AM, Jiang Liu <jiang.liu@linux.intel.com> wrote:
> You may get the patch set from:
Missing link?
> The patch set passes Fengguang's 0day test suites as below. And tests
> with other platforms and configurations will be appreciated:)
> ----------------------------------------------------------
> configs tested: 95
[...]
> m68k amiga_defconfig
> m68k m5475evb_defconfig
> m68k multi_defconfig
For Fengguang: amiga_defconfig is a subset of multi_defconfig.
But sun3_defconfig is distinct, as Sun-3 has a different MMU and thus support
for it cannot be included in multi-platform kernels.
So I think you better replace amiga_defconfig by sun3_defconfig for build tests.
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFT v2 00/48] Refine irq interfaces to reduce number of parameters
2015-06-04 6:59 ` [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Geert Uytterhoeven
@ 2015-06-04 7:23 ` Jiang Liu
2015-06-05 3:53 ` Fengguang Wu
1 sibling, 0 replies; 16+ messages in thread
From: Jiang Liu @ 2015-06-04 7:23 UTC (permalink / raw)
To: Geert Uytterhoeven, Wu Fengguang
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Matthias Brugger, Konrad Rzeszutek Wilk,
Tony Luck, the arch/x86 maintainers, linux-kernel@vger.kernel.org,
linux-pci, ACPI Devel Maling List,
linux-arm-kernel@lists.infradead.org, linux-mediatek
On 2015/6/4 14:59, Geert Uytterhoeven wrote:
> Hi Gerry,
>
> On Thu, Jun 4, 2015 at 6:13 AM, Jiang Liu <jiang.liu@linux.intel.com> wrote:
>> You may get the patch set from:
>
> Missing link?
Yeah, sorry. It's at:
https://github.com/jiangliu/linux.git genirq_v2
Thanks!
Gerry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFT v2 00/48] Refine irq interfaces to reduce number of parameters
2015-06-04 6:59 ` [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Geert Uytterhoeven
2015-06-04 7:23 ` Jiang Liu
@ 2015-06-05 3:53 ` Fengguang Wu
1 sibling, 0 replies; 16+ messages in thread
From: Fengguang Wu @ 2015-06-05 3:53 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: Jiang Liu, Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Matthias Brugger, Konrad Rzeszutek Wilk,
Tony Luck, the arch/x86 maintainers, linux-kernel@vger.kernel.org,
linux-pci, ACPI Devel Maling List,
linux-arm-kernel@lists.infradead.org, linux-mediatek
> > The patch set passes Fengguang's 0day test suites as below. And tests
> > with other platforms and configurations will be appreciated:)
> > ----------------------------------------------------------
> > configs tested: 95
>
> [...]
>
> > m68k amiga_defconfig
> > m68k m5475evb_defconfig
> > m68k multi_defconfig
>
> For Fengguang: amiga_defconfig is a subset of multi_defconfig.
> But sun3_defconfig is distinct, as Sun-3 has a different MMU and thus support
> for it cannot be included in multi-platform kernels.
> So I think you better replace amiga_defconfig by sun3_defconfig for build tests.
Got it and changed the code accordingly, thank you for the suggestion!
Thanks,
Fengguang
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFT v2 00/48] Refine irq interfaces to reduce number of parameters
2015-06-04 4:13 [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Jiang Liu
` (2 preceding siblings ...)
2015-06-04 6:59 ` [RFT v2 00/48] Refine irq interfaces to reduce number of parameters Geert Uytterhoeven
@ 2015-06-05 0:22 ` Daniel Axtens
2015-06-05 1:15 ` Jiang Liu
3 siblings, 1 reply; 16+ messages in thread
From: Daniel Axtens @ 2015-06-05 0:22 UTC (permalink / raw)
To: Jiang Liu
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Matthias Brugger, Konrad Rzeszutek Wilk,
Tony Luck, x86, linux-kernel, linux-pci, linux-acpi,
linux-arm-kernel, linux-mediatek
[-- Attachment #1: Type: text/plain, Size: 22988 bytes --]
Hi Gerry,
You seem to be missing the links where I can grab this patch set from,
as indicated below. Is there somewhere I can pull this from to make it a
bit easier for me to build?
(Sorry if I've missed this elsewhere in the thread!)
Thanks in advance,
Daniel
On Thu, 2015-06-04 at 12:13 +0800, Jiang Liu wrote:
> Many irq core interfaces pass both 'struct irq_desc *desc' and 'int irq'
> to identify an irq. But that's a little overhead, either 'irq_desc' or
> 'irq' could identify an irq. We could get 'irq_desc' from 'irq' by
> irq_to_desc() and get 'irq' from 'irq_desc' through irq_desc->irq_data.irq.
> So this patch set aims to reduce number of parameters of irq related
> interfaces by passing in either 'irq' or 'irq_desc" but not both.
> Hope this helps to simplify interfaces and improve performance.
>
> This patch set is based the patch set to refine struct irq_data, which
> has been posted at:
Here
>
> The patch set could be split into five parts:
> 1) Patch 1-2 is following-on cleanup work for
> 2) Patch 3-14 optimize irq handlers by avoiding redundant calling of
> irq_to_desc() when we already have a pointer to corresponding irq_desc.
> 3) Patch 15-20 reduce number of parameters of irq core functions.
> 4) Patch 21-34 prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> 5) Patch 35-48 kill the first parameter 'irq' of irq_flow_handler_t.
> All these patches should be combined as one big patch to support
> bisecting, they have been split for easy review only.
>
> With all these patches applied, a tree-wide 'grep -R "struct irq_desc" *'
> shows that there are only four functions left who take both 'irq' and
> 'irq_desc' as parameters:
> kernel/irq/manage.c:__setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
> kernel/irq/debug.h:static inline void print_irq_desc(unsigned int irq, struct irq_desc *desc)
> kernel/irq/irqdesc.c:static void desc_set_defaults(unsigned int irq, struct irq_desc *desc, int node,
> kernel/irq/irqdesc.c:static void irq_insert_desc(unsigned int irq, struct irq_desc *desc)
>
> They are all pretty safe, it's a good sign that we have done a clean
> conversion. Thomas suggested to use coci scripts verify conversion result,
> it's a little hard for me and will ask for help from Julia later.
>
> You may get the patch set from:
Here
> The patch set passes Fengguang's 0day test suites as below. And tests
> with other platforms and configurations will be appreciated:)
> ----------------------------------------------------------
> configs tested: 95
>
> alpha defconfig
> parisc allnoconfig
> parisc b180_defconfig
> parisc c3000_defconfig
> parisc defconfig
> i386 randconfig-a0-06031710
> i386 randconfig-a1-06031710
> x86_64 acpi-redef
> x86_64 allyesdebian
> x86_64 nfsroot
> x86_64 allnoconfig
> x86_64 rhel
> sh allnoconfig
> sh rsk7269_defconfig
> sh sh7785lcr_32bit_defconfig
> sh titan_defconfig
> ia64 alldefconfig
> ia64 allnoconfig
> ia64 defconfig
> powerpc allnoconfig
> powerpc defconfig
> powerpc ppc64_defconfig
> i386 alldefconfig
> i386 allmodconfig
> i386 allnoconfig
> i386 defconfig
> mips allnoconfig
> mips fuloong2e_defconfig
> mips jz4740
> mips txx9
> x86_64 randconfig-i0-0603
> x86_64 randconfig-i1-0603
> sparc defconfig
> sparc64 allnoconfig
> sparc64 defconfig
> microblaze mmu_defconfig
> microblaze nommu_defconfig
> i386 randconfig-i0-0603
> i386 randconfig-i1-0603
> i386 allyesconfig
> blackfin BF526-EZBRD_defconfig
> blackfin BF533-EZKIT_defconfig
> blackfin BF561-EZKIT-SMP_defconfig
> blackfin TCM-BF537_defconfig
> cris etrax-100lx_v2_defconfig
> i386 randconfig-n0-0603
> i386 randconfig-n1-0603
> x86_64 lkp
> arm allnoconfig
> arm at91_dt_defconfig
> arm at_hdmac
> arm ep93xx
> arm imx_v6_v7_defconfig
> arm iop-adma
> arm marzen_defconfig
> arm prima2_defconfig
> arm sa1100
> arm samsung
> arm sh
> arm spear13xx_defconfig
> m68k amiga_defconfig
> m68k m5475evb_defconfig
> m68k multi_defconfig
> x86_64 allmodconfig
> x86_64 randconfig-x000-06031659
> x86_64 randconfig-x001-06031659
> x86_64 randconfig-x002-06031659
> x86_64 randconfig-x003-06031659
> x86_64 randconfig-x004-06031659
> x86_64 randconfig-x005-06031659
> x86_64 randconfig-x006-06031659
> x86_64 randconfig-x007-06031659
> x86_64 randconfig-x008-06031659
> x86_64 randconfig-x009-06031659
> i386 randconfig-r0-0603
> i386 randconfig-r1-0603
> avr32 atngw100_defconfig
> avr32 atstk1006_defconfig
> frv defconfig
> mn10300 asb2364_defconfig
> openrisc or1ksim_defconfig
> tile tilegx_defconfig
> um i386_defconfig
> um x86_64_defconfig
> i386 randconfig-x000-06031736
> i386 randconfig-x001-06031736
> i386 randconfig-x002-06031736
> i386 randconfig-x003-06031736
> i386 randconfig-x004-06031736
> i386 randconfig-x005-06031736
> i386 randconfig-x006-06031736
> i386 randconfig-x007-06031736
> i386 randconfig-x008-06031736
> i386 randconfig-x009-06031736
> x86_64 randconfig-x0-06031736
>
> Thanks!
> Gerry
>
> Jiang Liu (48):
> genirq: Clean up outdated comments related to include/linux/irqdesc.h
> genirq: Kill never used irq_node()
> MIPS, irq: Use irq_desc_get_xxx() to avoid redundant lookup of
> irq_desc
> powerpc, irq: Use irq_desc_get_xxx() to avoid redundant lookup of
> irq_desc
> gpio: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> pinctrl: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> avr32, irq: Use irq_desc_get_xxx() to avoid redundant lookup of
> irq_desc
> mfd: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> ARM, irq: Use irq_desc_get_xxx() to avoid redundant lookup of
> irq_desc
> irqchip: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> ipu: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> sh: intc: Use irq_desc_get_xxx() to avoid redundant lookup of
> irq_desc
> keystone, irq: Use irq_data_get_xxx() to avoid redundant lookup of
> irq_data
> spmi: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc
> genirq: Kill the parameter 'irq' of kstat_incr_irqs_this_cpu()
> genirq: Introduce helper irq_desc_get_irq()
> genirq: Kill the parameter 'irq' of check_irq_resend()
> genirq: Kill the parameter 'irq' of note_interrupt()
> genirq: Change prototypes of register_irq_proc() and friends
> genirq: Kill the parameter 'irq' of setup_affinity()
> ARM, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> blackfin, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> c6x, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> m68k, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> mips, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> powerpc, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> sh, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> unicore32, irq: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> ipu: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> gpio: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> irqchip: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> mfd: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> PCI/keystone: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> pinctrl: Prepare for killing the first parameter 'irq' of
> irq_flow_handler_t
> genirq: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, arm: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, blackfin: Kill the first parameter 'irq' of
> irq_flow_handler_t
> genirq, powerpc: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, mips: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, m68k: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, x86: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, sh: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, arch: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, pinctrl: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, gpio: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, irqchip: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, mfd: Kill the first parameter 'irq' of irq_flow_handler_t
> genirq, drivers: Kill the first parameter 'irq' of irq_flow_handler_t
>
> arch/alpha/kernel/irq.c | 2 +-
> arch/arm/common/it8152.c | 2 +-
> arch/arm/common/locomo.c | 13 ++---
> arch/arm/common/sa1111.c | 6 +--
> arch/arm/include/asm/hardware/it8152.h | 2 +-
> arch/arm/include/asm/mach/irq.h | 4 +-
> arch/arm/mach-dove/irq.c | 5 +-
> arch/arm/mach-footbridge/isa-irq.c | 4 +-
> arch/arm/mach-gemini/gpio.c | 2 +-
> arch/arm/mach-imx/3ds_debugboard.c | 2 +-
> arch/arm/mach-imx/mach-mx31ads.c | 2 +-
> arch/arm/mach-iop13xx/msi.c | 2 +-
> arch/arm/mach-lpc32xx/irq.c | 4 +-
> arch/arm/mach-netx/generic.c | 2 +-
> arch/arm/mach-omap1/fpga.c | 2 +-
> arch/arm/mach-omap2/prm_common.c | 2 +-
> arch/arm/mach-pxa/balloon3.c | 5 +-
> arch/arm/mach-pxa/cm-x2xx-pci.c | 4 +-
> arch/arm/mach-pxa/lpd270.c | 6 +--
> arch/arm/mach-pxa/pcm990-baseboard.c | 5 +-
> arch/arm/mach-pxa/viper.c | 8 ++-
> arch/arm/mach-pxa/zeus.c | 8 ++-
> arch/arm/mach-rpc/ecard.c | 2 +-
> arch/arm/mach-s3c24xx/bast-irq.c | 3 +-
> arch/arm/mach-s3c64xx/common.c | 8 +--
> arch/arm/mach-sa1100/neponset.c | 2 +-
> arch/arm/plat-orion/gpio.c | 4 +-
> arch/avr32/mach-at32ap/extint.c | 2 +-
> arch/avr32/mach-at32ap/pio.c | 4 +-
> arch/blackfin/include/asm/irq_handler.h | 4 +-
> arch/blackfin/kernel/ipipe.c | 4 +-
> arch/blackfin/mach-bf537/ints-priority.c | 8 ++-
> arch/blackfin/mach-common/ints-priority.c | 8 ++-
> arch/c6x/platforms/megamod-pic.c | 9 ++--
> arch/m68k/amiga/amiints.c | 8 +--
> arch/m68k/coldfire/intc-5272.c | 4 +-
> arch/m68k/include/asm/irq.h | 3 +-
> arch/m68k/include/asm/mac_via.h | 2 +-
> arch/m68k/mac/baboon.c | 2 +-
> arch/m68k/mac/oss.c | 4 +-
> arch/m68k/mac/psc.c | 3 +-
> arch/m68k/mac/via.c | 6 +--
> arch/mips/alchemy/common/irq.c | 4 +-
> arch/mips/alchemy/devboards/bcsr.c | 3 +-
> arch/mips/ath25/ar2315.c | 4 +-
> arch/mips/ath25/ar5312.c | 4 +-
> arch/mips/ath79/irq.c | 11 ++--
> arch/mips/cavium-octeon/octeon-irq.c | 12 +++--
> arch/mips/include/asm/netlogic/common.h | 4 +-
> arch/mips/jz4740/gpio.c | 2 +-
> arch/mips/netlogic/common/smp.c | 4 +-
> arch/mips/pci/pci-ar2315.c | 4 +-
> arch/mips/pci/pci-ar71xx.c | 4 +-
> arch/mips/pci/pci-ar724x.c | 4 +-
> arch/mips/pci/pci-rt3883.c | 8 ++-
> arch/mips/ralink/irq.c | 4 +-
> arch/powerpc/include/asm/qe_ic.h | 23 ++++----
> arch/powerpc/include/asm/tsi108_pci.h | 2 +-
> arch/powerpc/platforms/512x/mpc5121_ads_cpld.c | 4 +-
> arch/powerpc/platforms/52xx/media5200.c | 2 +-
> arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 4 +-
> arch/powerpc/platforms/82xx/pq2ads-pci-pic.c | 2 +-
> arch/powerpc/platforms/85xx/common.c | 2 +-
> arch/powerpc/platforms/85xx/mpc85xx_cds.c | 5 +-
> arch/powerpc/platforms/85xx/mpc85xx_ds.c | 2 +-
> arch/powerpc/platforms/85xx/socrates_fpga_pic.c | 4 +-
> arch/powerpc/platforms/86xx/pic.c | 2 +-
> arch/powerpc/platforms/8xx/m8xx_setup.c | 2 +-
> arch/powerpc/platforms/cell/axon_msi.c | 4 +-
> arch/powerpc/platforms/cell/interrupt.c | 3 +-
> arch/powerpc/platforms/cell/spider-pic.c | 2 +-
> arch/powerpc/platforms/chrp/setup.c | 2 +-
> arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 5 +-
> arch/powerpc/platforms/embedded6xx/mvme5100.c | 2 +-
> arch/powerpc/platforms/pseries/setup.c | 2 +-
> arch/powerpc/sysdev/ge/ge_pic.c | 2 +-
> arch/powerpc/sysdev/ge/ge_pic.h | 2 +-
> arch/powerpc/sysdev/mpic.c | 2 +-
> arch/powerpc/sysdev/qe_lib/qe_ic.c | 4 +-
> arch/powerpc/sysdev/tsi108_pci.c | 2 +-
> arch/powerpc/sysdev/uic.c | 4 +-
> arch/powerpc/sysdev/xics/xics-common.c | 2 +-
> arch/powerpc/sysdev/xilinx_intc.c | 2 +-
> arch/sh/boards/mach-se/7343/irq.c | 4 +-
> arch/sh/boards/mach-se/7722/irq.c | 4 +-
> arch/sh/boards/mach-se/7724/irq.c | 4 +-
> arch/sh/boards/mach-x3proto/gpio.c | 4 +-
> arch/sh/cchips/hd6446x/hd64461.c | 2 +-
> arch/sparc/kernel/leon_kernel.c | 2 +-
> arch/sparc/kernel/leon_pci_grpci1.c | 2 +-
> arch/sparc/kernel/leon_pci_grpci2.c | 2 +-
> arch/tile/kernel/pci_gx.c | 4 +-
> arch/unicore32/kernel/irq.c | 5 +-
> arch/x86/kernel/irq_32.c | 13 +++--
> arch/x86/kernel/irq_64.c | 2 +-
> arch/x86/lguest/boot.c | 2 +-
> drivers/dma/ipu/ipu_irq.c | 8 +--
> drivers/gpio/gpio-altera.c | 6 +--
> drivers/gpio/gpio-bcm-kona.c | 4 +-
> drivers/gpio/gpio-davinci.c | 3 +-
> drivers/gpio/gpio-dwapb.c | 4 +-
> drivers/gpio/gpio-ep93xx.c | 5 +-
> drivers/gpio/gpio-intel-mid.c | 2 +-
> drivers/gpio/gpio-lynxpoint.c | 2 +-
> drivers/gpio/gpio-mpc8xxx.c | 2 +-
> drivers/gpio/gpio-msic.c | 2 +-
> drivers/gpio/gpio-msm-v2.c | 2 +-
> drivers/gpio/gpio-mvebu.c | 4 +-
> drivers/gpio/gpio-mxc.c | 10 ++--
> drivers/gpio/gpio-mxs.c | 4 +-
> drivers/gpio/gpio-omap.c | 4 +-
> drivers/gpio/gpio-pl061.c | 2 +-
> drivers/gpio/gpio-pxa.c | 2 +-
> drivers/gpio/gpio-sa1100.c | 5 +-
> drivers/gpio/gpio-tegra.c | 6 +--
> drivers/gpio/gpio-timberdale.c | 7 +--
> drivers/gpio/gpio-tz1090.c | 4 +-
> drivers/gpio/gpio-vf610.c | 4 +-
> drivers/gpio/gpio-zynq.c | 4 +-
> drivers/gpu/ipu-v3/ipu-common.c | 8 +--
> drivers/irqchip/exynos-combiner.c | 8 +--
> drivers/irqchip/irq-armada-370-xp.c | 5 +-
> drivers/irqchip/irq-bcm7038-l1.c | 2 +-
> drivers/irqchip/irq-bcm7120-l2.c | 2 +-
> drivers/irqchip/irq-brcmstb-l2.c | 7 +--
> drivers/irqchip/irq-dw-apb-ictl.c | 6 +--
> drivers/irqchip/irq-gic.c | 6 +--
> drivers/irqchip/irq-imgpdc.c | 5 +-
> drivers/irqchip/irq-keystone.c | 6 +--
> drivers/irqchip/irq-metag-ext.c | 3 +-
> drivers/irqchip/irq-metag.c | 3 +-
> drivers/irqchip/irq-mips-gic.c | 2 +-
> drivers/irqchip/irq-mmp.c | 3 +-
> drivers/irqchip/irq-orion.c | 4 +-
> drivers/irqchip/irq-s3c24xx.c | 6 +--
> drivers/irqchip/irq-sunxi-nmi.c | 4 +-
> drivers/irqchip/irq-tb10x.c | 4 +-
> drivers/irqchip/irq-versatile-fpga.c | 6 +--
> drivers/irqchip/irq-vic.c | 2 +-
> drivers/irqchip/spear-shirq.c | 4 +-
> drivers/mfd/asic3.c | 2 +-
> drivers/mfd/ezx-pcap.c | 4 +-
> drivers/mfd/htc-egpio.c | 2 +-
> drivers/mfd/jz4740-adc.c | 2 +-
> drivers/mfd/max8997-irq.c | 8 +--
> drivers/mfd/mt6397-core.c | 8 +--
> drivers/mfd/pm8921-core.c | 2 +-
> drivers/mfd/t7l66xb.c | 4 +-
> drivers/mfd/tc6393xb.c | 4 +-
> drivers/mfd/twl6030-irq.c | 2 +-
> drivers/mfd/ucb1x00-core.c | 4 +-
> drivers/pci/host/pci-keystone-dw.c | 15 +++---
> drivers/pci/host/pci-keystone.c | 7 +--
> drivers/pinctrl/bcm/pinctrl-cygnus-gpio.c | 2 +-
> drivers/pinctrl/intel/pinctrl-baytrail.c | 2 +-
> drivers/pinctrl/intel/pinctrl-cherryview.c | 4 +-
> drivers/pinctrl/intel/pinctrl-intel.c | 4 +-
> drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 6 +--
> drivers/pinctrl/nomadik/pinctrl-nomadik.c | 14 +++--
> drivers/pinctrl/pinctrl-adi2.c | 3 +-
> drivers/pinctrl/pinctrl-amd.c | 8 +--
> drivers/pinctrl/pinctrl-at91.c | 4 +-
> drivers/pinctrl/pinctrl-coh901.c | 7 +--
> drivers/pinctrl/pinctrl-rockchip.c | 8 +--
> drivers/pinctrl/pinctrl-single.c | 4 +-
> drivers/pinctrl/pinctrl-st.c | 10 ++--
> drivers/pinctrl/qcom/pinctrl-msm.c | 6 +--
> drivers/pinctrl/samsung/pinctrl-exynos.c | 12 ++---
> drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 26 ++++-----
> drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 32 ++++++-----
> drivers/pinctrl/sirf/pinctrl-sirf.c | 7 +--
> drivers/pinctrl/spear/pinctrl-plgpio.c | 2 +-
> drivers/pinctrl/sunxi/pinctrl-sunxi.c | 7 +--
> drivers/sh/intc/core.c | 4 +-
> drivers/sh/intc/virq.c | 18 ++++---
> drivers/spmi/spmi-pmic-arb.c | 6 +--
> include/linux/irq.h | 20 ++++---
> include/linux/irqdesc.h | 12 +++--
> include/linux/irqhandler.h | 2 +-
> include/linux/irqnr.h | 6 ---
> kernel/irq/chip.c | 44 +++++++--------
> kernel/irq/handle.c | 8 +--
> kernel/irq/internals.h | 29 +++++-----
> kernel/irq/irqdesc.c | 6 +--
> kernel/irq/manage.c | 66 ++++++++++++-----------
> kernel/irq/pm.c | 12 ++---
> kernel/irq/proc.c | 16 +++---
> kernel/irq/resend.c | 4 +-
> kernel/irq/spurious.c | 33 ++++++------
> 189 files changed, 543 insertions(+), 565 deletions(-)
>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 860 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFT v2 00/48] Refine irq interfaces to reduce number of parameters
2015-06-05 0:22 ` Daniel Axtens
@ 2015-06-05 1:15 ` Jiang Liu
0 siblings, 0 replies; 16+ messages in thread
From: Jiang Liu @ 2015-06-05 1:15 UTC (permalink / raw)
To: Daniel Axtens
Cc: Thomas Gleixner, Bjorn Helgaas, Benjamin Herrenschmidt,
Ingo Molnar, H. Peter Anvin, Randy Dunlap, Yinghai Lu,
Borislav Petkov, Matthias Brugger, Konrad Rzeszutek Wilk,
Tony Luck, x86, linux-kernel, linux-pci, linux-acpi,
linux-arm-kernel, linux-mediatek
On 2015/6/5 8:22, Daniel Axtens wrote:
> Hi Gerry,
>
> You seem to be missing the links where I can grab this patch set from,
> as indicated below. Is there somewhere I can pull this from to make it a
> bit easier for me to build?
Hi Daniel,
Yeah, sorry. You may pull from:
https://github.com/jiangliu/linux.git genirq_v2
Thanks!
Gerry
^ permalink raw reply [flat|nested] 16+ messages in thread