Message ID | 1459926480-32966-2-git-send-email-qiujiang@huawei.com |
---|---|
State | New |
Headers | show |
On Wed, Apr 6, 2016 at 10:07 AM, qiujiang <qiujiang@huawei.com> wrote: > This patch removed the name property from dwapb_port_property. > The name property is redundant because we can get those info > from dwapb_gpio dev and pp->idx property. Where idx is used in such replacements? > --- a/drivers/gpio/gpio-dwapb.c > +++ b/drivers/gpio/gpio-dwapb.c > @@ -409,8 +409,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, > err = bgpio_init(&port->gc, gpio->dev, 4, dat, set, NULL, dirout, > NULL, false); > if (err) { > - dev_err(gpio->dev, "failed to init gpio chip for %s\n", > - pp->name); > + dev_err(gpio->dev, "failed to init gpio chip\n"); Do we have any port index here available (expected value I suppose)? > @@ -429,8 +428,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, > > err = gpiochip_add_data(&port->gc, port); > if (err) > - dev_err(gpio->dev, "failed to register gpiochip for %s\n", > - pp->name); > + dev_err(gpio->dev, "failed to register gpiochip\n"); Ditto. > @@ -499,15 +498,12 @@ dwapb_gpio_get_pdata_of(struct device *dev) > if (pp->idx == 0 && > of_property_read_bool(port_np, "interrupt-controller")) { > pp->irq = irq_of_parse_and_map(port_np, 0); > - if (!pp->irq) { > - dev_warn(dev, "no irq for bank %s\n", > - port_np->full_name); > - } > + if (!pp->irq) > + dev_warn(dev, "no irq for this bank\n"); pp->idx here? dev_warn(dev, "no irq for port%d\n", pp->idx); > --- a/drivers/mfd/intel_quark_i2c_gpio.c > +++ b/drivers/mfd/intel_quark_i2c_gpio.c > @@ -220,7 +220,6 @@ static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell) > > /* Set the properties for portA */ > pdata->properties->node = NULL; > - pdata->properties->name = "intel-quark-x1000-gpio-portA"; > pdata->properties->idx = 0; > pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO; > pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE; For Quark part: Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Hi Andy, Thanks for your reply. See my comments inline. Thanks Jiang 在 2016/4/6 20:57, Andy Shevchenko 写道: > On Wed, Apr 6, 2016 at 10:07 AM, qiujiang <qiujiang@huawei.com> wrote: >> This patch removed the name property from dwapb_port_property. >> The name property is redundant because we can get those info >> from dwapb_gpio dev and pp->idx property. > > Where idx is used in such replacements? Actually, it is not used so far. As Alan mentioned, the only additional info from the pp->name against dev is the port index. I present here to prevent anyone from missing it. If it is inappropriate, I will remove it. > >> --- a/drivers/gpio/gpio-dwapb.c >> +++ b/drivers/gpio/gpio-dwapb.c >> @@ -409,8 +409,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, >> err = bgpio_init(&port->gc, gpio->dev, 4, dat, set, NULL, dirout, >> NULL, false); >> if (err) { >> - dev_err(gpio->dev, "failed to init gpio chip for %s\n", >> - pp->name); >> + dev_err(gpio->dev, "failed to init gpio chip\n"); > > Do we have any port index here available (expected value I suppose)? The 3rd parameter 'offs' can be used, I will add it. > >> @@ -429,8 +428,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, >> >> err = gpiochip_add_data(&port->gc, port); >> if (err) >> - dev_err(gpio->dev, "failed to register gpiochip for %s\n", >> - pp->name); >> + dev_err(gpio->dev, "failed to register gpiochip\n"); > > Ditto. > > >> @@ -499,15 +498,12 @@ dwapb_gpio_get_pdata_of(struct device *dev) >> if (pp->idx == 0 && >> of_property_read_bool(port_np, "interrupt-controller")) { >> pp->irq = irq_of_parse_and_map(port_np, 0); >> - if (!pp->irq) { >> - dev_warn(dev, "no irq for bank %s\n", >> - port_np->full_name); >> - } >> + if (!pp->irq) >> + dev_warn(dev, "no irq for this bank\n"); > > pp->idx here? > > dev_warn(dev, "no irq for port%d\n", pp->idx); Here, pp->idx should always be zero, means portA, because only portA can be a interrupt controller as dwapb gpio IP defined. So, I omited it. > >> --- a/drivers/mfd/intel_quark_i2c_gpio.c >> +++ b/drivers/mfd/intel_quark_i2c_gpio.c >> @@ -220,7 +220,6 @@ static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell) >> >> /* Set the properties for portA */ >> pdata->properties->node = NULL; >> - pdata->properties->name = "intel-quark-x1000-gpio-portA"; >> pdata->properties->idx = 0; >> pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO; >> pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE; > > For Quark part: > Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com> > -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c index 597de1e..91afec8 100644 --- a/drivers/gpio/gpio-dwapb.c +++ b/drivers/gpio/gpio-dwapb.c @@ -409,8 +409,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, err = bgpio_init(&port->gc, gpio->dev, 4, dat, set, NULL, dirout, NULL, false); if (err) { - dev_err(gpio->dev, "failed to init gpio chip for %s\n", - pp->name); + dev_err(gpio->dev, "failed to init gpio chip\n"); return err; } @@ -429,8 +428,7 @@ static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, err = gpiochip_add_data(&port->gc, port); if (err) - dev_err(gpio->dev, "failed to register gpiochip for %s\n", - pp->name); + dev_err(gpio->dev, "failed to register gpiochip\n"); else port->is_registered = true; @@ -480,15 +478,16 @@ dwapb_gpio_get_pdata_of(struct device *dev) if (of_property_read_u32(port_np, "reg", &pp->idx) || pp->idx >= DWAPB_MAX_PORTS) { - dev_err(dev, "missing/invalid port index for %s\n", - port_np->full_name); + dev_err(dev, + "missing/invalid port index for port%d\n", i); return ERR_PTR(-EINVAL); } if (of_property_read_u32(port_np, "snps,nr-gpios", &pp->ngpio)) { - dev_info(dev, "failed to get number of gpios for %s\n", - port_np->full_name); + dev_info(dev, + "failed to get number of gpios for port%d\n", + i); pp->ngpio = 32; } @@ -499,15 +498,12 @@ dwapb_gpio_get_pdata_of(struct device *dev) if (pp->idx == 0 && of_property_read_bool(port_np, "interrupt-controller")) { pp->irq = irq_of_parse_and_map(port_np, 0); - if (!pp->irq) { - dev_warn(dev, "no irq for bank %s\n", - port_np->full_name); - } + if (!pp->irq) + dev_warn(dev, "no irq for this bank\n"); } pp->irq_shared = false; pp->gpio_base = -1; - pp->name = port_np->full_name; } return pdata; diff --git a/drivers/mfd/intel_quark_i2c_gpio.c b/drivers/mfd/intel_quark_i2c_gpio.c index bdc5e27..a4ef99b 100644 --- a/drivers/mfd/intel_quark_i2c_gpio.c +++ b/drivers/mfd/intel_quark_i2c_gpio.c @@ -220,7 +220,6 @@ static int intel_quark_gpio_setup(struct pci_dev *pdev, struct mfd_cell *cell) /* Set the properties for portA */ pdata->properties->node = NULL; - pdata->properties->name = "intel-quark-x1000-gpio-portA"; pdata->properties->idx = 0; pdata->properties->ngpio = INTEL_QUARK_MFD_NGPIO; pdata->properties->gpio_base = INTEL_QUARK_MFD_GPIO_BASE; diff --git a/include/linux/platform_data/gpio-dwapb.h b/include/linux/platform_data/gpio-dwapb.h index 28702c8..955b579 100644 --- a/include/linux/platform_data/gpio-dwapb.h +++ b/include/linux/platform_data/gpio-dwapb.h @@ -16,7 +16,6 @@ struct dwapb_port_property { struct device_node *node; - const char *name; unsigned int idx; unsigned int ngpio; unsigned int gpio_base;
This patch removed the name property from dwapb_port_property. The name property is redundant because we can get those info from dwapb_gpio dev and pp->idx property. Signed-off-by: qiujiang <qiujiang@huawei.com> --- drivers/gpio/gpio-dwapb.c | 22 +++++++++------------- drivers/mfd/intel_quark_i2c_gpio.c | 1 - include/linux/platform_data/gpio-dwapb.h | 1 - 3 files changed, 9 insertions(+), 15 deletions(-)