Subject: Re: linux-next: build failure after merge of the mfd tree

From: Lee Jones <[email-masked]>
Date: Mon, 4 Dec 2017 09:39:53 +0000

On Mon, 04 Dec 2017, Stephen Rothwell wrote:

> Hi Lee,
> 
> After merging the mfd tree, today's linux-next build (powerpc
> allyesconfig) failed like this:
> 
> drivers/staging/rts5208/sd.o: In function `.sd_power_off_card3v3':
> (.text+0x5760): multiple definition of `.sd_power_off_card3v3'
> drivers/misc/cardreader/rtsx_pcr.o:(.text+0x4630): first defined here
> drivers/staging/rts5208/sd.o:(.opd+0x378): multiple definition of `sd_power_off_card3v3'
> drivers/misc/cardreader/rtsx_pcr.o:(.opd+0x4f8): first defined here
> drivers/staging/rts5208/ms.o: In function `.ms_power_off_card3v3':
> (.text+0x5e70): multiple definition of `.ms_power_off_card3v3'
> drivers/misc/cardreader/rtsx_pcr.o:(.text+0x46e0): first defined here
> drivers/staging/rts5208/ms.o:(.opd+0x360): multiple definition of `ms_power_off_card3v3'
> drivers/misc/cardreader/rtsx_pcr.o:(.opd+0x510): first defined here
> 
> 
> Caused by commit
> 
>   5da4e04ae480 ("misc: rtsx: Add support for RTS5260")
> 
> I added the following fix patch:
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 4 Dec 2017 14:10:34 +1100
> Subject: [PATCH] misc: rtsx: fix symbol clashes
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>

Thanks Stephen.

Although I'm not sure how to apply this manually without scissors.

Might have to do so manually.

> ---
>  drivers/misc/cardreader/rts5260.c  | 4 ++--
>  drivers/misc/cardreader/rtsx_pcr.c | 4 ++--
>  drivers/misc/cardreader/rtsx_pcr.h | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/misc/cardreader/rts5260.c b/drivers/misc/cardreader/rts5260.c
> index 3b308640282d..07cb93abf685 100644
> --- a/drivers/misc/cardreader/rts5260.c
> +++ b/drivers/misc/cardreader/rts5260.c
> @@ -426,9 +426,9 @@ void rts5260_process_ocp(struct rtsx_pcr *pcr)
>  	rtsx_pci_get_ocpstat(pcr, &pcr->ocp_stat);
>  	rts5260_get_ocpstat2(pcr, &pcr->ocp_stat2);
>  	if (pcr->card_exist & SD_EXIST)
> -		sd_power_off_card3v3(pcr);
> +		rtsx_sd_power_off_card3v3(pcr);
>  	else if (pcr->card_exist & MS_EXIST)
> -		ms_power_off_card3v3(pcr);
> +		rtsx_ms_power_off_card3v3(pcr);
>  
>  	if (!(pcr->card_exist & MS_EXIST) && !(pcr->card_exist & SD_EXIST)) {
>  		if ((pcr->ocp_stat & (SD_OC_NOW | SD_OC_EVER |
> diff --git a/drivers/misc/cardreader/rtsx_pcr.c b/drivers/misc/cardreader/rtsx_pcr.c
> index 99adc67bbf73..5345170fc57b 100644
> --- a/drivers/misc/cardreader/rtsx_pcr.c
> +++ b/drivers/misc/cardreader/rtsx_pcr.c
> @@ -1208,7 +1208,7 @@ void rtsx_pci_clear_ocpstat(struct rtsx_pcr *pcr)
>  	}
>  }
>  
> -int sd_power_off_card3v3(struct rtsx_pcr *pcr)
> +int rtsx_sd_power_off_card3v3(struct rtsx_pcr *pcr)
>  {
>  	rtsx_pci_write_register(pcr, CARD_CLK_EN, SD_CLK_EN |
>  		MS_CLK_EN | SD40_CLK_EN, 0);
> @@ -1223,7 +1223,7 @@ int sd_power_off_card3v3(struct rtsx_pcr *pcr)
>  	return 0;
>  }
>  
> -int ms_power_off_card3v3(struct rtsx_pcr *pcr)
> +int rtsx_ms_power_off_card3v3(struct rtsx_pcr *pcr)
>  {
>  	rtsx_pci_write_register(pcr, CARD_CLK_EN, SD_CLK_EN |
>  		MS_CLK_EN | SD40_CLK_EN, 0);
> diff --git a/drivers/misc/cardreader/rtsx_pcr.h b/drivers/misc/cardreader/rtsx_pcr.h
> index c544e35d0154..6ea1655db0bb 100644
> --- a/drivers/misc/cardreader/rtsx_pcr.h
> +++ b/drivers/misc/cardreader/rtsx_pcr.h
> @@ -107,7 +107,7 @@ void rtsx_pci_disable_ocp(struct rtsx_pcr *pcr);
>  void rtsx_pci_enable_ocp(struct rtsx_pcr *pcr);
>  int rtsx_pci_get_ocpstat(struct rtsx_pcr *pcr, u8 *val);
>  void rtsx_pci_clear_ocpstat(struct rtsx_pcr *pcr);
> -int sd_power_off_card3v3(struct rtsx_pcr *pcr);
> -int ms_power_off_card3v3(struct rtsx_pcr *pcr);
> +int rtsx_sd_power_off_card3v3(struct rtsx_pcr *pcr);
> +int rtsx_ms_power_off_card3v3(struct rtsx_pcr *pcr);
>  
>  #endif

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog