Changeset 358 for GPL/branches/uniaud32-2.0/alsa-kernel/pci/intel8x0.c
- Timestamp:
- Jul 16, 2008, 11:53:49 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-2.0/alsa-kernel/pci/intel8x0.c
r305 r358 158 158 #define ICH_PCM_SPDIF_1011 0xc0000000 /* s/pdif pcm on slots 10&11 */ 159 159 #define ICH_PCM_20BIT 0x00400000 /* 20-bit samples (ICH4) */ 160 #define ICH_PCM_246_MASK 0x00300000 /* 6 channels (not all chips) */ 160 #define ICH_PCM_246_MASK 0x00300000 /* chan mask (not all chips) */ 161 #define ICH_PCM_8 0x00300000 /* 8 channels (not all chips) */ 161 162 #define ICH_PCM_6 0x00200000 /* 6 channels (not all chips) */ 162 163 #define ICH_PCM_4 0x00100000 /* 4 channels (not all chips) */ … … 385 386 unsigned multi4: 1, 386 387 multi6: 1, 388 multi8 :1, 387 389 dra: 1, 388 390 smp20bit: 1; … … 713 715 { 714 716 size = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; 715 change_page_attr(virt_to_page(buf), size, nocache ? PAGE_KERNEL_NOCACHE : PAGE_KERNEL); 716 global_flush_tlb(); 717 if (nocache) 718 set_pages_uc(virt_to_page(buf), size); 719 else 720 set_pages_wb(virt_to_page(buf), size); 717 721 } 718 722 #else 719 #define fill_nocache(buf, size,nocache)723 #define fill_nocache(buf, size, nocache) do { ; } while (0) 720 724 #endif 721 725 … … 998 1002 else if (runtime->channels == 6) 999 1003 cnt |= ICH_PCM_6; 1004 else if (runtime->channels == 8) 1005 cnt |= ICH_PCM_8; 1000 1006 if (chip->device_type == DEVICE_NFORCE) { 1001 1007 /* reset to 2ch once to keep the 6 channel data in alignment, … … 1107 1113 }; 1108 1114 1115 static unsigned int channels8[] = { 1116 2, 4, 6, 8, 1117 }; 1118 1119 static struct snd_pcm_hw_constraint_list hw_constraints_channels8 = { 1120 .count = ARRAY_SIZE(channels8), 1121 .list = channels8, 1122 .mask = 0, 1123 }; 1124 1109 1125 static int snd_intel8x0_pcm_open(struct snd_pcm_substream *substream, struct ichdev *ichdev) 1110 1126 { … … 1137 1153 return err; 1138 1154 1139 if (chip->multi6) { 1155 if (chip->multi8) { 1156 runtime->hw.channels_max = 8; 1157 snd_pcm_hw_constraint_list(runtime, 0, 1158 SNDRV_PCM_HW_PARAM_CHANNELS, 1159 &hw_constraints_channels8); 1160 } else if (chip->multi6) { 1140 1161 runtime->hw.channels_max = 6; 1141 1162 snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, … … 1711 1732 1712 1733 static struct ac97_quirk ac97_quirks[] __devinitdata = { 1734 { 1735 .subvendor = 0x0e11, 1736 .subdevice = 0x000e, 1737 .name = "Compaq Deskpro EN", /* AD1885 */ 1738 .type = AC97_TUNE_HP_ONLY 1739 }, 1713 1740 { 1714 1741 .subvendor = 0x0e11, … … 2200 2227 if (pbus->pcms[0].r[0].slots & (1 << AC97_SLOT_PCM_SLEFT)) { 2201 2228 chip->multi4 = 1; 2202 if (pbus->pcms[0].r[0].slots & (1 << AC97_SLOT_LFE)) 2229 if (pbus->pcms[0].r[0].slots & (1 << AC97_SLOT_LFE)) { 2203 2230 chip->multi6 = 1; 2231 if (chip->ac97[0]->flags & AC97_HAS_8CH) 2232 chip->multi8 = 1; 2233 } 2204 2234 } 2205 2235 if (pbus->pcms[0].r[1].rslots[0]) { … … 2443 2473 } 2444 2474 /* --- */ 2445 synchronize_irq(chip->irq); 2475 2446 2476 __hw_end: 2447 2477 if (chip->irq >= 0) … … 2492 2522 2493 2523 if (chip->irq >= 0) { 2494 synchronize_irq(chip->irq);2495 2524 free_irq(chip->irq, chip); 2496 2525 chip->irq = -1; … … 2645 2674 t *= 1000000; 2646 2675 t += stop_time.tv_usec - start_time.tv_usec; 2647 printk(KERN_INFO "%s: measured %lu usecs\n", __ FUNCTION__, t);2676 printk(KERN_INFO "%s: measured %lu usecs\n", __func__, t); 2648 2677 if (t == 0) { 2649 2678 snd_printk(KERN_ERR "?? calculation error..\n");
Note:
See TracChangeset
for help on using the changeset viewer.