mirror of https://gitee.com/openkylin/linux.git
libata: Limit max sector to 128 for TORiSAN DVD drives (take 3)
patch 3/4: The TORiSAN drive locks up when max sector == 256. Limit max sector to 128 for the TORiSAN DRD-N216 drives. (http://bugzilla.kernel.org/show_bug.cgi?id=6710) Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
56287768e3
commit
18d6e9d518
|
@ -1784,6 +1784,9 @@ int ata_dev_configure(struct ata_device *dev)
|
|||
dev->max_sectors = ATA_MAX_SECTORS;
|
||||
}
|
||||
|
||||
if (ata_device_blacklisted(dev) & ATA_HORKAGE_MAX_SEC_128)
|
||||
dev->max_sectors = min(ATA_MAX_SECTORS_128, dev->max_sectors);
|
||||
|
||||
if (ap->ops->dev_config)
|
||||
ap->ops->dev_config(ap, dev);
|
||||
|
||||
|
@ -3352,6 +3355,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
{ "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA },
|
||||
{ "SAMSUNG CD-ROM SN-124","N001", ATA_HORKAGE_NODMA },
|
||||
|
||||
/* Weird ATAPI devices */
|
||||
{ "TORiSAN DVD-ROM DRD-N216", NULL, ATA_HORKAGE_MAX_SEC_128 },
|
||||
|
||||
/* Devices we expect to fail diagnostics */
|
||||
|
||||
/* Devices where NCQ should be avoided */
|
||||
|
|
|
@ -40,6 +40,7 @@ enum {
|
|||
ATA_MAX_DEVICES = 2, /* per bus/port */
|
||||
ATA_MAX_PRD = 256, /* we could make these 256/256 */
|
||||
ATA_SECT_SIZE = 512,
|
||||
ATA_MAX_SECTORS_128 = 128,
|
||||
ATA_MAX_SECTORS = 256,
|
||||
ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */
|
||||
|
||||
|
|
|
@ -311,6 +311,7 @@ enum {
|
|||
ATA_HORKAGE_DIAGNOSTIC = (1 << 0), /* Failed boot diag */
|
||||
ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */
|
||||
ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */
|
||||
ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */
|
||||
};
|
||||
|
||||
enum hsm_task_states {
|
||||
|
|
Loading…
Reference in New Issue