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. > +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. > + 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... > + 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. > +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.