[PATCH] gpio/samsung: Move SoC specific codes within macro

Kukjin Kim kgene.kim at samsung.com
Wed Oct 5 01:20:01 UTC 2011


Grant Likely wrote:
> 
> On Mon, Oct 03, 2011 at 08:59:19AM +0530, Tushar Behera wrote:
> > In drivers/gpio/gpio-samsung.c, there are certain structures
> > and functions which are not getting used if the particular
> > CPU is not selected. These code segments are moved under CPU
> > specific macros to remove compilation warnings.
> >
> > Signed-off-by: Tushar Behera <tushar.behera at linaro.org>
> 
> Acked-by: Grant Likely <grant.likely at secretlab.ca>
> 
When I applied, following error was happened with s5p64x0_defconfig. Others,
ok.

...
Inconsistent kallsyms data
This is a bug - please report about it
Try make KALLSYMS_EXTRA_PASS=1 as a workaround
make: *** [vmlinux] Error 1

And it seems due to add condition around the 'static unsigned
s3c24xx_gpio_getcfg_abank()'.

I need to check it in detail and if any problems, let you know.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

> > ---
> > It has been build tested with s3c2410_defconfig, s3c6400_defconfig,
> > s5p64x0_defconfig, s5pc100_defconfig, s5pv210_defconfig and
> > exynos4_defconfig.
> >
> > The patch has been rebased onto
> > Commit: gpio/samsung: correct pin configuration for
> S5PC100/S5PC110/EXYNOS4
> >
> > on git://github.com/kgene/linux-samsung.git (next/topic-gpio-samsung)
> >
> >  drivers/gpio/gpio-samsung.c |   10 ++++++++++
> >  1 files changed, 10 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c
> > index b6be77a..33d62d1 100644
> > --- a/drivers/gpio/gpio-samsung.c
> > +++ b/drivers/gpio/gpio-samsung.c
> > @@ -318,6 +318,7 @@ static unsigned samsung_gpio_getcfg_4bit(struct
> samsung_gpio_chip *chip,
> >  	return S3C_GPIO_SPECIAL(con);
> >  }
> >
> > +#ifdef CONFIG_PLAT_S3C24XX
> >  /*
> >   * s3c24xx_gpio_setcfg_abank - S3C24XX style GPIO configuration (Bank
A)
> >   * @chip: The gpio chip that is being configured.
> > @@ -379,7 +380,9 @@ static unsigned s3c24xx_gpio_getcfg_abank(struct
> samsung_gpio_chip *chip,
> >
> >  	return S3C_GPIO_SFN(con);
> >  }
> > +#endif
> >
> > +#if defined(CONFIG_CPU_S5P6440) || defined(CONFIG_CPU_S5P6450)
> >  static int s5p64x0_gpio_setcfg_rbank(struct samsung_gpio_chip *chip,
> >  				     unsigned int off, unsigned int cfg)
> >  {
> > @@ -417,6 +420,7 @@ static int s5p64x0_gpio_setcfg_rbank(struct
> samsung_gpio_chip *chip,
> >
> >  	return 0;
> >  }
> > +#endif
> >
> >  static void __init samsung_gpiolib_set_cfg(struct samsung_gpio_cfg
*chipcfg,
> >  					   int nr_chips)
> > @@ -438,10 +442,12 @@ struct samsung_gpio_cfg s3c24xx_gpiocfg_default =
> {
> >  	.get_config	= samsung_gpio_getcfg_2bit,
> >  };
> >
> > +#ifdef CONFIG_PLAT_S3C24XX
> >  static struct samsung_gpio_cfg s3c24xx_gpiocfg_banka = {
> >  	.set_config	= s3c24xx_gpio_setcfg_abank,
> >  	.get_config	= s3c24xx_gpio_getcfg_abank,
> >  };
> > +#endif
> >
> >  static struct samsung_gpio_cfg exynos4_gpio_cfg = {
> >  	.set_pull	= exynos4_gpio_setpull,
> > @@ -450,6 +456,7 @@ static struct samsung_gpio_cfg exynos4_gpio_cfg = {
> >  	.get_config	= samsung_gpio_getcfg_4bit,
> >  };
> >
> > +#if defined(CONFIG_CPU_S5P6440) || defined(CONFIG_CPU_S5P6450)
> >  static struct samsung_gpio_cfg s5p64x0_gpio_cfg_rbank = {
> >  	.cfg_eint	= 0x3,
> >  	.set_config	= s5p64x0_gpio_setcfg_rbank,
> > @@ -457,6 +464,7 @@ static struct samsung_gpio_cfg
> s5p64x0_gpio_cfg_rbank = {
> >  	.set_pull	= samsung_gpio_setpull_updown,
> >  	.get_pull	= samsung_gpio_getpull_updown,
> >  };
> > +#endif
> >
> >  static struct samsung_gpio_cfg samsung_gpio_cfgs[] = {
> >  	{
> > @@ -682,6 +690,7 @@ static int samsung_gpiolib_4bit2_output(struct
gpio_chip
> *chip,
> >  	return 0;
> >  }
> >
> > +#ifdef CONFIG_PLAT_S3C24XX
> >  /* The next set of routines are for the case of s3c24xx bank a */
> >
> >  static int s3c24xx_gpiolib_banka_input(struct gpio_chip *chip, unsigned
offset)
> > @@ -717,6 +726,7 @@ static int s3c24xx_gpiolib_banka_output(struct
> gpio_chip *chip,
> >  	local_irq_restore(flags);
> >  	return 0;
> >  }
> > +#endif
> >
> >  /* The next set of routines are for the case of s5p64x0 bank r */
> >
> > --
> > 1.7.4.1
> >




More information about the linaro-dev mailing list