···912912 models depending on the codec chip. The list of available models913913 is found in HD-Audio-Models.txt914914915915- The model name "genric" is treated as a special case. When this915915+ The model name "generic" is treated as a special case. When this916916 model is given, the driver uses the generic codec parser without917917 "codec-patch". It's sometimes good for testing and debugging.918918
+1-1
Documentation/sound/alsa/seq_oss.html
···285285<H4>2862867.2.4 Close Callback</H4>287287The <TT>close</TT> callback is called when this device is closed by the288288-applicaion. If any private data was allocated in open callback, it must288288+application. If any private data was allocated in open callback, it must289289be released in the close callback. The deletion of ALSA port should be290290done here, too. This callback must not be NULL.291291<H4>
+12-2
sound/core/seq/oss/seq_oss_event.c
···285285static int286286note_on_event(struct seq_oss_devinfo *dp, int dev, int ch, int note, int vel, struct snd_seq_event *ev)287287{288288- struct seq_oss_synthinfo *info = &dp->synths[dev];288288+ struct seq_oss_synthinfo *info;289289+290290+ if (!snd_seq_oss_synth_is_valid(dp, dev))291291+ return -ENXIO;292292+293293+ info = &dp->synths[dev];289294 switch (info->arg.event_passing) {290295 case SNDRV_SEQ_OSS_PROCESS_EVENTS:291296 if (! info->ch || ch < 0 || ch >= info->nr_voices) {···345340static int346341note_off_event(struct seq_oss_devinfo *dp, int dev, int ch, int note, int vel, struct snd_seq_event *ev)347342{348348- struct seq_oss_synthinfo *info = &dp->synths[dev];343343+ struct seq_oss_synthinfo *info;344344+345345+ if (!snd_seq_oss_synth_is_valid(dp, dev))346346+ return -ENXIO;347347+348348+ info = &dp->synths[dev];349349 switch (info->arg.event_passing) {350350 case SNDRV_SEQ_OSS_PROCESS_EVENTS:351351 if (! info->ch || ch < 0 || ch >= info->nr_voices) {
···213213 }214214 if (!changed)215215 return 0;216216- return slave_put_val(slave, ucontrol);216216+ err = slave_put_val(slave, ucontrol);217217+ if (err < 0)218218+ return err;219219+ return 1;217220}218221219222static int slave_tlv_cmd(struct snd_kcontrol *kcontrol,
+6
sound/oss/sequencer.c
···545545 case MIDI_PGM_CHANGE:546546 if (seq_mode == SEQ_2)547547 {548548+ if (chn > 15)549549+ break;550550+548551 synth_devs[dev]->chn_info[chn].pgm_num = p1;549552 if ((int) dev >= num_synths)550553 synth_devs[dev]->set_instr(dev, chn, p1);···599596 case MIDI_PITCH_BEND:600597 if (seq_mode == SEQ_2)601598 {599599+ if (chn > 15)600600+ break;601601+602602 synth_devs[dev]->chn_info[chn].bender_value = w14;603603604604 if ((int) dev < num_synths)
···244244 usb_ifnum_to_if(dev, ctrlif)->intf_assoc;245245246246 if (!assoc) {247247+ /*248248+ * Firmware writers cannot count to three. So to find249249+ * the IAD on the NuForce UDH-100, also check the next250250+ * interface.251251+ */252252+ struct usb_interface *iface =253253+ usb_ifnum_to_if(dev, ctrlif + 1);254254+ if (iface &&255255+ iface->intf_assoc &&256256+ iface->intf_assoc->bFunctionClass == USB_CLASS_AUDIO &&257257+ iface->intf_assoc->bFunctionProtocol == UAC_VERSION_2)258258+ assoc = iface->intf_assoc;259259+ }260260+261261+ if (!assoc) {247262 snd_printk(KERN_ERR "Audio class v2 interfaces need an interface association\n");248263 return -EINVAL;249264 }