[ALSA] Suppress error message
[linux-2.6.git] / sound / pci / hda / hda_codec.c
index 9ed117a..5694103 100644 (file)
@@ -51,6 +51,7 @@ static struct hda_vendor_id hda_vendor_ids[] = {
        { 0x10ec, "Realtek" },
        { 0x13f6, "C-Media" },
        { 0x434d, "C-Media" },
+       { 0x8384, "SigmaTel" },
        {} /* terminator */
 };
 
@@ -508,7 +509,7 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr,
        /* FIXME: support for multiple AFGs? */
        codec->afg = look_for_afg_node(codec);
        if (! codec->afg) {
-               snd_printk(KERN_ERR "hda_codec: no AFG node found\n");
+               snd_printdd("hda_codec: no AFG node found\n");
                snd_hda_codec_free(codec);
                return -ENODEV;
        }
@@ -548,6 +549,9 @@ int snd_hda_codec_new(struct hda_bus *bus, unsigned int codec_addr,
 void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid, u32 stream_tag,
                                int channel_id, int format)
 {
+       if (! nid)
+               return;
+
        snd_printdd("hda_codec_setup_stream: NID=0x%x, stream=0x%x, channel=%d, format=0x%x\n",
                    nid, stream_tag, channel_id, format);
        snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CHANNEL_STREAMID,
@@ -658,7 +662,7 @@ static void put_vol_mute(struct hda_codec *codec,
 /*
  * read/write AMP value.  The volume is between 0 to 0x7f, 0x80 = mute bit.
  */
-int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch, int direction, int index)
+static int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch, int direction, int index)
 {
        struct hda_amp_info *info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, direction, index));
        if (! info)
@@ -667,7 +671,7 @@ int snd_hda_codec_amp_read(struct hda_codec *codec, hda_nid_t nid, int ch, int d
        return info->vol[ch];
 }
 
-int snd_hda_codec_amp_write(struct hda_codec *codec, hda_nid_t nid, int ch, int direction, int idx, int val)
+static int snd_hda_codec_amp_write(struct hda_codec *codec, hda_nid_t nid, int ch, int direction, int idx, int val)
 {
        struct hda_amp_info *info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, direction, idx));
        if (! info)
@@ -1448,10 +1452,6 @@ static int set_pcm_default_values(struct hda_codec *codec, struct hda_pcm_stream
                snd_assert(info->nid, return -EINVAL);
                info->ops.prepare = hda_pcm_default_prepare;
        }
-       if (info->ops.prepare == NULL) {
-               snd_assert(info->nid, return -EINVAL);
-               info->ops.prepare = hda_pcm_default_prepare;
-       }
        if (info->ops.cleanup == NULL) {
                snd_assert(info->nid, return -EINVAL);
                info->ops.cleanup = hda_pcm_default_cleanup;
@@ -1530,7 +1530,7 @@ int snd_hda_check_board_config(struct hda_codec *codec, struct hda_board_config
        struct hda_board_config *c;
 
        if (codec->bus->modelname) {
-               for (c = tbl; c->modelname || c->pci_vendor; c++) {
+               for (c = tbl; c->modelname || c->pci_subvendor; c++) {
                        if (c->modelname &&
                            ! strcmp(codec->bus->modelname, c->modelname)) {
                                snd_printd(KERN_INFO "hda_codec: model '%s' is selected\n", c->modelname);
@@ -1543,9 +1543,9 @@ int snd_hda_check_board_config(struct hda_codec *codec, struct hda_board_config
                u16 subsystem_vendor, subsystem_device;
                pci_read_config_word(codec->bus->pci, PCI_SUBSYSTEM_VENDOR_ID, &subsystem_vendor);
                pci_read_config_word(codec->bus->pci, PCI_SUBSYSTEM_ID, &subsystem_device);
-               for (c = tbl; c->modelname || c->pci_vendor; c++) {
-                       if (c->pci_vendor == subsystem_vendor &&
-                           c->pci_device == subsystem_device)
+               for (c = tbl; c->modelname || c->pci_subvendor; c++) {
+                       if (c->pci_subvendor == subsystem_vendor &&
+                           c->pci_subdevice == subsystem_device)
                                return c->config;
                }
        }