pinctrl: intel: make irq_chip immutable
Subsystems (3)
PATCH 1/2 pinctrl: intel: make irq_chip immutable
Since recently, the kernel is nagging about mutable irq_chips:
"not an immutable chip, please consider fixing it!"
Drop the unneeded copy, flag it as IRQCHIP_IMMUTABLE, add the new helper functions and call the appropriate gpiolib functions.
While at it, align IRQ chip callback names with member names for the sake of consistency.
--- drivers/pinctrl/intel/pinctrl-intel.c | 44 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 17 deletions(-)
drivers/pinctrl/intel/pinctrl-intel.c +27 -17
@@ -1039,15 +1039,14 @@ static void intel_gpio_irq_ack(struct irq_data *d) } } -static void intel_gpio_irq_mask_unmask (struct irq_data *d,bool mask) +static void intel_gpio_irq_mask_unmask (struct gpio_chip *gc,irq_hw_number_t hwirq,bool mask) { -struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct intel_pinctrl *pctrl =gpiochip_get_data (gc);const struct intel_community *community;const struct intel_padgroup *padgrp;int pin; - pin =intel_gpio_to_pin (pctrl,irqd_to_hwirq (d), &community, &padgrp); + pin =intel_gpio_to_pin (pctrl, hwirq, &community, &padgrp);if (pin >=0 ) {unsigned int gpp, gpp_offset;unsigned long flags;
@@ -1077,15 +1076,23 @@ static void intel_gpio_irq_mask_unmask(struct irq_data *d, bool mask)static void intel_gpio_irq_mask (struct irq_data *d) { -intel_gpio_irq_mask_unmask (d, true); +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +irq_hw_number_t hwirq =irqd_to_hwirq (d); + +intel_gpio_irq_mask_unmask (gc, hwirq, true); +gpiochip_disable_irq (gc, hwirq); }static void intel_gpio_irq_unmask (struct irq_data *d) { -intel_gpio_irq_mask_unmask (d, false); +struct gpio_chip *gc =irq_data_get_irq_chip_data (d); +irq_hw_number_t hwirq =irqd_to_hwirq (d); + +gpiochip_enable_irq (gc, hwirq); +intel_gpio_irq_mask_unmask (gc, hwirq, false); } -static int intel_gpio_irq_type (struct irq_data *d,unsigned int type) +static int intel_gpio_irq_set_type (struct irq_data *d,unsigned int type) {struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct intel_pinctrl *pctrl =gpiochip_get_data (gc);
@@ -1142,7 +1149,7 @@ static int intel_gpio_irq_type(struct irq_data *d, unsigned int type)return 0 ; } -static int intel_gpio_irq_wake (struct irq_data *d,unsigned int on) +static int intel_gpio_irq_set_wake (struct irq_data *d,unsigned int on) {struct gpio_chip *gc =irq_data_get_irq_chip_data (d);struct intel_pinctrl *pctrl =gpiochip_get_data (gc);
@@ -1157,6 +1164,17 @@ static int intel_gpio_irq_wake(struct irq_data *d, unsigned int on)return 0 ; } +static const struct irq_chip intel_gpio_irq_chip = { + .name ="intel-gpio" , + .irq_ack = intel_gpio_irq_ack, + .irq_mask = intel_gpio_irq_mask, + .irq_unmask = intel_gpio_irq_unmask, + .irq_set_type = intel_gpio_irq_set_type, + .irq_set_wake = intel_gpio_irq_set_wake, + .flags =IRQCHIP_MASK_ON_SUSPEND |IRQCHIP_IMMUTABLE , +GPIOCHIP_IRQ_RESOURCE_HELPERS , +}; +static int intel_gpio_community_irq_handler (struct intel_pinctrl *pctrl,const struct intel_community *community) {
@@ -1319,15 +1337,6 @@ static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) pctrl->chip.add_pin_ranges = intel_gpio_add_pin_ranges; pctrl->irq = irq; -/* Setup IRQ chip */ - pctrl->irqchip.name =dev_name (pctrl->dev); - pctrl->irqchip.irq_ack = intel_gpio_irq_ack; - pctrl->irqchip.irq_mask = intel_gpio_irq_mask; - pctrl->irqchip.irq_unmask = intel_gpio_irq_unmask; - pctrl->irqchip.irq_set_type = intel_gpio_irq_type; - pctrl->irqchip.irq_set_wake = intel_gpio_irq_wake; - pctrl->irqchip.flags =IRQCHIP_MASK_ON_SUSPEND ; -/* * On some platforms several GPIO controllers share the same interrupt * line.
@@ -1340,8 +1349,9 @@ static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq)return ret; } +/* Setup IRQ chip */ girq = &pctrl->chip.irq; - girq->chip = &pctrl->irqchip; +gpio_irq_chip_set_chip (girq, &intel_gpio_irq_chip);/* This will let us handle the IRQ in the driver */ girq->parent_handler =NULL ; girq->num_parents =0 ;
Signature · 1 line
2.35.1
PATCH 2/2 pinctrl: intel: Drop unsued irqchip member in struct intel_pinctrl
There is no users of irqchip member in struct intel_pinctrl. Drop it.
--- drivers/pinctrl/intel/pinctrl-intel.h | 2 -- 1 file changed, 2 deletions(-)
drivers/pinctrl/intel/pinctrl-intel.h +0 -2
@@ -223,7 +223,6 @@ struct intel_pinctrl_context {* @pctldesc: Pin controller description * @pctldev: Pointer to the pin controller device * @chip: GPIO chip in this pin controller -* @irqchip: IRQ chip in this pin controller * @soc: SoC/PCH specific pin configuration data * @communities: All communities in this pin controller * @ncommunities: Number of communities in this pin controller
@@ -236,7 +235,6 @@ struct intel_pinctrl {struct pinctrl_desc pctldesc;struct pinctrl_dev *pctldev;struct gpio_chip chip; -struct irq_chip irqchip;const struct intel_pinctrl_soc_data *soc;struct intel_community *communities;size_t ncommunities;
Signature · 1 line
2.35.1
kernel test robot
build botRe: [PATCH v1 2/2] pinctrl: intel: Drop unsued irqchip member in struct intel_pinctrl
I love your patch! Yet something to improve:
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on linusw-pinctrl/devel]
[also build test ERROR on v5.18-rc7 next-20220516]
[If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/pinctrl-intel-make-irq_chip-immutable/20220517-025735 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel config: i386-randconfig-a015 (https://download.01.org/0day-ci/archive/20220517/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 853fa8ee225edf2d0de94b0dcbd31bea916e825e)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/396b7abcd486a384c9b8fd7a0ecb13aff05e2163
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Andy-Shevchenko/pinctrl-intel-make-irq_chip-immutable/20220517-025735 git checkout 396b7abcd486a384c9b8fd7a0ecb13aff05e2163
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/pinctrl/intel/
If you fix the issue, kindly add following tag as appropriate
All errors (new ones prefixed by >>):
>> drivers/pinctrl/intel/pinctrl-cherryview.c:1614:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.name = "chv-gpio";
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1615:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.irq_startup = chv_gpio_irq_startup;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1616:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.irq_ack = chv_gpio_irq_ack;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1617:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.irq_mask = chv_gpio_irq_mask;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1618:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.irq_unmask = chv_gpio_irq_unmask;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1619:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.irq_set_type = chv_gpio_irq_type;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1620:9: error: no member named 'irqchip' in 'struct intel_pinctrl'
pctrl->irqchip.flags = IRQCHIP_SKIP_SET_WAKE;
~~~~~ ^
drivers/pinctrl/intel/pinctrl-cherryview.c:1622:27: error: no member named 'irqchip' in 'struct intel_pinctrl'
chip->irq.chip = &pctrl->irqchip;
~~~~~ ^8 errors generated.
vim +1614 drivers/pinctrl/intel/pinctrl-cherryview.c
bd90633a5c5433b Hans de Goede 2019-11-14 1595
3ea2e2cabd2dc74 Andy Shevchenko 2020-07-27 1596 static int chv_gpio_probe(struct intel_pinctrl *pctrl, int irq)
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1597 {
293428f93260d45 Andy Shevchenko 2020-06-09 1598 const struct intel_community *community = &pctrl->communities[0];
36ad7b24486ae5e Andy Shevchenko 2020-04-01 1599 const struct intel_padgroup *gpp;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1600 struct gpio_chip *chip = &pctrl->chip;
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1601 struct device *dev = pctrl->dev;
7036502783729c2 Mika Westerberg 2017-04-10 1602 bool need_valid_mask = !dmi_check_system(chv_no_valid_mask);
03c4749dd6c7ff9 Mika Westerberg 2017-11-27 1603 int ret, i, irq_base;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1604
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1605 *chip = chv_gpio_chip;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1606
293428f93260d45 Andy Shevchenko 2020-06-09 1607 chip->ngpio = pctrl->soc->pins[pctrl->soc->npins - 1].number + 1;
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1608 chip->label = dev_name(dev);
bd90633a5c5433b Hans de Goede 2019-11-14 1609 chip->add_pin_ranges = chv_gpio_add_pin_ranges;
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1610 chip->parent = dev;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1611 chip->base = -1;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1612
b9a19bdbc843abd Hans de Goede 2019-11-14 1613 pctrl->irq = irq;
b9a19bdbc843abd Hans de Goede 2019-11-14 @1614 pctrl->irqchip.name = "chv-gpio";
b9a19bdbc843abd Hans de Goede 2019-11-14 1615 pctrl->irqchip.irq_startup = chv_gpio_irq_startup;
b9a19bdbc843abd Hans de Goede 2019-11-14 1616 pctrl->irqchip.irq_ack = chv_gpio_irq_ack;
b9a19bdbc843abd Hans de Goede 2019-11-14 1617 pctrl->irqchip.irq_mask = chv_gpio_irq_mask;
b9a19bdbc843abd Hans de Goede 2019-11-14 1618 pctrl->irqchip.irq_unmask = chv_gpio_irq_unmask;
b9a19bdbc843abd Hans de Goede 2019-11-14 1619 pctrl->irqchip.irq_set_type = chv_gpio_irq_type;
b9a19bdbc843abd Hans de Goede 2019-11-14 1620 pctrl->irqchip.flags = IRQCHIP_SKIP_SET_WAKE;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1621
b9a19bdbc843abd Hans de Goede 2019-11-14 1622 chip->irq.chip = &pctrl->irqchip;
b9a19bdbc843abd Hans de Goede 2019-11-14 1623 chip->irq.init_hw = chv_gpio_irq_init_hw;
b9a19bdbc843abd Hans de Goede 2019-11-14 1624 chip->irq.parent_handler = chv_gpio_irq_handler;
b9a19bdbc843abd Hans de Goede 2019-11-14 1625 chip->irq.num_parents = 1;
b9a19bdbc843abd Hans de Goede 2019-11-14 1626 chip->irq.parents = &pctrl->irq;
b9a19bdbc843abd Hans de Goede 2019-11-14 1627 chip->irq.default_type = IRQ_TYPE_NONE;
b9a19bdbc843abd Hans de Goede 2019-11-14 1628 chip->irq.handler = handle_bad_irq;
b9a19bdbc843abd Hans de Goede 2019-11-14 1629 if (need_valid_mask) {
b9a19bdbc843abd Hans de Goede 2019-11-14 1630 chip->irq.init_valid_mask = chv_init_irq_valid_mask;
b9a19bdbc843abd Hans de Goede 2019-11-14 1631 } else {
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1632 irq_base = devm_irq_alloc_descs(dev, -1, 0, pctrl->soc->npins, NUMA_NO_NODE);
845e405e5e6c9dc Grygorii Strashko 2017-10-03 1633 if (irq_base < 0) {
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1634 dev_err(dev, "Failed to allocate IRQ numbers\n");
845e405e5e6c9dc Grygorii Strashko 2017-10-03 1635 return irq_base;
845e405e5e6c9dc Grygorii Strashko 2017-10-03 1636 }
845e405e5e6c9dc Grygorii Strashko 2017-10-03 1637 }
845e405e5e6c9dc Grygorii Strashko 2017-10-03 1638
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1639 ret = devm_gpiochip_add_data(dev, chip, pctrl);
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1640 if (ret) {
db1b2a8caf5b495 Andy Shevchenko 2021-11-26 1641 dev_err(dev, "Failed to register gpiochip\n");
d1073418d952f6a Mika Westerberg 2016-09-20 1642 return ret;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1643 }
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1644
83b9dc11312f48a Mika Westerberg 2018-04-25 1645 if (!need_valid_mask) {
36ad7b24486ae5e Andy Shevchenko 2020-04-01 1646 for (i = 0; i < community->ngpps; i++) {
36ad7b24486ae5e Andy Shevchenko 2020-04-01 1647 gpp = &community->gpps[i];
83b9dc11312f48a Mika Westerberg 2018-04-25 1648
83b9dc11312f48a Mika Westerberg 2018-04-25 1649 irq_domain_associate_many(chip->irq.domain, irq_base,
36ad7b24486ae5e Andy Shevchenko 2020-04-01 1650 gpp->base, gpp->size);
36ad7b24486ae5e Andy Shevchenko 2020-04-01 1651 irq_base += gpp->size;
83b9dc11312f48a Mika Westerberg 2018-04-25 1652 }
83b9dc11312f48a Mika Westerberg 2018-04-25 1653 }
83b9dc11312f48a Mika Westerberg 2018-04-25 1654
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1655 return 0;
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1656 }
6e08d6bbebebcf7 Mika Westerberg 2014-11-03 1657 Signature · 2 lines
0-DAY CI Kernel Test Service https://01.org/lkp
kernel test robot
build botRe: [PATCH v1 2/2] pinctrl: intel: Drop unsued irqchip member in struct intel_pinctrl
In reply to Andy ShevchenkoI love your patch! Yet something to improve:
Hi Andy,
I love your patch! Yet something to improve:
[auto build test ERROR on linusw-pinctrl/devel]
[also build test ERROR on v5.18-rc7 next-20220516]
[If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/pinctrl-intel-make-irq_chip-immutable/20220517-025735 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel config: i386-randconfig-a001-20220516 (https://download.01.org/0day-ci/archive/20220517/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 853fa8ee225edf2d0de94b0dcbd31bea916e825e)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/396b7abcd486a384c9b8fd7a0ecb13aff05e2163
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Andy-Shevchenko/pinctrl-intel-make-irq_chip-immutable/20220517-025735 git checkout 396b7abcd486a384c9b8fd7a0ecb13aff05e2163
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
All errors (new ones prefixed by >>):
>> drivers/pinctrl/intel/pinctrl-baytrail.c:1636:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.name = "BYT-GPIO",
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1637:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.irq_ack = byt_irq_ack,
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1638:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.irq_mask = byt_irq_mask,
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1639:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.irq_unmask = byt_irq_unmask,
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1640:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.irq_set_type = byt_irq_type,
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1641:7: error: no member named 'irqchip' in 'struct intel_pinctrl'
vg->irqchip.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_SET_TYPE_MASKED,
~~ ^
drivers/pinctrl/intel/pinctrl-baytrail.c:1644:21: error: no member named 'irqchip' in 'struct intel_pinctrl'
girq->chip = &vg->irqchip;
~~ ^7 errors generated.
vim +1636 drivers/pinctrl/intel/pinctrl-baytrail.c
e1ee5c578fb1fa drivers/pinctrl/pinctrl-baytrail.c Mika Westerberg 2014-07-25 1630
a5d811bbf1c6df drivers/pinctrl/pinctrl-baytrail.c Mathias Nyman 2013-06-18 1631 /* set up interrupts */
f86a1bb536064a drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2020-04-14 1632 irq = platform_get_irq_optional(pdev, 0);
f86a1bb536064a drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2020-04-14 1633 if (irq > 0) {
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1634 struct gpio_irq_chip *girq;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1635
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 @1636 vg->irqchip.name = "BYT-GPIO",
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1637 vg->irqchip.irq_ack = byt_irq_ack,
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1638 vg->irqchip.irq_mask = byt_irq_mask,
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1639 vg->irqchip.irq_unmask = byt_irq_unmask,
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1640 vg->irqchip.irq_set_type = byt_irq_type,
6b4542664c2d1f drivers/pinctrl/intel/pinctrl-baytrail.c Hans de Goede 2021-11-22 1641 vg->irqchip.flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_SET_TYPE_MASKED,
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1642
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1643 girq = &gc->irq;
539d8bde72c22d drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1644 girq->chip = &vg->irqchip;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1645 girq->init_hw = byt_gpio_irq_init_hw;
ab68b220e81fd0 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-10-24 1646 girq->init_valid_mask = byt_init_irq_valid_mask;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1647 girq->parent_handler = byt_gpio_irq_handler;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1648 girq->num_parents = 1;
990ec243cb77c6 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-25 1649 girq->parents = devm_kcalloc(vg->dev, girq->num_parents,
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1650 sizeof(*girq->parents), GFP_KERNEL);
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1651 if (!girq->parents)
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1652 return -ENOMEM;
f86a1bb536064a drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2020-04-14 1653 girq->parents[0] = irq;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1654 girq->default_type = IRQ_TYPE_NONE;
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1655 girq->handler = handle_bad_irq;
605a7bca7cf39c drivers/pinctrl/pinctrl-baytrail.c Jin Yao 2014-05-15 1656 }
605a7bca7cf39c drivers/pinctrl/pinctrl-baytrail.c Jin Yao 2014-05-15 1657
990ec243cb77c6 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-25 1658 ret = devm_gpiochip_add_data(vg->dev, gc, vg);
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1659 if (ret) {
990ec243cb77c6 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-25 1660 dev_err(vg->dev, "failed adding byt-gpio chip\n");
ca8a958e2acb41 drivers/pinctrl/intel/pinctrl-baytrail.c Andy Shevchenko 2019-11-05 1661 return ret;
e1ee5c578fb1fa drivers/pinctrl/pinctrl-baytrail.c Mika Westerberg 2014-07-25 1662 }
e1ee5c578fb1fa drivers/pinctrl/pinctrl-baytrail.c Mika Westerberg 2014-07-25 1663
71e6ca61e82667 drivers/pinctrl/intel/pinctrl-baytrail.c Cristina Ciocan 2016-04-01 1664 return ret;
71e6ca61e82667 drivers/pinctrl/intel/pinctrl-baytrail.c Cristina Ciocan 2016-04-01 1665 }
71e6ca61e82667 drivers/pinctrl/intel/pinctrl-baytrail.c Cristina Ciocan 2016-04-01 1666 Signature · 2 lines
0-DAY CI Kernel Test Service https://01.org/lkp
Mika Westerberg
maintainerQuoted 9 lines · Andy Shevchenko
Since recently, the kernel is nagging about mutable
irq_chips:"not an immutable chip, please consider fixing it!"
Drop the unneeded copy, flag it as
IRQCHIP_IMMUTABLE, add the new helper functions and call the appropriate gpiolib functions.While at it, align IRQ chip callback names with member names for the sake of consistency.
Or for the sake of inconsistency? ;-) All the other structs are not using this kind of alignment and I would like to keep this one matching the rest too. Also I prefer the format currently used in the driver.
Quoted 8 lines · Mika Westerberg
Quoted 7 lines · Andy Shevchenko
Since recently, the kernel is nagging about mutable
irq_chips:"not an immutable chip, please consider fixing it!"
Drop the unneeded copy, flag it as
IRQCHIP_IMMUTABLE, add the new helper functions and call the appropriate gpiolib functions.
Quoted 6 lines
Quoted 2 lines
While at it, align IRQ chip callback names with member names for the sake of consistency.
Or for the sake of inconsistency? ;-) All the other structs are not using this kind of alignment and I would like to keep this one matching the rest too. Also I prefer the format currently used in the driver.
I got your point. I will drop that part from v2.
Signature · 2 lines
With Best Regards, Andy Shevchenko