> +static const struct reg_sequence rt1320_blind_write[] = { ... > +}; > + > +static const struct reg_sequence rt1320_patch_code_write[] = { ... > +}; On GitHub we talked about using the SDCA Initialization table coming from ACPI, is this still something you're interested in? > + if (rt1320->version_id < 0) { > + regmap_read(rt1320->regmap, RT1320_DEV_VERSION_ID_1, &val); > + rt1320->version_id = val; > + /* > + * We call the version b which has the new DSP ROM code against version a. > + * Therefore, we read the DSP address to check the ID. > + */ > + if (val == RT1320_VER_B_ID) > + rt1320->version_id = RT1320_VB; > + regmap_write(rt1320->regmap, SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, > + RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 3); > + } > + dev_dbg(dev, "%s version_id=%d\n", __func__, rt1320->version_id); Maybe I missed it but I didn't see anything that tests the version_id and does something different between VER_A and VER_B. Can you add a comment on why it's important to track the version? Also if there's a DSP, is there a need for the FDL capability to download firmware, or is the speaker protection configured only via tables?