diff mbox

i2c: sh_mobile: I2C_SH_MOBILE should depend on HAS_DMA

Message ID 1418650624-28174-1-git-send-email-geert@linux-m68k.org
State Accepted
Headers show

Commit Message

Geert Uytterhoeven Dec. 15, 2014, 1:37 p.m. UTC
If NO_DMA=y:

drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/i2c/busses/Kconfig | 1 +
 1 file changed, 1 insertion(+)

Comments

Wolfram Sang Dec. 17, 2014, 6:58 a.m. UTC | #1
On Mon, Dec 15, 2014 at 02:37:04PM +0100, Geert Uytterhoeven wrote:
> If NO_DMA=y:
> 
> drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
> i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
> drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
> i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
> i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Thanks for spotting this. However, since DMA is opt-in, isn't this
dependency too much? I can't think of anything better than #ifdeffing
the code, though.

> ---
>  drivers/i2c/busses/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index c1351d9fb35bbc8d..f08dd20f625c184d 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -753,6 +753,7 @@ config I2C_SH7760
>  
>  config I2C_SH_MOBILE
>  	tristate "SuperH Mobile I2C Controller"
> +	depends on HAS_DMA
>  	depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
>  	help
>  	  If you say yes to this option, support will be included for the
> -- 
> 1.9.1
>
Geert Uytterhoeven Dec. 17, 2014, 8:04 a.m. UTC | #2
Hi Wolfram,

On Wed, Dec 17, 2014 at 7:58 AM, Wolfram Sang <wsa@the-dreams.de> wrote:
> On Mon, Dec 15, 2014 at 02:37:04PM +0100, Geert Uytterhoeven wrote:
>> If NO_DMA=y:
>>
>> drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
>> i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
>> drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
>> i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
>> i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'
>>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>
> Thanks for spotting this. However, since DMA is opt-in, isn't this
> dependency too much? I can't think of anything better than #ifdeffing
> the code, though.

You're right.

E.g. drivers/spi/spi.c (in SPI the mapping is handled by the core), this
code is #ifdefed out.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wolfram Sang Dec. 17, 2014, 8:39 a.m. UTC | #3
On Wed, Dec 17, 2014 at 09:04:52AM +0100, Geert Uytterhoeven wrote:
> Hi Wolfram,
> 
> On Wed, Dec 17, 2014 at 7:58 AM, Wolfram Sang <wsa@the-dreams.de> wrote:
> > On Mon, Dec 15, 2014 at 02:37:04PM +0100, Geert Uytterhoeven wrote:
> >> If NO_DMA=y:
> >>
> >> drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
> >> i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
> >> drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
> >> i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
> >> i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'
> >>
> >> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> >
> > Thanks for spotting this. However, since DMA is opt-in, isn't this
> > dependency too much? I can't think of anything better than #ifdeffing
> > the code, though.
> 
> You're right.
> 
> E.g. drivers/spi/spi.c (in SPI the mapping is handled by the core), this
> code is #ifdefed out.

Then again, we could depend on ARM || SUPERH || (COMPILE_TEST &&
HAS_DMA) to skip the #ifdeffery? ARM and SUPERH don't have NO_DMA.
Geert Uytterhoeven Dec. 17, 2014, 8:47 a.m. UTC | #4
Hi Wolfram,

On Wed, Dec 17, 2014 at 9:39 AM, Wolfram Sang <wsa@the-dreams.de> wrote:
> On Wed, Dec 17, 2014 at 09:04:52AM +0100, Geert Uytterhoeven wrote:
>> On Wed, Dec 17, 2014 at 7:58 AM, Wolfram Sang <wsa@the-dreams.de> wrote:
>> > On Mon, Dec 15, 2014 at 02:37:04PM +0100, Geert Uytterhoeven wrote:
>> >> If NO_DMA=y:
>> >>
>> >> drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
>> >> i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
>> >> drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
>> >> i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
>> >> i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'
>> >>
>> >> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> >
>> > Thanks for spotting this. However, since DMA is opt-in, isn't this
>> > dependency too much? I can't think of anything better than #ifdeffing
>> > the code, though.
>>
>> You're right.
>>
>> E.g. drivers/spi/spi.c (in SPI the mapping is handled by the core), this
>> code is #ifdefed out.
>
> Then again, we could depend on ARM || SUPERH || (COMPILE_TEST &&
> HAS_DMA) to skip the #ifdeffery? ARM and SUPERH don't have NO_DMA.

If ARM and SUPERH imply HAS_DMA, that formula is almost identical to
the one I proposed in my patch?

       depends on HAS_DMA
       depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST

I just prefer to split dependencies in two lines where it makes sense ("hard"
dependencies vs. "soft" (user platform configuration) dependencies).

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wolfram Sang Dec. 17, 2014, 8:59 a.m. UTC | #5
> If ARM and SUPERH imply HAS_DMA, that formula is almost identical to
> the one I proposed in my patch?

Ehrm, true :)

>        depends on HAS_DMA
>        depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
> 
> I just prefer to split dependencies in two lines where it makes sense ("hard"
> dependencies vs. "soft" (user platform configuration) dependencies).

I prefer my version slightly. But not worth the hazzle, I'll pick yours.

Thanks!
Wolfram Sang Dec. 17, 2014, 6:29 p.m. UTC | #6
On Mon, Dec 15, 2014 at 02:37:04PM +0100, Geert Uytterhoeven wrote:
> If NO_DMA=y:
> 
> drivers/built-in.o: In function `sh_mobile_i2c_dma_unmap':
> i2c-sh_mobile.c:(.text+0x60de42): undefined reference to `dma_unmap_single'
> drivers/built-in.o: In function `sh_mobile_i2c_xfer_dma':
> i2c-sh_mobile.c:(.text+0x60df22): undefined reference to `dma_map_single'
> i2c-sh_mobile.c:(.text+0x60df2e): undefined reference to `dma_mapping_error'
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>

Applied to for-current, thanks!
diff mbox

Patch

diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index c1351d9fb35bbc8d..f08dd20f625c184d 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -753,6 +753,7 @@  config I2C_SH7760
 
 config I2C_SH_MOBILE
 	tristate "SuperH Mobile I2C Controller"
+	depends on HAS_DMA
 	depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
 	help
 	  If you say yes to this option, support will be included for the