Szymon,
On 19/06/19 7:50 AM, Szymon Bieganski wrote:
Hello Geert,
On 6/18/19 8:56 AM, Geert Uytterhoeven wrote:
Can you sprinkle some debug prints
printk("%s:%u\n", __func__, __LINE__);
in ide_probe_port() and probe_for_drive() (drivers/ide/ide-probe.c) and retry?
I've recompiled with addition of these extra lines, and found out that
the re-enable of irq = 2 hangs (see attached log for details)
===================
printk("%s:%u\n", __func__, __LINE__);
/*
* Use cached IRQ number. It might be (and is...) changed by probe
* code above
*/
printk("irqd = %u\n", irqd); // printed last
Does the heartbeat LED keep flashing past this point? I wonder whether
there's an interrupt still pending on the IDE interface that wasn't
cleared when the probe for hdb timed out.
Can you add more output to check where ide_dev_read_id() exits in this
case? And maybe add
(void)tp_ops->read_status(hwif);
before the return instruction taken?
Cheers,
Michael
if (irqd) {
enable_irq(irqd);
printk("enabled IRQ %u\n", irqd);
}
printk("%s:%u\n", __func__, __LINE__);
return rc;
====================
The interrupts present on my machine are:
(initramfs) cd
/proc
(initramfs) cat interrupts
CPU0
2: 5 auto CIAA, apne
6: 5973 auto CIAB
8: 580 amiga serial TX
9: 0 amiga floppy_dma
12: 2110 amiga fb vertb handler
13: 1925 amiga serial status
19: 44 amiga serial RX
23: 4 cia floppy_timer
25: 0 cia amikbd
27: 5973 cia timer
ERR: 0
I hope I provided enough information this time.
With kind regards,
Szymon