mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-04 03:33:58 +08:00
ASoC: wm8994: Remove duplicate revision cache
There's already a device revision stored in the core data structure, don't duplicate it in the CODEC driver. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
d3725761ee
commit
da445afe35
@ -2209,7 +2209,7 @@ static int _wm8994_set_fll(struct snd_soc_codec *codec, int id, int src,
|
|||||||
vmid_reference(codec);
|
vmid_reference(codec);
|
||||||
break;
|
break;
|
||||||
case WM8958:
|
case WM8958:
|
||||||
if (wm8994->revision < 1)
|
if (control->revision < 1)
|
||||||
vmid_reference(codec);
|
vmid_reference(codec);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2244,7 +2244,7 @@ static int _wm8994_set_fll(struct snd_soc_codec *codec, int id, int src,
|
|||||||
vmid_dereference(codec);
|
vmid_dereference(codec);
|
||||||
break;
|
break;
|
||||||
case WM8958:
|
case WM8958:
|
||||||
if (wm8994->revision < 1)
|
if (control->revision < 1)
|
||||||
vmid_dereference(codec);
|
vmid_dereference(codec);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -2443,7 +2443,7 @@ static int wm8994_set_bias_level(struct snd_soc_codec *codec,
|
|||||||
if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
|
if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
|
||||||
switch (control->type) {
|
switch (control->type) {
|
||||||
case WM8958:
|
case WM8958:
|
||||||
if (wm8994->revision == 0) {
|
if (control->revision == 0) {
|
||||||
/* Optimise performance for rev A */
|
/* Optimise performance for rev A */
|
||||||
snd_soc_update_bits(codec,
|
snd_soc_update_bits(codec,
|
||||||
WM8958_CHARGE_PUMP_2,
|
WM8958_CHARGE_PUMP_2,
|
||||||
@ -3094,7 +3094,7 @@ static int wm8994_codec_resume(struct snd_soc_codec *codec)
|
|||||||
int i, ret;
|
int i, ret;
|
||||||
unsigned int val, mask;
|
unsigned int val, mask;
|
||||||
|
|
||||||
if (wm8994->revision < 4) {
|
if (control->revision < 4) {
|
||||||
/* force a HW read */
|
/* force a HW read */
|
||||||
ret = regmap_read(control->regmap,
|
ret = regmap_read(control->regmap,
|
||||||
WM8994_POWER_MANAGEMENT_5, &val);
|
WM8994_POWER_MANAGEMENT_5, &val);
|
||||||
@ -3911,7 +3911,6 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
codec->dapm.idle_bias_off = 1;
|
codec->dapm.idle_bias_off = 1;
|
||||||
|
|
||||||
/* Set revision-specific configuration */
|
/* Set revision-specific configuration */
|
||||||
wm8994->revision = snd_soc_read(codec, WM8994_CHIP_REVISION);
|
|
||||||
switch (control->type) {
|
switch (control->type) {
|
||||||
case WM8994:
|
case WM8994:
|
||||||
/* Single ended line outputs should have VMID on. */
|
/* Single ended line outputs should have VMID on. */
|
||||||
@ -3919,7 +3918,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
!control->pdata.lineout2_diff)
|
!control->pdata.lineout2_diff)
|
||||||
codec->dapm.idle_bias_off = 0;
|
codec->dapm.idle_bias_off = 0;
|
||||||
|
|
||||||
switch (wm8994->revision) {
|
switch (control->revision) {
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
wm8994->hubs.dcs_codes_l = -5;
|
wm8994->hubs.dcs_codes_l = -5;
|
||||||
@ -3938,7 +3937,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
wm8994->hubs.dcs_readback_mode = 1;
|
wm8994->hubs.dcs_readback_mode = 1;
|
||||||
wm8994->hubs.hp_startup_mode = 1;
|
wm8994->hubs.hp_startup_mode = 1;
|
||||||
|
|
||||||
switch (wm8994->revision) {
|
switch (control->revision) {
|
||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -4041,7 +4040,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
|
|
||||||
switch (control->type) {
|
switch (control->type) {
|
||||||
case WM1811:
|
case WM1811:
|
||||||
if (control->cust_id > 1 || wm8994->revision > 1) {
|
if (control->cust_id > 1 || control->revision > 1) {
|
||||||
ret = wm8994_request_irq(wm8994->wm8994,
|
ret = wm8994_request_irq(wm8994->wm8994,
|
||||||
WM8994_IRQ_GPIO(6),
|
WM8994_IRQ_GPIO(6),
|
||||||
wm1811_jackdet_irq, "JACKDET",
|
wm1811_jackdet_irq, "JACKDET",
|
||||||
@ -4155,7 +4154,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
case WM8994:
|
case WM8994:
|
||||||
snd_soc_dapm_new_controls(dapm, wm8994_specific_dapm_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8994_specific_dapm_widgets,
|
||||||
ARRAY_SIZE(wm8994_specific_dapm_widgets));
|
ARRAY_SIZE(wm8994_specific_dapm_widgets));
|
||||||
if (wm8994->revision < 4) {
|
if (control->revision < 4) {
|
||||||
snd_soc_dapm_new_controls(dapm, wm8994_lateclk_revd_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8994_lateclk_revd_widgets,
|
||||||
ARRAY_SIZE(wm8994_lateclk_revd_widgets));
|
ARRAY_SIZE(wm8994_lateclk_revd_widgets));
|
||||||
snd_soc_dapm_new_controls(dapm, wm8994_adc_revd_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8994_adc_revd_widgets,
|
||||||
@ -4176,7 +4175,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
ARRAY_SIZE(wm8958_snd_controls));
|
ARRAY_SIZE(wm8958_snd_controls));
|
||||||
snd_soc_dapm_new_controls(dapm, wm8958_dapm_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8958_dapm_widgets,
|
||||||
ARRAY_SIZE(wm8958_dapm_widgets));
|
ARRAY_SIZE(wm8958_dapm_widgets));
|
||||||
if (wm8994->revision < 1) {
|
if (control->revision < 1) {
|
||||||
snd_soc_dapm_new_controls(dapm, wm8994_lateclk_revd_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8994_lateclk_revd_widgets,
|
||||||
ARRAY_SIZE(wm8994_lateclk_revd_widgets));
|
ARRAY_SIZE(wm8994_lateclk_revd_widgets));
|
||||||
snd_soc_dapm_new_controls(dapm, wm8994_adc_revd_widgets,
|
snd_soc_dapm_new_controls(dapm, wm8994_adc_revd_widgets,
|
||||||
@ -4215,7 +4214,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
||||||
ARRAY_SIZE(wm8994_intercon));
|
ARRAY_SIZE(wm8994_intercon));
|
||||||
|
|
||||||
if (wm8994->revision < 4) {
|
if (control->revision < 4) {
|
||||||
snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
||||||
ARRAY_SIZE(wm8994_revd_intercon));
|
ARRAY_SIZE(wm8994_revd_intercon));
|
||||||
snd_soc_dapm_add_routes(dapm, wm8994_lateclk_revd_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_lateclk_revd_intercon,
|
||||||
@ -4226,7 +4225,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM8958:
|
case WM8958:
|
||||||
if (wm8994->revision < 1) {
|
if (control->revision < 1) {
|
||||||
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_intercon,
|
||||||
ARRAY_SIZE(wm8994_intercon));
|
ARRAY_SIZE(wm8994_intercon));
|
||||||
snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
snd_soc_dapm_add_routes(dapm, wm8994_revd_intercon,
|
||||||
|
@ -147,8 +147,6 @@ struct wm8994_priv {
|
|||||||
wm1811_mic_id_cb mic_id_cb;
|
wm1811_mic_id_cb mic_id_cb;
|
||||||
void *mic_id_cb_data;
|
void *mic_id_cb_data;
|
||||||
|
|
||||||
int revision;
|
|
||||||
|
|
||||||
unsigned int aif1clk_enable:1;
|
unsigned int aif1clk_enable:1;
|
||||||
unsigned int aif2clk_enable:1;
|
unsigned int aif2clk_enable:1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user