Hello developers.
Here is a patch which enables to do audio input on this particular card
even when not doing a soft reboot from windows. The problem with the
current driver is that the PCA9554 is set to input mode for all IO pins
after a cold reset. In order to set the pins to output mode register 3
of this chip has to be set.
As I don't know if there are any pins used as input I have set register
3 to 0x80, so the MSB is input. Hopefully my patch won't do any damage!
Maybe someone can check the content of this register after a warm reboot
from windows. I have a linux only machine.
Keep on the good work.
bye,
Eduard.
PS: Sorry if this email arrives twice, it didn't seem to come through
the first time.
--- alsa/alsa-driver-0.9.4/sound/pci/ice1712/ews.c 2003-04-30 13:43:01.000000000
+0200
+++ alsa-driver-0.9.4/sound/pci/ice1712/ews.c 2003-06-22 13:13:55.000000000 +0200
@@ -389,6 +389,12 @@
* initialize the chip
*/
+#define PCF9554_REG_INPUT 0
+#define PCF9554_REG_OUTPUT 1
+#define PCF9554_REG_POLARITY 2
+#define PCF9554_REG_CONFIG 3
+static int snd_ice1712_6fire_write_pca(ice1712_t *ice, unsigned char reg, unsigned
char data);
+
static int __devinit snd_ice1712_ews_init(ice1712_t *ice)
{
int err;
@@ -425,6 +431,7 @@
snd_printk("PCF9554 initialization failed\n");
return err;
}
+ snd_ice1712_6fire_write_pca(ice, PCF9554_REG_CONFIG, 0x80);
break;
case ICE1712_SUBDEVICE_EWS88MT:
case ICE1712_SUBDEVICE_EWS88MT_NEW:
@@ -750,11 +757,6 @@
* DMX 6Fire specific controls
*/
-#define PCF9554_REG_INPUT 0
-#define PCF9554_REG_OUTPUT 1
-#define PCF9554_REG_POLARITY 2
-#define PCF9554_REG_CONFIG 3
-
static int snd_ice1712_6fire_read_pca(ice1712_t *ice, unsigned char reg)
{
unsigned char byte;