All of lore.kernel.org
 help / color / mirror / Atom feed
* Celleb cannot exit from ata_host_intr()
@ 2007-01-18  6:52 Akira Iguchi
  2007-01-19 10:48 ` Albert Lee
  0 siblings, 1 reply; 4+ messages in thread
From: Akira Iguchi @ 2007-01-18  6:52 UTC (permalink / raw)
  To: linux-ide; +Cc: kou.ishizaki

Hi,

I have a problem that our hardware (Celleb) cannot exit from
ata_host_intr() when ATAPI DMA data read fails.

This PATA controller sets bit2 (ATA_DMA_INTR) of BMDMA status register
after it finished DMA data read. If ATAPI DMA data read fails
due to no CDROM, it doesn't transfer data and generates an interrupt.
In this case, bit2 of BMDMA status register is not set.

libata ISR (ata_host_intr()) checks this bit by the following code:

			/* if it's not our irq... */
			if (!(host_stat & ATA_DMA_INTR))
				goto idle_irq;


Our driver always hits this check. As a result, ISR loops forever.
I temporarily use libata by removing this check.

I wonder if this check is necessary. In drivers/ide, cdrom_decode_status()
seems to check IDE STATUS register instead of BMDMA status register.
If there is no problem, I hope this check will be removed.

Best regards,
Akira Iguchi

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-01-22  7:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-18  6:52 Celleb cannot exit from ata_host_intr() Akira Iguchi
2007-01-19 10:48 ` Albert Lee
2007-01-22  2:48   ` Akira Iguchi
     [not found]   ` <200701220248.l0M2m9r4016903@toshiba.co.jp>
2007-01-22  7:58     ` Albert Lee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.