Merge branch 'tbsdtv_linux_media/master' into tbsdtv_linux_media/latest

This commit is contained in:
CrazyCat
2024-07-02 00:23:25 +03:00
6 changed files with 50 additions and 49 deletions

View File

@@ -7,6 +7,7 @@
*/
#include <linux/export.h>
#include <linux/platform_device.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/i2c.h>

View File

@@ -665,7 +665,7 @@ static int ccs_set_ctrl(struct v4l2_ctrl *ctrl)
break;
}
pm_status = pm_runtime_get_if_active(&client->dev, true);
pm_status = pm_runtime_get_if_active(&client->dev);
if (!pm_status)
return 0;

View File

@@ -35,7 +35,7 @@ struct netup_spi_regs {
struct netup_spi {
struct device *dev;
struct spi_master *master;
struct spi_controller *ctlr;
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->master->dev,
dev_dbg(&spi->ctlr->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->master->dev,
dev_dbg(&spi->ctlr->dev,
"%s(): SPI interrupt handled\n", __func__);
return IRQ_HANDLED;
}
static int netup_spi_transfer(struct spi_master *master,
static int netup_spi_transfer(struct spi_controller *ctlr,
struct spi_message *msg)
{
struct netup_spi *spi = spi_master_get_devdata(master);
struct netup_spi *spi = spi_controller_get_devdata(ctlr);
struct spi_transfer *t;
int result = 0;
u32 tr_size;
@@ -131,7 +131,7 @@ static int netup_spi_transfer(struct spi_master *master,
NETUP_SPI_CTRL_START |
(frag_last ? NETUP_SPI_CTRL_LAST_CS : 0),
&spi->regs->control_stat);
dev_dbg(&spi->master->dev,
dev_dbg(&spi->ctlr->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_master *master,
}
} else {
if (spi->state == SPI_STATE_START) {
dev_dbg(&spi->master->dev,
dev_dbg(&spi->ctlr->dev,
"%s(): transfer timeout\n",
__func__);
} else {
dev_dbg(&spi->master->dev,
dev_dbg(&spi->ctlr->dev,
"%s(): invalid state %d\n",
__func__, spi->state);
}
@@ -161,7 +161,7 @@ static int netup_spi_transfer(struct spi_master *master,
}
done:
msg->status = result;
spi_finalize_current_message(master);
spi_finalize_current_message(ctlr);
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_master *master;
struct spi_controller *ctlr;
struct netup_spi *nspi;
master = devm_spi_alloc_master(&ndev->pci_dev->dev,
sizeof(struct netup_spi));
if (!master) {
ctlr = devm_spi_alloc_master(&ndev->pci_dev->dev,
sizeof(struct netup_spi));
if (!ctlr) {
dev_err(&ndev->pci_dev->dev,
"%s(): unable to alloc SPI master\n", __func__);
return -EINVAL;
}
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;
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;
spin_lock_init(&nspi->lock);
init_waitqueue_head(&nspi->waitq);
nspi->master = master;
nspi->ctlr = ctlr;
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_master(master)) {
if (spi_register_controller(ctlr)) {
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(master, &netup_spi_board)) {
spi_unregister_master(master);
if (!spi_new_device(ctlr, &netup_spi_board)) {
spi_unregister_controller(ctlr);
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_master(spi->master);
spi_unregister_controller(spi->ctlr);
spin_lock_irqsave(&spi->lock, flags);
reg = readw(&spi->regs->control_stat);
writew(reg | NETUP_SPI_CTRL_IRQ, &spi->regs->control_stat);

View File

@@ -107,7 +107,7 @@ struct msi2500_dev {
struct video_device vdev;
struct v4l2_device v4l2_dev;
struct v4l2_subdev *v4l2_subdev;
struct spi_master *master;
struct spi_controller *ctlr;
/* 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_master(dev->master);
spi_unregister_controller(dev->ctlr);
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_master *master,
static int msi2500_transfer_one_message(struct spi_controller *ctlr,
struct spi_message *m)
{
struct msi2500_dev *dev = spi_master_get_devdata(master);
struct msi2500_dev *dev = spi_controller_get_devdata(ctlr);
struct spi_transfer *t;
int ret = 0;
u32 data;
@@ -1154,7 +1154,7 @@ static int msi2500_transfer_one_message(struct spi_master *master,
}
m->status = ret;
spi_finalize_current_message(master);
spi_finalize_current_message(ctlr);
return ret;
}
@@ -1163,7 +1163,7 @@ static int msi2500_probe(struct usb_interface *intf,
{
struct msi2500_dev *dev;
struct v4l2_subdev *sd;
struct spi_master *master;
struct spi_controller *ctlr;
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 */
master = spi_alloc_master(dev->dev, 0);
if (master == NULL) {
ctlr = spi_alloc_master(dev->dev, 0);
if (ctlr == NULL) {
ret = -ENOMEM;
goto err_unregister_v4l2_dev;
}
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);
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);
if (ret) {
spi_master_put(master);
spi_controller_put(ctlr);
goto err_unregister_v4l2_dev;
}
/* load v4l2 subdevice */
sd = v4l2_spi_new_subdev(&dev->v4l2_dev, master, &board_info);
sd = v4l2_spi_new_subdev(&dev->v4l2_dev, ctlr, &board_info);
dev->v4l2_subdev = sd;
if (sd == NULL) {
dev_err(dev->dev, "cannot get v4l2 subdevice\n");
ret = -ENODEV;
goto err_unregister_master;
goto err_unregister_controller;
}
/* 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_master:
spi_unregister_master(dev->master);
err_unregister_controller:
spi_unregister_controller(dev->ctlr);
err_unregister_v4l2_dev:
v4l2_device_unregister(&dev->v4l2_dev);
err_free_mem:

View File

@@ -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_master *master,
struct spi_controller *ctlr,
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(master, info);
spi = spi_new_device(ctlr, info);
if (!spi || !spi->dev.driver)
goto error;

View File

@@ -278,13 +278,13 @@ static inline void v4l2_i2c_subdev_unregister(struct v4l2_subdev *sd)
*
*
* @v4l2_dev: pointer to &struct v4l2_device.
* @master: pointer to struct spi_master.
* @ctlr: pointer to struct spi_controller.
* @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_master *master, struct spi_board_info *info);
struct spi_controller *ctlr, 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_master *master, struct spi_board_info *info)
struct spi_controller *ctlr, struct spi_board_info *info)
{
return NULL;
}