Commit graph

1,267,977 commits

Author SHA1 Message Date
Gabor Juhos
55c3d039e7 dt-bindings: usb: qcom,dwc3: fix a typo in interrupts' description
The correct interrupt name is 'hs_phy_irq' not 'hs_phY_irq'.

Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240220-dt-bindins-qcom-dwc3-fix-typo-v1-1-742bf6e49641@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:39:01 +01:00
Danila Tikhonov
f81c2f01ca arm64: dts: qcom: pm6150: define USB-C related blocks
Define VBUS regulator and the Type-C handling block as present on the
Qualcomm PM6150 PMIC.

Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240220202147.228911-3-danila@jiaxyga.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:37:22 +01:00
Danila Tikhonov
dfb953f891 dt-bindings: usb: qcom,pmic-typec: Add support for the PM6150 PMIC
The PM6150 PMIC has the same Type-C register block as the PM8150B.
Define corresponding compatible string, having the qcom,pm8150b-vbus-reg
as a fallback.

Signed-off-by: Danila Tikhonov <danila@jiaxyga.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240220202147.228911-2-danila@jiaxyga.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:37:22 +01:00
Colin Ian King
654298aeac usb: cdns3: Fix spelling mistake "supporte" -> "supported"
There is a spelling mistake in a dev_err message. Fix it.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Link: https://lore.kernel.org/r/20240220080617.2674613-1-colin.i.king@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:37:19 +01:00
Michal Pecio
9f2a3933be USB: document some API requirements on disconnection
A call to usb_set_interface() crashes if the device is deallocated
concurrently, such as due to physical removal or a serious IO error.
It could also interfere with other drivers using the device if the
current driver is unbound before the call is finished.

Document the need to delay driver unbinding until this call returns,
which solves both issues.

Document the same regarding usb_clear_halt(), which is equally known
to be routinely called by drivers.

Explicitly mention finishing pending operations in the documentation
of the driver disconnect callback.

Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
Link: https://lore.kernel.org/r/20240218092515.7635ff8c@foxbook
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:37:14 +01:00
Alan Stern
014bcf41d9 USB: usb-storage: Prevent divide-by-0 error in isd200_ata_command
The isd200 sub-driver in usb-storage uses the HEADS and SECTORS values
in the ATA ID information to calculate cylinder and head values when
creating a CDB for READ or WRITE commands.  The calculation involves
division and modulus operations, which will cause a crash if either of
these values is 0.  While this never happens with a genuine device, it
could happen with a flawed or subversive emulation, as reported by the
syzbot fuzzer.

Protect against this possibility by refusing to bind to the device if
either the ATA_ID_HEADS or ATA_ID_SECTORS value in the device's ID
information is 0.  This requires isd200_Initialization() to return a
negative error code when initialization fails; currently it always
returns 0 (even when there is an error).

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: syzbot+28748250ab47a8f04100@syzkaller.appspotmail.com
Link: https://lore.kernel.org/linux-usb/0000000000003eb868061245ba7f@google.com/
Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Reviewed-by: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/b1e605ea-333f-4ac0-9511-da04f411763e@rowland.harvard.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:32:03 +01:00
Prashanth K
be95cc6d71 usb: xhci: Add error handling in xhci_map_urb_for_dma
Currently xhci_map_urb_for_dma() creates a temporary buffer and copies
the SG list to the new linear buffer. But if the kzalloc_node() fails,
then the following sg_pcopy_to_buffer() can lead to crash since it
tries to memcpy to NULL pointer.

So return -ENOMEM if kzalloc returns null pointer.

Cc: stable@vger.kernel.org # 5.11
Fixes: 2017a1e584 ("usb: xhci: Use temporary buffer to consolidate SG")
Signed-off-by: Prashanth K <quic_prashk@quicinc.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-10-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:28 +01:00
Mathias Nyman
fb18e5bb96 xhci: dbc: poll at different rate depending on data transfer activity
DbC driver starts polling for events immediately when DbC is enabled.
The current polling interval is 1ms, which keeps the CPU busy, impacting
power management even when there are no active data transfers.

Solve this by polling at a slower rate, with a 64ms interval as default
until a transfer request is queued, or if there are still are pending
unhandled transfers at event completion.

Tested-by: Uday M Bhat <uday.m.bhat@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-9-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:28 +01:00
Michal Pecio
fd9d55d190 xhci: retry Stop Endpoint on buggy NEC controllers
Two NEC uPD720200 adapters have been observed to randomly misbehave:
a Stop Endpoint command fails with Context Error, the Output Context
indicates Stopped state, and the endpoint keeps running. Very often,
Set TR Dequeue Pointer is seen to fail next with Context Error too,
in addition to problems from unexpectedly completed cancelled work.

The pathology is common on fast running isoc endpoints like uvcvideo,
but has also been reproduced on a full-speed bulk endpoint of pl2303.
It seems all EPs are affected, with risk proportional to their load.

Reproduction involves receiving any kind of stream and closing it to
make the device driver cancel URBs already queued in advance.

Deal with it by retrying the command like in the Running state.

Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-8-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Michal Pecio
91edf5a0c2 xhci: fix matching completion events with TDs
A trb_in_td() call is used to determine if a completion event matches
any TRB of the currently executing TD. This function is told to start
searching right after the last finished TD, which is not at all where
the currently expected TD is guaranteed to begin, because some TDs in
between may have been cancelled.

Not only is a pointless work performed, but a bug resulting in the HC
executing cancelled TDs was seen to trick the driver into associating
events from a TD just cancelled with an unrelated future TD.

Since the ring is being traversed for the specific purpose of finding
a match with the current TD, always start from its first TRB. This is
the most reliable bit of information that we posses.

Tracking of HC's work progress is not affected, except for cases when
a misattributed event would have moved dequeue past a pending TD.

Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-7-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Niklas Neronin
2e8dd2ded2 usb: xhci: utilize 'xhci_free_segments_for_ring()' for freeing segments
Refactor the code to improve readability by using
'xhci_free_segments_for_ring()' function for freeing ring segments.
This replaces the custom while loop previously used within
'xhci_ring_expansion()' and 'xhci_alloc_segments_for_ring()'.

Slightly modify 'xhci_free_segments_for_ring()' to handle lists
which do not loop. This makes it possible to use it in error
paths of 'xhci_alloc_segments_for_ring()'.

This change also prepares for switching the custom xhci linked segment
list into to more standard list.h lists.

[minor commit message rewording -Mathias]

Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-6-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Niklas Neronin
00bdc4a34b usb: xhci: remove duplicate code from 'xhci_clear_command_ring()'
Replace a segment of code within 'xhci_clear_command_ring()' with a
function call to 'xhci_initialize_ring_info()'. This change eliminates
code duplication, as 'xhci_initialize_ring_info()' performs the same
operations as the replaced code.

Signed-off-by: Niklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-5-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Niklas Neronin
74151b5349 xhci: save slot ID in struct 'xhci_port'
Slot ID is a index of a virtual device in struct 'xhci_hcd->devs[]'.
Previously, to get the slot ID associated with a port, we had to loop
through all devices and compare ports, which is very inefficient.
Instead, the slot ID (of the device which is directly connected to the
port), is added to the its corresponding 'xhci_port' struct. As a result,
finding the port's device is quick and easy.

Function 'xhci_find_slot_id_by_port()' is removed, as it is no longer
needed.

Signed-off-by: Niklas Neronin <niklas.neronin@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-4-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Niklas Neronin
06790c1908 xhci: replace real & fake port with pointer to root hub port
Variables real & fake port do not convey their purpose, thus they are
replaced with a pointer to the root hub port 'struct xhci_port *rhub_port'.
'rhub_port' contains real & fake ports in zero-based format, which happens
to be more widely used inside the xHCI driver:
 - 'real_port' is ('rhub_port->hw_portnum' + 1)
 - 'fake_port' is ('rhub_port->hcd_portnum' + 1)

One reason for real port being one-based, is to signal other functions in
case struct 'xhci_virt_device' initialization failed, in this case the
value will remain 0. This is no longer needed, instead we check whether
or not 'rhub_port' is 'NULL'.

Signed-off-by: Niklas Neronin <niklas.neronin@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-3-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Niklas Neronin
c9a63ec5d2 xhci: rework how real & fake ports are found
xHC hardware needs to know which roothub port a USB device is attached to
when controlling the device, so the xHCI driver stores in each device the
roothub port which it's connected behind. This is done with two different
port index values, the 'real_port' which is an index to the xHC hardware
port register array, and the 'fake_port' which is the per hub port index
used by the hub driver.

Instead of finding real & fake port separately, find the root hub port
'xhci_port' structure which contains both real & fake port values:
    - 'real_port' is ('hw_portnum' + 1)
    - 'fake_port' is ('hcd_portnum' + 1)
i.e. real & fake port are 'hw_portnum' & 'hcd_portnum' in one-based
format.

The 'xhci_port' structure is a better way to refer to roothub ports than
the 'real_port' & 'fake_port'. As a result, these port indexes are slated
to be replaced with a direct pointer to the root hub port. This patch
setups the ground work for the future changes.

Signed-off-by: Niklas Neronin <niklas.neronin@intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240229141438.619372-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:25:27 +01:00
Ricardo B. Marliere
c40b51b3f3 usb: typec: constify struct class usage
Since commit 43a7206b09 ("driver core: class: make class_register() take
a const *"), the driver core allows for struct class to be in read-only
memory, so move the structures typec_mux_class, retimer_class and
typec_class to be declared at build time placing them into read-only
memory, instead of having to be dynamically allocated at boot time.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ricardo B. Marliere <ricardo@marliere.net>
Link: https://lore.kernel.org/r/20240301-class_cleanup-usb-v1-1-50309e325095@marliere.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:21:06 +01:00
Oliver Neukum
a74c0c9c3f USB: typec: no opencoding FIELD_GET
We have a macro. It should be used.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Link: https://lore.kernel.org/r/20240229132401.3270-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-03-02 20:20:41 +01:00
Greg Kroah-Hartman
044591a6ad 1-Wire bus drivers for v6.9
1. Few cleanups: constifying, convert platform remove callback returning
    void.
 
 2. Add UART 1-Wire bus driver which uses UART interface to create the
    1-Wire timing patterns.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmXdn4UQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD14XAD/9xTZcLuzb1WpB3P5Q89ILbontXq89FV3yx
 80qNEf2rNsicxjXJ8KBAtsTX/KdIdx1YA2JGZOfJX2OpmG0n9shUY2lFn8IHsyGW
 FcE2X8PpJBOFBuCMXZrwscX4vM5oYjxr94atqNGOBmM2DbZ966AnJZO90i1/8v6g
 bytxefC06o1MiRwa3QeLEtS6VE/7e7wL4uNybEy8U9gNVRBK5ysRCxZtP71yUuaB
 xX5S16NGziBcDBFStwoThgXTEB/jGxtQqFkYY0SssHdt7zp6P4d9izpJqUr/hWba
 mw/v4AEd43j7AL4H+jeAk9vbo2AeS6s5rgke9OSivl4/5Ja9jiy2+Ubi4pdCfkPA
 Dgs6pWkWLH7DalH1t8dgmxpUFgXvOuOWAw4kgIWDbryUkb5O929ImprdqZtYtSod
 kf265Jp9XpY+5z3um4uMSc3HNvxC765nY0ycNM64a9atKU4T6aUiy2Ljqcj9WXi2
 xCzQ2xTDB/tPREAL06Z3C08K5aKb38cwH7SZnw6Mms1TJ5q1iFp4hYBqKchr5HdL
 RBZkaa9p5vjajigFwtsQChOkS20Pzx8WXx1DaddMMNOXSsnjYf966ZPXN+Oenpv4
 FE68qmv2aRR93XkgsxshProAyVcziKFz49QMmLugSztsUwfx5Hq82x/UVqyIxIZk
 dsUsRs1FUw==
 =QRbM
 -----END PGP SIGNATURE-----

Merge tag 'w1-drv-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1 into tty-next

Krzysztof writes:

1-Wire bus drivers for v6.9

1. Few cleanups: constifying, convert platform remove callback returning
   void.

2. Add UART 1-Wire bus driver which uses UART interface to create the
   1-Wire timing patterns.

* tag 'w1-drv-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1:
  w1: w1-gpio: Convert to platform remove callback returning void
  w1: sgi_w1: Convert to platform remove callback returning void
  w1: omap_hdq: Convert to platform remove callback returning void
  w1: mxc_w1: Convert to platform remove callback returning void
  w1: add UART w1 bus driver
  dt-bindings: w1: UART 1-Wire bus
  dt-bindings: serial: allow onewire as child node
  w1: make w1_bus_type const
2024-03-02 20:15:08 +01:00
Greg Kroah-Hartman
73473b3033 thunderbolt: Changes for v6.9 merge window
This includes following USB4/Thunderbolt changes for the v6.9 merge
 window:
 
   - Reset the topology also for USB4 v1 routers on driver load
   - DisplayPort tunneling and bandwidth allocation mode improvements
   - Tracepoint support for the control channel
   - Couple of minor fixes and cleanups.
 
 All these have been in linux-next with no reported issues.
 -----BEGIN PGP SIGNATURE-----
 
 iQJUBAABCgA+FiEEVTdhRGBbNzLrSUBaAP2fSd+ZWKAFAmXgU5ogHG1pa2Eud2Vz
 dGVyYmVyZ0BsaW51eC5pbnRlbC5jb20ACgkQAP2fSd+ZWKCD/g/+O9AmkgQwyUr8
 EoDHjFBRTomGMh/eR2g2JfEIpAj0hqRYDHxbSC5ZyWZWIaMuj7RiBBkU3aS+PioD
 KAWm46NB80Un83fO2gGV+t0cCfcTqxdU2gtsK9TEAydkKctJ+HK+htMvJUaorJV0
 35uPjCwuAWPrb0MINNysKbRy/QLrCU0+EF6Zl/1Kdg2M7DPNT15He4UTbwgFuIhp
 aEyRz6221yA6FJB9oV7W7ajSnA7v4o8RmyAHN2yYHuHwAsvRaFFvuB2PMQLuA0G1
 +HQLoZE/mse/2hwsGIk01peHkJd5nkntsOP4DvOAig7QV8A8INP29nh+5lGN+m0C
 UN8TuFjpIMe3tfr5H8dosGoJH8o3+h22F2OdcGai0r5oCtAufv8OzOWNkEJACXcU
 372raqDW7SXpSx0UdkHbJivOBG1xAMkqZxqV18SI5uDMEcxAw1kVp3J7+KDRfJyk
 p9mgElW7qj20LQ7dF1kyWVu7TO12xRSGlbIHbGnXCDhMS3ZhKVwrOAXxnRGf0XBc
 IHcPlQUTzjlc0n7MSzVQdFaeBLgtrqk23SGMPgxfgqPigtJCpi8E0E1d5SMyAiqE
 YrnTkf+RY5vrfv8denKSWr0LTFFqdGq5asjoFhEWffxbMvaxi1y8v32haT+ddUFi
 UYIV3yz419c60aiuEfswSg0J0TpvF44=
 =9hHe
 -----END PGP SIGNATURE-----

Merge tag 'thunderbolt-for-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-next

Mika writes:

thunderbolt: Changes for v6.9 merge window

This includes following USB4/Thunderbolt changes for the v6.9 merge
window:

  - Reset the topology also for USB4 v1 routers on driver load
  - DisplayPort tunneling and bandwidth allocation mode improvements
  - Tracepoint support for the control channel
  - Couple of minor fixes and cleanups.

All these have been in linux-next with no reported issues.

* tag 'thunderbolt-for-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt: (23 commits)
  thunderbolt: Constify the struct device_type usage
  thunderbolt: Add trace events support for the control channel
  thunderbolt: Keep the domain powered when USB4 port is in redrive mode
  thunderbolt: Improve DisplayPort tunnel setup process to be more robust
  thunderbolt: Calculate DisplayPort tunnel bandwidth after DPRX capabilities read
  thunderbolt: Reserve released DisplayPort bandwidth for a group for 10 seconds
  thunderbolt: Introduce tb_tunnel_direction_downstream()
  thunderbolt: Re-order bandwidth group functions
  thunderbolt: Fail the failed bandwidth request properly
  thunderbolt: Log an error if DPTX request is not cleared
  thunderbolt: Handle bandwidth allocation mode disable request
  thunderbolt: Re-calculate estimated bandwidth when allocation mode is enabled
  thunderbolt: Use DP_LOCAL_CAP for maximum bandwidth calculation
  thunderbolt: Correct typo in host_reset parameter
  thunderbolt: Skip discovery also in USB4 v2 host
  thunderbolt: Reset only non-USB4 host routers in resume
  thunderbolt: Remove usage of the deprecated ida_simple_xx() API
  thunderbolt: Fix rollback in tb_port_lane_bonding_enable() for lane 1
  thunderbolt: Fix XDomain rx_lanes_show and tx_lanes_show
  thunderbolt: Reset topology created by the boot firmware
  ...
2024-03-02 20:14:03 +01:00
Greg Kroah-Hartman
e0014ce72e IIO: 2nd set of new device support, cleanups and features for 6.9
New device support
 =================
 adi,hmc425a
 - Add support for LTC6373 Instrumentation Amplifier.
 microchip,pac1934
 - New driver supporting PAC1931, PAC1932, PAC1933 and PAC1934 power monitoring
 chips with accumulators.
 voltafield,af8133j
 - New driver for the AF8133J 3 axis magnetometer.
 
 Docs
 ====
 
 New general documentation of device buffers, and a specific section on
 the adi,adis16475 IMU
 
 Features
 ========
 
 kionix,kxcjk-1013
  - Add support for ACPI ROTM (Microsoft defined ACPI method) to get rotation
    matrix.
 ti,tmp117
 - Add missing vcc-supply control and binding.
 
 Cleanups and minor fixes
 ========================
 
 Tree-wide
 - Corrected headers to remove linux/of.h from a bunch of drivers
   that only had it to get to linux/mod_devicetable.h
 - dt binding cleanup to drop redundant type from label properties.
 
 adi,hmc425a
 - Fix constraints on GPIO array sizes for different devices.
 adi,ltc2983
 - Use spi_get_device_match_data instead of open coding similar.
 - Update naming of fw parsing function to reflect that it is not longer
   dt only.
 - Set the chip name explicitly to reduce fragility resulting from different
   entries in the various ID tables.
 bosch,bmg160
 - Add spi-max-frequency property and limit to dt-binding.
 microchip,mcp320x
 - Use devm_* to simplify device removal and error handling.
 nxp,imx93
 - Drop a non existent 4th interrupt from bindings.
 qcom,mp8xxx-xoadc
 - Drop unused kerneldoc
 renesas,isl29501
 - Actually use the of_match table.
 rockchip,saradc
 - Fix channel bitmask
 - Fix write masks
 - Replace custom handling of optional reset control with how it should be
   done.
 ti,ads1298
 - Fix error code to not return a successfully obtained regulator.
 - Avoid a divide by zero when setting frequency.
 ti,hdc2010
 - Add missing interrupts dt binding property
 vishay,veml6075
 - Make vdd-supply required in the dt-binding.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmXg4XsRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FohHeQ/+K0311HpyObnlWdD4157NltaVlbLqg8OM
 +N7OmVzFOySJKd4nmISpHDXkSnSYCDD6O/0HfzrmcrPaP1MPxgo3L4WcQ9JbJokW
 5hwalY3Mx9Ueds1mpAulNai3veREqqF5Ak/sobBoZTZv20YwJCr2n+6HsgolXI7n
 40RzoMeW+GZinKatXPrt4/IRj14n4I2B0z/ykotA1kXl11vVbTDu26OZ5yqePRBB
 P6EnFhgqvMfjsnNytCkp7id8yiDKFPeRDEZjHbDaMai7Iwu5/HdA2OjgKIf4ybLo
 7b+C/XjoY9e9Dze/7DCN/yF7kFsqe1CTeb8vbx8S+bcbJq/a4IqUh9f5eMivtoC5
 /ml8f+uer9Fji6SASGgqRCEf/GkVnCweKTGTMkQglJ5TDQpjW6HkgTa8ttCiYTy8
 Pfk0s3FtIjbYEyl+W5PXmyNhAnJsUUUUFvXBG+ePzEVbamhJvelI8rfNCrUHFe0M
 P99ordhaYkaQdxHvc63abvU8XldSKJHeevGkYrGntGYOiQoaUZr6kfr3nqRgQPq4
 T35T6wy2guPbkmtClEAPQvYNlFOsz3Liqv52tPDHE+WAbSffKr1loOU2hn0tOLfc
 wXHpKD2YTkFuC6aDCE8JMtzFfCfbFM8AfKVEnoN6LaoCzunQKS7D7l93rxRs6zh/
 cFppD34t8do=
 =WVBs
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-6.9b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

IIO: 2nd set of new device support, cleanups and features for 6.9

New device support
=================
adi,hmc425a
- Add support for LTC6373 Instrumentation Amplifier.
microchip,pac1934
- New driver supporting PAC1931, PAC1932, PAC1933 and PAC1934 power monitoring
chips with accumulators.
voltafield,af8133j
- New driver for the AF8133J 3 axis magnetometer.

Docs
====

New general documentation of device buffers, and a specific section on
the adi,adis16475 IMU

Features
========

kionix,kxcjk-1013
 - Add support for ACPI ROTM (Microsoft defined ACPI method) to get rotation
   matrix.
ti,tmp117
- Add missing vcc-supply control and binding.

Cleanups and minor fixes
========================

Tree-wide
- Corrected headers to remove linux/of.h from a bunch of drivers
  that only had it to get to linux/mod_devicetable.h
- dt binding cleanup to drop redundant type from label properties.

adi,hmc425a
- Fix constraints on GPIO array sizes for different devices.
adi,ltc2983
- Use spi_get_device_match_data instead of open coding similar.
- Update naming of fw parsing function to reflect that it is not longer
  dt only.
- Set the chip name explicitly to reduce fragility resulting from different
  entries in the various ID tables.
bosch,bmg160
- Add spi-max-frequency property and limit to dt-binding.
microchip,mcp320x
- Use devm_* to simplify device removal and error handling.
nxp,imx93
- Drop a non existent 4th interrupt from bindings.
qcom,mp8xxx-xoadc
- Drop unused kerneldoc
renesas,isl29501
- Actually use the of_match table.
rockchip,saradc
- Fix channel bitmask
- Fix write masks
- Replace custom handling of optional reset control with how it should be
  done.
ti,ads1298
- Fix error code to not return a successfully obtained regulator.
- Avoid a divide by zero when setting frequency.
ti,hdc2010
- Add missing interrupts dt binding property
vishay,veml6075
- Make vdd-supply required in the dt-binding.

* tag 'iio-for-6.9b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (42 commits)
  dt-bindings: iio: gyroscope: bosch,bmg160: add spi-max-frequency
  dt-bindings: iio: adc: imx93: drop the 4th interrupt
  iio: proximity: isl29501: make use of of_device_id table
  iio: adc: qcom-pm8xxx-xoadc: drop unused kerneldoc struct pm8xxx_chan_info member
  dt-bindings: iio: adc: drop redundant type from label
  dt-bindings: iio: ti,tmp117: add optional label property
  MAINTAINERS: Add an entry for AF8133J driver
  iio: magnetometer: add a driver for Voltafield AF8133J magnetometer
  dt-bindings: iio: magnetometer: Add Voltafield AF8133J
  dt-bindings: vendor-prefix: Add prefix for Voltafield
  iio: adc: rockchip_saradc: replace custom logic with devm_reset_control_get_optional_exclusive
  iio: adc: rockchip_saradc: use mask for write_enable bitfield
  iio: adc: rockchip_saradc: fix bitmask for channels on SARADCv2
  dt-bindings: iio: light: vishay,veml6075: make vdd-supply required
  iio: adc: adding support for PAC193x
  dt-bindings: iio: adc: adding support for PAC193X
  iio: temperature: ltc2983: explicitly set the name in chip_info
  iio: temperature: ltc2983: rename ltc2983_parse_dt()
  iio: temperature: ltc2983: make use of spi_get_device_match_data()
  iio: adc: ti-ads1298: prevent divide by zero in ads1298_set_samp_freq()
  ...
2024-03-02 20:02:18 +01:00
Greg Kroah-Hartman
a6a3bf9b15 FPGA Manager changes for 6.9-rc1
DFL:
 
 - Ricardo's change makes dfl_bus_type const.
 
 FPGA MGR core:
 
 - Marco's change removes redundant checks for bridge ops.
 
 All patches have been reviewed on the mailing list, and have been in the
 last linux-next releases (as part of our for-next branch).
 
 Signed-off-by: Xu Yilun <yilun.xu@intel.com>
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYIADEWIQSgSJpClIeaArXyudb8twOBpKCM2gUCZd/r6BMceWlsdW4ueHVA
 aW50ZWwuY29tAAoJEPy3A4GkoIza2o4BAOYL4AvjgzGdCgv3BZB6ANYURLQv1+ZY
 KP5gmKLQHaJ2AQDuzI5IcY38vDTdCL/eEX022P3WpExwiWeTgb87WhdSCA==
 =E11Z
 -----END PGP SIGNATURE-----

Merge tag 'fpga-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga into char-misc-next

Xu writes:

FPGA Manager changes for 6.9-rc1

DFL:

- Ricardo's change makes dfl_bus_type const.

FPGA MGR core:

- Marco's change removes redundant checks for bridge ops.

All patches have been reviewed on the mailing list, and have been in the
last linux-next releases (as part of our for-next branch).

Signed-off-by: Xu Yilun <yilun.xu@intel.com>

* tag 'fpga-for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga:
  fpga: remove redundant checks for bridge ops
  fpga: dfl: make dfl_bus_type const
2024-03-02 20:01:17 +01:00
Greg Kroah-Hartman
bac2f2cfe2 coresight: hwtracing subsystem updates for v6.9
Changes targeting Linux v6.9 include:
  - CoreSight: Enable W=1 warnings as default
  - CoreSight: Clean up sysfs/perf mode handling for tracing
  - Support for Qualcomm TPDM CMB Dataset
  - Miscellaneous fixes to the CoreSight subsystem
  - Fix for hisi_ptt PMU to reject events targeting other PMUs
 
 Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuFy0byloRoXZHaWBxcXRZPKyBqEFAmXfD1gACgkQxcXRZPKy
 BqEbiRAAks3YgMt1PC610hhvDFps3GoedEGnJBLajtdh7v/gWP6a/LYIP7YU9dkA
 pskkhvvZm87PdCu9vc7r2NaYVb+8rVyTdafd2DjA1HAdOK2/BoT6tJQzwG3W62EE
 0hvRTAgoq40jU4pix1s/wiQjFYa0l98cN85mu6HmMaWu+ulDgEAudcCyqX4kiY+k
 S1llq7m5JlQdobcDa2a2IbU8L6t6m9hPittgHZwvXBy9OxFJ6GDLoKO0YOn2mp8W
 yZa1fMAlkCG4asRZyhLb/mRubzVRHfYrJOvgZUJGV67fRUPU/Lwsx5WAwy4NECv5
 rooiXEw5TVaQ9/l18W0Zj2WAveVWLGI5HGmIywZ4HEc8fukLWsgLG78Bomu2FkGD
 Is9mgeXL8oXfGufEHvCxOvI53rHg3tBLsX13mPylkFH+DAD3EPZ8ASoQOa0SbCpV
 fp8SBznv8q8mHBiFR6Mb4qSDkIjq7h9ygNXzTh1j5BMEf06oTbasNiHmi62dSZsa
 uYlnPBmSZ0OgvQjRhvdlVKRQIbbni2Ddt93Wnl/6tPvwcv6MmnTKi2cmTZ9IrFPn
 QFeSeU19gLlAjNAF/1BtubaV0Z4Sj3Tks6TpCcLT4em+Z57efRW9ZGwOGrRsHHiB
 P0SXCNLiVsAkpZP9wVryEYjb0CnlRljKqiNSO9p3AGhkPJpDhyc=
 =cz5l
 -----END PGP SIGNATURE-----

Merge tag 'coresight-next-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next

Suzuki writes:

coresight: hwtracing subsystem updates for v6.9

Changes targeting Linux v6.9 include:
 - CoreSight: Enable W=1 warnings as default
 - CoreSight: Clean up sysfs/perf mode handling for tracing
 - Support for Qualcomm TPDM CMB Dataset
 - Miscellaneous fixes to the CoreSight subsystem
 - Fix for hisi_ptt PMU to reject events targeting other PMUs

Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

* tag 'coresight-next-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/coresight/linux: (32 commits)
  coresight-tpda: Change qcom,dsb-element-size to qcom,dsb-elem-bits
  dt-bindings: arm: qcom,coresight-tpdm: Rename qcom,dsb-element-size
  hwtracing: hisi_ptt: Move type check to the beginning of hisi_ptt_pmu_event_init()
  coresight: tpdm: Fix build break due to uninitialised field
  coresight: etm4x: Set skip_power_up in etm4_init_arch_data function
  coresight-tpdm: Add msr register support for CMB
  dt-bindings: arm: qcom,coresight-tpdm: Add support for TPDM CMB MSR register
  coresight-tpdm: Add timestamp control register support for the CMB
  coresight-tpdm: Add pattern registers support for CMB
  coresight-tpdm: Add support to configure CMB
  coresight-tpda: Add support to configure CMB element
  coresight-tpdm: Add CMB dataset support
  dt-bindings: arm: qcom,coresight-tpdm: Add support for CMB element size
  coresight-tpdm: Optimize the useage of tpdm_has_dsb_dataset
  coresight-tpdm: Optimize the store function of tpdm simple dataset
  coresight: Add helper for setting csdev->mode
  coresight: Add a helper for getting csdev->mode
  coresight: Add helper for atomically taking the device
  coresight: Add explicit member initializers to coresight_dev_type
  coresight: Remove unused stubs
  ...
2024-03-02 19:58:26 +01:00
Greg Kroah-Hartman
2d06aec566 MHI Host
========
 
 - Added new MHI_PM_SYS_ERR_FAIL state to the MHI state machine to properly
   cleanup the channel state if the device fails to respond to the MHI reset
   during SYS_ERR handling. This issue was discovered with the Qualcomm AIC100 AI
   accelerator device.
 
 - Modified the code that reads and exposes the OEM_PK_HASH registers through
   sysfs to read them on-demand instead of reading once during boot. Qualcomm
   AIC100 devices support provisioning the keys dynamically, so this allows the
   users to know the upto date information.
 
 - Added tracepoint support to expose the debug information over tracefs.
 
 - Reverted the commit that reads the MHI device revision from the device during
   boot. This is done because the read info was not used anywhere (dead code) and
   also it is not possible to read the revision info from all the devices.
 
 - Constified the modem config for Telit FN980 modem as required by the MHI core.
 
 MHI Endpoint
 ============
 
 - Replaced kzalloc() with kcalloc() in an effort to avoid integer overflows
   during multiplication. Even though there is no potential overflow in the
   endpoint code, this is done for the sake of uniformity and best practice.
 
 - Fixed the kmem_cache_create() failure check to use the correct variable.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZ6VDKoFIy9ikWCeXVZ8R5v6RzvUFAmXddkIACgkQVZ8R5v6R
 zvU1mAf/Z386S2g3YoGEQnUClOldm88PB08jOXU4PN7mIOiFfh57CFSfKRA8LFgo
 /hCm5mS0n0OWvvrN2PdnmGd+SlsPacLPW+AKrX9dgJaGQ4C1S74V5BlN9kcZVg+F
 Xbmw66ZeWvRClYYRLtoMwv0hQjoHO+PvO1XfZgThMh5KrKaMpiVSJYU2R446d6UR
 Ne8fxLA7YiYOU0pERshtuvDJHmcrs1eEk9hl/k+gnRh7JCaKrxgY6Q1AulSmHILy
 SrThkbfTc+M+yAoMg1+f50HYEaC6980Jbu0ye+pn2OeYdWfivAlnoVaJInV8/8er
 EdI5awGjgrZ+zr17ujM26/EpMjesyg==
 =ZLnR
 -----END PGP SIGNATURE-----

Merge tag 'mhi-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-next

Manivannan writes:

MHI Host
========

- Added new MHI_PM_SYS_ERR_FAIL state to the MHI state machine to properly
  cleanup the channel state if the device fails to respond to the MHI reset
  during SYS_ERR handling. This issue was discovered with the Qualcomm AIC100 AI
  accelerator device.

- Modified the code that reads and exposes the OEM_PK_HASH registers through
  sysfs to read them on-demand instead of reading once during boot. Qualcomm
  AIC100 devices support provisioning the keys dynamically, so this allows the
  users to know the upto date information.

- Added tracepoint support to expose the debug information over tracefs.

- Reverted the commit that reads the MHI device revision from the device during
  boot. This is done because the read info was not used anywhere (dead code) and
  also it is not possible to read the revision info from all the devices.

- Constified the modem config for Telit FN980 modem as required by the MHI core.

MHI Endpoint
============

- Replaced kzalloc() with kcalloc() in an effort to avoid integer overflows
  during multiplication. Even though there is no potential overflow in the
  endpoint code, this is done for the sake of uniformity and best practice.

- Fixed the kmem_cache_create() failure check to use the correct variable.

* tag 'mhi-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
  bus: mhi: host: pci_generic: constify modem_telit_fn980_hw_v1_config
  bus: mhi: host: Change the trace string for the userspace tools mapping
  bus: mhi: ep: check the correct variable in mhi_ep_register_controller()
  Revert "bus: mhi: core: Add support for reading MHI info from device"
  bus: mhi: host: Add tracing support
  bus: mhi: ep: Use kcalloc() instead of kzalloc()
  bus: mhi: host: Read PK HASH dynamically
  bus: mhi: host: Add MHI_PM_SYS_ERR_FAIL state
2024-03-02 19:57:35 +01:00
Greg Kroah-Hartman
da85c25cdb IIO: 2nd set of fixes for the 6.8 cycle.
Given this is very late these can wait for the 6.9 cycle if you would
 prefer.
 
 adi,adxl367
 - Sleep for 15ms after reset to avoid reading before the device is awake.
 - Fix FIFO register address.
 asc,dlhl60d
 - Avoid uninitialized data leak to user-space. Also suppress a false
   positive clang warning by refactoring a loop.
 bosch,bmp280
 - Fix missing extra byte in SPI reads from BMP38x and BMP390 parts
 invensense,mpu6050
 - Fix handing of empty FIFO which can happen due to a race condition.
 - Make sure frequency can be updated more than once when the FIFO is not
   enabled.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmXg4zARHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FojvOA/9ElIJd9yBUa4jMXI5802ehOH8DbKvbge1
 3LKL9UpGphsaWqPnPsffRAlmAu0dZR52M5wfbiZqJnMHNK6soiXqOINsdYkHPVFk
 7mb3mlnkZIA5H5mIaeHz+cwBK3xESryN8G8hEjtTLHh7TgBbq/ooEYbBIznJjIhx
 3TMpqVQwi264L6vYbQ1gOuc9ordtAzBGqnxSRaBKO4InZpxMYz9M9gzqmLFuXlum
 GPl7c8BhgoiqzD7p+V7nZh4FKlTw7++pdEdFEk28uU0rkMhtMYpC8nG5K9OJyvMM
 HMvnxPgCzL/ig4oLP40W7va8CRZezA1Klw9V5iVfcqBF3rrv4ynPWTP6KeyUjCJU
 qttftBkSrAt6S5f6pC/h9BCTYx/A76S05UHJ/ssjT/B65F+RMuVSgkNb6H+qtI4d
 708BXTDSLTzOLKvzWW9r/0ZBmayZFyxAUFTfdISJUQu6ZGMYjZegzonSRrWm+bSJ
 KxvboQ4y9MOH2w58xshv0GvbIqYKGsCXBnP2CKPmJ26jHeLzxl7IGDMwNWNabsWN
 +1gKxRZjLov6/0CAP05K4p6iEB0frfndkXtbzvL+25Qhgx8uiVcFcblJ88CeNukG
 BHXCwFV0k8HeiUTjSDEsNVu8Fk+JzjqZBHL193gED+srKazG+NK559b4ZElpTeSg
 +rD65E/1w9k=
 =RRmO
 -----END PGP SIGNATURE-----

Merge tag 'iio-fixes-for-6.8b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-linus

Jonathan writes:

IIO: 2nd set of fixes for the 6.8 cycle.

Given this is very late these can wait for the 6.9 cycle if you would
prefer.

adi,adxl367
- Sleep for 15ms after reset to avoid reading before the device is awake.
- Fix FIFO register address.
asc,dlhl60d
- Avoid uninitialized data leak to user-space. Also suppress a false
  positive clang warning by refactoring a loop.
bosch,bmp280
- Fix missing extra byte in SPI reads from BMP38x and BMP390 parts
invensense,mpu6050
- Fix handing of empty FIFO which can happen due to a race condition.
- Make sure frequency can be updated more than once when the FIFO is not
  enabled.

* tag 'iio-fixes-for-6.8b' of https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio:
  iio: accel: adxl367: fix I2C FIFO data register
  iio: accel: adxl367: fix DEVID read after reset
  iio: pressure: dlhl60d: Initialize empty DLH bytes
  iio: imu: inv_mpu6050: fix frequency setting when chip is off
  iio: pressure: Fixes BMP38x and BMP390 SPI support
  iio: imu: inv_mpu6050: fix FIFO parsing when empty
2024-03-02 19:54:36 +01:00
Greg Kroah-Hartman
febbe9b9c0 First set of Counter fixes for 6.8
One fix to ensure private data in struct counter_device_allochelper has
 minimum alignment for safe DMA operations.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQSNN83d4NIlKPjon7a1SFbKvhIjKwUCZdzmKQAKCRC1SFbKvhIj
 K6lyAQCQBMlq+bM3YG4ZCDAx2gc0ZmtwNrI78oA5zmERGKzWwAEAtRra2zKXcoXS
 T4Tp2inC73PJai84eVCGRbddKgG4vwQ=
 =wVEq
 -----END PGP SIGNATURE-----

Merge tag 'counter-fixes-for-6.8b' of https://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-linus

William writes:

First set of Counter fixes for 6.8

One fix to ensure private data in struct counter_device_allochelper has
minimum alignment for safe DMA operations.

* tag 'counter-fixes-for-6.8b' of https://git.kernel.org/pub/scm/linux/kernel/git/wbg/counter:
  counter: fix privdata alignment
2024-03-02 19:48:17 +01:00
Greg Kroah-Hartman
3c4a311c2c thunderbolt: Fix for v6.8-rc7
This includes one USB4/Thunderbolt fix for v6.8-rc7:
 
   - Fix NULL pointer dereference in tb_port_update_credits() on
     Apple Thunderbolt 1 hardware.
 
 This has been in linux-next with no reported issues.
 -----BEGIN PGP SIGNATURE-----
 
 iQJUBAABCgA+FiEEVTdhRGBbNzLrSUBaAP2fSd+ZWKAFAmXcWZkgHG1pa2Eud2Vz
 dGVyYmVyZ0BsaW51eC5pbnRlbC5jb20ACgkQAP2fSd+ZWKBaKBAAojQDV4aSxREQ
 A2jGbef5PkEhhRS4ALddQqdAbVeB53IvdghnLUTQKQKlGI8HCnhrd4Q8Kc3zc0zV
 hI7IUbO/S2IZ3iw16kIYTTWAAJGetSLneZ/5kd+UNc5aVcSqyw8er8IMT1IAUfKB
 lLTJDu4sanb/pszyBfwNC0Ecp/CwpFQp6R27w4/ePUMw2Z09OlUdQjHWCmRnS8en
 Vs3RssAdF7C9GylRgYi9GKgG6m9ZtxjFWD7QnjxVKChWlpoyZ3l9a6QDQRB1pdCC
 kXA0qPvYsZAVqdwk0fHaMxfV2tYJcqsA8dG9NDj0J0tWryw62phc3esxX4FujClQ
 X/1D2XOncwn1OIbW8debEEuTXJq8WnOaENX6NkLdMaXBPAR3maiTnKIO+drlaIQE
 1eA6pu2vcuGq5BkHd4j1704S1GwymurpUtb421QKo7zVNLrUaMnjKxFdUawaOeji
 Hw4eQFRoERhQ+SLc4r7f2H8hnR4ryUN6TC3F58hub8X4fFpNxTN92qc4Pht1WiNr
 /Cb0sRwEMDGTiTiWupjLRsyYI6DS+8mSz7312FW/0c643IPz9zSt+dnjTepQGre1
 0iy06xjYi/MXcYNps1kREAeBzKBQJ/WHjWZMJQMETK51bbIVylDfRCSHzTUxtzCP
 Ny+rTa6hN0ISAMB2QGouMIXhMqgJ6dY=
 =FddI
 -----END PGP SIGNATURE-----

Merge tag 'thunderbolt-for-v6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into usb-linus

Mika writes:

thunderbolt: Fix for v6.8-rc7

This includes one USB4/Thunderbolt fix for v6.8-rc7:

  - Fix NULL pointer dereference in tb_port_update_credits() on
    Apple Thunderbolt 1 hardware.

This has been in linux-next with no reported issues.

* tag 'thunderbolt-for-v6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt:
  thunderbolt: Fix NULL pointer dereference in tb_port_update_credits()
2024-03-02 19:47:01 +01:00
Bryan O'Donoghue
9dd7b0d351 clk: qcom: camcc-x1e80100: Fix missing DT_IFACE enum in x1e80100 camcc
The desired DT pattern for clock indexing is the following:

clocks = <&gcc GCC_CAMERA_AHB_CLK>,
         <&bi_tcxo_div2>,
         <&bi_tcxo_ao_div2>,
         <&sleep_clk>;

In order to facilitate that indexing structure we need to have DT_IFACE
enum defined.

Fixes: 76126a5129 ("clk: qcom: Add camcc clock driver for x1e80100")
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20240302-linux-next-24-03-01-simple-clock-fixes-v1-2-25f348a5982b@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:51 -06:00
Gabor Juhos
e2c02a85bf clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: d8b212014e ("clk: qcom: Add support for MSM8974's multimedia clock controller (MMCC)")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-7-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:46 -06:00
Gabor Juhos
a903cfd38d clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: 2b46cd23a5 ("clk: qcom: Add APQ8084 Multimedia Clock Controller (MMCC) support")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-6-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:42 -06:00
Gabor Juhos
6a3d70f780 clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: ff93872a9c ("clk: qcom: camcc-sc8280xp: Add sc8280xp CAMCC")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-5-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:37 -06:00
Gabor Juhos
bd2b639567 clk: qcom: gcc-ipq9574: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: d75b82cff4 ("clk: qcom: Add Global Clock Controller driver for IPQ9574")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-4-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:32 -06:00
Gabor Juhos
1040ef5ed9 clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: 9607f6224b ("clk: qcom: ipq8074: add PCIE, USB and SDCC clocks")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-3-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:27 -06:00
Gabor Juhos
cdbc6e2d81 clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Only compile tested.

Fixes: d9db07f088 ("clk: qcom: Add ipq6018 Global Clock Controller support")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-2-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:20 -06:00
Gabor Juhos
90ad946fff clk: qcom: gcc-ipq5018: fix terminating of frequency table arrays
The frequency table arrays are supposed to be terminated with an
empty element. Add such entry to the end of the arrays where it
is missing in order to avoid possible out-of-bound access when
the table is traversed by functions like qcom_find_freq() or
qcom_find_freq_floor().

Fixes: e3fdbef1ba ("clk: qcom: Add Global Clock controller (GCC) driver for IPQ5018")
Signed-off-by: Gabor Juhos <j4g8y7@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240229-freq-table-terminator-v1-1-074334f0905c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2024-03-02 12:40:05 -06:00
Linus Torvalds
4640e2be39 Changes for 6.8-rc7:
* Drop experimental warning for FSDAX.
 
 Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQjMC4mbgVeU7MxEIYH7y4RirJu9AUCZd1uBAAKCRAH7y4RirJu
 9Io/AP9+wwQRMgBT4gmCtUytpYgjZaEs8D3pVN+B9cV2OGzBzwD+Oek5ax/rKFRr
 62gcdMwAIRX7AQMQTOdkcyp/q0UslgY=
 =6sb7
 -----END PGP SIGNATURE-----

Merge tag 'xfs-6.8-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux

Pull xfs fix from Chandan Babu:
 "Drop experimental warning message when mounting an xfs filesystem on
  an fsdax device. We now consider xfs on fsdax to be stable"

* tag 'xfs-6.8-fixes-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
  xfs: drop experimental warning for FSDAX
2024-03-02 09:38:03 -08:00
Linus Torvalds
705c72567b gpio fixes for v6.8-rc7
- fix resource freeing ordering in error path when adding a GPIO chip
 - only set pins to output after the reset is complete in gpio-74x164
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAmXjAFQACgkQEacuoBRx
 13JQDhAAiRnE6kYITVWr4O581UpyC9v9yp0Yo6mVeUCHIGKkmZnKrBqcDjORo4Qg
 zmpeot5W7zmYQfMy/cjzyo/rSi55mKb3wAyA4/BHScz4SwUyWJrNjkx5WIQgJssW
 85ZA7x5G6qptf+4oGqSTVG8G6Q/7uR3s+VKgVVWETT31DomPv6DUXFJj1Eu6HNyG
 M25hZvBu8tWMTc6p/rPYcASMYYNrmHDpoETQwrBeESS2kvDIyvoTaTYAFttOOYUN
 aB9UyoW1e4KFQ/tppQwdpBEpGWLLHzR/dMnyV20pUW3OIuToSwQ2HdDRGx4Wnco4
 fImfVqeg4n8DHay43mlr/eSO65CrrngJdhwrB5415wSU6mMkRvd6A12mEWXU0Mjh
 UGiqBI3jxQBPW2tQlQa0zsQpsUyQPZhXt0SD0/DP8FV8GbJFHt90jH4TZauJvsiC
 rX0P50tVOFySBYOCdouVpoc/MVDUCK6Shey/Q0GodaSeH7tw/w+isaR2ftvr/bH3
 c9PQ27b5/s1VM+FIHQxY4J9xiW49GhPZaG4eIB506XDU13q0aZ4bfg6PR1YId5sR
 MdX4gtkkvvZG2Ufa1QCYePY7P6sA+Zxjrg/TBXntgAv759bYds1pLv0SNehLP1F+
 3pKwrN9tuuy/yAIRA783Pp6/0oVaEajEeAA+7xNx0U3qC6E1MAY=
 =i27Z
 -----END PGP SIGNATURE-----

Merge tag 'gpio-fixes-for-v6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux

Pull gpio fixes from Bartosz Golaszewski:

 - fix resource freeing ordering in error path when adding a GPIO chip

 - only set pins to output after the reset is complete in gpio-74x164

* tag 'gpio-fixes-for-v6.8-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
  gpio: fix resource unwinding order in error path
  gpiolib: Fix the error path order in gpiochip_add_data_with_key()
  gpio: 74x164: Enable output pins after registers are reset
2024-03-02 09:25:12 -08:00
Ming Lei
7838b46561 block: define bvec_iter as __packed __aligned(4)
In commit 19416123ab ("block: define 'struct bvec_iter' as packed"),
what we need is to save the 4byte padding, and avoid `bio` to spread on
one extra cache line.

It is enough to define it as '__packed __aligned(4)', as '__packed'
alone means byte aligned, and can cause compiler to generate horrible
code on architectures that don't support unaligned access in case that
bvec_iter is embedded in other structures.

Cc: Mikulas Patocka <mpatocka@redhat.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Fixes: 19416123ab ("block: define 'struct bvec_iter' as packed")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-03-02 09:15:01 -08:00
Linus Torvalds
7fd664466a SCSI fixes on 20240302
Two small fixes, all in drivers (the more obsolete mpt3sas and the
 newer mpi3mr).
 
 Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCZeLhxiYcamFtZXMuYm90
 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishe4aAQCe0pM9
 Ssol+/GThNmtpEMBshFYFPJTEMJlJ3Sf6Jgm7AD/ZSikfS6wbyRw8xNKRBz7H/x/
 Cpi/IMaJbyJgLb9+YKE=
 =wUnX
 -----END PGP SIGNATURE-----

Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

Pull SCSI fixes from James Bottomley:
 "Two small fixes, all in drivers (the more obsolete mpt3sas and the
  newer mpi3mr)"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: mpt3sas: Prevent sending diag_reset when the controller is ready
  scsi: mpi3mr: Reduce stack usage in mpi3mr_refresh_sas_ports()
2024-03-02 09:10:00 -08:00
Tejun Heo
c375b22333 dm-verity: Convert from tasklet to BH workqueue
The only generic interface to execute asynchronously in the BH context is
tasklet; however, it's marked deprecated and has some design flaws. To
replace tasklets, BH workqueue support was recently added. A BH workqueue
behaves similarly to regular workqueues except that the queued work items
are executed in the BH context.

This commit converts dm-verity from tasklet to BH workqueue. It
backfills tasklet code that was removed with commit 0a9bab391e
("dm-crypt, dm-verity: disable tasklets") and tweaks to use BH
workqueue (and does some renaming).

This is a minimal conversion which doesn't rename the related names
including the "try_verify_in_tasklet" option. If this patch is applied, a
follow-up patch would be necessary. I couldn't decide whether the option
name would need to be updated too.

Signed-off-by: Tejun Heo <tj@kernel.org>
[snitzer: rename 'use_tasklet' to 'use_bh_wq' and 'in_tasklet' to 'in_bh']
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
2024-03-02 10:30:36 -05:00
Tejun Heo
fb6ad4aec1 dm-crypt: Convert from tasklet to BH workqueue
The only generic interface to execute asynchronously in the BH context is
tasklet; however, it's marked deprecated and has some design flaws. To
replace tasklets, BH workqueue support was recently added. A BH workqueue
behaves similarly to regular workqueues except that the queued work items
are executed in the BH context.

This commit converts dm-crypt from tasklet to BH workqueue.  It
backfills tasklet code that was removed with commit 0a9bab391e
("dm-crypt, dm-verity: disable tasklets") and tweaks to use BH
workqueue.

Like a regular workqueue, a BH workqueue allows freeing the currently
executing work item. Converting from tasklet to BH workqueue removes the
need for deferring bio_endio() again to a work item, which was buggy anyway.

I tested this lightly with "--perf-no_read_workqueue
--perf-no_write_workqueue" + some code modifications, but would really
-appreciate if someone who knows the code base better could take a look.

Signed-off-by: Tejun Heo <tj@kernel.org>
Link: http://lkml.kernel.org/r/82b964f0-c2c8-a2c6-5b1f-f3145dc2c8e5@redhat.com
[snitzer: rebase ontop of commit 0a9bab391e reduced this commit's changes]
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
2024-03-02 10:30:36 -05:00
Mike Snitzer
c6df327501 Merge remote-tracking branch 'tejun/for-6.9' into dm-6.9-bh-wq 2024-03-02 10:29:40 -05:00
Uwe Kleine-König
c5a48ffb52 arm64: dts: rockchip: Fix name for UART pin header on qnap-ts433
I typoed the pin header name when copying it from my notes on paper.

Fixes: 9da1c0327d ("arm64: dts: rockchip: Add basic support for QNAP TS-433")
Signed-off-by: Uwe Kleine-König <ukleinek@debian.org>
Link: https://lore.kernel.org/r/20240301163201.559787-2-ukleinek@debian.org
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2024-03-02 12:09:00 +01:00
Jerome Brunet
f2cea1dc2a pwm: meson: generalize 4 inputs clock on meson8 pwm type
Meson8 pwm type always has 4 input clocks. Some inputs may be grounded,
like in the AO domain of some SoCs.

Drop the parent number parameter and make this is constant.
This is also done to make the addition of generic meson8 compatible easier.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20240221151154.26452-4-jbrunet@baylibre.com
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2024-03-02 11:00:45 +01:00
Jerome Brunet
5fd61cc281 dt-bindings: pwm: amlogic: Add a new binding for meson8 pwm types
The binding that is used up to now describe which input the PWM
channel multiplexer should pick among its possible parents,
which are hardcoded in the driver. This isn't a good binding in
the sense that it should describe hardware but not usage.

Add a new binding deprecating the old one that uses clocks in a
better way and how clocks are usually used today: The list of
clocks describe the inputs of the PWM block as they are realised
in hardware.

So deprecate the old bindings and introduce a compatible per SoC
family to replace these.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20240221151154.26452-3-jbrunet@baylibre.com
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2024-03-02 11:00:45 +01:00
Jerome Brunet
c2dd6b93f6 dt-bindings: pwm: amlogic: fix s4 bindings
s4 has been added to the compatible list while converting the Amlogic PWM
binding documentation from txt to yaml.

However, on the s4, the clock bindings have different meaning compared to
the previous SoCs.

On the previous SoCs the clock bindings used to describe which input the
PWM channel multiplexer should pick among its possible parents.

This is very much tied to the driver implementation, instead of describing
the HW for what it is. When support for the Amlogic PWM was first added,
how to deal with clocks through DT was not as clear as it nowadays.
The Linux driver now ignores this DT setting, but still relies on the
hard-coded list of clock sources.

On the s4, the input multiplexer is gone. The clock bindings actually
describe the clock as it exists, not a setting. The property has a
different meaning, even if it is still 2 clocks and it would pass the check
when support is actually added.

Also the s4 cannot work if the clocks are not provided, so the property is
no longer optional.

Finally, for once it makes sense to see the input as being numbered
somehow. No need to bother with clock-names on the s4 type of PWM.

Fixes: 43a1c4ff39 ("dt-bindings: pwm: Convert Amlogic Meson PWM binding")
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Link: https://lore.kernel.org/r/20240221151154.26452-2-jbrunet@baylibre.com
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2024-03-02 11:00:45 +01:00
Rahul Rameshbabu
90502d433c net/mlx5e: Switch to using _bh variant of of spinlock API in port timestamping NAPI poll context
The NAPI poll context is a softirq context. Do not use normal spinlock API
in this context to prevent concurrency issues.

Fixes: 3178308ad4 ("net/mlx5e: Make tx_port_ts logic resilient to out-of-order CQEs")
Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
CC: Vadim Fedorenko <vadfed@meta.com>
2024-03-01 23:02:27 -08:00
Rahul Rameshbabu
b7cf07586c net/mlx5e: Use a memory barrier to enforce PTP WQ xmit submission tracking occurs after populating the metadata_map
Just simply reordering the functions mlx5e_ptp_metadata_map_put and
mlx5e_ptpsq_track_metadata in the mlx5e_txwqe_complete context is not good
enough since both the compiler and CPU are free to reorder these two
functions. If reordering does occur, the issue that was supposedly fixed by
7e3f3ba97e ("net/mlx5e: Track xmit submission to PTP WQ after populating
metadata map") will be seen. This will lead to NULL pointer dereferences in
mlx5e_ptpsq_mark_ts_cqes_undelivered in the NAPI polling context due to the
tracking list being populated before the metadata map.

Fixes: 7e3f3ba97e ("net/mlx5e: Track xmit submission to PTP WQ after populating metadata map")
Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
CC: Vadim Fedorenko <vadfed@meta.com>
2024-03-01 23:02:26 -08:00
Emeel Hakim
a71f2147b6 net/mlx5e: Fix MACsec state loss upon state update in offload path
The packet number attribute of the SA is incremented by the device rather
than the software stack when enabling hardware offload. Because the packet
number attribute is managed by the hardware, the software has no insight
into the value of the packet number attribute actually written by the
device.

Previously when MACsec offload was enabled, the hardware object for
handling the offload was destroyed when the SA was disabled. Re-enabling
the SA would lead to a new hardware object being instantiated. This new
hardware object would not have any recollection of the correct packet
number for the SA. Instead, destroy the flow steering rule when
deactivating the SA and recreate it upon reactivation, preserving the
original hardware object.

Fixes: 8ff0ac5be1 ("net/mlx5: Add MACsec offload Tx command support")
Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
Signed-off-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2024-03-01 23:02:26 -08:00
Jianbo Liu
dd238b7020 net/mlx5e: Change the warning when ignore_flow_level is not supported
Downgrade the print from mlx5_core_warn() to mlx5_core_dbg(), as it
is just a statement of fact that firmware doesn't support ignore flow
level.

And change the wording to "firmware flow level support is missing", to
make it more accurate.

Fixes: ae2ee3be99 ("net/mlx5: CT: Remove warning of ignore_flow_level support for VFs")
Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Suggested-by: Elliott, Robert (Servers) <elliott@hpe.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2024-03-01 23:02:26 -08:00
Moshe Shemesh
5e6107b499 net/mlx5: Check capability for fw_reset
Functions which can't access MFRL (Management Firmware Reset Level)
register, have no use of fw_reset structures or events. Remove fw_reset
structures allocation and registration for fw reset events notifications
for these functions.

Having the devlink param enable_remote_dev_reset on functions that don't
have this capability is misleading as these functions are not allowed to
influence the reset flow. Hence, this patch removes this parameter for
such functions.

In addition, return not supported on devlink reload action fw_activate
for these functions.

Fixes: 38b9f903f2 ("net/mlx5: Handle sync reset request event")
Signed-off-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Aya Levin <ayal@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
2024-03-01 23:02:26 -08:00