Loading sound/soc/msm/sdm660-common.c +2 −2 Original line number Diff line number Diff line Loading @@ -2909,7 +2909,7 @@ err: } devm_kfree(&pdev->dev, pdata); if (pdata->snd_card_val != INT_SND_CARD) msm_ext_cdc_deinit(); msm_ext_cdc_deinit(pdata); return ret; } Loading @@ -2921,7 +2921,7 @@ static int msm_asoc_machine_remove(struct platform_device *pdev) if (pdata->snd_card_val == INT_SND_CARD) mutex_destroy(&pdata->cdc_int_mclk0_mutex); else msm_ext_cdc_deinit(); msm_ext_cdc_deinit(pdata); msm_free_auxdev_mem(pdev); gpio_free(pdata->us_euro_gpio); Loading sound/soc/msm/sdm660-common.h +9 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,14 @@ enum { EXT_SND_CARD_TAVIL, }; struct msm_snd_interrupt { void __iomem *mpm_wakeup; void __iomem *intr1_cfg_apps; void __iomem *lpi_gpio_intr_cfg; void __iomem *lpi_gpio_cfg; void __iomem *lpi_gpio_inout; }; struct msm_asoc_mach_data { int us_euro_gpio; /* used by gpio driver API */ int hph_en1_gpio; Loading Loading @@ -105,6 +113,7 @@ struct msm_asoc_mach_data { struct mutex cdc_int_mclk0_mutex; struct delayed_work disable_int_mclk0_work; struct afe_clk_set digital_cdc_core_clk; struct msm_snd_interrupt msm_snd_intr_lpi; }; int msm_common_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, Loading sound/soc/msm/sdm660-external.c +29 −35 Original line number Diff line number Diff line Loading @@ -67,16 +67,6 @@ struct msm_asoc_wcd93xx_codec { static struct msm_asoc_wcd93xx_codec msm_codec_fn; static struct platform_device *spdev; struct msm_snd_interrupt { void __iomem *mpm_wakeup; void __iomem *intr1_cfg_apps; void __iomem *lpi_gpio_intr_cfg; void __iomem *lpi_gpio_cfg; void __iomem *lpi_gpio_inout; }; static struct msm_snd_interrupt msm_snd_intr_lpi; static bool is_initial_boot; static void *def_ext_mbhc_cal(void); Loading Loading @@ -1220,25 +1210,25 @@ static void msm_afe_clear_config(void) afe_clear_config(AFE_SLIMBUS_SLAVE_CONFIG); } static void msm_snd_interrupt_config(void) static void msm_snd_interrupt_config(struct msm_asoc_mach_data *pdata) { int val; val = ioread32(msm_snd_intr_lpi.mpm_wakeup); val = ioread32(pdata->msm_snd_intr_lpi.mpm_wakeup); val |= LPI_GPIO_22_WAKEUP_VAL; iowrite32(val, msm_snd_intr_lpi.mpm_wakeup); iowrite32(val, pdata->msm_snd_intr_lpi.mpm_wakeup); val = ioread32(msm_snd_intr_lpi.intr1_cfg_apps); val = ioread32(pdata->msm_snd_intr_lpi.intr1_cfg_apps); val &= ~(LPI_GPIO_22_INTR1_CFG_MASK); val |= LPI_GPIO_22_INTR1_CFG_VAL; iowrite32(val, msm_snd_intr_lpi.intr1_cfg_apps); iowrite32(val, pdata->msm_snd_intr_lpi.intr1_cfg_apps); iowrite32(LPI_GPIO_INTR_CFG1_VAL, msm_snd_intr_lpi.lpi_gpio_intr_cfg); pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg); iowrite32(LPI_GPIO22_CFG_VAL, msm_snd_intr_lpi.lpi_gpio_cfg); pdata->msm_snd_intr_lpi.lpi_gpio_cfg); iowrite32(LPI_GPIO22_INOUT_VAL, msm_snd_intr_lpi.lpi_gpio_inout); pdata->msm_snd_intr_lpi.lpi_gpio_inout); } static int msm_adsp_power_up_config(struct snd_soc_codec *codec) Loading @@ -1246,7 +1236,10 @@ static int msm_adsp_power_up_config(struct snd_soc_codec *codec) int ret = 0; unsigned long timeout; int adsp_ready = 0; struct snd_soc_card *card = codec->component.card; struct msm_asoc_mach_data *pdata; pdata = snd_soc_card_get_drvdata(card); timeout = jiffies + msecs_to_jiffies(ADSP_STATE_READY_TIMEOUT_MS); Loading @@ -1269,7 +1262,7 @@ static int msm_adsp_power_up_config(struct snd_soc_codec *codec) ret = -ETIMEDOUT; goto err_fail; } msm_snd_interrupt_config(); msm_snd_interrupt_config(pdata); ret = msm_afe_set_config(codec); if (ret) Loading Loading @@ -1817,15 +1810,15 @@ int msm_ext_cdc_init(struct platform_device *pdev, ret); ret = 0; } msm_snd_intr_lpi.mpm_wakeup = pdata->msm_snd_intr_lpi.mpm_wakeup = ioremap(TLMM_CENTER_MPM_WAKEUP_INT_EN_0, 4); msm_snd_intr_lpi.intr1_cfg_apps = pdata->msm_snd_intr_lpi.intr1_cfg_apps = ioremap(TLMM_LPI_DIR_CONN_INTR1_CFG_APPS, 4); msm_snd_intr_lpi.lpi_gpio_intr_cfg = pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg = ioremap(TLMM_LPI_GPIO_INTR_CFG1, 4); msm_snd_intr_lpi.lpi_gpio_cfg = pdata->msm_snd_intr_lpi.lpi_gpio_cfg = ioremap(TLMM_LPI_GPIO22_CFG, 4); msm_snd_intr_lpi.lpi_gpio_inout = pdata->msm_snd_intr_lpi.lpi_gpio_inout = ioremap(TLMM_LPI_GPIO22_INOUT, 4); err: return ret; Loading @@ -1835,17 +1828,18 @@ EXPORT_SYMBOL(msm_ext_cdc_init); /** * msm_ext_cdc_deinit - external codec machine specific deinit. */ void msm_ext_cdc_deinit(void) void msm_ext_cdc_deinit(struct msm_asoc_mach_data *pdata) { if (msm_snd_intr_lpi.mpm_wakeup) iounmap(msm_snd_intr_lpi.mpm_wakeup); if (msm_snd_intr_lpi.intr1_cfg_apps) iounmap(msm_snd_intr_lpi.intr1_cfg_apps); if (msm_snd_intr_lpi.lpi_gpio_intr_cfg) iounmap(msm_snd_intr_lpi.lpi_gpio_intr_cfg); if (msm_snd_intr_lpi.lpi_gpio_cfg) iounmap(msm_snd_intr_lpi.lpi_gpio_cfg); if (msm_snd_intr_lpi.lpi_gpio_inout) iounmap(msm_snd_intr_lpi.lpi_gpio_inout); if (pdata->msm_snd_intr_lpi.mpm_wakeup) iounmap(pdata->msm_snd_intr_lpi.mpm_wakeup); if (pdata->msm_snd_intr_lpi.intr1_cfg_apps) iounmap(pdata->msm_snd_intr_lpi.intr1_cfg_apps); if (pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg); if (pdata->msm_snd_intr_lpi.lpi_gpio_cfg) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_cfg); if (pdata->msm_snd_intr_lpi.lpi_gpio_inout) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_inout); } EXPORT_SYMBOL(msm_ext_cdc_deinit); sound/soc/msm/sdm660-external.h +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ int msm_ext_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, int msm_ext_cdc_init(struct platform_device *, struct msm_asoc_mach_data *, struct snd_soc_card **, struct wcd_mbhc_config *); void msm_ext_register_audio_notifier(struct platform_device *pdev); void msm_ext_cdc_deinit(void); void msm_ext_cdc_deinit(struct msm_asoc_mach_data *pdata); #else inline int msm_ext_cdc_init(struct platform_device *pdev, struct msm_asoc_mach_data *pdata, Loading Loading
sound/soc/msm/sdm660-common.c +2 −2 Original line number Diff line number Diff line Loading @@ -2909,7 +2909,7 @@ err: } devm_kfree(&pdev->dev, pdata); if (pdata->snd_card_val != INT_SND_CARD) msm_ext_cdc_deinit(); msm_ext_cdc_deinit(pdata); return ret; } Loading @@ -2921,7 +2921,7 @@ static int msm_asoc_machine_remove(struct platform_device *pdev) if (pdata->snd_card_val == INT_SND_CARD) mutex_destroy(&pdata->cdc_int_mclk0_mutex); else msm_ext_cdc_deinit(); msm_ext_cdc_deinit(pdata); msm_free_auxdev_mem(pdev); gpio_free(pdata->us_euro_gpio); Loading
sound/soc/msm/sdm660-common.h +9 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,14 @@ enum { EXT_SND_CARD_TAVIL, }; struct msm_snd_interrupt { void __iomem *mpm_wakeup; void __iomem *intr1_cfg_apps; void __iomem *lpi_gpio_intr_cfg; void __iomem *lpi_gpio_cfg; void __iomem *lpi_gpio_inout; }; struct msm_asoc_mach_data { int us_euro_gpio; /* used by gpio driver API */ int hph_en1_gpio; Loading Loading @@ -105,6 +113,7 @@ struct msm_asoc_mach_data { struct mutex cdc_int_mclk0_mutex; struct delayed_work disable_int_mclk0_work; struct afe_clk_set digital_cdc_core_clk; struct msm_snd_interrupt msm_snd_intr_lpi; }; int msm_common_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, Loading
sound/soc/msm/sdm660-external.c +29 −35 Original line number Diff line number Diff line Loading @@ -67,16 +67,6 @@ struct msm_asoc_wcd93xx_codec { static struct msm_asoc_wcd93xx_codec msm_codec_fn; static struct platform_device *spdev; struct msm_snd_interrupt { void __iomem *mpm_wakeup; void __iomem *intr1_cfg_apps; void __iomem *lpi_gpio_intr_cfg; void __iomem *lpi_gpio_cfg; void __iomem *lpi_gpio_inout; }; static struct msm_snd_interrupt msm_snd_intr_lpi; static bool is_initial_boot; static void *def_ext_mbhc_cal(void); Loading Loading @@ -1220,25 +1210,25 @@ static void msm_afe_clear_config(void) afe_clear_config(AFE_SLIMBUS_SLAVE_CONFIG); } static void msm_snd_interrupt_config(void) static void msm_snd_interrupt_config(struct msm_asoc_mach_data *pdata) { int val; val = ioread32(msm_snd_intr_lpi.mpm_wakeup); val = ioread32(pdata->msm_snd_intr_lpi.mpm_wakeup); val |= LPI_GPIO_22_WAKEUP_VAL; iowrite32(val, msm_snd_intr_lpi.mpm_wakeup); iowrite32(val, pdata->msm_snd_intr_lpi.mpm_wakeup); val = ioread32(msm_snd_intr_lpi.intr1_cfg_apps); val = ioread32(pdata->msm_snd_intr_lpi.intr1_cfg_apps); val &= ~(LPI_GPIO_22_INTR1_CFG_MASK); val |= LPI_GPIO_22_INTR1_CFG_VAL; iowrite32(val, msm_snd_intr_lpi.intr1_cfg_apps); iowrite32(val, pdata->msm_snd_intr_lpi.intr1_cfg_apps); iowrite32(LPI_GPIO_INTR_CFG1_VAL, msm_snd_intr_lpi.lpi_gpio_intr_cfg); pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg); iowrite32(LPI_GPIO22_CFG_VAL, msm_snd_intr_lpi.lpi_gpio_cfg); pdata->msm_snd_intr_lpi.lpi_gpio_cfg); iowrite32(LPI_GPIO22_INOUT_VAL, msm_snd_intr_lpi.lpi_gpio_inout); pdata->msm_snd_intr_lpi.lpi_gpio_inout); } static int msm_adsp_power_up_config(struct snd_soc_codec *codec) Loading @@ -1246,7 +1236,10 @@ static int msm_adsp_power_up_config(struct snd_soc_codec *codec) int ret = 0; unsigned long timeout; int adsp_ready = 0; struct snd_soc_card *card = codec->component.card; struct msm_asoc_mach_data *pdata; pdata = snd_soc_card_get_drvdata(card); timeout = jiffies + msecs_to_jiffies(ADSP_STATE_READY_TIMEOUT_MS); Loading @@ -1269,7 +1262,7 @@ static int msm_adsp_power_up_config(struct snd_soc_codec *codec) ret = -ETIMEDOUT; goto err_fail; } msm_snd_interrupt_config(); msm_snd_interrupt_config(pdata); ret = msm_afe_set_config(codec); if (ret) Loading Loading @@ -1817,15 +1810,15 @@ int msm_ext_cdc_init(struct platform_device *pdev, ret); ret = 0; } msm_snd_intr_lpi.mpm_wakeup = pdata->msm_snd_intr_lpi.mpm_wakeup = ioremap(TLMM_CENTER_MPM_WAKEUP_INT_EN_0, 4); msm_snd_intr_lpi.intr1_cfg_apps = pdata->msm_snd_intr_lpi.intr1_cfg_apps = ioremap(TLMM_LPI_DIR_CONN_INTR1_CFG_APPS, 4); msm_snd_intr_lpi.lpi_gpio_intr_cfg = pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg = ioremap(TLMM_LPI_GPIO_INTR_CFG1, 4); msm_snd_intr_lpi.lpi_gpio_cfg = pdata->msm_snd_intr_lpi.lpi_gpio_cfg = ioremap(TLMM_LPI_GPIO22_CFG, 4); msm_snd_intr_lpi.lpi_gpio_inout = pdata->msm_snd_intr_lpi.lpi_gpio_inout = ioremap(TLMM_LPI_GPIO22_INOUT, 4); err: return ret; Loading @@ -1835,17 +1828,18 @@ EXPORT_SYMBOL(msm_ext_cdc_init); /** * msm_ext_cdc_deinit - external codec machine specific deinit. */ void msm_ext_cdc_deinit(void) void msm_ext_cdc_deinit(struct msm_asoc_mach_data *pdata) { if (msm_snd_intr_lpi.mpm_wakeup) iounmap(msm_snd_intr_lpi.mpm_wakeup); if (msm_snd_intr_lpi.intr1_cfg_apps) iounmap(msm_snd_intr_lpi.intr1_cfg_apps); if (msm_snd_intr_lpi.lpi_gpio_intr_cfg) iounmap(msm_snd_intr_lpi.lpi_gpio_intr_cfg); if (msm_snd_intr_lpi.lpi_gpio_cfg) iounmap(msm_snd_intr_lpi.lpi_gpio_cfg); if (msm_snd_intr_lpi.lpi_gpio_inout) iounmap(msm_snd_intr_lpi.lpi_gpio_inout); if (pdata->msm_snd_intr_lpi.mpm_wakeup) iounmap(pdata->msm_snd_intr_lpi.mpm_wakeup); if (pdata->msm_snd_intr_lpi.intr1_cfg_apps) iounmap(pdata->msm_snd_intr_lpi.intr1_cfg_apps); if (pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_intr_cfg); if (pdata->msm_snd_intr_lpi.lpi_gpio_cfg) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_cfg); if (pdata->msm_snd_intr_lpi.lpi_gpio_inout) iounmap(pdata->msm_snd_intr_lpi.lpi_gpio_inout); } EXPORT_SYMBOL(msm_ext_cdc_deinit);
sound/soc/msm/sdm660-external.h +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ int msm_ext_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd, int msm_ext_cdc_init(struct platform_device *, struct msm_asoc_mach_data *, struct snd_soc_card **, struct wcd_mbhc_config *); void msm_ext_register_audio_notifier(struct platform_device *pdev); void msm_ext_cdc_deinit(void); void msm_ext_cdc_deinit(struct msm_asoc_mach_data *pdata); #else inline int msm_ext_cdc_init(struct platform_device *pdev, struct msm_asoc_mach_data *pdata, Loading