* prb->fis doesn't contain proper signature after phy reset. I just
* 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.