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

Lee Jones
2017-12-04T09:39:57Z

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 <sfr@canb.auug.org.au>
> Date: Mon, 4 Dec 2017 14:10:34 +1100
> Subject: [PATCH] misc: rtsx: fix symbol clashes
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

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