mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-25 14:10:43 +00:00
ahci: Make sending the SETFEATURES_XFER command optional
This command doesn't really do anything when talking to a SATA device, and sending it confuses some of them. This change makes sending the command optional, and defaults to not. The situations where it should be sent are not the common case. With the standard SSD in the machine, here are some times with the option turned off: 1. 8277 2. 8273 3. 8050 And turned on: 1. 8303 2. 8155 3. 8276 Sending that command seems to have no meaningful effect on performance. This fixes problems with an SSD marked Toshiba NV6424, Taiwan 11159AE P and TC58NVG5D2FTA10. Signed-off-by: Gabe Black <gabeblack@chromium.org> Signed-off-by: Taylor Hutt <thutt@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
4e422bce8a
commit
e81058c05b
1 changed files with 6 additions and 0 deletions
|
@ -373,6 +373,7 @@ static void ahci_fill_cmd_slot(struct ahci_ioports *pp, u32 opts)
|
|||
}
|
||||
|
||||
|
||||
#ifdef CONFIG_AHCI_SETFEATURES_XFER
|
||||
static void ahci_set_feature(u8 port)
|
||||
{
|
||||
struct ahci_ioports *pp = &(probe_ent->port[port]);
|
||||
|
@ -397,6 +398,7 @@ static void ahci_set_feature(u8 port)
|
|||
printf("set feature error on port %d!\n", port);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
static int ahci_port_start(u8 port)
|
||||
|
@ -743,7 +745,9 @@ void scsi_low_level_init(int busdevfunc)
|
|||
printf("Can not start port %d\n", i);
|
||||
continue;
|
||||
}
|
||||
#ifdef CONFIG_AHCI_SETFEATURES_XFER
|
||||
ahci_set_feature((u8) i);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -784,7 +788,9 @@ int ahci_init(u32 base)
|
|||
printf("Can not start port %d\n", i);
|
||||
continue;
|
||||
}
|
||||
#ifdef CONFIG_AHCI_SETFEATURES_XFER
|
||||
ahci_set_feature((u8) i);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
err_out:
|
||||
|
|
Loading…
Reference in a new issue