Some uli controllers have stuck SIMPLEX bit which can't be cleared with ata_pci_clear_simplex(), but the controller is capable of doing DMAs on both channels simultaneously. Implement ATA_FLAG_IGN_SIMPLEX which makes libata ignore the simplex bit and use it in sata_uli.
Showing the changes to include/linux (1 of 3 files). Show all
Unified · Split
| @@ -177,6 +177,7 @@ enum { · 176 unmodified lines | |||
| 177 | * Register FIS clearing BSY */ | 177 | * Register FIS clearing BSY */ |
| 178 | ATA_FLAG_DEBUGMSG = (1 << 13), | 178 | ATA_FLAG_DEBUGMSG = (1 << 13), |
| 179 | ATA_FLAG_SETXFER_POLLING= (1 << 14), /* use polling for SETXFER */ | 179 | ATA_FLAG_SETXFER_POLLING= (1 << 14), /* use polling for SETXFER */ |
| 180 | ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ | ||
| 180 | 181 | ||
| 181 | /* The following flag belongs to ap->pflags but is kept in | 182 | /* The following flag belongs to ap->pflags but is kept in |
| 182 | * ap->flags because it's referenced in many LLDs and will be | 183 | * ap->flags because it's referenced in many LLDs and will be |