ASoC: hdac_hda: add asoc extension for legacy HDA codec drivers
This patch adds a kernel module which is used by the legacy HDA codec drivers as library. This implements hdac_ext_bus_ops to enable the reuse of legacy HDA codec drivers with ASoC platform drivers. Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Šī revīzija ir iekļauta:

revīziju iesūtīja
Mark Brown

vecāks
00deadb5d8
revīzija
6bae5ea949
@@ -81,6 +81,12 @@ static int hda_codec_driver_probe(struct device *dev)
|
||||
hda_codec_patch_t patch;
|
||||
int err;
|
||||
|
||||
if (codec->bus->core.ext_ops) {
|
||||
if (WARN_ON(!codec->bus->core.ext_ops->hdev_attach))
|
||||
return -EINVAL;
|
||||
return codec->bus->core.ext_ops->hdev_attach(&codec->core);
|
||||
}
|
||||
|
||||
if (WARN_ON(!codec->preset))
|
||||
return -EINVAL;
|
||||
|
||||
@@ -134,6 +140,12 @@ static int hda_codec_driver_remove(struct device *dev)
|
||||
{
|
||||
struct hda_codec *codec = dev_to_hda_codec(dev);
|
||||
|
||||
if (codec->bus->core.ext_ops) {
|
||||
if (WARN_ON(!codec->bus->core.ext_ops->hdev_detach))
|
||||
return -EINVAL;
|
||||
return codec->bus->core.ext_ops->hdev_detach(&codec->core);
|
||||
}
|
||||
|
||||
if (codec->patch_ops.free)
|
||||
codec->patch_ops.free(codec);
|
||||
snd_hda_codec_cleanup_for_unbind(codec);
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user