On 3/12/20 5:01 AM, Srinivas Kandagatla wrote:
There is no point in using update for registers with write mask as 0xFF, this adds unecessary traffic on the bus. Just use sdw_write directly.
well in theory you could have two streams share the same port, that's allowed by the specification.
But since it clearly documented as not supported
/* * Since bus doesn't support sharing a port across two streams, * it is safe to reset this register */
this mask handing is indeed completely overkill.
Acked-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
Signed-off-by: Srinivas Kandagatla srinivas.kandagatla@linaro.org
drivers/soundwire/stream.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c index 00348d1fc606..1b43d03c79ea 100644 --- a/drivers/soundwire/stream.c +++ b/drivers/soundwire/stream.c @@ -313,9 +313,9 @@ static int sdw_enable_disable_slave_ports(struct sdw_bus *bus, * it is safe to reset this register */ if (en)
ret = sdw_update(s_rt->slave, addr, 0xFF, p_rt->ch_mask);
elseret = sdw_write(s_rt->slave, addr, p_rt->ch_mask);
ret = sdw_update(s_rt->slave, addr, 0xFF, 0x0);
ret = sdw_write(s_rt->slave, addr, 0x0);
if (ret < 0) dev_err(&s_rt->slave->dev,
@@ -464,10 +464,9 @@ static int sdw_prep_deprep_slave_ports(struct sdw_bus *bus, addr = SDW_DPN_PREPARECTRL(p_rt->num);
if (prep)
ret = sdw_update(s_rt->slave, addr,
0xFF, p_rt->ch_mask);
elseret = sdw_write(s_rt->slave, addr, p_rt->ch_mask);
ret = sdw_update(s_rt->slave, addr, 0xFF, 0x0);
ret = sdw_write(s_rt->slave, addr, 0x0);
if (ret < 0) { dev_err(&s_rt->slave->dev,