Jeff Garzik wrote:
TUR fails for me, too. It triggers the EH code, which is why I wound up
needing to fix it :)
Have you dumped the D2H FIS returned by the drive, when the TUR fails?
What does it look like? What does the D2H FIS look like after REQUEST
SENSE?
I bet there is some "clear error" actions we need to take on sil24,
before it work there.
Okay, I finally got my SATA dvd writer working and successfully mounted
a debian cdrom (with some number of gloss hacks). I had to do the
following to get this thing to work.
* prb->fis doesn't contain proper signature after phy reset. I just
forced DEV_ATAPI as a temporary measure. In the original sii driver
where SRST is used instead of PHY RESET, my ATAPI drive registered
correct signature but my harddisk's signature didn't show up.
* As all commands hang after failed TUR, which BTW fails rightfully with
06h (UNIT ATTENTION due to prior reset) and then 02h's (NOT READY), I
avoided TUR failures by issuing REQUEST SENSE first, which returns NO
SENSE but does clear UA condition, and then waiting for more than 10secs
to give the drive time to become ready.
* With above two changes, no command fails and I can mount the cdrom.
------------------
And here are things that I've found out so far....
* ATAPI commands without data (TEST_UNIT_READY, ALLOW_MEDIUM_REMOVAL...)
work happily with any prb->ctrl flag (no flag, PRB_CTRL_PACKET_READ or
PRB_CTRL_PACKET_WRITE).
* Currently, sil24_reset_controller() is called on every error interrupt
to make sure the controller is ready for further operation.
Unfortunately, the current reset_controller() seems to reset PHY too.
The drive becomes NOT READY after reset_controller(). So, when TUR
fails, it falls into TUR, fail with NOT READY, reset which makes the
drive NOT READY again cycle.
* Wihtout sil24_reset_controller(), no further command can be issued.
The controller doesn't seem to be operating normally after DEV_ERR.
--------------------
So, what we need to know to make sil24 work happily with ATAPI devices.
* How to get device signature on initialization.
* How to make the controller operational again after a DEV_ERR without
affecting the attached device.
--
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]