diff options
author | Tasos Sahanidis <tasos@tasossah.com> | 2025-05-19 11:56:55 +0300 |
---|---|---|
committer | Niklas Cassel <cassel@kernel.org> | 2025-06-10 14:08:24 +0200 |
commit | 33877220b8641b4cde474a4229ea92c0e3637883 (patch) | |
tree | 8e637c670e4b12a50f5f178562fccf6bd9441ea1 /tools/perf/scripts/python/call-graph-from-sql.py | |
parent | d29fc02caad7f94b62d56ee1b01c954f9c961ba7 (diff) |
ata: libata-acpi: Do not assume 40 wire cable if no devices are enabled
On at least an ASRock 990FX Extreme 4 with a VIA VT6330, the devices
have not yet been enabled by the first time ata_acpi_cbl_80wire() is
called. This means that the ata_for_each_dev loop is never entered,
and a 40 wire cable is assumed.
The VIA controller on this board does not report the cable in the PCI
config space, thus having to fall back to ACPI even though no SATA
bridge is present.
The _GTM values are correctly reported by the firmware through ACPI,
which has already set up faster transfer modes, but due to the above
the controller is forced down to a maximum of UDMA/33.
Resolve this by modifying ata_acpi_cbl_80wire() to directly return the
cable type. First, an unknown cable is assumed which preserves the mode
set by the firmware, and then on subsequent calls when the devices have
been enabled, an 80 wire cable is correctly detected.
Since the function now directly returns the cable type, it is renamed
to ata_acpi_cbl_pata_type().
Signed-off-by: Tasos Sahanidis <tasos@tasossah.com>
Link: https://lore.kernel.org/r/20250519085945.1399466-1-tasos@tasossah.com
Signed-off-by: Niklas Cassel <cassel@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/call-graph-from-sql.py')
0 files changed, 0 insertions, 0 deletions