On Fri, Oct 10, 2008 at 10:07 AM, gettinther <gettinther@xxxxxxxxx> wrote: > On Tue, Oct 7, 2008 at 2:10 AM, Tejun Heo <htejun@xxxxxxxxx> wrote: >> gettinther wrote: >>> I have tested the patch you sent me and it solves the issue with the >>> sata dvdrom detection with the 2.6.27.rc8. The issue is still present >>> on the 2.6.26.5 kernel. Are you backporting the solution to that >>> kernel? >> >> It seems nf2/3 still have issues. Once nf2/3 are cleared, I'll >> forward the patch to -stable. >> >> Thanks. >> >> -- >> tejun >> > > Tejun, > > I applied your patch to the 2.6.26 tree (slightly modified to suit) > and it also fixes the issue there. > I can post the patch this evening if you want to. > > Thank you again, > > Cyrille > Here's the patch I applied --- a/drivers/ata/sata_nv.c.old 2008-07-13 22:51:29.000000000 +0100 +++ a/drivers/ata/sata_nv.c 2008-10-10 00:45:14.000000000 +0100 @@ -309,8 +309,6 @@ static void nv_nf2_thaw(struct ata_port *ap); static void nv_ck804_freeze(struct ata_port *ap); static void nv_ck804_thaw(struct ata_port *ap); -static int nv_hardreset(struct ata_link *link, unsigned int *class, - unsigned long deadline); static int nv_adma_slave_config(struct scsi_device *sdev); static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc); static void nv_adma_qc_prep(struct ata_queued_cmd *qc); @@ -407,7 +405,6 @@ static struct ata_port_operations nv_generic_ops = { .inherits = &ata_bmdma_port_ops, - .hardreset = nv_hardreset, .scr_read = nv_scr_read, .scr_write = nv_scr_write, }; @@ -416,6 +413,7 @@ .inherits = &nv_generic_ops, .freeze = nv_nf2_freeze, .thaw = nv_nf2_thaw, + .hardreset = sata_std_hardreset, }; static struct ata_port_operations nv_ck804_ops = { @@ -1588,21 +1586,6 @@ ata_sff_thaw(ap); } -static int nv_hardreset(struct ata_link *link, unsigned int *class, - unsigned long deadline) -{ - int rc; - - /* SATA hardreset fails to retrieve proper device signature on - * some controllers. Request follow up SRST. For more info, - * see http://bugzilla.kernel.org/show_bug.cgi?id=3352 - */ - rc = sata_sff_hardreset(link, class, deadline); - if (rc) - return rc; - return -EAGAIN; -} - static void nv_adma_error_handler(struct ata_port *ap) { struct nv_adma_port_priv *pp = ap->private_data; -- 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