Hi
See attachment for a patch that makes my PCCOM8 "work for me" (TM).
Card is manufactured by decision.com.tw AFAIK. I have no connection
with them other than that I have a few of their serial cards.
Patch is against the 5.01 serial driver. I'm not suggesting it be
included yet, just looking for comments and/or testers with the
right card.
TODO:
0x0002 should be replaced by PCI_DEVICE_ID_DCI_PCCOM8 with
#define PCI_DEVICE_ID_DCI_PCCOM8 0x0002
in pci.h (pci_ids.h?) or something but then people without updated
pci.h are in trouble - perhaps use a #ifdef PCI_DEVICE_ID_DCI_PCCOM8
so driver will still compile on older kernel/pci.h versions? Yukky
either way.
5.01 wouldn't compile in 2.2.16. Had to change the rs_init thing as
in patch ... Ted?
Apparently you can jumper the card to do 400K instead of 115K in
which case the max baud speed will need to be tuned.
PS. Decision have their own patches on their website against
significantly older versions of serial.c which don't have the nifty
generic pci functions. Those patches do support cards other than the
PCCOM8. I've ported those patches to 2.2.16's serial.c if anyone wants
a copy. Available under the no warranty, no support, "works for me but
may eat your hard drive or do other nasty things" licence of course ...
--Craig
--- /usr/src/linux/drivers/char/serial.c 2000/08/09 17:43:57 1.1
+++ /usr/src/linux/drivers/char/serial.c 2000/08/09 19:17:43
@@ -4559,6 +4559,10 @@
SPCI_FL_BASE0, 1, 520833,
64, 3, NULL, 0x300 },
#endif
+ { PCI_VENDOR_ID_DCI, 0x0002,
+ PCI_ANY_ID, PCI_ANY_ID,
+ SPCI_FL_BASE3, 8, 115200,
+ 8 },
/* Generic serial board */
{ 0, 0,
0, 0,
@@ -5081,7 +5085,7 @@
/*
* The serial driver boot-time initialization code!
*/
-static int __init rs_init(void)
+__initfunc(int rs_init(void))
{
int i;
struct serial_state * state;