diff mbox

[3/4] sound, media: allow building ISA drivers it with COMPILE_TEST

Message ID 3f4d8ae83a91c765581d9cbbd1e436b6871368fa.1524227382.git.mchehab@s-opensource.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mauro Carvalho Chehab April 20, 2018, 12:32 p.m. UTC
All sound drivers that don't depend on PNP can be safelly
build with COMPILE_TEST, as ISA provides function stubs to
be used for such purposes.

As a side effect, with this change, the radio-miropcm20
can now be built outside i386 with COMPILE_TEST.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
---
 drivers/media/radio/Kconfig | 3 ++-
 sound/isa/Kconfig           | 9 +++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

Comments

Mauro Carvalho Chehab April 20, 2018, 12:51 p.m. UTC | #1
Em Fri, 20 Apr 2018 14:37:46 +0200
Takashi Iwai <tiwai@suse.de> escreveu:

> On Fri, 20 Apr 2018 14:32:15 +0200,
> Mauro Carvalho Chehab wrote:
> > 
> > All sound drivers that don't depend on PNP can be safelly
> > build with COMPILE_TEST, as ISA provides function stubs to
> > be used for such purposes.
> > 
> > As a side effect, with this change, the radio-miropcm20
> > can now be built outside i386 with COMPILE_TEST.
> > 
> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> > ---
> >  drivers/media/radio/Kconfig | 3 ++-
> >  sound/isa/Kconfig           | 9 +++++----
> >  2 files changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > index d363726e9eb1..8fa403c7149e 100644
> > --- a/drivers/media/radio/Kconfig
> > +++ b/drivers/media/radio/Kconfig
> > @@ -372,7 +372,8 @@ config RADIO_GEMTEK_PROBE
> >  
> >  config RADIO_MIROPCM20
> >  	tristate "miroSOUND PCM20 radio"
> > -	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
> > +	depends on ISA || COMPILE_TEST
> > +	depends on ISA_DMA_API && VIDEO_V4L2 && SND
> >  	select SND_ISA
> >  	select SND_MIRO
> >  	---help---
> > diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
> > index cb54d9c0a77f..d2a6cdd0395c 100644
> > --- a/sound/isa/Kconfig
> > +++ b/sound/isa/Kconfig
> > @@ -20,7 +20,8 @@ config SND_SB16_DSP
> >  
> >  menuconfig SND_ISA
> >  	bool "ISA sound devices"
> > -	depends on ISA && ISA_DMA_API
> > +	depends on ISA || COMPILE_TEST
> > +	depends on ISA_DMA_API
> >  	default y
> >  	help
> >  	  Support for sound devices connected via the ISA bus.
> > @@ -38,7 +39,7 @@ config SND_ADLIB
> >  
> >  config SND_AD1816A
> >  	tristate "Analog Devices SoundPort AD1816A"
> > -	depends on PNP
> > +	depends on PNP && ISA
> >  	select ISAPNP
> >  	select SND_OPL3_LIB
> >  	select SND_MPU401_UART  
> 
> Just from curiosity: what's the reason for this explicit CONFIG_ISA
> dependency?  What error did you get?

Kconfig complains with "select ISAPNP":

WARNING: unmet direct dependencies detected for ISAPNP
  Depends on [n]: PNP [=y] && ISA [=n]
  Selected by [y]:
  - SND_AD1816A [=y] && SOUND [=y] && !UML && SND [=y] && SND_ISA [=y] && PNP [=y]

Because it is declared as:

config ISAPNP
	bool "ISA Plug and Play support"
        depends on ISA

I could have tried to change ISAPNP to depends on ISA || COMPILE_TEST,
but I suspect that would touch on yet another subsystem and has
the potential to point to other things that need changes, as
a lot more drivers will be selected.

Anyway, after a quick look at include/linux/isapnp.h, I suspect
that this can work.

I'll run some tests here.

Thanks,
Mauro
Takashi Iwai April 20, 2018, 12:58 p.m. UTC | #2
On Fri, 20 Apr 2018 14:51:29 +0200,
Mauro Carvalho Chehab wrote:
> 
> Em Fri, 20 Apr 2018 14:37:46 +0200
> Takashi Iwai <tiwai@suse.de> escreveu:
> 
> > On Fri, 20 Apr 2018 14:32:15 +0200,
> > Mauro Carvalho Chehab wrote:
> > > 
> > > All sound drivers that don't depend on PNP can be safelly
> > > build with COMPILE_TEST, as ISA provides function stubs to
> > > be used for such purposes.
> > > 
> > > As a side effect, with this change, the radio-miropcm20
> > > can now be built outside i386 with COMPILE_TEST.
> > > 
> > > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> > > ---
> > >  drivers/media/radio/Kconfig | 3 ++-
> > >  sound/isa/Kconfig           | 9 +++++----
> > >  2 files changed, 7 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > > index d363726e9eb1..8fa403c7149e 100644
> > > --- a/drivers/media/radio/Kconfig
> > > +++ b/drivers/media/radio/Kconfig
> > > @@ -372,7 +372,8 @@ config RADIO_GEMTEK_PROBE
> > >  
> > >  config RADIO_MIROPCM20
> > >  	tristate "miroSOUND PCM20 radio"
> > > -	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
> > > +	depends on ISA || COMPILE_TEST
> > > +	depends on ISA_DMA_API && VIDEO_V4L2 && SND
> > >  	select SND_ISA
> > >  	select SND_MIRO
> > >  	---help---
> > > diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
> > > index cb54d9c0a77f..d2a6cdd0395c 100644
> > > --- a/sound/isa/Kconfig
> > > +++ b/sound/isa/Kconfig
> > > @@ -20,7 +20,8 @@ config SND_SB16_DSP
> > >  
> > >  menuconfig SND_ISA
> > >  	bool "ISA sound devices"
> > > -	depends on ISA && ISA_DMA_API
> > > +	depends on ISA || COMPILE_TEST
> > > +	depends on ISA_DMA_API
> > >  	default y
> > >  	help
> > >  	  Support for sound devices connected via the ISA bus.
> > > @@ -38,7 +39,7 @@ config SND_ADLIB
> > >  
> > >  config SND_AD1816A
> > >  	tristate "Analog Devices SoundPort AD1816A"
> > > -	depends on PNP
> > > +	depends on PNP && ISA
> > >  	select ISAPNP
> > >  	select SND_OPL3_LIB
> > >  	select SND_MPU401_UART  
> > 
> > Just from curiosity: what's the reason for this explicit CONFIG_ISA
> > dependency?  What error did you get?
> 
> Kconfig complains with "select ISAPNP":
> 
> WARNING: unmet direct dependencies detected for ISAPNP
>   Depends on [n]: PNP [=y] && ISA [=n]
>   Selected by [y]:
>   - SND_AD1816A [=y] && SOUND [=y] && !UML && SND [=y] && SND_ISA [=y] && PNP [=y]
> 
> Because it is declared as:
> 
> config ISAPNP
> 	bool "ISA Plug and Play support"
>         depends on ISA

I see.  Then it'd be better to put this explanations in the changelog
as well.

> I could have tried to change ISAPNP to depends on ISA || COMPILE_TEST,
> but I suspect that would touch on yet another subsystem and has
> the potential to point to other things that need changes, as
> a lot more drivers will be selected.
> 
> Anyway, after a quick look at include/linux/isapnp.h, I suspect
> that this can work.
> 
> I'll run some tests here.

At least a dumb stub is there, so let's hope we can widen the test
coverage :)


thanks,

Takashi
Mauro Carvalho Chehab April 20, 2018, 1:01 p.m. UTC | #3
Em Fri, 20 Apr 2018 09:51:29 -0300
Mauro Carvalho Chehab <mchehab@s-opensource.com> escreveu:

> Em Fri, 20 Apr 2018 14:37:46 +0200
> Takashi Iwai <tiwai@suse.de> escreveu:
> 
> > On Fri, 20 Apr 2018 14:32:15 +0200,
> > Mauro Carvalho Chehab wrote:  
> > > 
> > > All sound drivers that don't depend on PNP can be safelly
> > > build with COMPILE_TEST, as ISA provides function stubs to
> > > be used for such purposes.
> > > 
> > > As a side effect, with this change, the radio-miropcm20
> > > can now be built outside i386 with COMPILE_TEST.
> > > 
> > > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> > > ---
> > >  drivers/media/radio/Kconfig | 3 ++-
> > >  sound/isa/Kconfig           | 9 +++++----
> > >  2 files changed, 7 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > > index d363726e9eb1..8fa403c7149e 100644
> > > --- a/drivers/media/radio/Kconfig
> > > +++ b/drivers/media/radio/Kconfig
> > > @@ -372,7 +372,8 @@ config RADIO_GEMTEK_PROBE
> > >  
> > >  config RADIO_MIROPCM20
> > >  	tristate "miroSOUND PCM20 radio"
> > > -	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
> > > +	depends on ISA || COMPILE_TEST
> > > +	depends on ISA_DMA_API && VIDEO_V4L2 && SND
> > >  	select SND_ISA
> > >  	select SND_MIRO
> > >  	---help---
> > > diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
> > > index cb54d9c0a77f..d2a6cdd0395c 100644
> > > --- a/sound/isa/Kconfig
> > > +++ b/sound/isa/Kconfig
> > > @@ -20,7 +20,8 @@ config SND_SB16_DSP
> > >  
> > >  menuconfig SND_ISA
> > >  	bool "ISA sound devices"
> > > -	depends on ISA && ISA_DMA_API
> > > +	depends on ISA || COMPILE_TEST
> > > +	depends on ISA_DMA_API
> > >  	default y
> > >  	help
> > >  	  Support for sound devices connected via the ISA bus.
> > > @@ -38,7 +39,7 @@ config SND_ADLIB
> > >  
> > >  config SND_AD1816A
> > >  	tristate "Analog Devices SoundPort AD1816A"
> > > -	depends on PNP
> > > +	depends on PNP && ISA
> > >  	select ISAPNP
> > >  	select SND_OPL3_LIB
> > >  	select SND_MPU401_UART    
> > 
> > Just from curiosity: what's the reason for this explicit CONFIG_ISA
> > dependency?  What error did you get?  
> 
> Kconfig complains with "select ISAPNP":
> 
> WARNING: unmet direct dependencies detected for ISAPNP
>   Depends on [n]: PNP [=y] && ISA [=n]
>   Selected by [y]:
>   - SND_AD1816A [=y] && SOUND [=y] && !UML && SND [=y] && SND_ISA [=y] && PNP [=y]
> 
> Because it is declared as:
> 
> config ISAPNP
> 	bool "ISA Plug and Play support"
>         depends on ISA
> 
> I could have tried to change ISAPNP to depends on ISA || COMPILE_TEST,
> but I suspect that would touch on yet another subsystem and has
> the potential to point to other things that need changes, as
> a lot more drivers will be selected.
> 
> Anyway, after a quick look at include/linux/isapnp.h, I suspect
> that this can work.
> 
> I'll run some tests here.

Yes, removing the ISAPNP dependency if COMPILE_TEST is trivial too.

Just sent a separate patch to be applied after this one with such
removal.

I opted to make it as a separate patch as, if the drivers there
fail to build on some weird architecture, we won't need to discard
this one.

Thanks,
Mauro
Takashi Iwai April 20, 2018, 1:06 p.m. UTC | #4
On Fri, 20 Apr 2018 15:01:22 +0200,
Mauro Carvalho Chehab wrote:
> 
> Em Fri, 20 Apr 2018 09:51:29 -0300
> Mauro Carvalho Chehab <mchehab@s-opensource.com> escreveu:
> 
> > Em Fri, 20 Apr 2018 14:37:46 +0200
> > Takashi Iwai <tiwai@suse.de> escreveu:
> > 
> > > On Fri, 20 Apr 2018 14:32:15 +0200,
> > > Mauro Carvalho Chehab wrote:  
> > > > 
> > > > All sound drivers that don't depend on PNP can be safelly
> > > > build with COMPILE_TEST, as ISA provides function stubs to
> > > > be used for such purposes.
> > > > 
> > > > As a side effect, with this change, the radio-miropcm20
> > > > can now be built outside i386 with COMPILE_TEST.
> > > > 
> > > > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
> > > > ---
> > > >  drivers/media/radio/Kconfig | 3 ++-
> > > >  sound/isa/Kconfig           | 9 +++++----
> > > >  2 files changed, 7 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > > > index d363726e9eb1..8fa403c7149e 100644
> > > > --- a/drivers/media/radio/Kconfig
> > > > +++ b/drivers/media/radio/Kconfig
> > > > @@ -372,7 +372,8 @@ config RADIO_GEMTEK_PROBE
> > > >  
> > > >  config RADIO_MIROPCM20
> > > >  	tristate "miroSOUND PCM20 radio"
> > > > -	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
> > > > +	depends on ISA || COMPILE_TEST
> > > > +	depends on ISA_DMA_API && VIDEO_V4L2 && SND
> > > >  	select SND_ISA
> > > >  	select SND_MIRO
> > > >  	---help---
> > > > diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
> > > > index cb54d9c0a77f..d2a6cdd0395c 100644
> > > > --- a/sound/isa/Kconfig
> > > > +++ b/sound/isa/Kconfig
> > > > @@ -20,7 +20,8 @@ config SND_SB16_DSP
> > > >  
> > > >  menuconfig SND_ISA
> > > >  	bool "ISA sound devices"
> > > > -	depends on ISA && ISA_DMA_API
> > > > +	depends on ISA || COMPILE_TEST
> > > > +	depends on ISA_DMA_API
> > > >  	default y
> > > >  	help
> > > >  	  Support for sound devices connected via the ISA bus.
> > > > @@ -38,7 +39,7 @@ config SND_ADLIB
> > > >  
> > > >  config SND_AD1816A
> > > >  	tristate "Analog Devices SoundPort AD1816A"
> > > > -	depends on PNP
> > > > +	depends on PNP && ISA
> > > >  	select ISAPNP
> > > >  	select SND_OPL3_LIB
> > > >  	select SND_MPU401_UART    
> > > 
> > > Just from curiosity: what's the reason for this explicit CONFIG_ISA
> > > dependency?  What error did you get?  
> > 
> > Kconfig complains with "select ISAPNP":
> > 
> > WARNING: unmet direct dependencies detected for ISAPNP
> >   Depends on [n]: PNP [=y] && ISA [=n]
> >   Selected by [y]:
> >   - SND_AD1816A [=y] && SOUND [=y] && !UML && SND [=y] && SND_ISA [=y] && PNP [=y]
> > 
> > Because it is declared as:
> > 
> > config ISAPNP
> > 	bool "ISA Plug and Play support"
> >         depends on ISA
> > 
> > I could have tried to change ISAPNP to depends on ISA || COMPILE_TEST,
> > but I suspect that would touch on yet another subsystem and has
> > the potential to point to other things that need changes, as
> > a lot more drivers will be selected.
> > 
> > Anyway, after a quick look at include/linux/isapnp.h, I suspect
> > that this can work.
> > 
> > I'll run some tests here.
> 
> Yes, removing the ISAPNP dependency if COMPILE_TEST is trivial too.
> 
> Just sent a separate patch to be applied after this one with such
> removal.
> 
> I opted to make it as a separate patch as, if the drivers there
> fail to build on some weird architecture, we won't need to discard
> this one.

OK, then feel free to take my ack:
  Acked-by: Takashi Iwai <tiwai@suse.de>

But still it'd be better to mention about the CONFIG_ISA change, even
though it'll be removed again after the ISAPNP COMIPLE_TEST patch.


thanks,

Takashi
kernel test robot April 22, 2018, 6:05 p.m. UTC | #5
Hi Mauro,

I love your patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v4.17-rc1 next-20180420]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/media-radio-allow-building-ISA-drivers-with-COMPILE_TEST/20180422-180508
base:   git://linuxtv.org/media_tree.git master
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> sound/isa/wss/wss_lib.c:551:14: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/wss/wss_lib.c:552:14: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/wss/wss_lib.c:553:14: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/wss/wss_lib.c:554:14: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/wss/wss_lib.c:555:14: sparse: restricted snd_pcm_format_t degrades to integer
>> sound/isa/wss/wss_lib.c:1003:58: sparse: incorrect type in argument 2 (different base types) @@    expected int [signed] format @@    got restricted sndint [signed] format @@
   sound/isa/wss/wss_lib.c:1003:58:    expected int [signed] format
   sound/isa/wss/wss_lib.c:1003:58:    got restricted snd_pcm_format_t
   sound/isa/wss/wss_lib.c:1046:58: sparse: incorrect type in argument 2 (different base types) @@    expected int [signed] format @@    got restricted sndint [signed] format @@
   sound/isa/wss/wss_lib.c:1046:58:    expected int [signed] format
   sound/isa/wss/wss_lib.c:1046:58:    got restricted snd_pcm_format_t
--
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
>> drivers/media/radio/radio-miropcm20.c:292:21: sparse: expression using sizeof(void)
--
>> sound/isa/cmi8328.c:195:5: sparse: symbol 'array_find' was not declared. Should it be static?
>> sound/isa/cmi8328.c:206:5: sparse: symbol 'array_find_l' was not declared. Should it be static?
--
>> sound/isa/sscape.c:477:23: sparse: expression using sizeof(void)
>> sound/isa/sscape.c:477:23: sparse: expression using sizeof(void)
--
>> sound/isa/msnd/msnd_pinnacle.c:85:32: sparse: incorrect type in assignment (different base types) @@    expected int [signed] play_sample_size @@    got restricted snd_pcm_format_int [signed] play_sample_size @@
   sound/isa/msnd/msnd_pinnacle.c:85:32:    expected int [signed] play_sample_size
   sound/isa/msnd/msnd_pinnacle.c:85:32:    got restricted snd_pcm_format_t [usertype] <noident>
>> sound/isa/msnd/msnd_pinnacle.c:88:35: sparse: incorrect type in assignment (different base types) @@    expected int [signed] capture_sample_size @@    got restricted snd_pcm_format_int [signed] capture_sample_size @@
   sound/isa/msnd/msnd_pinnacle.c:88:35:    expected int [signed] capture_sample_size
   sound/isa/msnd/msnd_pinnacle.c:88:35:    got restricted snd_pcm_format_t [usertype] <noident>
>> sound/isa/msnd/msnd_pinnacle.c:172:45: sparse: incorrect type in initializer (different address spaces) @@    expected void *pwDSPQData @@    got void [noderef] <avoid *pwDSPQData @@
   sound/isa/msnd/msnd_pinnacle.c:172:45:    expected void *pwDSPQData
   sound/isa/msnd/msnd_pinnacle.c:172:45:    got void [noderef] <asn:2>*
>> sound/isa/msnd/msnd_pinnacle.c:185:62: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd_pinnacle.c:185:62:    expected void const volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd_pinnacle.c:185:62:    got void *
>> sound/isa/msnd/msnd_pinnacle.c:344:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:344:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:344:33:    got void [noderef] <asn:2>*DAPQ
   sound/isa/msnd/msnd_pinnacle.c:348:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:348:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:348:33:    got void [noderef] <asn:2>*DARQ
   sound/isa/msnd/msnd_pinnacle.c:352:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:352:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:352:33:    got void [noderef] <asn:2>*MODQ
   sound/isa/msnd/msnd_pinnacle.c:356:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:356:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:356:33:    got void [noderef] <asn:2>*MIDQ
   sound/isa/msnd/msnd_pinnacle.c:360:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:360:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:360:33:    got void [noderef] <asn:2>*DSPQ
>> sound/isa/msnd/msnd_pinnacle.c:813:1: sparse: Using plain integer as NULL pointer
--
>> sound/isa/msnd/msnd.c:59:43: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:59:43:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:59:43:    got void *
   sound/isa/msnd/msnd.c:60:47: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:60:47:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:60:47:    got void *
   sound/isa/msnd/msnd.c:61:24: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:61:24:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:61:24:    got void *
   sound/isa/msnd/msnd.c:62:24: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:62:24:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:62:24:    got void *
>> sound/isa/msnd/msnd.c:165:40: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd.c:165:40:    expected void *base
   sound/isa/msnd/msnd.c:165:40:    got void [noderef] <asn:2>*DSPQ
>> sound/isa/msnd/msnd.c:274:49: sparse: incorrect type in initializer (different address spaces) @@    expected void *pDAQ @@    got void [noderef] <avoid *pDAQ @@
   sound/isa/msnd/msnd.c:274:49:    expected void *pDAQ
   sound/isa/msnd/msnd.c:274:49:    got void [noderef] <asn:2>*
>> sound/isa/msnd/msnd.c:277:27: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:277:27:    expected void const volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:277:27:    got void *pDAQ
   sound/isa/msnd/msnd.c:279:47: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:279:47:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:279:47:    got void *pDAQ
>> sound/isa/msnd/msnd.c:327:22: sparse: incorrect type in assignment (different address spaces) @@    expected void *DAQD @@    got void [noderef] <avoid *DAQD @@
   sound/isa/msnd/msnd.c:327:22:    expected void *DAQD
   sound/isa/msnd/msnd.c:327:22:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:331:54: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:331:54:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:331:54:    got void *
   sound/isa/msnd/msnd.c:337:40: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:337:40:    expected void const volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:337:40:    got void *
   sound/isa/msnd/msnd.c:340:60: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:340:60:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:340:60:    got void *
   sound/isa/msnd/msnd.c:373:42: sparse: incorrect type in initializer (different address spaces) @@    expected void *pDAQ @@    got void [noderef] <avoid *pDAQ @@
   sound/isa/msnd/msnd.c:373:42:    expected void *pDAQ
   sound/isa/msnd/msnd.c:373:42:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:385:30: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:385:30:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:385:30:    got void *
   sound/isa/msnd/msnd.c:386:32: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:386:32:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:386:32:    got void *
   sound/isa/msnd/msnd.c:387:32: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:387:32:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:387:32:    got void *
   sound/isa/msnd/msnd.c:388:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:388:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:388:53:    got void *
   sound/isa/msnd/msnd.c:389:50: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:389:50:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:389:50:    got void *
   sound/isa/msnd/msnd.c:390:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:390:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:390:53:    got void *
   sound/isa/msnd/msnd.c:391:57: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:391:57:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:391:57:    got void *
   sound/isa/msnd/msnd.c:392:32: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:392:32:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:392:32:    got void *
>> sound/isa/msnd/msnd.c:424:14: sparse: incorrect type in assignment (different address spaces) @@    expected void *pDAQ @@    got void [noderef] <avoid *pDAQ @@
   sound/isa/msnd/msnd.c:424:14:    expected void *pDAQ
   sound/isa/msnd/msnd.c:424:14:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:429:58: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:429:58:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:429:58:    got void *
   sound/isa/msnd/msnd.c:430:40: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:430:40:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:430:40:    got void *
   sound/isa/msnd/msnd.c:431:32: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:431:32:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:431:32:    got void *
   sound/isa/msnd/msnd.c:432:56: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:432:56:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:432:56:    got void *
   sound/isa/msnd/msnd.c:433:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:433:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:433:53:    got void *
   sound/isa/msnd/msnd.c:434:56: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:434:56:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:434:56:    got void *
   sound/isa/msnd/msnd.c:435:59: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:435:59:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:435:59:    got void *
   sound/isa/msnd/msnd.c:436:32: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:436:32:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:436:32:    got void *
>> sound/isa/msnd/msnd.c:488:27: sparse: incorrect type in assignment (different address spaces) @@    expected unsigned char *dma_area @@    got void [nounsigned char *dma_area @@
   sound/isa/msnd/msnd.c:488:27:    expected unsigned char *dma_area
   sound/isa/msnd/msnd.c:488:27:    got void [noderef] <asn:2>*mappedbase
   sound/isa/msnd/msnd.c:511:42: sparse: incorrect type in initializer (different address spaces) @@    expected void *pDAQ @@    got void [noderef] <avoid *pDAQ @@
   sound/isa/msnd/msnd.c:511:42:    expected void *pDAQ
   sound/isa/msnd/msnd.c:511:42:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:518:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:518:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:518:53:    got void *
   sound/isa/msnd/msnd.c:519:50: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:519:50:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:519:50:    got void *
   sound/isa/msnd/msnd.c:520:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:520:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:520:53:    got void *
   sound/isa/msnd/msnd.c:592:27: sparse: incorrect type in assignment (different address spaces) @@    expected unsigned char *dma_area @@    got void [nounsigned char *dma_area @@
   sound/isa/msnd/msnd.c:592:27:    expected unsigned char *dma_area
   sound/isa/msnd/msnd.c:592:27:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:657:50: sparse: incorrect type in initializer (different address spaces) @@    expected void *pDAQ @@    got void [noderef] <avoid *pDAQ @@
   sound/isa/msnd/msnd.c:657:50:    expected void *pDAQ
   sound/isa/msnd/msnd.c:657:50:    got void [noderef] <asn:2>*
   sound/isa/msnd/msnd.c:664:56: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:664:56:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:664:56:    got void *
   sound/isa/msnd/msnd.c:665:53: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:665:53:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:665:53:    got void *
   sound/isa/msnd/msnd.c:666:56: sparse: incorrect type in argument 2 (different address spaces) @@    expected void volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd.c:666:56:    expected void volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd.c:666:56:    got void *
--
>> sound/isa/msnd/msnd_midi.c:122:49: sparse: incorrect type in initializer (different address spaces) @@    expected void *pwMIDQData @@    got void [noderef] <avoid *pwMIDQData @@
   sound/isa/msnd/msnd_midi.c:122:49:    expected void *pwMIDQData
   sound/isa/msnd/msnd_midi.c:122:49:    got void [noderef] <asn:2>*
>> sound/isa/msnd/msnd_midi.c:132:54: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd_midi.c:132:54:    expected void const volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd_midi.c:132:54:    got void *
--
>> sound/isa/msnd/msnd_pinnacle.c:85:32: sparse: incorrect type in assignment (different base types) @@    expected int [signed] play_sample_size @@    got restricted snd_pcm_format_int [signed] play_sample_size @@
   sound/isa/msnd/msnd_pinnacle.c:85:32:    expected int [signed] play_sample_size
   sound/isa/msnd/msnd_pinnacle.c:85:32:    got restricted snd_pcm_format_t [usertype] <noident>
>> sound/isa/msnd/msnd_pinnacle.c:88:35: sparse: incorrect type in assignment (different base types) @@    expected int [signed] capture_sample_size @@    got restricted snd_pcm_format_int [signed] capture_sample_size @@
   sound/isa/msnd/msnd_pinnacle.c:88:35:    expected int [signed] capture_sample_size
   sound/isa/msnd/msnd_pinnacle.c:88:35:    got restricted snd_pcm_format_t [usertype] <noident>
>> sound/isa/msnd/msnd_pinnacle.c:172:45: sparse: incorrect type in initializer (different address spaces) @@    expected void *pwDSPQData @@    got void [noderef] <avoid *pwDSPQData @@
   sound/isa/msnd/msnd_pinnacle.c:172:45:    expected void *pwDSPQData
   sound/isa/msnd/msnd_pinnacle.c:172:45:    got void [noderef] <asn:2>*
>> sound/isa/msnd/msnd_pinnacle.c:185:62: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const volatile [noderef] <asn:2>*addr @@    got sn:2>*addr @@
   sound/isa/msnd/msnd_pinnacle.c:185:62:    expected void const volatile [noderef] <asn:2>*addr
   sound/isa/msnd/msnd_pinnacle.c:185:62:    got void *
>> sound/isa/msnd/msnd_pinnacle.c:344:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:344:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:344:33:    got void [noderef] <asn:2>*DAPQ
   sound/isa/msnd/msnd_pinnacle.c:348:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:348:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:348:33:    got void [noderef] <asn:2>*DARQ
   sound/isa/msnd/msnd_pinnacle.c:352:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:352:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:352:33:    got void [noderef] <asn:2>*MODQ
   sound/isa/msnd/msnd_pinnacle.c:356:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:356:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:356:33:    got void [noderef] <asn:2>*MIDQ
   sound/isa/msnd/msnd_pinnacle.c:360:33: sparse: incorrect type in argument 1 (different address spaces) @@    expected void *base @@    got void [noderef] <avoid *base @@
   sound/isa/msnd/msnd_pinnacle.c:360:33:    expected void *base
   sound/isa/msnd/msnd_pinnacle.c:360:33:    got void [noderef] <asn:2>*DSPQ
--
>> sound/isa/sb/emu8000_pcm.c:541:9: sparse: cast removes address space of expression
--
>> sound/isa/sb/sb16_csp.c:330:14: sparse: cast to restricted __le32
   sound/isa/sb/sb16_csp.c:335:31: sparse: cast to restricted __le32
>> sound/isa/sb/sb16_csp.c:358:35: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:384:73: sparse: cast to restricted __le32
   sound/isa/sb/sb16_csp.c:388:45: sparse: cast to restricted __le32
   sound/isa/sb/sb16_csp.c:400:52: sparse: cast to restricted __le32
   sound/isa/sb/sb16_csp.c:407:35: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:408:33: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:410:37: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:438:33: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:443:43: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:444:40: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:445:40: sparse: cast to restricted __le16
   sound/isa/sb/sb16_csp.c:345:49: sparse: cast to restricted __le32
>> sound/isa/sb/sb16_csp.c:743:22: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/sb/sb16_csp.c:748:22: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/sb/sb16_csp.c:753:22: sparse: restricted snd_pcm_format_t degrades to integer
--
>> sound/isa/sb/sb16_main.c:61:44: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/sb/sb16_main.c:69:50: sparse: restricted snd_pcm_format_t degrades to integer
>> sound/isa/sb/sb16_main.c:80:63: sparse: incorrect type in argument 2 (different base types) @@    expected int [signed] pcm_sfmt @@    got restricted snd_pcm_format_int [signed] pcm_sfmt @@
   sound/isa/sb/sb16_main.c:80:63:    expected int [signed] pcm_sfmt
   sound/isa/sb/sb16_main.c:80:63:    got restricted snd_pcm_format_t [usertype] format
   sound/isa/sb/sb16_main.c:109:44: sparse: restricted snd_pcm_format_t degrades to integer
   sound/isa/sb/sb16_main.c:118:63: sparse: incorrect type in argument 2 (different base types) @@    expected int [signed] pcm_sfmt @@    got restricted snd_pcm_format_int [signed] pcm_sfmt @@
   sound/isa/sb/sb16_main.c:118:63:    expected int [signed] pcm_sfmt
   sound/isa/sb/sb16_main.c:118:63:    got restricted snd_pcm_format_t [usertype] format

Please review and possibly fold the followup patch.

vim +551 sound/isa/wss/wss_lib.c

^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  542  
7779f75f sound/isa/wss/wss_lib.c       Krzysztof Helt 2008-07-31  543  static unsigned char snd_wss_get_format(struct snd_wss *chip,
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  544  					int format,
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  545  					int channels)
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  546  {
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  547  	unsigned char rformat;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  548  
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  549  	rformat = CS4231_LINEAR_8;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  550  	switch (format) {
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16 @551  	case SNDRV_PCM_FORMAT_MU_LAW:	rformat = CS4231_ULAW_8; break;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  552  	case SNDRV_PCM_FORMAT_A_LAW:	rformat = CS4231_ALAW_8; break;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  553  	case SNDRV_PCM_FORMAT_S16_LE:	rformat = CS4231_LINEAR_16; break;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  554  	case SNDRV_PCM_FORMAT_S16_BE:	rformat = CS4231_LINEAR_16_BIG; break;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  555  	case SNDRV_PCM_FORMAT_IMA_ADPCM:	rformat = CS4231_ADPCM_16; break;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  556  	}
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  557  	if (channels > 1)
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  558  		rformat |= CS4231_STEREO;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  559  #if 0
76d498e4 sound/isa/wss/wss_lib.c       Takashi Iwai   2009-02-05  560  	snd_printk(KERN_DEBUG "get_format: 0x%x (mode=0x%x)\n", format, mode);
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  561  #endif
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  562  	return rformat;
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  563  }
^1da177e sound/isa/cs423x/cs4231_lib.c Linus Torvalds 2005-04-16  564  

:::::: The code at line 551 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Takashi Iwai April 23, 2018, 6:52 a.m. UTC | #6
On Sun, 22 Apr 2018 20:05:03 +0200,
kbuild test robot wrote:
> 
> Hi Mauro,
> 
> I love your patch! Perhaps something to improve:
> 
> [auto build test WARNING on linuxtv-media/master]
> [also build test WARNING on v4.17-rc1 next-20180420]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Mauro-Carvalho-Chehab/media-radio-allow-building-ISA-drivers-with-COMPILE_TEST/20180422-180508
> base:   git://linuxtv.org/media_tree.git master
> reproduce:
>         # apt-get install sparse
>         make ARCH=x86_64 allmodconfig
>         make C=1 CF=-D__CHECK_ENDIAN__
> 
> 
> sparse warnings: (new ones prefixed by >>)
> 
> >> sound/isa/wss/wss_lib.c:551:14: sparse: restricted snd_pcm_format_t degrades to integer
....

Oh, so many minor issues surfaced by COMPILE_TEST.
But these are all legacy ISA drivers, so I'll work on and take only safe
fixes that are obvious and trivial, if any.


thanks,

Takashi
diff mbox

Patch

diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
index d363726e9eb1..8fa403c7149e 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -372,7 +372,8 @@  config RADIO_GEMTEK_PROBE
 
 config RADIO_MIROPCM20
 	tristate "miroSOUND PCM20 radio"
-	depends on ISA && ISA_DMA_API && VIDEO_V4L2 && SND
+	depends on ISA || COMPILE_TEST
+	depends on ISA_DMA_API && VIDEO_V4L2 && SND
 	select SND_ISA
 	select SND_MIRO
 	---help---
diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
index cb54d9c0a77f..d2a6cdd0395c 100644
--- a/sound/isa/Kconfig
+++ b/sound/isa/Kconfig
@@ -20,7 +20,8 @@  config SND_SB16_DSP
 
 menuconfig SND_ISA
 	bool "ISA sound devices"
-	depends on ISA && ISA_DMA_API
+	depends on ISA || COMPILE_TEST
+	depends on ISA_DMA_API
 	default y
 	help
 	  Support for sound devices connected via the ISA bus.
@@ -38,7 +39,7 @@  config SND_ADLIB
 
 config SND_AD1816A
 	tristate "Analog Devices SoundPort AD1816A"
-	depends on PNP
+	depends on PNP && ISA
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -66,7 +67,7 @@  config SND_AD1848
 
 config SND_ALS100
 	tristate "Diamond Tech. DT-019x and Avance Logic ALSxxx"
-	depends on PNP
+	depends on PNP && ISA
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
@@ -107,7 +108,7 @@  config SND_AZT2316
 
 config SND_AZT2320
 	tristate "Aztech Systems AZT2320"
-	depends on PNP
+	depends on PNP && ISA
 	select ISAPNP
 	select SND_OPL3_LIB
 	select SND_MPU401_UART