Re: [PATCH] soundwire: export sdw_compute_slave_ports() function

From: Pierre-Louis Bossart
Date: Fri Feb 03 2023 - 10:17:08 EST




On 2/1/23 10:59, Vijendar Mukunda wrote:
> Export sdw_compute_slave_ports() function to use it in another
> soundwire manager module.
> Move sdw_transport_data structure to bus header file to export
> sdw_compute_slave_ports() function.
>
> Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>


If a specific platform has a need to modify parts of the bit allocation
but can reuse parts of the code, that's fine. The 'generic bandwidth
allocation' was meant to be a reference, not a one-size-fits-all solution.

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>

> ---
> drivers/soundwire/bus.h | 9 +++++++++
> drivers/soundwire/generic_bandwidth_allocation.c | 12 +++---------
> 2 files changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/soundwire/bus.h b/drivers/soundwire/bus.h
> index 7631ef5e71fb..141b99ac58de 100644
> --- a/drivers/soundwire/bus.h
> +++ b/drivers/soundwire/bus.h
> @@ -144,6 +144,13 @@ struct sdw_master_runtime {
> struct list_head bus_node;
> };
>
> +struct sdw_transport_data {
> + int hstart;
> + int hstop;
> + int block_offset;
> + int sub_block_offset;
> +};
> +
> struct sdw_dpn_prop *sdw_get_slave_dpn_prop(struct sdw_slave *slave,
> enum sdw_data_direction direction,
> unsigned int port_num);
> @@ -213,5 +220,7 @@ int sdw_bwrite_no_pm_unlocked(struct sdw_bus *bus, u16 dev_num, u32 addr, u8 val
>
> void sdw_clear_slave_status(struct sdw_bus *bus, u32 request);
> int sdw_slave_modalias(const struct sdw_slave *slave, char *buf, size_t size);
> +void sdw_compute_slave_ports(struct sdw_master_runtime *m_rt,
> + struct sdw_transport_data *t_data);
>
> #endif /* __SDW_BUS_H */
> diff --git a/drivers/soundwire/generic_bandwidth_allocation.c b/drivers/soundwire/generic_bandwidth_allocation.c
> index f7c66083a4dd..39543048baa7 100644
> --- a/drivers/soundwire/generic_bandwidth_allocation.c
> +++ b/drivers/soundwire/generic_bandwidth_allocation.c
> @@ -28,15 +28,8 @@ struct sdw_group {
> unsigned int *rates;
> };
>
> -struct sdw_transport_data {
> - int hstart;
> - int hstop;
> - int block_offset;
> - int sub_block_offset;
> -};
> -
> -static void sdw_compute_slave_ports(struct sdw_master_runtime *m_rt,
> - struct sdw_transport_data *t_data)
> +void sdw_compute_slave_ports(struct sdw_master_runtime *m_rt,
> + struct sdw_transport_data *t_data)
> {
> struct sdw_slave_runtime *s_rt = NULL;
> struct sdw_port_runtime *p_rt;
> @@ -85,6 +78,7 @@ static void sdw_compute_slave_ports(struct sdw_master_runtime *m_rt,
> }
> }
> }
> +EXPORT_SYMBOL(sdw_compute_slave_ports);
>
> static void sdw_compute_master_ports(struct sdw_master_runtime *m_rt,
> struct sdw_group_params *params,