Hi Jean,

as it turned out, the first problem report I've got revealed a typo in the
speed selection for MIR(!) for which I have no peer hardware to test with.
So far, I have no positive evidence MIR is really happy now, but the fix
is obviously right. Furthermore, the attached patch removes an obsolete
debug-printk which slipped through the last release and adds some band-aid
to retrigger the hardware ring processing, which was apparently missing in
some not-so-common cases.

Patch vs. 2.4.14-vanilla below (should be ok for -ac).

Btw, I'm wondering whether there would be some general need to provide
access to the traffic on the physical layer without having an IrDA stack
on top of the driver. Something like raw SIR byte stream. Sure, we have
this available for all the systems which use irtty - but not for FIR-style
drivers, IIRC. Would it make sense to define such an interface? It would
be helpful for people using peer devices without any IrDA stack at all, so
they can not even use Ultra sockets. I was asked this for the VLSI and it
should be possible to do - options are either significant code duplication
or adding a generic interface but for VLSI alone I doubt it's worth the
effort.

Regards,
Martin

--------------------------


--- linux-2.4.14/drivers/net/irda/vlsi_ir.c     Fri Oct 12 22:03:35 2001
+++ v2.4.14-md/drivers/net/irda/vlsi_ir.c       Sat Nov 10 12:50:58 2001
@@ -2,7 +2,7 @@
  *
  *     vlsi_ir.c:      VLSI82C147 PCI IrDA controller driver for Linux
  *
- *     Version:        0.3, Sep 30, 2001
+ *     Version:        0.3a, Nov 10, 2001
  *
  *     Copyright (c) 2001 Martin Diehl
  *
@@ -490,7 +490,7 @@
        if (mode == IFF_FIR)
                config ^= IRENABLE_FIR_ON;
        else if (mode == IFF_MIR)
-               config ^= (IRENABLE_FIR_ON|IRENABLE_CRC16_ON);
+               config ^= (IRENABLE_MIR_ON|IRENABLE_CRC16_ON);
        else
                config ^= IRENABLE_SIR_ON;
 
@@ -877,6 +877,7 @@
        idev->irlap = irlap_open(ndev,&idev->qos,hwname);
 
        netif_start_queue(ndev);
+       outw(0, ndev->base_addr+VLSI_PIO_PROMPT);       /* kick hw state machine */
 
        printk(KERN_INFO "%s: device %s operational using (%d,%d) tx,rx-ring\n",
                __FUNCTION__, ndev->name, ringsize[0], ringsize[1]);
@@ -1200,7 +1201,6 @@
        int                     alloc_size;
 
 
-       vlsi_reg_debug(0x3000, "vlsi initial state");
        if (pci_enable_device(pdev))
                goto out;
 


_______________________________________________
Linux-IrDA mailing list  -  [EMAIL PROTECTED]
http://www.pasta.cs.UiT.No/mailman/listinfo/linux-irda

Reply via email to