|
@@ -899,14 +899,25 @@ static bool sil24_qc_fill_rtf(struct ata_queued_cmd *qc)
|
|
|
|
|
|
static void sil24_pmp_attach(struct ata_port *ap)
|
|
|
{
|
|
|
+ u32 *gscr = ap->link.device->gscr;
|
|
|
+
|
|
|
sil24_config_pmp(ap, 1);
|
|
|
sil24_init_port(ap);
|
|
|
+
|
|
|
+ if (sata_pmp_gscr_vendor(gscr) == 0x11ab &&
|
|
|
+ sata_pmp_gscr_devid(gscr) == 0x4140) {
|
|
|
+ ata_port_printk(ap, KERN_INFO,
|
|
|
+ "disabling NCQ support due to sil24-mv4140 quirk\n");
|
|
|
+ ap->flags &= ~ATA_FLAG_NCQ;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static void sil24_pmp_detach(struct ata_port *ap)
|
|
|
{
|
|
|
sil24_init_port(ap);
|
|
|
sil24_config_pmp(ap, 0);
|
|
|
+
|
|
|
+ ap->flags |= ATA_FLAG_NCQ;
|
|
|
}
|
|
|
|
|
|
static int sil24_pmp_hardreset(struct ata_link *link, unsigned int *class,
|