Loading asoc/codecs/wcd937x/wcd937x.c +12 −1 Original line number Diff line number Diff line Loading @@ -113,8 +113,19 @@ static int wcd937x_handle_post_irq(void *data) static int wcd937x_init_reg(struct snd_soc_component *component) { u32 val =0; val = snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_29) & 0x0F; if (snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_16) == 0x02 || snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_17) > 0x09) { snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x0E, val); } else { snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x0E, 0x0E); } snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x80, 0x80); usleep_range(1000, 1010); Loading soc/swr-mstr-ctrl.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. */ #include <linux/irq.h> Loading Loading @@ -3128,6 +3128,7 @@ static int swrm_runtime_suspend(struct device *dev) struct swr_master *mstr = &swrm->master; struct swr_device *swr_dev; int current_state = 0; struct irq_data *irq_data = NULL; trace_printk("%s: pm_runtime: suspend state: %d\n", __func__, swrm->state); Loading Loading @@ -3236,6 +3237,8 @@ static int swrm_runtime_suspend(struct device *dev) if (swrm->clk_stop_mode0_supp) { if (swrm->wake_irq > 0) { irq_data = irq_get_irq_data(swrm->wake_irq); if (irq_data && irqd_irq_disabled(irq_data)) enable_irq(swrm->wake_irq); } else if (swrm->ipc_wakeup) { msm_aud_evt_blocking_notifier_call_chain( Loading Loading
asoc/codecs/wcd937x/wcd937x.c +12 −1 Original line number Diff line number Diff line Loading @@ -113,8 +113,19 @@ static int wcd937x_handle_post_irq(void *data) static int wcd937x_init_reg(struct snd_soc_component *component) { u32 val =0; val = snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_29) & 0x0F; if (snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_16) == 0x02 || snd_soc_component_read32(component, WCD937X_DIGITAL_EFUSE_REG_17) > 0x09) { snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x0E, val); } else { snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x0E, 0x0E); } snd_soc_component_update_bits(component, WCD937X_SLEEP_CTL, 0x80, 0x80); usleep_range(1000, 1010); Loading
soc/swr-mstr-ctrl.c +5 −2 Original line number Diff line number Diff line // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved. * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. */ #include <linux/irq.h> Loading Loading @@ -3128,6 +3128,7 @@ static int swrm_runtime_suspend(struct device *dev) struct swr_master *mstr = &swrm->master; struct swr_device *swr_dev; int current_state = 0; struct irq_data *irq_data = NULL; trace_printk("%s: pm_runtime: suspend state: %d\n", __func__, swrm->state); Loading Loading @@ -3236,6 +3237,8 @@ static int swrm_runtime_suspend(struct device *dev) if (swrm->clk_stop_mode0_supp) { if (swrm->wake_irq > 0) { irq_data = irq_get_irq_data(swrm->wake_irq); if (irq_data && irqd_irq_disabled(irq_data)) enable_irq(swrm->wake_irq); } else if (swrm->ipc_wakeup) { msm_aud_evt_blocking_notifier_call_chain( Loading