mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
Merge tag 'ata-6.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
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
This commit is contained in:
@@ -0,0 +1,79 @@
|
|||||||
|
# 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";
|
||||||
|
};
|
||||||
@@ -33,6 +33,10 @@ properties:
|
|||||||
- description: SPEAr1340 AHCI SATA device
|
- description: SPEAr1340 AHCI SATA device
|
||||||
const: snps,spear-ahci
|
const: snps,spear-ahci
|
||||||
|
|
||||||
|
iommus:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"^sata-port@[0-9a-e]$":
|
"^sata-port@[0-9a-e]$":
|
||||||
$ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
|
$ref: /schemas/ata/snps,dwc-ahci-common.yaml#/$defs/dwc-ahci-port
|
||||||
|
|||||||
@@ -4216,6 +4216,10 @@ static const struct ata_dev_quirks_entry __ata_dev_quirks[] = {
|
|||||||
/* Apacer models with LPM issues */
|
/* Apacer models with LPM issues */
|
||||||
{ "Apacer AS340*", NULL, ATA_QUIRK_NOLPM },
|
{ "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 */
|
/* These specific Samsung models/firmware-revs do not handle LPM well */
|
||||||
{ "SAMSUNG MZMPC128HBFU-000MV", "CXM14M1Q", ATA_QUIRK_NOLPM },
|
{ "SAMSUNG MZMPC128HBFU-000MV", "CXM14M1Q", ATA_QUIRK_NOLPM },
|
||||||
{ "SAMSUNG SSD PM830 mSATA *", "CXM13D1Q", ATA_QUIRK_NOLPM },
|
{ "SAMSUNG SSD PM830 mSATA *", "CXM13D1Q", ATA_QUIRK_NOLPM },
|
||||||
|
|||||||
@@ -3191,7 +3191,8 @@ void ata_sff_port_init(struct ata_port *ap)
|
|||||||
|
|
||||||
int __init ata_sff_init(void)
|
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)
|
if (!ata_sff_wq)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@
|
|||||||
#include <linux/blkdev.h>
|
#include <linux/blkdev.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/string.h>
|
||||||
#include <scsi/scsi_host.h>
|
#include <scsi/scsi_host.h>
|
||||||
#include <linux/libata.h>
|
#include <linux/libata.h>
|
||||||
|
|
||||||
@@ -632,9 +633,9 @@ static void it821x_display_disk(struct ata_port *ap, int n, u8 *buf)
|
|||||||
cbl = "";
|
cbl = "";
|
||||||
|
|
||||||
if (mode)
|
if (mode)
|
||||||
snprintf(mbuf, 8, "%5s%d", mtype, mode - 1);
|
snprintf(mbuf, sizeof(mbuf), "%5s%d", mtype, mode - 1);
|
||||||
else
|
else
|
||||||
strcpy(mbuf, "PIO");
|
strscpy(mbuf, "PIO");
|
||||||
if (buf[52] == 4)
|
if (buf[52] == 4)
|
||||||
ata_port_info(ap, "%d: %-6s %-8s %s %s\n",
|
ata_port_info(ap, "%d: %-6s %-8s %s %s\n",
|
||||||
n, mbuf, types[buf[52]], id, cbl);
|
n, mbuf, types[buf[52]], id, cbl);
|
||||||
|
|||||||
@@ -344,6 +344,7 @@ static const struct pcmcia_device_id pcmcia_devices[] = {
|
|||||||
PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79),
|
PCMCIA_DEVICE_PROD_ID2("NinjaATA-", 0xebe0bd79),
|
||||||
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591),
|
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "CD-ROM", 0x281f1c5d, 0x66536591),
|
||||||
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "PnPIDE", 0x281f1c5d, 0x0c694728),
|
PCMCIA_DEVICE_PROD_ID12("PCMCIA", "PnPIDE", 0x281f1c5d, 0x0c694728),
|
||||||
|
PCMCIA_DEVICE_PROD_ID2("PCMCIA ATA/ATAPI Adapter", 0x888d7b73),
|
||||||
PCMCIA_DEVICE_PROD_ID12("SHUTTLE TECHNOLOGY LTD.", "PCCARD-IDE/ATAPI Adapter", 0x4a3f0ba0, 0x322560e1),
|
PCMCIA_DEVICE_PROD_ID12("SHUTTLE TECHNOLOGY LTD.", "PCCARD-IDE/ATAPI Adapter", 0x4a3f0ba0, 0x322560e1),
|
||||||
PCMCIA_DEVICE_PROD_ID12("SEAGATE", "ST1", 0x87c1b330, 0xe1f30883),
|
PCMCIA_DEVICE_PROD_ID12("SEAGATE", "ST1", 0x87c1b330, 0xe1f30883),
|
||||||
PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "04/05/06", 0x43d74cb4, 0x6a22777d),
|
PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "04/05/06", 0x43d74cb4, 0x6a22777d),
|
||||||
|
|||||||
Reference in New Issue
Block a user