[alsa-devel] [PATCH v2 08/14] soundwire: Add Slave status handling helpers

Vinod Koul vinod.koul at intel.com
Thu Nov 16 18:08:50 CET 2017


On Thu, Nov 16, 2017 at 04:05:29PM +0000, Srinivas Kandagatla wrote:
> 
> Minor Comment!
> 
> On 10/11/17 11:49, Vinod Koul wrote:
> >From: Sanyog Kale <sanyog.r.kale at intel.com>
> >
> >SoundWire Slaves report status to bus. Add helpers to handle
> >the status changes.
> >
> >Signed-off-by: Hardik T Shah <hardik.t.shah at intel.com>
> >Signed-off-by: Sanyog Kale <sanyog.r.kale at intel.com>
> >Signed-off-by: Vinod Koul <vinod.koul at intel.com>
> >---
> 
> >+static int sdw_compare_devid(struct sdw_slave *slave, struct sdw_slave_id id)
> >+{
> >+
> >+	if ((slave->id.unique_id != id.unique_id) ||
> >+	    (slave->id.mfg_id != id.mfg_id) ||
> >+	    (slave->id.part_id != id.part_id) ||
> >+	    (slave->id.class_id != id.class_id))
> >+		return -ENODEV;
> >+
> >+	return 0;
> >+}
> >+
> >+/* called with bus_lock held */
> >+static int sdw_get_device_num(struct sdw_slave *slave)
> >+{
> If we use ida we would not need this function.

Not really, find_first_zero_bit and set_bit will be replaced by get_ida()

the bound check will still be required as we have finite set of ids to work
with. Nevertheless I will check if it helps in this case and move if
helpful.

> >+	int bit;
> >+
> >+	bit = find_first_zero_bit(slave->bus->assigned, SDW_MAX_DEVICES);
> >+	if (bit == SDW_MAX_DEVICES) {
> >+		bit = -ENODEV;
> >+		goto err;
> >+	}
> >+
> >+	/*
> >+	 * Do not update dev_num in Slave data structure here,
> >+	 * Update once program dev_num is successful
> >+	 */
> >+	set_bit(bit, slave->bus->assigned);
> >+
> >+err:
> >+	return bit;
> >+}

-- 
~Vinod


More information about the Alsa-devel mailing list