Commit 47dbec59 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Linus Walleij

pinctrl: samsung: use __devinit section for init code

The samsung pinctrl driver has a probe function that is
__devinit and that calls a lot of other functions that are
marked __init, which kbuild complains about.

Marking everything __devinit means that the code does not
discarded when CONFIG_HOTPLUG is set, which is a little
more wasteful, but also more consistent

Without this patch, building exynos_defconfig results in:

WARNING: drivers/pinctrl/built-in.o(.devinit.text+0x124): Section mismatch in reference from the function samsung_pinctrl_probe() to the function .init.text:samsung_gpiolib_register()
The function __devinit samsung_pinctrl_probe() references
a function __init samsung_gpiolib_register().
If samsung_gpiolib_register is only used by samsung_pinctrl_probe then
annotate samsung_gpiolib_register with a matching annotation.
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: Thomas Abraham <thomas.abraham@linaro.org>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent ddffeb8c
...@@ -513,7 +513,7 @@ static int samsung_gpio_direction_output(struct gpio_chip *gc, unsigned offset, ...@@ -513,7 +513,7 @@ static int samsung_gpio_direction_output(struct gpio_chip *gc, unsigned offset,
* Parse the pin names listed in the 'samsung,pins' property and convert it * Parse the pin names listed in the 'samsung,pins' property and convert it
* into a list of gpio numbers are create a pin group from it. * into a list of gpio numbers are create a pin group from it.
*/ */
static int __init samsung_pinctrl_parse_dt_pins(struct platform_device *pdev, static int __devinit samsung_pinctrl_parse_dt_pins(struct platform_device *pdev,
struct device_node *cfg_np, struct pinctrl_desc *pctl, struct device_node *cfg_np, struct pinctrl_desc *pctl,
unsigned int **pin_list, unsigned int *npins) unsigned int **pin_list, unsigned int *npins)
{ {
...@@ -560,7 +560,7 @@ static int __init samsung_pinctrl_parse_dt_pins(struct platform_device *pdev, ...@@ -560,7 +560,7 @@ static int __init samsung_pinctrl_parse_dt_pins(struct platform_device *pdev,
* from device node of the pin-controller. A pin group is formed with all * from device node of the pin-controller. A pin group is formed with all
* the pins listed in the "samsung,pins" property. * the pins listed in the "samsung,pins" property.
*/ */
static int __init samsung_pinctrl_parse_dt(struct platform_device *pdev, static int __devinit samsung_pinctrl_parse_dt(struct platform_device *pdev,
struct samsung_pinctrl_drv_data *drvdata) struct samsung_pinctrl_drv_data *drvdata)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
...@@ -655,7 +655,7 @@ static int __init samsung_pinctrl_parse_dt(struct platform_device *pdev, ...@@ -655,7 +655,7 @@ static int __init samsung_pinctrl_parse_dt(struct platform_device *pdev,
} }
/* register the pinctrl interface with the pinctrl subsystem */ /* register the pinctrl interface with the pinctrl subsystem */
static int __init samsung_pinctrl_register(struct platform_device *pdev, static int __devinit samsung_pinctrl_register(struct platform_device *pdev,
struct samsung_pinctrl_drv_data *drvdata) struct samsung_pinctrl_drv_data *drvdata)
{ {
struct pinctrl_desc *ctrldesc = &drvdata->pctl; struct pinctrl_desc *ctrldesc = &drvdata->pctl;
...@@ -729,7 +729,7 @@ static int __init samsung_pinctrl_register(struct platform_device *pdev, ...@@ -729,7 +729,7 @@ static int __init samsung_pinctrl_register(struct platform_device *pdev,
} }
/* register the gpiolib interface with the gpiolib subsystem */ /* register the gpiolib interface with the gpiolib subsystem */
static int __init samsung_gpiolib_register(struct platform_device *pdev, static int __devinit samsung_gpiolib_register(struct platform_device *pdev,
struct samsung_pinctrl_drv_data *drvdata) struct samsung_pinctrl_drv_data *drvdata)
{ {
struct gpio_chip *gc; struct gpio_chip *gc;
...@@ -762,7 +762,7 @@ static int __init samsung_gpiolib_register(struct platform_device *pdev, ...@@ -762,7 +762,7 @@ static int __init samsung_gpiolib_register(struct platform_device *pdev,
} }
/* unregister the gpiolib interface with the gpiolib subsystem */ /* unregister the gpiolib interface with the gpiolib subsystem */
static int __init samsung_gpiolib_unregister(struct platform_device *pdev, static int __devinit samsung_gpiolib_unregister(struct platform_device *pdev,
struct samsung_pinctrl_drv_data *drvdata) struct samsung_pinctrl_drv_data *drvdata)
{ {
int ret = gpiochip_remove(drvdata->gc); int ret = gpiochip_remove(drvdata->gc);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment