Update backport patches for kernels <6.9

This commit is contained in:
CrazyCat
2024-07-02 00:04:20 +03:00
parent 8eca2adfbe
commit a860862679
4 changed files with 325 additions and 0 deletions

View File

@@ -28,6 +28,13 @@ add drx39xxj.patch
add ccs.patch
add rc-cec.patch
[6.8.1023]
add v6.8-ccs.patch
add v6.8-spi.patch
[6.7.1023]
add v6.7-cec.patch
[6.5.1023]
add v6.5_pcm_copy.patch
add v6.5_dvb_math.patch

12
backports/v6.7-cec.patch Normal file
View File

@@ -0,0 +1,12 @@
diff --git a/drivers/media/cec/core/cec-notifier.c b/drivers/media/cec/core/cec-notifier.c
index a41f24172b11..389dc664b211 100644
--- a/drivers/media/cec/core/cec-notifier.c
+++ b/drivers/media/cec/core/cec-notifier.c
@@ -7,7 +7,6 @@
*/
#include <linux/export.h>
-#include <linux/platform_device.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/i2c.h>

13
backports/v6.8-ccs.patch Normal file
View File

@@ -0,0 +1,13 @@
diff --git a/drivers/media/i2c/ccs/ccs-core.c b/drivers/media/i2c/ccs/ccs-core.c
index b2d220d1a079..49e0d9a09530 100644
--- a/drivers/media/i2c/ccs/ccs-core.c
+++ b/drivers/media/i2c/ccs/ccs-core.c
@@ -665,7 +665,7 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
break;
}
- pm_status = pm_runtime_get_if_active(&client->dev);
+ pm_status = pm_runtime_get_if_active(&client->dev, true);
if (!pm_status)
return 0;

293
backports/v6.8-spi.patch Normal file
View File

@@ -0,0 +1,293 @@
diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c b/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
index e90aa1c1584c..526042d8afae 100644
--- a/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
+++ b/drivers/media/pci/netup_unidvb/netup_unidvb_spi.c
@@ -35,7 +35,7 @@ struct netup_spi_regs {
struct netup_spi {
struct device *dev;
- struct spi_controller *ctlr;
+ struct spi_master *master;
struct netup_spi_regs __iomem *regs;
u8 __iomem *mmio;
spinlock_t lock;
@@ -78,7 +78,7 @@ irqreturn_t netup_spi_interrupt(struct netup_spi *spi)
reg = readw(&spi->regs->control_stat);
if (!(reg & NETUP_SPI_CTRL_IRQ)) {
spin_unlock_irqrestore(&spi->lock, flags);
- dev_dbg(&spi->ctlr->dev,
+ dev_dbg(&spi->master->dev,
"%s(): not mine interrupt\n", __func__);
return IRQ_NONE;
}
@@ -88,15 +88,15 @@ irqreturn_t netup_spi_interrupt(struct netup_spi *spi)
spi->state = SPI_STATE_DONE;
wake_up(&spi->waitq);
spin_unlock_irqrestore(&spi->lock, flags);
- dev_dbg(&spi->ctlr->dev,
+ dev_dbg(&spi->master->dev,
"%s(): SPI interrupt handled\n", __func__);
return IRQ_HANDLED;
}
-static int netup_spi_transfer(struct spi_controller *ctlr,
+static int netup_spi_transfer(struct spi_master *master,
struct spi_message *msg)
{
- struct netup_spi *spi = spi_controller_get_devdata(ctlr);
+ struct netup_spi *spi = spi_master_get_devdata(master);
struct spi_transfer *t;
int result = 0;
u32 tr_size;
@@ -131,7 +131,7 @@ static int netup_spi_transfer(struct spi_controller *ctlr,
NETUP_SPI_CTRL_START |
(frag_last ? NETUP_SPI_CTRL_LAST_CS : 0),
&spi->regs->control_stat);
- dev_dbg(&spi->ctlr->dev,
+ dev_dbg(&spi->master->dev,
"%s(): control_stat 0x%04x\n",
__func__, readw(&spi->regs->control_stat));
wait_event_timeout(spi->waitq,
@@ -144,11 +144,11 @@ static int netup_spi_transfer(struct spi_controller *ctlr,
}
} else {
if (spi->state == SPI_STATE_START) {
- dev_dbg(&spi->ctlr->dev,
+ dev_dbg(&spi->master->dev,
"%s(): transfer timeout\n",
__func__);
} else {
- dev_dbg(&spi->ctlr->dev,
+ dev_dbg(&spi->master->dev,
"%s(): invalid state %d\n",
__func__, spi->state);
}
@@ -161,7 +161,7 @@ static int netup_spi_transfer(struct spi_controller *ctlr,
}
done:
msg->status = result;
- spi_finalize_current_message(ctlr);
+ spi_finalize_current_message(master);
return result;
}
@@ -172,30 +172,30 @@ static int netup_spi_setup(struct spi_device *spi)
int netup_spi_init(struct netup_unidvb_dev *ndev)
{
- struct spi_controller *ctlr;
+ struct spi_master *master;
struct netup_spi *nspi;
- ctlr = devm_spi_alloc_master(&ndev->pci_dev->dev,
- sizeof(struct netup_spi));
- if (!ctlr) {
+ master = devm_spi_alloc_master(&ndev->pci_dev->dev,
+ sizeof(struct netup_spi));
+ if (!master) {
dev_err(&ndev->pci_dev->dev,
"%s(): unable to alloc SPI master\n", __func__);
return -EINVAL;
}
- nspi = spi_controller_get_devdata(ctlr);
- ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
- ctlr->bus_num = -1;
- ctlr->num_chipselect = 1;
- ctlr->transfer_one_message = netup_spi_transfer;
- ctlr->setup = netup_spi_setup;
+ nspi = spi_master_get_devdata(master);
+ master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
+ master->bus_num = -1;
+ master->num_chipselect = 1;
+ master->transfer_one_message = netup_spi_transfer;
+ master->setup = netup_spi_setup;
spin_lock_init(&nspi->lock);
init_waitqueue_head(&nspi->waitq);
- nspi->ctlr = ctlr;
+ nspi->master = master;
nspi->regs = (struct netup_spi_regs __iomem *)(ndev->bmmio0 + 0x4000);
writew(2, &nspi->regs->clock_divider);
writew(NETUP_UNIDVB_IRQ_SPI, ndev->bmmio0 + REG_IMASK_SET);
ndev->spi = nspi;
- if (spi_register_controller(ctlr)) {
+ if (spi_register_master(master)) {
ndev->spi = NULL;
dev_err(&ndev->pci_dev->dev,
"%s(): unable to register SPI bus\n", __func__);
@@ -207,8 +207,8 @@ int netup_spi_init(struct netup_unidvb_dev *ndev)
ndev->pci_bus,
ndev->pci_slot,
ndev->pci_func);
- if (!spi_new_device(ctlr, &netup_spi_board)) {
- spi_unregister_controller(ctlr);
+ if (!spi_new_device(master, &netup_spi_board)) {
+ spi_unregister_master(master);
ndev->spi = NULL;
dev_err(&ndev->pci_dev->dev,
"%s(): unable to create SPI device\n", __func__);
@@ -227,7 +227,7 @@ void netup_spi_release(struct netup_unidvb_dev *ndev)
if (!spi)
return;
- spi_unregister_controller(spi->ctlr);
+ spi_unregister_master(spi->master);
spin_lock_irqsave(&spi->lock, flags);
reg = readw(&spi->regs->control_stat);
writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat);
diff --git a/drivers/media/usb/msi2500/msi2500.c b/drivers/media/usb/msi2500/msi2500.c
index 5138486abfa0..9759996ee6a4 100644
--- a/drivers/media/usb/msi2500/msi2500.c
+++ b/drivers/media/usb/msi2500/msi2500.c
@@ -107,7 +107,7 @@ struct msi2500_dev {
struct video_device vdev;
struct v4l2_device v4l2_dev;
struct v4l2_subdev *v4l2_subdev;
- struct spi_controller *ctlr;
+ struct spi_master *master;
/* videobuf2 queue and queued buffers list */
struct vb2_queue vb_queue;
@@ -574,7 +574,7 @@ static void msi2500_disconnect(struct usb_interface *intf)
dev->udev = NULL;
v4l2_device_disconnect(&dev->v4l2_dev);
video_unregister_device(&dev->vdev);
- spi_unregister_controller(dev->ctlr);
+ spi_unregister_master(dev->master);
mutex_unlock(&dev->v4l2_lock);
mutex_unlock(&dev->vb_queue_lock);
@@ -1136,10 +1136,10 @@ static void msi2500_video_release(struct v4l2_device *v)
kfree(dev);
}
-static int msi2500_transfer_one_message(struct spi_controller *ctlr,
+static int msi2500_transfer_one_message(struct spi_master *master,
struct spi_message *m)
{
- struct msi2500_dev *dev = spi_controller_get_devdata(ctlr);
+ struct msi2500_dev *dev = spi_master_get_devdata(master);
struct spi_transfer *t;
int ret = 0;
u32 data;
@@ -1154,7 +1154,7 @@ static int msi2500_transfer_one_message(struct spi_controller *ctlr,
}
m->status = ret;
- spi_finalize_current_message(ctlr);
+ spi_finalize_current_message(master);
return ret;
}
@@ -1163,7 +1163,7 @@ static int msi2500_probe(struct usb_interface *intf,
{
struct msi2500_dev *dev;
struct v4l2_subdev *sd;
- struct spi_controller *ctlr;
+ struct spi_master *master;
int ret;
static struct spi_board_info board_info = {
.modalias = "msi001",
@@ -1220,30 +1220,30 @@ static int msi2500_probe(struct usb_interface *intf,
}
/* SPI master adapter */
- ctlr = spi_alloc_master(dev->dev, 0);
- if (ctlr == NULL) {
+ master = spi_alloc_master(dev->dev, 0);
+ if (master == NULL) {
ret = -ENOMEM;
goto err_unregister_v4l2_dev;
}
- dev->ctlr = ctlr;
- ctlr->bus_num = -1;
- ctlr->num_chipselect = 1;
- ctlr->transfer_one_message = msi2500_transfer_one_message;
- spi_controller_set_devdata(ctlr, dev);
- ret = spi_register_controller(ctlr);
+ dev->master = master;
+ master->bus_num = -1;
+ master->num_chipselect = 1;
+ master->transfer_one_message = msi2500_transfer_one_message;
+ spi_master_set_devdata(master, dev);
+ ret = spi_register_master(master);
if (ret) {
- spi_controller_put(ctlr);
+ spi_master_put(master);
goto err_unregister_v4l2_dev;
}
/* load v4l2 subdevice */
- sd = v4l2_spi_new_subdev(&dev->v4l2_dev, ctlr, &board_info);
+ sd = v4l2_spi_new_subdev(&dev->v4l2_dev, master, &board_info);
dev->v4l2_subdev = sd;
if (sd == NULL) {
dev_err(dev->dev, "cannot get v4l2 subdevice\n");
ret = -ENODEV;
- goto err_unregister_controller;
+ goto err_unregister_master;
}
/* Register controls */
@@ -1276,8 +1276,8 @@ static int msi2500_probe(struct usb_interface *intf,
return 0;
err_free_controls:
v4l2_ctrl_handler_free(&dev->hdl);
-err_unregister_controller:
- spi_unregister_controller(dev->ctlr);
+err_unregister_master:
+ spi_unregister_master(dev->master);
err_unregister_v4l2_dev:
v4l2_device_unregister(&dev->v4l2_dev);
err_free_mem:
diff --git a/drivers/media/v4l2-core/v4l2-spi.c b/drivers/media/v4l2-core/v4l2-spi.c
index a7092c3930d6..eadecdff7349 100644
--- a/drivers/media/v4l2-core/v4l2-spi.c
+++ b/drivers/media/v4l2-core/v4l2-spi.c
@@ -34,7 +34,7 @@ void v4l2_spi_subdev_init(struct v4l2_subdev *sd, struct spi_device *spi,
EXPORT_SYMBOL_GPL(v4l2_spi_subdev_init);
struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
- struct spi_controller *ctlr,
+ struct spi_master *master,
struct spi_board_info *info)
{
struct v4l2_subdev *sd = NULL;
@@ -45,7 +45,7 @@ struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
if (info->modalias[0])
request_module(info->modalias);
- spi = spi_new_device(ctlr, info);
+ spi = spi_new_device(master, info);
if (!spi || !spi->dev.driver)
goto error;
diff --git a/include/media/v4l2-common.h b/include/media/v4l2-common.h
index fa1f2435f0de..d278836fd9cb 100644
--- a/include/media/v4l2-common.h
+++ b/include/media/v4l2-common.h
@@ -278,13 +278,13 @@ static inline void v4l2_i2c_subdev_unregister(struct v4l2_subdev *sd)
*
*
* @v4l2_dev: pointer to &struct v4l2_device.
- * @ctlr: pointer to struct spi_controller.
+ * @master: pointer to struct spi_master.
* @info: pointer to struct spi_board_info.
*
* returns a &struct v4l2_subdev pointer.
*/
struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
- struct spi_controller *ctlr, struct spi_board_info *info);
+ struct spi_master *master, struct spi_board_info *info);
/**
* v4l2_spi_subdev_init - Initialize a v4l2_subdev with data from an
@@ -308,7 +308,7 @@ void v4l2_spi_subdev_unregister(struct v4l2_subdev *sd);
static inline struct v4l2_subdev *
v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev,
- struct spi_controller *ctlr, struct spi_board_info *info)
+ struct spi_master *master, struct spi_board_info *info)
{
return NULL;
}