mbox series

[SRU,OEM-5.10,00/21] alsa/sdw: add support for tgl_3_in_1_sdca soundwire machine

Message ID 20201204024132.12905-1-hui.wang@canonical.com
Headers show
Series alsa/sdw: add support for tgl_3_in_1_sdca soundwire machine | expand

Message

Hui Wang Dec. 4, 2020, 2:41 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1906738

[Impact]
We need to enable a Dell soundwire machine in the OEM project, but
the soundwire design is different from previous generation, it follows
soundwire sdca spec. both ubuntu kernel and upstream kernel don't have
driver for soundwire sdca yet, so the audio device on this machine
can't be detected.

[Fix]
backport 20 patches from the kernel git tree of intel sof/project

[Test]
After booting up, we could see the sound card by running
pacmd list-cards, and there is speaker, headphone, dmic and headset-mic
on this sound card, test playback and record, all worked well.

[Where problems could occur]
The patches change some soundwire bus driver and alsa intel asoc
machine driver, it could make the sound stop working on old
soundwire machines. But this possibility is very low since we
tested these patches on Dell soundwire machines.



Bard Liao (2):
  UBUNTU: SAUCE: soundwire/regmap: use _no_pm functions in
    regmap_read/write
  UBUNTU: SAUCE: regmap: sdw: use no_pm routines for SoundWire 1.2 MBQ

Hui Wang (1):
  UBUNTU: [config] Enable sdw_sdca codec and machine driver

Jack Yu (1):
  UBUNTU: SAUCE: ASoC/SoundWire: rt715-sdca: First version of rt715 sdw
    sdca codec driver

Pierre-Louis Bossart (15):
  UBUNTU: SAUCE: soundwire: SDCA: detect sdca_cascade interrupt
  UBUNTU: SAUCE: regmap: sdw: add required header files
  UBUNTU: SAUCE: soundwire: SDCA: add helper macro to access controls
  UBUNTU: SAUCE: regmap/SoundWire: sdw: add support for SoundWire 1.2
    MBQ
  UBUNTU: SAUCE: soundwire: bus: add comments to explain interrupt loop
    filter
  UBUNTU: SAUCE: soundwire: bus: reset slave_notify status at each loop
  UBUNTU: SAUCE: soundwire: registers: add definitions for clearable
    interrupt fields
  UBUNTU: SAUCE: soundwire: bus: only clear valid DP0 interrupts
  UBUNTU: SAUCE: soundwire: bus: only clear valid DPN interrupts
  UBUNTU: SAUCE: soundwire: master: use pm_runtime_set_active() on add
  UBUNTU: SAUCE: soundwire: bus: use sdw_update_no_pm when initializing
    a device
  UBUNTU: SAUCE: soundwire: bus: use sdw_write_no_pm when setting the
    bus scale registers
  UBUNTU: SAUCE: soundwire: bus: use no_pm IO routines for all interrupt
    handling
  UBUNTU: SAUCE: soundwire: bus: fix confusion on device used by
    pm_runtime
  UBUNTU: SAUCE: soundwire: bus: clarify dev_err/dbg device references

Shuming Fan (2):
  UBUNTU: SAUCE: ASoC/SoundWire: rt1316: Add RT1316 SDCA vendor-specific
    driver
  UBUNTU: SAUCE: ASoC/SoundWire: rt711-sdca: Add RT711 SDCA
    vendor-specific driver

 debian.oem/config/annotations           |   11 +-
 debian.oem/config/config.common.ubuntu  |    8 +-
 drivers/base/regmap/Kconfig             |    6 +-
 drivers/base/regmap/Makefile            |    1 +
 drivers/base/regmap/regmap-sdw-mbq.c    |  101 ++
 drivers/base/regmap/regmap-sdw.c        |    6 +-
 drivers/soundwire/bus.c                 |  182 ++-
 drivers/soundwire/master.c              |   14 +
 include/linux/regmap.h                  |   35 +
 include/linux/soundwire/sdw.h           |    6 +
 include/linux/soundwire/sdw_registers.h |   43 +
 sound/soc/codecs/Kconfig                |   20 +
 sound/soc/codecs/Makefile               |    6 +
 sound/soc/codecs/rt1316-sdw.c           |  756 ++++++++++++
 sound/soc/codecs/rt1316-sdw.h           |  115 ++
 sound/soc/codecs/rt711-sdca-sdw.c       |  424 +++++++
 sound/soc/codecs/rt711-sdca-sdw.h       |  101 ++
 sound/soc/codecs/rt711-sdca.c           | 1482 +++++++++++++++++++++++
 sound/soc/codecs/rt711-sdca.h           |  246 ++++
 sound/soc/codecs/rt715-sdca-sdw.c       |  278 +++++
 sound/soc/codecs/rt715-sdca-sdw.h       |  170 +++
 sound/soc/codecs/rt715-sdca.c           |  936 ++++++++++++++
 sound/soc/codecs/rt715-sdca.h           |  124 ++
 sound/soc/codecs/rt715.h                |    1 -
 24 files changed, 5002 insertions(+), 70 deletions(-)
 create mode 100644 drivers/base/regmap/regmap-sdw-mbq.c
 create mode 100644 sound/soc/codecs/rt1316-sdw.c
 create mode 100644 sound/soc/codecs/rt1316-sdw.h
 create mode 100644 sound/soc/codecs/rt711-sdca-sdw.c
 create mode 100644 sound/soc/codecs/rt711-sdca-sdw.h
 create mode 100644 sound/soc/codecs/rt711-sdca.c
 create mode 100644 sound/soc/codecs/rt711-sdca.h
 create mode 100644 sound/soc/codecs/rt715-sdca-sdw.c
 create mode 100644 sound/soc/codecs/rt715-sdca-sdw.h
 create mode 100644 sound/soc/codecs/rt715-sdca.c
 create mode 100644 sound/soc/codecs/rt715-sdca.h

Comments

Timo Aaltonen Dec. 8, 2020, 2:03 p.m. UTC | #1
On 4.12.2020 4.41, Hui Wang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1906738
> 
> [Impact]
> We need to enable a Dell soundwire machine in the OEM project, but
> the soundwire design is different from previous generation, it follows
> soundwire sdca spec. both ubuntu kernel and upstream kernel don't have
> driver for soundwire sdca yet, so the audio device on this machine
> can't be detected.
> 
> [Fix]
> backport 20 patches from the kernel git tree of intel sof/project
> 
> [Test]
> After booting up, we could see the sound card by running
> pacmd list-cards, and there is speaker, headphone, dmic and headset-mic
> on this sound card, test playback and record, all worked well.
> 
> [Where problems could occur]
> The patches change some soundwire bus driver and alsa intel asoc
> machine driver, it could make the sound stop working on old
> soundwire machines. But this possibility is very low since we
> tested these patches on Dell soundwire machines.
> 
> 
> 
> Bard Liao (2):
>    UBUNTU: SAUCE: soundwire/regmap: use _no_pm functions in
>      regmap_read/write
>    UBUNTU: SAUCE: regmap: sdw: use no_pm routines for SoundWire 1.2 MBQ
> 
> Hui Wang (1):
>    UBUNTU: [config] Enable sdw_sdca codec and machine driver
> 
> Jack Yu (1):
>    UBUNTU: SAUCE: ASoC/SoundWire: rt715-sdca: First version of rt715 sdw
>      sdca codec driver
> 
> Pierre-Louis Bossart (15):
>    UBUNTU: SAUCE: soundwire: SDCA: detect sdca_cascade interrupt
>    UBUNTU: SAUCE: regmap: sdw: add required header files
>    UBUNTU: SAUCE: soundwire: SDCA: add helper macro to access controls
>    UBUNTU: SAUCE: regmap/SoundWire: sdw: add support for SoundWire 1.2
>      MBQ
>    UBUNTU: SAUCE: soundwire: bus: add comments to explain interrupt loop
>      filter
>    UBUNTU: SAUCE: soundwire: bus: reset slave_notify status at each loop
>    UBUNTU: SAUCE: soundwire: registers: add definitions for clearable
>      interrupt fields
>    UBUNTU: SAUCE: soundwire: bus: only clear valid DP0 interrupts
>    UBUNTU: SAUCE: soundwire: bus: only clear valid DPN interrupts
>    UBUNTU: SAUCE: soundwire: master: use pm_runtime_set_active() on add
>    UBUNTU: SAUCE: soundwire: bus: use sdw_update_no_pm when initializing
>      a device
>    UBUNTU: SAUCE: soundwire: bus: use sdw_write_no_pm when setting the
>      bus scale registers
>    UBUNTU: SAUCE: soundwire: bus: use no_pm IO routines for all interrupt
>      handling
>    UBUNTU: SAUCE: soundwire: bus: fix confusion on device used by
>      pm_runtime
>    UBUNTU: SAUCE: soundwire: bus: clarify dev_err/dbg device references
> 
> Shuming Fan (2):
>    UBUNTU: SAUCE: ASoC/SoundWire: rt1316: Add RT1316 SDCA vendor-specific
>      driver
>    UBUNTU: SAUCE: ASoC/SoundWire: rt711-sdca: Add RT711 SDCA
>      vendor-specific driver
> 
>   debian.oem/config/annotations           |   11 +-
>   debian.oem/config/config.common.ubuntu  |    8 +-
>   drivers/base/regmap/Kconfig             |    6 +-
>   drivers/base/regmap/Makefile            |    1 +
>   drivers/base/regmap/regmap-sdw-mbq.c    |  101 ++
>   drivers/base/regmap/regmap-sdw.c        |    6 +-
>   drivers/soundwire/bus.c                 |  182 ++-
>   drivers/soundwire/master.c              |   14 +
>   include/linux/regmap.h                  |   35 +
>   include/linux/soundwire/sdw.h           |    6 +
>   include/linux/soundwire/sdw_registers.h |   43 +
>   sound/soc/codecs/Kconfig                |   20 +
>   sound/soc/codecs/Makefile               |    6 +
>   sound/soc/codecs/rt1316-sdw.c           |  756 ++++++++++++
>   sound/soc/codecs/rt1316-sdw.h           |  115 ++
>   sound/soc/codecs/rt711-sdca-sdw.c       |  424 +++++++
>   sound/soc/codecs/rt711-sdca-sdw.h       |  101 ++
>   sound/soc/codecs/rt711-sdca.c           | 1482 +++++++++++++++++++++++
>   sound/soc/codecs/rt711-sdca.h           |  246 ++++
>   sound/soc/codecs/rt715-sdca-sdw.c       |  278 +++++ >   sound/soc/codecs/rt715-sdca-sdw.h       |  170 +++
>   sound/soc/codecs/rt715-sdca.c           |  936 ++++++++++++++
>   sound/soc/codecs/rt715-sdca.h           |  124 ++
>   sound/soc/codecs/rt715.h                |    1 -
>   24 files changed, 5002 insertions(+), 70 deletions(-)
>   create mode 100644 drivers/base/regmap/regmap-sdw-mbq.c
>   create mode 100644 sound/soc/codecs/rt1316-sdw.c
>   create mode 100644 sound/soc/codecs/rt1316-sdw.h
>   create mode 100644 sound/soc/codecs/rt711-sdca-sdw.c
>   create mode 100644 sound/soc/codecs/rt711-sdca-sdw.h
>   create mode 100644 sound/soc/codecs/rt711-sdca.c
>   create mode 100644 sound/soc/codecs/rt711-sdca.h
>   create mode 100644 sound/soc/codecs/rt715-sdca-sdw.c
>   create mode 100644 sound/soc/codecs/rt715-sdca-sdw.h
>   create mode 100644 sound/soc/codecs/rt715-sdca.c
>   create mode 100644 sound/soc/codecs/rt715-sdca.h
> 

Applied to oem-5.10, thanks.

Any chance these will go in 5.11? Shouldn't we get them in 
hirsute/unstable too?
Hui Wang Dec. 9, 2020, 1:55 a.m. UTC | #2
On 12/8/20 10:03 PM, Timo Aaltonen wrote:
> On 4.12.2020 4.41, Hui Wang wrote:
>> BugLink: https://bugs.launchpad.net/bugs/1906738
>>
>> [Impact]
>> We need to enable a Dell soundwire machine in the OEM project, but
>> the soundwire design is different from previous generation, it follows
>> soundwire sdca spec. both ubuntu kernel and upstream kernel don't have
>> driver for soundwire sdca yet, so the audio device on this machine
>> can't be detected.
>>
>> [Fix]
>> backport 20 patches from the kernel git tree of intel sof/project
>>
>> [Test]
>> After booting up, we could see the sound card by running
>> pacmd list-cards, and there is speaker, headphone, dmic and headset-mic
>> on this sound card, test playback and record, all worked well.
>>
>> [Where problems could occur]
>> The patches change some soundwire bus driver and alsa intel asoc
>> machine driver, it could make the sound stop working on old
>> soundwire machines. But this possibility is very low since we
>> tested these patches on Dell soundwire machines.
>>
>>
>>
>> Bard Liao (2):
>>    UBUNTU: SAUCE: soundwire/regmap: use _no_pm functions in
>>      regmap_read/write
>>    UBUNTU: SAUCE: regmap: sdw: use no_pm routines for SoundWire 1.2 MBQ
>>
>> Hui Wang (1):
>>    UBUNTU: [config] Enable sdw_sdca codec and machine driver
>>
>> Jack Yu (1):
>>    UBUNTU: SAUCE: ASoC/SoundWire: rt715-sdca: First version of rt715 sdw
>>      sdca codec driver
>>
>> Pierre-Louis Bossart (15):
>>    UBUNTU: SAUCE: soundwire: SDCA: detect sdca_cascade interrupt
>>    UBUNTU: SAUCE: regmap: sdw: add required header files
>>    UBUNTU: SAUCE: soundwire: SDCA: add helper macro to access controls
>>    UBUNTU: SAUCE: regmap/SoundWire: sdw: add support for SoundWire 1.2
>>      MBQ
>>    UBUNTU: SAUCE: soundwire: bus: add comments to explain interrupt loop
>>      filter
>>    UBUNTU: SAUCE: soundwire: bus: reset slave_notify status at each loop
>>    UBUNTU: SAUCE: soundwire: registers: add definitions for clearable
>>      interrupt fields
>>    UBUNTU: SAUCE: soundwire: bus: only clear valid DP0 interrupts
>>    UBUNTU: SAUCE: soundwire: bus: only clear valid DPN interrupts
>>    UBUNTU: SAUCE: soundwire: master: use pm_runtime_set_active() on add
>>    UBUNTU: SAUCE: soundwire: bus: use sdw_update_no_pm when initializing
>>      a device
>>    UBUNTU: SAUCE: soundwire: bus: use sdw_write_no_pm when setting the
>>      bus scale registers
>>    UBUNTU: SAUCE: soundwire: bus: use no_pm IO routines for all 
>> interrupt
>>      handling
>>    UBUNTU: SAUCE: soundwire: bus: fix confusion on device used by
>>      pm_runtime
>>    UBUNTU: SAUCE: soundwire: bus: clarify dev_err/dbg device references
>>
>> Shuming Fan (2):
>>    UBUNTU: SAUCE: ASoC/SoundWire: rt1316: Add RT1316 SDCA 
>> vendor-specific
>>      driver
>>    UBUNTU: SAUCE: ASoC/SoundWire: rt711-sdca: Add RT711 SDCA
>>      vendor-specific driver
>>
>>   debian.oem/config/annotations           |   11 +-
>>   debian.oem/config/config.common.ubuntu  |    8 +-
>>   drivers/base/regmap/Kconfig             |    6 +-
>>   drivers/base/regmap/Makefile            |    1 +
>>   drivers/base/regmap/regmap-sdw-mbq.c    |  101 ++
>>   drivers/base/regmap/regmap-sdw.c        |    6 +-
>>   drivers/soundwire/bus.c                 |  182 ++-
>>   drivers/soundwire/master.c              |   14 +
>>   include/linux/regmap.h                  |   35 +
>>   include/linux/soundwire/sdw.h           |    6 +
>>   include/linux/soundwire/sdw_registers.h |   43 +
>>   sound/soc/codecs/Kconfig                |   20 +
>>   sound/soc/codecs/Makefile               |    6 +
>>   sound/soc/codecs/rt1316-sdw.c           |  756 ++++++++++++
>>   sound/soc/codecs/rt1316-sdw.h           |  115 ++
>>   sound/soc/codecs/rt711-sdca-sdw.c       |  424 +++++++
>>   sound/soc/codecs/rt711-sdca-sdw.h       |  101 ++
>>   sound/soc/codecs/rt711-sdca.c           | 1482 +++++++++++++++++++++++
>>   sound/soc/codecs/rt711-sdca.h           |  246 ++++
>>   sound/soc/codecs/rt715-sdca-sdw.c       |  278 +++++ > 
>> sound/soc/codecs/rt715-sdca-sdw.h       |  170 +++
>>   sound/soc/codecs/rt715-sdca.c           |  936 ++++++++++++++
>>   sound/soc/codecs/rt715-sdca.h           |  124 ++
>>   sound/soc/codecs/rt715.h                |    1 -
>>   24 files changed, 5002 insertions(+), 70 deletions(-)
>>   create mode 100644 drivers/base/regmap/regmap-sdw-mbq.c
>>   create mode 100644 sound/soc/codecs/rt1316-sdw.c
>>   create mode 100644 sound/soc/codecs/rt1316-sdw.h
>>   create mode 100644 sound/soc/codecs/rt711-sdca-sdw.c
>>   create mode 100644 sound/soc/codecs/rt711-sdca-sdw.h
>>   create mode 100644 sound/soc/codecs/rt711-sdca.c
>>   create mode 100644 sound/soc/codecs/rt711-sdca.h
>>   create mode 100644 sound/soc/codecs/rt715-sdca-sdw.c
>>   create mode 100644 sound/soc/codecs/rt715-sdca-sdw.h
>>   create mode 100644 sound/soc/codecs/rt715-sdca.c
>>   create mode 100644 sound/soc/codecs/rt715-sdca.h
>>
>
> Applied to oem-5.10, thanks.
>
> Any chance these will go in 5.11? Shouldn't we get them in 
> hirsute/unstable too?

Intel said these patches will be in 5.11, and these patches could be 
changed before they are officially merged to upstream kernel. My plan is 
after the patches are merged to upstream, I will check hirsute/unstable 
kernel, if some patches are not in it, I will backport the upstreamed 
patch to hirsute/unstable.

Thanks.

>
>