[PATCH 2/7] ASoC: codec: lpass-rx-macro: add support for lpass rx macro

Srinivas Kandagatla srinivas.kandagatla at linaro.org
Fri Jan 29 14:32:38 CET 2021


Thanks Mark for quick review,

On 28/01/2021 16:07, Mark Brown wrote:
> On Thu, Jan 28, 2021 at 02:19:24PM +0000, Srinivas Kandagatla wrote:
> 
>>   snd-soc-lpass-wsa-macro-objs := lpass-wsa-macro.o
>>   snd-soc-lpass-va-macro-objs := lpass-va-macro.o
>> +snd-soc-lpass-rx-macro-objs := lpass-rx-macro.o
> 
> Please keep things sorted.
> 
>> @@ -0,0 +1,2020 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
>> + */
> 
> Please make the entire comment a C++ one so things look more
> intentional.
Will fix this in next version!

> 
>> +static const char *const rx_macro_ear_mode_text[] = {"OFF", "ON"};
>> +static const struct soc_enum rx_macro_ear_mode_enum =
>> +	SOC_ENUM_SINGLE_EXT(2, rx_macro_ear_mode_text);
> 
> On/off controls should be standard Switch controls.

I agree!
> 
>> +		if (rx->rx_mclk_users == 0) {
>> +			regcache_mark_dirty(regmap);
>> +			regcache_sync(regmap);
> 
> I'd expect this to be joined up with whatever caused the register state
> to become invalid, this looks like it's inviting bugs.  This also seems
> to have only one caller...

Few lines below we are moving the digital clock from OFF to ON which 
will change the state of registers. There are two callers, one from DAPM 
RX CLK widget and other from soundwire clock gate! We will potentially 
enter this path when we are resuming from clk pause state!

> 
>> +	SOC_ENUM_EXT("RX_HPH HD2 Mode", rx_macro_hph_hd2_mode_enum,
>> +		rx_macro_get_hph_hd2_mode, rx_macro_put_hph_hd2_mode),
>> +
>> +	SOC_ENUM_EXT("RX_HPH_PWR_MODE", rx_macro_hph_pwr_mode_enum,
>> +		rx_macro_get_hph_pwr_mode, rx_macro_put_hph_pwr_mode),
> 
> The naming seems a bit random here.

Will try to clean this up in next spin!

> 
>> +static int rx_swrm_clock(struct rx_macro *rx, bool enable)
>> +{
> 
>> +static int swclk_gate_enable(struct clk_hw *hw)
>> +{
>> +	return rx_swrm_clock(to_rx_macro(hw), true);
>> +}
>> +
>> +static void swclk_gate_disable(struct clk_hw *hw)
>> +{
>> +	rx_swrm_clock(to_rx_macro(hw), false);
>> +}
> 
> This all seems very redundant and like it'll get in the way of grepping
> for users.  It would be better to just inline the operation into the clk
> API functions.

Sure!

--srini
> 


More information about the Alsa-devel mailing list