diff options
-rw-r--r-- | firmware/Makefile | 2 | ||||
-rw-r--r-- | firmware/WHENCE | 14 | ||||
-rw-r--r-- | firmware/ess/maestro3_assp_kernel.fw.ihex | 120 | ||||
-rw-r--r-- | firmware/ess/maestro3_assp_minisrc.fw.ihex | 51 | ||||
-rw-r--r-- | sound/pci/Kconfig | 10 | ||||
-rw-r--r-- | sound/pci/maestro3.c | 171 |
6 files changed, 187 insertions, 181 deletions
diff --git a/firmware/Makefile b/firmware/Makefile index ea4a883f5c60..f312ac0e8979 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
@@ -21,6 +21,8 @@ fw-external-y := $(subst ",,$(CONFIG_EXTRA_FIRMWARE)) | |||
21 | # But be aware that the config file might not be included at all. | 21 | # But be aware that the config file might not be included at all. |
22 | 22 | ||
23 | fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp | 23 | fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp |
24 | fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ | ||
25 | ess/maestro3_assp_minisrc.fw | ||
24 | 26 | ||
25 | fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) | 27 | fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) |
26 | 28 | ||
diff --git a/firmware/WHENCE b/firmware/WHENCE index 89ca95b90960..c08dbc887cb9 100644 --- a/firmware/WHENCE +++ b/firmware/WHENCE | |||
@@ -17,3 +17,17 @@ Licence: Unknown | |||
17 | Found in alsa-firmware package in hex form; no licensing information. | 17 | Found in alsa-firmware package in hex form; no licensing information. |
18 | 18 | ||
19 | -------------------------------------------------------------------------- | 19 | -------------------------------------------------------------------------- |
20 | |||
21 | Driver: maestro3 -- ESS Allegro Maestro3 audio device | ||
22 | |||
23 | File: ess/maestro3_assp_kernel.fw | ||
24 | File: ess/maestro3_assp_minisrc.fw | ||
25 | |||
26 | Licence: Unknown | ||
27 | |||
28 | Found in alsa-firmware package in hex form with a comment claiming to | ||
29 | be GPLv2+, but without source -- and with another comment saying "ESS | ||
30 | drops binary dsp code images on our heads, but we don't get to see | ||
31 | specs on the dsp." | ||
32 | |||
33 | -------------------------------------------------------------------------- | ||
diff --git a/firmware/ess/maestro3_assp_kernel.fw.ihex b/firmware/ess/maestro3_assp_kernel.fw.ihex new file mode 100644 index 000000000000..933c4c375c2f --- /dev/null +++ b/firmware/ess/maestro3_assp_kernel.fw.ihex | |||
@@ -0,0 +1,120 @@ | |||
1 | :10000000807930008079B4038079B4038079FB0073 | ||
2 | :100010008079DD008079B4038079320380798702AA | ||
3 | :100020008079B4038079B4038079B4038079B40310 | ||
4 | :1000300080791A038079B40380792F028079B40320 | ||
5 | :100040008079B4038079B4038079B4038079B403F0 | ||
6 | :100050008079630080796B008079B4038079B40380 | ||
7 | :1000600080BF7C2C0688048840BE20BC09AE0010EE | ||
8 | :100070000AAE0100386908EB53005A6908EBD60054 | ||
9 | :100080000900888B806988E3360030BE20BC09698E | ||
10 | :1000900001B8099041BE41BE286988EB780041BE95 | ||
11 | :1000A00040BE8079380041BE41BE3A90386908E3CD | ||
12 | :1000B00056003A9041BE40BE00EF3A90396908E3DD | ||
13 | :1000C0005E003A9000EF0B690C668CEF0A690C66D3 | ||
14 | :1000D0000B62096600EF10690F6604EF88E3750094 | ||
15 | :1000E0000E690F6610620D6600EF0E690D6600EF77 | ||
16 | :1000F00070AE010020BC27AE0100396908EB5D003D | ||
17 | :10010000266901B826902600888B806988E3CB0099 | ||
18 | :100110002890280D114200E17A00114700E1A0006B | ||
19 | :10012000807A630011B80A66096204E37A000B0C56 | ||
20 | :1001300005400A1001BA1290120C02408079AF00FB | ||
21 | :10014000807A6B0002BE0E620D6610BA44E37A003C | ||
22 | :10015000100C05400E1001BA1290120C0240031050 | ||
23 | :1001600002BA1290120C0040031088E3BA00041087 | ||
24 | :100170008079BC00041001BA1290120C0140050CE9 | ||
25 | :100180000340060C04401110B0BFFF011290120C86 | ||
26 | :10019000064020BC00EF26AE28107069D0BF0100D9 | ||
27 | :1001A000709088E37A0028AE000000EF70AE000384 | ||
28 | :1001B000700C0CB05AAE000000EF807A8A037F69A1 | ||
29 | :1001C00001B87F905600888BA00C08B071AF00B0CA | ||
30 | :1001D000714E00E2F30056AE57105600A00C08B066 | ||
31 | :1001E00056808079A1031008A0BF591004E3A10331 | ||
32 | :1001F00056808079A103807A8A0301BF43BE59BE2D | ||
33 | :100200007C90376988E30D0101BA08E30C0171AEF7 | ||
34 | :100210000400710C0050366937900ABF9E108A8B1B | ||
35 | :1002200080AF1480804C0ABF600500F50ABF20052E | ||
36 | :1002300000B917BBA090176988E34801170D00E1CA | ||
37 | :1002400027010CBF78050DBF7C0580792B010CBF01 | ||
38 | :1002500038050DBF3C05006908E335018C8B59BE9C | ||
39 | :1002600007BBA09020BC807957010C038B8B03B98E | ||
40 | :100270000988C6BE3E01AC69AB90AD69AB9013086E | ||
41 | :100280000A6644E3440109030C8320BC80795701CA | ||
42 | :10029000556988E35701387C0BBF780500F50BBF23 | ||
43 | :1002A000380507B90988C6BE5601AB10AA90746913 | ||
44 | :1002B00088E3630172AE400500F572AE000561AEE1 | ||
45 | :1002C0003B10807AF602786988E382018C8B0CBF40 | ||
46 | :1002D000600500E5407C140820BA12883D73807ADE | ||
47 | :1002E00080033E73807A80038C8B0CBF6C0500E525 | ||
48 | :1002F000407C14082CBA12883F73807A80034073C4 | ||
49 | :10030000807A8003756988E38E0172AE480500F536 | ||
50 | :1003100072AE080561AE4110807AF602796988E311 | ||
51 | :10032000AD018C8B0CBF600500E5407C140818BA49 | ||
52 | :1003300012884373807A80034473807A80038C8BA5 | ||
53 | :100340000CBF6C0500E5407C140824BA1288457384 | ||
54 | :10035000807A80034673807A8003766988E3B901E6 | ||
55 | :1003600072AE580500F572AE180561AE4710807A7E | ||
56 | :10037000F6027A6988E3D8018C8B0CBF600500E532 | ||
57 | :10038000407C140808BA12884973807A80034A7343 | ||
58 | :10039000807A80038C8B0CBF6C0500E5407C1408D0 | ||
59 | :1003A00014BA12884B73807A80034C73807A80036E | ||
60 | :1003B00021BC1CAE90108A8B0ABF600500E5407C12 | ||
61 | :1003C000120804B813888D8B0DBF6C0500E5407CC6 | ||
62 | :1003D000150804B81188807A4A038A8B0ABF600521 | ||
63 | :1003E00000E5407C1F7303B90988C6BEF9018A5431 | ||
64 | :1003F00003BEA098207303B90988C6BE01028A54BF | ||
65 | :1004000003BEA098201F1F2F269820BC356988E3C3 | ||
66 | :10041000A103336901B83390A0BFEE0208E3A10342 | ||
67 | :10042000339000BF516988E31F02347380BE605768 | ||
68 | :1004300003BE7E9F59BE34907E69510D139020BC3F | ||
69 | :100440005C6988E3A1035E7380BE605703BE7E9F34 | ||
70 | :1004500059BE5E907E695C0D13908079A103807A0D | ||
71 | :100460008A0301BF43BE776988E34E0261AE4D1037 | ||
72 | :100470006100888B806988E34E027190710D0B00DA | ||
73 | :10048000A0AF1080A0AF108010080A6608E34902F0 | ||
74 | :10049000090010080C6688E34E020B8020BC7B69C3 | ||
75 | :1004A00088E3A1030ABF9E108A8B80AF1480804C22 | ||
76 | :1004B00000E166027C6990BF6005729072037C69FE | ||
77 | :1004C00090BF640573907304807970027C6990BF5B | ||
78 | :1004D0002005729072037C6990BF240573907304A9 | ||
79 | :1004E0007C6901B87C900ABFFD108A8B80AF1080B8 | ||
80 | :1004F0004F738A5403BE809821BC26738B5403BE6D | ||
81 | :100500008B618C9803BE806180988079A103807A8A | ||
82 | :100510008A03280D114700E1BE0212AF064012699E | ||
83 | :10052000B0BF000C88E3B602A0BF000888E3B202A7 | ||
84 | :100530001269B0BF000CA0BF000488E3A3020969E0 | ||
85 | :100540000B908079A5020BAF054001690590026907 | ||
86 | :100550000690114300E1ED021169C0BF0020119027 | ||
87 | :100560008079ED0209690B908079B8020BAF0540E4 | ||
88 | :1005700005AF034006AF04408079ED0212AF06409C | ||
89 | :100580001269B0BF000C88E3E702A0BF000888E34F | ||
90 | :10059000E3021269B0BF000CA0BF000488E3D402DC | ||
91 | :1005A0000D6910908079D60210AF05400169059061 | ||
92 | :1005B00002690690114300E1ED021169C0BF0020FD | ||
93 | :1005C00011908079ED020D6910908079E90210AFE9 | ||
94 | :1005D000054005AF034006AF044020BC7069719030 | ||
95 | :1005E000807A7800716970908079A10320BC6103E2 | ||
96 | :1005F0008B8B806988EF7202720304787190710DA1 | ||
97 | :100600008A8B0B0003B90988C6BE0903A869AB90A1 | ||
98 | :10061000A869AA9010080A6644E30F0309001008AD | ||
99 | :100620000C6688E314030B8020BC616901B86190FB | ||
100 | :100630008079F702807A8A03355D0100346901B858 | ||
101 | :1006400034900ABF9E108A8B80AF1480804872AEAF | ||
102 | :10065000500500F572AE100561AE5110807AF602B9 | ||
103 | :100660008079A103807A8A03355D02005E6901B852 | ||
104 | :100670005E900ABF9E108A8B80AF1480804772AE56 | ||
105 | :10068000580500F572AE180561AE5C10807AF6026E | ||
106 | :100690008079A1031C00888B806988EF1D901D0D57 | ||
107 | :1006A0000F1010668CE358030E6910660F620D661A | ||
108 | :1006B0000FBA01E37A0310048A8B03B90988C6BE16 | ||
109 | :1006C0006C038C6AAA61AB988C6AAB61AD988C6A3A | ||
110 | :1006D000AD61A9988C6AA961AA98047C8B8B047C73 | ||
111 | :1006E0008D8B047C898B047C14080E6608E37903E7 | ||
112 | :1006F0000D04108421BC1C6901B81C9080794A0348 | ||
113 | :1007000003B909888A8BC6BE8803AC5403BE8C61CA | ||
114 | :10071000AA9800EF20BC46BE09086B900A086C90AE | ||
115 | :100720000B086D901A0862901B0863901E08649075 | ||
116 | :1007300059BE1E88658066816782688369846A8580 | ||
117 | :1007400000EF20BC6B6909886C690A886D690B88A9 | ||
118 | :1007500062691A8863691B8864691E88650066017E | ||
119 | :0A0760006702680369046A053ABEE7 | ||
120 | :00000001FF | ||
diff --git a/firmware/ess/maestro3_assp_minisrc.fw.ihex b/firmware/ess/maestro3_assp_minisrc.fw.ihex new file mode 100644 index 000000000000..d2c0031dadf2 --- /dev/null +++ b/firmware/ess/maestro3_assp_minisrc.fw.ihex | |||
@@ -0,0 +1,51 @@ | |||
1 | :1000000080BF1E106E906E00888B806988EF6F90A5 | ||
2 | :100010006F0D006908EB120420BC6E6901B86E9088 | ||
3 | :10002000807903040EB9078843BE01BF47BE41BEB5 | ||
4 | :10003000807A2A0040BE2930CCEF41BE807A280069 | ||
5 | :1000400040BE2830CCEF076908E32A0409692C90E8 | ||
6 | :1000500080792C040D692C9009101A880A1001BAB5 | ||
7 | :100060001B880D101C880E1001BA1D8880BFED0082 | ||
8 | :100070001E880C05240104B92790186908E3B3040D | ||
9 | :100080002D901369A0BF987504F72DAEFF008D8BDE | ||
10 | :10009000196908E363041A6908E3560407B9098873 | ||
11 | :1000A000C6BE5304A910AD9080797C0403B90988B9 | ||
12 | :1000B000C6BE60048918226CAD90A910236E226C14 | ||
13 | :1000C000AD9080797C041A1008E36F0403B90988A5 | ||
14 | :1000D000C6BE6C04A910A090AD9080797C0401B9D3 | ||
15 | :1000E0000988C6BE7B048918226CA090AD90A91027 | ||
16 | :1000F000236E226CA090AD902D6908E39C0424012E | ||
17 | :1001000003B702B91888898B2C028A10047CA0904E | ||
18 | :100110002B691F88807E5B052A690988898BA099D5 | ||
19 | :100120008A10A0902B691F88807E5B052A69098848 | ||
20 | :10013000898BAF99997B840424010F061B1013202F | ||
21 | :100140001B90A0BFFF7F44E3AC041B90898B807A97 | ||
22 | :100150001A05276901BA2790807A2305276908E3E1 | ||
23 | :100160009E0480790F052406261013202690A0BF38 | ||
24 | :10017000FF7F04E3C0048D8B807A1A058079B40474 | ||
25 | :100180002690131026301B908D8B807A1A05807A6A | ||
26 | :100190002305271001BA279008E3B40424010F06B1 | ||
27 | :1001A000898B1A6908E3EA04196988E3E00403B952 | ||
28 | :1001B0000988C6BEDD04A01FAE2FA99880790F055F | ||
29 | :1001C00001B9188807B90988C6BEE704EE10A990DE | ||
30 | :1001D00080790F05196908E3FE0403B9098846BE52 | ||
31 | :1001E000C6BEFA04A0171EBEAE1FBFBF00FF13BEDF | ||
32 | :1001F000DFBF8080A99947BE80790F0501B90988C2 | ||
33 | :10020000C6BE0E05A016A026B7BF00FF1EBEA01ECC | ||
34 | :10021000AE2EBFBF00FF13BEDFBF8080A9990C8543 | ||
35 | :100220000F86076988E31605070D108559BE1E88DD | ||
36 | :100230004ABE00EF1E101C901F101D90A0101E90B3 | ||
37 | :10024000A0101F9000EF1E101C3020901B73205434 | ||
38 | :1002500003BE259825101C2025902573145403BE39 | ||
39 | :100260008E8B80982F6988E3390559BE07BB806162 | ||
40 | :100270008098A08B1F101D3021901B73215403BE4A | ||
41 | :100280002E982E101D202E902E73155403BE80988C | ||
42 | :100290002F6988E34F0559BE07BB80618098A08B0A | ||
43 | :1002A000186908EF2573165403BEA0982E731754CF | ||
44 | :1002B00003BEA09800EFA08BC6BE6B0559BE04BB61 | ||
45 | :1002C00090AA04BE1EBEE099E08BA069D090A06900 | ||
46 | :1002D000D0901F0805B81F88908BA069D090A069A6 | ||
47 | :1002E0009090D08BD88B1FBE00EF00000000000064 | ||
48 | :1002F00000000000000000000000000000000000FE | ||
49 | :1003000000000000000000000000000000000000ED | ||
50 | :020310000000EB | ||
51 | :00000001FF | ||
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig index 1abbf877f20d..32836ea45170 100644 --- a/sound/pci/Kconfig +++ b/sound/pci/Kconfig | |||
@@ -744,7 +744,6 @@ config SND_KORG1212 | |||
744 | config SND_MAESTRO3 | 744 | config SND_MAESTRO3 |
745 | tristate "ESS Allegro/Maestro3" | 745 | tristate "ESS Allegro/Maestro3" |
746 | depends on SND | 746 | depends on SND |
747 | select FW_LOADER if !SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
748 | select SND_AC97_CODEC | 747 | select SND_AC97_CODEC |
749 | help | 748 | help |
750 | Say Y here to include support for soundcards based on ESS Maestro 3 | 749 | Say Y here to include support for soundcards based on ESS Maestro 3 |
@@ -753,15 +752,6 @@ config SND_MAESTRO3 | |||
753 | To compile this driver as a module, choose M here: the module | 752 | To compile this driver as a module, choose M here: the module |
754 | will be called snd-maestro3. | 753 | will be called snd-maestro3. |
755 | 754 | ||
756 | config SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
757 | bool "In-kernel firmware for Maestro3 driver" | ||
758 | depends on SND_MAESTRO3 | ||
759 | default y | ||
760 | help | ||
761 | Say Y here to include the static firmware built in the kernel | ||
762 | for the Maestro3 driver. If you choose N here, you need to | ||
763 | install the firmware files from the alsa-firmware package. | ||
764 | |||
765 | config SND_MIXART | 755 | config SND_MIXART |
766 | tristate "Digigram miXart" | 756 | tristate "Digigram miXart" |
767 | depends on SND | 757 | depends on SND |
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c index 9dfba6eff858..b2582972c9a4 100644 --- a/sound/pci/maestro3.c +++ b/sound/pci/maestro3.c | |||
@@ -58,10 +58,8 @@ MODULE_SUPPORTED_DEVICE("{{ESS,Maestro3 PCI}," | |||
58 | "{ESS,Allegro PCI}," | 58 | "{ESS,Allegro PCI}," |
59 | "{ESS,Allegro-1 PCI}," | 59 | "{ESS,Allegro-1 PCI}," |
60 | "{ESS,Canyon3D-2/LE PCI}}"); | 60 | "{ESS,Canyon3D-2/LE PCI}}"); |
61 | #ifndef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
62 | MODULE_FIRMWARE("ess/maestro3_assp_kernel.fw"); | 61 | MODULE_FIRMWARE("ess/maestro3_assp_kernel.fw"); |
63 | MODULE_FIRMWARE("ess/maestro3_assp_minisrc.fw"); | 62 | MODULE_FIRMWARE("ess/maestro3_assp_minisrc.fw"); |
64 | #endif | ||
65 | 63 | ||
66 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 64 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
67 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 65 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
@@ -2101,161 +2099,6 @@ static int __devinit snd_m3_mixer(struct snd_m3 *chip) | |||
2101 | } | 2099 | } |
2102 | 2100 | ||
2103 | 2101 | ||
2104 | #ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
2105 | |||
2106 | /* | ||
2107 | * DSP Code images | ||
2108 | */ | ||
2109 | |||
2110 | static const u16 assp_kernel_image[] = { | ||
2111 | 0x7980, 0x0030, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x00FB, 0x7980, 0x00DD, 0x7980, 0x03B4, | ||
2112 | 0x7980, 0x0332, 0x7980, 0x0287, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, | ||
2113 | 0x7980, 0x031A, 0x7980, 0x03B4, 0x7980, 0x022F, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, | ||
2114 | 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x0063, 0x7980, 0x006B, 0x7980, 0x03B4, 0x7980, 0x03B4, | ||
2115 | 0xBF80, 0x2C7C, 0x8806, 0x8804, 0xBE40, 0xBC20, 0xAE09, 0x1000, 0xAE0A, 0x0001, 0x6938, 0xEB08, | ||
2116 | 0x0053, 0x695A, 0xEB08, 0x00D6, 0x0009, 0x8B88, 0x6980, 0xE388, 0x0036, 0xBE30, 0xBC20, 0x6909, | ||
2117 | 0xB801, 0x9009, 0xBE41, 0xBE41, 0x6928, 0xEB88, 0x0078, 0xBE41, 0xBE40, 0x7980, 0x0038, 0xBE41, | ||
2118 | 0xBE41, 0x903A, 0x6938, 0xE308, 0x0056, 0x903A, 0xBE41, 0xBE40, 0xEF00, 0x903A, 0x6939, 0xE308, | ||
2119 | 0x005E, 0x903A, 0xEF00, 0x690B, 0x660C, 0xEF8C, 0x690A, 0x660C, 0x620B, 0x6609, 0xEF00, 0x6910, | ||
2120 | 0x660F, 0xEF04, 0xE388, 0x0075, 0x690E, 0x660F, 0x6210, 0x660D, 0xEF00, 0x690E, 0x660D, 0xEF00, | ||
2121 | 0xAE70, 0x0001, 0xBC20, 0xAE27, 0x0001, 0x6939, 0xEB08, 0x005D, 0x6926, 0xB801, 0x9026, 0x0026, | ||
2122 | 0x8B88, 0x6980, 0xE388, 0x00CB, 0x9028, 0x0D28, 0x4211, 0xE100, 0x007A, 0x4711, 0xE100, 0x00A0, | ||
2123 | 0x7A80, 0x0063, 0xB811, 0x660A, 0x6209, 0xE304, 0x007A, 0x0C0B, 0x4005, 0x100A, 0xBA01, 0x9012, | ||
2124 | 0x0C12, 0x4002, 0x7980, 0x00AF, 0x7A80, 0x006B, 0xBE02, 0x620E, 0x660D, 0xBA10, 0xE344, 0x007A, | ||
2125 | 0x0C10, 0x4005, 0x100E, 0xBA01, 0x9012, 0x0C12, 0x4002, 0x1003, 0xBA02, 0x9012, 0x0C12, 0x4000, | ||
2126 | 0x1003, 0xE388, 0x00BA, 0x1004, 0x7980, 0x00BC, 0x1004, 0xBA01, 0x9012, 0x0C12, 0x4001, 0x0C05, | ||
2127 | 0x4003, 0x0C06, 0x4004, 0x1011, 0xBFB0, 0x01FF, 0x9012, 0x0C12, 0x4006, 0xBC20, 0xEF00, 0xAE26, | ||
2128 | 0x1028, 0x6970, 0xBFD0, 0x0001, 0x9070, 0xE388, 0x007A, 0xAE28, 0x0000, 0xEF00, 0xAE70, 0x0300, | ||
2129 | 0x0C70, 0xB00C, 0xAE5A, 0x0000, 0xEF00, 0x7A80, 0x038A, 0x697F, 0xB801, 0x907F, 0x0056, 0x8B88, | ||
2130 | 0x0CA0, 0xB008, 0xAF71, 0xB000, 0x4E71, 0xE200, 0x00F3, 0xAE56, 0x1057, 0x0056, 0x0CA0, 0xB008, | ||
2131 | 0x8056, 0x7980, 0x03A1, 0x0810, 0xBFA0, 0x1059, 0xE304, 0x03A1, 0x8056, 0x7980, 0x03A1, 0x7A80, | ||
2132 | 0x038A, 0xBF01, 0xBE43, 0xBE59, 0x907C, 0x6937, 0xE388, 0x010D, 0xBA01, 0xE308, 0x010C, 0xAE71, | ||
2133 | 0x0004, 0x0C71, 0x5000, 0x6936, 0x9037, 0xBF0A, 0x109E, 0x8B8A, 0xAF80, 0x8014, 0x4C80, 0xBF0A, | ||
2134 | 0x0560, 0xF500, 0xBF0A, 0x0520, 0xB900, 0xBB17, 0x90A0, 0x6917, 0xE388, 0x0148, 0x0D17, 0xE100, | ||
2135 | 0x0127, 0xBF0C, 0x0578, 0xBF0D, 0x057C, 0x7980, 0x012B, 0xBF0C, 0x0538, 0xBF0D, 0x053C, 0x6900, | ||
2136 | 0xE308, 0x0135, 0x8B8C, 0xBE59, 0xBB07, 0x90A0, 0xBC20, 0x7980, 0x0157, 0x030C, 0x8B8B, 0xB903, | ||
2137 | 0x8809, 0xBEC6, 0x013E, 0x69AC, 0x90AB, 0x69AD, 0x90AB, 0x0813, 0x660A, 0xE344, 0x0144, 0x0309, | ||
2138 | 0x830C, 0xBC20, 0x7980, 0x0157, 0x6955, 0xE388, 0x0157, 0x7C38, 0xBF0B, 0x0578, 0xF500, 0xBF0B, | ||
2139 | 0x0538, 0xB907, 0x8809, 0xBEC6, 0x0156, 0x10AB, 0x90AA, 0x6974, 0xE388, 0x0163, 0xAE72, 0x0540, | ||
2140 | 0xF500, 0xAE72, 0x0500, 0xAE61, 0x103B, 0x7A80, 0x02F6, 0x6978, 0xE388, 0x0182, 0x8B8C, 0xBF0C, | ||
2141 | 0x0560, 0xE500, 0x7C40, 0x0814, 0xBA20, 0x8812, 0x733D, 0x7A80, 0x0380, 0x733E, 0x7A80, 0x0380, | ||
2142 | 0x8B8C, 0xBF0C, 0x056C, 0xE500, 0x7C40, 0x0814, 0xBA2C, 0x8812, 0x733F, 0x7A80, 0x0380, 0x7340, | ||
2143 | 0x7A80, 0x0380, 0x6975, 0xE388, 0x018E, 0xAE72, 0x0548, 0xF500, 0xAE72, 0x0508, 0xAE61, 0x1041, | ||
2144 | 0x7A80, 0x02F6, 0x6979, 0xE388, 0x01AD, 0x8B8C, 0xBF0C, 0x0560, 0xE500, 0x7C40, 0x0814, 0xBA18, | ||
2145 | 0x8812, 0x7343, 0x7A80, 0x0380, 0x7344, 0x7A80, 0x0380, 0x8B8C, 0xBF0C, 0x056C, 0xE500, 0x7C40, | ||
2146 | 0x0814, 0xBA24, 0x8812, 0x7345, 0x7A80, 0x0380, 0x7346, 0x7A80, 0x0380, 0x6976, 0xE388, 0x01B9, | ||
2147 | 0xAE72, 0x0558, 0xF500, 0xAE72, 0x0518, 0xAE61, 0x1047, 0x7A80, 0x02F6, 0x697A, 0xE388, 0x01D8, | ||
2148 | 0x8B8C, 0xBF0C, 0x0560, 0xE500, 0x7C40, 0x0814, 0xBA08, 0x8812, 0x7349, 0x7A80, 0x0380, 0x734A, | ||
2149 | 0x7A80, 0x0380, 0x8B8C, 0xBF0C, 0x056C, 0xE500, 0x7C40, 0x0814, 0xBA14, 0x8812, 0x734B, 0x7A80, | ||
2150 | 0x0380, 0x734C, 0x7A80, 0x0380, 0xBC21, 0xAE1C, 0x1090, 0x8B8A, 0xBF0A, 0x0560, 0xE500, 0x7C40, | ||
2151 | 0x0812, 0xB804, 0x8813, 0x8B8D, 0xBF0D, 0x056C, 0xE500, 0x7C40, 0x0815, 0xB804, 0x8811, 0x7A80, | ||
2152 | 0x034A, 0x8B8A, 0xBF0A, 0x0560, 0xE500, 0x7C40, 0x731F, 0xB903, 0x8809, 0xBEC6, 0x01F9, 0x548A, | ||
2153 | 0xBE03, 0x98A0, 0x7320, 0xB903, 0x8809, 0xBEC6, 0x0201, 0x548A, 0xBE03, 0x98A0, 0x1F20, 0x2F1F, | ||
2154 | 0x9826, 0xBC20, 0x6935, 0xE388, 0x03A1, 0x6933, 0xB801, 0x9033, 0xBFA0, 0x02EE, 0xE308, 0x03A1, | ||
2155 | 0x9033, 0xBF00, 0x6951, 0xE388, 0x021F, 0x7334, 0xBE80, 0x5760, 0xBE03, 0x9F7E, 0xBE59, 0x9034, | ||
2156 | 0x697E, 0x0D51, 0x9013, 0xBC20, 0x695C, 0xE388, 0x03A1, 0x735E, 0xBE80, 0x5760, 0xBE03, 0x9F7E, | ||
2157 | 0xBE59, 0x905E, 0x697E, 0x0D5C, 0x9013, 0x7980, 0x03A1, 0x7A80, 0x038A, 0xBF01, 0xBE43, 0x6977, | ||
2158 | 0xE388, 0x024E, 0xAE61, 0x104D, 0x0061, 0x8B88, 0x6980, 0xE388, 0x024E, 0x9071, 0x0D71, 0x000B, | ||
2159 | 0xAFA0, 0x8010, 0xAFA0, 0x8010, 0x0810, 0x660A, 0xE308, 0x0249, 0x0009, 0x0810, 0x660C, 0xE388, | ||
2160 | 0x024E, 0x800B, 0xBC20, 0x697B, 0xE388, 0x03A1, 0xBF0A, 0x109E, 0x8B8A, 0xAF80, 0x8014, 0x4C80, | ||
2161 | 0xE100, 0x0266, 0x697C, 0xBF90, 0x0560, 0x9072, 0x0372, 0x697C, 0xBF90, 0x0564, 0x9073, 0x0473, | ||
2162 | 0x7980, 0x0270, 0x697C, 0xBF90, 0x0520, 0x9072, 0x0372, 0x697C, 0xBF90, 0x0524, 0x9073, 0x0473, | ||
2163 | 0x697C, 0xB801, 0x907C, 0xBF0A, 0x10FD, 0x8B8A, 0xAF80, 0x8010, 0x734F, 0x548A, 0xBE03, 0x9880, | ||
2164 | 0xBC21, 0x7326, 0x548B, 0xBE03, 0x618B, 0x988C, 0xBE03, 0x6180, 0x9880, 0x7980, 0x03A1, 0x7A80, | ||
2165 | 0x038A, 0x0D28, 0x4711, 0xE100, 0x02BE, 0xAF12, 0x4006, 0x6912, 0xBFB0, 0x0C00, 0xE388, 0x02B6, | ||
2166 | 0xBFA0, 0x0800, 0xE388, 0x02B2, 0x6912, 0xBFB0, 0x0C00, 0xBFA0, 0x0400, 0xE388, 0x02A3, 0x6909, | ||
2167 | 0x900B, 0x7980, 0x02A5, 0xAF0B, 0x4005, 0x6901, 0x9005, 0x6902, 0x9006, 0x4311, 0xE100, 0x02ED, | ||
2168 | 0x6911, 0xBFC0, 0x2000, 0x9011, 0x7980, 0x02ED, 0x6909, 0x900B, 0x7980, 0x02B8, 0xAF0B, 0x4005, | ||
2169 | 0xAF05, 0x4003, 0xAF06, 0x4004, 0x7980, 0x02ED, 0xAF12, 0x4006, 0x6912, 0xBFB0, 0x0C00, 0xE388, | ||
2170 | 0x02E7, 0xBFA0, 0x0800, 0xE388, 0x02E3, 0x6912, 0xBFB0, 0x0C00, 0xBFA0, 0x0400, 0xE388, 0x02D4, | ||
2171 | 0x690D, 0x9010, 0x7980, 0x02D6, 0xAF10, 0x4005, 0x6901, 0x9005, 0x6902, 0x9006, 0x4311, 0xE100, | ||
2172 | 0x02ED, 0x6911, 0xBFC0, 0x2000, 0x9011, 0x7980, 0x02ED, 0x690D, 0x9010, 0x7980, 0x02E9, 0xAF10, | ||
2173 | 0x4005, 0xAF05, 0x4003, 0xAF06, 0x4004, 0xBC20, 0x6970, 0x9071, 0x7A80, 0x0078, 0x6971, 0x9070, | ||
2174 | 0x7980, 0x03A1, 0xBC20, 0x0361, 0x8B8B, 0x6980, 0xEF88, 0x0272, 0x0372, 0x7804, 0x9071, 0x0D71, | ||
2175 | 0x8B8A, 0x000B, 0xB903, 0x8809, 0xBEC6, 0x0309, 0x69A8, 0x90AB, 0x69A8, 0x90AA, 0x0810, 0x660A, | ||
2176 | 0xE344, 0x030F, 0x0009, 0x0810, 0x660C, 0xE388, 0x0314, 0x800B, 0xBC20, 0x6961, 0xB801, 0x9061, | ||
2177 | 0x7980, 0x02F7, 0x7A80, 0x038A, 0x5D35, 0x0001, 0x6934, 0xB801, 0x9034, 0xBF0A, 0x109E, 0x8B8A, | ||
2178 | 0xAF80, 0x8014, 0x4880, 0xAE72, 0x0550, 0xF500, 0xAE72, 0x0510, 0xAE61, 0x1051, 0x7A80, 0x02F6, | ||
2179 | 0x7980, 0x03A1, 0x7A80, 0x038A, 0x5D35, 0x0002, 0x695E, 0xB801, 0x905E, 0xBF0A, 0x109E, 0x8B8A, | ||
2180 | 0xAF80, 0x8014, 0x4780, 0xAE72, 0x0558, 0xF500, 0xAE72, 0x0518, 0xAE61, 0x105C, 0x7A80, 0x02F6, | ||
2181 | 0x7980, 0x03A1, 0x001C, 0x8B88, 0x6980, 0xEF88, 0x901D, 0x0D1D, 0x100F, 0x6610, 0xE38C, 0x0358, | ||
2182 | 0x690E, 0x6610, 0x620F, 0x660D, 0xBA0F, 0xE301, 0x037A, 0x0410, 0x8B8A, 0xB903, 0x8809, 0xBEC6, | ||
2183 | 0x036C, 0x6A8C, 0x61AA, 0x98AB, 0x6A8C, 0x61AB, 0x98AD, 0x6A8C, 0x61AD, 0x98A9, 0x6A8C, 0x61A9, | ||
2184 | 0x98AA, 0x7C04, 0x8B8B, 0x7C04, 0x8B8D, 0x7C04, 0x8B89, 0x7C04, 0x0814, 0x660E, 0xE308, 0x0379, | ||
2185 | 0x040D, 0x8410, 0xBC21, 0x691C, 0xB801, 0x901C, 0x7980, 0x034A, 0xB903, 0x8809, 0x8B8A, 0xBEC6, | ||
2186 | 0x0388, 0x54AC, 0xBE03, 0x618C, 0x98AA, 0xEF00, 0xBC20, 0xBE46, 0x0809, 0x906B, 0x080A, 0x906C, | ||
2187 | 0x080B, 0x906D, 0x081A, 0x9062, 0x081B, 0x9063, 0x081E, 0x9064, 0xBE59, 0x881E, 0x8065, 0x8166, | ||
2188 | 0x8267, 0x8368, 0x8469, 0x856A, 0xEF00, 0xBC20, 0x696B, 0x8809, 0x696C, 0x880A, 0x696D, 0x880B, | ||
2189 | 0x6962, 0x881A, 0x6963, 0x881B, 0x6964, 0x881E, 0x0065, 0x0166, 0x0267, 0x0368, 0x0469, 0x056A, | ||
2190 | 0xBE3A, | ||
2191 | }; | ||
2192 | |||
2193 | /* | ||
2194 | * Mini sample rate converter code image | ||
2195 | * that is to be loaded at 0x400 on the DSP. | ||
2196 | */ | ||
2197 | static const u16 assp_minisrc_image[] = { | ||
2198 | |||
2199 | 0xBF80, 0x101E, 0x906E, 0x006E, 0x8B88, 0x6980, 0xEF88, 0x906F, 0x0D6F, 0x6900, 0xEB08, 0x0412, | ||
2200 | 0xBC20, 0x696E, 0xB801, 0x906E, 0x7980, 0x0403, 0xB90E, 0x8807, 0xBE43, 0xBF01, 0xBE47, 0xBE41, | ||
2201 | 0x7A80, 0x002A, 0xBE40, 0x3029, 0xEFCC, 0xBE41, 0x7A80, 0x0028, 0xBE40, 0x3028, 0xEFCC, 0x6907, | ||
2202 | 0xE308, 0x042A, 0x6909, 0x902C, 0x7980, 0x042C, 0x690D, 0x902C, 0x1009, 0x881A, 0x100A, 0xBA01, | ||
2203 | 0x881B, 0x100D, 0x881C, 0x100E, 0xBA01, 0x881D, 0xBF80, 0x00ED, 0x881E, 0x050C, 0x0124, 0xB904, | ||
2204 | 0x9027, 0x6918, 0xE308, 0x04B3, 0x902D, 0x6913, 0xBFA0, 0x7598, 0xF704, 0xAE2D, 0x00FF, 0x8B8D, | ||
2205 | 0x6919, 0xE308, 0x0463, 0x691A, 0xE308, 0x0456, 0xB907, 0x8809, 0xBEC6, 0x0453, 0x10A9, 0x90AD, | ||
2206 | 0x7980, 0x047C, 0xB903, 0x8809, 0xBEC6, 0x0460, 0x1889, 0x6C22, 0x90AD, 0x10A9, 0x6E23, 0x6C22, | ||
2207 | 0x90AD, 0x7980, 0x047C, 0x101A, 0xE308, 0x046F, 0xB903, 0x8809, 0xBEC6, 0x046C, 0x10A9, 0x90A0, | ||
2208 | 0x90AD, 0x7980, 0x047C, 0xB901, 0x8809, 0xBEC6, 0x047B, 0x1889, 0x6C22, 0x90A0, 0x90AD, 0x10A9, | ||
2209 | 0x6E23, 0x6C22, 0x90A0, 0x90AD, 0x692D, 0xE308, 0x049C, 0x0124, 0xB703, 0xB902, 0x8818, 0x8B89, | ||
2210 | 0x022C, 0x108A, 0x7C04, 0x90A0, 0x692B, 0x881F, 0x7E80, 0x055B, 0x692A, 0x8809, 0x8B89, 0x99A0, | ||
2211 | 0x108A, 0x90A0, 0x692B, 0x881F, 0x7E80, 0x055B, 0x692A, 0x8809, 0x8B89, 0x99AF, 0x7B99, 0x0484, | ||
2212 | 0x0124, 0x060F, 0x101B, 0x2013, 0x901B, 0xBFA0, 0x7FFF, 0xE344, 0x04AC, 0x901B, 0x8B89, 0x7A80, | ||
2213 | 0x051A, 0x6927, 0xBA01, 0x9027, 0x7A80, 0x0523, 0x6927, 0xE308, 0x049E, 0x7980, 0x050F, 0x0624, | ||
2214 | 0x1026, 0x2013, 0x9026, 0xBFA0, 0x7FFF, 0xE304, 0x04C0, 0x8B8D, 0x7A80, 0x051A, 0x7980, 0x04B4, | ||
2215 | 0x9026, 0x1013, 0x3026, 0x901B, 0x8B8D, 0x7A80, 0x051A, 0x7A80, 0x0523, 0x1027, 0xBA01, 0x9027, | ||
2216 | 0xE308, 0x04B4, 0x0124, 0x060F, 0x8B89, 0x691A, 0xE308, 0x04EA, 0x6919, 0xE388, 0x04E0, 0xB903, | ||
2217 | 0x8809, 0xBEC6, 0x04DD, 0x1FA0, 0x2FAE, 0x98A9, 0x7980, 0x050F, 0xB901, 0x8818, 0xB907, 0x8809, | ||
2218 | 0xBEC6, 0x04E7, 0x10EE, 0x90A9, 0x7980, 0x050F, 0x6919, 0xE308, 0x04FE, 0xB903, 0x8809, 0xBE46, | ||
2219 | 0xBEC6, 0x04FA, 0x17A0, 0xBE1E, 0x1FAE, 0xBFBF, 0xFF00, 0xBE13, 0xBFDF, 0x8080, 0x99A9, 0xBE47, | ||
2220 | 0x7980, 0x050F, 0xB901, 0x8809, 0xBEC6, 0x050E, 0x16A0, 0x26A0, 0xBFB7, 0xFF00, 0xBE1E, 0x1EA0, | ||
2221 | 0x2EAE, 0xBFBF, 0xFF00, 0xBE13, 0xBFDF, 0x8080, 0x99A9, 0x850C, 0x860F, 0x6907, 0xE388, 0x0516, | ||
2222 | 0x0D07, 0x8510, 0xBE59, 0x881E, 0xBE4A, 0xEF00, 0x101E, 0x901C, 0x101F, 0x901D, 0x10A0, 0x901E, | ||
2223 | 0x10A0, 0x901F, 0xEF00, 0x101E, 0x301C, 0x9020, 0x731B, 0x5420, 0xBE03, 0x9825, 0x1025, 0x201C, | ||
2224 | 0x9025, 0x7325, 0x5414, 0xBE03, 0x8B8E, 0x9880, 0x692F, 0xE388, 0x0539, 0xBE59, 0xBB07, 0x6180, | ||
2225 | 0x9880, 0x8BA0, 0x101F, 0x301D, 0x9021, 0x731B, 0x5421, 0xBE03, 0x982E, 0x102E, 0x201D, 0x902E, | ||
2226 | 0x732E, 0x5415, 0xBE03, 0x9880, 0x692F, 0xE388, 0x054F, 0xBE59, 0xBB07, 0x6180, 0x9880, 0x8BA0, | ||
2227 | 0x6918, 0xEF08, 0x7325, 0x5416, 0xBE03, 0x98A0, 0x732E, 0x5417, 0xBE03, 0x98A0, 0xEF00, 0x8BA0, | ||
2228 | 0xBEC6, 0x056B, 0xBE59, 0xBB04, 0xAA90, 0xBE04, 0xBE1E, 0x99E0, 0x8BE0, 0x69A0, 0x90D0, 0x69A0, | ||
2229 | 0x90D0, 0x081F, 0xB805, 0x881F, 0x8B90, 0x69A0, 0x90D0, 0x69A0, 0x9090, 0x8BD0, 0x8BD8, 0xBE1F, | ||
2230 | 0xEF00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
2231 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
2232 | }; | ||
2233 | |||
2234 | static const struct firmware assp_kernel = { | ||
2235 | .data = (u8 *)assp_kernel_image, | ||
2236 | .size = sizeof assp_kernel_image | ||
2237 | }; | ||
2238 | static const struct firmware assp_minisrc = { | ||
2239 | .data = (u8 *)assp_minisrc_image, | ||
2240 | .size = sizeof assp_minisrc_image | ||
2241 | }; | ||
2242 | |||
2243 | #ifdef __LITTLE_ENDIAN | ||
2244 | static inline void snd_m3_convert_to_le(const struct firmware *fw) { } | ||
2245 | #else | ||
2246 | static void snd_m3_convert_to_le(const struct firmware *fw) | ||
2247 | { | ||
2248 | int i; | ||
2249 | u16 *data = (u16 *)fw->data; | ||
2250 | |||
2251 | for (i = 0; i < fw->size / 2; ++i) | ||
2252 | cpu_to_le16s(&data[i]); | ||
2253 | } | ||
2254 | #endif | ||
2255 | |||
2256 | #endif /* CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL */ | ||
2257 | |||
2258 | |||
2259 | /* | 2102 | /* |
2260 | * initialize ASSP | 2103 | * initialize ASSP |
2261 | */ | 2104 | */ |
@@ -2547,10 +2390,8 @@ static int snd_m3_free(struct snd_m3 *chip) | |||
2547 | if (chip->iobase) | 2390 | if (chip->iobase) |
2548 | pci_release_regions(chip->pci); | 2391 | pci_release_regions(chip->pci); |
2549 | 2392 | ||
2550 | #ifndef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
2551 | release_firmware(chip->assp_kernel_image); | 2393 | release_firmware(chip->assp_kernel_image); |
2552 | release_firmware(chip->assp_minisrc_image); | 2394 | release_firmware(chip->assp_minisrc_image); |
2553 | #endif | ||
2554 | 2395 | ||
2555 | pci_disable_device(chip->pci); | 2396 | pci_disable_device(chip->pci); |
2556 | kfree(chip); | 2397 | kfree(chip); |
@@ -2740,27 +2581,19 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci, | |||
2740 | return -ENOMEM; | 2581 | return -ENOMEM; |
2741 | } | 2582 | } |
2742 | 2583 | ||
2743 | #ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
2744 | chip->assp_kernel_image = &assp_kernel; | ||
2745 | #else | ||
2746 | err = request_firmware(&chip->assp_kernel_image, | 2584 | err = request_firmware(&chip->assp_kernel_image, |
2747 | "ess/maestro3_assp_kernel.fw", &pci->dev); | 2585 | "ess/maestro3_assp_kernel.fw", &pci->dev); |
2748 | if (err < 0) { | 2586 | if (err < 0) { |
2749 | snd_m3_free(chip); | 2587 | snd_m3_free(chip); |
2750 | return err; | 2588 | return err; |
2751 | } | 2589 | } |
2752 | #endif | ||
2753 | 2590 | ||
2754 | #ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
2755 | chip->assp_minisrc_image = &assp_minisrc; | ||
2756 | #else | ||
2757 | err = request_firmware(&chip->assp_minisrc_image, | 2591 | err = request_firmware(&chip->assp_minisrc_image, |
2758 | "ess/maestro3_assp_minisrc.fw", &pci->dev); | 2592 | "ess/maestro3_assp_minisrc.fw", &pci->dev); |
2759 | if (err < 0) { | 2593 | if (err < 0) { |
2760 | snd_m3_free(chip); | 2594 | snd_m3_free(chip); |
2761 | return err; | 2595 | return err; |
2762 | } | 2596 | } |
2763 | #endif | ||
2764 | 2597 | ||
2765 | if ((err = pci_request_regions(pci, card->driver)) < 0) { | 2598 | if ((err = pci_request_regions(pci, card->driver)) < 0) { |
2766 | snd_m3_free(chip); | 2599 | snd_m3_free(chip); |
@@ -2912,10 +2745,6 @@ static struct pci_driver driver = { | |||
2912 | 2745 | ||
2913 | static int __init alsa_card_m3_init(void) | 2746 | static int __init alsa_card_m3_init(void) |
2914 | { | 2747 | { |
2915 | #ifdef CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL | ||
2916 | snd_m3_convert_to_le(&assp_kernel); | ||
2917 | snd_m3_convert_to_le(&assp_minisrc); | ||
2918 | #endif | ||
2919 | return pci_register_driver(&driver); | 2748 | return pci_register_driver(&driver); |
2920 | } | 2749 | } |
2921 | 2750 | ||