soundwire: Add slave status handling

Add status handling API sdw_handle_slave_status() to handle
Slave status changes.

Signed-off-by: Hardik T Shah <hardik.t.shah@intel.com>
Signed-off-by: Sanyog Kale <sanyog.r.kale@intel.com>
Reviewed-by: Philippe Ombredanne <pombredanne@nexb.com>
Acked-By: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Vinod Koul
2017-12-14 11:19:40 +05:30
committed by Greg Kroah-Hartman
parent d52d7a1be0
commit b0a9c37b01
3 changed files with 401 additions and 0 deletions

View File

@@ -330,12 +330,29 @@ struct sdw_slave_id {
__u8 sdw_version:4;
};
/**
* struct sdw_slave_intr_status - Slave interrupt status
* @control_port: control port status
* @port: data port status
*/
struct sdw_slave_intr_status {
u8 control_port;
u8 port[15];
};
/**
* struct sdw_slave_ops - Slave driver callback ops
* @read_prop: Read Slave properties
* @interrupt_callback: Device interrupt notification (invoked in thread
* context)
* @update_status: Update Slave status
*/
struct sdw_slave_ops {
int (*read_prop)(struct sdw_slave *sdw);
int (*interrupt_callback)(struct sdw_slave *slave,
struct sdw_slave_intr_status *status);
int (*update_status)(struct sdw_slave *slave,
enum sdw_slave_status status);
};
/**
@@ -382,6 +399,9 @@ struct sdw_driver {
{ .mfg_id = (_mfg_id), .part_id = (_part_id), \
.driver_data = (unsigned long)(_drv_data) }
int sdw_handle_slave_status(struct sdw_bus *bus,
enum sdw_slave_status status[]);
/*
* SDW master structures and APIs
*/