On Mon, Sep 25, 2023 at 10:54:45AM +0800, Fenglin Wu wrote: > > > On 9/24/2023 3:07 AM, Dmitry Baryshkov wrote: > > > + > > > + switch (vib->data->hw_type) { > > > + case SSBI_VIB: > > > mask = SSBI_VIB_DRV_LEVEL_MASK; > > > shift = SSBI_VIB_DRV_SHIFT; > > > + break; > > > + case SPMI_VIB: > > > + mask = SPMI_VIB_DRV_LEVEL_MASK; > > > + shift = SPMI_VIB_DRV_SHIFT; > > > + break; > > > + case SPMI_VIB_GEN2: > > > + mask = SPMI_VIB_GEN2_DRV_MASK; > > > + shift = SPMI_VIB_GEN2_DRV_SHIFT; > > > + break; > > > + default: > > > + return -EINVAL; > > Could you please move the switch to the previous patch? Then it would > > be more obvious that you are just adding the SPMI_VIB_GEN2 here. > > > > Other than that LGTM. > > Sure, I can move the switch to the previous refactoring patch. Actually, the idea of having a const "reg" or "chip", etc. structure is to avoid this kind of runtime checks based on hardware type and instead use common computation. I believe you need to move mask and shift into the chip-specific structure and avoid defining hw_type. Thanks. -- Dmitry