Loading sound/soc/codecs/wm_adsp.c +30 −31 Original line number Diff line number Diff line Loading @@ -2622,6 +2622,36 @@ static int wm_adsp2_ena(struct wm_adsp *dsp) return 0; } static int wm_adsp2_lock(struct wm_adsp *dsp, unsigned int lock_regions) { struct regmap *regmap = dsp->regmap; unsigned int code0, code1, lock_reg; if (!(lock_regions & WM_ADSP2_REGION_ALL)) return 0; lock_regions &= WM_ADSP2_REGION_ALL; lock_reg = dsp->base + ADSP2_LOCK_REGION_1_LOCK_REGION_0; while (lock_regions) { code0 = code1 = 0; if (lock_regions & BIT(0)) { code0 = ADSP2_LOCK_CODE_0; code1 = ADSP2_LOCK_CODE_1; } if (lock_regions & BIT(1)) { code0 |= ADSP2_LOCK_CODE_0 << ADSP2_LOCK_REGION_SHIFT; code1 |= ADSP2_LOCK_CODE_1 << ADSP2_LOCK_REGION_SHIFT; } regmap_write(regmap, lock_reg, code0); regmap_write(regmap, lock_reg, code1); lock_regions >>= 2; lock_reg += 2; } return 0; } static void wm_adsp2_boot_work(struct work_struct *work) { struct wm_adsp *dsp = container_of(work, Loading Loading @@ -3890,37 +3920,6 @@ int wm_adsp_compr_copy(struct snd_compr_stream *stream, char __user *buf, } EXPORT_SYMBOL_GPL(wm_adsp_compr_copy); int wm_adsp2_lock(struct wm_adsp *dsp, unsigned int lock_regions) { struct regmap *regmap = dsp->regmap; unsigned int code0, code1, lock_reg; if (!(lock_regions & WM_ADSP2_REGION_ALL)) return 0; lock_regions &= WM_ADSP2_REGION_ALL; lock_reg = dsp->base + ADSP2_LOCK_REGION_1_LOCK_REGION_0; while (lock_regions) { code0 = code1 = 0; if (lock_regions & BIT(0)) { code0 = ADSP2_LOCK_CODE_0; code1 = ADSP2_LOCK_CODE_1; } if (lock_regions & BIT(1)) { code0 |= ADSP2_LOCK_CODE_0 << ADSP2_LOCK_REGION_SHIFT; code1 |= ADSP2_LOCK_CODE_1 << ADSP2_LOCK_REGION_SHIFT; } regmap_write(regmap, lock_reg, code0); regmap_write(regmap, lock_reg, code1); lock_regions >>= 2; lock_reg += 2; } return 0; } EXPORT_SYMBOL_GPL(wm_adsp2_lock); static void wm_adsp_fatal_error(struct wm_adsp *dsp) { struct wm_adsp_compr *compr; Loading sound/soc/codecs/wm_adsp.h +0 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ int wm_adsp2_early_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event, unsigned int freq); int wm_adsp2_lock(struct wm_adsp *adsp, unsigned int regions); irqreturn_t wm_adsp2_bus_error(struct wm_adsp *adsp); int wm_adsp2_event(struct snd_soc_dapm_widget *w, Loading Loading
sound/soc/codecs/wm_adsp.c +30 −31 Original line number Diff line number Diff line Loading @@ -2622,6 +2622,36 @@ static int wm_adsp2_ena(struct wm_adsp *dsp) return 0; } static int wm_adsp2_lock(struct wm_adsp *dsp, unsigned int lock_regions) { struct regmap *regmap = dsp->regmap; unsigned int code0, code1, lock_reg; if (!(lock_regions & WM_ADSP2_REGION_ALL)) return 0; lock_regions &= WM_ADSP2_REGION_ALL; lock_reg = dsp->base + ADSP2_LOCK_REGION_1_LOCK_REGION_0; while (lock_regions) { code0 = code1 = 0; if (lock_regions & BIT(0)) { code0 = ADSP2_LOCK_CODE_0; code1 = ADSP2_LOCK_CODE_1; } if (lock_regions & BIT(1)) { code0 |= ADSP2_LOCK_CODE_0 << ADSP2_LOCK_REGION_SHIFT; code1 |= ADSP2_LOCK_CODE_1 << ADSP2_LOCK_REGION_SHIFT; } regmap_write(regmap, lock_reg, code0); regmap_write(regmap, lock_reg, code1); lock_regions >>= 2; lock_reg += 2; } return 0; } static void wm_adsp2_boot_work(struct work_struct *work) { struct wm_adsp *dsp = container_of(work, Loading Loading @@ -3890,37 +3920,6 @@ int wm_adsp_compr_copy(struct snd_compr_stream *stream, char __user *buf, } EXPORT_SYMBOL_GPL(wm_adsp_compr_copy); int wm_adsp2_lock(struct wm_adsp *dsp, unsigned int lock_regions) { struct regmap *regmap = dsp->regmap; unsigned int code0, code1, lock_reg; if (!(lock_regions & WM_ADSP2_REGION_ALL)) return 0; lock_regions &= WM_ADSP2_REGION_ALL; lock_reg = dsp->base + ADSP2_LOCK_REGION_1_LOCK_REGION_0; while (lock_regions) { code0 = code1 = 0; if (lock_regions & BIT(0)) { code0 = ADSP2_LOCK_CODE_0; code1 = ADSP2_LOCK_CODE_1; } if (lock_regions & BIT(1)) { code0 |= ADSP2_LOCK_CODE_0 << ADSP2_LOCK_REGION_SHIFT; code1 |= ADSP2_LOCK_CODE_1 << ADSP2_LOCK_REGION_SHIFT; } regmap_write(regmap, lock_reg, code0); regmap_write(regmap, lock_reg, code1); lock_regions >>= 2; lock_reg += 2; } return 0; } EXPORT_SYMBOL_GPL(wm_adsp2_lock); static void wm_adsp_fatal_error(struct wm_adsp *dsp) { struct wm_adsp_compr *compr; Loading
sound/soc/codecs/wm_adsp.h +0 −1 Original line number Diff line number Diff line Loading @@ -141,7 +141,6 @@ int wm_adsp2_early_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event, unsigned int freq); int wm_adsp2_lock(struct wm_adsp *adsp, unsigned int regions); irqreturn_t wm_adsp2_bus_error(struct wm_adsp *adsp); int wm_adsp2_event(struct snd_soc_dapm_widget *w, Loading