Hi!

I have weird problems setting up IrDA on my new Sony Notebook (Z600NE).
findchip -v gives

Found NSC PC87338 Controller at 0x398, DevID=0x0b, Rev. 2
    SIR Base 0x3e8, FIR Base 0x3e8
    IRQ = 10, DMA = 0
    Enabled: yes, Suspended: no
    UART compatible: yes
    Half duplex delay = 0 us

Loading the driver (nsc-ircc) works, it recognizes a consumer IR dongle
though, and it doesn't work. I tried setting the dongle to type 0x09, but
it still doesn't work.

Well, actually it did work twice in the last three days, but that's about
2 out of 100 tries ;-( Just unloading and reloading nsc-ircc.o made the IR
port unusable again.

I don't know what's going on, but I suspect it might even be a hardware
failure in the laptop. That's because now it doesn't work und Windows 98
either. Unfortunately I don't know if it worked reliably there, because I
only tried once in the beginning. At that time it worked, then I installed
Linux, died some IrDA experiments, and now it doesn't work anymore,
neither und Linux nor under Windows. Well, as I said before, very rarely
it does work, but usually not. Is it possible to damage the transceiver
module, and is it possible to damage it an a way that it sometimes still
works, most of the times not?

I tried to connect to my mobile phone and to another linux machine, also
running (SIR) IrDA. irdadump showed that receiving works on the laptop
side, but transmitting apparently not. As far as the NSC chip is
concerned, transmitting seems to work, i.e. the FIFO gets empty and
refilled, etc. but other IrDA devices don't receive any data.

Is it possible that the transceiver, for whichever reason, is switched to
FIR mode, would that make SIR transmission non-functional? 

Looking at the code (which btw. shows that the transceiver is switched to
SIR mode), I also found a little bug, I think:

       /* Check if we are in Legacy or PnP mode */
        outb(CFG_PNP0, cfg_base);
        reg = inb(cfg_base+1);

        pnp = (reg >> 4) & 0x01;
        if (pnp) {
                IRDA_DEBUG(2, "(), Chip is in PnP mode\n");
                outb(0x46, cfg_base);
                reg = (inb(cfg_base+1) & 0xfe) << 2;

  
I think the pnp bit is bit 3, so it should be pnp = (reg >> 3) & 0x01.
However, that has nothing to do with my problem, because pnp ends up being
1 either way.

Has anybody seen this kind of problem before? Any hints?
By the way, I've seen the exact same symptoms before, when I built the IR
port for my PC (www.infrarotport.de, just connecting a transceiver to the
mainboard). In the beginning, I left out some "unimportant" parts
(capacitor to stabilize the voltage), that caused exactly the same thing
(receiving but not transmitting). But I don't think the Sony engineers did
the same mistake ;-)

--Kai
 

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

Reply via email to