Commit 2979867e authored by Jaroslav Kysela's avatar Jaroslav Kysela

ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>

ICE1712 driver
fix Hoontech DSP* box configuration
parent d9acfcc9
......@@ -83,6 +83,7 @@ static void __devinit snd_ice1712_stdsp24_box_channel(ice1712_t *ice, int box, i
ICE1712_STDSP24_2_CHN4(ice->hoontech_boxbits, 0);
ICE1712_STDSP24_2_MIDI1(ice->hoontech_boxbits, activate);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[2]);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[3]);
ICE1712_STDSP24_1_CHN1(ice->hoontech_boxbits, 1);
ICE1712_STDSP24_1_CHN2(ice->hoontech_boxbits, 1);
......@@ -117,7 +118,7 @@ static void __devinit snd_ice1712_stdsp24_box_channel(ice1712_t *ice, int box, i
up(&ice->gpio_mutex);
}
static void __devinit snd_ice1712_stdsp24_box_midi(ice1712_t *ice, int box, int master, int slave)
static void __devinit snd_ice1712_stdsp24_box_midi(ice1712_t *ice, int box, int master)
{
down(&ice->gpio_mutex);
......@@ -128,23 +129,26 @@ static void __devinit snd_ice1712_stdsp24_box_midi(ice1712_t *ice, int box, int
ICE1712_STDSP24_2_MIDIIN(ice->hoontech_boxbits, 1);
ICE1712_STDSP24_2_MIDI1(ice->hoontech_boxbits, master);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[2]);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[3]);
udelay(100);
ICE1712_STDSP24_2_MIDIIN(ice->hoontech_boxbits, 0);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[2]);
udelay(100);
mdelay(10);
ICE1712_STDSP24_2_MIDIIN(ice->hoontech_boxbits, 1);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[2]);
udelay(100);
up(&ice->gpio_mutex);
}
/* MIDI2 is direct */
ICE1712_STDSP24_3_MIDI2(ice->hoontech_boxbits, slave);
static void __devinit snd_ice1712_stdsp24_midi2(ice1712_t *ice, int activate)
{
down(&ice->gpio_mutex);
ICE1712_STDSP24_3_MIDI2(ice->hoontech_boxbits, activate);
snd_ice1712_stdsp24_gpio_write(ice, ice->hoontech_boxbits[3]);
up(&ice->gpio_mutex);
}
......@@ -218,8 +222,9 @@ static int __devinit snd_ice1712_hoontech_init(ice1712_t *ice)
for (chn = 0; chn < 4; chn++)
snd_ice1712_stdsp24_box_channel(ice, box, chn, (ice->hoontech_boxconfig[box] & (1 << chn)) ? 1 : 0);
snd_ice1712_stdsp24_box_midi(ice, box,
(ice->hoontech_boxconfig[box] & ICE1712_STDSP24_BOX_MIDI1) ? 1 : 0,
(ice->hoontech_boxconfig[box] & ICE1712_STDSP24_BOX_MIDI2) ? 1 : 0);
(ice->hoontech_boxconfig[box] & ICE1712_STDSP24_BOX_MIDI1) ? 1 : 0);
if (ice->hoontech_boxconfig[box] & ICE1712_STDSP24_BOX_MIDI2)
snd_ice1712_stdsp24_midi2(ice, 1);
}
return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment