Commit 8a32f81a authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull ata updates from Damien Le Moal:
 "For this cycle, the libata.force kernel parameter changes stand out.
  Beside that, some small cleanups in various drivers. In more detail:

   - Changes to the pata_mpc52xx driver in preparation for powerpc's
     asm/prom.h cleanup, from Christophe.

   - Improved ATA command allocation, from John.

   - Various small cleanups to the pata_via, pata_sil680, pata_ftide010,
     sata_gemini, ahci_brcm drivers and to libata-core, from Sergey,
     Diego, Ruyi, Mighao and Jiabing.

   - Add support for the RZ/G2H SoC to the rcar-sata driver, from Lad.

   - AHCI RAID ID cleanup, from Dan.

   - Improvement to the libata.force kernel parameter to allow most
     horkage flags to be manually forced for debugging drive issues in
     the field without needing recompiling a kernel, from me"

* tag 'ata-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/libata:
  ata: pata_ftide010: Remove unneeded ERROR check before clk_disable_unprepare
  doc: admin-guide: Update libata kernel parameters
  ata: libata-core: Allow forcing most horkage flags
  ata: libata-core: Improve link flags forced settings
  ata: libata-core: Refactor force_tbl definition
  ata: libata-core: cleanup ata_device_blacklist
  ata: simplify the return expression of brcm_ahci_remove
  ata: Make use of the helper function devm_platform_ioremap_resource()
  ata: libata-core: replace "its" with "it is"
  ahci: Add a generic 'controller2' RAID id
  dt-bindings: ata: renesas,rcar-sata: Add r8a774e1 support
  ata: pata_via: fix sloppy typing in via_do_set_mode()
  ata: pata_sil680: fix result type of sil680_sel{dev|reg}()
  ata: libata-core: fix parameter type in ata_xfer_mode2shift()
  libata: Improve ATA queued command allocation
  ata: pata_mpc52xx: Prepare cleanup of powerpc's asm/prom.h
parents 5dc92186 71abb4df
Loading
Loading
Loading
Loading
+55 −16
Original line number Diff line number Diff line
@@ -2622,14 +2622,14 @@
			when set.
			Format: <int>

	libata.force=	[LIBATA] Force configurations.  The format is comma-
			separated list of "[ID:]VAL" where ID is
			PORT[.DEVICE].  PORT and DEVICE are decimal numbers
			matching port, link or device.  Basically, it matches
			the ATA ID string printed on console by libata.  If
			the whole ID part is omitted, the last PORT and DEVICE
			values are used.  If ID hasn't been specified yet, the
			configuration applies to all ports, links and devices.
	libata.force=	[LIBATA] Force configurations.  The format is a comma-
			separated list of "[ID:]VAL" where ID is PORT[.DEVICE].
			PORT and DEVICE are decimal numbers matching port, link
			or device.  Basically, it matches the ATA ID string
			printed on console by libata.  If the whole ID part is
			omitted, the last PORT and DEVICE values are used.  If
			ID hasn't been specified yet, the configuration applies
			to all ports, links and devices.

			If only DEVICE is omitted, the parameter applies to
			the port and all links and devices behind it.  DEVICE
@@ -2639,7 +2639,7 @@
			host link and device attached to it.

			The VAL specifies the configuration to force.  As long
			as there's no ambiguity shortcut notation is allowed.
			as there is no ambiguity, shortcut notation is allowed.
			For example, both 1.5 and 1.5G would work for 1.5Gbps.
			The following configurations can be forced.

@@ -2652,19 +2652,58 @@
			  udma[/][16,25,33,44,66,100,133] notation is also
			  allowed.

			* nohrst, nosrst, norst: suppress hard, soft and both
			  resets.

			* rstonce: only attempt one reset during hot-unplug
			  link recovery.

			* [no]dbdelay: Enable or disable the extra 200ms delay
			  before debouncing a link PHY and device presence
			  detection.

			* [no]ncq: Turn on or off NCQ.

			* [no]ncqtrim: Turn off queued DSM TRIM.
			* [no]ncqtrim: Enable or disable queued DSM TRIM.

			* [no]ncqati: Enable or disable NCQ trim on ATI chipset.

			* [no]trim: Enable or disable (unqueued) TRIM.

			* trim_zero: Indicate that TRIM command zeroes data.

			* max_trim_128m: Set 128M maximum trim size limit.

			* [no]dma: Turn on or off DMA transfers.

			* atapi_dmadir: Enable ATAPI DMADIR bridge support.

			* atapi_mod16_dma: Enable the use of ATAPI DMA for
			  commands that are not a multiple of 16 bytes.

			* [no]dmalog: Enable or disable the use of the
			  READ LOG DMA EXT command to access logs.

			* [no]iddevlog: Enable or disable access to the
			  identify device data log.

			* [no]logdir: Enable or disable access to the general
			  purpose log directory.

			* max_sec_128: Set transfer size limit to 128 sectors.

			* max_sec_1024: Set or clear transfer size limit to
			  1024 sectors.

			* nohrst, nosrst, norst: suppress hard, soft
			  and both resets.
			* max_sec_lba48: Set or clear transfer size limit to
			  65535 sectors.

			* rstonce: only attempt one reset during
			  hot-unplug link recovery
			* [no]lpm: Enable or disable link power management.

			* dump_id: dump IDENTIFY data.
			* [no]setxfer: Indicate if transfer speed mode setting
			  should be skipped.

			* atapi_dmadir: Enable ATAPI DMADIR bridge support
			* dump_id: Dump IDENTIFY data.

			* disable: Disable this device.

+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ properties:
      - items:
          - enum:
              - renesas,sata-r8a774b1     # RZ/G2N
              - renesas,sata-r8a774e1     # RZ/G2H
              - renesas,sata-r8a7795      # R-Car H3
              - renesas,sata-r8a77965     # R-Car M3-N
          - const: renesas,rcar-gen3-sata # generic R-Car Gen3 or RZ/G2
+0 −11
Original line number Diff line number Diff line
@@ -424,12 +424,6 @@ How commands are issued
-----------------------

Internal commands
    First, qc is allocated and initialized using :c:func:`ata_qc_new_init`.
    Although :c:func:`ata_qc_new_init` doesn't implement any wait or retry
    mechanism when qc is not available, internal commands are currently
    issued only during initialization and error recovery, so no other
    command is active and allocation is guaranteed to succeed.

    Once allocated qc's taskfile is initialized for the command to be
    executed. qc currently has two mechanisms to notify completion. One
    is via ``qc->complete_fn()`` callback and the other is completion
@@ -447,11 +441,6 @@ SCSI commands
    translated. No qc is involved in processing a simulated scmd. The
    result is computed right away and the scmd is completed.

    For a translated scmd, :c:func:`ata_qc_new_init` is invoked to allocate a
    qc and the scmd is translated into the qc. SCSI midlayer's
    completion notification function pointer is stored into
    ``qc->scsidone``.

    ``qc->complete_fn()`` callback is used for completion notification. ATA
    commands use :c:func:`ata_scsi_qc_complete` while ATAPI commands use
    :c:func:`atapi_qc_complete`. Both functions end up calling ``qc->scsidone``
+3 −2
Original line number Diff line number Diff line
@@ -324,7 +324,6 @@ static const struct pci_device_id ahci_pci_tbl[] = {
	{ PCI_VDEVICE(INTEL, 0x1d02), board_ahci }, /* PBG AHCI */
	{ PCI_VDEVICE(INTEL, 0x1d04), board_ahci }, /* PBG RAID */
	{ PCI_VDEVICE(INTEL, 0x1d06), board_ahci }, /* PBG RAID */
	{ PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* PBG/Lewisburg RAID*/
	{ PCI_VDEVICE(INTEL, 0x2323), board_ahci }, /* DH89xxCC AHCI */
	{ PCI_VDEVICE(INTEL, 0x1e02), board_ahci }, /* Panther Point AHCI */
	{ PCI_VDEVICE(INTEL, 0x1e03), board_ahci_low_power }, /* Panther M AHCI */
@@ -367,7 +366,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
	{ PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */
	{ PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */
	{ PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg/Lewisburg AHCI*/
	{ PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg/Lewisburg RAID*/
	{ PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* *burg SATA0 'RAID' */
	{ PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* *burg SATA1 'RAID' */
	{ PCI_VDEVICE(INTEL, 0x282f), board_ahci }, /* *burg SATA2 'RAID' */
	{ PCI_VDEVICE(INTEL, 0x43d4), board_ahci }, /* Rocket Lake PCH-H RAID */
	{ PCI_VDEVICE(INTEL, 0x43d5), board_ahci }, /* Rocket Lake PCH-H RAID */
	{ PCI_VDEVICE(INTEL, 0x43d6), board_ahci }, /* Rocket Lake PCH-H RAID */
+1 −6
Original line number Diff line number Diff line
@@ -549,15 +549,10 @@ static int brcm_ahci_remove(struct platform_device *pdev)
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
	struct ahci_host_priv *hpriv = host->private_data;
	struct brcm_ahci_priv *priv = hpriv->plat_data;
	int ret;

	brcm_sata_phys_disable(priv);

	ret = ata_platform_remove_one(pdev);
	if (ret)
		return ret;

	return 0;
	return ata_platform_remove_one(pdev);
}

static void brcm_ahci_shutdown(struct platform_device *pdev)
Loading