Commit 17600073 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata updates from Damien Le Moal:

 - Convert the qcom AHCI controller DT bindings to DT schema (from
   Rayyan)

 - Cleanup of libata core and drivers code handling controller and
   device quirks to rename "blacklist" to the more neutral "quirk" and
   to replace the rarely used "horkage" term with the more common
   "quirk" naming (me)

 - Add libata-core message to print the quirks applied to a controller
   or device (me)

 - Remove the not-so-useful function ata_noop_qc_prep() from libata core
   (me)

 - ahci_imx driver cleanup, improvements and DT bindings compatible
   strings update (Richard and Dan)

 - libahci_platform improvements (Zhang)

 - Remove obsolete functions declarations from libata header files (from
   Gaosheng)

 - Improve teh ahci_brcm driver using managed device resources funetions
   (Zhang)

 - Introduce new helper function to improve libata EH code readability
   (Niklas)

 - Enable module autoloading for the pata_ftide010, pata_ixp4xx and
   sata_gemini drivers (Liao)

 - Move SATA related functions and data declaraions from libata-core to
   libata-sata (me)

 - Rename the function handling the sense data for successful NCQ
   commands log to better reflect that function actions (me)

 - Reduce libata memory usage by moving port resources to struct
   ata_device and by optimizing the management of resources for CDL
   capable devices (me)

 - Improve libata-eh handling of failed ATA passthrough commands
   (Niklas)

* tag 'ata-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux: (39 commits)
  ata: libata: Clear DID_TIME_OUT for ATA PT commands with sense data
  ata: libata: Fix W=1 compilation warning
  ata: libata: Improve CDL resource management
  ata: libata: Introduce ata_dev_free_resources
  ata: libata: Move sector_buf from struct ata_port to struct ata_device
  ata: libata: Rename ata_eh_read_sense_success_ncq_log()
  ata: libata: Move sata_std_hardreset() definition to libata-sata.c
  ata: libata: Move sata_down_spd_limit() to libata-sata.c
  ata: libata: Improve __ata_qc_complete()
  ata: libata-scsi: Improve ata_scsi_handle_link_detach()
  ata: libata: Cleanup libata-transport
  ata: sata_gemini: Enable module autoloading
  ata: pata_ixp4xx: Enable module autoloading
  ata: pata_ftide010: Enable module autoloading
  ata: libata: Add helper ata_eh_decide_disposition()
  ata: ahci_brcm: Use devm_platform_ioremap_resource_byname() helper function
  ata: libata: Remove obsolete function declarations
  ata: ahci_imx: Fix error code in probe()
  ata: libahci_platform: Simplify code with for_each_child_of_node_scoped()
  ata: ahci_imx: Correct the email address
  ...
parents a65b3c3e e5dd410a
Loading
Loading
Loading
Loading
+31 −2
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ select:
          - marvell,armada-3700-ahci
          - marvell,armada-8k-ahci
          - marvell,berlin2q-ahci
          - qcom,apq8064-ahci
          - qcom,ipq806x-ahci
          - socionext,uniphier-pro4-ahci
          - socionext,uniphier-pxs2-ahci
          - socionext,uniphier-pxs3-ahci
@@ -45,6 +47,8 @@ properties:
              - marvell,armada-8k-ahci
              - marvell,berlin2-ahci
              - marvell,berlin2q-ahci
              - qcom,apq8064-ahci
              - qcom,ipq806x-ahci
              - socionext,uniphier-pro4-ahci
              - socionext,uniphier-pxs2-ahci
              - socionext,uniphier-pxs3-ahci
@@ -64,11 +68,11 @@ properties:

  clocks:
    minItems: 1
    maxItems: 3
    maxItems: 5

  clock-names:
    minItems: 1
    maxItems: 3
    maxItems: 5

  interrupts:
    maxItems: 1
@@ -97,6 +101,31 @@ required:

allOf:
  - $ref: ahci-common.yaml#

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,apq8064-ahci
              - qcom,ipq806x-ahci
    then:
      properties:
        clocks:
          minItems: 5
        clock-names:
          items:
            - const: slave_iface
            - const: iface
            - const: core
            - const: rxoob
            - const: pmalive
      required:
        - phys
        - phy-names
        - clocks
        - clock-names

  - if:
      properties:
        compatible:
+47 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ properties:
      - fsl,imx53-ahci
      - fsl,imx6q-ahci
      - fsl,imx6qp-ahci
      - fsl,imx8qm-ahci

  reg:
    maxItems: 1
@@ -27,12 +28,14 @@ properties:
    maxItems: 1

  clocks:
    minItems: 2
    items:
      - description: sata clock
      - description: sata reference clock
      - description: ahb clock

  clock-names:
    minItems: 2
    items:
      - const: sata
      - const: sata_ref
@@ -58,6 +61,25 @@ properties:
    $ref: /schemas/types.yaml#/definitions/flag
    description: if present, disable spread-spectrum clocking on the SATA link.

  phys:
    items:
      - description: phandle to SATA PHY.
          Since "REXT" pin is only present for first lane of i.MX8QM PHY, it's
          calibration result will be stored, passed through second lane, and
          shared with all three lanes PHY. The first two lanes PHY are used as
          calibration PHYs, although only the third lane PHY is used by SATA.
      - description: phandle to the first lane PHY of i.MX8QM.
      - description: phandle to the second lane PHY of i.MX8QM.

  phy-names:
    items:
      - const: sata-phy
      - const: cali-phy0
      - const: cali-phy1

  power-domains:
    maxItems: 1

required:
  - compatible
  - reg
@@ -65,6 +87,31 @@ required:
  - clocks
  - clock-names

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx53-ahci
              - fsl,imx6q-ahci
              - fsl,imx6qp-ahci
    then:
      properties:
        clock-names:
          minItems: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - fsl,imx8qm-ahci
    then:
      properties:
        clock-names:
          minItems: 2

additionalProperties: false

examples:
+0 −48
Original line number Diff line number Diff line
* Qualcomm AHCI SATA Controller

SATA nodes are defined to describe on-chip Serial ATA controllers.
Each SATA controller should have its own node.

Required properties:
- compatible		: compatible list, must contain "generic-ahci"
- interrupts		: <interrupt mapping for SATA IRQ>
- reg			: <registers mapping>
- phys			: Must contain exactly one entry as specified
			  in phy-bindings.txt
- phy-names		: Must be "sata-phy"

Required properties for "qcom,ipq806x-ahci" compatible:
- clocks		: Must contain an entry for each entry in clock-names.
- clock-names		: Shall be:
				"slave_iface" - Fabric port AHB clock for SATA
				"iface" - AHB clock
				"core" - core clock
				"rxoob" - RX out-of-band clock
				"pmalive" - Power Module Alive clock
- assigned-clocks	: Shall be:
				SATA_RXOOB_CLK
				SATA_PMALIVE_CLK
- assigned-clock-rates	: Shall be:
				100Mhz (100000000) for SATA_RXOOB_CLK
				100Mhz (100000000) for SATA_PMALIVE_CLK

Example:
	sata@29000000 {
		compatible = "qcom,ipq806x-ahci", "generic-ahci";
		reg = <0x29000000 0x180>;

		interrupts = <0 209 0x0>;

		clocks = <&gcc SFAB_SATA_S_H_CLK>,
			 <&gcc SATA_H_CLK>,
			 <&gcc SATA_A_CLK>,
			 <&gcc SATA_RXOOB_CLK>,
			 <&gcc SATA_PMALIVE_CLK>;
		clock-names = "slave_iface", "iface", "core",
				"rxoob", "pmalive";
		assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
		assigned-clock-rates = <100000000>, <100000000>;

		phys = <&sata_phy>;
		phy-names = "sata-phy";
	};
+1 −1
Original line number Diff line number Diff line
@@ -1370,7 +1370,7 @@ static bool ahci_broken_suspend(struct pci_dev *pdev)
		 * V1.03 is known to be broken.  V3.04 is known to
		 * work.  Between, there are V1.06, V2.06 and V3.03
		 * that we don't have much idea about.  For now,
		 * blacklist anything older than V3.04.
		 * assume that anything older than V3.04 is broken.
		 *
		 * http://bugzilla.kernel.org/show_bug.cgi?id=15104
		 */
+1 −3
Original line number Diff line number Diff line
@@ -437,7 +437,6 @@ static int brcm_ahci_probe(struct platform_device *pdev)
	struct device *dev = &pdev->dev;
	struct brcm_ahci_priv *priv;
	struct ahci_host_priv *hpriv;
	struct resource *res;
	int ret;

	priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -451,8 +450,7 @@ static int brcm_ahci_probe(struct platform_device *pdev)
	priv->version = (unsigned long)of_id->data;
	priv->dev = dev;

	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "top-ctrl");
	priv->top_ctrl = devm_ioremap_resource(dev, res);
	priv->top_ctrl = devm_platform_ioremap_resource_byname(pdev, "top-ctrl");
	if (IS_ERR(priv->top_ctrl))
		return PTR_ERR(priv->top_ctrl);

Loading