Update of /cvsroot/gc-linux/linux/drivers/exi
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv13454/drivers/exi
Modified Files:
exi-driver.c exi-hw.c
Log Message:
Added initial support for the Nintendo GameCube microphone (DOL-022).
Small EXI and AI fixes.
Index: exi-driver.c
===================================================================
RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-driver.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- exi-driver.c 7 Nov 2005 21:34:17 -0000 1.11
+++ exi-driver.c 17 May 2006 22:14:39 -0000 1.12
@@ -50,11 +50,12 @@
{ .id = 0x00000080, .name = "Memory Card 2043" },
{ .id = 0x01010000, .name = "USB Adapter" },
{ .id = 0x01020000, .name = "NPDP GDEV" },
- { .id = 0x05070000, .name = "IS Viewer" },
- { .id = 0x04120000, .name = "AD16" },
- { .id = 0x03010000, .name = "Marlin?" },
{ .id = 0x02020000, .name = "Modem" },
- { .id = 0x04020200, .name = "BroadBand Adapter" },
+ { .id = 0x03010000, .name = "Marlin?" },
+ { .id = 0x04020200, .name = "BroadBand Adapter (DOL-015)" },
+ { .id = 0x04120000, .name = "AD16" },
+ { .id = 0x05070000, .name = "IS Viewer" },
+ { .id = 0x0a000000, .name = "Microphone (DOL-022)" },
{ .id = 0 }
};
Index: exi-hw.c
===================================================================
RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-hw.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- exi-hw.c 7 Nov 2005 21:34:17 -0000 1.12
+++ exi-hw.c 17 May 2006 22:14:39 -0000 1.13
@@ -1026,20 +1026,17 @@
struct exi_event *event;
unsigned long flags;
- event = &exi_channel->events[event_id];
- if (exi_can_trigger_event(event)) {
- spin_lock_irqsave(&exi_channel->lock, flags);
- if ((exi_channel->csr & csr_mask)) {
+ if ((exi_channel->csr & csr_mask)) {
+ event = &exi_channel->events[event_id];
+ if (exi_can_trigger_event(event)) {
+ spin_lock_irqsave(&exi_channel->lock, flags);
exi_channel->csr &= ~csr_mask;
spin_unlock_irqrestore(&exi_channel->lock, flags);
exi_trigger_event(exi_channel, event);
exi_finish_event(event);
- goto out;
}
- spin_unlock_irqrestore(&exi_channel->lock, flags);
}
-out:
return;
}
@@ -1294,6 +1291,9 @@
exi_dev_deselect(exi_device);
exi_dev_give(exi_device);
+ /* "canonicalize" the id */
+ if (!id)
+ id = EXI_ID_INVALID;
/*
* We return a EXI_ID_NONE if there is some unidentified device
* inserted in memcard slot A or memcard slot B.
|