Skip to content

Commit

Permalink
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/gi…
Browse files Browse the repository at this point in the history
…t/jejb/scsi

Pull SCSI updates from James Bottomley:
 "Updates to the usual drivers (ufs, pm80xx, libata-scsi, smartpqi,
  lpfc, qla2xxx).

  We have a couple of major core changes impacting other systems:

   - Command Duration Limits, which spills into block and ATA

   - block level Persistent Reservation Operations, which touches block,
     nvme, target and dm

  Both of these are added with merge commits containing a cover letter
  explaining what's going on"

* tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (187 commits)
  scsi: core: Improve warning message in scsi_device_block()
  scsi: core: Replace scsi_target_block() with scsi_block_targets()
  scsi: core: Don't wait for quiesce in scsi_device_block()
  scsi: core: Don't wait for quiesce in scsi_stop_queue()
  scsi: core: Merge scsi_internal_device_block() and device_block()
  scsi: sg: Increase number of devices
  scsi: bsg: Increase number of devices
  scsi: qla2xxx: Remove unused nvme_ls_waitq wait queue
  scsi: ufs: ufs-pci: Add support for Intel Arrow Lake
  scsi: sd: sd_zbc: Use PAGE_SECTORS_SHIFT
  scsi: ufs: wb: Add explicit flush_threshold sysfs attribute
  scsi: ufs: ufs-qcom: Switch to the new ICE API
  scsi: ufs: dt-bindings: qcom: Add ICE phandle
  scsi: ufs: ufs-mediatek: Set UFSHCD_QUIRK_MCQ_BROKEN_RTC quirk
  scsi: ufs: ufs-mediatek: Set UFSHCD_QUIRK_MCQ_BROKEN_INTR quirk
  scsi: ufs: core: Add host quirk UFSHCD_QUIRK_MCQ_BROKEN_RTC
  scsi: ufs: core: Add host quirk UFSHCD_QUIRK_MCQ_BROKEN_INTR
  scsi: ufs: core: Remove dedicated hwq for dev command
  scsi: ufs: core: mcq: Fix the incorrect OCS value for the device command
  scsi: ufs: dt-bindings: samsung,exynos: Drop unneeded quotes
  ...
  • Loading branch information
torvalds committed Jun 30, 2023
2 parents 1546cd4 + af92c02 commit ca7ce08
Show file tree
Hide file tree
Showing 177 changed files with 4,837 additions and 2,244 deletions.
22 changes: 22 additions & 0 deletions Documentation/ABI/testing/sysfs-block-device
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,25 @@ Description:
This file does not exist if the HBA driver does not implement
support for the SATA NCQ priority feature, regardless of the
device support for this feature.


What: /sys/block/*/device/cdl_supported
Date: May, 2023
KernelVersion: v6.5
Contact: [email protected]
Description:
(RO) Indicates if the device supports the command duration
limits feature found in some ATA and SCSI devices.


What: /sys/block/*/device/cdl_enable
Date: May, 2023
KernelVersion: v6.5
Contact: [email protected]
Description:
(RW) For a device supporting the command duration limits
feature, write to the file to turn on or off the feature.
By default this feature is turned off.
Writing "1" to this file enables the use of command duration
limits for read and write commands in the kernel and turns on
the feature on the device. Writing "0" disables the feature.
11 changes: 11 additions & 0 deletions Documentation/ABI/testing/sysfs-driver-ufs
Original file line number Diff line number Diff line change
Expand Up @@ -1426,6 +1426,17 @@ Description: This entry shows the status of WriteBooster buffer flushing
If flushing is enabled, the device executes the flush
operation when the command queue is empty.

What: /sys/bus/platform/drivers/ufshcd/*/wb_flush_threshold
What: /sys/bus/platform/devices/*.ufs/wb_flush_threshold
Date: June 2023
Contact: Lu Hongfei <[email protected]>
Description:
wb_flush_threshold represents the threshold for flushing WriteBooster buffer,
whose value expressed in unit of 10% granularity, such as '1' representing 10%,
'2' representing 20%, and so on.
If avail_wb_buff < wb_flush_threshold, it indicates that WriteBooster buffer needs to
be flushed, otherwise it is not necessary.

What: /sys/bus/platform/drivers/ufshcd/*/device_descriptor/hpb_version
What: /sys/bus/platform/devices/*.ufs/device_descriptor/hpb_version
Date: June 2021
Expand Down
26 changes: 26 additions & 0 deletions Documentation/devicetree/bindings/ufs/qcom,ufs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ properties:
- qcom,msm8994-ufshc
- qcom,msm8996-ufshc
- qcom,msm8998-ufshc
- qcom,sa8775p-ufshc
- qcom,sc8280xp-ufshc
- qcom,sdm845-ufshc
- qcom,sm6350-ufshc
Expand Down Expand Up @@ -70,6 +71,10 @@ properties:
power-domains:
maxItems: 1

qcom,ice:
$ref: /schemas/types.yaml#/definitions/phandle
description: phandle to the Inline Crypto Engine node

reg:
minItems: 1
maxItems: 2
Expand Down Expand Up @@ -105,6 +110,7 @@ allOf:
contains:
enum:
- qcom,msm8998-ufshc
- qcom,sa8775p-ufshc
- qcom,sc8280xp-ufshc
- qcom,sm8250-ufshc
- qcom,sm8350-ufshc
Expand Down Expand Up @@ -187,6 +193,26 @@ allOf:

# TODO: define clock bindings for qcom,msm8994-ufshc

- if:
properties:
qcom,ice:
maxItems: 1
then:
properties:
reg:
maxItems: 1
clocks:
minItems: 8
maxItems: 8
else:
properties:
reg:
minItems: 2
maxItems: 2
clocks:
minItems: 9
maxItems: 11

unevaluatedProperties: false

examples:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ properties:
const: ufs-phy

samsung,sysreg:
$ref: '/schemas/types.yaml#/definitions/phandle-array'
$ref: /schemas/types.yaml#/definitions/phandle-array
description: Should be phandle/offset pair. The phandle to the syscon node
which indicates the FSYSx sysreg interface and the offset of
the control register for UFS io coherency setting.
Expand Down
1 change: 1 addition & 0 deletions Documentation/scsi/arcmsr_spec.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
===================
ARECA FIRMWARE SPEC
===================

Expand Down
17 changes: 7 additions & 10 deletions Documentation/scsi/dc395x.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0
======================================
README file for the dc395x SCSI driver
======================================
==================
dc395x SCSI driver
==================

Status
------
Expand All @@ -11,13 +11,10 @@ be safe to use. Testing with hard disks has not been done to any
great degree and caution should be exercised if you want to attempt
to use this driver with hard disks.

This is a 2.5 only driver. For a 2.4 driver please see the original
driver (which this driver started from) at
http://www.garloff.de/kurt/linux/dc395/

Problems, questions and patches should be submitted to the mailing
list. Details on the list, including archives, are available at
http://lists.twibble.org/mailman/listinfo/dc395x/
This driver is evolved from `the original 2.4 driver
<https://web.archive.org/web/20140129181343/http://www.garloff.de/kurt/linux/dc395/>`_.
Problems, questions and patches should be submitted to the `Linux SCSI
mailing list <[email protected]>`_.

Parameters
----------
Expand Down
6 changes: 3 additions & 3 deletions Documentation/scsi/g_NCR5380.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>

==========================================
README file for the Linux g_NCR5380 driver
==========================================
================
g_NCR5380 driver
================

Copyright |copy| 1993 Drew Eckhard

Expand Down
37 changes: 32 additions & 5 deletions Documentation/scsi/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,38 @@
SCSI Subsystem
==============

.. toctree::
:maxdepth: 1

Introduction
============

.. toctree::
:maxdepth: 1

scsi

SCSI driver APIs
================

.. toctree::
:maxdepth: 1

scsi_mid_low_api
scsi_eh

SCSI driver parameters
======================

.. toctree::
:maxdepth: 1

scsi-parameters
link_power_management_policy

SCSI host adapter drivers
=========================

.. toctree::
:maxdepth: 1

Expand All @@ -25,20 +57,15 @@ SCSI Subsystem
hpsa
hptiop
libsas
link_power_management_policy
lpfc
megaraid
ncr53c8xx
NinjaSCSI
ppa
qlogicfas
scsi-changer
scsi_eh
scsi_fc_transport
scsi-generic
scsi_mid_low_api
scsi-parameters
scsi
sd-parameters
smartpqi
st
Expand Down
6 changes: 3 additions & 3 deletions Documentation/scsi/megaraid.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0
==========================
Notes on Management Module
==========================
=================================
Megaraid Common Management Module
=================================

Overview
--------
Expand Down
6 changes: 3 additions & 3 deletions Documentation/scsi/ncr53c8xx.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0
=================================================
The Linux NCR53C8XX/SYM53C8XX drivers README file
=================================================
===========================
NCR53C8XX/SYM53C8XX drivers
===========================

Written by Gerard Roudier <[email protected]>

Expand Down
6 changes: 3 additions & 3 deletions Documentation/scsi/scsi-changer.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0
========================================
README for the SCSI media changer driver
========================================
=========================
SCSI media changer driver
=========================

This is a driver for SCSI Medium Changer devices, which are listed
with "Type: Medium Changer" in /proc/scsi/scsi.
Expand Down
53 changes: 21 additions & 32 deletions Documentation/scsi/scsi-generic.rst
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
.. SPDX-License-Identifier: GPL-2.0
=======================================
Notes on Linux SCSI Generic (sg) driver
=======================================
========================
SCSI Generic (sg) driver
========================

20020126

Introduction
============
The SCSI Generic driver (sg) is one of the four "high level" SCSI device
drivers along with sd, st and sr (disk, tape and CDROM respectively). Sg
drivers along with sd, st and sr (disk, tape and CD-ROM respectively). Sg
is more generalized (but lower level) than its siblings and tends to be
used on SCSI devices that don't fit into the already serviced categories.
Thus sg is used for scanners, CD writers and reading audio CDs digitally
Expand All @@ -22,7 +22,7 @@ and examples.

Major versions of the sg driver
===============================
There are three major versions of sg found in the linux kernel (lk):
There are three major versions of sg found in the Linux kernel (lk):
- sg version 1 (original) from 1992 to early 1999 (lk 2.2.5) .
It is based in the sg_header interface structure.
- sg version 2 from lk 2.2.6 in the 2.2 series. It is based on
Expand All @@ -33,34 +33,24 @@ There are three major versions of sg found in the linux kernel (lk):

Sg driver documentation
=======================
The most recent documentation of the sg driver is kept at the Linux
Documentation Project's (LDP) site:
The most recent documentation of the sg driver is kept at

- http://www.tldp.org/HOWTO/SCSI-Generic-HOWTO
- https://sg.danny.cz/sg/

This describes the sg version 3 driver found in the lk 2.4 series.

The LDP renders documents in single and multiple page HTML, postscript
and pdf. This document can also be found at:
Documentation (large version) for the version 2 sg driver found in the
lk 2.2 series can be found at

- http://sg.danny.cz/sg/p/sg_v3_ho.html

Documentation for the version 2 sg driver found in the lk 2.2 series can
be found at http://sg.danny.cz/sg/. A larger version
is at: http://sg.danny.cz/sg/p/scsi-generic_long.txt.
- https://sg.danny.cz/sg/p/scsi-generic_long.txt.

The original documentation for the sg driver (prior to lk 2.2.6) can be
found at http://www.torque.net/sg/p/original/SCSI-Programming-HOWTO.txt
and in the LDP archives.
found in the LDP archives at

A changelog with brief notes can be found in the
/usr/src/linux/include/scsi/sg.h file. Note that the glibc maintainers copy
and edit this file (removing its changelog for example) before placing it
in /usr/include/scsi/sg.h . Driver debugging information and other notes
can be found at the top of the /usr/src/linux/drivers/scsi/sg.c file.
- https://tldp.org/HOWTO/archived/SCSI-Programming-HOWTO/index.html

A more general description of the Linux SCSI subsystem of which sg is a
part can be found at http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO .
part can be found at https://www.tldp.org/HOWTO/SCSI-2.4-HOWTO .


Example code and utilities
Expand All @@ -73,8 +63,8 @@ There are two packages of sg utilities:
and earlier
========= ==========================================================

Both packages will work in the lk 2.4 series however sg3_utils offers more
capabilities. They can be found at: http://sg.danny.cz/sg/sg3_utils.html and
Both packages will work in the lk 2.4 series. However, sg3_utils offers more
capabilities. They can be found at: https://sg.danny.cz/sg/sg3_utils.html and
freecode.com

Another approach is to look at the applications that use the sg driver.
Expand All @@ -83,7 +73,7 @@ These include cdrecord, cdparanoia, SANE and cdrdao.

Mapping of Linux kernel versions to sg driver versions
======================================================
Here is a list of linux kernels in the 2.4 series that had new version
Here is a list of Linux kernels in the 2.4 series that had the new version
of the sg driver:

- lk 2.4.0 : sg version 3.1.17
Expand All @@ -92,10 +82,10 @@ of the sg driver:
- lk 2.4.17 : sg version 3.1.22

.. [#] There were 3 changes to sg version 3.1.20 by third parties in the
next six linux kernel versions.
next six Linux kernel versions.
For reference here is a list of linux kernels in the 2.2 series that had
new version of the sg driver:
For reference here is a list of Linux kernels in the 2.2 series that had
the new version of the sg driver:

- lk 2.2.0 : original sg version [with no version number]
- lk 2.2.6 : sg version 2.1.31
Expand All @@ -106,9 +96,8 @@ new version of the sg driver:
- lk 2.2.17 : sg version 2.1.39
- lk 2.2.20 : sg version 2.1.40

The lk 2.5 development series has recently commenced and it currently
contains sg version 3.5.23 which is functionally equivalent to sg
version 3.1.22 found in lk 2.4.17.
The lk 2.5 development series currently contains sg version 3.5.23
which is functionally equivalent to sg version 3.1.22 found in lk 2.4.17.


Douglas Gilbert
Expand Down
Loading

0 comments on commit ca7ce08

Please sign in to comment.