mirror of
https://github.com/tbsdtv/media_build.git
synced 2025-07-23 04:13:02 +02:00
Update backport patches for kernels <6.9
This commit is contained in:
@@ -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
12
backports/v6.7-cec.patch
Normal 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
13
backports/v6.8-ccs.patch
Normal 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
293
backports/v6.8-spi.patch
Normal 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;
|
||||
}
|
Reference in New Issue
Block a user