diff mbox

sound: depend on ZONE_DMA

Message ID 20151112201357.11045.22705.stgit@dwillia2-desk3.jf.intel.com (mailing list archive)
State Accepted
Commit 2db1a57986d3
Headers show

Commit Message

Dan Williams Nov. 12, 2015, 8:13 p.m. UTC
There are several sound drivers that 'select ZONE_DMA'.  This is
backwards as ZONE_DMA is an architecture capability exported to drivers.
Switch the polarity of the dependency to disable these drivers when the
architecture does not support ZONE_DMA.  This was discovered in the
context of testing/enabling devm_memremap_pages() which depends on
ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.

Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: <alsa-devel@alsa-project.org>
Reported-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 sound/pci/Kconfig |   24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

Comments

Boaz Harrosh Nov. 15, 2015, 10:16 a.m. UTC | #1
On 11/12/2015 10:13 PM, Dan Williams wrote:
> There are several sound drivers that 'select ZONE_DMA'.  This is
> backwards as ZONE_DMA is an architecture capability exported to drivers.
> Switch the polarity of the dependency to disable these drivers when the
> architecture does not support ZONE_DMA.  This was discovered in the
> context of testing/enabling devm_memremap_pages() which depends on
> ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.
> 
> Cc: Jaroslav Kysela <perex@perex.cz>
> Cc: Takashi Iwai <tiwai@suse.com>
> Cc: <alsa-devel@alsa-project.org>
> Reported-by: Jeff Moyer <jmoyer@redhat.com>
> Signed-off-by: Dan Williams <dan.j.williams@intel.com>

Yes sorry about that. I had the exact patch in my original 4.3-rc1
tree but forgot to send it.

Reviewed-by: Boaz Harrosh <boaz@plexistor.com>

You will need stabe@ for 4.3 as well.

Thanks
Boaz

> ---
>  sound/pci/Kconfig |   24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
> index edfc1b8d553e..656ce39bddbc 100644
> --- a/sound/pci/Kconfig
> +++ b/sound/pci/Kconfig
> @@ -25,7 +25,7 @@ config SND_ALS300
>  	select SND_PCM
>  	select SND_AC97_CODEC
>  	select SND_OPL3_LIB
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
>  
> @@ -50,7 +50,7 @@ config SND_ALI5451
>  	tristate "ALi M5451 PCI Audio Controller"
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for the integrated AC97 sound
>  	  device on motherboards using the ALi M5451 Audio Controller
> @@ -155,7 +155,7 @@ config SND_AZT3328
>  	select SND_PCM
>  	select SND_RAWMIDI
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for Aztech AZF3328 (PCI168)
>  	  soundcards.
> @@ -463,7 +463,7 @@ config SND_EMU10K1
>  	select SND_HWDEP
>  	select SND_RAWMIDI
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y to include support for Sound Blaster PCI 512, Live!,
>  	  Audigy and E-mu APS (partially supported) soundcards.
> @@ -479,7 +479,7 @@ config SND_EMU10K1X
>  	tristate "Emu10k1X (Dell OEM Version)"
>  	select SND_AC97_CODEC
>  	select SND_RAWMIDI
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for the Dell OEM version of the
>  	  Sound Blaster Live!.
> @@ -513,7 +513,7 @@ config SND_ES1938
>  	select SND_OPL3_LIB
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on ESS Solo-1
>  	  (ES1938, ES1946, ES1969) chips.
> @@ -525,7 +525,7 @@ config SND_ES1968
>  	tristate "ESS ES1968/1978 (Maestro-1/2/2E)"
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on ESS Maestro
>  	  1/2/2E chips.
> @@ -612,7 +612,7 @@ config SND_ICE1712
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
>  	select BITREVERSE
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on the
>  	  ICE1712 (Envy24) chip.
> @@ -700,7 +700,7 @@ config SND_LX6464ES
>  config SND_MAESTRO3
>  	tristate "ESS Allegro/Maestro3"
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on ESS Maestro 3
>  	  (Allegro) chips.
> @@ -806,7 +806,7 @@ config SND_SIS7019
>  	tristate "SiS 7019 Audio Accelerator"
>  	depends on X86_32
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for the SiS 7019 Audio Accelerator.
>  
> @@ -818,7 +818,7 @@ config SND_SONICVIBES
>  	select SND_OPL3_LIB
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on the S3
>  	  SonicVibes chip.
> @@ -830,7 +830,7 @@ config SND_TRIDENT
>  	tristate "Trident 4D-Wave DX/NX; SiS 7018"
>  	select SND_MPU401_UART
>  	select SND_AC97_CODEC
> -	select ZONE_DMA
> +	depends on ZONE_DMA
>  	help
>  	  Say Y here to include support for soundcards based on Trident
>  	  4D-Wave DX/NX or SiS 7018 chips.
> 
> _______________________________________________
> Linux-nvdimm mailing list
> Linux-nvdimm@lists.01.org
> https://lists.01.org/mailman/listinfo/linux-nvdimm
>
Boaz Harrosh Nov. 15, 2015, 10:53 a.m. UTC | #2
On 11/12/2015 10:38 PM, Takashi Iwai wrote:
> On Thu, 12 Nov 2015 21:13:57 +0100,
> Dan Williams wrote:
>>
>> There are several sound drivers that 'select ZONE_DMA'.  This is
>> backwards as ZONE_DMA is an architecture capability exported to drivers.
>> Switch the polarity of the dependency to disable these drivers when the
>> architecture does not support ZONE_DMA.  This was discovered in the
>> context of testing/enabling devm_memremap_pages() which depends on
>> ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.
> 
> Makes sense.  I applied it now, thanks.
> 

Please add:
CC: Stable Tree <stable@vger.kernel.org>

Thanks
Boaz

> 
> Takashi
> 
>>
>> Cc: Jaroslav Kysela <perex@perex.cz>
>> Cc: Takashi Iwai <tiwai@suse.com>
>> Cc: <alsa-devel@alsa-project.org>
>> Reported-by: Jeff Moyer <jmoyer@redhat.com>
>> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
>> ---
>>  sound/pci/Kconfig |   24 ++++++++++++------------
>>  1 file changed, 12 insertions(+), 12 deletions(-)
>>
>> diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
>> index edfc1b8d553e..656ce39bddbc 100644
>> --- a/sound/pci/Kconfig
>> +++ b/sound/pci/Kconfig
>> @@ -25,7 +25,7 @@ config SND_ALS300
>>  	select SND_PCM
>>  	select SND_AC97_CODEC
>>  	select SND_OPL3_LIB
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
>>  
>> @@ -50,7 +50,7 @@ config SND_ALI5451
>>  	tristate "ALi M5451 PCI Audio Controller"
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for the integrated AC97 sound
>>  	  device on motherboards using the ALi M5451 Audio Controller
>> @@ -155,7 +155,7 @@ config SND_AZT3328
>>  	select SND_PCM
>>  	select SND_RAWMIDI
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for Aztech AZF3328 (PCI168)
>>  	  soundcards.
>> @@ -463,7 +463,7 @@ config SND_EMU10K1
>>  	select SND_HWDEP
>>  	select SND_RAWMIDI
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y to include support for Sound Blaster PCI 512, Live!,
>>  	  Audigy and E-mu APS (partially supported) soundcards.
>> @@ -479,7 +479,7 @@ config SND_EMU10K1X
>>  	tristate "Emu10k1X (Dell OEM Version)"
>>  	select SND_AC97_CODEC
>>  	select SND_RAWMIDI
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for the Dell OEM version of the
>>  	  Sound Blaster Live!.
>> @@ -513,7 +513,7 @@ config SND_ES1938
>>  	select SND_OPL3_LIB
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on ESS Solo-1
>>  	  (ES1938, ES1946, ES1969) chips.
>> @@ -525,7 +525,7 @@ config SND_ES1968
>>  	tristate "ESS ES1968/1978 (Maestro-1/2/2E)"
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on ESS Maestro
>>  	  1/2/2E chips.
>> @@ -612,7 +612,7 @@ config SND_ICE1712
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>>  	select BITREVERSE
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on the
>>  	  ICE1712 (Envy24) chip.
>> @@ -700,7 +700,7 @@ config SND_LX6464ES
>>  config SND_MAESTRO3
>>  	tristate "ESS Allegro/Maestro3"
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on ESS Maestro 3
>>  	  (Allegro) chips.
>> @@ -806,7 +806,7 @@ config SND_SIS7019
>>  	tristate "SiS 7019 Audio Accelerator"
>>  	depends on X86_32
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for the SiS 7019 Audio Accelerator.
>>  
>> @@ -818,7 +818,7 @@ config SND_SONICVIBES
>>  	select SND_OPL3_LIB
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on the S3
>>  	  SonicVibes chip.
>> @@ -830,7 +830,7 @@ config SND_TRIDENT
>>  	tristate "Trident 4D-Wave DX/NX; SiS 7018"
>>  	select SND_MPU401_UART
>>  	select SND_AC97_CODEC
>> -	select ZONE_DMA
>> +	depends on ZONE_DMA
>>  	help
>>  	  Say Y here to include support for soundcards based on Trident
>>  	  4D-Wave DX/NX or SiS 7018 chips.
>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>
Boaz Harrosh Nov. 16, 2015, 8:58 a.m. UTC | #3
On 11/16/2015 09:40 AM, Takashi Iwai wrote:
> On Sun, 15 Nov 2015 11:53:11 +0100,
> Boaz Harrosh wrote:
>>
>> On 11/12/2015 10:38 PM, Takashi Iwai wrote:
>>> On Thu, 12 Nov 2015 21:13:57 +0100,
>>> Dan Williams wrote:
>>>>
>>>> There are several sound drivers that 'select ZONE_DMA'.  This is
>>>> backwards as ZONE_DMA is an architecture capability exported to drivers.
>>>> Switch the polarity of the dependency to disable these drivers when the
>>>> architecture does not support ZONE_DMA.  This was discovered in the
>>>> context of testing/enabling devm_memremap_pages() which depends on
>>>> ZONE_DEVICE.  ZONE_DEVICE in turn depends on !ZONE_DMA.
>>>
>>> Makes sense.  I applied it now, thanks.
>>>
>>
>> Please add:
>> CC: Stable Tree <stable@vger.kernel.org>
> 
> Sorry, too late, already merged.
> 
> 
> Takashi
> 

Hi Greg

Please include the mainline patch:
	[2db1a57] ALSA: pci: depend on ZONE_DMA (by Dan Williams)

To the stable tree for v4.3.X Kernel.

This patch is needed for proper operation of the 4.3 pmem.ko driver. Long
story, but without this patch the persistent-memory will not be able to
work with the new 4.3 support of page-struct which is needed if we want to
RDMA and/or IO directly to persistent memory.
[Is to do with the new ZONE_DEVICE and too many ZONE(s) if ZONE_DMA is enabled]

Thanks
Boaz
Boaz Harrosh Nov. 16, 2015, 9:49 a.m. UTC | #4
On 11/16/2015 11:28 AM, Takashi Iwai wrote:
<>
>>
>> Hi Greg
>>
>> Please include the mainline patch:
>> 	[2db1a57] ALSA: pci: depend on ZONE_DMA (by Dan Williams)
>>
>> To the stable tree for v4.3.X Kernel.
>>
>> This patch is needed for proper operation of the 4.3 pmem.ko driver. Long
>> story, but without this patch the persistent-memory will not be able to
>> work with the new 4.3 support of page-struct which is needed if we want to
>> RDMA and/or IO directly to persistent memory.
>> [Is to do with the new ZONE_DEVICE and too many ZONE(s) if ZONE_DMA is enabled]
> 
> Well, it's not exactly true: you just need to deselect some drivers to
> allow CONFIG_ZONE_DMA to be disabled.  It's merely another side of
> coin.
> 
> I don't mind including this to 4.3, though, but just want to correct
> the statement.
> 

This is true. Sorry for not being clear. We already have a script that we
give to clients to enable ZONE_DEVICE for 4.3 based systems. Is currently
simple based on this patch. Without this patch it will need to be more
complicated.

Thanks Takashi
Boaz

> 
> Takashi
>
diff mbox

Patch

diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
index edfc1b8d553e..656ce39bddbc 100644
--- a/sound/pci/Kconfig
+++ b/sound/pci/Kconfig
@@ -25,7 +25,7 @@  config SND_ALS300
 	select SND_PCM
 	select SND_AC97_CODEC
 	select SND_OPL3_LIB
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say 'Y' or 'M' to include support for Avance Logic ALS300/ALS300+
 
@@ -50,7 +50,7 @@  config SND_ALI5451
 	tristate "ALi M5451 PCI Audio Controller"
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for the integrated AC97 sound
 	  device on motherboards using the ALi M5451 Audio Controller
@@ -155,7 +155,7 @@  config SND_AZT3328
 	select SND_PCM
 	select SND_RAWMIDI
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for Aztech AZF3328 (PCI168)
 	  soundcards.
@@ -463,7 +463,7 @@  config SND_EMU10K1
 	select SND_HWDEP
 	select SND_RAWMIDI
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y to include support for Sound Blaster PCI 512, Live!,
 	  Audigy and E-mu APS (partially supported) soundcards.
@@ -479,7 +479,7 @@  config SND_EMU10K1X
 	tristate "Emu10k1X (Dell OEM Version)"
 	select SND_AC97_CODEC
 	select SND_RAWMIDI
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for the Dell OEM version of the
 	  Sound Blaster Live!.
@@ -513,7 +513,7 @@  config SND_ES1938
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on ESS Solo-1
 	  (ES1938, ES1946, ES1969) chips.
@@ -525,7 +525,7 @@  config SND_ES1968
 	tristate "ESS ES1968/1978 (Maestro-1/2/2E)"
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on ESS Maestro
 	  1/2/2E chips.
@@ -612,7 +612,7 @@  config SND_ICE1712
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
 	select BITREVERSE
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on the
 	  ICE1712 (Envy24) chip.
@@ -700,7 +700,7 @@  config SND_LX6464ES
 config SND_MAESTRO3
 	tristate "ESS Allegro/Maestro3"
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on ESS Maestro 3
 	  (Allegro) chips.
@@ -806,7 +806,7 @@  config SND_SIS7019
 	tristate "SiS 7019 Audio Accelerator"
 	depends on X86_32
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for the SiS 7019 Audio Accelerator.
 
@@ -818,7 +818,7 @@  config SND_SONICVIBES
 	select SND_OPL3_LIB
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on the S3
 	  SonicVibes chip.
@@ -830,7 +830,7 @@  config SND_TRIDENT
 	tristate "Trident 4D-Wave DX/NX; SiS 7018"
 	select SND_MPU401_UART
 	select SND_AC97_CODEC
-	select ZONE_DMA
+	depends on ZONE_DMA
 	help
 	  Say Y here to include support for soundcards based on Trident
 	  4D-Wave DX/NX or SiS 7018 chips.