Subject: [PATCH 07/15] mmc: sdhi: Enable driver compilation with COMPILE_TEST

From: [email-masked] (Laurent Pinchart)
Date: Thu, 12 Dec 2013 00:05:36 +0100

Hi Sergei,

On Wednesday 11 December 2013 22:22:19 Sergei Shtylyov wrote:
> On 11-12-2013 22:06, Laurent Pinchart wrote:
> >>> This helps increasing build testing coverage.
> >>> 
> >>> The driver doesn't compile on (at least) x86 due (possibly among others)
> >>> to missing readsw/writesw I/O accessors, restrict compilation to SUPERH
> >>> or ARM.
> >>> 
> >>> Whether the CTL_DMA_ENABLE register is part of the standard TMIO
> >>> controller or is Renesas-specific is unknown and impossible to test as
> >>> we have no current or planned TMIO DMA users other than SUPERH and
> >>> ARCH_SHMOBILE. Writing to the register is thus conditionally compiled
> >>> for SUPERH and ARCH_SHMOBILE only. Adding ARCH_SHMOBILE_MULTI to the
> >>> list would extend this to multiarch kernels, but would break the driver
> >>> for non-shmobile platforms if the register is Renesas-specific. We can
> >>> thus get rid of the conditional compilation completely without
> >>> introducing any further issue, and let future non-Renesas users deal
> >>> with the situation if it turns out to be a the problem.
> >>> 
> >>> Cc: Chris Ball <[email-masked]>
> >>> Cc: Guennadi Liakhovetski <[email-masked]>
> >>> Cc: Ian Molton <[email-masked]>
> >>> Cc: linux-mmc at vger.kernel.org
> >>> Signed-off-by: Laurent Pinchart
> >>> <[email-masked]>
> >>> Acked-by: Simon Horman <[email-masked]>
> 
> [...]
> 
> >>> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> >>> index 7fc5099..ca1315e 100644
> >>> --- a/drivers/mmc/host/Kconfig
> >>> +++ b/drivers/mmc/host/Kconfig
> >>> @@ -479,7 +479,8 @@ config MMC_TMIO
> >>> 
> >>>    config MMC_SDHI
> >>>    	tristate "SH-Mobile SDHI SD/SDIO controller support"
> >>> -	depends on SUPERH || ARCH_SHMOBILE
> >>> +	depends on SUPERH || ARM
> >>> +	depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
> >>> 
> >>      Hm, why 2 "depends" lines with SUPERH in both?
> > 
> > The first line means "this driver requires SUPERH || ARM to be compiled",
> 
>     Then COMPILE_TEST should be there, no?

No, because the first line says that the driver is known *not* to compile on 
platforms other than ARM and SUPERH. Adding || COMPILE_TEST there would break 
compilation with allyesconfig and randconfig on those other platforms.

Stated differently, the first line restricts the driver from being compiled on 
architectures where it doesn't compile, regardless of COMPILE_TEST, and the 
second line restricts it to platform where hardware is known to exists, with 
COMPILE_TEST to optionally extend build coverage.

> > while the second line means "devices supported by this driver are only
> > found on SUPERH || ARCH_SHMOBILE platforms".

-- 
Regards,

Laurent Pinchart