ahci: ignore spurious interrupts
Qemu 2.0 makes trouble when using seoul-disc.run - related to #1261
This commit is contained in:
parent
ba34bc32c2
commit
9f8c87f2ed
|
@ -449,15 +449,19 @@ class Ahci_device_base
|
||||||
/* write CI (command issue) slot 0 */
|
/* write CI (command issue) slot 0 */
|
||||||
_port->cmd_issue(1);
|
_port->cmd_issue(1);
|
||||||
|
|
||||||
/* wait for interrupt */
|
uint32_t status = 0;
|
||||||
_irq->wait_for_irq();
|
while (!status) {
|
||||||
|
|
||||||
if (verbose)
|
/* wait for interrupt */
|
||||||
PDBG("Int status (IRQ): global: %x port: %x error: %x",
|
_irq->wait_for_irq();
|
||||||
_ctrl->hba_intr_status(), _port->intr_status(), _port->err());
|
|
||||||
|
|
||||||
/* acknowledge interrupt */
|
if (verbose)
|
||||||
uint32_t status = _port->interrupt_ack();
|
PDBG("Int status (IRQ): global: %x port: %x error: %x",
|
||||||
|
_ctrl->hba_intr_status(), _port->intr_status(), _port->err());
|
||||||
|
|
||||||
|
/* acknowledge interrupt */
|
||||||
|
status = _port->interrupt_ack();
|
||||||
|
}
|
||||||
|
|
||||||
/* check for error */
|
/* check for error */
|
||||||
enum {
|
enum {
|
||||||
|
|
Loading…
Reference in New Issue