diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /sound/pci/emu10k1 | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'sound/pci/emu10k1')
-rw-r--r-- | sound/pci/emu10k1/emu10k1_main.c | 10 | ||||
-rw-r--r-- | sound/pci/emu10k1/emu10k1x.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/emufx.c | 5 | ||||
-rw-r--r-- | sound/pci/emu10k1/emumixer.c | 10 | ||||
-rw-r--r-- | sound/pci/emu10k1/emumpu401.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/memory.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/p16v.c | 2 | ||||
-rw-r--r-- | sound/pci/emu10k1/p16v.h | 6 |
8 files changed, 29 insertions, 10 deletions
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 66c7fb3ced3e..15f0161ce4a2 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c | |||
@@ -926,7 +926,7 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu) | |||
926 | snd_emu1010_fpga_write(emu, EMU_HANA_MIDI_IN, 0x19); | 926 | snd_emu1010_fpga_write(emu, EMU_HANA_MIDI_IN, 0x19); |
927 | /* Unknown. */ | 927 | /* Unknown. */ |
928 | snd_emu1010_fpga_write(emu, EMU_HANA_MIDI_OUT, 0x0c); | 928 | snd_emu1010_fpga_write(emu, EMU_HANA_MIDI_OUT, 0x0c); |
929 | /* IRQ Enable: Alll on */ | 929 | /* IRQ Enable: All on */ |
930 | /* snd_emu1010_fpga_write(emu, 0x09, 0x0f ); */ | 930 | /* snd_emu1010_fpga_write(emu, 0x09, 0x0f ); */ |
931 | /* IRQ Enable: All off */ | 931 | /* IRQ Enable: All off */ |
932 | snd_emu1010_fpga_write(emu, EMU_HANA_IRQ_ENABLE, 0x00); | 932 | snd_emu1010_fpga_write(emu, EMU_HANA_IRQ_ENABLE, 0x00); |
@@ -1440,6 +1440,14 @@ static struct snd_emu_chip_details emu_chip_details[] = { | |||
1440 | .ca0102_chip = 1, | 1440 | .ca0102_chip = 1, |
1441 | .spk71 = 1, | 1441 | .spk71 = 1, |
1442 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 */ | 1442 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 */ |
1443 | /* EMU0404 PCIe */ | ||
1444 | {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x40051102, | ||
1445 | .driver = "Audigy2", .name = "E-mu 0404 PCIe [MAEM8984]", | ||
1446 | .id = "EMU0404", | ||
1447 | .emu10k2_chip = 1, | ||
1448 | .ca0108_chip = 1, | ||
1449 | .spk71 = 1, | ||
1450 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 PCIe ver_03 */ | ||
1443 | /* Note that all E-mu cards require kernel 2.6 or newer. */ | 1451 | /* Note that all E-mu cards require kernel 2.6 or newer. */ |
1444 | {.vendor = 0x1102, .device = 0x0008, | 1452 | {.vendor = 0x1102, .device = 0x0008, |
1445 | .driver = "Audigy2", .name = "SB Audigy 2 Value [Unknown]", | 1453 | .driver = "Audigy2", .name = "SB Audigy 2 Value [Unknown]", |
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index df47f738098d..0c701e4ec8a5 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c | |||
@@ -114,7 +114,7 @@ MODULE_PARM_DESC(enable, "Enable the EMU10K1X soundcard."); | |||
114 | */ | 114 | */ |
115 | #define PLAYBACK_LIST_SIZE 0x01 /* Size of list in bytes << 16. E.g. 8 periods -> 0x00380000 */ | 115 | #define PLAYBACK_LIST_SIZE 0x01 /* Size of list in bytes << 16. E.g. 8 periods -> 0x00380000 */ |
116 | #define PLAYBACK_LIST_PTR 0x02 /* Pointer to the current period being played */ | 116 | #define PLAYBACK_LIST_PTR 0x02 /* Pointer to the current period being played */ |
117 | #define PLAYBACK_DMA_ADDR 0x04 /* Playback DMA addresss */ | 117 | #define PLAYBACK_DMA_ADDR 0x04 /* Playback DMA address */ |
118 | #define PLAYBACK_PERIOD_SIZE 0x05 /* Playback period size */ | 118 | #define PLAYBACK_PERIOD_SIZE 0x05 /* Playback period size */ |
119 | #define PLAYBACK_POINTER 0x06 /* Playback period pointer. Sample currently in DAC */ | 119 | #define PLAYBACK_POINTER 0x06 /* Playback period pointer. Sample currently in DAC */ |
120 | #define PLAYBACK_UNKNOWN1 0x07 | 120 | #define PLAYBACK_UNKNOWN1 0x07 |
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index 7a9401462c1c..dae4050ede5c 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c | |||
@@ -303,6 +303,9 @@ static const u32 db_table[101] = { | |||
303 | static const DECLARE_TLV_DB_SCALE(snd_emu10k1_db_scale1, -4000, 40, 1); | 303 | static const DECLARE_TLV_DB_SCALE(snd_emu10k1_db_scale1, -4000, 40, 1); |
304 | static const DECLARE_TLV_DB_LINEAR(snd_emu10k1_db_linear, TLV_DB_GAIN_MUTE, 0); | 304 | static const DECLARE_TLV_DB_LINEAR(snd_emu10k1_db_linear, TLV_DB_GAIN_MUTE, 0); |
305 | 305 | ||
306 | /* EMU10K1 bass/treble db gain */ | ||
307 | static const DECLARE_TLV_DB_SCALE(snd_emu10k1_bass_treble_db_scale, -1200, 60, 0); | ||
308 | |||
306 | static const u32 onoff_table[2] = { | 309 | static const u32 onoff_table[2] = { |
307 | 0x00000000, 0x00000001 | 310 | 0x00000000, 0x00000001 |
308 | }; | 311 | }; |
@@ -2163,6 +2166,7 @@ static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) | |||
2163 | ctl->min = 0; | 2166 | ctl->min = 0; |
2164 | ctl->max = 40; | 2167 | ctl->max = 40; |
2165 | ctl->value[0] = ctl->value[1] = 20; | 2168 | ctl->value[0] = ctl->value[1] = 20; |
2169 | ctl->tlv = snd_emu10k1_bass_treble_db_scale; | ||
2166 | ctl->translation = EMU10K1_GPR_TRANSLATION_BASS; | 2170 | ctl->translation = EMU10K1_GPR_TRANSLATION_BASS; |
2167 | ctl = &controls[i + 1]; | 2171 | ctl = &controls[i + 1]; |
2168 | ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; | 2172 | ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; |
@@ -2172,6 +2176,7 @@ static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu) | |||
2172 | ctl->min = 0; | 2176 | ctl->min = 0; |
2173 | ctl->max = 40; | 2177 | ctl->max = 40; |
2174 | ctl->value[0] = ctl->value[1] = 20; | 2178 | ctl->value[0] = ctl->value[1] = 20; |
2179 | ctl->tlv = snd_emu10k1_bass_treble_db_scale; | ||
2175 | ctl->translation = EMU10K1_GPR_TRANSLATION_TREBLE; | 2180 | ctl->translation = EMU10K1_GPR_TRANSLATION_TREBLE; |
2176 | 2181 | ||
2177 | #define BASS_GPR 0x8c | 2182 | #define BASS_GPR 0x8c |
diff --git a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c index 05afe06e353a..9d890a5aec5a 100644 --- a/sound/pci/emu10k1/emumixer.c +++ b/sound/pci/emu10k1/emumixer.c | |||
@@ -1729,8 +1729,6 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, | |||
1729 | "Master Mono Playback Volume", | 1729 | "Master Mono Playback Volume", |
1730 | "PCM Out Path & Mute", | 1730 | "PCM Out Path & Mute", |
1731 | "Mono Output Select", | 1731 | "Mono Output Select", |
1732 | "Front Playback Switch", | ||
1733 | "Front Playback Volume", | ||
1734 | "Surround Playback Switch", | 1732 | "Surround Playback Switch", |
1735 | "Surround Playback Volume", | 1733 | "Surround Playback Volume", |
1736 | "Center Playback Switch", | 1734 | "Center Playback Switch", |
@@ -1879,6 +1877,8 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, | |||
1879 | emu->rear_ac97 = 1; | 1877 | emu->rear_ac97 = 1; |
1880 | snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE|AC97SLOT_REAR_LEFT|AC97SLOT_REAR_RIGHT); | 1878 | snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE|AC97SLOT_REAR_LEFT|AC97SLOT_REAR_RIGHT); |
1881 | snd_ac97_write_cache(emu->ac97, AC97_HEADPHONE, 0x0202); | 1879 | snd_ac97_write_cache(emu->ac97, AC97_HEADPHONE, 0x0202); |
1880 | remove_ctl(card,"Front Playback Volume"); | ||
1881 | remove_ctl(card,"Front Playback Switch"); | ||
1882 | } | 1882 | } |
1883 | /* remove unused AC97 controls */ | 1883 | /* remove unused AC97 controls */ |
1884 | snd_ac97_write_cache(emu->ac97, AC97_SURROUND_MASTER, 0x0202); | 1884 | snd_ac97_write_cache(emu->ac97, AC97_SURROUND_MASTER, 0x0202); |
@@ -1913,6 +1913,12 @@ int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu, | |||
1913 | for (; *c; c += 2) | 1913 | for (; *c; c += 2) |
1914 | rename_ctl(card, c[0], c[1]); | 1914 | rename_ctl(card, c[0], c[1]); |
1915 | 1915 | ||
1916 | if (emu->card_capabilities->subsystem == 0x80401102) { /* SB Live! Platinum CT4760P */ | ||
1917 | remove_ctl(card, "Center Playback Volume"); | ||
1918 | remove_ctl(card, "LFE Playback Volume"); | ||
1919 | remove_ctl(card, "Wave Center Playback Volume"); | ||
1920 | remove_ctl(card, "Wave LFE Playback Volume"); | ||
1921 | } | ||
1916 | if (emu->card_capabilities->subsystem == 0x20071102) { /* Audigy 4 Pro */ | 1922 | if (emu->card_capabilities->subsystem == 0x20071102) { /* Audigy 4 Pro */ |
1917 | rename_ctl(card, "Line2 Capture Volume", "Line1/Mic Capture Volume"); | 1923 | rename_ctl(card, "Line2 Capture Volume", "Line1/Mic Capture Volume"); |
1918 | rename_ctl(card, "Analog Mix Capture Volume", "Line2 Capture Volume"); | 1924 | rename_ctl(card, "Analog Mix Capture Volume", "Line2 Capture Volume"); |
diff --git a/sound/pci/emu10k1/emumpu401.c b/sound/pci/emu10k1/emumpu401.c index 8578c70c61f2..bab564824efe 100644 --- a/sound/pci/emu10k1/emumpu401.c +++ b/sound/pci/emu10k1/emumpu401.c | |||
@@ -321,7 +321,7 @@ static struct snd_rawmidi_ops snd_emu10k1_midi_input = | |||
321 | 321 | ||
322 | static void snd_emu10k1_midi_free(struct snd_rawmidi *rmidi) | 322 | static void snd_emu10k1_midi_free(struct snd_rawmidi *rmidi) |
323 | { | 323 | { |
324 | struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)rmidi->private_data; | 324 | struct snd_emu10k1_midi *midi = rmidi->private_data; |
325 | midi->interrupt = NULL; | 325 | midi->interrupt = NULL; |
326 | midi->rmidi = NULL; | 326 | midi->rmidi = NULL; |
327 | } | 327 | } |
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c index 957a311514c8..c250614dadd0 100644 --- a/sound/pci/emu10k1/memory.c +++ b/sound/pci/emu10k1/memory.c | |||
@@ -248,7 +248,7 @@ static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr) | |||
248 | /* | 248 | /* |
249 | * map the given memory block on PTB. | 249 | * map the given memory block on PTB. |
250 | * if the block is already mapped, update the link order. | 250 | * if the block is already mapped, update the link order. |
251 | * if no empty pages are found, tries to release unsed memory blocks | 251 | * if no empty pages are found, tries to release unused memory blocks |
252 | * and retry the mapping. | 252 | * and retry the mapping. |
253 | */ | 253 | */ |
254 | int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) | 254 | int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) |
diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c index 61b8ab39800f..a81dc44228ea 100644 --- a/sound/pci/emu10k1/p16v.c +++ b/sound/pci/emu10k1/p16v.c | |||
@@ -69,7 +69,7 @@ | |||
69 | * ADC: Philips 1361T (Stereo 24bit) | 69 | * ADC: Philips 1361T (Stereo 24bit) |
70 | * DAC: CS4382-K (8-channel, 24bit, 192Khz) | 70 | * DAC: CS4382-K (8-channel, 24bit, 192Khz) |
71 | * | 71 | * |
72 | * This code was initally based on code from ALSA's emu10k1x.c which is: | 72 | * This code was initially based on code from ALSA's emu10k1x.c which is: |
73 | * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> | 73 | * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> |
74 | * | 74 | * |
75 | * This program is free software; you can redistribute it and/or modify | 75 | * This program is free software; you can redistribute it and/or modify |
diff --git a/sound/pci/emu10k1/p16v.h b/sound/pci/emu10k1/p16v.h index 153214940336..4e0ee1a9747a 100644 --- a/sound/pci/emu10k1/p16v.h +++ b/sound/pci/emu10k1/p16v.h | |||
@@ -59,7 +59,7 @@ | |||
59 | * ADC: Philips 1361T (Stereo 24bit) | 59 | * ADC: Philips 1361T (Stereo 24bit) |
60 | * DAC: CS4382-K (8-channel, 24bit, 192Khz) | 60 | * DAC: CS4382-K (8-channel, 24bit, 192Khz) |
61 | * | 61 | * |
62 | * This code was initally based on code from ALSA's emu10k1x.c which is: | 62 | * This code was initially based on code from ALSA's emu10k1x.c which is: |
63 | * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> | 63 | * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> |
64 | * | 64 | * |
65 | * This program is free software; you can redistribute it and/or modify | 65 | * This program is free software; you can redistribute it and/or modify |
@@ -86,7 +86,7 @@ | |||
86 | * The sample rate is also controlled by the same registers that control the rate of the EMU10K2 sample rate converters. | 86 | * The sample rate is also controlled by the same registers that control the rate of the EMU10K2 sample rate converters. |
87 | */ | 87 | */ |
88 | 88 | ||
89 | /* Initally all registers from 0x00 to 0x3f have zero contents. */ | 89 | /* Initially all registers from 0x00 to 0x3f have zero contents. */ |
90 | #define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */ | 90 | #define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */ |
91 | /* One list entry: 4 bytes for DMA address, | 91 | /* One list entry: 4 bytes for DMA address, |
92 | * 4 bytes for period_size << 16. | 92 | * 4 bytes for period_size << 16. |
@@ -96,7 +96,7 @@ | |||
96 | #define PLAYBACK_LIST_SIZE 0x01 /* Size of list in bytes << 16. E.g. 8 periods -> 0x00380000 */ | 96 | #define PLAYBACK_LIST_SIZE 0x01 /* Size of list in bytes << 16. E.g. 8 periods -> 0x00380000 */ |
97 | #define PLAYBACK_LIST_PTR 0x02 /* Pointer to the current period being played */ | 97 | #define PLAYBACK_LIST_PTR 0x02 /* Pointer to the current period being played */ |
98 | #define PLAYBACK_UNKNOWN3 0x03 /* Not used */ | 98 | #define PLAYBACK_UNKNOWN3 0x03 /* Not used */ |
99 | #define PLAYBACK_DMA_ADDR 0x04 /* Playback DMA addresss */ | 99 | #define PLAYBACK_DMA_ADDR 0x04 /* Playback DMA address */ |
100 | #define PLAYBACK_PERIOD_SIZE 0x05 /* Playback period size. win2000 uses 0x04000000 */ | 100 | #define PLAYBACK_PERIOD_SIZE 0x05 /* Playback period size. win2000 uses 0x04000000 */ |
101 | #define PLAYBACK_POINTER 0x06 /* Playback period pointer. Used with PLAYBACK_LIST_PTR to determine buffer position currently in DAC */ | 101 | #define PLAYBACK_POINTER 0x06 /* Playback period pointer. Used with PLAYBACK_LIST_PTR to determine buffer position currently in DAC */ |
102 | #define PLAYBACK_FIFO_END_ADDRESS 0x07 /* Playback FIFO end address */ | 102 | #define PLAYBACK_FIFO_END_ADDRESS 0x07 /* Playback FIFO end address */ |