From: Adrian Hunter <adrian.hunter@intel.com>
To: alexandre.belloni@bootlin.com
Cc: Frank.Li@nxp.com, billy_tsai@aspeedtech.com,
linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: [PATCH 00/17] i3c: Fixes, cleanups and HDR-DDR support
Date: Mon, 14 Sep 2026 14:29:46 +0300 [thread overview]
Message-ID: <20260914113003.183150-1-adrian.hunter@intel.com> (raw)
Hi
This series brings a collection of fixes, specification-conformance
cleanups and feature additions to the I3C core and MIPI I3C HCI driver.
The first three patches are independent fixes tagged for stable. The
remaining patches address a mixture of correctness issues in the core
and HCI driver, improve conformance with the I3C and HCI
specifications, add support for configurable device NACK retries, and
finally add HDR-DDR support.
The series is organised as follows:
Stable fixes (patches 1-3)
--------------------------
- Fix an out-of-bounds read in the core DMA bounce-buffer helper.
- Fix a destination buffer overrun in the HCI DMA path for reads whose
length is not a multiple of four bytes. The issue is independent of
IOMMU usage, although the existing workaround was only applied when
an IOMMU was present.
- Close a probe-time race in the HCI PCI driver where the LTR sysfs
attribute becomes visible before drvdata has been initialized.
Core fixes (patches 4-5)
------------------------
- Fix ACPI target enumeration on multi-instance controllers by
extracting the bus-controller instance number and PID from the
correct _ADR fields.
- Remove a stale GETSTATUS response-length check that became obsolete
when actual_len-based validation was introduced.
HCI IBI and suspend fixes (patches 6-11)
----------------------------------------
- Fix the IBI enable error path to unwind controller-side setup when
ENEC fails.
- Send DISEC before disabling IBIs in hardware so that an IBI racing
with teardown is not silently dropped.
- Avoid accessing controller hardware from ->free_ibi(), where runtime
PM does not guarantee the device is resumed.
- Drain all pending IBIs whenever INTR_IBI_READY is received instead
of processing only the first queued entry.
- Reorganize the DMA suspend/resume callbacks in preparation for the
following change.
- Rework DMA suspend handling to stop Ring Bundles according to the
HCI specification, synchronize with the interrupt handler, and flush
any pending IBI before disabling the rings.
HCI specification cleanups (patches 12-14)
-------------------------------------------
- Correct the Response Descriptor DATA_LENGTH field definition.
- Remove an invalid maximum-transfer-size capability derived from
reserved HC_CAPABILITIES bits.
- Remove HDR-BT and Fm/Fm+ definitions that are not defined by any
released version of the HCI specification.
Feature additions (patches 15-17)
---------------------------------
- Implement the .set_dev_nack_retry() master operation using DAT
support provided by HCI v1 controllers.
- Restrict advertised and permitted HDR modes to the intersection of:
* controller capabilities,
* bus-configuration constraints, and
* target capabilities.
- Add HDR-DDR private-transfer support to the HCI driver, including
descriptor generation and capability advertisement when supported by
both the controller and the active command-descriptor format.
Adrian Hunter (17):
i3c: master: Fix out-of-bounds read in DMA bounce buffer setup
i3c: mipi-i3c-hci: Bounce short reads irrespective of the IOMMU
i3c: mipi-i3c-hci-pci: Set drvdata before creating LTR sysfs attribute
i3c: master: Match ACPI targets to the correct bus controller instance
i3c: master: Remove stale GETSTATUS length check
i3c: mipi-i3c-hci: Fix i3c_hci_enable_ibi() error path
i3c: mipi-i3c-hci: Send DISEC before disabling IBIs in hardware
i3c: mipi-i3c-hci: Fix runtime PM violation in i3c_hci_free_ibi()
i3c: mipi-i3c-hci: Process multiple IBIs per interrupt
i3c: mipi-i3c-hci: Move DMA suspend/resume callbacks
i3c: mipi-i3c-hci: Stop rings gracefully when suspending
i3c: mipi-i3c-hci: Fix Response Descriptor DATA_LENGTH mask
i3c: mipi-i3c-hci: Remove invalid transfer size limit
i3c: mipi-i3c-hci: Remove invalid HDR-BT and Fm/Fm+ definitions
i3c: mipi-i3c-hci: Support configurable device NACK retries
i3c: Restrict HDR modes to those supported by the bus and target
i3c: mipi-i3c-hci: Add HDR-DDR support
drivers/i3c/device.c | 15 ++-
drivers/i3c/internals.h | 2 +
drivers/i3c/master.c | 88 +++++++++++++--
drivers/i3c/master/mipi-i3c-hci/cmd.h | 4 +-
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c | 28 ++++-
drivers/i3c/master/mipi-i3c-hci/cmd_v2.c | 4 +-
drivers/i3c/master/mipi-i3c-hci/core.c | 99 +++++++++++++---
drivers/i3c/master/mipi-i3c-hci/dat.h | 2 +
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 25 +++++
drivers/i3c/master/mipi-i3c-hci/dma.c | 125 ++++++++++++++-------
drivers/i3c/master/mipi-i3c-hci/hci.h | 9 +-
drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 5 +-
include/linux/i3c/device.h | 4 +
include/linux/i3c/master.h | 3 +
include/linux/platform_data/mipi-i3c-hci.h | 4 +
15 files changed, 330 insertions(+), 87 deletions(-)
Regards
Adrian
next reply other threads:[~2026-09-14 11:30 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-14 11:29 Adrian Hunter [this message]
2026-09-14 11:29 ` [PATCH 01/17] i3c: master: Fix out-of-bounds read in DMA bounce buffer setup Adrian Hunter
2026-09-14 16:09 ` Frank Li
2026-09-14 11:29 ` [PATCH 02/17] i3c: mipi-i3c-hci: Bounce short reads irrespective of the IOMMU Adrian Hunter
2026-09-14 16:16 ` Frank Li
2026-09-14 11:29 ` [PATCH 03/17] i3c: mipi-i3c-hci-pci: Set drvdata before creating LTR sysfs attribute Adrian Hunter
2026-09-14 16:17 ` Frank Li
2026-09-14 11:29 ` [PATCH 04/17] i3c: master: Match ACPI targets to the correct bus controller instance Adrian Hunter
2026-09-14 16:19 ` Frank Li
2026-09-14 11:29 ` [PATCH 05/17] i3c: master: Remove stale GETSTATUS length check Adrian Hunter
2026-09-14 16:23 ` Frank Li
2026-09-14 11:29 ` [PATCH 06/17] i3c: mipi-i3c-hci: Fix i3c_hci_enable_ibi() error path Adrian Hunter
2026-09-14 16:27 ` Frank Li
2026-09-14 11:29 ` [PATCH 07/17] i3c: mipi-i3c-hci: Send DISEC before disabling IBIs in hardware Adrian Hunter
2026-09-14 16:29 ` Frank Li
2026-09-14 11:29 ` [PATCH 08/17] i3c: mipi-i3c-hci: Fix runtime PM violation in i3c_hci_free_ibi() Adrian Hunter
2026-09-14 11:29 ` [PATCH 09/17] i3c: mipi-i3c-hci: Process multiple IBIs per interrupt Adrian Hunter
2026-09-14 16:45 ` Frank Li
2026-09-14 11:29 ` [PATCH 10/17] i3c: mipi-i3c-hci: Move DMA suspend/resume callbacks Adrian Hunter
2026-09-14 16:46 ` Frank Li
2026-09-14 11:29 ` [PATCH 11/17] i3c: mipi-i3c-hci: Stop rings gracefully when suspending Adrian Hunter
2026-09-14 16:51 ` Frank Li
2026-09-14 11:29 ` [PATCH 12/17] i3c: mipi-i3c-hci: Fix Response Descriptor DATA_LENGTH mask Adrian Hunter
2026-09-14 16:55 ` Frank Li
2026-09-14 11:29 ` [PATCH 13/17] i3c: mipi-i3c-hci: Remove invalid transfer size limit Adrian Hunter
2026-09-14 16:58 ` Frank Li
2026-09-14 11:30 ` [PATCH 14/17] i3c: mipi-i3c-hci: Remove invalid HDR-BT and Fm/Fm+ definitions Adrian Hunter
2026-09-14 17:00 ` Frank Li
2026-09-14 11:30 ` [PATCH 15/17] i3c: mipi-i3c-hci: Support configurable device NACK retries Adrian Hunter
2026-09-14 11:30 ` [PATCH 16/17] i3c: Restrict HDR modes to those supported by the bus and target Adrian Hunter
2026-09-14 11:30 ` [PATCH 17/17] i3c: mipi-i3c-hci: Add HDR-DDR support Adrian Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260914113003.183150-1-adrian.hunter@intel.com \
--to=adrian.hunter@intel.com \
--cc=Frank.Li@nxp.com \
--cc=alexandre.belloni@bootlin.com \
--cc=billy_tsai@aspeedtech.com \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®