Commit 40a03b75 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'sound-fix-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
 "Just a few additional small and trivial fixes"

* tag 'sound-fix-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
  ALSA: hda - Fix the return value if cb func is already registered
  ALSA: usb-audio: Line6 Pod Go interface requires static clock rate quirk
  ALSA: hda/ca0132: make some const arrays static, makes object smaller
  ALSA: sparc: dbri: fix repeated word 'the'
parents fc03b2d6 033e4040
...@@ -275,16 +275,21 @@ int snd_hda_jack_detect_state_mst(struct hda_codec *codec, ...@@ -275,16 +275,21 @@ int snd_hda_jack_detect_state_mst(struct hda_codec *codec,
} }
EXPORT_SYMBOL_GPL(snd_hda_jack_detect_state_mst); EXPORT_SYMBOL_GPL(snd_hda_jack_detect_state_mst);
static bool func_is_already_in_callback_list(struct hda_jack_tbl *jack, static struct hda_jack_callback *
find_callback_from_list(struct hda_jack_tbl *jack,
hda_jack_callback_fn func) hda_jack_callback_fn func)
{ {
struct hda_jack_callback *cb; struct hda_jack_callback *cb;
if (!func)
return NULL;
for (cb = jack->callback; cb; cb = cb->next) { for (cb = jack->callback; cb; cb = cb->next) {
if (cb->func == func) if (cb->func == func)
return true; return cb;
} }
return false;
return NULL;
} }
/** /**
...@@ -309,7 +314,10 @@ snd_hda_jack_detect_enable_callback_mst(struct hda_codec *codec, hda_nid_t nid, ...@@ -309,7 +314,10 @@ snd_hda_jack_detect_enable_callback_mst(struct hda_codec *codec, hda_nid_t nid,
jack = snd_hda_jack_tbl_new(codec, nid, dev_id); jack = snd_hda_jack_tbl_new(codec, nid, dev_id);
if (!jack) if (!jack)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
if (func && !func_is_already_in_callback_list(jack, func)) {
callback = find_callback_from_list(jack, func);
if (func && !callback) {
callback = kzalloc(sizeof(*callback), GFP_KERNEL); callback = kzalloc(sizeof(*callback), GFP_KERNEL);
if (!callback) if (!callback)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
......
...@@ -7910,8 +7910,12 @@ static void ae7_post_dsp_asi_stream_setup(struct hda_codec *codec) ...@@ -7910,8 +7910,12 @@ static void ae7_post_dsp_asi_stream_setup(struct hda_codec *codec)
static void ae7_post_dsp_pll_setup(struct hda_codec *codec) static void ae7_post_dsp_pll_setup(struct hda_codec *codec)
{ {
const unsigned int addr[] = { 0x41, 0x45, 0x40, 0x43, 0x51 }; static const unsigned int addr[] = {
const unsigned int data[] = { 0xc8, 0xcc, 0xcb, 0xc7, 0x8d }; 0x41, 0x45, 0x40, 0x43, 0x51
};
static const unsigned int data[] = {
0xc8, 0xcc, 0xcb, 0xc7, 0x8d
};
unsigned int i; unsigned int i;
for (i = 0; i < ARRAY_SIZE(addr); i++) { for (i = 0; i < ARRAY_SIZE(addr); i++) {
...@@ -7925,10 +7929,12 @@ static void ae7_post_dsp_pll_setup(struct hda_codec *codec) ...@@ -7925,10 +7929,12 @@ static void ae7_post_dsp_pll_setup(struct hda_codec *codec)
static void ae7_post_dsp_asi_setup_ports(struct hda_codec *codec) static void ae7_post_dsp_asi_setup_ports(struct hda_codec *codec)
{ {
struct ca0132_spec *spec = codec->spec; struct ca0132_spec *spec = codec->spec;
const unsigned int target[] = { 0x0b, 0x04, 0x06, 0x0a, 0x0c, 0x11, static const unsigned int target[] = {
0x12, 0x13, 0x14 }; 0x0b, 0x04, 0x06, 0x0a, 0x0c, 0x11, 0x12, 0x13, 0x14
const unsigned int data[] = { 0x12, 0x00, 0x48, 0x05, 0x5f, 0xff, };
0xff, 0xff, 0x7f }; static const unsigned int data[] = {
0x12, 0x00, 0x48, 0x05, 0x5f, 0xff, 0xff, 0xff, 0x7f
};
unsigned int i; unsigned int i;
mutex_lock(&spec->chipio_mutex); mutex_lock(&spec->chipio_mutex);
......
...@@ -620,7 +620,7 @@ A circular command buffer is used here. A new command is being added ...@@ -620,7 +620,7 @@ A circular command buffer is used here. A new command is being added
while another can be executed. The scheme works by adding two WAIT commands while another can be executed. The scheme works by adding two WAIT commands
after each sent batch of commands. When the next batch is prepared it is after each sent batch of commands. When the next batch is prepared it is
added after the WAIT commands then the WAITs are replaced with single JUMP added after the WAIT commands then the WAITs are replaced with single JUMP
command to the new batch. The the DBRI is forced to reread the last WAIT command to the new batch. Then the DBRI is forced to reread the last WAIT
command (replaced by the JUMP by then). If the DBRI is still executing command (replaced by the JUMP by then). If the DBRI is still executing
previous commands the request to reread the WAIT command is ignored. previous commands the request to reread the WAIT command is ignored.
......
...@@ -406,6 +406,7 @@ static int line6_parse_audio_format_rates_quirk(struct snd_usb_audio *chip, ...@@ -406,6 +406,7 @@ static int line6_parse_audio_format_rates_quirk(struct snd_usb_audio *chip,
case USB_ID(0x0e41, 0x4242): /* Line6 Helix Rack */ case USB_ID(0x0e41, 0x4242): /* Line6 Helix Rack */
case USB_ID(0x0e41, 0x4244): /* Line6 Helix LT */ case USB_ID(0x0e41, 0x4244): /* Line6 Helix LT */
case USB_ID(0x0e41, 0x4246): /* Line6 HX-Stomp */ case USB_ID(0x0e41, 0x4246): /* Line6 HX-Stomp */
case USB_ID(0x0e41, 0x4247): /* Line6 Pod Go */
case USB_ID(0x0e41, 0x4248): /* Line6 Helix >= fw 2.82 */ case USB_ID(0x0e41, 0x4248): /* Line6 Helix >= fw 2.82 */
case USB_ID(0x0e41, 0x4249): /* Line6 Helix Rack >= fw 2.82 */ case USB_ID(0x0e41, 0x4249): /* Line6 Helix Rack >= fw 2.82 */
case USB_ID(0x0e41, 0x424a): /* Line6 Helix LT >= fw 2.82 */ case USB_ID(0x0e41, 0x424a): /* Line6 Helix LT >= fw 2.82 */
......
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