Skip to content

Commit 2c75a8d

Browse files
committed
Merge tag 'ata-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
Pull ATA updates from Damien Le Moal: - Cleanup IRQ masking in the handling of completed report zones commands (Niklas) - Improve the handling of Thunderbolt attached devices to speed up device removal (Henry) - Several patches to generalize the existing max_sec quirks to facilitates quirking the maximum command size of buggy drives, many of which have recently showed up with the recent increase of the default max_sectors block limit (Niklas) - Cleanup the ahci-platform and sata dt-bindings schema (Rob, Manivannan) - Improve device node scan in the ahci-dwc driver (Krzysztof) - Remove clang W=1 warnings with the ahci-imx and ahci-xgene drivers (Krzysztof) - Fix a long standing potential command starvation situation with non-NCQ commands issued when NCQ commands are on-going (me) - Limit max_sectors to 8191 on the INTEL SSDSC2KG480G8 SSD (Niklas) - Remove Vesa Local Bus (VLB) support in the pata_legacy driver (Ethan) - Simple fixes in the pata_cypress (typo) and pata_ftide010 (timing) drivers (Ethan, Linus W) * tag 'ata-6.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux: ata: pata_ftide010: Fix some DMA timings ata: pata_cypress: fix typo in error message ata: pata_legacy: remove VLB support ata: libata-core: Quirk INTEL SSDSC2KG480G8 max_sectors dt-bindings: ata: sata: Document the graph port ata: libata-scsi: avoid Non-NCQ command starvation ata: libata-scsi: refactor ata_scsi_translate() ata: ahci-xgene: Fix Wvoid-pointer-to-enum-cast warning ata: ahci-imx: Fix Wvoid-pointer-to-enum-cast warning ata: ahci-dwc: Simplify with scoped for each OF child loop dt-bindings: ata: ahci-platform: Drop unnecessary select schema ata: libata: Allow more quirks ata: libata: Add libata.force parameter max_sec ata: libata: Add support to parse equal sign in libata.force ata: libata: Change libata.force to use the generic ATA_QUIRK_MAX_SEC quirk ata: libata: Add ata_force_get_fe_for_dev() helper ata: libata: Add ATA_QUIRK_MAX_SEC and convert all device quirks ata: libata: avoid long timeouts on hot-unplugged SATA DAS ata: libata-scsi: Remove superfluous local_irq_save()
2 parents 311aa68 + ff4a46c commit 2c75a8d

16 files changed

Lines changed: 402 additions & 1039 deletions

File tree

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3468,6 +3468,11 @@ Kernel parameters
34683468
* [no]logdir: Enable or disable access to the general
34693469
purpose log directory.
34703470

3471+
* max_sec=<sectors>: Set the transfer size limit, in
3472+
number of 512-byte sectors, to the value specified in
3473+
<sectors>. The value specified in <sectors> has to be
3474+
a non-zero positive integer.
3475+
34713476
* max_sec_128: Set transfer size limit to 128 sectors.
34723477

34733478
* max_sec_1024: Set or clear transfer size limit to

Documentation/devicetree/bindings/ata/ahci-platform.yaml

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,26 +18,6 @@ maintainers:
1818
- Hans de Goede <hdegoede@redhat.com>
1919
- Jens Axboe <axboe@kernel.dk>
2020

21-
select:
22-
properties:
23-
compatible:
24-
contains:
25-
enum:
26-
- brcm,iproc-ahci
27-
- cavium,octeon-7130-ahci
28-
- hisilicon,hisi-ahci
29-
- ibm,476gtr-ahci
30-
- marvell,armada-3700-ahci
31-
- marvell,armada-8k-ahci
32-
- marvell,berlin2q-ahci
33-
- qcom,apq8064-ahci
34-
- qcom,ipq806x-ahci
35-
- socionext,uniphier-pro4-ahci
36-
- socionext,uniphier-pxs2-ahci
37-
- socionext,uniphier-pxs3-ahci
38-
required:
39-
- compatible
40-
4121
properties:
4222
compatible:
4323
oneOf:

Documentation/devicetree/bindings/ata/sata-common.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,7 @@ $defs:
5454
each port can have a Port Multiplier attached thus allowing to
5555
access more than one drive by means of a single SATA port.
5656

57+
port:
58+
$ref: /schemas/graph.yaml#/properties/port
59+
5760
...

drivers/ata/Kconfig

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1127,13 +1127,6 @@ config PATA_OF_PLATFORM
11271127

11281128
If unsure, say N.
11291129

1130-
config PATA_QDI
1131-
tristate "QDI VLB PATA support"
1132-
depends on ISA
1133-
select PATA_LEGACY
1134-
help
1135-
Support for QDI 6500 and 6580 PATA controllers on VESA local bus.
1136-
11371130
config PATA_RB532
11381131
tristate "RouterBoard 532 PATA CompactFlash support"
11391132
depends on MIKROTIK_RB532
@@ -1152,14 +1145,6 @@ config PATA_RZ1000
11521145

11531146
If unsure, say N.
11541147

1155-
config PATA_WINBOND_VLB
1156-
tristate "Winbond W83759A VLB PATA support (Experimental)"
1157-
depends on ISA
1158-
select PATA_LEGACY
1159-
help
1160-
Support for the Winbond W83759A controller on Vesa Local Bus
1161-
systems.
1162-
11631148
config PATA_PARPORT
11641149
tristate "Parallel port IDE device support"
11651150
depends on PARPORT_PC
@@ -1201,7 +1186,7 @@ config PATA_LEGACY
12011186
depends on (ISA || PCI) && HAS_IOPORT
12021187
select PATA_TIMINGS
12031188
help
1204-
This option enables support for ISA/VLB/PCI bus legacy PATA
1189+
This option enables support for ISA/PCI bus legacy PATA
12051190
ports and allows them to be accessed via the new ATA layer.
12061191

12071192
If unsure, say N.

drivers/ata/ahci_dwc.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,6 @@ static void ahci_dwc_init_timer(struct ahci_host_priv *hpriv)
260260
static int ahci_dwc_init_dmacr(struct ahci_host_priv *hpriv)
261261
{
262262
struct ahci_dwc_host_priv *dpriv = hpriv->plat_data;
263-
struct device_node *child;
264263
void __iomem *port_mmio;
265264
u32 port, dmacr, ts;
266265

@@ -271,14 +270,9 @@ static int ahci_dwc_init_dmacr(struct ahci_host_priv *hpriv)
271270
* the HBA global reset so we can freely initialize it once until the
272271
* next system reset.
273272
*/
274-
for_each_child_of_node(dpriv->pdev->dev.of_node, child) {
275-
if (!of_device_is_available(child))
276-
continue;
277-
278-
if (of_property_read_u32(child, "reg", &port)) {
279-
of_node_put(child);
273+
for_each_available_child_of_node_scoped(dpriv->pdev->dev.of_node, child) {
274+
if (of_property_read_u32(child, "reg", &port))
280275
return -EINVAL;
281-
}
282276

283277
port_mmio = __ahci_port_base(hpriv, port);
284278
dmacr = readl(port_mmio + AHCI_DWC_PORT_DMACR);

drivers/ata/ahci_imx.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,7 @@ static int imx_ahci_probe(struct platform_device *pdev)
869869
imxpriv->ahci_pdev = pdev;
870870
imxpriv->no_device = false;
871871
imxpriv->first_time = true;
872-
imxpriv->type = (enum ahci_imx_type)device_get_match_data(dev);
872+
imxpriv->type = (unsigned long)device_get_match_data(dev);
873873

874874
imxpriv->sata_clk = devm_clk_get(dev, "sata");
875875
if (IS_ERR(imxpriv->sata_clk)) {

drivers/ata/ahci_xgene.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ static int xgene_ahci_probe(struct platform_device *pdev)
773773
}
774774

775775
if (dev->of_node) {
776-
version = (enum xgene_ahci_version)of_device_get_match_data(dev);
776+
version = (unsigned long)of_device_get_match_data(dev);
777777
}
778778
#ifdef CONFIG_ACPI
779779
else {

0 commit comments

Comments
 (0)