Commit 16460bf9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata updates from Niklas Cassel:

 - Add DT binding for the Eswin EIC7700 SoC SATA Controller (Yulin Lu)

 - Allow 'iommus' property in the Synopsys DWC AHCI SATA controller DT
   binding (Rob Herring)

 - Replace deprecated strcpy with strscpy in the pata_it821x driver
   (Thorsten Blum)

 - Add Iomega Clik! PCMCIA ATA/ATAPI Adapter PCMCIA ID to the
   pata_pcmcia driver (René Rebe)

 - Add ATA_QUIRK_NOLPM quirk for two Silicon Motion SSDs with broken LPM
   support (me)

 - Add flag WQ_PERCPU to the workqueue in the libata-sff helper library
   to explicitly request the use of the per-CPU behavior (Marco
   Crivellari)

* tag 'ata-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
  ata: libata-core: Disable LPM on Silicon Motion MD619{H,G}XCLDE3TC
  ata: pata_pcmcia: Add Iomega Clik! PCMCIA ATA/ATAPI Adapter
  ata: libata-sff: add WQ_PERCPU to alloc_workqueue users
  dt-bindings: ata: snps,dwc-ahci: Allow 'iommus' property
  ata: pata_it821x: Replace deprecated strcpy with strscpy in it821x_display_disk
  dt-bindings: ata: eswin: Document for EIC7700 SoC ahci
parents bc69ed97 6ce0dd9f
Loading
Loading
Loading
Loading
+79 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/ata/eswin,eic7700-ahci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Eswin EIC7700 SoC SATA Controller

maintainers:
  - Yulin Lu <luyulin@eswincomputing.com>
  - Huan He <hehuan1@eswincomputing.com>

description:
  AHCI SATA controller embedded into the EIC7700 SoC is based on the DWC AHCI
  SATA v5.00a IP core.

select:
  properties:
    compatible:
      const: eswin,eic7700-ahci
  required:
    - compatible

allOf:
  - $ref: snps,dwc-ahci-common.yaml#

properties:
  compatible:
    items:
      - const: eswin,eic7700-ahci
      - const: snps,dwc-ahci

  clocks:
    minItems: 2
    maxItems: 2

  clock-names:
    items:
      - const: pclk
      - const: aclk

  resets:
    maxItems: 1

  reset-names:
    const: arst

  ports-implemented:
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - resets
  - reset-names
  - phys
  - phy-names
  - ports-implemented

unevaluatedProperties: false

examples:
  - |
    sata@50420000 {
        compatible = "eswin,eic7700-ahci", "snps,dwc-ahci";
        reg = <0x50420000 0x10000>;
        interrupt-parent = <&plic>;
        interrupts = <58>;
        clocks = <&clock 171>, <&clock 186>;
        clock-names = "pclk", "aclk";
        phys = <&sata_phy>;
        phy-names = "sata-phy";
        ports-implemented = <0x1>;
        resets = <&reset 96>;
        reset-names = "arst";
    };
+4 −0
Original line number Diff line number Diff line
@@ -33,6 +33,10 @@ properties:
      - description: SPEAr1340 AHCI SATA device
        const: snps,spear-ahci

  iommus:
    minItems: 1
    maxItems: 3

patternProperties:
  "^sata-port@[0-9a-e]$":
    $ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
+4 −0
Original line number Diff line number Diff line
@@ -4216,6 +4216,10 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
	/* Apacer models with LPM issues */
	{ "Apacer AS340*",		NULL,	ATA_QUIRK_NOLPM },

	/* Silicon Motion models with LPM issues */
	{ "MD619HXCLDE3TC",		"TCVAID", ATA_QUIRK_NOLPM },
	{ "MD619GXCLDE3TC",		"TCV35D", ATA_QUIRK_NOLPM },

	/* These specific Samsung models/firmware-revs do not handle LPM well */
	{ "SAMSUNG MZMPC128HBFU-000MV", "CXM14M1Q", ATA_QUIRK_NOLPM },
	{ "SAMSUNG SSD PM830 mSATA *",  "CXM13D1Q", ATA_QUIRK_NOLPM },
+2 −1
Original line number Diff line number Diff line
@@ -3191,7 +3191,8 @@ void ata_sff_port_init(struct ata_port *ap)

int __init ata_sff_init(void)
{
	ata_sff_wq = alloc_workqueue("ata_sff", WQ_MEM_RECLAIM, WQ_MAX_ACTIVE);
	ata_sff_wq = alloc_workqueue("ata_sff", WQ_MEM_RECLAIM | WQ_PERCPU,
				     WQ_MAX_ACTIVE);
	if (!ata_sff_wq)
		return -ENOMEM;

+3 −2
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@
#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <scsi/scsi_host.h>
#include <linux/libata.h>

@@ -632,9 +633,9 @@ static void it821x_display_disk(struct ata_port *ap, int n, u8 *buf)
		cbl = "";

	if (mode)
		snprintf(mbuf, 8, "%5s%d", mtype, mode - 1);
		snprintf(mbuf, sizeof(mbuf), "%5s%d", mtype, mode - 1);
	else
		strcpy(mbuf, "PIO");
		strscpy(mbuf, "PIO");
	if (buf[52] == 4)
		ata_port_info(ap, "%d: %-6s %-8s          %s %s\n",
				n, mbuf, types[buf[52]], id, cbl);
Loading