Re: [PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
On 2019/4/12 21:13, Andy Shevchenko wrote: > On Fri, Apr 12, 2019 at 3:55 AM Rafael J. Wysocki wrote: >> On Friday, April 5, 2019 4:50:09 PM CEST Andy Shevchenko wrote: >>> On Fri, Apr 05, 2019 at 10:21:12PM +0800, Yue Haibing wrote: From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device> put_device(&adev->dev); ^ Reported-by: Hulk Robot Suggested-by: Andy Shevchenko Fixes:d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing >>> >>> Thank you for an update, I have a comment below, but before sending v3, let >>> Rafael to have a chance to look at it. >>> #ifdef CONFIG_ACPI extern int acpi_platform_notify(struct device *dev, enum kobject_action action);> + +static inline void put_acpi_device(struct acpi_device *adev) +{ + put_device(&adev->dev); +} >>> >>> This should probably go to acpi_bus.h under acpi_dev_get_first_match_dev(). >>> And talking to Mika we agreed that naming would be better as acpi_dev_put(). >> >> Agreed on both accounts. > > Thanks! > YueHaibing, please, send v3 with suggested changes. Ok. >
Re: [PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
On Fri, Apr 12, 2019 at 3:55 AM Rafael J. Wysocki wrote: > On Friday, April 5, 2019 4:50:09 PM CEST Andy Shevchenko wrote: > > On Fri, Apr 05, 2019 at 10:21:12PM +0800, Yue Haibing wrote: > > > From: YueHaibing > > > > > > When building CONFIG_ACPI is not set > > > gcc warn this: > > > > > > drivers/gpio/gpio-merrifield.c: In function > > > mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: > > > error: dereferencing pointer to incomplete type struct acpi_device> > > >put_device(&adev->dev); > > > > > >^ > > > > > > Reported-by: Hulk Robot > > > Suggested-by: Andy Shevchenko > > > Fixes:d00d2109c367 ("gpio: merrifield: Convert to use > > > acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing > > > > > > > Thank you for an update, I have a comment below, but before sending v3, let > > Rafael to have a chance to look at it. > > > > > #ifdef CONFIG_ACPI > > > extern int acpi_platform_notify(struct device *dev, enum kobject_action > > > action);> > > > + > > > +static inline void put_acpi_device(struct acpi_device *adev) > > > +{ > > > + put_device(&adev->dev); > > > +} > > > > This should probably go to acpi_bus.h under acpi_dev_get_first_match_dev(). > > And talking to Mika we agreed that naming would be better as acpi_dev_put(). > > Agreed on both accounts. Thanks! YueHaibing, please, send v3 with suggested changes. -- With Best Regards, Andy Shevchenko
Re: [PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
On Friday, April 5, 2019 4:50:09 PM CEST Andy Shevchenko wrote: > On Fri, Apr 05, 2019 at 10:21:12PM +0800, Yue Haibing wrote: > > From: YueHaibing > > > > When building CONFIG_ACPI is not set > > gcc warn this: > > > > drivers/gpio/gpio-merrifield.c: In function > > mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: > > error: dereferencing pointer to incomplete type struct acpi_device> > >put_device(&adev->dev); > > > >^ > > > > Reported-by: Hulk Robot > > Suggested-by: Andy Shevchenko > > Fixes:d00d2109c367 ("gpio: merrifield: Convert to use > > acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing > > > > Thank you for an update, I have a comment below, but before sending v3, let > Rafael to have a chance to look at it. > > > #ifdef CONFIG_ACPI > > extern int acpi_platform_notify(struct device *dev, enum kobject_action > > action);> > > + > > +static inline void put_acpi_device(struct acpi_device *adev) > > +{ > > + put_device(&adev->dev); > > +} > > This should probably go to acpi_bus.h under acpi_dev_get_first_match_dev(). > And talking to Mika we agreed that naming would be better as acpi_dev_put(). Agreed on both accounts. Thanks!
Re: [PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
On Fri, Apr 05, 2019 at 10:21:12PM +0800, Yue Haibing wrote: > From: YueHaibing > > When building CONFIG_ACPI is not set > gcc warn this: > > drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: > drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to > incomplete type struct acpi_device >put_device(&adev->dev); >^ > Reported-by: Hulk Robot > Suggested-by: Andy Shevchenko > Fixes:d00d2109c367 ("gpio: merrifield: Convert to use > acpi_dev_get_first_match_dev()") > Signed-off-by: YueHaibing Thank you for an update, I have a comment below, but before sending v3, let Rafael to have a chance to look at it. > #ifdef CONFIG_ACPI > extern int acpi_platform_notify(struct device *dev, enum kobject_action > action); > + > +static inline void put_acpi_device(struct acpi_device *adev) > +{ > + put_device(&adev->dev); > +} This should probably go to acpi_bus.h under acpi_dev_get_first_match_dev(). And talking to Mika we agreed that naming would be better as acpi_dev_put(). -- With Best Regards, Andy Shevchenko
[PATCH v2] gpio: merrifield: Fix build err without CONFIG_ACPI
From: YueHaibing When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device put_device(&adev->dev); ^ Reported-by: Hulk Robot Suggested-by: Andy Shevchenko Fixes:d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Signed-off-by: YueHaibing --- v2: rework patch use put_acpi_device helper --- drivers/gpio/gpio-merrifield.c | 2 +- include/linux/acpi.h | 7 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 2383dc7..99ca18c 100644 --- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c @@ -385,7 +385,7 @@ static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv) adev = acpi_dev_get_first_match_dev("INTC1002", NULL, -1); if (adev) { name = devm_kstrdup(priv->dev, acpi_dev_name(adev), GFP_KERNEL); - put_device(&adev->dev); + put_acpi_device(adev); } else { name = "pinctrl-merrifield"; } diff --git a/include/linux/acpi.h b/include/linux/acpi.h index a1bd789..2563e13 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1331,12 +1331,19 @@ static inline int find_acpi_cpu_cache_topology(unsigned int cpu, int level) #ifdef CONFIG_ACPI extern int acpi_platform_notify(struct device *dev, enum kobject_action action); + +static inline void put_acpi_device(struct acpi_device *adev) +{ + put_device(&adev->dev); +} #else static inline int acpi_platform_notify(struct device *dev, enum kobject_action action) { return 0; } + +static inline void put_acpi_device(struct acpi_device *adev) {} #endif #endif /*_LINUX_ACPI_H*/ -- 2.7.4