On 2022-07-20 6:00 PM, Pierre-Louis Bossart wrote:
On 7/20/22 10:39, Cezary Rojewski wrote:
On 2022-07-20 3:13 PM, Takashi Iwai wrote:
On Wed, 20 Jul 2022 15:06:20 +0200,
Cezary Rojewski wrote:
Refactor snd_hdac_ext_bus_device_init() so that it makes use of
snd_hda_codec_device_init() to create and initialize new codec device.
Causes the latter to become the sole codec device constructor.
Users of the refactored function are updated accordingly and now also
take responsibility for assigning driver's private data as that task is
no longer performed by hdac_hda_dev_probe().
Hrm, this doesn't look really right. It means you'll introduce a hard
dependency chain in a reverse order: snd-hda-ext-core ->
snd-hda-codec.
Originally, the ext bus code was written completely independent from
the legacy HD-audio implementations, and hdac-hda driver was a kind of
wrapper / bridge for the legacy codec over the ext bus. If we want
change this rule and make the legacy HD-audio codec always tied with
the ext bus, a likely better way would be to call
snd_hda_codec_device_init() in the caller's side (e.g. skl or sof),
then pass the newly created codec object to
snd_hdac_ext_bus_device_init() for further initialization.
Agree. That or drop the snd_hdac_ext_bus_device_init() entirely. Will
send an update soon.
In regard to the other subject, my plan:
- separate code used by both ALSA/ASoC into sound/hda (this includes
many hda_codec functions)
- combine hda_bus and hdac_bus
- combine hda_codec and hdac_device
- drop HDA_DEV_ASOC
- drop hdac_hda/hdac_hdmi (once skylake-driver is gone; sof will be
updated accordingly)
the skylake driver cannot be removed until you have evidence that users
have switched, and SOF has other priorities that will likely conflict
with that goal. I don't even know what this 'drop hdac_hda' idea means
in detail, we need to keep an ASoC-based codec and the split between
platform/codec/machine. We are not going to move the HDaudio codec
management logic inside the SOF driver if that was the intent. The SOF
driver will focus on host/controller/DSP handling.
The evidence will be there : )
Also, there is nothing stopping us from adjusting skylake-driver however
we see fit along the road. sound/soc/codecs/hda.c is a clear winner here.
And SOF is just breaking compatibility in several places due to IPC4 and
stuff, no? There is no reason not to update sof along the road too - so
it makes use of the aforementioned codec driver.
<story does not end here>
I strongly recommend that we add no dependencies between hdac_ext and
hda_codec. To be clearer, we don't want to limit the hdac_ext bus and
stream management to platforms with HDaudio codecs.
Yeah, we all agree here - snd_hdac_ext_bus_device_init() will be
removed. snd_hda_codec_device_init() + registration will be used
directly instead.