Tejun Heo wrote:
Mark Lord wrote:
Tejun,
Apparently the newer (GenIIe) sata_mv chips *can* support asynchronous
notification without problems. Some/all of the older ones cannot
(errata).
So, I've done the one-liner change in sata_mv, to add ATA_FLAG_AN to
the 7042 and 6042 chips, and it all seems to work rather nicely.
Am I missing something? Is there any other local code to sata_mv
that should be provided before setting ATA_FLAG_AN ?
Like I said, it works, but I just want to check whether any other
pieces are expected to be present?
You need to call sata_async_notification() from interrupt handler after
AN FIS is received. sata_async_notification() is responsible for
discerning between ATAPI and PMP ANs using SNotification and schedule
appropriate actions. If SNotification is not available && PMP is
attached, it just calls ata_port_schedule_eh(). That's probably why it
just worked by setting ATA_FLAG_AN.
..
Okay, that's cool. So mv_err_intr() now just calls sata_async_notification(),
and then bails out without further action (if no other errors coincided),
and the EH then runs for just that one PM link, rather than the whole port.
(tested, working).
Cool!
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html