All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Codrin.Ciubotariu@microchip.com,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	mirq-linux@rere.qmqm.pl,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>
Subject: Re: [PATCH v3] ASoC: atmel: ATMEL drivers don't need HAS_DMA
Date: Thu, 9 Sep 2021 18:53:03 -0700	[thread overview]
Message-ID: <9c1bbf15-ebba-e754-8fac-9cc7b218651c@infradead.org> (raw)
In-Reply-To: <CAMuHMdXcmW27KhQEgxmVSDgR8GDnb_5mYNPYepa15F_tKqk9-A@mail.gmail.com>

On 9/9/21 12:22 AM, Geert Uytterhoeven wrote:
> Hi Randy,
> 
> On Wed, Sep 8, 2021 at 10:14 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>> On 9/6/21 12:14 AM, Geert Uytterhoeven wrote:
>>> On Fri, Sep 3, 2021 at 9:53 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>> On 9/2/21 9:44 AM, Geert Uytterhoeven wrote:
>>>>> On Thu, Jul 8, 2021 at 6:51 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>>>> On 7/8/21 1:19 AM, Codrin.Ciubotariu@microchip.com wrote:
>>>>>>> On 08.07.2021 00:47, Randy Dunlap wrote:
>>>>>>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>>>>>>
>>>>>>>> On a config (such as arch/sh/) which does not set HAS_DMA when MMU
>>>>>>>> is not set, several ATMEL ASoC drivers select symbols that cause
>>>>>>>> kconfig warnings. There is one "depends on HAS_DMA" which is no longer
>>>>>>>> needed. Dropping it eliminates the kconfig warnings and still builds
>>>>>>>> with no problems reported.
>>>>>>>>
>>>>>>>> Fix the following kconfig warnings:
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_SSC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m]
>>>>>>>>       - SND_ATMEL_SOC_SSC_PDC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_PDC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_AT91_SOC_SAM9G20_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_SSC_DMA [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_DMA
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_WM8904 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && I2C [=m]
>>>>>>>>       - SND_AT91_SOC_SAM9X5_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m]
>>>>>>>>
>>>>>>>> Fixes: 3951e4aae2ce ("ASoC: atmel-pcm: dma support based on pcm dmaengine")
>>>>>>>> Fixes: 18291410557f ("ASoC: atmel: enable SOC_SSC_PDC and SOC_SSC_DMA in Kconfig")
>>>>>>>> Fixes: 061981ff8cc8 ("ASoC: atmel: properly select dma driver state")
>>>>>>>
>>>>>>> I am not sure about these fixes tags. As Alexandre mentioned, it looks
>>>>>>> like the reason for HAS_DMA in the first place was the COMPILE_TEST with
>>>>>>> m32r arch. I dig a bit, and, if any, I think we should use:
>>>>>>> Fixes: eb17726b00b3 ("m32r: add simple dma")
>>>>>>> since this commit adds dummy DMA support for m32r and seems to fix the
>>>>>>> HAS_DMA dependency.
>>>>>>
>>>>>> Ah, I forgot to update the Fixes: tag(s).
>>>>>>
>>>>>> I won't disagree with your Fixes: suggestion (good digging) but
>>>>>> I would probably have used 8d7d11005e930:
>>>>>>      ASoC: atmel: fix build failure
>>>>>> which is the commit that added "depends on HAS_DMA".
>>>>>
>>>>> M32r was not the only platform NO_DMA, so I guess the build would
>>>>> have failed for the others, too (e.g. Sun-3).
>>>>>
>>>>> So the real fix was probably commit f29ab49b5388b2f8 ("dma-mapping:
>>>>> Convert NO_DMA get_dma_ops() into a real dummy"), or one of the
>>>>> related commits adding dummies to subsystems.
>>>>
>>>> Does this mean that some other actions are needed here?
>>>> E.g. revert + a different kind of fix?
>>>
>>> While we can now compile drivers using DMA features on NO_DMA
>>> platforms, thanks to the dummies, it does mean many of these drivers
>>> cannot work on such platforms.  So I think it makes sense to replace
>>> "depends on HAS_DMA" by "depends on HAS_DMA || COMPILE_TEST" if DMA
>>> is not optional to the driver.
>>
>> Hi Geert,
>>
>> Is this what you had in mind?  It seems to work with my (limited)
>> testing.
> 
> Yes. And also for other symbols for drivers that now compile fine
> if !HAS_DMA, thanks to the dummies.
> 
>> --- linux-next-20210907.orig/sound/soc/atmel/Kconfig
>> +++ linux-next-20210907/sound/soc/atmel/Kconfig
>> @@ -11,6 +11,7 @@ if SND_ATMEL_SOC
>>
>>    config SND_ATMEL_SOC_PDC
>>          bool
>> +       depends on HAS_DMA || COMPILE_TEST
>>
>>    config SND_ATMEL_SOC_DMA
>>          bool

Well. Addressing only sound/, only one more patch is needed AFAICT.
For Kconfigs outside of sound/, that would be more of a medium-length
project.


Lightly/successfully build-tested.

---
  sound/soc/fsl/Kconfig |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20210907.orig/sound/soc/fsl/Kconfig
+++ linux-next-20210907/sound/soc/fsl/Kconfig
@@ -5,7 +5,7 @@ comment "Common SoC Audio options for Fr
  
  config SND_SOC_FSL_ASRC
  	tristate "Asynchronous Sample Rate Converter (ASRC) module support"
-	depends on HAS_DMA
+	depends on HAS_DMA || COMPILE_TEST
  	select REGMAP_MMIO
  	select SND_SOC_GENERIC_DMAENGINE_PCM
  	help


WARNING: multiple messages have this Message-ID (diff)
From: Randy Dunlap <rdunlap@infradead.org>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: ALSA Development Mailing List <alsa-devel@alsa-project.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	mirq-linux@rere.qmqm.pl, Mark Brown <broonie@kernel.org>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Codrin.Ciubotariu@microchip.com
Subject: Re: [PATCH v3] ASoC: atmel: ATMEL drivers don't need HAS_DMA
Date: Thu, 9 Sep 2021 18:53:03 -0700	[thread overview]
Message-ID: <9c1bbf15-ebba-e754-8fac-9cc7b218651c@infradead.org> (raw)
In-Reply-To: <CAMuHMdXcmW27KhQEgxmVSDgR8GDnb_5mYNPYepa15F_tKqk9-A@mail.gmail.com>

On 9/9/21 12:22 AM, Geert Uytterhoeven wrote:
> Hi Randy,
> 
> On Wed, Sep 8, 2021 at 10:14 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>> On 9/6/21 12:14 AM, Geert Uytterhoeven wrote:
>>> On Fri, Sep 3, 2021 at 9:53 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>> On 9/2/21 9:44 AM, Geert Uytterhoeven wrote:
>>>>> On Thu, Jul 8, 2021 at 6:51 PM Randy Dunlap <rdunlap@infradead.org> wrote:
>>>>>> On 7/8/21 1:19 AM, Codrin.Ciubotariu@microchip.com wrote:
>>>>>>> On 08.07.2021 00:47, Randy Dunlap wrote:
>>>>>>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>>>>>>>
>>>>>>>> On a config (such as arch/sh/) which does not set HAS_DMA when MMU
>>>>>>>> is not set, several ATMEL ASoC drivers select symbols that cause
>>>>>>>> kconfig warnings. There is one "depends on HAS_DMA" which is no longer
>>>>>>>> needed. Dropping it eliminates the kconfig warnings and still builds
>>>>>>>> with no problems reported.
>>>>>>>>
>>>>>>>> Fix the following kconfig warnings:
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_SSC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m]
>>>>>>>>       - SND_ATMEL_SOC_SSC_PDC [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_PDC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_AT91_SOC_SAM9G20_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_SSC_DMA [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m]
>>>>>>>>
>>>>>>>> WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_SSC_DMA
>>>>>>>>       Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && ATMEL_SSC [=m] && HAS_DMA [=n]
>>>>>>>>       Selected by [m]:
>>>>>>>>       - SND_ATMEL_SOC_WM8904 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && I2C [=m]
>>>>>>>>       - SND_AT91_SOC_SAM9X5_WM8731 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_ATMEL_SOC [=m] && (ARCH_AT91 || COMPILE_TEST [=y]) && ATMEL_SSC [=m] && SND_SOC_I2C_AND_SPI [=m]
>>>>>>>>
>>>>>>>> Fixes: 3951e4aae2ce ("ASoC: atmel-pcm: dma support based on pcm dmaengine")
>>>>>>>> Fixes: 18291410557f ("ASoC: atmel: enable SOC_SSC_PDC and SOC_SSC_DMA in Kconfig")
>>>>>>>> Fixes: 061981ff8cc8 ("ASoC: atmel: properly select dma driver state")
>>>>>>>
>>>>>>> I am not sure about these fixes tags. As Alexandre mentioned, it looks
>>>>>>> like the reason for HAS_DMA in the first place was the COMPILE_TEST with
>>>>>>> m32r arch. I dig a bit, and, if any, I think we should use:
>>>>>>> Fixes: eb17726b00b3 ("m32r: add simple dma")
>>>>>>> since this commit adds dummy DMA support for m32r and seems to fix the
>>>>>>> HAS_DMA dependency.
>>>>>>
>>>>>> Ah, I forgot to update the Fixes: tag(s).
>>>>>>
>>>>>> I won't disagree with your Fixes: suggestion (good digging) but
>>>>>> I would probably have used 8d7d11005e930:
>>>>>>      ASoC: atmel: fix build failure
>>>>>> which is the commit that added "depends on HAS_DMA".
>>>>>
>>>>> M32r was not the only platform NO_DMA, so I guess the build would
>>>>> have failed for the others, too (e.g. Sun-3).
>>>>>
>>>>> So the real fix was probably commit f29ab49b5388b2f8 ("dma-mapping:
>>>>> Convert NO_DMA get_dma_ops() into a real dummy"), or one of the
>>>>> related commits adding dummies to subsystems.
>>>>
>>>> Does this mean that some other actions are needed here?
>>>> E.g. revert + a different kind of fix?
>>>
>>> While we can now compile drivers using DMA features on NO_DMA
>>> platforms, thanks to the dummies, it does mean many of these drivers
>>> cannot work on such platforms.  So I think it makes sense to replace
>>> "depends on HAS_DMA" by "depends on HAS_DMA || COMPILE_TEST" if DMA
>>> is not optional to the driver.
>>
>> Hi Geert,
>>
>> Is this what you had in mind?  It seems to work with my (limited)
>> testing.
> 
> Yes. And also for other symbols for drivers that now compile fine
> if !HAS_DMA, thanks to the dummies.
> 
>> --- linux-next-20210907.orig/sound/soc/atmel/Kconfig
>> +++ linux-next-20210907/sound/soc/atmel/Kconfig
>> @@ -11,6 +11,7 @@ if SND_ATMEL_SOC
>>
>>    config SND_ATMEL_SOC_PDC
>>          bool
>> +       depends on HAS_DMA || COMPILE_TEST
>>
>>    config SND_ATMEL_SOC_DMA
>>          bool

Well. Addressing only sound/, only one more patch is needed AFAICT.
For Kconfigs outside of sound/, that would be more of a medium-length
project.


Lightly/successfully build-tested.

---
  sound/soc/fsl/Kconfig |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-next-20210907.orig/sound/soc/fsl/Kconfig
+++ linux-next-20210907/sound/soc/fsl/Kconfig
@@ -5,7 +5,7 @@ comment "Common SoC Audio options for Fr
  
  config SND_SOC_FSL_ASRC
  	tristate "Asynchronous Sample Rate Converter (ASRC) module support"
-	depends on HAS_DMA
+	depends on HAS_DMA || COMPILE_TEST
  	select REGMAP_MMIO
  	select SND_SOC_GENERIC_DMAENGINE_PCM
  	help


  reply	other threads:[~2021-09-10  1:53 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-07 21:47 [PATCH v3] ASoC: atmel: ATMEL drivers don't need HAS_DMA Randy Dunlap
2021-07-07 21:47 ` Randy Dunlap
2021-07-07 21:59 ` Alexandre Belloni
2021-07-07 21:59   ` Alexandre Belloni
2021-07-08  8:19 ` Codrin.Ciubotariu
2021-07-08  8:19   ` Codrin.Ciubotariu
2021-07-08 16:50   ` Randy Dunlap
2021-07-08 16:50     ` Randy Dunlap
2021-09-02 16:44     ` Geert Uytterhoeven
2021-09-02 16:44       ` Geert Uytterhoeven
2021-09-03 19:53       ` Randy Dunlap
2021-09-03 19:53         ` Randy Dunlap
2021-09-06  7:14         ` Geert Uytterhoeven
2021-09-06  7:14           ` Geert Uytterhoeven
2021-09-08 20:14           ` Randy Dunlap
2021-09-08 20:14             ` Randy Dunlap
2021-09-09  7:22             ` Geert Uytterhoeven
2021-09-09  7:22               ` Geert Uytterhoeven
2021-09-10  1:53               ` Randy Dunlap [this message]
2021-09-10  1:53                 ` Randy Dunlap
2021-07-12 10:46 ` Mark Brown
2021-07-12 10:46   ` Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9c1bbf15-ebba-e754-8fac-9cc7b218651c@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=Codrin.Ciubotariu@microchip.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mirq-linux@rere.qmqm.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.