patches.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Loic Poulain <loic.poulain@linaro.org>,
	Bhaumik Bhatt <bbhatt@codeaurora.org>,
	Hemant Kumar <hemantk@codeaurora.org>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10 048/135] bus: mhi: Add MHI PCI support for WWAN modems
Date: Thu, 24 Aug 2023 16:49:51 +0200	[thread overview]
Message-ID: <20230824145029.012105815@linuxfoundation.org> (raw)
In-Reply-To: <20230824145027.008282920@linuxfoundation.org>

From: Loic Poulain <loic.poulain@linaro.org>

[ Upstream commit 855a70c12021bdc5df60512f1d3f6d492dc715be ]

This is a generic MHI-over-PCI controller driver for MHI only devices
such as QCOM modems. For now it supports registering of Qualcomm SDX55
based PCIe modules. The MHI channels have been extracted from mhi
downstream driver.

This driver is for MHI-only devices which have all functionalities
exposed through MHI channels and accessed by the corresponding MHI
device drivers (no out-of-band communication).

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Reviewed-by: Hemant Kumar <hemantk@codeaurora.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
[mani: fixed up the Makefile rule]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Stable-dep-of: 6a0c637bfee6 ("bus: mhi: host: Range check CHDBOFF and ERDBOFF")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/bus/mhi/Kconfig       |   9 +
 drivers/bus/mhi/Makefile      |   4 +
 drivers/bus/mhi/pci_generic.c | 345 ++++++++++++++++++++++++++++++++++
 3 files changed, 358 insertions(+)
 create mode 100644 drivers/bus/mhi/pci_generic.c

diff --git a/drivers/bus/mhi/Kconfig b/drivers/bus/mhi/Kconfig
index e841c1097fb4d..da5cd0c9fc620 100644
--- a/drivers/bus/mhi/Kconfig
+++ b/drivers/bus/mhi/Kconfig
@@ -20,3 +20,12 @@ config MHI_BUS_DEBUG
 	  Enable debugfs support for use with the MHI transport. Allows
 	  reading and/or modifying some values within the MHI controller
 	  for debug and test purposes.
+
+config MHI_BUS_PCI_GENERIC
+	tristate "MHI PCI controller driver"
+	depends on MHI_BUS
+	depends on PCI
+	help
+	  This driver provides MHI PCI controller driver for devices such as
+	  Qualcomm SDX55 based PCIe modems.
+
diff --git a/drivers/bus/mhi/Makefile b/drivers/bus/mhi/Makefile
index 19e6443b72df4..0a2d778d6fb42 100644
--- a/drivers/bus/mhi/Makefile
+++ b/drivers/bus/mhi/Makefile
@@ -1,2 +1,6 @@
 # core layer
 obj-y += core/
+
+obj-$(CONFIG_MHI_BUS_PCI_GENERIC) += mhi_pci_generic.o
+mhi_pci_generic-y += pci_generic.o
+
diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c
new file mode 100644
index 0000000000000..e3df838c3c80e
--- /dev/null
+++ b/drivers/bus/mhi/pci_generic.c
@@ -0,0 +1,345 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * MHI PCI driver - MHI over PCI controller driver
+ *
+ * This module is a generic driver for registering MHI-over-PCI devices,
+ * such as PCIe QCOM modems.
+ *
+ * Copyright (C) 2020 Linaro Ltd <loic.poulain@linaro.org>
+ */
+
+#include <linux/device.h>
+#include <linux/mhi.h>
+#include <linux/module.h>
+#include <linux/pci.h>
+
+#define MHI_PCI_DEFAULT_BAR_NUM 0
+
+/**
+ * struct mhi_pci_dev_info - MHI PCI device specific information
+ * @config: MHI controller configuration
+ * @name: name of the PCI module
+ * @fw: firmware path (if any)
+ * @edl: emergency download mode firmware path (if any)
+ * @bar_num: PCI base address register to use for MHI MMIO register space
+ * @dma_data_width: DMA transfer word size (32 or 64 bits)
+ */
+struct mhi_pci_dev_info {
+	const struct mhi_controller_config *config;
+	const char *name;
+	const char *fw;
+	const char *edl;
+	unsigned int bar_num;
+	unsigned int dma_data_width;
+};
+
+#define MHI_CHANNEL_CONFIG_UL(ch_num, ch_name, el_count, ev_ring) \
+	{						\
+		.num = ch_num,				\
+		.name = ch_name,			\
+		.num_elements = el_count,		\
+		.event_ring = ev_ring,			\
+		.dir = DMA_TO_DEVICE,			\
+		.ee_mask = BIT(MHI_EE_AMSS),		\
+		.pollcfg = 0,				\
+		.doorbell = MHI_DB_BRST_DISABLE,	\
+		.lpm_notify = false,			\
+		.offload_channel = false,		\
+		.doorbell_mode_switch = false,		\
+	}						\
+
+#define MHI_CHANNEL_CONFIG_DL(ch_num, ch_name, el_count, ev_ring) \
+	{						\
+		.num = ch_num,				\
+		.name = ch_name,			\
+		.num_elements = el_count,		\
+		.event_ring = ev_ring,			\
+		.dir = DMA_FROM_DEVICE,			\
+		.ee_mask = BIT(MHI_EE_AMSS),		\
+		.pollcfg = 0,				\
+		.doorbell = MHI_DB_BRST_DISABLE,	\
+		.lpm_notify = false,			\
+		.offload_channel = false,		\
+		.doorbell_mode_switch = false,		\
+	}
+
+#define MHI_EVENT_CONFIG_CTRL(ev_ring)		\
+	{					\
+		.num_elements = 64,		\
+		.irq_moderation_ms = 0,		\
+		.irq = (ev_ring) + 1,		\
+		.priority = 1,			\
+		.mode = MHI_DB_BRST_DISABLE,	\
+		.data_type = MHI_ER_CTRL,	\
+		.hardware_event = false,	\
+		.client_managed = false,	\
+		.offload_channel = false,	\
+	}
+
+#define MHI_EVENT_CONFIG_DATA(ev_ring)		\
+	{					\
+		.num_elements = 128,		\
+		.irq_moderation_ms = 5,		\
+		.irq = (ev_ring) + 1,		\
+		.priority = 1,			\
+		.mode = MHI_DB_BRST_DISABLE,	\
+		.data_type = MHI_ER_DATA,	\
+		.hardware_event = false,	\
+		.client_managed = false,	\
+		.offload_channel = false,	\
+	}
+
+#define MHI_EVENT_CONFIG_HW_DATA(ev_ring, ch_num) \
+	{					\
+		.num_elements = 128,		\
+		.irq_moderation_ms = 5,		\
+		.irq = (ev_ring) + 1,		\
+		.priority = 1,			\
+		.mode = MHI_DB_BRST_DISABLE,	\
+		.data_type = MHI_ER_DATA,	\
+		.hardware_event = true,		\
+		.client_managed = false,	\
+		.offload_channel = false,	\
+		.channel = ch_num,		\
+	}
+
+static const struct mhi_channel_config modem_qcom_v1_mhi_channels[] = {
+	MHI_CHANNEL_CONFIG_UL(12, "MBIM", 4, 0),
+	MHI_CHANNEL_CONFIG_DL(13, "MBIM", 4, 0),
+	MHI_CHANNEL_CONFIG_UL(14, "QMI", 4, 0),
+	MHI_CHANNEL_CONFIG_DL(15, "QMI", 4, 0),
+	MHI_CHANNEL_CONFIG_UL(20, "IPCR", 8, 0),
+	MHI_CHANNEL_CONFIG_DL(21, "IPCR", 8, 0),
+	MHI_CHANNEL_CONFIG_UL(100, "IP_HW0", 128, 1),
+	MHI_CHANNEL_CONFIG_DL(101, "IP_HW0", 128, 2),
+};
+
+static const struct mhi_event_config modem_qcom_v1_mhi_events[] = {
+	/* first ring is control+data ring */
+	MHI_EVENT_CONFIG_CTRL(0),
+	/* Hardware channels request dedicated hardware event rings */
+	MHI_EVENT_CONFIG_HW_DATA(1, 100),
+	MHI_EVENT_CONFIG_HW_DATA(2, 101)
+};
+
+static const struct mhi_controller_config modem_qcom_v1_mhiv_config = {
+	.max_channels = 128,
+	.timeout_ms = 5000,
+	.num_channels = ARRAY_SIZE(modem_qcom_v1_mhi_channels),
+	.ch_cfg = modem_qcom_v1_mhi_channels,
+	.num_events = ARRAY_SIZE(modem_qcom_v1_mhi_events),
+	.event_cfg = modem_qcom_v1_mhi_events,
+};
+
+static const struct mhi_pci_dev_info mhi_qcom_sdx55_info = {
+	.name = "qcom-sdx55m",
+	.fw = "qcom/sdx55m/sbl1.mbn",
+	.edl = "qcom/sdx55m/edl.mbn",
+	.config = &modem_qcom_v1_mhiv_config,
+	.bar_num = MHI_PCI_DEFAULT_BAR_NUM,
+	.dma_data_width = 32
+};
+
+static const struct pci_device_id mhi_pci_id_table[] = {
+	{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0306),
+		.driver_data = (kernel_ulong_t) &mhi_qcom_sdx55_info },
+	{  }
+};
+MODULE_DEVICE_TABLE(pci, mhi_pci_id_table);
+
+static int mhi_pci_read_reg(struct mhi_controller *mhi_cntrl,
+			    void __iomem *addr, u32 *out)
+{
+	*out = readl(addr);
+	return 0;
+}
+
+static void mhi_pci_write_reg(struct mhi_controller *mhi_cntrl,
+			      void __iomem *addr, u32 val)
+{
+	writel(val, addr);
+}
+
+static void mhi_pci_status_cb(struct mhi_controller *mhi_cntrl,
+			      enum mhi_callback cb)
+{
+	/* Nothing to do for now */
+}
+
+static int mhi_pci_claim(struct mhi_controller *mhi_cntrl,
+			 unsigned int bar_num, u64 dma_mask)
+{
+	struct pci_dev *pdev = to_pci_dev(mhi_cntrl->cntrl_dev);
+	int err;
+
+	err = pci_assign_resource(pdev, bar_num);
+	if (err)
+		return err;
+
+	err = pcim_enable_device(pdev);
+	if (err) {
+		dev_err(&pdev->dev, "failed to enable pci device: %d\n", err);
+		return err;
+	}
+
+	err = pcim_iomap_regions(pdev, 1 << bar_num, pci_name(pdev));
+	if (err) {
+		dev_err(&pdev->dev, "failed to map pci region: %d\n", err);
+		return err;
+	}
+	mhi_cntrl->regs = pcim_iomap_table(pdev)[bar_num];
+
+	err = pci_set_dma_mask(pdev, dma_mask);
+	if (err) {
+		dev_err(&pdev->dev, "Cannot set proper DMA mask\n");
+		return err;
+	}
+
+	err = pci_set_consistent_dma_mask(pdev, dma_mask);
+	if (err) {
+		dev_err(&pdev->dev, "set consistent dma mask failed\n");
+		return err;
+	}
+
+	pci_set_master(pdev);
+
+	return 0;
+}
+
+static int mhi_pci_get_irqs(struct mhi_controller *mhi_cntrl,
+			    const struct mhi_controller_config *mhi_cntrl_config)
+{
+	struct pci_dev *pdev = to_pci_dev(mhi_cntrl->cntrl_dev);
+	int nr_vectors, i;
+	int *irq;
+
+	/*
+	 * Alloc one MSI vector for BHI + one vector per event ring, ideally...
+	 * No explicit pci_free_irq_vectors required, done by pcim_release.
+	 */
+	mhi_cntrl->nr_irqs = 1 + mhi_cntrl_config->num_events;
+
+	nr_vectors = pci_alloc_irq_vectors(pdev, 1, mhi_cntrl->nr_irqs, PCI_IRQ_MSI);
+	if (nr_vectors < 0) {
+		dev_err(&pdev->dev, "Error allocating MSI vectors %d\n",
+			nr_vectors);
+		return nr_vectors;
+	}
+
+	if (nr_vectors < mhi_cntrl->nr_irqs) {
+		dev_warn(&pdev->dev, "Not enough MSI vectors (%d/%d), use shared MSI\n",
+			 nr_vectors, mhi_cntrl_config->num_events);
+	}
+
+	irq = devm_kcalloc(&pdev->dev, mhi_cntrl->nr_irqs, sizeof(int), GFP_KERNEL);
+	if (!irq)
+		return -ENOMEM;
+
+	for (i = 0; i < mhi_cntrl->nr_irqs; i++) {
+		int vector = i >= nr_vectors ? (nr_vectors - 1) : i;
+
+		irq[i] = pci_irq_vector(pdev, vector);
+	}
+
+	mhi_cntrl->irq = irq;
+
+	return 0;
+}
+
+static int mhi_pci_runtime_get(struct mhi_controller *mhi_cntrl)
+{
+	/* no PM for now */
+	return 0;
+}
+
+static void mhi_pci_runtime_put(struct mhi_controller *mhi_cntrl)
+{
+	/* no PM for now */
+}
+
+static int mhi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+{
+	const struct mhi_pci_dev_info *info = (struct mhi_pci_dev_info *) id->driver_data;
+	const struct mhi_controller_config *mhi_cntrl_config;
+	struct mhi_controller *mhi_cntrl;
+	int err;
+
+	dev_dbg(&pdev->dev, "MHI PCI device found: %s\n", info->name);
+
+	mhi_cntrl = mhi_alloc_controller();
+	if (!mhi_cntrl)
+		return -ENOMEM;
+
+	mhi_cntrl_config = info->config;
+	mhi_cntrl->cntrl_dev = &pdev->dev;
+	mhi_cntrl->iova_start = 0;
+	mhi_cntrl->iova_stop = DMA_BIT_MASK(info->dma_data_width);
+	mhi_cntrl->fw_image = info->fw;
+	mhi_cntrl->edl_image = info->edl;
+
+	mhi_cntrl->read_reg = mhi_pci_read_reg;
+	mhi_cntrl->write_reg = mhi_pci_write_reg;
+	mhi_cntrl->status_cb = mhi_pci_status_cb;
+	mhi_cntrl->runtime_get = mhi_pci_runtime_get;
+	mhi_cntrl->runtime_put = mhi_pci_runtime_put;
+
+	err = mhi_pci_claim(mhi_cntrl, info->bar_num, DMA_BIT_MASK(info->dma_data_width));
+	if (err)
+		goto err_release;
+
+	err = mhi_pci_get_irqs(mhi_cntrl, mhi_cntrl_config);
+	if (err)
+		goto err_release;
+
+	pci_set_drvdata(pdev, mhi_cntrl);
+
+	err = mhi_register_controller(mhi_cntrl, mhi_cntrl_config);
+	if (err)
+		goto err_release;
+
+	/* MHI bus does not power up the controller by default */
+	err = mhi_prepare_for_power_up(mhi_cntrl);
+	if (err) {
+		dev_err(&pdev->dev, "failed to prepare MHI controller\n");
+		goto err_unregister;
+	}
+
+	err = mhi_sync_power_up(mhi_cntrl);
+	if (err) {
+		dev_err(&pdev->dev, "failed to power up MHI controller\n");
+		goto err_unprepare;
+	}
+
+	return 0;
+
+err_unprepare:
+	mhi_unprepare_after_power_down(mhi_cntrl);
+err_unregister:
+	mhi_unregister_controller(mhi_cntrl);
+err_release:
+	mhi_free_controller(mhi_cntrl);
+
+	return err;
+}
+
+static void mhi_pci_remove(struct pci_dev *pdev)
+{
+	struct mhi_controller *mhi_cntrl = pci_get_drvdata(pdev);
+
+	mhi_power_down(mhi_cntrl, true);
+	mhi_unprepare_after_power_down(mhi_cntrl);
+	mhi_unregister_controller(mhi_cntrl);
+	mhi_free_controller(mhi_cntrl);
+}
+
+static struct pci_driver mhi_pci_driver = {
+	.name		= "mhi-pci-generic",
+	.id_table	= mhi_pci_id_table,
+	.probe		= mhi_pci_probe,
+	.remove		= mhi_pci_remove
+};
+module_pci_driver(mhi_pci_driver);
+
+MODULE_AUTHOR("Loic Poulain <loic.poulain@linaro.org>");
+MODULE_DESCRIPTION("Modem Host Interface (MHI) PCI controller driver");
+MODULE_LICENSE("GPL");
-- 
2.40.1




  parent reply	other threads:[~2023-08-24 14:59 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-24 14:49 [PATCH 5.10 000/135] 5.10.191-rc1 review Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 001/135] mmc: sdhci-f-sdh30: Replace with sdhci_pltfm Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 002/135] macsec: Fix traffic counters/statistics Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 003/135] macsec: use DEV_STATS_INC() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 004/135] net/mlx5: Refactor init clock function Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 005/135] net/mlx5: Move all internal timer metadata into a dedicated struct Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 006/135] net/mlx5: Skip clock update work when device is in error state Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 007/135] drm/radeon: Fix integer overflow in radeon_cs_parser_init Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 008/135] ALSA: emu10k1: roll up loops in DSP setup code for Audigy Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 009/135] ASoC: Intel: sof_sdw: add quirk for MTL RVP Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 010/135] ASoC: Intel: sof_sdw: add quirk for LNL RVP Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 011/135] PCI: tegra194: Fix possible array out of bounds access Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 012/135] ARM: dts: imx6dl: prtrvt, prtvt7, prti6q, prtwd2: fix USB related warnings Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 013/135] ASoC: Intel: sof_sdw: Add support for Rex soundwire Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 014/135] iopoll: Call cpu_relax() in busy loops Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 015/135] quota: Properly disable quotas when add_dquot_ref() fails Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 016/135] quota: fix warning in dqgrab() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 017/135] dma-remap: use kvmalloc_array/kvfree for larger dma memory remap Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 018/135] drm/amdgpu: install stub fence into potential unused fence pointers Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 019/135] HID: add quirk for 03f0:464a HP Elite Presenter Mouse Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 020/135] RDMA/mlx5: Return the firmware result upon destroying QP/RQ Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 021/135] ovl: check type and offset of struct vfsmount in ovl_entry Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 022/135] udf: Fix uninitialized array access for some pathnames Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 023/135] fs: jfs: Fix UBSAN: array-index-out-of-bounds in dbAllocDmapLev Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 024/135] MIPS: dec: prom: Address -Warray-bounds warning Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 025/135] FS: JFS: Fix null-ptr-deref Read in txBegin Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 026/135] FS: JFS: Check for read-only mounted filesystem " Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 027/135] media: v4l2-mem2mem: add lock to protect parameter num_rdy Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 028/135] usb: gadget: u_serial: Avoid spinlock recursion in __gs_console_push Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 029/135] media: platform: mediatek: vpu: fix NULL ptr dereference Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 030/135] usb: chipidea: imx: dont request QoS for imx8ulp Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 031/135] usb: chipidea: imx: add missing USB PHY DPDM wakeup setting Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 032/135] gfs2: Fix possible data races in gfs2_show_options() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 033/135] pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 034/135] Bluetooth: L2CAP: Fix use-after-free Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 035/135] Bluetooth: btusb: Add MT7922 bluetooth ID for the Asus Ally Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 036/135] drm/amdgpu: Fix potential fence use-after-free v2 Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 037/135] ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760 Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 038/135] ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 039/135] powerpc/kasan: Disable KCOV in KASAN code Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 040/135] ring-buffer: Do not swap cpu_buffer during resize process Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 041/135] IMA: allow/fix UML builds Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 042/135] iio: add addac subdirectory Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 043/135] dt-bindings: iio: add AD74413R Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 044/135] iio: adc: stx104: Utilize iomap interface Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 045/135] iio: adc: stx104: Implement and utilize register structures Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 046/135] iio: addac: stx104: Fix race condition for stx104_write_raw() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 047/135] iio: addac: stx104: Fix race condition when converting analog-to-digital Greg Kroah-Hartman
2023-08-24 14:49 ` Greg Kroah-Hartman [this message]
2023-08-24 14:49 ` [PATCH 5.10 049/135] bus: mhi: Add MMIO region length to controller structure Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 050/135] bus: mhi: Move host MHI code to "host" directory Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 051/135] bus: mhi: host: Range check CHDBOFF and ERDBOFF Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 052/135] irqchip/mips-gic: Get rid of the reliance on irq_cpu_online() Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 053/135] irqchip/mips-gic: Use raw spinlock for gic_lock Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 054/135] usb: cdnsp: Device side header file for CDNSP driver Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 055/135] usb: gadget: udc: core: Introduce check_config to verify USB configuration Greg Kroah-Hartman
2023-08-24 14:49 ` [PATCH 5.10 056/135] usb: cdns3: allocate TX FIFO size according to composite EP number Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 057/135] usb: cdns3: fix NCM gadget RX speed 20x slow than expection at iMX8QM Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 058/135] USB: dwc3: qcom: fix NULL-deref on suspend Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 059/135] mmc: bcm2835: fix deferred probing Greg Kroah-Hartman
2023-08-26 15:39   ` Sergey Shtylyov
2023-08-24 14:50 ` [PATCH 5.10 060/135] mmc: sunxi: " Greg Kroah-Hartman
2023-08-26 15:45   ` Sergey Shtylyov
2023-08-24 14:50 ` [PATCH 5.10 061/135] mmc: core: add devm_mmc_alloc_host Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 062/135] mmc: meson-gx: use devm_mmc_alloc_host Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 063/135] mmc: meson-gx: fix deferred probing Greg Kroah-Hartman
2023-08-26 15:57   ` Sergey Shtylyov
2023-08-24 14:50 ` [PATCH 5.10 064/135] tracing/probes: Have process_fetch_insn() take a void * instead of pt_regs Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 065/135] tracing/probes: Fix to update dynamic data counter if fetcharg uses it Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 066/135] net/ncsi: change from ndo_set_mac_address to dev_set_mac_address Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 067/135] virtio-mmio: Use to_virtio_mmio_device() to simply code Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 068/135] virtio-mmio: dont break lifecycle of vm_dev Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 069/135] i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 070/135] fbdev: mmp: fix value check in mmphw_probe() Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 071/135] powerpc/rtas_flash: allow user copy to flash block cache objects Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 072/135] tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 073/135] tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 074/135] btrfs: fix BUG_ON condition in btrfs_cancel_balance Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 075/135] i2c: designware: Handle invalid SMBus block data response length value Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 076/135] net: xfrm: Fix xfrm_address_filter OOB read Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 077/135] net: af_key: fix sadb_x_filter validation Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 078/135] net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 079/135] xfrm: fix slab-use-after-free in decode_session6 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 080/135] ip6_vti: " Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 081/135] ip_vti: fix potential " Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 082/135] xfrm: add NULL check in xfrm_update_ae_params Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 083/135] xfrm: add forgotten nla_policy for XFRMA_MTIMER_THRESH Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 084/135] selftests: mirror_gre_changes: Tighten up the TTL test match Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 085/135] drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 086/135] ipvs: fix racy memcpy in proc_do_sync_threshold Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 087/135] netfilter: nft_dynset: disallow object maps Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 088/135] net: phy: broadcom: stub c45 read/write for 54810 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 089/135] team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 090/135] i40e: fix misleading debug logs Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 091/135] net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 092/135] sock: Fix misuse of sk_under_memory_pressure() Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 093/135] net: do not allow gso_size to be set to GSO_BY_FRAGS Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 094/135] bus: ti-sysc: Flush posted write on enable before reset Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 095/135] arm64: dts: rockchip: fix supplies on rk3399-rock-pi-4 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 096/135] arm64: dts: rockchip: use USB host by default " Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 097/135] arm64: dts: rockchip: add ES8316 codec for ROCK Pi 4 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 098/135] arm64: dts: rockchip: add SPDIF node " Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 099/135] arm64: dts: rockchip: fix regulator name on rk3399-rock-4 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 100/135] arm64: dts: rockchip: sort nodes/properties " Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 101/135] arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4 Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 102/135] ASoC: rt5665: add missed regulator_bulk_disable Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 103/135] ASoC: meson: axg-tdm-formatter: fix channel slot allocation Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 104/135] ALSA: hda/realtek - Remodified 3k pull low procedure Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 105/135] riscv: __asm_copy_to-from_user: Optimize unaligned memory access and pipeline stall Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 106/135] riscv: lib: uaccess: fold fixups into body Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 107/135] riscv: lib: uaccess: fix CSR_STATUS SR_SUM bit Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 108/135] riscv: uaccess: Return the number of bytes effectively not copied Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 109/135] serial: 8250: Fix oops for port->pm on uart_change_pm() Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 110/135] ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 111/135] cifs: Release folio lock on fscache read hit Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 112/135] mmc: wbsd: fix double mmc_free_host() in wbsd_init() Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 113/135] mmc: block: Fix in_flight[issue_type] value error Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 114/135] netfilter: set default timeout to 3 secs for sctp shutdown send and recv state Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 115/135] af_unix: Fix null-ptr-deref in unix_stream_sendpage() Greg Kroah-Hartman
2023-08-24 14:50 ` [PATCH 5.10 116/135] virtio-net: set queues after driver_ok Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 117/135] net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 118/135] mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 119/135] x86/cpu: Fix __x86_return_thunk symbol type Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 120/135] x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk() Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 121/135] x86/alternative: Make custom return thunk unconditional Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 122/135] objtool: Add frame-pointer-specific function ignore Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 123/135] x86/ibt: Add ANNOTATE_NOENDBR Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 124/135] x86/cpu: Clean up SRSO return thunk mess Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 125/135] x86/cpu: Rename original retbleed methods Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 126/135] x86/cpu: Rename srso_(.*)_alias to srso_alias_\1 Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 127/135] x86/cpu: Cleanup the untrain mess Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 128/135] x86/srso: Explain the untraining sequences a bit more Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 129/135] x86/static_call: Fix __static_call_fixup() Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 130/135] x86/retpoline: Dont clobber RFLAGS during srso_safe_ret() Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 131/135] x86/CPU/AMD: Fix the DIV(0) initial fix attempt Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 132/135] x86/srso: Disable the mitigation on unaffected configurations Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 133/135] x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 134/135] objtool/x86: Fixup frame-pointer vs rethunk Greg Kroah-Hartman
2023-08-24 14:51 ` [PATCH 5.10 135/135] x86/srso: Correct the mitigation status when SMT is disabled Greg Kroah-Hartman
2023-08-24 16:05 ` [PATCH 5.10 000/135] 5.10.191-rc1 review Alexey Khoroshilov
2023-08-24 16:38   ` Greg Kroah-Hartman
  -- strict thread matches above, loose matches on Subject: below --
2023-08-24 17:07 [PATCH 5.10 000/135] 5.10.192-rc1 review Greg Kroah-Hartman
2023-08-24 17:08 ` [PATCH 5.10 048/135] bus: mhi: Add MHI PCI support for WWAN modems Greg Kroah-Hartman

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=20230824145029.012105815@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bbhatt@codeaurora.org \
    --cc=hemantk@codeaurora.org \
    --cc=loic.poulain@linaro.org \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@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;
as well as URLs for NNTP newsgroup(s).