Ignore:
Timestamp:
Jul 16, 2008, 11:53:49 AM (17 years ago)
Author:
Paul Smedley
Message:

Update uniaud32-2.0 branch to ALSA 1.0.17

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-2.0/alsa-kernel/pci/intel8x0.c

    r305 r358  
    158158#define   ICH_PCM_SPDIF_1011    0xc0000000      /* s/pdif pcm on slots 10&11 */
    159159#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) */
    161162#define   ICH_PCM_6             0x00200000      /* 6 channels (not all chips) */
    162163#define   ICH_PCM_4             0x00100000      /* 4 channels (not all chips) */
     
    385386        unsigned multi4: 1,
    386387                 multi6: 1,
     388                 multi8 :1,
    387389                 dra: 1,
    388390                 smp20bit: 1;
     
    713715{
    714716        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);
    717721}
    718722#else
    719 #define fill_nocache(buf,size,nocache)
     723#define fill_nocache(buf, size, nocache) do { ; } while (0)
    720724#endif
    721725
     
    9981002                else if (runtime->channels == 6)
    9991003                        cnt |= ICH_PCM_6;
     1004                else if (runtime->channels == 8)
     1005                        cnt |= ICH_PCM_8;
    10001006                if (chip->device_type == DEVICE_NFORCE) {
    10011007                        /* reset to 2ch once to keep the 6 channel data in alignment,
     
    11071113};
    11081114
     1115static unsigned int channels8[] = {
     1116        2, 4, 6, 8,
     1117};
     1118
     1119static struct snd_pcm_hw_constraint_list hw_constraints_channels8 = {
     1120        .count = ARRAY_SIZE(channels8),
     1121        .list = channels8,
     1122        .mask = 0,
     1123};
     1124
    11091125static int snd_intel8x0_pcm_open(struct snd_pcm_substream *substream, struct ichdev *ichdev)
    11101126{
     
    11371153                return err;
    11381154
    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) {
    11401161                runtime->hw.channels_max = 6;
    11411162                snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
     
    17111732
    17121733static 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        },
    17131740        {
    17141741                .subvendor = 0x0e11,
     
    22002227        if (pbus->pcms[0].r[0].slots & (1 << AC97_SLOT_PCM_SLEFT)) {
    22012228                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)) {
    22032230                        chip->multi6 = 1;
     2231                        if (chip->ac97[0]->flags & AC97_HAS_8CH)
     2232                                chip->multi8 = 1;
     2233                }
    22042234        }
    22052235        if (pbus->pcms[0].r[1].rslots[0]) {
     
    24432473        }
    24442474        /* --- */
    2445         synchronize_irq(chip->irq);
     2475
    24462476      __hw_end:
    24472477        if (chip->irq >= 0)
     
    24922522
    24932523        if (chip->irq >= 0) {
    2494                 synchronize_irq(chip->irq);
    24952524                free_irq(chip->irq, chip);
    24962525                chip->irq = -1;
     
    26452674        t *= 1000000;
    26462675        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);
    26482677        if (t == 0) {
    26492678                snd_printk(KERN_ERR "?? calculation error..\n");
Note: See TracChangeset for help on using the changeset viewer.