Loading drivers/soundwire/soundwire.c +27 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,33 @@ int swr_read(struct swr_device *dev, u8 dev_num, u16 reg_addr, } EXPORT_SYMBOL(swr_read); /** * swr_bulk_write - write soundwire slave device registers * @dev: pointer to soundwire slave device * @dev_num: logical device num of soundwire slave device * @reg_addr: register address of soundwire slave device * @buf: contains value of register address * @len: indicates number of registers * * This API will write the value of the register address to * soundwire slave device */ int swr_bulk_write(struct swr_device *dev, u8 dev_num, void *reg, const void *buf, size_t len) { struct swr_master *master; if (!dev || !dev->master) return -EINVAL; master = dev->master; if (master->bulk_write) return master->bulk_write(master, dev_num, reg, buf, len); return -ENOSYS; } EXPORT_SYMBOL(swr_bulk_write); /** * swr_write - write soundwire slave device registers * @dev: pointer to soundwire slave device Loading include/linux/soundwire/soundwire.h +5 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ struct swr_master { void *buf, u32 len); int (*write)(struct swr_master *mstr, u8 dev_num, u16 reg_addr, const void *buf); int (*bulk_write)(struct swr_master *master, u8 dev_num, void *reg, const void *buf, size_t len); int (*get_logical_dev_num)(struct swr_master *mstr, u64 dev_id, u8 *dev_num); }; Loading Loading @@ -259,6 +261,9 @@ extern int swr_read(struct swr_device *dev, u8 dev_num, u16 reg_addr, extern int swr_write(struct swr_device *dev, u8 dev_num, u16 reg_addr, const void *buf); extern int swr_bulk_write(struct swr_device *dev, u8 dev_num, void *reg_addr, const void *buf, size_t len); extern int swr_connect_port(struct swr_device *dev, u8 *port_id, u8 num_port, u8 *ch_mask, u32 *ch_rate, u8 *num_ch); Loading Loading
drivers/soundwire/soundwire.c +27 −0 Original line number Diff line number Diff line Loading @@ -456,6 +456,33 @@ int swr_read(struct swr_device *dev, u8 dev_num, u16 reg_addr, } EXPORT_SYMBOL(swr_read); /** * swr_bulk_write - write soundwire slave device registers * @dev: pointer to soundwire slave device * @dev_num: logical device num of soundwire slave device * @reg_addr: register address of soundwire slave device * @buf: contains value of register address * @len: indicates number of registers * * This API will write the value of the register address to * soundwire slave device */ int swr_bulk_write(struct swr_device *dev, u8 dev_num, void *reg, const void *buf, size_t len) { struct swr_master *master; if (!dev || !dev->master) return -EINVAL; master = dev->master; if (master->bulk_write) return master->bulk_write(master, dev_num, reg, buf, len); return -ENOSYS; } EXPORT_SYMBOL(swr_bulk_write); /** * swr_write - write soundwire slave device registers * @dev: pointer to soundwire slave device Loading
include/linux/soundwire/soundwire.h +5 −0 Original line number Diff line number Diff line Loading @@ -137,6 +137,8 @@ struct swr_master { void *buf, u32 len); int (*write)(struct swr_master *mstr, u8 dev_num, u16 reg_addr, const void *buf); int (*bulk_write)(struct swr_master *master, u8 dev_num, void *reg, const void *buf, size_t len); int (*get_logical_dev_num)(struct swr_master *mstr, u64 dev_id, u8 *dev_num); }; Loading Loading @@ -259,6 +261,9 @@ extern int swr_read(struct swr_device *dev, u8 dev_num, u16 reg_addr, extern int swr_write(struct swr_device *dev, u8 dev_num, u16 reg_addr, const void *buf); extern int swr_bulk_write(struct swr_device *dev, u8 dev_num, void *reg_addr, const void *buf, size_t len); extern int swr_connect_port(struct swr_device *dev, u8 *port_id, u8 num_port, u8 *ch_mask, u32 *ch_rate, u8 *num_ch); Loading