[PARPORT] Explanation of "stuck" FIFO?

From: Greg Nelson (ghn@qtmsys.com)
Date: Mon Feb 28 2000 - 18:27:25 EST

  • Next message: Vince Weaver: "Re: [PARPORT] EPP programming"

    Can anyone provide a quick summary (sorry if this is a FAQ, but I
    couldn't find any real explanation of this in the archives) of what
    'FIFO is stuck' means? I am in the unfortunate situation of not
    knowing whether (A) the PC hardware has a problem (B) the target at
    the other end of the cable has a problem (C) the driver has a problem,
    (D) everything is working normally, but just seems strange, or (E) my
    brain has a problem.

    Feb 28 14:00:51 linux kernel: parport0: In mode 0x10
    Feb 28 14:00:51 linux kernel: parport0: ECP direction: forward
    Feb 28 14:00:51 linux kernel: parport0: Using ECP mode
    Feb 28 14:00:51 linux kernel: parport0: ECP direction: reverse
    Feb 28 14:00:51 linux kernel: parport0: Using ECP mode
    Feb 28 14:00:56 linux kernel: parport0: FIFO is stuck
    Feb 28 14:00:56 linux kernel: parport0: wrote 0/7 bytes
    Feb 28 14:00:56 linux kernel: parport0: Using ECP mode
    Feb 28 14:00:56 linux kernel: parport0: wrote 7/7 bytes

    I've looked at the source code and at the National PC87332 datasheets
    (only ECP hardware docs I've tracked down so far). This only occurs
    when I've switched from reverse mode (by using read()) to forward mode
    (by using write()), and it also seems a little odd that I never get
    the "ECP direction: forward" that ought to correspond to the
    ecp_reverse_to_forward(). One time (after adding some debugging code
    to the parport_pc module and recompiling and reinstalling it) I got
    something different:

    Feb 28 13:58:43 linux kernel: parport0: In mode 0x10
    Feb 28 13:58:43 linux kernel: parport0: ECP direction: forward
    Feb 28 13:58:43 linux kernel: parport0: Using ECP mode
    Feb 28 13:58:43 linux kernel: parport0: ECP direction: reverse
    Feb 28 13:58:43 linux kernel: parport0: Using ECP mode
    Feb 28 13:58:43 linux kernel: parport0: ECP direction: forward
    Feb 28 13:58:43 linux kernel: parport0: wrote 7/7 bytes

    I don't know if this had to do with DMA being disabled, or something
    else, but the debugging lines I added to
    parport_pc_fifo_write_block_dma() never showed up.

    If anyone can explain this difference in behavior, or when I should or
    shouldn't expect this FIFO stuck timeout to occur, or what it means, I
    would really appreciate it.

    Thanks,
    Greg Nelson
    Princeton Gamma-Tech, Inc.
    ghn@qtmsys.com

    -- To unsubscribe, send mail to: linux-parport-request@torque.net --
    -- with the single word "unsubscribe" in the body of the message. --



    This archive was generated by hypermail 2b29 : Mon Feb 28 2000 - 18:30:01 EST