From: Pierre-Louis Bossart Date: Mon, 29 Apr 2024 00:43:20 +0000 (+0000) Subject: soundwire: intel_ace2.x: add support for DODSE property X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=75933ba58dd49ded547ad0d00c74c0cb862530f9;p=linux.git soundwire: intel_ace2.x: add support for DODSE property Extend previous patches with the DODSE field and property. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Bard Liao Link: https://lore.kernel.org/r/20240429004321.2399754-4-yung-chuan.liao@linux.intel.com Signed-off-by: Vinod Koul --- diff --git a/drivers/soundwire/intel.h b/drivers/soundwire/intel.h index b36d46319f0f3..f58860f192f9c 100644 --- a/drivers/soundwire/intel.h +++ b/drivers/soundwire/intel.h @@ -60,6 +60,7 @@ struct sdw_intel { struct sdw_intel_prop { u16 doais; + u16 dodse; u16 dods; }; diff --git a/drivers/soundwire/intel_ace2x.c b/drivers/soundwire/intel_ace2x.c index 917cc79d4d853..a07fd4a79f00e 100644 --- a/drivers/soundwire/intel_ace2x.c +++ b/drivers/soundwire/intel_ace2x.c @@ -28,15 +28,18 @@ static void intel_shim_vs_init(struct sdw_intel *sdw) struct sdw_bus *bus = &sdw->cdns.bus; struct sdw_intel_prop *intel_prop; u16 doais; + u16 dodse; u16 dods; u16 act; intel_prop = bus->vendor_specific_prop; doais = intel_prop->doais; + dodse = intel_prop->dodse; dods = intel_prop->dods; act = intel_readw(shim_vs, SDW_SHIM2_INTEL_VS_ACTMCTL); u16p_replace_bits(&act, doais, SDW_SHIM2_INTEL_VS_ACTMCTL_DOAIS); + u16p_replace_bits(&act, dodse, SDW_SHIM2_INTEL_VS_ACTMCTL_DODSE); u16p_replace_bits(&act, dods, SDW_SHIM2_INTEL_VS_ACTMCTL_DODS); act |= SDW_SHIM2_INTEL_VS_ACTMCTL_DACTQE; intel_writew(shim_vs, SDW_SHIM2_INTEL_VS_ACTMCTL, act); diff --git a/drivers/soundwire/intel_auxdevice.c b/drivers/soundwire/intel_auxdevice.c index 697d640707940..7310441050b14 100644 --- a/drivers/soundwire/intel_auxdevice.c +++ b/drivers/soundwire/intel_auxdevice.c @@ -160,18 +160,23 @@ static int sdw_master_read_intel_prop(struct sdw_bus *bus) /* initialize with hardware defaults, in case the properties are not found */ intel_prop->doais = 0x3; + intel_prop->dodse = 0x0; intel_prop->dods = 0x1; fwnode_property_read_u16(link, "intel-sdw-doais", &intel_prop->doais); + fwnode_property_read_u16(link, + "intel-sdw-dodse", + &intel_prop->dodse); fwnode_property_read_u16(link, "intel-sdw-dods", &intel_prop->dods); bus->vendor_specific_prop = intel_prop; - dev_dbg(bus->dev, "doais %#x dods %#x\n", + dev_dbg(bus->dev, "doais %#x dodse %#x dods %#x\n", intel_prop->doais, + intel_prop->dodse, intel_prop->dods); return 0;