Message ID | 20240510175835.286775-2-srinivas.kandagatla@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | ASoC: codecs: lpass: add support for v2.6 rx macro | expand |
Hi, kernel test robot noticed the following build warnings: https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/srinivas-kandagatla-linaro-org/ASoC-codecs-lpass-macro-add-helpers-to-get-codec-version/20240511-020042 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next patch link: https://lore.kernel.org/r/20240510175835.286775-2-srinivas.kandagatla%40linaro.org patch subject: [PATCH 1/2] ASoC: codecs: lpass-macro: add helpers to get codec version config: sparc-randconfig-r081-20240512 (https://download.01.org/0day-ci/archive/20240512/202405120735.qbbiUPaX-lkp@intel.com/config) compiler: sparc64-linux-gcc (GCC) 13.2.0 If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org> | Closes: https://lore.kernel.org/r/202405120735.qbbiUPaX-lkp@intel.com/ smatch warnings: sound/soc/codecs/lpass-va-macro.c:1485 va_macro_set_lpass_codec_version() error: uninitialized symbol 'version'. vim +/version +1485 sound/soc/codecs/lpass-va-macro.c 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1464 static void va_macro_set_lpass_codec_version(struct va_macro *va) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1465 { 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1466 int core_id_0 = 0, core_id_1 = 0, core_id_2 = 0, version; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1467 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1468 regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_0, &core_id_0); 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1469 regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_1, &core_id_1); 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1470 regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_2, &core_id_2); 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1471 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1472 if ((core_id_0 == 0x01) && (core_id_1 == 0x0F)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1473 version = LPASS_CODEC_VERSION_2_0; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1474 if ((core_id_0 == 0x02) && (core_id_1 == 0x0E)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1475 version = LPASS_CODEC_VERSION_2_1; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1476 if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x50 || core_id_2 == 0x51)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1477 version = LPASS_CODEC_VERSION_2_5; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1478 if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x60 || core_id_2 == 0x61)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1479 version = LPASS_CODEC_VERSION_2_6; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1480 if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x70 || core_id_2 == 0x71)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1481 version = LPASS_CODEC_VERSION_2_7; 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1482 if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x80 || core_id_2 == 0x81)) 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1483 version = LPASS_CODEC_VERSION_2_8; Uninitialized on else path. 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1484 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 @1485 lpass_macro_set_codec_version(version); 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1486 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1487 dev_info(va->dev, "LPASS Codec Version %s\n", 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1488 lpass_macro_get_codec_version_string(version)); 787a4e6d2bc156 Srinivas Kandagatla 2024-05-10 1489 }
diff --git a/sound/soc/codecs/lpass-macro-common.c b/sound/soc/codecs/lpass-macro-common.c index da1b422250b8..a640bf88a6cd 100644 --- a/sound/soc/codecs/lpass-macro-common.c +++ b/sound/soc/codecs/lpass-macro-common.c @@ -11,6 +11,8 @@ #include "lpass-macro-common.h" +static int lpass_codec_version; + struct lpass_macro *lpass_macro_pds_init(struct device *dev) { struct lpass_macro *l_pds; @@ -66,5 +68,17 @@ void lpass_macro_pds_exit(struct lpass_macro *pds) } EXPORT_SYMBOL_GPL(lpass_macro_pds_exit); +void lpass_macro_set_codec_version(int version) +{ + lpass_codec_version = version; +} +EXPORT_SYMBOL_GPL(lpass_macro_set_codec_version); + +int lpass_macro_get_codec_version(void) +{ + return lpass_codec_version; +} +EXPORT_SYMBOL_GPL(lpass_macro_get_codec_version); + MODULE_DESCRIPTION("Common macro driver"); MODULE_LICENSE("GPL"); diff --git a/sound/soc/codecs/lpass-macro-common.h b/sound/soc/codecs/lpass-macro-common.h index d98718b3dc4b..f6f1bfe8eb77 100644 --- a/sound/soc/codecs/lpass-macro-common.h +++ b/sound/soc/codecs/lpass-macro-common.h @@ -18,6 +18,18 @@ enum lpass_version { LPASS_VER_11_0_0, }; +enum lpass_codec_version { + LPASS_CODEC_VERSION_1_0 = 1, + LPASS_CODEC_VERSION_1_1, + LPASS_CODEC_VERSION_1_2, + LPASS_CODEC_VERSION_2_0, + LPASS_CODEC_VERSION_2_1, + LPASS_CODEC_VERSION_2_5, + LPASS_CODEC_VERSION_2_6, + LPASS_CODEC_VERSION_2_7, + LPASS_CODEC_VERSION_2_8, +}; + struct lpass_macro { struct device *macro_pd; struct device *dcodec_pd; @@ -25,5 +37,28 @@ struct lpass_macro { struct lpass_macro *lpass_macro_pds_init(struct device *dev); void lpass_macro_pds_exit(struct lpass_macro *pds); +void lpass_macro_set_codec_version(int version); +int lpass_macro_get_codec_version(void); + +static inline const char *lpass_macro_get_codec_version_string(int version) +{ + switch (version) { + case LPASS_CODEC_VERSION_2_0: + return "v2.0"; + case LPASS_CODEC_VERSION_2_1: + return "v2.1"; + case LPASS_CODEC_VERSION_2_5: + return "v2.5"; + case LPASS_CODEC_VERSION_2_6: + return "v2.6"; + case LPASS_CODEC_VERSION_2_7: + return "v2.7"; + case LPASS_CODEC_VERSION_2_8: + return "v2.8"; + default: + break; + } + return "NA"; +} #endif /* __LPASS_MACRO_COMMON_H__ */ diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c index db6272ee2df5..a94a1d93c19d 100644 --- a/sound/soc/codecs/lpass-va-macro.c +++ b/sound/soc/codecs/lpass-va-macro.c @@ -1462,6 +1462,33 @@ static int va_macro_validate_dmic_sample_rate(u32 dmic_sample_rate, return dmic_sample_rate; } +static void va_macro_set_lpass_codec_version(struct va_macro *va) +{ + int core_id_0 = 0, core_id_1 = 0, core_id_2 = 0, version; + + regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_0, &core_id_0); + regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_1, &core_id_1); + regmap_read(va->regmap, CDC_VA_TOP_CSR_CORE_ID_2, &core_id_2); + + if ((core_id_0 == 0x01) && (core_id_1 == 0x0F)) + version = LPASS_CODEC_VERSION_2_0; + if ((core_id_0 == 0x02) && (core_id_1 == 0x0E)) + version = LPASS_CODEC_VERSION_2_1; + if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x50 || core_id_2 == 0x51)) + version = LPASS_CODEC_VERSION_2_5; + if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x60 || core_id_2 == 0x61)) + version = LPASS_CODEC_VERSION_2_6; + if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x70 || core_id_2 == 0x71)) + version = LPASS_CODEC_VERSION_2_7; + if ((core_id_0 == 0x02) && (core_id_1 == 0x0F) && (core_id_2 == 0x80 || core_id_2 == 0x81)) + version = LPASS_CODEC_VERSION_2_8; + + lpass_macro_set_codec_version(version); + + dev_info(va->dev, "LPASS Codec Version %s\n", + lpass_macro_get_codec_version_string(version)); +} + static int va_macro_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -1555,6 +1582,8 @@ static int va_macro_probe(struct platform_device *pdev) goto err_npl; } + va_macro_set_lpass_codec_version(va); + if (va->has_swr_master) { /* Set default CLK div to 1 */ regmap_update_bits(va->regmap, CDC_VA_TOP_CSR_SWR_MIC_CTL0,