Commit 8bc174e9 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Handle a few verbs as read-only

Although they can be written, handle a few verbs as read-only in
regmap interface: CONFIG_DEFAULT, CONV and CVT_CHAN_COUNT.  These are
either updated in PCM or HDMI management code in a volatile manner, or
just needed only as parameter, thus they don't need to be written at
resume sync.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 40ba66a7
...@@ -88,7 +88,6 @@ static bool hda_writeable_reg(struct device *dev, unsigned int reg) ...@@ -88,7 +88,6 @@ static bool hda_writeable_reg(struct device *dev, unsigned int reg)
switch (verb) { switch (verb) {
case AC_VERB_GET_CONNECT_SEL: case AC_VERB_GET_CONNECT_SEL:
case AC_VERB_GET_SDI_SELECT: case AC_VERB_GET_SDI_SELECT:
case AC_VERB_GET_CONV:
case AC_VERB_GET_PIN_WIDGET_CONTROL: case AC_VERB_GET_PIN_WIDGET_CONTROL:
case AC_VERB_GET_UNSOLICITED_RESPONSE: /* only as SET_UNSOLICITED_ENABLE */ case AC_VERB_GET_UNSOLICITED_RESPONSE: /* only as SET_UNSOLICITED_ENABLE */
case AC_VERB_GET_BEEP_CONTROL: case AC_VERB_GET_BEEP_CONTROL:
...@@ -96,14 +95,12 @@ static bool hda_writeable_reg(struct device *dev, unsigned int reg) ...@@ -96,14 +95,12 @@ static bool hda_writeable_reg(struct device *dev, unsigned int reg)
case AC_VERB_GET_DIGI_CONVERT_1: case AC_VERB_GET_DIGI_CONVERT_1:
case AC_VERB_GET_DIGI_CONVERT_2: /* only for beep control */ case AC_VERB_GET_DIGI_CONVERT_2: /* only for beep control */
case AC_VERB_GET_VOLUME_KNOB_CONTROL: case AC_VERB_GET_VOLUME_KNOB_CONTROL:
case AC_VERB_GET_CONFIG_DEFAULT:
case AC_VERB_GET_GPIO_MASK: case AC_VERB_GET_GPIO_MASK:
case AC_VERB_GET_GPIO_DIRECTION: case AC_VERB_GET_GPIO_DIRECTION:
case AC_VERB_GET_GPIO_DATA: /* not for volatile read */ case AC_VERB_GET_GPIO_DATA: /* not for volatile read */
case AC_VERB_GET_GPIO_WAKE_MASK: case AC_VERB_GET_GPIO_WAKE_MASK:
case AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK: case AC_VERB_GET_GPIO_UNSOLICITED_RSP_MASK:
case AC_VERB_GET_GPIO_STICKY_MASK: case AC_VERB_GET_GPIO_STICKY_MASK:
case AC_VERB_GET_CVT_CHAN_COUNT:
return true; return true;
} }
...@@ -123,6 +120,13 @@ static bool hda_readable_reg(struct device *dev, unsigned int reg) ...@@ -123,6 +120,13 @@ static bool hda_readable_reg(struct device *dev, unsigned int reg)
case AC_VERB_GET_CONNECT_LIST: case AC_VERB_GET_CONNECT_LIST:
case AC_VERB_GET_SUBSYSTEM_ID: case AC_VERB_GET_SUBSYSTEM_ID:
return true; return true;
/* below are basically writable, but disabled for reducing unnecessary
* writes at sync
*/
case AC_VERB_GET_CONFIG_DEFAULT: /* usually just read */
case AC_VERB_GET_CONV: /* managed in PCM code */
case AC_VERB_GET_CVT_CHAN_COUNT: /* managed in HDMI CA code */
return true;
} }
return hda_writeable_reg(dev, reg); return hda_writeable_reg(dev, reg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment