Re: [PATCH v2 1/2] gpio: mediatek: add driver for MT7621

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 29, 2018 at 6:43 PM, kbuild test robot <lkp@xxxxxxxxx> wrote:
> Hi Sergio,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on gpio/for-next]
> [also build test ERROR on v4.18-rc2 next-20180629]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Sergio-Paracuellos/gpio-mediatek-driver-for-gpio-chip-in-MT7621-SoC/20180629-225420
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git for-next
> config: x86_64-randconfig-s0-06292230 (attached as .config)
> compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
> reproduce:
>         # save the attached .config to linux build tree
>         make ARCH=x86_64
>
> All errors (new ones prefixed by >>):
>
>    drivers/gpio/gpio-mt7621.c: In function 'mediatek_gpio_bank_probe':
>>> drivers/gpio/gpio-mt7621.c:221:10: error: 'struct gpio_chip' has no member named 'of_node'
>      rg->chip.of_node = node;
>              ^

Should I have to add #ifdef CONFIG_OF_GPIO for this line? Is kind of
ugly hack... Does exist another way to fix this?

Thanks,
    Sergio Paracuellos

>
> vim +221 drivers/gpio/gpio-mt7621.c
>
>    207
>    208  static int
>    209  mediatek_gpio_bank_probe(struct platform_device *pdev,
>    210                           struct device_node *node, int bank)
>    211  {
>    212          struct mtk_data *gpio = dev_get_drvdata(&pdev->dev);
>    213          struct mtk_gc *rg;
>    214          void __iomem *dat, *set, *ctrl, *diro;
>    215          int ret;
>    216
>    217          rg = &gpio->gc_map[bank];
>    218          memset(rg, 0, sizeof(*rg));
>    219
>    220          spin_lock_init(&rg->lock);
>  > 221          rg->chip.of_node = node;
>    222          rg->bank = bank;
>    223          rg->chip.label = mediatek_gpio_bank_name(rg->bank);
>    224
>    225          dat = gpio->gpio_membase + GPIO_REG_DATA + (rg->bank * GPIO_BANK_WIDE);
>    226          set = gpio->gpio_membase + GPIO_REG_DSET + (rg->bank * GPIO_BANK_WIDE);
>    227          ctrl = gpio->gpio_membase + GPIO_REG_DCLR + (rg->bank * GPIO_BANK_WIDE);
>    228          diro = gpio->gpio_membase + GPIO_REG_CTRL + (rg->bank * GPIO_BANK_WIDE);
>    229
>    230          ret = bgpio_init(&rg->chip, &pdev->dev, 4,
>    231                           dat, set, ctrl, diro, NULL, 0);
>    232          if (ret) {
>    233                  dev_err(&pdev->dev, "bgpio_init() failed\n");
>    234                  return ret;
>    235          }
>    236
>    237          ret = devm_gpiochip_add_data(&pdev->dev, &rg->chip, gpio);
>    238          if (ret < 0) {
>    239                  dev_err(&pdev->dev, "Could not register gpio %d, ret=%d\n",
>    240                          rg->chip.ngpio, ret);
>    241                  return ret;
>    242          }
>    243
>    244          if (gpio->gpio_irq) {
>    245                  /*
>    246                   * Manually request the irq here instead of passing
>    247                   * a flow-handler to gpiochip_set_chained_irqchip,
>    248                   * because the irq is shared.
>    249                   */
>    250                  ret = devm_request_irq(&pdev->dev, gpio->gpio_irq,
>    251                                         mediatek_gpio_irq_handler, IRQF_SHARED,
>    252                                         rg->chip.label, &rg->chip);
>    253
>    254                  if (ret) {
>    255                          dev_err(&pdev->dev, "Error requesting IRQ %d: %d\n",
>    256                                  gpio->gpio_irq, ret);
>    257                          return ret;
>    258                  }
>    259
>    260                  mediatek_gpio_irq_chip.name = rg->chip.label;
>    261                  ret = gpiochip_irqchip_add(&rg->chip, &mediatek_gpio_irq_chip,
>    262                                             0, handle_simple_irq, IRQ_TYPE_NONE);
>    263                  if (ret) {
>    264                          dev_err(&pdev->dev, "failed to add gpiochip_irqchip\n");
>    265                          return ret;
>    266                  }
>    267
>    268                  gpiochip_set_chained_irqchip(&rg->chip, &mediatek_gpio_irq_chip,
>    269                                               gpio->gpio_irq, NULL);
>    270          }
>    271
>    272          /* set polarity to low for all gpios */
>    273          mtk_gpio_w32(rg, GPIO_REG_POL, 0);
>    274
>    275          dev_info(&pdev->dev, "registering %d gpios\n", rg->chip.ngpio);
>    276
>    277          return 0;
>    278  }
>    279
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux