soundwire: bus: remove sdw_defer argument in sdw_transfer_defer()
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Thu, 19 Jan 2023 07:32:09 +0000 (15:32 +0800)
committerVinod Koul <vkoul@kernel.org>
Tue, 31 Jan 2023 14:27:17 +0000 (19:57 +0530)
There's no point in passing an argument that is a pointer to a bus
member. We can directly get the member and do an indirection when
needed.

This is a first step before simplifying the hardware-specific
callbacks further.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20230119073211.85979-3-yung-chuan.liao@linux.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/soundwire/bus.c
drivers/soundwire/bus.h
drivers/soundwire/stream.c

index b840322..9eb54dc 100644 (file)
@@ -225,9 +225,9 @@ static inline int do_transfer(struct sdw_bus *bus, struct sdw_msg *msg)
 }
 
 static inline int do_transfer_defer(struct sdw_bus *bus,
-                                   struct sdw_msg *msg,
-                                   struct sdw_defer *defer)
+                                   struct sdw_msg *msg)
 {
+       struct sdw_defer *defer = &bus->defer_msg;
        int retry = bus->prop.err_threshold;
        enum sdw_command_response resp;
        int ret = 0, i;
@@ -315,19 +315,17 @@ EXPORT_SYMBOL(sdw_show_ping_status);
  * sdw_transfer_defer() - Asynchronously transfer message to a SDW Slave device
  * @bus: SDW bus
  * @msg: SDW message to be xfered
- * @defer: Defer block for signal completion
  *
  * Caller needs to hold the msg_lock lock while calling this
  */
-int sdw_transfer_defer(struct sdw_bus *bus, struct sdw_msg *msg,
-                      struct sdw_defer *defer)
+int sdw_transfer_defer(struct sdw_bus *bus, struct sdw_msg *msg)
 {
        int ret;
 
        if (!bus->ops->xfer_msg_defer)
                return -ENOTSUPP;
 
-       ret = do_transfer_defer(bus, msg, defer);
+       ret = do_transfer_defer(bus, msg);
        if (ret != 0 && ret != -ENODATA)
                dev_err(bus->dev, "Defer trf on Slave %d failed:%d\n",
                        msg->dev_num, ret);
index 7631ef5..96927a1 100644 (file)
@@ -151,8 +151,7 @@ int sdw_configure_dpn_intr(struct sdw_slave *slave, int port,
                           bool enable, int mask);
 
 int sdw_transfer(struct sdw_bus *bus, struct sdw_msg *msg);
-int sdw_transfer_defer(struct sdw_bus *bus, struct sdw_msg *msg,
-                      struct sdw_defer *defer);
+int sdw_transfer_defer(struct sdw_bus *bus, struct sdw_msg *msg);
 
 #define SDW_READ_INTR_CLEAR_RETRY      10
 
index 9c13dbd..2e39587 100644 (file)
@@ -684,8 +684,6 @@ static int sdw_bank_switch(struct sdw_bus *bus, int m_rt_count)
        if (!wr_msg)
                return -ENOMEM;
 
-       bus->defer_msg.msg = wr_msg;
-
        wbuf = kzalloc(sizeof(*wbuf), GFP_KERNEL);
        if (!wbuf) {
                ret = -ENOMEM;
@@ -713,7 +711,7 @@ static int sdw_bank_switch(struct sdw_bus *bus, int m_rt_count)
        multi_link = bus->multi_link && (m_rt_count >= bus->hw_sync_min_links);
 
        if (multi_link)
-               ret = sdw_transfer_defer(bus, wr_msg, &bus->defer_msg);
+               ret = sdw_transfer_defer(bus, wr_msg);
        else
                ret = sdw_transfer(bus, wr_msg);