Back to the old thing about netdev watchdog barking about
timeouts. I've now added a small patch to smc-ircc.c:
--- linux-2.4-clean/drivers/net/irda/smc-ircc.c Fri Oct 5 03:41:09 2001
+++ linux-2.4-irda/drivers/net/irda/smc-ircc.c Sun May 12 17:03:41 2002
@@ -154,6 +154,8 @@
{ NULL }
};
+static int ircc_force_irq=0;
+static int ircc_force_dma=0;
static int ircc_irq=255;
static int ircc_dma=255;
static int ircc_fir=0;
@@ -244,6 +246,34 @@
MESSAGE("found SMC SuperIO Chip (devid=0x%02x rev=%02X base=0x%04x):
%s%s\n",devid,rev,cfg_base,type,chip->name);
+ /* Trying to reassign it to different irq/dma */
+
+ if (ircc_force_irq) {
+ MESSAGE(" trying to assign irq=0x%d\n", ircc_force_irq);
+ if (smc_access(cfg_base,0x70)) {
+ MESSAGE(" Failed to set cfg_base for irq\n");
+ return NULL;
+ };
+
+ if (smc_access(cfg_base+1,ircc_force_irq)) {
+ MESSAGE(" Failed to set forced irq\n");
+ return NULL;
+ };
+ };
+
+ if (ircc_force_dma) {
+ MESSAGE(" trying to assign dma=0x%d\n",ircc_force_dma);
+ if (smc_access(cfg_base,0x74)) {
+ MESSAGE(" Failed to set cfg_base for DMA\n");
+ return NULL;
+ };
+
+ if (smc_access(cfg_base+1,ircc_force_dma)) {
+ MESSAGE(" Failed to set forced DMA\n");
+ return NULL;
+ };
+ };
+
if (chip->flags&NoIRDA)
MESSAGE("chipset does not support IRDA\n");
@@ -1231,6 +1261,10 @@
MODULE_DESCRIPTION("SMC IrCC controller driver");
MODULE_LICENSE("GPL");
+MODULE_PARM(ircc_force_dma, "1i");
+MODULE_PARM_DESC(ircc_force_dma, "Alternate DMA channel");
+MODULE_PARM(ircc_force_irq, "1i");
+MODULE_PARM_DESC(ircc_force_irq, "Alternate IRQ line");
MODULE_PARM(ircc_dma, "1i");
MODULE_PARM_DESC(ircc_dma, "DMA channel");
MODULE_PARM(ircc_irq, "1i");
Basically it adds two parms so that one can control what dma/irq the
controller will work with. Basically it works fine with DMA3/IRQ10 on
my Compaq Armada M700, but still showing this is my syslog:
May 12 17:02:16 lapper kernel: NETDEV WATCHDOG: irda0: transmit timed out
May 12 17:02:16 lapper kernel: irda0: transmit timed out
And the old argument of irq/dma conflicts are now removed:
[root@lapper linux-2.4]# cat /proc/interrupts
CPU0
[SNIP}
10: 44228 XT-PIC irda0
[SNIP]
And:
[root@lapper linux-2.4]# cat /proc/dma
3: irda0
4: cascade
Any more pointers?
ttfn,
A
Graeme Pyle <[EMAIL PROTECTED]> writes:
> Hi Alex,
>
> Adding the forced DMA option should be a simple thing to do - just hack
> around in drivers/net/irda/smc-ircc.c.
>
> Sadly though, I'm under a bit of pressure right now so I won't have the
> time to do it (as much as I would love to say I've contributed to the
> Linux kernel)
>
> You can force IRQ by adding the lines below to the original program I
> sent you:
>
> int irq=?;
> outb(0x70, cfg_base);
> outb(irq, cfg_base + 1);
>
> Cheers,
>
> Graeme
>
>
> On Sun, 2002-04-28 at 21:36, Alexander Hoogerhuis wrote:
> > Is there anyway that the program you created for setting the DMA could
> > have it's essence integrated into the driver so I could force a DMA at
> > loadtime? And likewise, is there any way of moving it to another IRQ?
> >
> > Thanks in advance! :)
> >
> > ttfn,
> > A
> >
> > Graeme Pyle <[EMAIL PROTECTED]> writes:
> >
> > > Hi Alex,
> > >
> > > I've been reading the SMC spec that the Linux-IrDA home page links to,
> > > and I've written something that dumps the controller config to screen.
> > > Could you please run it and send me your output? (smc-ircc-dump.cc)
> > >
> > > I also made something that sets the DMA of the IR controller. I hope
> > > that helps you with your floppy problem (smc-ircc-setdma.cc)
> > >
> > > Both should compile with "g++ -o filename filename.cc"
> > >
> > > Thanks,
> > >
> > > Graeme
> > >
> > >
> > >
> > > On Sun, 2002-03-17 at 15:04, Alexander Hoogerhuis wrote:
> > > > mail me the output of these commands BEFORE you load anything related
> > > > to IR:
> > > >
> > > > lsmod
> > > > cat /proc/dma
> > > > cat /proc/interupts
> > > > uname -a
> > > >
> > > > And I'll see if I can spot something that is not right.
> > > >
> > > > Oh, and attach .config from the top-level directory in the kernel
> > > > souce.
> > > >
> > > > ttfn,
> > > > A
> > > >
> > > > Graeme Pyle <[EMAIL PROTECTED]> writes:
> > > >
> > > > > Hi Alex,
> > > > >
> > > > > Thanks very much for all your help - I really appreciate it.
> > > > >
> > > > > I'm still having no luck with 2.8.19-pre3-ac1 though - my whole machine
> > > > > freezes (keyboard lights start flashing too) as soon as I do a "echo 1 >
> > > > > /proc/sys/net/irda/discovery" or a pppd. I can "ifconfig irda0 up"
> > > > > though.
> > > > >
> > > > > What I find strange is this:
> > > > >
> > > > > kernel: found SMC SuperIO Chip (devid=0x0a rev=00 base=0x00e0):FDC37N971
> > > > > kernel: SMC IrDA Controller found
> > > > > kernel: IrCC version 2.0, firport 0xe38, sirport 0x300 dma=2, irq=3
> > > > >
> > > > > Where does 0xe38 come from? What does your look like? Windows detects
> > > > >
> > > > > IO=0x3e8
> > > > > IO=0x130
> > > > > IRQ=7
> > > > > DMA=5
> > > > >
> > > > > If I try to override defaults, I just get "no such device".
> > > > >
> > > > > Anyhow, can you please send me a copy of your kernel config
> > > > >
> > > > > Thanks so much for your help :-)
> > > > >
> > > > > Graeme
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Sun, 2002-03-17 at 01:44, Alexander Hoogerhuis wrote:
> > > > > > 2.4.18, 2.4.19-preX are mainline releases, they are the official 2.4
> > > > > > string of releases, ac-releases are the patches by ALan Cox, which are
> > > > > > usually higly recommended anyway. Preempt it a patch by Robert
> > > > > > M. Love, look in
> > > > > > ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4
> > > > > > or thereabouts. Highly recommended too :)
> > > > > >
> > > > > > I have it working on anything after 2.4.18, with or without ac-patches
> > > > > > or preempt.
> > > > > >
> > > > > > ttfn,
> > > > > > A
> > > > > >
> > > > > > Graeme Pyle <[EMAIL PROTECTED]> writes:
> > > > > >
> > > > > > > Hi Alex,
> > > > > > >
> > > > > > > Great - I'm glad to hear you got it working!!!
> > > > > > >
> > > > > > > Excuse my ignorance, but what are "mainline releases and AC"? Or rather,
> > > > > > > which kernel version do you use and where can I get it?
> > > > > > >
> > > > > > > I see at www.kernel.org that the latest stable release is 2.4.18? Are
> > > > > > > you running a 2.5 kernel? Should I try 2.4.19-pre3, or perhaps
> > > > > > > 2.4.19-pre3-ac1?
> > > > > > >
> > > > > > > Many thanks,
> > > > > > >
> > > > > > > Graeme
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Sat, 2002-03-16 at 22:12, Alexander Hoogerhuis wrote:
> > > > > > > > All the kernels I run on now are post 2.4.18, both the mainline
> > > > > > > > releases and AC, with and without preempt, and freeswan, and it all
> > > > > > > > seems to work good as long as you dont use the floppy driver (both SMC
> > > > > > > > driver and floppy wants dma2).
> > > > > > > >
> > > > > > > > Here's what is related to IrDA in my modules.conf:
> > > > > > > >
> > > > > > > > alias tty-ldisc-11 irtty
> > > > > > > > alias char-major-10-187 irnet
> > > > > > > > alias char-major-60 ircomm_tty
> > > > > > > > alias char-major-161 ircomm-tty
> > > > > > > > alias irda0 smc-ircc
> > > > > > > > alias irlan0 irlan
> > > > > > > > post-install ircomm /bin/echo `hostname` > /proc/sys/net/irda/devname
> > > > > > > >
> > > > > > > > Then you can e.g. run this from /etc/rc.local:
> > > > > > > >
> > > > > > > > ifconfig irda0 up
> > > > > > > > echo 1 > /proc/sys/net/irda/discovery
> > > > > > > > echo 115200 > /proc/sys/net/irda/max_baud_rate
> > > > > > > > pppd /dev/ircomm0 115200 192.168.2.1:192.168.2.2 passive silent noauth
>local ms-dns 192.168.2.1 persist
> > > > > > > >
> > > > > > > > and this in /etc/rc.serial:
> > > > > > > > setserial /dev/ttyS2 uart none
> > > > > > > >
> > > > > > > > Now a Palm will be able to connect using PPP without pain. Almost,
> > > > > > > > seems sometimes it hangs with the "establishing" dialogue on the
> > > > > > > > Palm. and I still have my /var/log/messages clogged with these:
> > > > > > > >
> > > > > > > > NETDEV WATCHDOG: irda0: transmit timed out
> > > > > > > > irda0: transmit timed out
> > > > > > > > NETDEV WATCHDOG: irda0: transmit timed out
> > > > > > > > irda0: transmit timed out
> > > > > > > >
> > > > > > > > But I still get ~4kbit transfers using HSCD on my Ericsson T39m, but
> > > > > > > > then I only speak IrDA (no PPP) between the machine and the
> > > > > > > > phone.
> > > > > > > >
> > > > > > > > My .config from the kernel sources contain these bits:
> > > > > > > >
> > > > > > > > CONFIG_IRDA=m
> > > > > > > > CONFIG_IRLAN=m
> > > > > > > > CONFIG_IRNET=m
> > > > > > > > CONFIG_IRCOMM=m
> > > > > > > > CONFIG_IRDA_ULTRA=y
> > > > > > > > CONFIG_IRDA_CACHE_LAST_LSAP=y
> > > > > > > > CONFIG_IRDA_FAST_RR=y
> > > > > > > > # CONFIG_IRDA_DEBUG is not set
> > > > > > > > CONFIG_IRTTY_SIR=m
> > > > > > > > CONFIG_IRPORT_SIR=m
> > > > > > > >
> > > > > > > > So there you go, you have it all :)
> > > > > > > >
> > > > > > > > ttfn,
> > > > > > > > A
> > > > > > > >
> > > > > > > > Graeme Pyle <[EMAIL PROTECTED]> writes:
> > > > > > > >
> > > > > > > > > Hi Alex,
> > > > > > > > >
> > > > > > > > > I've been reading some of your posts from February in the Linux IrDA
> > > > > > > > > mailing list. I'm also struggling with IR on an Armada M700 running
> > > > > > > > > RedHat 7.2
> > > > > > > > >
> > > > > > > > > Did you'd eventually manage to get the IR port working? If so, how?
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > >
> > > > > > > > > Graeme
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Alexander Hoogerhuis | [EMAIL PROTECTED]
> > > > > > > > CCNP - CCDP - MCNE - CCSE | +47 908 21 485
> > > > > > > > "You have zero privacy anyway. Get over it." --Scott McNealy
> > > > > > >
> > > > > >
> > > > > > --
> > > > > > Alexander Hoogerhuis | [EMAIL PROTECTED]
> > > > > > CCNP - CCDP - MCNE - CCSE | +47 908 21 485
> > > > > > "You have zero privacy anyway. Get over it." --Scott McNealy
> > > > >
> > > >
> > > > --
> > > > Alexander Hoogerhuis | [EMAIL PROTECTED]
> > > > CCNP - CCDP - MCNE - CCSE | +47 908 21 485
> > > > "You have zero privacy anyway. Get over it." --Scott McNealy
> > >
> > >
> > >
> >
> > --
> > Alexander Hoogerhuis | [EMAIL PROTECTED]
> > CCNP - CCDP - MCNE - CCSE | +47 908 21 485
> > "You have zero privacy anyway. Get over it." --Scott McNealy
>
>
> _______________________________________________
> Linux-IrDA mailing list - [EMAIL PROTECTED]
> http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda
--
Alexander Hoogerhuis | [EMAIL PROTECTED]
CCNP - CCDP - MCNE - CCSE | +47 908 21 485
"You have zero privacy anyway. Get over it." --Scott McNealy
_______________________________________________
Linux-IrDA mailing list - [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda