Message ID | 20230323054452.1543233-1-yung-chuan.liao@linux.intel.com |
---|---|
Headers | show |
Series | ASoC/soundwire: add support for ACE2.x | expand |
The patches will not compile due to missed dependency but welcome review on the code changes. > -----Original Message----- > From: Bard Liao <yung-chuan.liao@linux.intel.com> > Sent: Thursday, March 23, 2023 1:45 PM > To: alsa-devel@alsa-project.org; vkoul@kernel.org; broonie@kernel.org > Cc: vinod.koul@linaro.org; linux-kernel@vger.kernel.org; pierre- > louis.bossart@linux.intel.com; Liao, Bard <bard.liao@intel.com>; > tiwai@suse.de > Subject: [PATCH 00/20] ASoC/soundwire: add support for ACE2.x > > This series uses the abstraction added in past kernel cycles to provide > support for the ACE2.x integration. The existing SHIM and Cadence > registers are now split in 3 (SHIM, IP, SHIM vendor-specific), with some > parts also moved to the HDaudio Extended Multi link structures. Nothing > fundamentally different except for the register map. > > This series only provides the basic mechanisms to expose SoundWire-based > DAIs. The PCI parts and DSP management will be contributed later, and the > DAI ops are now empty as well. > > The change is mainly on SoundWire. It would be better to go through > SoundWire tree. > > Pierre-Louis Bossart (20): > ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake > soundwire: intel: add ACE2.x SHIM definitions > soundwire: intel_ace2x: add empty new ops for LunarLake > soundwire/ASOC: Intel: update offsets for LunarLake > soundwire: intel/cadence: set ip_offset at run-time > ASoC/soundwire: intel: pass hdac_bus pointer for link management > soundwire: intel: add eml_lock in the interface for new platforms > ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer > soundwire: intel_init: use eml_lock parameter > soundwire: intel_ace2x: add debugfs support > soundwire: intel_ace2x: add link power-up/down helpers > soundwire: intel_ace2x: set SYNCPRD before powering-up > soundwire: intel_ace2x: configure link PHY > soundwire: intel_ace2x: add DAI registration > soundwire: intel_ace2x: add sync_arm/sync_go helpers > soundwire: intel_ace2x: use common helpers for bus start/stop > soundwire: intel_ace2x: enable wake support > soundwire: intel_ace2x: add check_cmdsync_unlocked helper > soundwire: bus: add new manager callback to deal with peripheral > enumeration > soundwire: intel_ace2x: add new_peripheral_assigned callback > > drivers/soundwire/Makefile | 3 +- > drivers/soundwire/bus.c | 3 + > drivers/soundwire/cadence_master.h | 2 + > drivers/soundwire/intel.h | 16 + > drivers/soundwire/intel_ace2x.c | 390 ++++++++++++++++++++++++ > drivers/soundwire/intel_ace2x_debugfs.c | 147 +++++++++ > drivers/soundwire/intel_auxdevice.c | 17 ++ > drivers/soundwire/intel_init.c | 21 +- > include/linux/soundwire/sdw.h | 3 +- > include/linux/soundwire/sdw_intel.h | 88 ++++++ > sound/soc/sof/intel/hda.c | 31 +- > sound/soc/sof/intel/shim.h | 1 + > 12 files changed, 711 insertions(+), 11 deletions(-) > create mode 100644 drivers/soundwire/intel_ace2x.c > create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c > > -- > 2.25.1
On Thu, Mar 23, 2023 at 01:44:36PM +0800, Bard Liao wrote: > From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> > > The previous settings are not applicable, use a flag to determine what > the register layout is. Acked-by: Mark Brown <broonie@kernel.org>
On 23-03-23, 13:44, Bard Liao wrote: > This series uses the abstraction added in past kernel cycles to provide > support for the ACE2.x integration. The existing SHIM and Cadence ACE2..? > registers are now split in 3 (SHIM, IP, SHIM vendor-specific), with some > parts also moved to the HDaudio Extended Multi link structures. Nothing > fundamentally different except for the register map. > > This series only provides the basic mechanisms to expose SoundWire-based > DAIs. The PCI parts and DSP management will be contributed later, and the > DAI ops are now empty as well. > > The change is mainly on SoundWire. It would be better to go through > SoundWire tree. > > Pierre-Louis Bossart (20): > ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake > soundwire: intel: add ACE2.x SHIM definitions > soundwire: intel_ace2x: add empty new ops for LunarLake > soundwire/ASOC: Intel: update offsets for LunarLake > soundwire: intel/cadence: set ip_offset at run-time > ASoC/soundwire: intel: pass hdac_bus pointer for link management > soundwire: intel: add eml_lock in the interface for new platforms > ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer > soundwire: intel_init: use eml_lock parameter > soundwire: intel_ace2x: add debugfs support > soundwire: intel_ace2x: add link power-up/down helpers > soundwire: intel_ace2x: set SYNCPRD before powering-up > soundwire: intel_ace2x: configure link PHY > soundwire: intel_ace2x: add DAI registration > soundwire: intel_ace2x: add sync_arm/sync_go helpers > soundwire: intel_ace2x: use common helpers for bus start/stop > soundwire: intel_ace2x: enable wake support > soundwire: intel_ace2x: add check_cmdsync_unlocked helper > soundwire: bus: add new manager callback to deal with peripheral > enumeration > soundwire: intel_ace2x: add new_peripheral_assigned callback > > drivers/soundwire/Makefile | 3 +- > drivers/soundwire/bus.c | 3 + > drivers/soundwire/cadence_master.h | 2 + > drivers/soundwire/intel.h | 16 + > drivers/soundwire/intel_ace2x.c | 390 ++++++++++++++++++++++++ > drivers/soundwire/intel_ace2x_debugfs.c | 147 +++++++++ > drivers/soundwire/intel_auxdevice.c | 17 ++ > drivers/soundwire/intel_init.c | 21 +- > include/linux/soundwire/sdw.h | 3 +- > include/linux/soundwire/sdw_intel.h | 88 ++++++ > sound/soc/sof/intel/hda.c | 31 +- > sound/soc/sof/intel/shim.h | 1 + > 12 files changed, 711 insertions(+), 11 deletions(-) > create mode 100644 drivers/soundwire/intel_ace2x.c > create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c > > -- > 2.25.1
On 4/12/23 05:07, Vinod Koul wrote: > On 23-03-23, 13:44, Bard Liao wrote: >> This series uses the abstraction added in past kernel cycles to provide >> support for the ACE2.x integration. The existing SHIM and Cadence > > ACE2..? Not sure I get the comment, this refers to the IP version. ACE 2.0 IP used in LunarLake, x refers to future TDB versions. BTW this depends on the series "[PATCH v2 00/18] ASoC: SOF: Intel: hda-mlink: HDaudio multi-link extension update" applied yesterday by Mark. It'd be really nice if we can have this in 6.4-rc1 to continue adding the rest of the Lunar Lake patches. We tried to limit the number of changes impacting both ASoC and SoundWire subsystems but there's mechanically 2 merges needed (ASoC -> SoundWire for the hda-mlink dependency and SoundWire->ASoC for the interface changes below). > >> registers are now split in 3 (SHIM, IP, SHIM vendor-specific), with some >> parts also moved to the HDaudio Extended Multi link structures. Nothing >> fundamentally different except for the register map. >> >> This series only provides the basic mechanisms to expose SoundWire-based >> DAIs. The PCI parts and DSP management will be contributed later, and the >> DAI ops are now empty as well. >> >> The change is mainly on SoundWire. It would be better to go through >> SoundWire tree. >> >> Pierre-Louis Bossart (20): >> ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake >> soundwire: intel: add ACE2.x SHIM definitions >> soundwire: intel_ace2x: add empty new ops for LunarLake >> soundwire/ASOC: Intel: update offsets for LunarLake >> soundwire: intel/cadence: set ip_offset at run-time >> ASoC/soundwire: intel: pass hdac_bus pointer for link management >> soundwire: intel: add eml_lock in the interface for new platforms >> ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer >> soundwire: intel_init: use eml_lock parameter >> soundwire: intel_ace2x: add debugfs support >> soundwire: intel_ace2x: add link power-up/down helpers >> soundwire: intel_ace2x: set SYNCPRD before powering-up >> soundwire: intel_ace2x: configure link PHY >> soundwire: intel_ace2x: add DAI registration >> soundwire: intel_ace2x: add sync_arm/sync_go helpers >> soundwire: intel_ace2x: use common helpers for bus start/stop >> soundwire: intel_ace2x: enable wake support >> soundwire: intel_ace2x: add check_cmdsync_unlocked helper >> soundwire: bus: add new manager callback to deal with peripheral >> enumeration >> soundwire: intel_ace2x: add new_peripheral_assigned callback >> >> drivers/soundwire/Makefile | 3 +- >> drivers/soundwire/bus.c | 3 + >> drivers/soundwire/cadence_master.h | 2 + >> drivers/soundwire/intel.h | 16 + >> drivers/soundwire/intel_ace2x.c | 390 ++++++++++++++++++++++++ >> drivers/soundwire/intel_ace2x_debugfs.c | 147 +++++++++ >> drivers/soundwire/intel_auxdevice.c | 17 ++ >> drivers/soundwire/intel_init.c | 21 +- >> include/linux/soundwire/sdw.h | 3 +- >> include/linux/soundwire/sdw_intel.h | 88 ++++++ >> sound/soc/sof/intel/hda.c | 31 +- >> sound/soc/sof/intel/shim.h | 1 + >> 12 files changed, 711 insertions(+), 11 deletions(-) >> create mode 100644 drivers/soundwire/intel_ace2x.c >> create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c >> >> -- >> 2.25.1 >
On 12-04-23, 09:11, Pierre-Louis Bossart wrote: > > > On 4/12/23 05:07, Vinod Koul wrote: > > On 23-03-23, 13:44, Bard Liao wrote: > >> This series uses the abstraction added in past kernel cycles to provide > >> support for the ACE2.x integration. The existing SHIM and Cadence > > > > ACE2..? > > Not sure I get the comment, this refers to the IP version. What does ACE mean, it should be expanded so that people know what it might refer to..? > > ACE 2.0 IP used in LunarLake, x refers to future TDB versions. > > BTW this depends on the series "[PATCH v2 00/18] ASoC: SOF: Intel: > hda-mlink: HDaudio multi-link extension update" applied yesterday by > Mark. It'd be really nice if we can have this in 6.4-rc1 to continue > adding the rest of the Lunar Lake patches. That should be mentioned in cover, I can ack this if okay and Mark might apply..? or u folks have something else in mind? > > We tried to limit the number of changes impacting both ASoC and > SoundWire subsystems but there's mechanically 2 merges needed (ASoC -> > SoundWire for the hda-mlink dependency and SoundWire->ASoC for the > interface changes below). > > > > >> registers are now split in 3 (SHIM, IP, SHIM vendor-specific), with some > >> parts also moved to the HDaudio Extended Multi link structures. Nothing > >> fundamentally different except for the register map. > >> > >> This series only provides the basic mechanisms to expose SoundWire-based > >> DAIs. The PCI parts and DSP management will be contributed later, and the > >> DAI ops are now empty as well. > >> > >> The change is mainly on SoundWire. It would be better to go through > >> SoundWire tree. > >> > >> Pierre-Louis Bossart (20): > >> ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake > >> soundwire: intel: add ACE2.x SHIM definitions > >> soundwire: intel_ace2x: add empty new ops for LunarLake > >> soundwire/ASOC: Intel: update offsets for LunarLake > >> soundwire: intel/cadence: set ip_offset at run-time > >> ASoC/soundwire: intel: pass hdac_bus pointer for link management > >> soundwire: intel: add eml_lock in the interface for new platforms > >> ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer > >> soundwire: intel_init: use eml_lock parameter > >> soundwire: intel_ace2x: add debugfs support > >> soundwire: intel_ace2x: add link power-up/down helpers > >> soundwire: intel_ace2x: set SYNCPRD before powering-up > >> soundwire: intel_ace2x: configure link PHY > >> soundwire: intel_ace2x: add DAI registration > >> soundwire: intel_ace2x: add sync_arm/sync_go helpers > >> soundwire: intel_ace2x: use common helpers for bus start/stop > >> soundwire: intel_ace2x: enable wake support > >> soundwire: intel_ace2x: add check_cmdsync_unlocked helper > >> soundwire: bus: add new manager callback to deal with peripheral > >> enumeration > >> soundwire: intel_ace2x: add new_peripheral_assigned callback > >> > >> drivers/soundwire/Makefile | 3 +- > >> drivers/soundwire/bus.c | 3 + > >> drivers/soundwire/cadence_master.h | 2 + > >> drivers/soundwire/intel.h | 16 + > >> drivers/soundwire/intel_ace2x.c | 390 ++++++++++++++++++++++++ > >> drivers/soundwire/intel_ace2x_debugfs.c | 147 +++++++++ > >> drivers/soundwire/intel_auxdevice.c | 17 ++ > >> drivers/soundwire/intel_init.c | 21 +- > >> include/linux/soundwire/sdw.h | 3 +- > >> include/linux/soundwire/sdw_intel.h | 88 ++++++ > >> sound/soc/sof/intel/hda.c | 31 +- > >> sound/soc/sof/intel/shim.h | 1 + > >> 12 files changed, 711 insertions(+), 11 deletions(-) > >> create mode 100644 drivers/soundwire/intel_ace2x.c > >> create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c > >> > >> -- > >> 2.25.1 > >
On 4/12/23 10:22, Vinod Koul wrote: > On 12-04-23, 09:11, Pierre-Louis Bossart wrote: >> >> >> On 4/12/23 05:07, Vinod Koul wrote: >>> On 23-03-23, 13:44, Bard Liao wrote: >>>> This series uses the abstraction added in past kernel cycles to provide >>>> support for the ACE2.x integration. The existing SHIM and Cadence >>> >>> ACE2..? >> >> Not sure I get the comment, this refers to the IP version. > > What does ACE mean, it should be expanded so that people know what it > might refer to..? I think at one point it stood for "Audio Converged Engine", which doesn't really clarify anything, does it? It's easier for most people to just refer to cAVS or ACE as a type of IP followed by a version number, and use the mapping between the IP version and end-user device in the PCI descriptors. >> ACE 2.0 IP used in LunarLake, x refers to future TDB versions. >> >> BTW this depends on the series "[PATCH v2 00/18] ASoC: SOF: Intel: >> hda-mlink: HDaudio multi-link extension update" applied yesterday by >> Mark. It'd be really nice if we can have this in 6.4-rc1 to continue >> adding the rest of the Lunar Lake patches. > > That should be mentioned in cover, Yes the cover and some patches miss details, it's hard when you have such a long series to be clear and avoid repetition at the same time... > I can ack this if okay and Mark might apply..? or u folks have something else in mind? that would be ideal, but unfortunately this series will not apply as is on Mark's for-next branch. I just checked, there are multiple conflicts with the intel_bus_common stuff which is missing in Mark's tree. Mark also provided his Acked-by tag already for patches 1/4/6/8, so I was under the impression that these patches would be merged through the soundwire tree. I think what's missing is a tag from Mark to make sure the hda-mlink dependencies are in the soundwire tree? >> >> We tried to limit the number of changes impacting both ASoC and >> SoundWire subsystems but there's mechanically 2 merges needed (ASoC -> >> SoundWire for the hda-mlink dependency and SoundWire->ASoC for the >> interface changes below). >> >>> >>>> registers are now split in 3 (SHIM, IP, SHIM vendor-specific), with some >>>> parts also moved to the HDaudio Extended Multi link structures. Nothing >>>> fundamentally different except for the register map. >>>> >>>> This series only provides the basic mechanisms to expose SoundWire-based >>>> DAIs. The PCI parts and DSP management will be contributed later, and the >>>> DAI ops are now empty as well. >>>> >>>> The change is mainly on SoundWire. It would be better to go through >>>> SoundWire tree. >>>> >>>> Pierre-Louis Bossart (20): >>>> ASoC: SOF: Intel: shim: add enum for ACE 2.0 IP used in LunarLake >>>> soundwire: intel: add ACE2.x SHIM definitions >>>> soundwire: intel_ace2x: add empty new ops for LunarLake >>>> soundwire/ASOC: Intel: update offsets for LunarLake >>>> soundwire: intel/cadence: set ip_offset at run-time >>>> ASoC/soundwire: intel: pass hdac_bus pointer for link management >>>> soundwire: intel: add eml_lock in the interface for new platforms >>>> ASoC: SOF: Intel: hda: retrieve SoundWire eml_lock and pass pointer >>>> soundwire: intel_init: use eml_lock parameter >>>> soundwire: intel_ace2x: add debugfs support >>>> soundwire: intel_ace2x: add link power-up/down helpers >>>> soundwire: intel_ace2x: set SYNCPRD before powering-up >>>> soundwire: intel_ace2x: configure link PHY >>>> soundwire: intel_ace2x: add DAI registration >>>> soundwire: intel_ace2x: add sync_arm/sync_go helpers >>>> soundwire: intel_ace2x: use common helpers for bus start/stop >>>> soundwire: intel_ace2x: enable wake support >>>> soundwire: intel_ace2x: add check_cmdsync_unlocked helper >>>> soundwire: bus: add new manager callback to deal with peripheral >>>> enumeration >>>> soundwire: intel_ace2x: add new_peripheral_assigned callback >>>> >>>> drivers/soundwire/Makefile | 3 +- >>>> drivers/soundwire/bus.c | 3 + >>>> drivers/soundwire/cadence_master.h | 2 + >>>> drivers/soundwire/intel.h | 16 + >>>> drivers/soundwire/intel_ace2x.c | 390 ++++++++++++++++++++++++ >>>> drivers/soundwire/intel_ace2x_debugfs.c | 147 +++++++++ >>>> drivers/soundwire/intel_auxdevice.c | 17 ++ >>>> drivers/soundwire/intel_init.c | 21 +- >>>> include/linux/soundwire/sdw.h | 3 +- >>>> include/linux/soundwire/sdw_intel.h | 88 ++++++ >>>> sound/soc/sof/intel/hda.c | 31 +- >>>> sound/soc/sof/intel/shim.h | 1 + >>>> 12 files changed, 711 insertions(+), 11 deletions(-) >>>> create mode 100644 drivers/soundwire/intel_ace2x.c >>>> create mode 100644 drivers/soundwire/intel_ace2x_debugfs.c >>>> >>>> -- >>>> 2.25.1 >>> >