Re: Update to the serial driver (IRQ detect)

Manuel J. Galan (manolow@step.es)
Sun, 26 Apr 1998 21:52:43 +0100 (WEST)


-----BEGIN PGP SIGNED MESSAGE-----

The 'udelay(1) -> udelay(10)' change solved it!!! :-)

I've not been able to reply you before because of the io_apic
floppy issue with 2.1.98, now that I can boot again...

from `/var/log/kernlog'
- ----------------------------------------------
Serial driver version 4.25 with DETECT_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS02 at 0x03e8 (irq = 3) is a ST16650V2
ttyS03 at 0x02e8 (irq = 11) is a ST16650V2
- ----------------------------------------------

On 22-Apr-98 Etienne Lorrain wrote:
> Hi,
>
>> > I would like to see the content of /proc/stats (line "intr") after
>> > a false detection (ttyS0 and ttyS2 IRQ at zero) just after boot /
>> > login. It display the number of IRQ which have append whether or
>> > not there is a driver for them in the order "total, irq0, ...irq15,
>> > irqapics"
>> >
>> Found old kernel!
>>
>> On booting:
>> - ------------------------
>> Serial driver version 4.25 with DETECT_IRQ enabled
>> ttyS00 at 0x03f8 (irq = 0) is a 16550A
>> ttyS02 at 0x03e8 (irq = 0) is a ST16650V2
>> ttyS03 at 0x02e8 (irq = 11) is a ST16650V2
>> - ------------------------
>
> Considering also :
>> intr 55579 38380 2411 0 3 2944 2 3 1 1 11366 0 368 0 4 85 11 0 ...
>> total irq0 irq1 2 3 4 5 6 7 8 irq9 ...
>
> At least IRQ 3 appeared, I think the problem should
> be solved by applying this hand-edited patch
> to serial.c in function "detect_uart_irq()":
>
> serial_outp(&scr_info, UART_MCR, UART_MCR_OUT1 | UART_MCR_OUT2);
> irqs = probe_irq_on();
> serial_outp(&scr_info, UART_MCR, 0);
> - udelay (1);
> + udelay (10);
> irq = probe_irq_off(irqs);
>
> That is increasing the delay to 10 or 100.
> If you have time, could you please report success/failure.
>
>> After setserial:
>> ================================
>> ${SETSERIAL} /dev/ttyS0 irq 4 autoconfig
>> #${SETSERIAL} /dev/ttyS1 auto_irq autoconfig
>> ${SETSERIAL} /dev/ttyS2 irq 3 autoconfig
>
> I think I get it: auto_irq is set by default!
> Previous command is trying to autodetect irq after setting it
> to 3... This will work (I hope):
> ${SETSERIAL} /dev/ttyS2 ^auto_irq irq 3 autoconfig
>
>> ${SETSERIAL} /dev/ttyS3 irq 11 autoconfig baud_base 460800
>> ================================
>>
>> - ----------------------------------
>> root@mgmux(5)[/etc/rc.d]# setserial -g /dev/ttyS0
>> /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
>> root@mgmux(6)[/etc/rc.d]# setserial -g /dev/ttyS1
>> /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3 ( ??? does not exist)
>
> This is how non present UART are reported, normal.
>
>> root@mgmux(7)[/etc/rc.d]# setserial -g /dev/ttyS2
>> /dev/ttyS2, UART: 16650V2, Port: 0x03e8, IRQ: 0 ( wrong !!!)
>> root@mgmux(8)[/etc/rc.d]# setserial -g /dev/ttyS3
>> /dev/ttyS3, UART: 16650V2, Port: 0x02e8, IRQ: 11
>> - ----------------------------------
> ----------- etienne.lorrain@ibm.net
> -- hdc: irq timeout: status=0xd0 { Busy }
> -- ide1: reset: success
> ----------> I like Linux !

- --
Manuel J. Galan
manolow@step.es

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
Comment: Using RSA Key
Charset: noconv

iQEVAwUBNUOemmD+APAfXUYjAQEr9AgAydH09xPOGuRIElK1CGsNVtOUa+/DNUCR
FVUo4Kwj5Gj6j425vFxaUAw66UafGX51kPW4v2GPmgyOR1a/L3+Rzy3p0hLED53O
JdHhDuhpLo6IVHTPkPxf22MV9J1kW9+7U0gKGBzoygBqAPfC7rPLkFNnR8/KIYBf
ZPMDnPohYr/TYc3mZBnLSVYSM1AzqY8Ybf1aXOeT5rE4iQ1i8YZNJppfycEUGOt6
fwFmtyL5hgsC1oOjOihpGjBuXq8/mP9hDnhtpm72xmn6Cukb/Zhb0f1AMil4vI/N
VQIWjR0obP5/9ixQRVT/PLBhbIph9ZwgbamR/kcDSNL1Y2WWXIylfA==
=Rmci
-----END PGP SIGNATURE-----

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu