[git:media_tree/master] media: lgdt3306a: Add a check against null-pointer-def

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: lgdt3306a: Add a check against null-pointer-def
Author:  Zheyu Ma 
Date:Tue Apr 5 10:50:18 2022 +0100

The driver should check whether the client provides the platform_data.

The following log reveals it:

[   29.610324] BUG: KASAN: null-ptr-deref in kmemdup+0x30/0x40
[   29.610730] Read of size 40 at addr  by task bash/414
[   29.612820] Call Trace:
[   29.613030]  
[   29.613201]  dump_stack_lvl+0x56/0x6f
[   29.613496]  ? kmemdup+0x30/0x40
[   29.613754]  print_report.cold+0x494/0x6b7
[   29.614082]  ? kmemdup+0x30/0x40
[   29.614340]  kasan_report+0x8a/0x190
[   29.614628]  ? kmemdup+0x30/0x40
[   29.614888]  kasan_check_range+0x14d/0x1d0
[   29.615213]  memcpy+0x20/0x60
[   29.615454]  kmemdup+0x30/0x40
[   29.615700]  lgdt3306a_probe+0x52/0x310
[   29.616339]  i2c_device_probe+0x951/0xa90

Link: 
https://lore.kernel.org/linux-media/20220405095018.3993578-1-zheyum...@gmail.com
Signed-off-by: Zheyu Ma 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/lgdt3306a.c | 5 +
 1 file changed, 5 insertions(+)

---

diff --git a/drivers/media/dvb-frontends/lgdt3306a.c 
b/drivers/media/dvb-frontends/lgdt3306a.c
index 263887592415..231b45632ad5 100644
--- a/drivers/media/dvb-frontends/lgdt3306a.c
+++ b/drivers/media/dvb-frontends/lgdt3306a.c
@@ -2176,6 +2176,11 @@ static int lgdt3306a_probe(struct i2c_client *client)
struct dvb_frontend *fe;
int ret;
 
+   if (!client->dev.platform_data) {
+   dev_err(>dev, "platform data is mandatory\n");
+   return -EINVAL;
+   }
+
config = kmemdup(client->dev.platform_data,
 sizeof(struct lgdt3306a_config), GFP_KERNEL);
if (config == NULL) {


[git:media_tree/master] media: cec: cec.h: 2.1 ms -> 2100 ms

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: cec.h: 2.1 ms -> 2100 ms
Author:  Hans Verkuil 
Date:Fri Aug 18 13:12:48 2023 +0100

The transfer timeout is 2100 ms, not 2.1 ms. Fix this in the
kerneldoc comment.

Link: 
https://lore.kernel.org/linux-media/17cd1a67-3966-237c-2e0d-2d3ae618f...@xs4all.nl
Signed-off-by: Hans Verkuil 
Signed-off-by: Mauro Carvalho Chehab 

 include/media/cec.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/include/media/cec.h b/include/media/cec.h
index 10c9cf6058b7..c8350258f10a 100644
--- a/include/media/cec.h
+++ b/include/media/cec.h
@@ -173,7 +173,7 @@ struct cec_adap_ops {
  * case the transmit will finish, but will not retransmit
  * and be marked as ABORTED.
  * @xfer_timeout_ms:   the transfer timeout in ms.
- * If 0, then timeout after 2.1 ms.
+ * If 0, then timeout after 2100 ms.
  * @kthread_config:kthread used to configure a CEC adapter
  * @config_completion: used to signal completion of the config kthread
  * @kthread:   main CEC processing thread


[git:media_tree/master] media: s2255: Use refcount_t instead of atomic_t for num_channels

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: s2255: Use refcount_t instead of atomic_t for num_channels
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:50 2024 +0100

Use an API that resembles more the actual use of num_channels.

Found by cocci:
drivers/media/usb/s2255/s2255drv.c:2362:5-24: WARNING: atomic_dec_and_test 
variation before object free at line 2363.
drivers/media/usb/s2255/s2255drv.c:1557:5-24: WARNING: atomic_dec_and_test 
variation before object free at line 1558.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-11-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/s2255/s2255drv.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

---

diff --git a/drivers/media/usb/s2255/s2255drv.c 
b/drivers/media/usb/s2255/s2255drv.c
index 8e1de1e8bd12..a6e450181fd0 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -247,7 +247,7 @@ struct s2255_vc {
 struct s2255_dev {
struct s2255_vc vc[MAX_CHANNELS];
struct v4l2_device  v4l2_dev;
-   atomic_tnum_channels;
+   refcount_t  num_channels;
int frames;
struct mutexlock;   /* channels[].vdev.lock */
struct mutexcmdlock; /* protects cmdbuf */
@@ -1550,11 +1550,11 @@ static void s2255_video_device_release(struct 
video_device *vdev)
container_of(vdev, struct s2255_vc, vdev);
 
dprintk(dev, 4, "%s, chnls: %d\n", __func__,
-   atomic_read(>num_channels));
+   refcount_read(>num_channels));
 
v4l2_ctrl_handler_free(>hdl);
 
-   if (atomic_dec_and_test(>num_channels))
+   if (refcount_dec_and_test(>num_channels))
s2255_destroy(dev);
return;
 }
@@ -1659,7 +1659,7 @@ static int s2255_probe_v4l(struct s2255_dev *dev)
"failed to register video device!\n");
break;
}
-   atomic_inc(>num_channels);
+   refcount_inc(>num_channels);
v4l2_info(>v4l2_dev, "V4L2 device registered as %s\n",
  video_device_node_name(>vdev));
 
@@ -1667,11 +1667,11 @@ static int s2255_probe_v4l(struct s2255_dev *dev)
pr_info("Sensoray 2255 V4L driver Revision: %s\n",
S2255_VERSION);
/* if no channels registered, return error and probe will fail*/
-   if (atomic_read(>num_channels) == 0) {
+   if (refcount_read(>num_channels) == 0) {
v4l2_device_unregister(>v4l2_dev);
return ret;
}
-   if (atomic_read(>num_channels) != MAX_CHANNELS)
+   if (refcount_read(>num_channels) != MAX_CHANNELS)
pr_warn("s2255: Not all channels available.\n");
return 0;
 }
@@ -2221,7 +2221,7 @@ static int s2255_probe(struct usb_interface *interface,
goto errorFWDATA1;
}
 
-   atomic_set(>num_channels, 0);
+   refcount_set(>num_channels, 0);
dev->pid = id->idProduct;
dev->fw_data = kzalloc(sizeof(struct s2255_fw), GFP_KERNEL);
if (!dev->fw_data)
@@ -2341,12 +2341,12 @@ static void s2255_disconnect(struct usb_interface 
*interface)
 {
struct s2255_dev *dev = to_s2255_dev(usb_get_intfdata(interface));
int i;
-   int channels = atomic_read(>num_channels);
+   int channels = refcount_read(>num_channels);
mutex_lock(>lock);
v4l2_device_disconnect(>v4l2_dev);
mutex_unlock(>lock);
/*see comments in the uvc_driver.c usb disconnect function */
-   atomic_inc(>num_channels);
+   refcount_inc(>num_channels);
/* unregister each video device. */
for (i = 0; i < channels; i++)
video_unregister_device(>vc[i].vdev);
@@ -2359,7 +2359,7 @@ static void s2255_disconnect(struct usb_interface 
*interface)
dev->vc[i].vidstatus_ready = 1;
wake_up(>vc[i].wait_vidstatus);
}
-   if (atomic_dec_and_test(>num_channels))
+   if (refcount_dec_and_test(>num_channels))
s2255_destroy(dev);
dev_info(>dev, "%s\n", __func__);
 }


[git:media_tree/master] media: IR remote control for AVerMedia TD310

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: IR remote control for AVerMedia TD310
Author:  Alex Volkov 
Date:Sun Mar 19 08:23:15 2023 +

Uses NEC defaults as other non-eeprom devices.

Link: https://lore.kernel.org/linux-media/2273969.FyfRTN5kjP@bootes
Signed-off-by: Alex Volkov 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/dvb-usb-v2/af9035.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 4eb7dd4599b7..0d2c42819d39 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -868,6 +868,9 @@ static int af9035_read_config(struct dvb_usb_device *d)
if ((le16_to_cpu(d->udev->descriptor.idVendor) == 
USB_VID_AVERMEDIA) &&
(le16_to_cpu(d->udev->descriptor.idProduct) == 
USB_PID_AVERMEDIA_TD310)) {
state->it930x_addresses = 1;
+   /* TD310 RC works with NEC defaults */
+   state->ir_mode = 0x05;
+   state->ir_type = 0x00;
}
return 0;
}
@@ -2066,6 +2069,11 @@ static const struct dvb_usb_device_properties 
it930x_props = {
.tuner_attach = it930x_tuner_attach,
.tuner_detach = it930x_tuner_detach,
.init = it930x_init,
+   /*
+* dvb_usbv2_remote_init() calls rc_config() only for those devices
+* which have non-empty rc_map, so it's safe to enable it for every 
IT930x
+*/
+   .get_rc_config = af9035_get_rc_config,
.get_stream_config = af9035_get_stream_config,
 
.get_adapter_count = af9035_get_adapter_count,
@@ -2157,7 +2165,7 @@ static const struct usb_device_id af9035_id_table[] = {
{ DVB_USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9303,
_props, "ITE 9303 Generic", NULL) },
{ DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_TD310,
-   _props, "AVerMedia TD310 DVB-T2", NULL) },
+   _props, "AVerMedia TD310 DVB-T2", 
RC_MAP_AVERMEDIA_RM_KS) },
{ DVB_USB_DEVICE(USB_VID_DEXATEK, 0x0100,
_props, "Logilink VG0022A", NULL) },
{ DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_TC2_STICK,


[git:media_tree/master] media: intel/ipu6: Fix direct dependency Kconfig error

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: Fix direct dependency Kconfig error
Author:  Ricardo Ribalda 
Date:Wed May 1 14:08:12 2024 +0100

VIDEO_INTEL_IPU6 selects IPU6_BRIDGE, but they have different set of
dependencies.

It fixes this warning:
WARNING: unmet direct dependencies detected for IPU_BRIDGE
  Depends on [n]: MEDIA_SUPPORT [=y] && PCI [=y] && MEDIA_PCI_SUPPORT [=y] && 
I2C [=y] && ACPI [=n]
  Selected by [y]:
  - VIDEO_INTEL_IPU6 [=y] && MEDIA_SUPPORT [=y] && PCI [=y] && 
MEDIA_PCI_SUPPORT [=y] && (ACPI [=n] || COMPILE_TEST [=y]) && VIDEO_DEV [=y] && 
X86 [=y] && X86_64 [=y] && HAS_DMA [=y]

Signed-off-by: Ricardo Ribalda 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/pci/intel/Kconfig b/drivers/media/pci/intel/Kconfig
index 04cb3d253486..d9fcddce028b 100644
--- a/drivers/media/pci/intel/Kconfig
+++ b/drivers/media/pci/intel/Kconfig
@@ -6,7 +6,8 @@ source "drivers/media/pci/intel/ivsc/Kconfig"
 
 config IPU_BRIDGE
tristate "Intel IPU Bridge"
-   depends on I2C && ACPI
+   depends on ACPI || COMPILE_TEST
+   depends on I2C
help
  The IPU bridge is a helper library for Intel IPU drivers to
  function on systems shipped with Windows.


[git:media_tree/master] media: pci: mgb4: Refactor struct resources

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: pci: mgb4: Refactor struct resources
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:40 2024 +0100

The struct resource end field signifies the end address not the
relative offset from the start field i.e size == (end - start) + 1.

Amend the .end field to specify the end address not the relative size
from the offset as is currently given.

Fixes cocci check:
drivers/media/pci/mgb4/mgb4_regs.c:13:22-25: WARNING: Suspicious code. 
resource_size is maybe missing with res

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-1-3c4865f5a...@chromium.org
Reviewed-by: Martin Tůma 
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/mgb4/mgb4_core.c | 4 ++--
 drivers/media/pci/mgb4/mgb4_regs.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/pci/mgb4/mgb4_core.c 
b/drivers/media/pci/mgb4/mgb4_core.c
index 9bcf10a77fd3..60498a5abebf 100644
--- a/drivers/media/pci/mgb4/mgb4_core.c
+++ b/drivers/media/pci/mgb4/mgb4_core.c
@@ -493,13 +493,13 @@ static int mgb4_probe(struct pci_dev *pdev, const struct 
pci_device_id *id)
struct mgb4_dev *mgbdev;
struct resource video = {
.start  = 0x0,
-   .end= 0x100,
+   .end= 0xff,
.flags  = IORESOURCE_MEM,
.name   = "mgb4-video",
};
struct resource cmt = {
.start  = 0x1000,
-   .end= 0x1800,
+   .end= 0x17ff,
.flags  = IORESOURCE_MEM,
.name   = "mgb4-cmt",
};
diff --git a/drivers/media/pci/mgb4/mgb4_regs.c 
b/drivers/media/pci/mgb4/mgb4_regs.c
index 53d4e4503a74..31befd722d72 100644
--- a/drivers/media/pci/mgb4/mgb4_regs.c
+++ b/drivers/media/pci/mgb4/mgb4_regs.c
@@ -10,7 +10,7 @@
 int mgb4_regs_map(struct resource *res, struct mgb4_regs *regs)
 {
regs->mapbase = res->start;
-   regs->mapsize = res->end - res->start;
+   regs->mapsize = resource_size(res);
 
if (!request_mem_region(regs->mapbase, regs->mapsize, res->name))
return -EINVAL;


[git:media_tree/master] media: intel/ipu6: Fix build with !ACPI

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: Fix build with !ACPI
Author:  Ricardo Ribalda 
Date:Wed May 1 14:08:13 2024 +0100

Modify the code so it can be compiled tested in configurations that do
not have ACPI enabled.

It fixes the following errors:
drivers/media/pci/intel/ipu-bridge.c:103:30: error: implicit declaration of 
function ‘acpi_device_handle’; did you mean ‘acpi_fwnode_handle’? 
[-Werror=implicit-function-declaration]
drivers/media/pci/intel/ipu-bridge.c:103:30: warning: initialization of 
‘acpi_handle’ {aka ‘void *’} from ‘int’ makes pointer from integer without a 
cast [-Wint-conversion]
drivers/media/pci/intel/ipu-bridge.c:110:17: error: implicit declaration of 
function ‘for_each_acpi_dev_match’ [-Werror=implicit-function-declaration]
drivers/media/pci/intel/ipu-bridge.c:110:74: error: expected ‘;’ before 
‘for_each_acpi_consumer_dev’
drivers/media/pci/intel/ipu-bridge.c:104:29: warning: unused variable 
‘consumer’ [-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:103:21: warning: unused variable ‘handle’ 
[-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:166:38: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:185:43: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:191:30: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:196:30: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:202:30: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:223:31: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:236:18: error: implicit declaration of 
function ‘acpi_get_physical_device_location’ 
[-Werror=implicit-function-declaration]
drivers/media/pci/intel/ipu-bridge.c:236:56: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:238:31: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:256:31: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:275:31: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:280:30: error: invalid use of undefined 
type ‘struct acpi_device’
drivers/media/pci/intel/ipu-bridge.c:469:26: error: implicit declaration of 
function ‘acpi_device_hid’; did you mean ‘dmi_device_id’? 
[-Werror=implicit-function-declaration]
drivers/media/pci/intel/ipu-bridge.c:468:74: warning: format ‘%s’ expects 
argument of type ‘char *’, but argument 4 has type ‘int’ [-Wformat=]
drivers/media/pci/intel/ipu-bridge.c:637:58: error: expected ‘;’ before ‘{’ 
token
drivers/media/pci/intel/ipu-bridge.c:696:1: warning: label ‘err_put_adev’ 
defined but not used [-Wunused-label]
drivers/media/pci/intel/ipu-bridge.c:693:1: warning: label ‘err_put_ivsc’ 
defined but not used [-Wunused-label]
drivers/media/pci/intel/ipu-bridge.c:691:1: warning: label ‘err_free_swnodes’ 
defined but not used [-Wunused-label]
drivers/media/pci/intel/ipu-bridge.c:632:40: warning: unused variable ‘primary’ 
[-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:632:31: warning: unused variable ‘fwnode’ 
[-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:733:73: error: expected ‘;’ before ‘{’ 
token
drivers/media/pci/intel/ipu-bridge.c:725:24: warning: unused variable ‘csi_dev’ 
[-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:724:43: warning: unused variable ‘adev’ 
[-Wunused-variable]
drivers/media/pci/intel/ipu-bridge.c:599:12: warning: 
‘ipu_bridge_instantiate_ivsc’ defined but not used [-Wunused-function]
drivers/media/pci/intel/ipu-bridge.c:444:13: warning: 
‘ipu_bridge_create_connection_swnodes’ defined but not used [-Wunused-function]
drivers/media/pci/intel/ipu-bridge.c:297:13: warning: 
‘ipu_bridge_create_fwnode_properties’ defined but not used [-Wunused-function]
drivers/media/pci/intel/ipu-bridge.c:155:12: warning: 
‘ipu_bridge_check_ivsc_dev’ defined but not used [-Wunused-function]

Signed-off-by: Ricardo Ribalda 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu-bridge.c | 66 +---
 1 file changed, 47 insertions(+), 19 deletions(-)

---

diff --git a/drivers/media/pci/intel/ipu-bridge.c 
b/drivers/media/pci/intel/ipu-bridge.c
index e994db4f4d91..61750cc98d70 100644
--- a/drivers/media/pci/intel/ipu-bridge.c
+++ b/drivers/media/pci/intel/ipu-bridge.c
@@ -15,6 +15,8 @@
 #include 
 #include 
 
+#define ADEV_DEV(adev) ACPI_PTR(&((adev)->dev))
+
 /*
  * 92335fcf-3203-4472-af93-7b4453ac29da
  *
@@ -87,6 +89,7 @@ static const char * const ipu_vcm_types[] = {
"lc898212axb",
 };
 
+#if IS_ENABLED(CONFIG_ACPI)
 /*
  * Used to figure out IVSC acpi device by ipu_bridge_

[git:media_tree/master] media: mtk-vcodec: potential null pointer deference in SCP

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: mtk-vcodec: potential null pointer deference in SCP
Author:  Fullway Wang 
Date:Thu Jan 18 02:35:06 2024 +

The return value of devm_kzalloc() needs to be checked to avoid
NULL pointer deference. This is similar to CVE-2022-3113.

Link: 
https://lore.kernel.org/linux-media/ph7pr20mb5925094dae3fd750c7e39e01bf...@ph7pr20mb5925.namprd20.prod.outlook.com
Signed-off-by: Fullway Wang 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c | 2 ++
 1 file changed, 2 insertions(+)

---

diff --git a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c 
b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
index 6bbe55de6ce9..ff23b225db70 100644
--- a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
@@ -79,6 +79,8 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_scp_init(void *priv, enum 
mtk_vcodec_fw_use
}
 
fw = devm_kzalloc(_dev->dev, sizeof(*fw), GFP_KERNEL);
+   if (!fw)
+   return ERR_PTR(-ENOMEM);
fw->type = SCP;
fw->ops = _vcodec_rproc_msg;
fw->scp = scp;


[git:media_tree/master] media: mxl5xx: Move xpt structures off stack

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: mxl5xx: Move xpt structures off stack
Author:  Nathan Chancellor 
Date:Fri Jan 12 00:40:36 2024 +

When building for LoongArch with clang 18.0.0, the stack usage of
probe() is larger than the allowed 2048 bytes:

  drivers/media/dvb-frontends/mxl5xx.c:1698:12: warning: stack frame size 
(2368) exceeds limit (2048) in 'probe' [-Wframe-larger-than]
   1698 | static int probe(struct mxl *state, struct mxl5xx_cfg *cfg)
|^
  1 warning generated.

This is the result of the linked LLVM commit, which changes how the
arrays of structures in config_ts() get handled with
CONFIG_INIT_STACK_ZERO and CONFIG_INIT_STACK_PATTERN, which causes the
above warning in combination with inlining, as config_ts() gets inlined
into probe().

This warning can be easily fixed by moving the array of structures off
of the stackvia 'static const', which is a better location for these
variables anyways because they are static data that is only ever read
from, never modified, so allocating the stack space is wasteful.

This drops the stack usage from 2368 bytes to 256 bytes with the same
compiler and configuration.

Link: 
https://lore.kernel.org/linux-media/20240111-dvb-mxl5xx-move-structs-off-stack-v1-1-ca4230e67...@kernel.org
Cc: sta...@vger.kernel.org
Closes: https://github.com/ClangBuiltLinux/linux/issues/1977
Link: 
https://github.com/llvm/llvm-project/commit/afe8b93ffdfef5d8879e1894b9d7dda40dee2b8d
Signed-off-by: Nathan Chancellor 
Reviewed-by: Miguel Ojeda 
Tested-by: Miguel Ojeda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/mxl5xx.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/mxl5xx.c 
b/drivers/media/dvb-frontends/mxl5xx.c
index 4ebbcf05cc09..91e9c378397c 100644
--- a/drivers/media/dvb-frontends/mxl5xx.c
+++ b/drivers/media/dvb-frontends/mxl5xx.c
@@ -1381,57 +1381,57 @@ static int config_ts(struct mxl *state, enum 
MXL_HYDRA_DEMOD_ID_E demod_id,
u32 nco_count_min = 0;
u32 clk_type = 0;
 
-   struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 8, 1}, {0x90700010, 9, 1},
{0x90700010, 10, 1}, {0x90700010, 11, 1},
{0x90700010, 12, 1}, {0x90700010, 13, 1},
{0x90700010, 14, 1}, {0x90700010, 15, 1} };
-   struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 16, 1}, {0x90700010, 17, 1},
{0x90700010, 18, 1}, {0x90700010, 19, 1},
{0x90700010, 20, 1}, {0x90700010, 21, 1},
{0x90700010, 22, 1}, {0x90700010, 23, 1} };
-   struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700014, 0, 1}, {0x90700014, 1, 1},
{0x90700014, 2, 1}, {0x90700014, 3, 1},
{0x90700014, 4, 1}, {0x90700014, 5, 1},
{0x90700014, 6, 1}, {0x90700014, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
{0x90700018, 0, 3}, {0x90700018, 4, 3},
{0x90700018, 8, 3}, {0x90700018, 12, 3},
{0x90700018, 16, 3}, {0x90700018, 20, 3},
{0x90700018, 24, 3}, {0x90700018, 28, 3} };
-   struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] 
= {
{0x907C, 16, 1}, {0x907C, 17, 1},
{0x907C, 18, 1}, {0x907C, 19, 1},
{0x907C, 20, 1}, {0x907C, 21, 1},
{0x907C, 22, 1}, {0x907C, 23, 1} };
-   struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] 
= {
{0x90700010, 0, 1}, {0x90700010, 1, 1},
{0x90700010, 2, 1}, {0x90700010, 3, 1},
{0x90700010, 4, 1}, {0x90700010, 5, 1},
{0x90700010, 6, 1}, {0x90700010, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
{0x907C, 0, 1}, {0x907C, 1, 1},
{0x907C, 2, 1}, {0x907C, 3, 1},
{0x907C, 4, 1}, {0x907C, 5, 1},
{0x907C, 6, 1}, {0x907C, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct

[git:media_tree/master] media: platform: mtk-mdp3: Use refcount_t for job_count

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: platform: mtk-mdp3: Use refcount_t for job_count
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:51 2024 +0100

Use an API that resembles more the actual use of job_count.

Found by cocci:
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:527:5-24: WARNING: 
atomic_dec_and_test variation before object free at line 541.
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:578:6-25: WARNING: 
atomic_dec_and_test variation before object free at line 581.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-12-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 10 +-
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c |  6 +++---
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h |  2 +-
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c  |  6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)

---

diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
index 1d64bac34b90..ea2ea119dd2a 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
@@ -524,7 +524,7 @@ static void mdp_auto_release_work(struct work_struct *work)
mdp_comp_clocks_off(>pdev->dev, cmd->comps,
cmd->num_comps);
 
-   if (atomic_dec_and_test(>job_count)) {
+   if (refcount_dec_and_test(>job_count)) {
if (cmd->mdp_ctx)
mdp_m2m_job_finish(cmd->mdp_ctx);
 
@@ -575,7 +575,7 @@ static void mdp_handle_cmdq_callback(struct mbox_client 
*cl, void *mssg)
mdp_comp_clocks_off(>pdev->dev, cmd->comps,
cmd->num_comps);
 
-   if (atomic_dec_and_test(>job_count))
+   if (refcount_dec_and_test(>job_count))
wake_up(>callback_wq);
 
mdp_cmdq_pkt_destroy(>pkt);
@@ -724,9 +724,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct 
mdp_cmdq_param *param)
int i, ret;
u8 pp_used = __get_pp_num(param->param->type);
 
-   atomic_set(>job_count, pp_used);
+   refcount_set(>job_count, pp_used);
if (atomic_read(>suspended)) {
-   atomic_set(>job_count, 0);
+   refcount_set(>job_count, 0);
return -ECANCELED;
}
 
@@ -764,7 +764,7 @@ err_clock_off:
mdp_comp_clocks_off(>pdev->dev, cmd[i]->comps,
cmd[i]->num_comps);
 err_cancel_job:
-   atomic_set(>job_count, 0);
+   refcount_set(>job_count, 0);
 
return ret;
 }
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
index 5209f531ef8d..c1f3bf98120a 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
@@ -380,14 +380,14 @@ static int __maybe_unused mdp_suspend(struct device *dev)
 
atomic_set(>suspended, 1);
 
-   if (atomic_read(>job_count)) {
+   if (refcount_read(>job_count)) {
ret = wait_event_timeout(mdp->callback_wq,
-!atomic_read(>job_count),
+!refcount_read(>job_count),
 2 * HZ);
if (ret == 0) {
dev_err(dev,
"%s:flushed cmdq task incomplete, count=%d\n",
-   __func__, atomic_read(>job_count));
+   __func__, refcount_read(>job_count));
return -EBUSY;
}
}
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
index 8c09e984fd01..430251f63754 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
@@ -134,7 +134,7 @@ struct mdp_dev {
/* synchronization protect for m2m device operation */
struct mutexm2m_lock;
atomic_tsuspended;
-   atomic_tjob_count;
+   refcount_t  job_count;
 };
 
 struct mdp_pipe_info {
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
index 35a8b059bde5..0e69128a3772 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
@@ -104,14 +104,14 @@ static void mdp_m2m_devi

[git:media_tree/master] media: dw2102: fix a potential buffer overflow

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dw2102: fix a potential buffer overflow
Author:  Mauro Carvalho Chehab 
Date:Mon Apr 29 15:15:05 2024 +0100

As pointed by smatch:
 drivers/media/usb/dvb-usb/dw2102.c:802 su3000_i2c_transfer() error: 
__builtin_memcpy() '>data[4]' too small (64 vs 67)

That seemss to be due to a wrong copy-and-paste.

Fixes: 0e148a522b84 ("media: dw2102: Don't translate i2c read into write")

Reported-by: Hans Verkuil 
Reviewed-by: Hans Verkuil 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/dvb-usb/dw2102.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/dvb-usb/dw2102.c 
b/drivers/media/usb/dvb-usb/dw2102.c
index 03b411ad64bb..79e2ccf974c9 100644
--- a/drivers/media/usb/dvb-usb/dw2102.c
+++ b/drivers/media/usb/dvb-usb/dw2102.c
@@ -789,7 +789,7 @@ static int su3000_i2c_transfer(struct i2c_adapter *adap, 
struct i2c_msg msg[],
 
if (msg[j].flags & I2C_M_RD) {
/* single read */
-   if (1 + msg[j].len > sizeof(state->data)) {
+   if (4 + msg[j].len > sizeof(state->data)) {
warn("i2c rd: len=%d is too big!\n", 
msg[j].len);
num = -EOPNOTSUPP;
break;


[git:media_tree/master] media: common: saa7146: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: common: saa7146: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:52 2024 +0100

Simplifies the code. Found by cocci:

drivers/media/common/saa7146/saa7146_hlp.c:125:36-37: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:154:41-42: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:286:35-36: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:289:35-36: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-13-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/common/saa7146/saa7146_hlp.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/common/saa7146/saa7146_hlp.c 
b/drivers/media/common/saa7146/saa7146_hlp.c
index 7569d8cdd4d8..fe3348af543e 100644
--- a/drivers/media/common/saa7146/saa7146_hlp.c
+++ b/drivers/media/common/saa7146/saa7146_hlp.c
@@ -122,7 +122,7 @@ static int calculate_h_scale_registers(struct saa7146_dev 
*dev,
xacm = 0;
 
/* set horizontal filter parameters (CXY = CXUV) */
-   cxy = hps_h_coeff_tab[( (xpsc - 1) < 63 ? (xpsc - 1) : 63 )].hps_coeff;
+   cxy = hps_h_coeff_tab[min(xpsc - 1, 63)].hps_coeff;
cxuv = cxy;
 
/* calculate and set horizontal fine scale (xsci) */
@@ -151,7 +151,7 @@ static int calculate_h_scale_registers(struct saa7146_dev 
*dev,
xacm = 0;
/* get best match in the table of attenuations
   for horizontal scaling */
-   h_atten = hps_h_coeff_tab[( (xpsc - 1) < 63 ? (xpsc - 1) : 63 
)].weight_sum;
+   h_atten = hps_h_coeff_tab[min(xpsc - 1, 63)].weight_sum;
 
for (i = 0; h_attenuation[i] != 0; i++) {
if (h_attenuation[i] >= h_atten)
@@ -283,10 +283,10 @@ static int calculate_v_scale_registers(struct saa7146_dev 
*dev, enum v4l2_field
}
 
/* get filter coefficients for cya, cyb from table 
hps_v_coeff_tab */
-   cya_cyb = hps_v_coeff_tab[ (yacl < 63 ? yacl : 63 ) ].hps_coeff;
+   cya_cyb = hps_v_coeff_tab[min(yacl, 63)].hps_coeff;
 
/* get best match in the table of attenuations for vertical 
scaling */
-   v_atten = hps_v_coeff_tab[ (yacl < 63 ? yacl : 63 ) 
].weight_sum;
+   v_atten = hps_v_coeff_tab[min(yacl, 63)].weight_sum;
 
for (i = 0; v_attenuation[i] != 0; i++) {
if (v_attenuation[i] >= v_atten)


[git:media_tree/master] media: dvb-frontends: drx39xyj: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: drx39xyj: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:53 2024 +0100

Replace ternary assignments with min() to simplify and make the code
more readable.

Found by cocci:
drivers/media/dvb-frontends/drx39xyj/drxj.c:1447:23-24: WARNING opportunity for 
min()
drivers/media/dvb-frontends/drx39xyj/drxj.c:1662:21-22: WARNING opportunity for 
min()
drivers/media/dvb-frontends/drx39xyj/drxj.c:1685:24-25: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-14-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/drx39xyj/drxj.c | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c 
b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 1ef53754bc03..6fcaf07e1b82 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -1445,8 +1445,7 @@ static int drxdap_fasi_read_block(struct i2c_device_addr 
*dev_addr,
 
/* Read block from I2C 
 */
do {
-   u16 todo = (datasize < DRXDAP_MAX_RCHUNKSIZE ?
- datasize : DRXDAP_MAX_RCHUNKSIZE);
+   u16 todo = min(datasize, DRXDAP_MAX_RCHUNKSIZE);
 
bufx = 0;
 
@@ -1660,7 +1659,7 @@ static int drxdap_fasi_write_block(struct i2c_device_addr 
*dev_addr,
   Address must be rewritten because HI is reset after data 
transport and
   expects an address.
 */
-   todo = (block_size < datasize ? block_size : datasize);
+   todo = min(block_size, datasize);
if (todo == 0) {
u16 overhead_size_i2c_addr = 0;
u16 data_block_size = 0;
@@ -1682,9 +1681,7 @@ static int drxdap_fasi_write_block(struct i2c_device_addr 
*dev_addr,
first_err = st;
}
bufx = 0;
-   todo =
-   (data_block_size <
-datasize ? data_block_size : datasize);
+   todo = min(data_block_size, datasize);
}
memcpy([bufx], data, todo);
/* write (address if can do and) data */


[git:media_tree/master] media: imx214: Fix the error handling in imx214_probe()

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: imx214: Fix the error handling in imx214_probe()
Author:  Zheyu Ma 
Date:Tue May 10 12:48:52 2022 +0100

The driver should disable regulators when fails to probe.

Link: 
https://lore.kernel.org/linux-media/20220510114852.1719018-1-zheyum...@gmail.com
Signed-off-by: Zheyu Ma 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/i2c/imx214.c | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/i2c/imx214.c b/drivers/media/i2c/imx214.c
index 10b6ad66d126..4962cfe7c83d 100644
--- a/drivers/media/i2c/imx214.c
+++ b/drivers/media/i2c/imx214.c
@@ -1114,6 +1114,7 @@ free_ctrl:
v4l2_ctrl_handler_free(>ctrls);
 error_power_off:
pm_runtime_disable(imx214->dev);
+   regulator_bulk_disable(IMX214_NUM_SUPPLIES, imx214->supplies);
 
return ret;
 }


[git:media_tree/master] media: verisilicon: Correct a typo in H1_REG_MAD_CTRL_MAD_THRESHOLD

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: verisilicon: Correct a typo in H1_REG_MAD_CTRL_MAD_THRESHOLD
Author:  Andrzej Pietrasiewicz 
Date:Thu Nov 16 15:48:12 2023 +

It's a THRESHOLD and not a THREDHOLD.

Link: 
https://lore.kernel.org/linux-media/20231116154816.70959-3-andrze...@collabora.com
Signed-off-by: Andrzej Pietrasiewicz 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/verisilicon/hantro_h1_regs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/verisilicon/hantro_h1_regs.h 
b/drivers/media/platform/verisilicon/hantro_h1_regs.h
index b45e6e104b23..8650cc489392 100644
--- a/drivers/media/platform/verisilicon/hantro_h1_regs.h
+++ b/drivers/media/platform/verisilicon/hantro_h1_regs.h
@@ -89,7 +89,7 @@
 #define H1_REG_STR_BUF_LIMIT   0x060
 #define H1_REG_MAD_CTRL0x064
 #defineH1_REG_MAD_CTRL_QP_ADJUST(x)((x) << 28)
-#defineH1_REG_MAD_CTRL_MAD_THREDHOLD(x)((x) << 22)
+#defineH1_REG_MAD_CTRL_MAD_THRESHOLD(x)((x) << 22)
 #defineH1_REG_MAD_CTRL_QP_SUM_DIV2(x)  ((x))
 #define H1_REG_ADDR_VP8_PROB_CNT   0x068
 #define H1_REG_QP_VAL  0x06c


[git:media_tree/master] media: cec: cec-adap: always cancel work in cec_transmit_msg_fh

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
Author:  Hans Verkuil 
Date:Fri Feb 23 12:24:38 2024 +

Do not check for !data->completed, just always call
cancel_delayed_work_sync(). This fixes a small race condition.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: 490d84f6d73c ("media: cec: forgot to cancel delayed work")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index 559a172ebc6c..6fc7de744ee9 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -936,8 +936,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 */
mutex_unlock(>lock);
wait_for_completion_killable(>c);
-   if (!data->completed)
-   cancel_delayed_work_sync(>work);
+   cancel_delayed_work_sync(>work);
mutex_lock(>lock);
 
/* Cancel the transmit if it was interrupted */


[git:media_tree/master] media: dt-bindings: media: i2c: Rename ov8856.yaml

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dt-bindings: media: i2c: Rename ov8856.yaml
Author:  Lad Prabhakar 
Date:Fri Sep 16 12:09:55 2022 +0100

Rename 'ov8856.yaml' as 'ovti,ov8856.yaml' and update the MAINTAINERS
file entry accordingly.

All the Omnivision sensor DT bindings have vendor prefix "ovti," to
their file name hence this renaming.

Link: 
https://lore.kernel.org/linux-media/20220916110955.23757-1-prabhakar.mahadev-lad...@bp.renesas.com
Signed-off-by: Lad Prabhakar 
Acked-by: Krzysztof Kozlowski 
Signed-off-by: Mauro Carvalho Chehab 

 .../devicetree/bindings/media/i2c/{ov8856.yaml => ovti,ov8856.yaml} | 2 +-
 MAINTAINERS | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml 
b/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
similarity index 98%
rename from Documentation/devicetree/bindings/media/i2c/ov8856.yaml
rename to Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
index 816dac9c6f60..3f6f72c35485 100644
--- a/Documentation/devicetree/bindings/media/i2c/ov8856.yaml
+++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
@@ -2,7 +2,7 @@
 # Copyright (c) 2019 MediaTek Inc.
 %YAML 1.2
 ---
-$id: http://devicetree.org/schemas/media/i2c/ov8856.yaml#
+$id: http://devicetree.org/schemas/media/i2c/ovti,ov8856.yaml#
 $schema: http://devicetree.org/meta-schemas/core.yaml#
 
 title: Omnivision OV8856 CMOS Sensor
diff --git a/MAINTAINERS b/MAINTAINERS
index 5a178aaf21b3..01b86927a7ad 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16414,7 +16414,7 @@ M:  Sakari Ailus 
 L: linux-me...@vger.kernel.org
 S: Maintained
 T: git git://linuxtv.org/media_tree.git
-F: Documentation/devicetree/bindings/media/i2c/ov8856.yaml
+F: Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml
 F: drivers/media/i2c/ov8856.c
 
 OMNIVISION OV8858 SENSOR DRIVER


[git:media_tree/master] media: bcm2835-unicam: Fix build with !PM

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: bcm2835-unicam: Fix build with !PM
Author:  Ricardo Ribalda 
Date:Wed May 1 14:08:09 2024 +0100

The driver can only match the device vide the DT table, so the table
should always be used, of_match_ptr does not make sense here.

It fixes this warning:
drivers/media/platform/broadcom/bcm2835-unicam.c:2724:34: warning: 
‘unicam_of_match’ defined but not used [-Wunused-const-variable=]

Signed-off-by: Ricardo Ribalda 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/broadcom/bcm2835-unicam.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c 
b/drivers/media/platform/broadcom/bcm2835-unicam.c
index bd2bbb53070e..c590e26fe2cf 100644
--- a/drivers/media/platform/broadcom/bcm2835-unicam.c
+++ b/drivers/media/platform/broadcom/bcm2835-unicam.c
@@ -2733,7 +2733,7 @@ static struct platform_driver unicam_driver = {
.driver = {
.name   = UNICAM_MODULE_NAME,
.pm = pm_ptr(_pm_ops),
-   .of_match_table = of_match_ptr(unicam_of_match),
+   .of_match_table = unicam_of_match,
},
 };
 


[git:media_tree/master] media: si2165: Remove redundant NULL check before release_firmware() call

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: si2165: Remove redundant NULL check before release_firmware() 
call
Author:  Minghao Chi 
Date:Mon Jun 6 02:44:33 2022 +0100

release_firmware() checks for NULL pointers internally so checking
before calling it is redundant.

Link: 
https://lore.kernel.org/linux-media/20220606014433.290667-1-chi.ming...@zte.com.cn
Reported-by: Zeal Robot 
Signed-off-by: Minghao Chi 
Acked-by: Matthias Schwarzott 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/si2165.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/si2165.c 
b/drivers/media/dvb-frontends/si2165.c
index 434d003bf397..013d423d3263 100644
--- a/drivers/media/dvb-frontends/si2165.c
+++ b/drivers/media/dvb-frontends/si2165.c
@@ -513,10 +513,8 @@ static int si2165_upload_firmware(struct si2165_state 
*state)
ret = 0;
state->firmware_loaded = true;
 error:
-   if (fw) {
-   release_firmware(fw);
-   fw = NULL;
-   }
+   release_firmware(fw);
+   fw = NULL;
 
return ret;
 }


[git:media_tree/master] media: as102: avoid GFP_ATOMIC

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: as102: avoid GFP_ATOMIC
Author:  Oliver Neukum 
Date:Tue May 17 12:10:49 2022 +0100

No need for GFP_ATOMIC during probe()

Link: 
https://lore.kernel.org/linux-media/20220517111049.25611-1-oneu...@suse.com
Signed-off-by: Oliver Neukum 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/as102/as102_usb_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/as102/as102_usb_drv.c 
b/drivers/media/usb/as102/as102_usb_drv.c
index 6b380144d6c2..e0ef66a522e2 100644
--- a/drivers/media/usb/as102/as102_usb_drv.c
+++ b/drivers/media/usb/as102/as102_usb_drv.c
@@ -259,7 +259,7 @@ static int as102_alloc_usb_stream_buffer(struct as102_dev_t 
*dev)
for (i = 0; i < MAX_STREAM_URB; i++) {
struct urb *urb;
 
-   urb = usb_alloc_urb(0, GFP_ATOMIC);
+   urb = usb_alloc_urb(0, GFP_KERNEL);
if (urb == NULL) {
as102_free_usb_stream_buffer(dev);
return -ENOMEM;


[git:media_tree/master] media: staging: media: starfive: Clean pad selection in isp_try_format()

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: media: starfive: Clean pad selection in 
isp_try_format()
Author:  Changhuang Liang 
Date:Tue Mar 12 02:45:20 2024 +

The code to select isp_dev->formats[] is overly complicated.  We can
just use the "pad" as the index.  This will making adding new pads
easier in future patches.  No functional change.

Link: 
https://lore.kernel.org/linux-media/20240312024520.11022-1-changhuang.li...@starfivetech.com
Signed-off-by: Changhuang Liang 
Reviewed-by: Dan Carpenter 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/starfive/camss/stf-isp.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

---

diff --git a/drivers/staging/media/starfive/camss/stf-isp.c 
b/drivers/staging/media/starfive/camss/stf-isp.c
index d50616ef351e..4e6e26736852 100644
--- a/drivers/staging/media/starfive/camss/stf-isp.c
+++ b/drivers/staging/media/starfive/camss/stf-isp.c
@@ -10,9 +10,6 @@
 
 #include "stf-camss.h"
 
-#define SINK_FORMATS_INDEX 0
-#define SOURCE_FORMATS_INDEX   1
-
 static int isp_set_selection(struct v4l2_subdev *sd,
 struct v4l2_subdev_state *state,
 struct v4l2_subdev_selection *sel);
@@ -94,10 +91,7 @@ static void isp_try_format(struct stf_isp_dev *isp_dev,
return;
}
 
-   if (pad == STF_ISP_PAD_SINK)
-   formats = _dev->formats[SINK_FORMATS_INDEX];
-   else if (pad == STF_ISP_PAD_SRC)
-   formats = _dev->formats[SOURCE_FORMATS_INDEX];
+   formats = _dev->formats[pad];
 
fmt->width = clamp_t(u32, fmt->width, STFCAMSS_FRAME_MIN_WIDTH,
 STFCAMSS_FRAME_MAX_WIDTH);
@@ -123,7 +117,7 @@ static int isp_enum_mbus_code(struct v4l2_subdev *sd,
if (code->index >= ARRAY_SIZE(isp_formats_sink))
return -EINVAL;
 
-   formats = _dev->formats[SINK_FORMATS_INDEX];
+   formats = _dev->formats[code->pad];
code->code = formats->fmts[code->index].code;
} else {
struct v4l2_mbus_framefmt *sink_fmt;


[git:media_tree/master] media: cec: core: avoid confusing "transmit timed out" message

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: core: avoid confusing "transmit timed out" message
Author:  Hans Verkuil 
Date:Tue Apr 30 11:13:47 2024 +0100

If, when waiting for a transmit to finish, the wait is interrupted,
then you might get a "transmit timed out" message, even though the
transmit was interrupted and did not actually time out.

Set transmit_in_progress_aborted to true if the
wait_for_completion_killable() call was interrupted and ensure
that the transmit is properly marked as ABORTED.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: 590a8e564c6e ("media: cec: abort if the current transmit was canceled")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index a493cbce2456..da09834990b8 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -490,6 +490,15 @@ int cec_thread_func(void *_adap)
goto unlock;
}
 
+   if (adap->transmit_in_progress &&
+   adap->transmit_in_progress_aborted) {
+   if (adap->transmitting)
+   cec_data_cancel(adap->transmitting,
+   CEC_TX_STATUS_ABORTED, 0);
+   adap->transmit_in_progress = false;
+   adap->transmit_in_progress_aborted = false;
+   goto unlock;
+   }
if (adap->transmit_in_progress && timeout) {
/*
 * If we timeout, then log that. Normally this does
@@ -771,6 +780,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 {
struct cec_data *data;
bool is_raw = msg_is_raw(msg);
+   int err;
 
if (adap->devnode.unregistered)
return -ENODEV;
@@ -935,10 +945,13 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 * Release the lock and wait, retake the lock afterwards.
 */
mutex_unlock(>lock);
-   wait_for_completion_killable(>c);
+   err = wait_for_completion_killable(>c);
cancel_delayed_work_sync(>work);
mutex_lock(>lock);
 
+   if (err)
+   adap->transmit_in_progress_aborted = true;
+
/* Cancel the transmit if it was interrupted */
if (!data->completed) {
if (data->msg.tx_status & CEC_TX_STATUS_OK)


[git:media_tree/master] media: intel/ipu6: Switch to RUNTIME_PM_OPS() and SYSTEM_SLEEP_PM_OPS

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: Switch to RUNTIME_PM_OPS() and SYSTEM_SLEEP_PM_OPS
Author:  Ricardo Ribalda 
Date:Wed May 1 14:08:11 2024 +0100

Replace the old helpers with its modern alternative.
Now we do not need to set '__maybe_unused' annotations when we are not
enabling the PM configurations.

It fixes the following warnings:
drivers/media/pci/intel/ipu6/ipu6.c:841:12: warning: ‘ipu6_runtime_resume’ 
defined but not used [-Wunused-function]
drivers/media/pci/intel/ipu6/ipu6.c:806:12: warning: ‘ipu6_resume’ defined but 
not used [-Wunused-function]
drivers/media/pci/intel/ipu6/ipu6.c:801:12: warning: ‘ipu6_suspend’ defined but 
not used [-Wunused-function]

Signed-off-by: Ricardo Ribalda 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index 4b1f69d14d71..7bcd9c5a381a 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -860,8 +860,8 @@ static int ipu6_runtime_resume(struct device *dev)
 }
 
 static const struct dev_pm_ops ipu6_pm_ops = {
-   SET_SYSTEM_SLEEP_PM_OPS(_suspend, _resume)
-   SET_RUNTIME_PM_OPS(_suspend, _runtime_resume, NULL)
+   SYSTEM_SLEEP_PM_OPS(_suspend, _resume)
+   RUNTIME_PM_OPS(_suspend, _runtime_resume, NULL)
 };
 
 MODULE_DEVICE_TABLE(pci, ipu6_pci_tbl);


[git:media_tree/master] media: flexcop: unneeded ATOMIC

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: flexcop: unneeded ATOMIC
Author:  Oliver Neukum 
Date:Tue May 17 14:11:08 2022 +0100

No need for GFP_ATOMIC during probe()

Link: 
https://lore.kernel.org/linux-media/20220517131109.28371-1-oneu...@suse.com
Signed-off-by: Oliver Neukum 
Reviewed-by: Johan Hovold 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/b2c2/flexcop-usb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/usb/b2c2/flexcop-usb.c 
b/drivers/media/usb/b2c2/flexcop-usb.c
index 790787f0eba8..0f807da4b65a 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -448,7 +448,7 @@ static int flexcop_usb_transfer_init(struct flexcop_usb 
*fc_usb)
/* creating iso urbs */
for (i = 0; i < B2C2_USB_NUM_ISO_URB; i++) {
fc_usb->iso_urb[i] = usb_alloc_urb(B2C2_USB_FRAMES_PER_ISO,
-   GFP_ATOMIC);
+   GFP_KERNEL);
if (fc_usb->iso_urb[i] == NULL) {
ret = -ENOMEM;
goto urb_error;
@@ -481,7 +481,7 @@ static int flexcop_usb_transfer_init(struct flexcop_usb 
*fc_usb)
frame_offset += frame_size;
}
 
-   if ((ret = usb_submit_urb(fc_usb->iso_urb[i],GFP_ATOMIC))) {
+   if ((ret = usb_submit_urb(fc_usb->iso_urb[i],GFP_KERNEL))) {
err("submitting urb %d failed with %d.", i, ret);
goto urb_error;
}


[git:media_tree/master] media: verisilicon Correct a typo in H1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: verisilicon Correct a typo in 
H1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE
Author:  Andrzej Pietrasiewicz 
Date:Thu Nov 16 15:48:11 2023 +

It's a FILTER and not FILETER.

Link: 
https://lore.kernel.org/linux-media/20231116154816.70959-2-andrze...@collabora.com
Signed-off-by: Andrzej Pietrasiewicz 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/verisilicon/hantro_h1_regs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/verisilicon/hantro_h1_regs.h 
b/drivers/media/platform/verisilicon/hantro_h1_regs.h
index 30e7e7b920b5..b45e6e104b23 100644
--- a/drivers/media/platform/verisilicon/hantro_h1_regs.h
+++ b/drivers/media/platform/verisilicon/hantro_h1_regs.h
@@ -62,7 +62,7 @@
 #defineH1_REG_ENC_CTRL1_INTRA_PRED_MODE(x) ((x) << 16)
 #defineH1_REG_ENC_CTRL1_FRAME_NUM(x)   ((x))
 #define H1_REG_ENC_CTRL2   0x048
-#defineH1_REG_ENC_CTRL2_DEBLOCKING_FILETER_MODE(x) ((x) << 30)
+#defineH1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE(x)  ((x) << 30)
 #defineH1_REG_ENC_CTRL2_H264_SLICE_SIZE(x) ((x) << 23)
 #defineH1_REG_ENC_CTRL2_DISABLE_QUARTER_PIXMV  BIT(22)
 #defineH1_REG_ENC_CTRL2_TRANS8X8_MODE_EN   BIT(21)


[git:media_tree/master] media: sunxi: a83-mips-csi2: also select GENERIC_PHY

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: sunxi: a83-mips-csi2: also select GENERIC_PHY
Author:  Randy Dunlap 
Date:Wed Sep 27 05:04:38 2023 +0100

When selecting GENERIC_PHY_MIPI_DPHY, also select GENERIC_PHY to
prevent kconfig warnings:

WARNING: unmet direct dependencies detected for GENERIC_PHY_MIPI_DPHY
  Depends on [n]: GENERIC_PHY [=n]
  Selected by [y]:
  - VIDEO_SUN8I_A83T_MIPI_CSI2 [=y] && MEDIA_SUPPORT [=y] && 
MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && 
V4L_PLATFORM_DRIVERS [=y] && VIDEO_DEV [=y] && (ARCH_SUNXI || COMPILE_TEST 
[=y]) && PM [=y] && COMMON_CLK [=y] && RESET_CONTROLLER [=y]

Fixes: 94d7fd9692b5 ("media: sunxi: Depend on GENERIC_PHY_MIPI_DPHY")
Reported-by: kernel test robot 
Closes: https://lore.kernel.org/r/ZQ/WS8HC1A3F0Qn8@rli9-mobl
Link: 
https://lore.kernel.org/linux-media/20230927040438.5589-1-rdun...@infradead.org

Signed-off-by: Randy Dunlap 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig 
b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
index 47a8c0fb7eb9..99c401e653bc 100644
--- a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
+++ b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
@@ -8,6 +8,7 @@ config VIDEO_SUN8I_A83T_MIPI_CSI2
select VIDEO_V4L2_SUBDEV_API
select V4L2_FWNODE
select REGMAP_MMIO
+   select GENERIC_PHY
select GENERIC_PHY_MIPI_DPHY
help
   Support for the Allwinner A83T MIPI CSI-2 controller and D-PHY.


[git:media_tree/master] media: ipu3: Use MODULE_FIRMWARE to add firmware files metadata

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: ipu3: Use MODULE_FIRMWARE to add firmware files metadata
Author:  Víctor Gonzalo 
Date:Thu Sep 14 14:51:00 2023 +0100

The ipu3 driver requests firmware files but does not use the
MODULE_FIRMWARE macro to show them in the module metadata

[mchehab: add missing firmware file: IMGU_FW_NAME_IPU_20161208]
Link: 
https://lore.kernel.org/linux-media/20230914135100.19911-1-victor.gonz...@anddroptable.net
Signed-off-by: Víctor Gonzalo 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/ipu3/ipu3.c | 4 
 1 file changed, 4 insertions(+)

---

diff --git a/drivers/staging/media/ipu3/ipu3.c 
b/drivers/staging/media/ipu3/ipu3.c
index 215884b3e922..e22a9c092195 100644
--- a/drivers/staging/media/ipu3/ipu3.c
+++ b/drivers/staging/media/ipu3/ipu3.c
@@ -13,6 +13,7 @@
 #include 
 
 #include "ipu3.h"
+#include "ipu3-css-fw.h"
 #include "ipu3-dmamap.h"
 #include "ipu3-mmu.h"
 
@@ -860,3 +861,6 @@ MODULE_AUTHOR("Yuning Pu");
 MODULE_AUTHOR("Yong Zhi ");
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("Intel ipu3_imgu PCI driver");
+MODULE_FIRMWARE(IMGU_FW_NAME);
+MODULE_FIRMWARE(IMGU_FW_NAME_20161208);
+MODULE_FIRMWARE(IMGU_FW_NAME_IPU_20161208);


[git:media_tree/master] media: atomisp-mt9m114: adjust macro parameter name

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: atomisp-mt9m114: adjust macro parameter name
Author:  Julia Lawall 
Date:Wed Mar 15 09:09:04 2023 +

The macro parameter name, sd, captures the field name in the third
argument of container_of.  Fortunately, the argument at all uses is
actually sd.  But change the macro parameter name anyway, for a little
added safety.

Link: 
https://lore.kernel.org/linux-media/20230315090904.20092-1-julia.law...@inria.fr
Signed-off-by: Julia Lawall 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c 
b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
index 03ebee976d5b..23b1001c2a55 100644
--- a/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
+++ b/drivers/staging/media/atomisp/i2c/atomisp-mt9m114.c
@@ -35,7 +35,7 @@
 
 #include "mt9m114.h"
 
-#define to_mt9m114_sensor(sd) container_of(sd, struct mt9m114_device, sd)
+#define to_mt9m114_sensor(s) container_of(s, struct mt9m114_device, sd)
 
 /*
  * TODO: use debug parameter to actually define when debug messages should


[git:media_tree/master] media: bcm2835-unicam: Include v4l2-subdev.h

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: bcm2835-unicam: Include v4l2-subdev.h
Author:  Laurent Pinchart 
Date:Wed May 1 14:08:10 2024 +0100

The unicam driver uses the v4l2_subdev structure. Include the
corresponding header instead of relying on indirect includes.

Closes: 
https://lore.kernel.org/oe-kbuild-all/202404302324.8atc84ke-...@intel.com/

Signed-off-by: Laurent Pinchart 
Reported-by: kernel test robot 
Reviewed-by: Ricardo Ribalda 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/broadcom/bcm2835-unicam.c | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/platform/broadcom/bcm2835-unicam.c 
b/drivers/media/platform/broadcom/bcm2835-unicam.c
index c590e26fe2cf..3c7878d8d79b 100644
--- a/drivers/media/platform/broadcom/bcm2835-unicam.c
+++ b/drivers/media/platform/broadcom/bcm2835-unicam.c
@@ -55,6 +55,7 @@
 #include 
 #include 
 #include 
+#include 
 #include 
 
 #include "bcm2835-unicam-regs.h"


[git:media_tree/master] media: cec: cec-api: add locking in cec_release()

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: cec-api: add locking in cec_release()
Author:  Hans Verkuil 
Date:Fri Feb 23 12:25:55 2024 +

When cec_release() uses fh->msgs it has to take fh->lock,
otherwise the list can get corrupted.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: ca684386e6e2 ("[media] cec: add HDMI CEC framework (api)")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-api.c | 3 +++
 1 file changed, 3 insertions(+)

---

diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index 67dc79ef1705..d64bb716f9c6 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -664,6 +664,8 @@ static int cec_release(struct inode *inode, struct file 
*filp)
list_del_init(>xfer_list);
}
mutex_unlock(>lock);
+
+   mutex_lock(>lock);
while (!list_empty(>msgs)) {
struct cec_msg_entry *entry =
list_first_entry(>msgs, struct cec_msg_entry, list);
@@ -681,6 +683,7 @@ static int cec_release(struct inode *inode, struct file 
*filp)
kfree(entry);
}
}
+   mutex_unlock(>lock);
kfree(fh);
 
cec_put_device(devnode);


[git:media_tree/master] media: staging: max96712: fix copy-paste error

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: max96712: fix copy-paste error
Author:  Ihor Matushchak 
Date:Sat Oct 14 15:38:43 2023 +0100

Link: 
https://lore.kernel.org/linux-media/20231014143843.3409-1-ihor.matushc...@foobox.net
Signed-off-by: Ihor Matushchak 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/max96712/max96712.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/staging/media/max96712/max96712.c 
b/drivers/staging/media/max96712/max96712.c
index c44145284aa1..ea67bcf69c9d 100644
--- a/drivers/staging/media/max96712/max96712.c
+++ b/drivers/staging/media/max96712/max96712.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Maxim MAX9286 Quad GMSL2 Deserializer Driver
+ * Maxim MAX96712 Quad GMSL2 Deserializer Driver
  *
  * Copyright (C) 2021 Renesas Electronics Corporation
  * Copyright (C) 2021 Niklas Söderlund


[git:media_tree/master] media: cec: core: avoid recursive cec_claim_log_addrs

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: core: avoid recursive cec_claim_log_addrs
Author:  Hans Verkuil 
Date:Thu Feb 22 16:17:33 2024 +

Keep track if cec_claim_log_addrs() is running, and return -EBUSY
if it is when calling CEC_ADAP_S_LOG_ADDRS.

This prevents a case where cec_claim_log_addrs() could be called
while it was still in progress.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: ca684386e6e2 ("[media] cec: add HDMI CEC framework (api)")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 6 +-
 drivers/media/cec/core/cec-api.c  | 2 +-
 include/media/cec.h   | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index 6fc7de744ee9..a493cbce2456 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -1574,9 +1574,12 @@ unconfigure:
  */
 static void cec_claim_log_addrs(struct cec_adapter *adap, bool block)
 {
-   if (WARN_ON(adap->is_configuring || adap->is_configured))
+   if (WARN_ON(adap->is_claiming_log_addrs ||
+   adap->is_configuring || adap->is_configured))
return;
 
+   adap->is_claiming_log_addrs = true;
+
init_completion(>config_completion);
 
/* Ready to kick off the thread */
@@ -1591,6 +1594,7 @@ static void cec_claim_log_addrs(struct cec_adapter *adap, 
bool block)
wait_for_completion(>config_completion);
mutex_lock(>lock);
}
+   adap->is_claiming_log_addrs = false;
 }
 
 /*
diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index d64bb716f9c6..3ef915344304 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -178,7 +178,7 @@ static long cec_adap_s_log_addrs(struct cec_adapter *adap, 
struct cec_fh *fh,
   CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU |
   CEC_LOG_ADDRS_FL_CDC_ONLY;
mutex_lock(>lock);
-   if (!adap->is_configuring &&
+   if (!adap->is_claiming_log_addrs && !adap->is_configuring &&
(!log_addrs.num_log_addrs || !adap->is_configured) &&
!cec_is_busy(adap, fh)) {
err = __cec_s_log_addrs(adap, _addrs, block);
diff --git a/include/media/cec.h b/include/media/cec.h
index c8350258f10a..d3abe84c9c9e 100644
--- a/include/media/cec.h
+++ b/include/media/cec.h
@@ -258,6 +258,7 @@ struct cec_adapter {
u16 phys_addr;
bool needs_hpd;
bool is_enabled;
+   bool is_claiming_log_addrs;
bool is_configuring;
bool must_reconfigure;
bool is_configured;


[git:media_tree/master] media: flexcop: allow for modern speeds

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: flexcop: allow for modern speeds
Author:  Oliver Neukum 
Date:Tue May 17 14:11:09 2022 +0100

High speed is no longer the ultimate in speed.

Link: 
https://lore.kernel.org/linux-media/20220517131109.28371-2-oneu...@suse.com
Signed-off-by: Oliver Neukum 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/b2c2/flexcop-usb.c | 6 ++
 1 file changed, 6 insertions(+)

---

diff --git a/drivers/media/usb/b2c2/flexcop-usb.c 
b/drivers/media/usb/b2c2/flexcop-usb.c
index 0f807da4b65a..8f45e9156fbe 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -531,6 +531,12 @@ static int flexcop_usb_init(struct flexcop_usb *fc_usb)
case USB_SPEED_HIGH:
info("running at HIGH speed.");
break;
+   case USB_SPEED_SUPER:
+   info("running at SUPER speed.");
+   break;
+   case USB_SPEED_SUPER_PLUS:
+   info("running at SUPER+ speed.");
+   break;
case USB_SPEED_UNKNOWN:
default:
err("cannot handle USB speed because it is unknown.");


[git:media_tree/master] media: flexcop-usb: fix sanity check of bNumEndpoints

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: flexcop-usb: fix sanity check of bNumEndpoints
Author:  Dongliang Mu 
Date:Thu Jun 2 06:50:24 2022 +0100

Commit d725d20e81c2 ("media: flexcop-usb: sanity checking of endpoint type
") adds a sanity check for endpoint[1], but fails to modify the sanity
check of bNumEndpoints.

Fix this by modifying the sanity check of bNumEndpoints to 2.

Link: 
https://lore.kernel.org/linux-media/20220602055027.849014-1-dz...@hust.edu.cn
Fixes: d725d20e81c2 ("media: flexcop-usb: sanity checking of endpoint type")
Signed-off-by: Dongliang Mu 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/b2c2/flexcop-usb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/b2c2/flexcop-usb.c 
b/drivers/media/usb/b2c2/flexcop-usb.c
index 8f45e9156fbe..43dd3c932a85 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -515,7 +515,7 @@ static int flexcop_usb_init(struct flexcop_usb *fc_usb)
 
alt = fc_usb->uintf->cur_altsetting;
 
-   if (alt->desc.bNumEndpoints < 1)
+   if (alt->desc.bNumEndpoints < 2)
return -ENODEV;
if (!usb_endpoint_is_isoc_in(>endpoint[0].desc))
return -ENODEV;


[git:media_tree/master] media: stb0899: Simplify check

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stb0899: Simplify check
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:41 2024 +0100

chip_id is an unsigned number, it can never be < 0

Fixes cocci check:
drivers/media/dvb-frontends/stb0899_drv.c:1280:8-15: WARNING: Unsigned 
expression compared with zero: chip_id > 0

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-2-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/stb0899_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/dvb-frontends/stb0899_drv.c 
b/drivers/media/dvb-frontends/stb0899_drv.c
index 2f4d8fb400cd..35634f9a8ab5 100644
--- a/drivers/media/dvb-frontends/stb0899_drv.c
+++ b/drivers/media/dvb-frontends/stb0899_drv.c
@@ -1277,7 +1277,7 @@ static int stb0899_get_dev_id(struct stb0899_state *state)
dprintk(state->verbose, FE_ERROR, 1, "Demodulator Core ID=[%s], 
Version=[%d]", (char *) _str, demod_ver);
CONVERT32(STB0899_READ_S2REG(STB0899_S2FEC, FEC_CORE_ID_REG), (char 
*)_str);
fec_ver = STB0899_READ_S2REG(STB0899_S2FEC, FEC_VER_ID_REG);
-   if (! (chip_id > 0)) {
+   if (!chip_id) {
dprintk(state->verbose, FE_ERROR, 1, "couldn't find a STB 
0899");
 
return -ENODEV;


[git:media_tree/master] media: stm32-dcmipp: Remove redundant printk

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stm32-dcmipp: Remove redundant printk
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:45 2024 +0100

platform_get_irq() already prints an error message.

Also platform_get_irq() can never return 0, so lets fix the condition
now that we are at it.

Found by cocci:
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c:444:3-10: line 444 
is redundant because platform_get_irq() already prints an error

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-6-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c 
b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
index bce821eb71ce..4acc3b90d03a 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
@@ -439,11 +439,8 @@ static int dcmipp_probe(struct platform_device *pdev)
 "Could not get reset control\n");
 
irq = platform_get_irq(pdev, 0);
-   if (irq <= 0) {
-   if (irq != -EPROBE_DEFER)
-   dev_err(>dev, "Could not get irq\n");
-   return irq ? irq : -ENXIO;
-   }
+   if (irq < 0)
+   return irq;
 
dcmipp->regs = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(dcmipp->regs)) {


[git:media_tree/master] media: go7007: Use min and max macros

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: go7007: Use min and max macros
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:44 2024 +0100

Replace ternary inline selection of f1 and f2 min max values with min()
and max() helper functions for the sake of readability and to make
coccinelle happier

drivers/media/usb/go7007/go7007-fw.c:1292:14-15: WARNING opportunity for max()
drivers/media/usb/go7007/go7007-fw.c:1293:14-15: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-5-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/go7007/go7007-fw.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/usb/go7007/go7007-fw.c 
b/drivers/media/usb/go7007/go7007-fw.c
index 018019ba47d4..86ce593e0c54 100644
--- a/drivers/media/usb/go7007/go7007-fw.c
+++ b/drivers/media/usb/go7007/go7007-fw.c
@@ -1289,8 +1289,8 @@ static int avsync_to_package(struct go7007 *go, __le16 
*code, int space)
0xbf99, (u16)((-adjratio) >> 16),
0xbf92, 0,
0xbf93, 0,
-   0xbff4, f1 > f2 ? f1 : f2,
-   0xbff5, f1 < f2 ? f1 : f2,
+   0xbff4, max(f1, f2),
+   0xbff5, min(f1, f2),
0xbff6, f1 < f2 ? ratio : ratio + 1,
0xbff7, f1 > f2 ? ratio : ratio + 1,
0xbff8, 0,


[git:media_tree/master] media: dvb-frontends: tda18271c2dd: Remove casting during div

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: tda18271c2dd: Remove casting during div
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:47 2024 +0100

do_div() divides 64 bits by 32. We were adding a casting to the divider
to 64 bits, for a number that fits perfectly in 32 bits. Remove it.

Found by cocci:
drivers/media/dvb-frontends/tda18271c2dd.c:355:1-7: WARNING: do_div() does a 
64-by-32 division, please consider using div64_u64 instead.
drivers/media/dvb-frontends/tda18271c2dd.c:331:1-7: WARNING: do_div() does a 
64-by-32 division, please consider using div64_u64 instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-8-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/tda18271c2dd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c 
b/drivers/media/dvb-frontends/tda18271c2dd.c
index a34834487943..fd928787207e 100644
--- a/drivers/media/dvb-frontends/tda18271c2dd.c
+++ b/drivers/media/dvb-frontends/tda18271c2dd.c
@@ -328,7 +328,7 @@ static int CalcMainPLL(struct tda_state *state, u32 freq)
 
OscFreq = (u64) freq * (u64) Div;
OscFreq *= (u64) 16384;
-   do_div(OscFreq, (u64)1600);
+   do_div(OscFreq, 1600);
MainDiv = OscFreq;
 
state->m_Regs[MPD] = PostDiv & 0x77;
@@ -352,7 +352,7 @@ static int CalcCalPLL(struct tda_state *state, u32 freq)
OscFreq = (u64)freq * (u64)Div;
/* CalDiv = u32( OscFreq * 16384 / 1600 ); */
OscFreq *= (u64)16384;
-   do_div(OscFreq, (u64)1600);
+   do_div(OscFreq, 1600);
CalDiv = OscFreq;
 
state->m_Regs[CPD] = PostDiv;


[git:media_tree/master] media: uvcvideo: Use max() macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: uvcvideo: Use max() macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:43 2024 +0100

It makes the code slightly more clear and makes cocci incredibly happy:

drivers/media/usb/uvc/uvc_ctrl.c:839:22-23: WARNING opportunity for max()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-4-3c4865f5a...@chromium.org
Reviewed-by: Sergey Senozhatsky 
Reviewed-by: Kieran Bingham 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/uvc/uvc_ctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index e59a463c2761..f8ae14b8b426 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -836,7 +836,7 @@ static s32 uvc_get_le_value(struct uvc_control_mapping 
*mapping,
while (1) {
u8 byte = *data & mask;
value |= offset > 0 ? (byte >> offset) : (byte << (-offset));
-   bits -= 8 - (offset > 0 ? offset : 0);
+   bits -= 8 - max(offset, 0);
if (bits <= 0)
break;
 


[git:media_tree/master] media: staging: media: tegra-video: Use swap macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: media: tegra-video: Use swap macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:49 2024 +0100

Makes the code simpler and cocci happier:

drivers/staging/media/tegra-video/tegra20.c:324:44-45: WARNING opportunity for 
swap()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-10-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Reviewed-by: Luca Ceresoli 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/tegra-video/tegra20.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

---

diff --git a/drivers/staging/media/tegra-video/tegra20.c 
b/drivers/staging/media/tegra-video/tegra20.c
index 630e2ff987a3..7b8f8f810b35 100644
--- a/drivers/staging/media/tegra-video/tegra20.c
+++ b/drivers/staging/media/tegra-video/tegra20.c
@@ -317,13 +317,8 @@ static void tegra20_channel_queue_setup(struct 
tegra_vi_channel *chan)
chan->addr_offset_v = chan->addr_offset_u + stride * height / 4;
 
/* For YVU420, we swap the locations of the U and V planes. */
-   if (chan->format.pixelformat == V4L2_PIX_FMT_YVU420) {
-   unsigned long temp;
-
-   temp = chan->addr_offset_u;
-   chan->addr_offset_u = chan->addr_offset_v;
-   chan->addr_offset_v = temp;
-   }
+   if (chan->format.pixelformat == V4L2_PIX_FMT_YVU420)
+   swap(chan->addr_offset_u, chan->addr_offset_v);
 
chan->start_offset_u = chan->addr_offset_u;
chan->start_offset_v = chan->addr_offset_v;


[git:media_tree/master] media: staging: sun6i-isp: Remove redundant printk

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: sun6i-isp: Remove redundant printk
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:46 2024 +0100

platform_get_irq() already prints an error for us.

Found by cocci:
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c:389:2-9: line 389 is 
redundant because platform_get_irq() already prints an error

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-7-3c4865f5a...@chromium.org
Acked-by: Jernej Skrabec 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c 
b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
index 5c0a45394cba..58f8ae92320d 100644
--- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
+++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
@@ -386,8 +386,7 @@ static int sun6i_isp_resources_setup(struct 
sun6i_isp_device *isp_dev,
 
irq = platform_get_irq(platform_dev, 0);
if (irq < 0) {
-   dev_err(dev, "failed to get interrupt\n");
-   ret = -ENXIO;
+   ret = irq;
goto error_clock_rate_exclusive;
}
 


[git:media_tree/master] media: netup_unidvb: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: netup_unidvb: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:54 2024 +0100

Simplify the code.

Found by cocci:
drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c:138:26-27: WARNING 
opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-15-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c 
b/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
index 46676f2c89c7..1c885d620b75 100644
--- a/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
+++ b/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
@@ -135,7 +135,7 @@ static void netup_i2c_fifo_tx(struct netup_i2c *i2c)
(readw(>regs->tx_fifo.stat_ctrl) & 0x3f);
u32 msg_length = i2c->msg->len - i2c->xmit_size;
 
-   msg_length = (msg_length < fifo_space ? msg_length : fifo_space);
+   msg_length = min(msg_length, fifo_space);
while (msg_length--) {
data = i2c->msg->buf[i2c->xmit_size++];
writeb(data, >regs->tx_fifo.data8);


[git:media_tree/master] media: flexcop-usb: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: flexcop-usb: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:56 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/b2c2/flexcop-usb.c:201:8-9: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-17-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/b2c2/flexcop-usb.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/b2c2/flexcop-usb.c 
b/drivers/media/usb/b2c2/flexcop-usb.c
index 43dd3c932a85..90f1aea99dac 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -197,10 +197,7 @@ static int flexcop_usb_memory_req(struct flexcop_usb 
*fc_usb,
return -EINVAL;
}
for (i = 0; i < len;) {
-   pagechunk =
-   wMax < bytes_left_to_read_on_page(addr, len) ?
-   wMax :
-   bytes_left_to_read_on_page(addr, len);
+   pagechunk = min(wMax, bytes_left_to_read_on_page(addr, len));
deb_info("%x\n",
(addr & V8_MEMORY_PAGE_MASK) |
(V8_MEMORY_EXTENDED*extended));


[git:media_tree/master] media: gspca: cpia1: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: gspca: cpia1: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:57 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/gspca/cpia1.c:607:30-31: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-18-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/gspca/cpia1.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/gspca/cpia1.c b/drivers/media/usb/gspca/cpia1.c
index 5f5fa851ca64..14aaf36cde6e 100644
--- a/drivers/media/usb/gspca/cpia1.c
+++ b/drivers/media/usb/gspca/cpia1.c
@@ -604,10 +604,8 @@ static int find_over_exposure(int brightness)
MaxAllowableOverExposure = FLICKER_MAX_EXPOSURE - brightness -
   FLICKER_BRIGHTNESS_CONSTANT;
 
-   if (MaxAllowableOverExposure < FLICKER_ALLOWABLE_OVER_EXPOSURE)
-   OverExposure = MaxAllowableOverExposure;
-   else
-   OverExposure = FLICKER_ALLOWABLE_OVER_EXPOSURE;
+   OverExposure = min(MaxAllowableOverExposure,
+  FLICKER_ALLOWABLE_OVER_EXPOSURE);
 
return OverExposure;
 }


[git:media_tree/master] media: au0828: Use umin macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: au0828: Use umin macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:55 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/au0828/au0828-video.c:605:11-12: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-16-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/au0828/au0828-video.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/au0828/au0828-video.c 
b/drivers/media/usb/au0828/au0828-video.c
index fd9fc43d47e0..2ec49ea479d5 100644
--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -602,10 +602,7 @@ static inline int au0828_isoc_copy(struct au0828_dev *dev, 
struct urb *urb)
vbi_field_size = dev->vbi_width * dev->vbi_height * 2;
if (dev->vbi_read < vbi_field_size) {
remain  = vbi_field_size - dev->vbi_read;
-   if (len < remain)
-   lencopy = len;
-   else
-   lencopy = remain;
+   lencopy = umin(len, remain);
 
if (vbi_buf != NULL)
au0828_copy_vbi(dev, vbi_dma_q, vbi_buf, p,


[git:media_tree/master] media: stk1160: Use min macro

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stk1160: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:58 2024 +0100

Instead of a custom min() implementation, use the real macro.

Mitigates the following cocci WARNINGs:
drivers/media/usb/stk1160/stk1160-video.c:133:12-13: WARNING opportunity for 
min()
drivers/media/usb/stk1160/stk1160-video.c:176:13-14: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-19-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/stk1160/stk1160-video.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

---

diff --git a/drivers/media/usb/stk1160/stk1160-video.c 
b/drivers/media/usb/stk1160/stk1160-video.c
index e79c45db60ab..9cbd957ecc90 100644
--- a/drivers/media/usb/stk1160/stk1160-video.c
+++ b/drivers/media/usb/stk1160/stk1160-video.c
@@ -130,10 +130,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int 
len)
dst += linesdone * bytesperline * 2 + lineoff;
 
/* Copy the remaining of current line */
-   if (remain < (bytesperline - lineoff))
-   lencopy = remain;
-   else
-   lencopy = bytesperline - lineoff;
+   lencopy = min(remain, bytesperline - lineoff);
 
/*
 * Check if we have enough space left in the buffer.
@@ -178,10 +175,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int 
len)
src += lencopy;
 
/* Copy one line at a time */
-   if (remain < bytesperline)
-   lencopy = remain;
-   else
-   lencopy = bytesperline;
+   lencopy = min(remain, bytesperline);
 
/*
 * Check if we have enough space left in the buffer.


[git:media_tree/master] media: tegra-vde: Refactor timeout handling

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: tegra-vde: Refactor timeout handling
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:59 2024 +0100

Reorder the branches a bit, so cocci stops complaining about the code.

drivers/media/platform/nvidia/tegra-vde/h264.c:645:20-21: WARNING opportunity 
for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-20-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/nvidia/tegra-vde/h264.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/platform/nvidia/tegra-vde/h264.c 
b/drivers/media/platform/nvidia/tegra-vde/h264.c
index 204e474d57f7..cfea5572a1b8 100644
--- a/drivers/media/platform/nvidia/tegra-vde/h264.c
+++ b/drivers/media/platform/nvidia/tegra-vde/h264.c
@@ -633,7 +633,9 @@ static int tegra_vde_decode_end(struct tegra_vde *vde)
 
timeout = wait_for_completion_interruptible_timeout(
>decode_completion, msecs_to_jiffies(1000));
-   if (timeout == 0) {
+   if (timeout < 0) {
+   ret = timeout;
+   } else if (timeout == 0) {
bsev_ptr = tegra_vde_readl(vde, vde->bsev, 0x10);
macroblocks_nb = tegra_vde_readl(vde, vde->sxe, 0xC8) & 0x1FFF;
read_bytes = bsev_ptr ? bsev_ptr - vde->bitstream_data_addr : 0;
@@ -642,8 +644,6 @@ static int tegra_vde_decode_end(struct tegra_vde *vde)
read_bytes, macroblocks_nb);
 
ret = -EIO;
-   } else if (timeout < 0) {
-   ret = timeout;
} else {
ret = 0;
}


[git:media_tree/master] media: i2c: st-mipid02: Use the correct div function

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: i2c: st-mipid02: Use the correct div function
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:00 2024 +0100

link_freq does not fit in 32 bits.

Found by cocci:
drivers/media/i2c/st-mipid02.c:329:1-7: WARNING: do_div() does a 64-by-32 
division, please consider using div64_s64 instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-21-3c4865f5a...@chromium.org
Reviewed-by: Benjamin Mugnier 
Reviewed-by: Sakari Ailus 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/i2c/st-mipid02.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
index f250640729ca..b947a55281f0 100644
--- a/drivers/media/i2c/st-mipid02.c
+++ b/drivers/media/i2c/st-mipid02.c
@@ -326,7 +326,7 @@ static int mipid02_configure_from_rx_speed(struct 
mipid02_dev *bridge,
}
 
dev_dbg(>dev, "detect link_freq = %lld Hz", link_freq);
-   do_div(ui_4, link_freq);
+   ui_4 = div64_u64(ui_4, link_freq);
bridge->r.clk_lane_reg1 |= ui_4 << 2;
 
return 0;


[git:media_tree/master] media: tc358746: Use the correct div_ function

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: tc358746: Use the correct div_ function
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:01 2024 +0100

fin does not fit in 32 bits in some arches.

Found by cocci:
drivers/media/i2c/tc358746.c:847:2-8: WARNING: do_div() does a 64-by-32 
division, please consider using div64_ul instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-22-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/i2c/tc358746.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/media/i2c/tc358746.c b/drivers/media/i2c/tc358746.c
index d676adc4401b..edf79107adc5 100644
--- a/drivers/media/i2c/tc358746.c
+++ b/drivers/media/i2c/tc358746.c
@@ -844,8 +844,7 @@ static unsigned long tc358746_find_pll_settings(struct 
tc358746 *tc358746,
continue;
 
tmp = fout * postdiv;
-   do_div(tmp, fin);
-   mul = tmp;
+   mul = div64_ul(tmp, fin);
if (mul > 511)
continue;
 


[git:media_tree/master] media: dvb-frontends: tda10048: Fix integer overflow

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: tda10048: Fix integer overflow
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:04 2024 +0100

state->xtal_hz can be up to 16M, so it can overflow a 32 bit integer
when multiplied by pll_mfactor.

Create a new 64 bit variable to hold the calculations.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-25-3c4865f5a...@chromium.org
Reported-by: Dan Carpenter 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/tda10048.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/tda10048.c 
b/drivers/media/dvb-frontends/tda10048.c
index 5d5e4e9e4422..3e725cdcc66b 100644
--- a/drivers/media/dvb-frontends/tda10048.c
+++ b/drivers/media/dvb-frontends/tda10048.c
@@ -410,6 +410,7 @@ static int tda10048_set_if(struct dvb_frontend *fe, u32 bw)
struct tda10048_config *config = >config;
int i;
u32 if_freq_khz;
+   u64 sample_freq;
 
dprintk(1, "%s(bw = %d)\n", __func__, bw);
 
@@ -451,9 +452,11 @@ static int tda10048_set_if(struct dvb_frontend *fe, u32 bw)
dprintk(1, "- pll_pfactor = %d\n", state->pll_pfactor);
 
/* Calculate the sample frequency */
-   state->sample_freq = state->xtal_hz * (state->pll_mfactor + 45);
-   state->sample_freq /= (state->pll_nfactor + 1);
-   state->sample_freq /= (state->pll_pfactor + 4);
+   sample_freq = state->xtal_hz;
+   sample_freq *= state->pll_mfactor + 45;
+   do_div(sample_freq, state->pll_nfactor + 1);
+   do_div(sample_freq, state->pll_pfactor + 4);
+   state->sample_freq = sample_freq;
dprintk(1, "- sample_freq = %d\n", state->sample_freq);
 
/* Update the I/F */


[git:media_tree/master] media: intel/ipu6: Don't re-allocate memory for firmware

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: Don't re-allocate memory for firmware
Author:  Sakari Ailus 
Date:Thu May 2 16:49:50 2024 +0100

The ipu6 driver allocated vmalloc memory for the firmware if
request_firmware() somehow managed not to use vmalloc to allocate it.

Still how the memory is allocated by request_firmware() is not specified
in its API, so be prepared for kmalloc-allocated firmware, too. Instead of
allocating new vmalloc-backed buffer for the firmware, obtain the pages
from virtual addresses instead.

Link: 
https://lore.kernel.org/linux-media/20240502154950.549015-1-sakari.ai...@linux.intel.com
Reported-by: Stephen Rothwell 
Closes: https://lore.kernel.org/all/20240501102236.3b258...@canb.auug.org.au/
Fixes: 25fedc021985 ("media: intel/ipu6: add Intel IPU6 PCI device driver")
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6-buttress.c |  7 -
 drivers/media/pci/intel/ipu6/ipu6.c  | 41 +---
 2 files changed, 7 insertions(+), 41 deletions(-)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6-buttress.c 
b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
index dbcf1aa87872..23c537e7ce1e 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-buttress.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
@@ -552,12 +552,16 @@ int ipu6_buttress_reset_authentication(struct ipu6_device 
*isp)
 int ipu6_buttress_map_fw_image(struct ipu6_bus_device *sys,
   const struct firmware *fw, struct sg_table *sgt)
 {
+   bool is_vmalloc = is_vmalloc_addr(fw->data);
struct page **pages;
const void *addr;
unsigned long n_pages;
unsigned int i;
int ret;
 
+   if (!is_vmalloc && !virt_addr_valid(fw->data))
+   return -EDOM;
+
n_pages = PHYS_PFN(PAGE_ALIGN(fw->size));
 
pages = kmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
@@ -566,7 +570,8 @@ int ipu6_buttress_map_fw_image(struct ipu6_bus_device *sys,
 
addr = fw->data;
for (i = 0; i < n_pages; i++) {
-   struct page *p = vmalloc_to_page(addr);
+   struct page *p = is_vmalloc ?
+   vmalloc_to_page(addr) : virt_to_page(addr);
 
if (!p) {
ret = -ENOMEM;
diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index 7bcd9c5a381a..2cf04251c9e7 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -503,45 +503,6 @@ static void ipu6_configure_vc_mechanism(struct ipu6_device 
*isp)
writel(val, isp->base + BUTTRESS_REG_BTRS_CTRL);
 }
 
-static int request_cpd_fw(const struct firmware **firmware_p, const char *name,
- struct device *device)
-{
-   const struct firmware *fw;
-   struct firmware *dst;
-   int ret = 0;
-
-   ret = request_firmware(, name, device);
-   if (ret)
-   return ret;
-
-   if (is_vmalloc_addr(fw->data)) {
-   *firmware_p = fw;
-   return 0;
-   }
-
-   dst = kzalloc(sizeof(*dst), GFP_KERNEL);
-   if (!dst) {
-   ret = -ENOMEM;
-   goto release_firmware;
-   }
-
-   dst->size = fw->size;
-   dst->data = vmalloc(fw->size);
-   if (!dst->data) {
-   kfree(dst);
-   ret = -ENOMEM;
-   goto release_firmware;
-   }
-
-   memcpy((void *)dst->data, fw->data, fw->size);
-   *firmware_p = dst;
-
-release_firmware:
-   release_firmware(fw);
-
-   return ret;
-}
-
 static int ipu6_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
struct ipu6_buttress_ctrl *isys_ctrl = NULL, *psys_ctrl = NULL;
@@ -627,7 +588,7 @@ static int ipu6_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
if (ret)
return ret;
 
-   ret = request_cpd_fw(>cpd_fw, isp->cpd_fw_name, dev);
+   ret = request_firmware(>cpd_fw, isp->cpd_fw_name, dev);
if (ret) {
dev_err_probe(>pdev->dev, ret,
  "Requesting signed firmware %s failed\n",


[git:media_tree/master] media: intel/ipu6: explicitly include vmalloc.h

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: explicitly include vmalloc.h
Author:  Stephen Rothwell 
Date:Tue May 7 14:35:28 2024 +0200

linux/vmalloc.h needs to be included explicitly nowadays. Do it.

Link: 
https://lore.kernel.org/linux-media/20240507123528.932421-1-sakari.ai...@linux.intel.com
Fixes: 9163d83573e4 ("media: intel/ipu6: add IPU6 DMA mapping API and MMU 
table")
Signed-off-by: Stephen Rothwell 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6-mmu.c | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6-mmu.c 
b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
index 98a4bf9ca267..c3a20507d6db 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-mmu.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "ipu6.h"
 #include "ipu6-dma.h"


[git:media_tree/master] media: media: intel/ipu6: Fix spelling mistake "remappinp" -> "remapping"

2024-05-16 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: media: intel/ipu6: Fix spelling mistake "remappinp" -> 
"remapping"
Author:  Colin Ian King 
Date:Wed May 8 10:17:12 2024 +0200

There is a spelling mistake in a dev_err_probe message. Fix it.

Link: 
https://lore.kernel.org/linux-media/20240508081712.2868257-1-colin.i.k...@gmail.com
Signed-off-by: Colin Ian King 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index 2cf04251c9e7..d2bebd208461 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -530,7 +530,7 @@ static int ipu6_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
 
ret = pcim_iomap_regions(pdev, 1 << IPU6_PCI_BAR, pci_name(pdev));
if (ret)
-   return dev_err_probe(dev, ret, "Failed to I/O mem remappinp\n");
+   return dev_err_probe(dev, ret, "Failed to I/O mem remapping\n");
 
isp->base = pcim_iomap_table(pdev)[IPU6_PCI_BAR];
pci_set_drvdata(pdev, isp);


Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 13:39:17 +0300
Dmitry Baryshkov  escreveu:

> On Fri, 10 May 2024 at 13:09, Jani Nikula  wrote:
> >
> > On Fri, 10 May 2024, Mauro Carvalho Chehab  wrote:  
> > > Em Fri, 10 May 2024 11:08:38 +0300
> > > Jani Nikula  escreveu:
> > >  
> > >> On Thu, 09 May 2024, Dmitry Baryshkov  
> > >> wrote:  
> > >> > The drm/msm driver had adopted using Python3 script to generate 
> > >> > register
> > >> > header files instead of shipping pre-generated header files. Document
> > >> > the minimal Python version supported by the script.
> > >> >
> > >> > Signed-off-by: Dmitry Baryshkov 
> > >> > ---
> > >> >  Documentation/process/changes.rst | 1 +
> > >> >  1 file changed, 1 insertion(+)
> > >> >
> > >> > diff --git a/Documentation/process/changes.rst 
> > >> > b/Documentation/process/changes.rst
> > >> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > >> > --- a/Documentation/process/changes.rst
> > >> > +++ b/Documentation/process/changes.rst
> > >> > @@ -63,6 +63,7 @@ cpio   any  cpio 
> > >> > --version
> > >> >  GNU tar1.28 tar --version
> > >> >  gtags (optional)   6.6.5gtags --version
> > >> >  mkimage (optional) 2017.01  mkimage --version
> > >> > +Python (optional)  3.5.xpython3 --version  
> > >>
> > >> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> > >> using anything older than the oldest supported version of Python,
> > >> i.e. 3.8 at this time?  
> > >
> > > What's the point of breaking compilation with on older distros?
> > > The idea of minimal versions here is to specify the absolute minimum
> > > version that it is required for the build to happen. If 3.5 is
> > > the minimal one, then be it.  
> >
> > AFAICT 3.5 was an arbitrary rather than a deliberate choice. We should
> > at least be aware *why* we'd be sticking to old versions.  
> 
> From my side, the 3.5 was chosen basing on the previous feedback from
> Jon Hunter: 
> https://lore.kernel.org/dri-devel/20240412165407.42163-1-jonath...@nvidia.com/

Patch there seems small/simple enough if it is all it takes for 3.5.

Yet, it would be nice to hear from Jon Hunter about the rationale
for 3.5 support (if any).

> > Minimum versions here also means sticking to features available in said
> > versions, for Python just as well as for GCC or any other tool. That's
> > not zero cost.
> >
> > I guess there are two angles here too. The absolute minimum version
> > currently required, and the, uh, maximum the minimum version can be
> > safely bumped to. Say, you want to use a feature not available in the
> > current minimum, how far up can you bump the version to?
> >
> > Could we define and document the criteria (e.g. based on distros as you
> > suggest below) so we don't have to repeat the discussion?

Agreed. While we should not bump version randomly, defining a
criteria about when we should update the requirement sounds a great idea.

For me, the criteria is:

- the minimal version shall be at least the minimal one required for the
  Kernel to build at the most used LTS distros that are not EOL, e. g.: 
  Debian, openSUSE/SUSE, CentOS/RHEL and Ubuntu LTS[1].

[1] In practice, Ubuntu LTS usually has a python version newer than
Debian LTS, and CentOS versions are identical to RHEL ones, so
I guess checking for Debian, openSUSE, SUSE and RHEL should be
enough.

Regards,
Mauro



Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 13:39:17 +0300
Dmitry Baryshkov  escreveu:

> On Fri, 10 May 2024 at 13:09, Jani Nikula  wrote:
> >
> > On Fri, 10 May 2024, Mauro Carvalho Chehab  wrote:  
> > > Em Fri, 10 May 2024 11:08:38 +0300
> > > Jani Nikula  escreveu:
> > >  
> > >> On Thu, 09 May 2024, Dmitry Baryshkov  
> > >> wrote:  
> > >> > The drm/msm driver had adopted using Python3 script to generate 
> > >> > register
> > >> > header files instead of shipping pre-generated header files. Document
> > >> > the minimal Python version supported by the script.
> > >> >
> > >> > Signed-off-by: Dmitry Baryshkov 
> > >> > ---
> > >> >  Documentation/process/changes.rst | 1 +
> > >> >  1 file changed, 1 insertion(+)
> > >> >
> > >> > diff --git a/Documentation/process/changes.rst 
> > >> > b/Documentation/process/changes.rst
> > >> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > >> > --- a/Documentation/process/changes.rst
> > >> > +++ b/Documentation/process/changes.rst
> > >> > @@ -63,6 +63,7 @@ cpio   any  cpio 
> > >> > --version
> > >> >  GNU tar1.28 tar --version
> > >> >  gtags (optional)   6.6.5gtags --version
> > >> >  mkimage (optional) 2017.01  mkimage --version
> > >> > +Python (optional)  3.5.xpython3 --version  
> > >>
> > >> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> > >> using anything older than the oldest supported version of Python,
> > >> i.e. 3.8 at this time?  
> > >
> > > What's the point of breaking compilation with on older distros?
> > > The idea of minimal versions here is to specify the absolute minimum
> > > version that it is required for the build to happen. If 3.5 is
> > > the minimal one, then be it.  
> >
> > AFAICT 3.5 was an arbitrary rather than a deliberate choice. We should
> > at least be aware *why* we'd be sticking to old versions.  
> 
> From my side, the 3.5 was chosen basing on the previous feedback from
> Jon Hunter: 
> https://lore.kernel.org/dri-devel/20240412165407.42163-1-jonath...@nvidia.com/

Patch there seems small/simple enough if it is all it takes for 3.5.

Yet, it would be nice to hear from Jon Hunter about the rationale
for 3.5 support (if any).

> > Minimum versions here also means sticking to features available in said
> > versions, for Python just as well as for GCC or any other tool. That's
> > not zero cost.
> >
> > I guess there are two angles here too. The absolute minimum version
> > currently required, and the, uh, maximum the minimum version can be
> > safely bumped to. Say, you want to use a feature not available in the
> > current minimum, how far up can you bump the version to?
> >
> > Could we define and document the criteria (e.g. based on distros as you
> > suggest below) so we don't have to repeat the discussion?

Agreed. While we should not bump version randomly, defining a
criteria about when we should update the requirement sounds a great idea.

For me, the criteria is:

- the minimal version shall be at least the minimal one required for the
  Kernel to build at the most used LTS distros that are not EOL, e. g.: 
  Debian, openSUSE/SUSE, CentOS/RHEL and Ubuntu LTS[1].

[1] In practice, Ubuntu LTS usually has a python version newer than
Debian LTS, and CentOS versions are identical to RHEL ones, so
I guess checking for Debian, openSUSE, SUSE and RHEL should be
enough.

Regards,
Mauro


Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 13:39:17 +0300
Dmitry Baryshkov  escreveu:

> On Fri, 10 May 2024 at 13:09, Jani Nikula  wrote:
> >
> > On Fri, 10 May 2024, Mauro Carvalho Chehab  wrote:  
> > > Em Fri, 10 May 2024 11:08:38 +0300
> > > Jani Nikula  escreveu:
> > >  
> > >> On Thu, 09 May 2024, Dmitry Baryshkov  
> > >> wrote:  
> > >> > The drm/msm driver had adopted using Python3 script to generate 
> > >> > register
> > >> > header files instead of shipping pre-generated header files. Document
> > >> > the minimal Python version supported by the script.
> > >> >
> > >> > Signed-off-by: Dmitry Baryshkov 
> > >> > ---
> > >> >  Documentation/process/changes.rst | 1 +
> > >> >  1 file changed, 1 insertion(+)
> > >> >
> > >> > diff --git a/Documentation/process/changes.rst 
> > >> > b/Documentation/process/changes.rst
> > >> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > >> > --- a/Documentation/process/changes.rst
> > >> > +++ b/Documentation/process/changes.rst
> > >> > @@ -63,6 +63,7 @@ cpio   any  cpio 
> > >> > --version
> > >> >  GNU tar1.28 tar --version
> > >> >  gtags (optional)   6.6.5gtags --version
> > >> >  mkimage (optional) 2017.01  mkimage --version
> > >> > +Python (optional)  3.5.xpython3 --version  
> > >>
> > >> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> > >> using anything older than the oldest supported version of Python,
> > >> i.e. 3.8 at this time?  
> > >
> > > What's the point of breaking compilation with on older distros?
> > > The idea of minimal versions here is to specify the absolute minimum
> > > version that it is required for the build to happen. If 3.5 is
> > > the minimal one, then be it.  
> >
> > AFAICT 3.5 was an arbitrary rather than a deliberate choice. We should
> > at least be aware *why* we'd be sticking to old versions.  
> 
> From my side, the 3.5 was chosen basing on the previous feedback from
> Jon Hunter: 
> https://lore.kernel.org/dri-devel/20240412165407.42163-1-jonath...@nvidia.com/
> 
> After checking distros that I can easily use, I don't think I will be
> able to test the script with Python versions earlier than 3.7.3
> (Debian oldoldstable).
> I can try setting up Debian stretch (old-old-old-stable), which has
> Python 3.5 and so cover the needs of Jon.

Fedora 40 supports version 3.6 and above (plus 2.7):

https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html

You could do something similar with Ubuntu/Debian:

https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get

Once an old version is installed, you can enable it with:

$ python3.6 -m venv v3.6  # create the environment
$ . v3.6/bin/activate

Then, if needed, install whatever dependencies are needed with pip,
inside the venv (for instance if you want to also test Sphinx, you
can install it there via pip).

I guess it should be possible to use a similar venv procedure with
older versions, but you may need to compile it from the sources if
you don't have binaries available for your distro.

Regards,
Mauro


Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 13:39:17 +0300
Dmitry Baryshkov  escreveu:

> On Fri, 10 May 2024 at 13:09, Jani Nikula  wrote:
> >
> > On Fri, 10 May 2024, Mauro Carvalho Chehab  wrote:  
> > > Em Fri, 10 May 2024 11:08:38 +0300
> > > Jani Nikula  escreveu:
> > >  
> > >> On Thu, 09 May 2024, Dmitry Baryshkov  
> > >> wrote:  
> > >> > The drm/msm driver had adopted using Python3 script to generate 
> > >> > register
> > >> > header files instead of shipping pre-generated header files. Document
> > >> > the minimal Python version supported by the script.
> > >> >
> > >> > Signed-off-by: Dmitry Baryshkov 
> > >> > ---
> > >> >  Documentation/process/changes.rst | 1 +
> > >> >  1 file changed, 1 insertion(+)
> > >> >
> > >> > diff --git a/Documentation/process/changes.rst 
> > >> > b/Documentation/process/changes.rst
> > >> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > >> > --- a/Documentation/process/changes.rst
> > >> > +++ b/Documentation/process/changes.rst
> > >> > @@ -63,6 +63,7 @@ cpio   any  cpio 
> > >> > --version
> > >> >  GNU tar1.28 tar --version
> > >> >  gtags (optional)   6.6.5gtags --version
> > >> >  mkimage (optional) 2017.01  mkimage --version
> > >> > +Python (optional)  3.5.xpython3 --version  
> > >>
> > >> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> > >> using anything older than the oldest supported version of Python,
> > >> i.e. 3.8 at this time?  
> > >
> > > What's the point of breaking compilation with on older distros?
> > > The idea of minimal versions here is to specify the absolute minimum
> > > version that it is required for the build to happen. If 3.5 is
> > > the minimal one, then be it.  
> >
> > AFAICT 3.5 was an arbitrary rather than a deliberate choice. We should
> > at least be aware *why* we'd be sticking to old versions.  
> 
> From my side, the 3.5 was chosen basing on the previous feedback from
> Jon Hunter: 
> https://lore.kernel.org/dri-devel/20240412165407.42163-1-jonath...@nvidia.com/
> 
> After checking distros that I can easily use, I don't think I will be
> able to test the script with Python versions earlier than 3.7.3
> (Debian oldoldstable).
> I can try setting up Debian stretch (old-old-old-stable), which has
> Python 3.5 and so cover the needs of Jon.

Fedora 40 supports version 3.6 and above (plus 2.7):

https://developer.fedoraproject.org/tech/languages/python/multiple-pythons.html

You could do something similar with Ubuntu/Debian:

https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get

Once an old version is installed, you can enable it with:

$ python3.6 -m venv v3.6  # create the environment
$ . v3.6/bin/activate

Then, if needed, install whatever dependencies are needed with pip,
inside the venv (for instance if you want to also test Sphinx, you
can install it there via pip).

I guess it should be possible to use a similar venv procedure with
older versions, but you may need to compile it from the sources if
you don't have binaries available for your distro.

Regards,
Mauro


Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 11:08:38 +0300
Jani Nikula  escreveu:

> On Thu, 09 May 2024, Dmitry Baryshkov  wrote:
> > The drm/msm driver had adopted using Python3 script to generate register
> > header files instead of shipping pre-generated header files. Document
> > the minimal Python version supported by the script.
> >
> > Signed-off-by: Dmitry Baryshkov 
> > ---
> >  Documentation/process/changes.rst | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/process/changes.rst 
> > b/Documentation/process/changes.rst
> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > --- a/Documentation/process/changes.rst
> > +++ b/Documentation/process/changes.rst
> > @@ -63,6 +63,7 @@ cpio   any  cpio --version
> >  GNU tar1.28 tar --version
> >  gtags (optional)   6.6.5gtags --version
> >  mkimage (optional) 2017.01  mkimage --version
> > +Python (optional)  3.5.xpython3 --version  
> 
> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> using anything older than the oldest supported version of Python,
> i.e. 3.8 at this time?

What's the point of breaking compilation with on older distros?
The idea of minimal versions here is to specify the absolute minimum
version that it is required for the build to happen. If 3.5 is
the minimal one, then be it.

-

Now, a criteria is needed to raise the minimal version. IMO, the
minimal version shall be at least the minimal one present on most
used LTS distros that are not EOL.

I would look for at least 4 such distros:

- Debian

  Looking at https://wiki.debian.org/LTS, Debian 10 EOL will be on
  June, 2024.

  Looking at:

https://distrowatch.com/table.php?distribution=debian

  Debian 10 uses python 3.7.3.

- Looking at Distrowatch for openSUSE Leap 15.5, it uses Python
  3.6.15 and has an EOL schedule for Dec, 2024.

- RHEL 8.9 uses a bigger version than those two - 3.11.5 - again
  looking at Distrowatch to check it.

- SLES 15 SP4 and above uses Python 3.11, according with:
  https://www.suse.com/c/python-3-11-stack-for-suse-linux-enterprise-15/

From the above, IMO kernel shall support building with Python 3.6 
at least until the end of this year.

Regards,
Mauro


Re: [PATCH] docs: document python version used for compilation

2024-05-10 Thread Mauro Carvalho Chehab
Em Fri, 10 May 2024 11:08:38 +0300
Jani Nikula  escreveu:

> On Thu, 09 May 2024, Dmitry Baryshkov  wrote:
> > The drm/msm driver had adopted using Python3 script to generate register
> > header files instead of shipping pre-generated header files. Document
> > the minimal Python version supported by the script.
> >
> > Signed-off-by: Dmitry Baryshkov 
> > ---
> >  Documentation/process/changes.rst | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/process/changes.rst 
> > b/Documentation/process/changes.rst
> > index 5685d7bfe4d0..8d225a9f65a2 100644
> > --- a/Documentation/process/changes.rst
> > +++ b/Documentation/process/changes.rst
> > @@ -63,6 +63,7 @@ cpio   any  cpio --version
> >  GNU tar1.28 tar --version
> >  gtags (optional)   6.6.5gtags --version
> >  mkimage (optional) 2017.01  mkimage --version
> > +Python (optional)  3.5.xpython3 --version  
> 
> Python 3.5 reached end-of-life 3½ years ago [1]. What's the point in
> using anything older than the oldest supported version of Python,
> i.e. 3.8 at this time?

What's the point of breaking compilation with on older distros?
The idea of minimal versions here is to specify the absolute minimum
version that it is required for the build to happen. If 3.5 is
the minimal one, then be it.

-

Now, a criteria is needed to raise the minimal version. IMO, the
minimal version shall be at least the minimal one present on most
used LTS distros that are not EOL.

I would look for at least 4 such distros:

- Debian

  Looking at https://wiki.debian.org/LTS, Debian 10 EOL will be on
  June, 2024.

  Looking at:

https://distrowatch.com/table.php?distribution=debian

  Debian 10 uses python 3.7.3.

- Looking at Distrowatch for openSUSE Leap 15.5, it uses Python
  3.6.15 and has an EOL schedule for Dec, 2024.

- RHEL 8.9 uses a bigger version than those two - 3.11.5 - again
  looking at Distrowatch to check it.

- SLES 15 SP4 and above uses Python 3.11, according with:
  https://www.suse.com/c/python-3-11-stack-for-suse-linux-enterprise-15/

From the above, IMO kernel shall support building with Python 3.6 
at least until the end of this year.

Regards,
Mauro



[git:media_stage/master] media: media: intel/ipu6: Fix spelling mistake "remappinp" -> "remapping"

2024-05-08 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: media: intel/ipu6: Fix spelling mistake "remappinp" -> 
"remapping"
Author:  Colin Ian King 
Date:Wed May 8 10:17:12 2024 +0200

There is a spelling mistake in a dev_err_probe message. Fix it.

Link: 
https://lore.kernel.org/linux-media/20240508081712.2868257-1-colin.i.k...@gmail.com
Signed-off-by: Colin Ian King 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index 2cf04251c9e7..d2bebd208461 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -530,7 +530,7 @@ static int ipu6_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
 
ret = pcim_iomap_regions(pdev, 1 << IPU6_PCI_BAR, pci_name(pdev));
if (ret)
-   return dev_err_probe(dev, ret, "Failed to I/O mem remappinp\n");
+   return dev_err_probe(dev, ret, "Failed to I/O mem remapping\n");
 
isp->base = pcim_iomap_table(pdev)[IPU6_PCI_BAR];
pci_set_drvdata(pdev, isp);


[git:media_stage/master] media: intel/ipu6: explicitly include vmalloc.h

2024-05-08 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: explicitly include vmalloc.h
Author:  Stephen Rothwell 
Date:Tue May 7 14:35:28 2024 +0200

linux/vmalloc.h needs to be included explicitly nowadays. Do it.

Link: 
https://lore.kernel.org/linux-media/20240507123528.932421-1-sakari.ai...@linux.intel.com
Fixes: 9163d83573e4 ("media: intel/ipu6: add IPU6 DMA mapping API and MMU 
table")
Signed-off-by: Stephen Rothwell 
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6-mmu.c | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6-mmu.c 
b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
index 98a4bf9ca267..c3a20507d6db 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-mmu.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-mmu.c
@@ -22,6 +22,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "ipu6.h"
 #include "ipu6-dma.h"


Re: [PATCH v0 04/14] media: au0828: Make I2C terminology more inclusive

2024-05-03 Thread Mauro Carvalho Chehab
Em Fri, 29 Mar 2024 17:00:28 +
Easwar Hariharan  escreveu:

> I2C v7, SMBus 3.2, and I3C specifications have replaced "master/slave"
> with more appropriate terms. Inspired by and following on to Wolfram's
> series to fix drivers/i2c/[1], fix the terminology for users of
> I2C_ALGOBIT bitbanging interface, now that the approved verbiage exists
> in the specification.
> 
> Compile tested, no functionality changes intended

Current media drivers are perfectly fine with the current terminology. 
None of them implement the above new standards.

Please drop patches for current stuff under drivers/media.

Regards,
Mauro

> 
> [1]: 
> https://lore.kernel.org/all/20240322132619.6389-1-wsa+rene...@sang-engineering.com/
> 
> Signed-off-by: Easwar Hariharan 
> ---
>  drivers/media/usb/au0828/au0828-i2c.c   | 4 ++--
>  drivers/media/usb/au0828/au0828-input.c | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/usb/au0828/au0828-i2c.c 
> b/drivers/media/usb/au0828/au0828-i2c.c
> index 749f90d73b5b..3e66d42bf134 100644
> --- a/drivers/media/usb/au0828/au0828-i2c.c
> +++ b/drivers/media/usb/au0828/au0828-i2c.c
> @@ -23,7 +23,7 @@ MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
>  #define I2C_WAIT_DELAY 25
>  #define I2C_WAIT_RETRY 1000
>  
> -static inline int i2c_slave_did_read_ack(struct i2c_adapter *i2c_adap)
> +static inline int i2c_client_did_read_ack(struct i2c_adapter *i2c_adap)
>  {
>   struct au0828_dev *dev = i2c_adap->algo_data;
>   return au0828_read(dev, AU0828_I2C_STATUS_201) &
> @@ -35,7 +35,7 @@ static int i2c_wait_read_ack(struct i2c_adapter *i2c_adap)
>   int count;
>  
>   for (count = 0; count < I2C_WAIT_RETRY; count++) {
> - if (!i2c_slave_did_read_ack(i2c_adap))
> + if (!i2c_client_did_read_ack(i2c_adap))
>   break;
>   udelay(I2C_WAIT_DELAY);
>   }
> diff --git a/drivers/media/usb/au0828/au0828-input.c 
> b/drivers/media/usb/au0828/au0828-input.c
> index 3d3368202cd0..98a57b6e02e2 100644
> --- a/drivers/media/usb/au0828/au0828-input.c
> +++ b/drivers/media/usb/au0828/au0828-input.c
> @@ -30,7 +30,7 @@ struct au0828_rc {
>   int polling;
>   struct delayed_work work;
>  
> - /* i2c slave address of external device (if used) */
> + /* i2c client address of external device (if used) */
>   u16 i2c_dev_addr;
>  
>   int  (*get_key_i2c)(struct au0828_rc *ir);


Re: [PATCH v0 04/14] media: au0828: Make I2C terminology more inclusive

2024-05-03 Thread Mauro Carvalho Chehab
Em Fri, 29 Mar 2024 17:00:28 +
Easwar Hariharan  escreveu:

> I2C v7, SMBus 3.2, and I3C specifications have replaced "master/slave"
> with more appropriate terms. Inspired by and following on to Wolfram's
> series to fix drivers/i2c/[1], fix the terminology for users of
> I2C_ALGOBIT bitbanging interface, now that the approved verbiage exists
> in the specification.
> 
> Compile tested, no functionality changes intended

Current media drivers are perfectly fine with the current terminology. 
None of them implement the above new standards.

Please drop patches for current stuff under drivers/media.

Regards,
Mauro

> 
> [1]: 
> https://lore.kernel.org/all/20240322132619.6389-1-wsa+rene...@sang-engineering.com/
> 
> Signed-off-by: Easwar Hariharan 
> ---
>  drivers/media/usb/au0828/au0828-i2c.c   | 4 ++--
>  drivers/media/usb/au0828/au0828-input.c | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/usb/au0828/au0828-i2c.c 
> b/drivers/media/usb/au0828/au0828-i2c.c
> index 749f90d73b5b..3e66d42bf134 100644
> --- a/drivers/media/usb/au0828/au0828-i2c.c
> +++ b/drivers/media/usb/au0828/au0828-i2c.c
> @@ -23,7 +23,7 @@ MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
>  #define I2C_WAIT_DELAY 25
>  #define I2C_WAIT_RETRY 1000
>  
> -static inline int i2c_slave_did_read_ack(struct i2c_adapter *i2c_adap)
> +static inline int i2c_client_did_read_ack(struct i2c_adapter *i2c_adap)
>  {
>   struct au0828_dev *dev = i2c_adap->algo_data;
>   return au0828_read(dev, AU0828_I2C_STATUS_201) &
> @@ -35,7 +35,7 @@ static int i2c_wait_read_ack(struct i2c_adapter *i2c_adap)
>   int count;
>  
>   for (count = 0; count < I2C_WAIT_RETRY; count++) {
> - if (!i2c_slave_did_read_ack(i2c_adap))
> + if (!i2c_client_did_read_ack(i2c_adap))
>   break;
>   udelay(I2C_WAIT_DELAY);
>   }
> diff --git a/drivers/media/usb/au0828/au0828-input.c 
> b/drivers/media/usb/au0828/au0828-input.c
> index 3d3368202cd0..98a57b6e02e2 100644
> --- a/drivers/media/usb/au0828/au0828-input.c
> +++ b/drivers/media/usb/au0828/au0828-input.c
> @@ -30,7 +30,7 @@ struct au0828_rc {
>   int polling;
>   struct delayed_work work;
>  
> - /* i2c slave address of external device (if used) */
> + /* i2c client address of external device (if used) */
>   u16 i2c_dev_addr;
>  
>   int  (*get_key_i2c)(struct au0828_rc *ir);


Re: [PATCH v0 04/14] media: au0828: Make I2C terminology more inclusive

2024-05-03 Thread Mauro Carvalho Chehab
Em Fri, 29 Mar 2024 17:00:28 +
Easwar Hariharan  escreveu:

> I2C v7, SMBus 3.2, and I3C specifications have replaced "master/slave"
> with more appropriate terms. Inspired by and following on to Wolfram's
> series to fix drivers/i2c/[1], fix the terminology for users of
> I2C_ALGOBIT bitbanging interface, now that the approved verbiage exists
> in the specification.
> 
> Compile tested, no functionality changes intended

Current media drivers are perfectly fine with the current terminology. 
None of them implement the above new standards.

Please drop patches for current stuff under drivers/media.

Regards,
Mauro

> 
> [1]: 
> https://lore.kernel.org/all/20240322132619.6389-1-wsa+rene...@sang-engineering.com/
> 
> Signed-off-by: Easwar Hariharan 
> ---
>  drivers/media/usb/au0828/au0828-i2c.c   | 4 ++--
>  drivers/media/usb/au0828/au0828-input.c | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/usb/au0828/au0828-i2c.c 
> b/drivers/media/usb/au0828/au0828-i2c.c
> index 749f90d73b5b..3e66d42bf134 100644
> --- a/drivers/media/usb/au0828/au0828-i2c.c
> +++ b/drivers/media/usb/au0828/au0828-i2c.c
> @@ -23,7 +23,7 @@ MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time");
>  #define I2C_WAIT_DELAY 25
>  #define I2C_WAIT_RETRY 1000
>  
> -static inline int i2c_slave_did_read_ack(struct i2c_adapter *i2c_adap)
> +static inline int i2c_client_did_read_ack(struct i2c_adapter *i2c_adap)
>  {
>   struct au0828_dev *dev = i2c_adap->algo_data;
>   return au0828_read(dev, AU0828_I2C_STATUS_201) &
> @@ -35,7 +35,7 @@ static int i2c_wait_read_ack(struct i2c_adapter *i2c_adap)
>   int count;
>  
>   for (count = 0; count < I2C_WAIT_RETRY; count++) {
> - if (!i2c_slave_did_read_ack(i2c_adap))
> + if (!i2c_client_did_read_ack(i2c_adap))
>   break;
>   udelay(I2C_WAIT_DELAY);
>   }
> diff --git a/drivers/media/usb/au0828/au0828-input.c 
> b/drivers/media/usb/au0828/au0828-input.c
> index 3d3368202cd0..98a57b6e02e2 100644
> --- a/drivers/media/usb/au0828/au0828-input.c
> +++ b/drivers/media/usb/au0828/au0828-input.c
> @@ -30,7 +30,7 @@ struct au0828_rc {
>   int polling;
>   struct delayed_work work;
>  
> - /* i2c slave address of external device (if used) */
> + /* i2c client address of external device (if used) */
>   u16 i2c_dev_addr;
>  
>   int  (*get_key_i2c)(struct au0828_rc *ir);


[git:dtv-scan-tables/master] dvb-t/at-All: add Salzburg/Gaisberg dvb-t2 transponders

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: dvb-t/at-All: add Salzburg/Gaisberg dvb-t2 transponders
Author:  Yarny 
Date:Sun Mar 24 10:39:56 2024 +

Adds a missing dvb-t2 transmitting station from Austria.

Link: 
https://lore.kernel.org/linux-media/75149976-693b-444e-b4cc-dd2dd86ea...@public-files.de
Signed-off-by: Mauro Carvalho Chehab 

 dvb-t/at-All | 64 
 1 file changed, 64 insertions(+)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=7098bdd27548eaf3e5d9485fc68575f88e362daf
diff --git a/dvb-t/at-All b/dvb-t/at-All
index b83363d105ac..ace9e36153b5 100644
--- a/dvb-t/at-All
+++ b/dvb-t/at-All
@@ -76,3 +76,67 @@
INVERSION = AUTO
STREAM_ID = 1
 
+[Gaisberg-MUXA-K32]
+   DELIVERY_SYSTEM = DVBT2
+   FREQUENCY = 56200
+   BANDWIDTH_HZ = 800
+   CODE_RATE_HP = AUTO
+   CODE_RATE_LP = AUTO
+   MODULATION = QAM/AUTO
+   TRANSMISSION_MODE = AUTO
+   GUARD_INTERVAL = AUTO
+   HIERARCHY = AUTO
+   INVERSION = AUTO
+   STREAM_ID = 1
+
+[Gaisberg-MUXB-K29]
+   DELIVERY_SYSTEM = DVBT2
+   FREQUENCY = 53800
+   BANDWIDTH_HZ = 800
+   CODE_RATE_HP = AUTO
+   CODE_RATE_LP = AUTO
+   MODULATION = QAM/AUTO
+   TRANSMISSION_MODE = AUTO
+   GUARD_INTERVAL = AUTO
+   HIERARCHY = AUTO
+   INVERSION = AUTO
+   STREAM_ID = 1
+
+[Gaisberg-MUXD-K47]
+   DELIVERY_SYSTEM = DVBT2
+   FREQUENCY = 68200
+   BANDWIDTH_HZ = 800
+   CODE_RATE_HP = AUTO
+   CODE_RATE_LP = AUTO
+   MODULATION = QAM/AUTO
+   TRANSMISSION_MODE = AUTO
+   GUARD_INTERVAL = AUTO
+   HIERARCHY = AUTO
+   INVERSION = AUTO
+   STREAM_ID = 1
+
+[Gaisberg-MUXE-K38]
+   DELIVERY_SYSTEM = DVBT2
+   FREQUENCY = 61000
+   BANDWIDTH_HZ = 800
+   CODE_RATE_HP = AUTO
+   CODE_RATE_LP = AUTO
+   MODULATION = QAM/AUTO
+   TRANSMISSION_MODE = AUTO
+   GUARD_INTERVAL = AUTO
+   HIERARCHY = AUTO
+   INVERSION = AUTO
+   STREAM_ID = 1
+
+[Gaisberg-MUXF-K42]
+   DELIVERY_SYSTEM = DVBT2
+   FREQUENCY = 64200
+   BANDWIDTH_HZ = 800
+   CODE_RATE_HP = AUTO
+   CODE_RATE_LP = AUTO
+   MODULATION = QAM/AUTO
+   TRANSMISSION_MODE = AUTO
+   GUARD_INTERVAL = AUTO
+   HIERARCHY = AUTO
+   INVERSION = AUTO
+   STREAM_ID = 1


[git:media_stage/master] media: intel/ipu6: Don't re-allocate memory for firmware

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: intel/ipu6: Don't re-allocate memory for firmware
Author:  Sakari Ailus 
Date:Thu May 2 16:49:50 2024 +0100

The ipu6 driver allocated vmalloc memory for the firmware if
request_firmware() somehow managed not to use vmalloc to allocate it.

Still how the memory is allocated by request_firmware() is not specified
in its API, so be prepared for kmalloc-allocated firmware, too. Instead of
allocating new vmalloc-backed buffer for the firmware, obtain the pages
from virtual addresses instead.

Link: 
https://lore.kernel.org/linux-media/20240502154950.549015-1-sakari.ai...@linux.intel.com
Reported-by: Stephen Rothwell 
Closes: https://lore.kernel.org/all/20240501102236.3b258...@canb.auug.org.au/
Fixes: 25fedc021985 ("media: intel/ipu6: add Intel IPU6 PCI device driver")
Signed-off-by: Sakari Ailus 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/intel/ipu6/ipu6-buttress.c |  7 -
 drivers/media/pci/intel/ipu6/ipu6.c  | 41 +---
 2 files changed, 7 insertions(+), 41 deletions(-)

---

diff --git a/drivers/media/pci/intel/ipu6/ipu6-buttress.c 
b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
index dbcf1aa87872..23c537e7ce1e 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-buttress.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-buttress.c
@@ -552,12 +552,16 @@ int ipu6_buttress_reset_authentication(struct ipu6_device 
*isp)
 int ipu6_buttress_map_fw_image(struct ipu6_bus_device *sys,
   const struct firmware *fw, struct sg_table *sgt)
 {
+   bool is_vmalloc = is_vmalloc_addr(fw->data);
struct page **pages;
const void *addr;
unsigned long n_pages;
unsigned int i;
int ret;
 
+   if (!is_vmalloc && !virt_addr_valid(fw->data))
+   return -EDOM;
+
n_pages = PHYS_PFN(PAGE_ALIGN(fw->size));
 
pages = kmalloc_array(n_pages, sizeof(*pages), GFP_KERNEL);
@@ -566,7 +570,8 @@ int ipu6_buttress_map_fw_image(struct ipu6_bus_device *sys,
 
addr = fw->data;
for (i = 0; i < n_pages; i++) {
-   struct page *p = vmalloc_to_page(addr);
+   struct page *p = is_vmalloc ?
+   vmalloc_to_page(addr) : virt_to_page(addr);
 
if (!p) {
ret = -ENOMEM;
diff --git a/drivers/media/pci/intel/ipu6/ipu6.c 
b/drivers/media/pci/intel/ipu6/ipu6.c
index 7bcd9c5a381a..2cf04251c9e7 100644
--- a/drivers/media/pci/intel/ipu6/ipu6.c
+++ b/drivers/media/pci/intel/ipu6/ipu6.c
@@ -503,45 +503,6 @@ static void ipu6_configure_vc_mechanism(struct ipu6_device 
*isp)
writel(val, isp->base + BUTTRESS_REG_BTRS_CTRL);
 }
 
-static int request_cpd_fw(const struct firmware **firmware_p, const char *name,
- struct device *device)
-{
-   const struct firmware *fw;
-   struct firmware *dst;
-   int ret = 0;
-
-   ret = request_firmware(, name, device);
-   if (ret)
-   return ret;
-
-   if (is_vmalloc_addr(fw->data)) {
-   *firmware_p = fw;
-   return 0;
-   }
-
-   dst = kzalloc(sizeof(*dst), GFP_KERNEL);
-   if (!dst) {
-   ret = -ENOMEM;
-   goto release_firmware;
-   }
-
-   dst->size = fw->size;
-   dst->data = vmalloc(fw->size);
-   if (!dst->data) {
-   kfree(dst);
-   ret = -ENOMEM;
-   goto release_firmware;
-   }
-
-   memcpy((void *)dst->data, fw->data, fw->size);
-   *firmware_p = dst;
-
-release_firmware:
-   release_firmware(fw);
-
-   return ret;
-}
-
 static int ipu6_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 {
struct ipu6_buttress_ctrl *isys_ctrl = NULL, *psys_ctrl = NULL;
@@ -627,7 +588,7 @@ static int ipu6_pci_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
if (ret)
return ret;
 
-   ret = request_cpd_fw(>cpd_fw, isp->cpd_fw_name, dev);
+   ret = request_firmware(>cpd_fw, isp->cpd_fw_name, dev);
if (ret) {
dev_err_probe(>pdev->dev, ret,
  "Requesting signed firmware %s failed\n",


[git:media_stage/master] media: stb0899: Simplify check

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stb0899: Simplify check
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:41 2024 +0100

chip_id is an unsigned number, it can never be < 0

Fixes cocci check:
drivers/media/dvb-frontends/stb0899_drv.c:1280:8-15: WARNING: Unsigned 
expression compared with zero: chip_id > 0

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-2-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/stb0899_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/dvb-frontends/stb0899_drv.c 
b/drivers/media/dvb-frontends/stb0899_drv.c
index 2f4d8fb400cd..35634f9a8ab5 100644
--- a/drivers/media/dvb-frontends/stb0899_drv.c
+++ b/drivers/media/dvb-frontends/stb0899_drv.c
@@ -1277,7 +1277,7 @@ static int stb0899_get_dev_id(struct stb0899_state *state)
dprintk(state->verbose, FE_ERROR, 1, "Demodulator Core ID=[%s], 
Version=[%d]", (char *) _str, demod_ver);
CONVERT32(STB0899_READ_S2REG(STB0899_S2FEC, FEC_CORE_ID_REG), (char 
*)_str);
fec_ver = STB0899_READ_S2REG(STB0899_S2FEC, FEC_VER_ID_REG);
-   if (! (chip_id > 0)) {
+   if (!chip_id) {
dprintk(state->verbose, FE_ERROR, 1, "couldn't find a STB 
0899");
 
return -ENODEV;


[git:media_stage/master] media: pci: mgb4: Refactor struct resources

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: pci: mgb4: Refactor struct resources
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:40 2024 +0100

The struct resource end field signifies the end address not the
relative offset from the start field i.e size == (end - start) + 1.

Amend the .end field to specify the end address not the relative size
from the offset as is currently given.

Fixes cocci check:
drivers/media/pci/mgb4/mgb4_regs.c:13:22-25: WARNING: Suspicious code. 
resource_size is maybe missing with res

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-1-3c4865f5a...@chromium.org
Reviewed-by: Martin Tůma 
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/mgb4/mgb4_core.c | 4 ++--
 drivers/media/pci/mgb4/mgb4_regs.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/pci/mgb4/mgb4_core.c 
b/drivers/media/pci/mgb4/mgb4_core.c
index 9bcf10a77fd3..60498a5abebf 100644
--- a/drivers/media/pci/mgb4/mgb4_core.c
+++ b/drivers/media/pci/mgb4/mgb4_core.c
@@ -493,13 +493,13 @@ static int mgb4_probe(struct pci_dev *pdev, const struct 
pci_device_id *id)
struct mgb4_dev *mgbdev;
struct resource video = {
.start  = 0x0,
-   .end= 0x100,
+   .end= 0xff,
.flags  = IORESOURCE_MEM,
.name   = "mgb4-video",
};
struct resource cmt = {
.start  = 0x1000,
-   .end= 0x1800,
+   .end= 0x17ff,
.flags  = IORESOURCE_MEM,
.name   = "mgb4-cmt",
};
diff --git a/drivers/media/pci/mgb4/mgb4_regs.c 
b/drivers/media/pci/mgb4/mgb4_regs.c
index 53d4e4503a74..31befd722d72 100644
--- a/drivers/media/pci/mgb4/mgb4_regs.c
+++ b/drivers/media/pci/mgb4/mgb4_regs.c
@@ -10,7 +10,7 @@
 int mgb4_regs_map(struct resource *res, struct mgb4_regs *regs)
 {
regs->mapbase = res->start;
-   regs->mapsize = res->end - res->start;
+   regs->mapsize = resource_size(res);
 
if (!request_mem_region(regs->mapbase, regs->mapsize, res->name))
return -EINVAL;


[git:media_stage/master] media: staging: media: starfive: Clean pad selection in isp_try_format()

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: media: starfive: Clean pad selection in 
isp_try_format()
Author:  Changhuang Liang 
Date:Tue Mar 12 02:45:20 2024 +

The code to select isp_dev->formats[] is overly complicated.  We can
just use the "pad" as the index.  This will making adding new pads
easier in future patches.  No functional change.

Link: 
https://lore.kernel.org/linux-media/20240312024520.11022-1-changhuang.li...@starfivetech.com
Signed-off-by: Changhuang Liang 
Reviewed-by: Dan Carpenter 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/starfive/camss/stf-isp.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

---

diff --git a/drivers/staging/media/starfive/camss/stf-isp.c 
b/drivers/staging/media/starfive/camss/stf-isp.c
index d50616ef351e..4e6e26736852 100644
--- a/drivers/staging/media/starfive/camss/stf-isp.c
+++ b/drivers/staging/media/starfive/camss/stf-isp.c
@@ -10,9 +10,6 @@
 
 #include "stf-camss.h"
 
-#define SINK_FORMATS_INDEX 0
-#define SOURCE_FORMATS_INDEX   1
-
 static int isp_set_selection(struct v4l2_subdev *sd,
 struct v4l2_subdev_state *state,
 struct v4l2_subdev_selection *sel);
@@ -94,10 +91,7 @@ static void isp_try_format(struct stf_isp_dev *isp_dev,
return;
}
 
-   if (pad == STF_ISP_PAD_SINK)
-   formats = _dev->formats[SINK_FORMATS_INDEX];
-   else if (pad == STF_ISP_PAD_SRC)
-   formats = _dev->formats[SOURCE_FORMATS_INDEX];
+   formats = _dev->formats[pad];
 
fmt->width = clamp_t(u32, fmt->width, STFCAMSS_FRAME_MIN_WIDTH,
 STFCAMSS_FRAME_MAX_WIDTH);
@@ -123,7 +117,7 @@ static int isp_enum_mbus_code(struct v4l2_subdev *sd,
if (code->index >= ARRAY_SIZE(isp_formats_sink))
return -EINVAL;
 
-   formats = _dev->formats[SINK_FORMATS_INDEX];
+   formats = _dev->formats[code->pad];
code->code = formats->fmts[code->index].code;
} else {
struct v4l2_mbus_framefmt *sink_fmt;


[git:media_stage/master] media: uvcvideo: Use max() macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: uvcvideo: Use max() macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:43 2024 +0100

It makes the code slightly more clear and makes cocci incredibly happy:

drivers/media/usb/uvc/uvc_ctrl.c:839:22-23: WARNING opportunity for max()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-4-3c4865f5a...@chromium.org
Reviewed-by: Sergey Senozhatsky 
Reviewed-by: Kieran Bingham 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/uvc/uvc_ctrl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/usb/uvc/uvc_ctrl.c b/drivers/media/usb/uvc/uvc_ctrl.c
index e59a463c2761..f8ae14b8b426 100644
--- a/drivers/media/usb/uvc/uvc_ctrl.c
+++ b/drivers/media/usb/uvc/uvc_ctrl.c
@@ -836,7 +836,7 @@ static s32 uvc_get_le_value(struct uvc_control_mapping 
*mapping,
while (1) {
u8 byte = *data & mask;
value |= offset > 0 ? (byte >> offset) : (byte << (-offset));
-   bits -= 8 - (offset > 0 ? offset : 0);
+   bits -= 8 - max(offset, 0);
if (bits <= 0)
break;
 


[git:media_stage/master] media: go7007: Use min and max macros

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: go7007: Use min and max macros
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:44 2024 +0100

Replace ternary inline selection of f1 and f2 min max values with min()
and max() helper functions for the sake of readability and to make
coccinelle happier

drivers/media/usb/go7007/go7007-fw.c:1292:14-15: WARNING opportunity for max()
drivers/media/usb/go7007/go7007-fw.c:1293:14-15: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-5-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/go7007/go7007-fw.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/usb/go7007/go7007-fw.c 
b/drivers/media/usb/go7007/go7007-fw.c
index 018019ba47d4..86ce593e0c54 100644
--- a/drivers/media/usb/go7007/go7007-fw.c
+++ b/drivers/media/usb/go7007/go7007-fw.c
@@ -1289,8 +1289,8 @@ static int avsync_to_package(struct go7007 *go, __le16 
*code, int space)
0xbf99, (u16)((-adjratio) >> 16),
0xbf92, 0,
0xbf93, 0,
-   0xbff4, f1 > f2 ? f1 : f2,
-   0xbff5, f1 < f2 ? f1 : f2,
+   0xbff4, max(f1, f2),
+   0xbff5, min(f1, f2),
0xbff6, f1 < f2 ? ratio : ratio + 1,
0xbff7, f1 > f2 ? ratio : ratio + 1,
0xbff8, 0,


[git:media_stage/master] media: staging: sun6i-isp: Remove redundant printk

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: sun6i-isp: Remove redundant printk
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:46 2024 +0100

platform_get_irq() already prints an error for us.

Found by cocci:
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c:389:2-9: line 389 is 
redundant because platform_get_irq() already prints an error

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-7-3c4865f5a...@chromium.org
Acked-by: Jernej Skrabec 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c 
b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
index 5c0a45394cba..58f8ae92320d 100644
--- a/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
+++ b/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp.c
@@ -386,8 +386,7 @@ static int sun6i_isp_resources_setup(struct 
sun6i_isp_device *isp_dev,
 
irq = platform_get_irq(platform_dev, 0);
if (irq < 0) {
-   dev_err(dev, "failed to get interrupt\n");
-   ret = -ENXIO;
+   ret = irq;
goto error_clock_rate_exclusive;
}
 


[git:media_stage/master] media: staging: media: tegra-video: Use swap macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: staging: media: tegra-video: Use swap macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:49 2024 +0100

Makes the code simpler and cocci happier:

drivers/staging/media/tegra-video/tegra20.c:324:44-45: WARNING opportunity for 
swap()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-10-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Reviewed-by: Luca Ceresoli 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/tegra-video/tegra20.c | 9 ++---
 1 file changed, 2 insertions(+), 7 deletions(-)

---

diff --git a/drivers/staging/media/tegra-video/tegra20.c 
b/drivers/staging/media/tegra-video/tegra20.c
index 630e2ff987a3..7b8f8f810b35 100644
--- a/drivers/staging/media/tegra-video/tegra20.c
+++ b/drivers/staging/media/tegra-video/tegra20.c
@@ -317,13 +317,8 @@ static void tegra20_channel_queue_setup(struct 
tegra_vi_channel *chan)
chan->addr_offset_v = chan->addr_offset_u + stride * height / 4;
 
/* For YVU420, we swap the locations of the U and V planes. */
-   if (chan->format.pixelformat == V4L2_PIX_FMT_YVU420) {
-   unsigned long temp;
-
-   temp = chan->addr_offset_u;
-   chan->addr_offset_u = chan->addr_offset_v;
-   chan->addr_offset_v = temp;
-   }
+   if (chan->format.pixelformat == V4L2_PIX_FMT_YVU420)
+   swap(chan->addr_offset_u, chan->addr_offset_v);
 
chan->start_offset_u = chan->addr_offset_u;
chan->start_offset_v = chan->addr_offset_v;


[git:media_stage/master] media: stm32-dcmipp: Remove redundant printk

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stm32-dcmipp: Remove redundant printk
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:45 2024 +0100

platform_get_irq() already prints an error message.

Also platform_get_irq() can never return 0, so lets fix the condition
now that we are at it.

Found by cocci:
drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c:444:3-10: line 444 
is redundant because platform_get_irq() already prints an error

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-6-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

---

diff --git a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c 
b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
index bce821eb71ce..4acc3b90d03a 100644
--- a/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
+++ b/drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-core.c
@@ -439,11 +439,8 @@ static int dcmipp_probe(struct platform_device *pdev)
 "Could not get reset control\n");
 
irq = platform_get_irq(pdev, 0);
-   if (irq <= 0) {
-   if (irq != -EPROBE_DEFER)
-   dev_err(>dev, "Could not get irq\n");
-   return irq ? irq : -ENXIO;
-   }
+   if (irq < 0)
+   return irq;
 
dcmipp->regs = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
if (IS_ERR(dcmipp->regs)) {


[git:media_stage/master] media: dvb-frontends: tda18271c2dd: Remove casting during div

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: tda18271c2dd: Remove casting during div
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:47 2024 +0100

do_div() divides 64 bits by 32. We were adding a casting to the divider
to 64 bits, for a number that fits perfectly in 32 bits. Remove it.

Found by cocci:
drivers/media/dvb-frontends/tda18271c2dd.c:355:1-7: WARNING: do_div() does a 
64-by-32 division, please consider using div64_u64 instead.
drivers/media/dvb-frontends/tda18271c2dd.c:331:1-7: WARNING: do_div() does a 
64-by-32 division, please consider using div64_u64 instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-8-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/tda18271c2dd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/tda18271c2dd.c 
b/drivers/media/dvb-frontends/tda18271c2dd.c
index a34834487943..fd928787207e 100644
--- a/drivers/media/dvb-frontends/tda18271c2dd.c
+++ b/drivers/media/dvb-frontends/tda18271c2dd.c
@@ -328,7 +328,7 @@ static int CalcMainPLL(struct tda_state *state, u32 freq)
 
OscFreq = (u64) freq * (u64) Div;
OscFreq *= (u64) 16384;
-   do_div(OscFreq, (u64)1600);
+   do_div(OscFreq, 1600);
MainDiv = OscFreq;
 
state->m_Regs[MPD] = PostDiv & 0x77;
@@ -352,7 +352,7 @@ static int CalcCalPLL(struct tda_state *state, u32 freq)
OscFreq = (u64)freq * (u64)Div;
/* CalDiv = u32( OscFreq * 16384 / 1600 ); */
OscFreq *= (u64)16384;
-   do_div(OscFreq, (u64)1600);
+   do_div(OscFreq, 1600);
CalDiv = OscFreq;
 
state->m_Regs[CPD] = PostDiv;


[git:media_stage/master] media: s2255: Use refcount_t instead of atomic_t for num_channels

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: s2255: Use refcount_t instead of atomic_t for num_channels
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:50 2024 +0100

Use an API that resembles more the actual use of num_channels.

Found by cocci:
drivers/media/usb/s2255/s2255drv.c:2362:5-24: WARNING: atomic_dec_and_test 
variation before object free at line 2363.
drivers/media/usb/s2255/s2255drv.c:1557:5-24: WARNING: atomic_dec_and_test 
variation before object free at line 1558.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-11-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/s2255/s2255drv.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

---

diff --git a/drivers/media/usb/s2255/s2255drv.c 
b/drivers/media/usb/s2255/s2255drv.c
index 8e1de1e8bd12..a6e450181fd0 100644
--- a/drivers/media/usb/s2255/s2255drv.c
+++ b/drivers/media/usb/s2255/s2255drv.c
@@ -247,7 +247,7 @@ struct s2255_vc {
 struct s2255_dev {
struct s2255_vc vc[MAX_CHANNELS];
struct v4l2_device  v4l2_dev;
-   atomic_tnum_channels;
+   refcount_t  num_channels;
int frames;
struct mutexlock;   /* channels[].vdev.lock */
struct mutexcmdlock; /* protects cmdbuf */
@@ -1550,11 +1550,11 @@ static void s2255_video_device_release(struct 
video_device *vdev)
container_of(vdev, struct s2255_vc, vdev);
 
dprintk(dev, 4, "%s, chnls: %d\n", __func__,
-   atomic_read(>num_channels));
+   refcount_read(>num_channels));
 
v4l2_ctrl_handler_free(>hdl);
 
-   if (atomic_dec_and_test(>num_channels))
+   if (refcount_dec_and_test(>num_channels))
s2255_destroy(dev);
return;
 }
@@ -1659,7 +1659,7 @@ static int s2255_probe_v4l(struct s2255_dev *dev)
"failed to register video device!\n");
break;
}
-   atomic_inc(>num_channels);
+   refcount_inc(>num_channels);
v4l2_info(>v4l2_dev, "V4L2 device registered as %s\n",
  video_device_node_name(>vdev));
 
@@ -1667,11 +1667,11 @@ static int s2255_probe_v4l(struct s2255_dev *dev)
pr_info("Sensoray 2255 V4L driver Revision: %s\n",
S2255_VERSION);
/* if no channels registered, return error and probe will fail*/
-   if (atomic_read(>num_channels) == 0) {
+   if (refcount_read(>num_channels) == 0) {
v4l2_device_unregister(>v4l2_dev);
return ret;
}
-   if (atomic_read(>num_channels) != MAX_CHANNELS)
+   if (refcount_read(>num_channels) != MAX_CHANNELS)
pr_warn("s2255: Not all channels available.\n");
return 0;
 }
@@ -2221,7 +2221,7 @@ static int s2255_probe(struct usb_interface *interface,
goto errorFWDATA1;
}
 
-   atomic_set(>num_channels, 0);
+   refcount_set(>num_channels, 0);
dev->pid = id->idProduct;
dev->fw_data = kzalloc(sizeof(struct s2255_fw), GFP_KERNEL);
if (!dev->fw_data)
@@ -2341,12 +2341,12 @@ static void s2255_disconnect(struct usb_interface 
*interface)
 {
struct s2255_dev *dev = to_s2255_dev(usb_get_intfdata(interface));
int i;
-   int channels = atomic_read(>num_channels);
+   int channels = refcount_read(>num_channels);
mutex_lock(>lock);
v4l2_device_disconnect(>v4l2_dev);
mutex_unlock(>lock);
/*see comments in the uvc_driver.c usb disconnect function */
-   atomic_inc(>num_channels);
+   refcount_inc(>num_channels);
/* unregister each video device. */
for (i = 0; i < channels; i++)
video_unregister_device(>vc[i].vdev);
@@ -2359,7 +2359,7 @@ static void s2255_disconnect(struct usb_interface 
*interface)
dev->vc[i].vidstatus_ready = 1;
wake_up(>vc[i].wait_vidstatus);
}
-   if (atomic_dec_and_test(>num_channels))
+   if (refcount_dec_and_test(>num_channels))
s2255_destroy(dev);
dev_info(>dev, "%s\n", __func__);
 }


[git:media_stage/master] media: dvb-frontends: tda10048: Fix integer overflow

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: tda10048: Fix integer overflow
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:04 2024 +0100

state->xtal_hz can be up to 16M, so it can overflow a 32 bit integer
when multiplied by pll_mfactor.

Create a new 64 bit variable to hold the calculations.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-25-3c4865f5a...@chromium.org
Reported-by: Dan Carpenter 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/tda10048.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/tda10048.c 
b/drivers/media/dvb-frontends/tda10048.c
index 5d5e4e9e4422..3e725cdcc66b 100644
--- a/drivers/media/dvb-frontends/tda10048.c
+++ b/drivers/media/dvb-frontends/tda10048.c
@@ -410,6 +410,7 @@ static int tda10048_set_if(struct dvb_frontend *fe, u32 bw)
struct tda10048_config *config = >config;
int i;
u32 if_freq_khz;
+   u64 sample_freq;
 
dprintk(1, "%s(bw = %d)\n", __func__, bw);
 
@@ -451,9 +452,11 @@ static int tda10048_set_if(struct dvb_frontend *fe, u32 bw)
dprintk(1, "- pll_pfactor = %d\n", state->pll_pfactor);
 
/* Calculate the sample frequency */
-   state->sample_freq = state->xtal_hz * (state->pll_mfactor + 45);
-   state->sample_freq /= (state->pll_nfactor + 1);
-   state->sample_freq /= (state->pll_pfactor + 4);
+   sample_freq = state->xtal_hz;
+   sample_freq *= state->pll_mfactor + 45;
+   do_div(sample_freq, state->pll_nfactor + 1);
+   do_div(sample_freq, state->pll_pfactor + 4);
+   state->sample_freq = sample_freq;
dprintk(1, "- sample_freq = %d\n", state->sample_freq);
 
/* Update the I/F */


[git:media_stage/master] media: platform: mtk-mdp3: Use refcount_t for job_count

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: platform: mtk-mdp3: Use refcount_t for job_count
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:51 2024 +0100

Use an API that resembles more the actual use of job_count.

Found by cocci:
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:527:5-24: WARNING: 
atomic_dec_and_test variation before object free at line 541.
drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c:578:6-25: WARNING: 
atomic_dec_and_test variation before object free at line 581.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-12-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c | 10 +-
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c |  6 +++---
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h |  2 +-
 drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c  |  6 +++---
 4 files changed, 12 insertions(+), 12 deletions(-)

---

diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
index 1d64bac34b90..ea2ea119dd2a 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-cmdq.c
@@ -524,7 +524,7 @@ static void mdp_auto_release_work(struct work_struct *work)
mdp_comp_clocks_off(>pdev->dev, cmd->comps,
cmd->num_comps);
 
-   if (atomic_dec_and_test(>job_count)) {
+   if (refcount_dec_and_test(>job_count)) {
if (cmd->mdp_ctx)
mdp_m2m_job_finish(cmd->mdp_ctx);
 
@@ -575,7 +575,7 @@ static void mdp_handle_cmdq_callback(struct mbox_client 
*cl, void *mssg)
mdp_comp_clocks_off(>pdev->dev, cmd->comps,
cmd->num_comps);
 
-   if (atomic_dec_and_test(>job_count))
+   if (refcount_dec_and_test(>job_count))
wake_up(>callback_wq);
 
mdp_cmdq_pkt_destroy(>pkt);
@@ -724,9 +724,9 @@ int mdp_cmdq_send(struct mdp_dev *mdp, struct 
mdp_cmdq_param *param)
int i, ret;
u8 pp_used = __get_pp_num(param->param->type);
 
-   atomic_set(>job_count, pp_used);
+   refcount_set(>job_count, pp_used);
if (atomic_read(>suspended)) {
-   atomic_set(>job_count, 0);
+   refcount_set(>job_count, 0);
return -ECANCELED;
}
 
@@ -764,7 +764,7 @@ err_clock_off:
mdp_comp_clocks_off(>pdev->dev, cmd[i]->comps,
cmd[i]->num_comps);
 err_cancel_job:
-   atomic_set(>job_count, 0);
+   refcount_set(>job_count, 0);
 
return ret;
 }
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
index 5209f531ef8d..c1f3bf98120a 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.c
@@ -380,14 +380,14 @@ static int __maybe_unused mdp_suspend(struct device *dev)
 
atomic_set(>suspended, 1);
 
-   if (atomic_read(>job_count)) {
+   if (refcount_read(>job_count)) {
ret = wait_event_timeout(mdp->callback_wq,
-!atomic_read(>job_count),
+!refcount_read(>job_count),
 2 * HZ);
if (ret == 0) {
dev_err(dev,
"%s:flushed cmdq task incomplete, count=%d\n",
-   __func__, atomic_read(>job_count));
+   __func__, refcount_read(>job_count));
return -EBUSY;
}
}
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
index 8c09e984fd01..430251f63754 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-core.h
@@ -134,7 +134,7 @@ struct mdp_dev {
/* synchronization protect for m2m device operation */
struct mutexm2m_lock;
atomic_tsuspended;
-   atomic_tjob_count;
+   refcount_t  job_count;
 };
 
 struct mdp_pipe_info {
diff --git a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c 
b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
index 35a8b059bde5..0e69128a3772 100644
--- a/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
+++ b/drivers/media/platform/mediatek/mdp3/mtk-mdp3-m2m.c
@@ -104,14 +104,14 @@ static void mdp_m2m_devi

[git:media_stage/master] media: common: saa7146: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: common: saa7146: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:52 2024 +0100

Simplifies the code. Found by cocci:

drivers/media/common/saa7146/saa7146_hlp.c:125:36-37: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:154:41-42: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:286:35-36: WARNING opportunity for 
min()
drivers/media/common/saa7146/saa7146_hlp.c:289:35-36: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-13-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/common/saa7146/saa7146_hlp.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/common/saa7146/saa7146_hlp.c 
b/drivers/media/common/saa7146/saa7146_hlp.c
index 7569d8cdd4d8..fe3348af543e 100644
--- a/drivers/media/common/saa7146/saa7146_hlp.c
+++ b/drivers/media/common/saa7146/saa7146_hlp.c
@@ -122,7 +122,7 @@ static int calculate_h_scale_registers(struct saa7146_dev 
*dev,
xacm = 0;
 
/* set horizontal filter parameters (CXY = CXUV) */
-   cxy = hps_h_coeff_tab[( (xpsc - 1) < 63 ? (xpsc - 1) : 63 )].hps_coeff;
+   cxy = hps_h_coeff_tab[min(xpsc - 1, 63)].hps_coeff;
cxuv = cxy;
 
/* calculate and set horizontal fine scale (xsci) */
@@ -151,7 +151,7 @@ static int calculate_h_scale_registers(struct saa7146_dev 
*dev,
xacm = 0;
/* get best match in the table of attenuations
   for horizontal scaling */
-   h_atten = hps_h_coeff_tab[( (xpsc - 1) < 63 ? (xpsc - 1) : 63 
)].weight_sum;
+   h_atten = hps_h_coeff_tab[min(xpsc - 1, 63)].weight_sum;
 
for (i = 0; h_attenuation[i] != 0; i++) {
if (h_attenuation[i] >= h_atten)
@@ -283,10 +283,10 @@ static int calculate_v_scale_registers(struct saa7146_dev 
*dev, enum v4l2_field
}
 
/* get filter coefficients for cya, cyb from table 
hps_v_coeff_tab */
-   cya_cyb = hps_v_coeff_tab[ (yacl < 63 ? yacl : 63 ) ].hps_coeff;
+   cya_cyb = hps_v_coeff_tab[min(yacl, 63)].hps_coeff;
 
/* get best match in the table of attenuations for vertical 
scaling */
-   v_atten = hps_v_coeff_tab[ (yacl < 63 ? yacl : 63 ) 
].weight_sum;
+   v_atten = hps_v_coeff_tab[min(yacl, 63)].weight_sum;
 
for (i = 0; v_attenuation[i] != 0; i++) {
if (v_attenuation[i] >= v_atten)


[git:media_stage/master] media: netup_unidvb: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: netup_unidvb: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:54 2024 +0100

Simplify the code.

Found by cocci:
drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c:138:26-27: WARNING 
opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-15-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c 
b/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
index 46676f2c89c7..1c885d620b75 100644
--- a/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
+++ b/drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c
@@ -135,7 +135,7 @@ static void netup_i2c_fifo_tx(struct netup_i2c *i2c)
(readw(>regs->tx_fifo.stat_ctrl) & 0x3f);
u32 msg_length = i2c->msg->len - i2c->xmit_size;
 
-   msg_length = (msg_length < fifo_space ? msg_length : fifo_space);
+   msg_length = min(msg_length, fifo_space);
while (msg_length--) {
data = i2c->msg->buf[i2c->xmit_size++];
writeb(data, >regs->tx_fifo.data8);


[git:media_stage/master] media: dvb-frontends: drx39xyj: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: dvb-frontends: drx39xyj: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:53 2024 +0100

Replace ternary assignments with min() to simplify and make the code
more readable.

Found by cocci:
drivers/media/dvb-frontends/drx39xyj/drxj.c:1447:23-24: WARNING opportunity for 
min()
drivers/media/dvb-frontends/drx39xyj/drxj.c:1662:21-22: WARNING opportunity for 
min()
drivers/media/dvb-frontends/drx39xyj/drxj.c:1685:24-25: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-14-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/drx39xyj/drxj.c | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c 
b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 1ef53754bc03..6fcaf07e1b82 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -1445,8 +1445,7 @@ static int drxdap_fasi_read_block(struct i2c_device_addr 
*dev_addr,
 
/* Read block from I2C 
 */
do {
-   u16 todo = (datasize < DRXDAP_MAX_RCHUNKSIZE ?
- datasize : DRXDAP_MAX_RCHUNKSIZE);
+   u16 todo = min(datasize, DRXDAP_MAX_RCHUNKSIZE);
 
bufx = 0;
 
@@ -1660,7 +1659,7 @@ static int drxdap_fasi_write_block(struct i2c_device_addr 
*dev_addr,
   Address must be rewritten because HI is reset after data 
transport and
   expects an address.
 */
-   todo = (block_size < datasize ? block_size : datasize);
+   todo = min(block_size, datasize);
if (todo == 0) {
u16 overhead_size_i2c_addr = 0;
u16 data_block_size = 0;
@@ -1682,9 +1681,7 @@ static int drxdap_fasi_write_block(struct i2c_device_addr 
*dev_addr,
first_err = st;
}
bufx = 0;
-   todo =
-   (data_block_size <
-datasize ? data_block_size : datasize);
+   todo = min(data_block_size, datasize);
}
memcpy([bufx], data, todo);
/* write (address if can do and) data */


[git:media_stage/master] media: au0828: Use umin macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: au0828: Use umin macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:55 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/au0828/au0828-video.c:605:11-12: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-16-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/au0828/au0828-video.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/au0828/au0828-video.c 
b/drivers/media/usb/au0828/au0828-video.c
index fd9fc43d47e0..2ec49ea479d5 100644
--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -602,10 +602,7 @@ static inline int au0828_isoc_copy(struct au0828_dev *dev, 
struct urb *urb)
vbi_field_size = dev->vbi_width * dev->vbi_height * 2;
if (dev->vbi_read < vbi_field_size) {
remain  = vbi_field_size - dev->vbi_read;
-   if (len < remain)
-   lencopy = len;
-   else
-   lencopy = remain;
+   lencopy = umin(len, remain);
 
if (vbi_buf != NULL)
au0828_copy_vbi(dev, vbi_dma_q, vbi_buf, p,


[git:media_stage/master] media: flexcop-usb: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: flexcop-usb: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:56 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/b2c2/flexcop-usb.c:201:8-9: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-17-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/b2c2/flexcop-usb.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/b2c2/flexcop-usb.c 
b/drivers/media/usb/b2c2/flexcop-usb.c
index 43dd3c932a85..90f1aea99dac 100644
--- a/drivers/media/usb/b2c2/flexcop-usb.c
+++ b/drivers/media/usb/b2c2/flexcop-usb.c
@@ -197,10 +197,7 @@ static int flexcop_usb_memory_req(struct flexcop_usb 
*fc_usb,
return -EINVAL;
}
for (i = 0; i < len;) {
-   pagechunk =
-   wMax < bytes_left_to_read_on_page(addr, len) ?
-   wMax :
-   bytes_left_to_read_on_page(addr, len);
+   pagechunk = min(wMax, bytes_left_to_read_on_page(addr, len));
deb_info("%x\n",
(addr & V8_MEMORY_PAGE_MASK) |
(V8_MEMORY_EXTENDED*extended));


[git:media_stage/master] media: i2c: st-mipid02: Use the correct div function

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: i2c: st-mipid02: Use the correct div function
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:00 2024 +0100

link_freq does not fit in 32 bits.

Found by cocci:
drivers/media/i2c/st-mipid02.c:329:1-7: WARNING: do_div() does a 64-by-32 
division, please consider using div64_s64 instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-21-3c4865f5a...@chromium.org
Reviewed-by: Benjamin Mugnier 
Reviewed-by: Sakari Ailus 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/i2c/st-mipid02.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c
index f250640729ca..b947a55281f0 100644
--- a/drivers/media/i2c/st-mipid02.c
+++ b/drivers/media/i2c/st-mipid02.c
@@ -326,7 +326,7 @@ static int mipid02_configure_from_rx_speed(struct 
mipid02_dev *bridge,
}
 
dev_dbg(>dev, "detect link_freq = %lld Hz", link_freq);
-   do_div(ui_4, link_freq);
+   ui_4 = div64_u64(ui_4, link_freq);
bridge->r.clk_lane_reg1 |= ui_4 << 2;
 
return 0;


[git:media_stage/master] media: tegra-vde: Refactor timeout handling

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: tegra-vde: Refactor timeout handling
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:59 2024 +0100

Reorder the branches a bit, so cocci stops complaining about the code.

drivers/media/platform/nvidia/tegra-vde/h264.c:645:20-21: WARNING opportunity 
for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-20-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/nvidia/tegra-vde/h264.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

---

diff --git a/drivers/media/platform/nvidia/tegra-vde/h264.c 
b/drivers/media/platform/nvidia/tegra-vde/h264.c
index 204e474d57f7..cfea5572a1b8 100644
--- a/drivers/media/platform/nvidia/tegra-vde/h264.c
+++ b/drivers/media/platform/nvidia/tegra-vde/h264.c
@@ -633,7 +633,9 @@ static int tegra_vde_decode_end(struct tegra_vde *vde)
 
timeout = wait_for_completion_interruptible_timeout(
>decode_completion, msecs_to_jiffies(1000));
-   if (timeout == 0) {
+   if (timeout < 0) {
+   ret = timeout;
+   } else if (timeout == 0) {
bsev_ptr = tegra_vde_readl(vde, vde->bsev, 0x10);
macroblocks_nb = tegra_vde_readl(vde, vde->sxe, 0xC8) & 0x1FFF;
read_bytes = bsev_ptr ? bsev_ptr - vde->bitstream_data_addr : 0;
@@ -642,8 +644,6 @@ static int tegra_vde_decode_end(struct tegra_vde *vde)
read_bytes, macroblocks_nb);
 
ret = -EIO;
-   } else if (timeout < 0) {
-   ret = timeout;
} else {
ret = 0;
}


[git:media_stage/master] media: stk1160: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: stk1160: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:58 2024 +0100

Instead of a custom min() implementation, use the real macro.

Mitigates the following cocci WARNINGs:
drivers/media/usb/stk1160/stk1160-video.c:133:12-13: WARNING opportunity for 
min()
drivers/media/usb/stk1160/stk1160-video.c:176:13-14: WARNING opportunity for 
min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-19-3c4865f5a...@chromium.org
Reviewed-by: Bryan O'Donoghue 
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/stk1160/stk1160-video.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

---

diff --git a/drivers/media/usb/stk1160/stk1160-video.c 
b/drivers/media/usb/stk1160/stk1160-video.c
index e79c45db60ab..9cbd957ecc90 100644
--- a/drivers/media/usb/stk1160/stk1160-video.c
+++ b/drivers/media/usb/stk1160/stk1160-video.c
@@ -130,10 +130,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int 
len)
dst += linesdone * bytesperline * 2 + lineoff;
 
/* Copy the remaining of current line */
-   if (remain < (bytesperline - lineoff))
-   lencopy = remain;
-   else
-   lencopy = bytesperline - lineoff;
+   lencopy = min(remain, bytesperline - lineoff);
 
/*
 * Check if we have enough space left in the buffer.
@@ -178,10 +175,7 @@ void stk1160_copy_video(struct stk1160 *dev, u8 *src, int 
len)
src += lencopy;
 
/* Copy one line at a time */
-   if (remain < bytesperline)
-   lencopy = remain;
-   else
-   lencopy = bytesperline;
+   lencopy = min(remain, bytesperline);
 
/*
 * Check if we have enough space left in the buffer.


[git:media_stage/master] media: gspca: cpia1: Use min macro

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: gspca: cpia1: Use min macro
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:04:57 2024 +0100

Simplifies the code.

Found by cocci:
drivers/media/usb/gspca/cpia1.c:607:30-31: WARNING opportunity for min()

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-18-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/usb/gspca/cpia1.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

---

diff --git a/drivers/media/usb/gspca/cpia1.c b/drivers/media/usb/gspca/cpia1.c
index 5f5fa851ca64..14aaf36cde6e 100644
--- a/drivers/media/usb/gspca/cpia1.c
+++ b/drivers/media/usb/gspca/cpia1.c
@@ -604,10 +604,8 @@ static int find_over_exposure(int brightness)
MaxAllowableOverExposure = FLICKER_MAX_EXPOSURE - brightness -
   FLICKER_BRIGHTNESS_CONSTANT;
 
-   if (MaxAllowableOverExposure < FLICKER_ALLOWABLE_OVER_EXPOSURE)
-   OverExposure = MaxAllowableOverExposure;
-   else
-   OverExposure = FLICKER_ALLOWABLE_OVER_EXPOSURE;
+   OverExposure = min(MaxAllowableOverExposure,
+  FLICKER_ALLOWABLE_OVER_EXPOSURE);
 
return OverExposure;
 }


[git:media_stage/master] media: tc358746: Use the correct div_ function

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: tc358746: Use the correct div_ function
Author:  Ricardo Ribalda 
Date:Mon Apr 29 16:05:01 2024 +0100

fin does not fit in 32 bits in some arches.

Found by cocci:
drivers/media/i2c/tc358746.c:847:2-8: WARNING: do_div() does a 64-by-32 
division, please consider using div64_ul instead.

Link: 
https://lore.kernel.org/linux-media/20240429-fix-cocci-v3-22-3c4865f5a...@chromium.org
Signed-off-by: Ricardo Ribalda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/i2c/tc358746.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/media/i2c/tc358746.c b/drivers/media/i2c/tc358746.c
index d676adc4401b..edf79107adc5 100644
--- a/drivers/media/i2c/tc358746.c
+++ b/drivers/media/i2c/tc358746.c
@@ -844,8 +844,7 @@ static unsigned long tc358746_find_pll_settings(struct 
tc358746 *tc358746,
continue;
 
tmp = fout * postdiv;
-   do_div(tmp, fin);
-   mul = tmp;
+   mul = div64_ul(tmp, fin);
if (mul > 511)
continue;
 


Re: [PATCH v15 00/16] Add audio support in v4l2 framework

2024-05-03 Thread Mauro Carvalho Chehab
Em Fri, 3 May 2024 10:47:19 +0900
Mark Brown  escreveu:

> On Thu, May 02, 2024 at 10:26:43AM +0100, Mauro Carvalho Chehab wrote:
> > Mauro Carvalho Chehab  escreveu:  
> 
> > > There are still time control associated with it, as audio and video
> > > needs to be in sync. This is done by controlling the buffers size 
> > > and could be fine-tuned by checking when the buffer transfer is done.  
> 
> ...
> 
> > Just complementing: on media, we do this per video buffer (or
> > per half video buffer). A typical use case on cameras is to have
> > buffers transferred 30 times per second, if the video was streamed 
> > at 30 frames per second.   
> 
> IIRC some big use case for this hardware was transcoding so there was a
> desire to just go at whatever rate the hardware could support as there
> is no interactive user consuming the output as it is generated.

Indeed, codecs could be used to just do transcoding, but I would
expect it to be a border use case. See, as the chipsets implementing 
codecs are typically the ones used on mobiles, I would expect that
the major use cases to be to watch audio and video and to participate
on audio/video conferences.

Going further, the codec API may end supporting not only transcoding
(which is something that CPU can usually handle without too much
processing) but also audio processing that may require more 
complex algorithms - even deep learning ones - like background noise
removal, echo detection/removal, volume auto-gain, audio enhancement
and such.

On other words, the typical use cases will either have input
or output being a physical hardware (microphone or speaker).

> > I would assume that, on an audio/video stream, the audio data
> > transfer will be programmed to also happen on a regular interval.  
> 
> With audio the API is very much "wake userspace every Xms".


[git:media_stage/master] media: mtk-vcodec: potential null pointer deference in SCP

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: mtk-vcodec: potential null pointer deference in SCP
Author:  Fullway Wang 
Date:Thu Jan 18 02:35:06 2024 +

The return value of devm_kzalloc() needs to be checked to avoid
NULL pointer deference. This is similar to CVE-2022-3113.

Link: 
https://lore.kernel.org/linux-media/ph7pr20mb5925094dae3fd750c7e39e01bf...@ph7pr20mb5925.namprd20.prod.outlook.com
Signed-off-by: Fullway Wang 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c | 2 ++
 1 file changed, 2 insertions(+)

---

diff --git a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c 
b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
index 6bbe55de6ce9..ff23b225db70 100644
--- a/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
+++ b/drivers/media/platform/mediatek/vcodec/common/mtk_vcodec_fw_scp.c
@@ -79,6 +79,8 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_scp_init(void *priv, enum 
mtk_vcodec_fw_use
}
 
fw = devm_kzalloc(_dev->dev, sizeof(*fw), GFP_KERNEL);
+   if (!fw)
+   return ERR_PTR(-ENOMEM);
fw->type = SCP;
fw->ops = _vcodec_rproc_msg;
fw->scp = scp;


[git:media_stage/master] media: mxl5xx: Move xpt structures off stack

2024-05-03 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: mxl5xx: Move xpt structures off stack
Author:  Nathan Chancellor 
Date:Fri Jan 12 00:40:36 2024 +

When building for LoongArch with clang 18.0.0, the stack usage of
probe() is larger than the allowed 2048 bytes:

  drivers/media/dvb-frontends/mxl5xx.c:1698:12: warning: stack frame size 
(2368) exceeds limit (2048) in 'probe' [-Wframe-larger-than]
   1698 | static int probe(struct mxl *state, struct mxl5xx_cfg *cfg)
|^
  1 warning generated.

This is the result of the linked LLVM commit, which changes how the
arrays of structures in config_ts() get handled with
CONFIG_INIT_STACK_ZERO and CONFIG_INIT_STACK_PATTERN, which causes the
above warning in combination with inlining, as config_ts() gets inlined
into probe().

This warning can be easily fixed by moving the array of structures off
of the stackvia 'static const', which is a better location for these
variables anyways because they are static data that is only ever read
from, never modified, so allocating the stack space is wasteful.

This drops the stack usage from 2368 bytes to 256 bytes with the same
compiler and configuration.

Link: 
https://lore.kernel.org/linux-media/20240111-dvb-mxl5xx-move-structs-off-stack-v1-1-ca4230e67...@kernel.org
Cc: sta...@vger.kernel.org
Closes: https://github.com/ClangBuiltLinux/linux/issues/1977
Link: 
https://github.com/llvm/llvm-project/commit/afe8b93ffdfef5d8879e1894b9d7dda40dee2b8d
Signed-off-by: Nathan Chancellor 
Reviewed-by: Miguel Ojeda 
Tested-by: Miguel Ojeda 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/dvb-frontends/mxl5xx.c | 22 +++---
 1 file changed, 11 insertions(+), 11 deletions(-)

---

diff --git a/drivers/media/dvb-frontends/mxl5xx.c 
b/drivers/media/dvb-frontends/mxl5xx.c
index 4ebbcf05cc09..91e9c378397c 100644
--- a/drivers/media/dvb-frontends/mxl5xx.c
+++ b/drivers/media/dvb-frontends/mxl5xx.c
@@ -1381,57 +1381,57 @@ static int config_ts(struct mxl *state, enum 
MXL_HYDRA_DEMOD_ID_E demod_id,
u32 nco_count_min = 0;
u32 clk_type = 0;
 
-   struct MXL_REG_FIELD_T xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_sync_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 8, 1}, {0x90700010, 9, 1},
{0x90700010, 10, 1}, {0x90700010, 11, 1},
{0x90700010, 12, 1}, {0x90700010, 13, 1},
{0x90700010, 14, 1}, {0x90700010, 15, 1} };
-   struct MXL_REG_FIELD_T xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_clock_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700010, 16, 1}, {0x90700010, 17, 1},
{0x90700010, 18, 1}, {0x90700010, 19, 1},
{0x90700010, 20, 1}, {0x90700010, 21, 1},
{0x90700010, 22, 1}, {0x90700010, 23, 1} };
-   struct MXL_REG_FIELD_T xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_valid_polarity[MXL_HYDRA_DEMOD_MAX] = {
{0x90700014, 0, 1}, {0x90700014, 1, 1},
{0x90700014, 2, 1}, {0x90700014, 3, 1},
{0x90700014, 4, 1}, {0x90700014, 5, 1},
{0x90700014, 6, 1}, {0x90700014, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_ts_clock_phase[MXL_HYDRA_DEMOD_MAX] = {
{0x90700018, 0, 3}, {0x90700018, 4, 3},
{0x90700018, 8, 3}, {0x90700018, 12, 3},
{0x90700018, 16, 3}, {0x90700018, 20, 3},
{0x90700018, 24, 3}, {0x90700018, 28, 3} };
-   struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T xpt_lsb_first[MXL_HYDRA_DEMOD_MAX] 
= {
{0x907C, 16, 1}, {0x907C, 17, 1},
{0x907C, 18, 1}, {0x907C, 19, 1},
{0x907C, 20, 1}, {0x907C, 21, 1},
{0x907C, 22, 1}, {0x907C, 23, 1} };
-   struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T xpt_sync_byte[MXL_HYDRA_DEMOD_MAX] 
= {
{0x90700010, 0, 1}, {0x90700010, 1, 1},
{0x90700010, 2, 1}, {0x90700010, 3, 1},
{0x90700010, 4, 1}, {0x90700010, 5, 1},
{0x90700010, 6, 1}, {0x90700010, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct MXL_REG_FIELD_T 
xpt_enable_output[MXL_HYDRA_DEMOD_MAX] = {
{0x907C, 0, 1}, {0x907C, 1, 1},
{0x907C, 2, 1}, {0x907C, 3, 1},
{0x907C, 4, 1}, {0x907C, 5, 1},
{0x907C, 6, 1}, {0x907C, 7, 1} };
-   struct MXL_REG_FIELD_T xpt_err_replace_sync[MXL_HYDRA_DEMOD_MAX] = {
+   static const struct

[git:media_stage/master] media: cec: core: avoid recursive cec_claim_log_addrs

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: core: avoid recursive cec_claim_log_addrs
Author:  Hans Verkuil 
Date:Thu Feb 22 16:17:33 2024 +

Keep track if cec_claim_log_addrs() is running, and return -EBUSY
if it is when calling CEC_ADAP_S_LOG_ADDRS.

This prevents a case where cec_claim_log_addrs() could be called
while it was still in progress.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: ca684386e6e2 ("[media] cec: add HDMI CEC framework (api)")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 6 +-
 drivers/media/cec/core/cec-api.c  | 2 +-
 include/media/cec.h   | 1 +
 3 files changed, 7 insertions(+), 2 deletions(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index 6fc7de744ee9..a493cbce2456 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -1574,9 +1574,12 @@ unconfigure:
  */
 static void cec_claim_log_addrs(struct cec_adapter *adap, bool block)
 {
-   if (WARN_ON(adap->is_configuring || adap->is_configured))
+   if (WARN_ON(adap->is_claiming_log_addrs ||
+   adap->is_configuring || adap->is_configured))
return;
 
+   adap->is_claiming_log_addrs = true;
+
init_completion(>config_completion);
 
/* Ready to kick off the thread */
@@ -1591,6 +1594,7 @@ static void cec_claim_log_addrs(struct cec_adapter *adap, 
bool block)
wait_for_completion(>config_completion);
mutex_lock(>lock);
}
+   adap->is_claiming_log_addrs = false;
 }
 
 /*
diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index d64bb716f9c6..3ef915344304 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -178,7 +178,7 @@ static long cec_adap_s_log_addrs(struct cec_adapter *adap, 
struct cec_fh *fh,
   CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU |
   CEC_LOG_ADDRS_FL_CDC_ONLY;
mutex_lock(>lock);
-   if (!adap->is_configuring &&
+   if (!adap->is_claiming_log_addrs && !adap->is_configuring &&
(!log_addrs.num_log_addrs || !adap->is_configured) &&
!cec_is_busy(adap, fh)) {
err = __cec_s_log_addrs(adap, _addrs, block);
diff --git a/include/media/cec.h b/include/media/cec.h
index c8350258f10a..d3abe84c9c9e 100644
--- a/include/media/cec.h
+++ b/include/media/cec.h
@@ -258,6 +258,7 @@ struct cec_adapter {
u16 phys_addr;
bool needs_hpd;
bool is_enabled;
+   bool is_claiming_log_addrs;
bool is_configuring;
bool must_reconfigure;
bool is_configured;


[git:media_stage/master] media: cec: cec-adap: always cancel work in cec_transmit_msg_fh

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: cec-adap: always cancel work in cec_transmit_msg_fh
Author:  Hans Verkuil 
Date:Fri Feb 23 12:24:38 2024 +

Do not check for !data->completed, just always call
cancel_delayed_work_sync(). This fixes a small race condition.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: 490d84f6d73c ("media: cec: forgot to cancel delayed work")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index 559a172ebc6c..6fc7de744ee9 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -936,8 +936,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 */
mutex_unlock(>lock);
wait_for_completion_killable(>c);
-   if (!data->completed)
-   cancel_delayed_work_sync(>work);
+   cancel_delayed_work_sync(>work);
mutex_lock(>lock);
 
/* Cancel the transmit if it was interrupted */


[git:media_stage/master] media: cec: core: avoid confusing "transmit timed out" message

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: core: avoid confusing "transmit timed out" message
Author:  Hans Verkuil 
Date:Tue Apr 30 11:13:47 2024 +0100

If, when waiting for a transmit to finish, the wait is interrupted,
then you might get a "transmit timed out" message, even though the
transmit was interrupted and did not actually time out.

Set transmit_in_progress_aborted to true if the
wait_for_completion_killable() call was interrupted and ensure
that the transmit is properly marked as ABORTED.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: 590a8e564c6e ("media: cec: abort if the current transmit was canceled")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-adap.c | 15 ++-
 1 file changed, 14 insertions(+), 1 deletion(-)

---

diff --git a/drivers/media/cec/core/cec-adap.c 
b/drivers/media/cec/core/cec-adap.c
index a493cbce2456..da09834990b8 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -490,6 +490,15 @@ int cec_thread_func(void *_adap)
goto unlock;
}
 
+   if (adap->transmit_in_progress &&
+   adap->transmit_in_progress_aborted) {
+   if (adap->transmitting)
+   cec_data_cancel(adap->transmitting,
+   CEC_TX_STATUS_ABORTED, 0);
+   adap->transmit_in_progress = false;
+   adap->transmit_in_progress_aborted = false;
+   goto unlock;
+   }
if (adap->transmit_in_progress && timeout) {
/*
 * If we timeout, then log that. Normally this does
@@ -771,6 +780,7 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 {
struct cec_data *data;
bool is_raw = msg_is_raw(msg);
+   int err;
 
if (adap->devnode.unregistered)
return -ENODEV;
@@ -935,10 +945,13 @@ int cec_transmit_msg_fh(struct cec_adapter *adap, struct 
cec_msg *msg,
 * Release the lock and wait, retake the lock afterwards.
 */
mutex_unlock(>lock);
-   wait_for_completion_killable(>c);
+   err = wait_for_completion_killable(>c);
cancel_delayed_work_sync(>work);
mutex_lock(>lock);
 
+   if (err)
+   adap->transmit_in_progress_aborted = true;
+
/* Cancel the transmit if it was interrupted */
if (!data->completed) {
if (data->msg.tx_status & CEC_TX_STATUS_OK)


[git:media_stage/master] media: cec: cec-api: add locking in cec_release()

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: cec: cec-api: add locking in cec_release()
Author:  Hans Verkuil 
Date:Fri Feb 23 12:25:55 2024 +

When cec_release() uses fh->msgs it has to take fh->lock,
otherwise the list can get corrupted.

Signed-off-by: Hans Verkuil 
Reported-by: Yang, Chenyuan 
Closes: 
https://lore.kernel.org/linux-media/ph7pr11mb57688e64ade4fe82e658d86da0...@ph7pr11mb5768.namprd11.prod.outlook.com/
Fixes: ca684386e6e2 ("[media] cec: add HDMI CEC framework (api)")
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/cec/core/cec-api.c | 3 +++
 1 file changed, 3 insertions(+)

---

diff --git a/drivers/media/cec/core/cec-api.c b/drivers/media/cec/core/cec-api.c
index 67dc79ef1705..d64bb716f9c6 100644
--- a/drivers/media/cec/core/cec-api.c
+++ b/drivers/media/cec/core/cec-api.c
@@ -664,6 +664,8 @@ static int cec_release(struct inode *inode, struct file 
*filp)
list_del_init(>xfer_list);
}
mutex_unlock(>lock);
+
+   mutex_lock(>lock);
while (!list_empty(>msgs)) {
struct cec_msg_entry *entry =
list_first_entry(>msgs, struct cec_msg_entry, list);
@@ -681,6 +683,7 @@ static int cec_release(struct inode *inode, struct file 
*filp)
kfree(entry);
}
}
+   mutex_unlock(>lock);
kfree(fh);
 
cec_put_device(devnode);


[git:media_stage/master] media: verisilicon Correct a typo in H1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: verisilicon Correct a typo in 
H1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE
Author:  Andrzej Pietrasiewicz 
Date:Thu Nov 16 15:48:11 2023 +

It's a FILTER and not FILETER.

Link: 
https://lore.kernel.org/linux-media/20231116154816.70959-2-andrze...@collabora.com
Signed-off-by: Andrzej Pietrasiewicz 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/verisilicon/hantro_h1_regs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/verisilicon/hantro_h1_regs.h 
b/drivers/media/platform/verisilicon/hantro_h1_regs.h
index 30e7e7b920b5..b45e6e104b23 100644
--- a/drivers/media/platform/verisilicon/hantro_h1_regs.h
+++ b/drivers/media/platform/verisilicon/hantro_h1_regs.h
@@ -62,7 +62,7 @@
 #defineH1_REG_ENC_CTRL1_INTRA_PRED_MODE(x) ((x) << 16)
 #defineH1_REG_ENC_CTRL1_FRAME_NUM(x)   ((x))
 #define H1_REG_ENC_CTRL2   0x048
-#defineH1_REG_ENC_CTRL2_DEBLOCKING_FILETER_MODE(x) ((x) << 30)
+#defineH1_REG_ENC_CTRL2_DEBLOCKING_FILTER_MODE(x)  ((x) << 30)
 #defineH1_REG_ENC_CTRL2_H264_SLICE_SIZE(x) ((x) << 23)
 #defineH1_REG_ENC_CTRL2_DISABLE_QUARTER_PIXMV  BIT(22)
 #defineH1_REG_ENC_CTRL2_TRANS8X8_MODE_EN   BIT(21)


[git:media_stage/master] media: sunxi: a83-mips-csi2: also select GENERIC_PHY

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: sunxi: a83-mips-csi2: also select GENERIC_PHY
Author:  Randy Dunlap 
Date:Wed Sep 27 05:04:38 2023 +0100

When selecting GENERIC_PHY_MIPI_DPHY, also select GENERIC_PHY to
prevent kconfig warnings:

WARNING: unmet direct dependencies detected for GENERIC_PHY_MIPI_DPHY
  Depends on [n]: GENERIC_PHY [=n]
  Selected by [y]:
  - VIDEO_SUN8I_A83T_MIPI_CSI2 [=y] && MEDIA_SUPPORT [=y] && 
MEDIA_PLATFORM_SUPPORT [=y] && MEDIA_PLATFORM_DRIVERS [=y] && 
V4L_PLATFORM_DRIVERS [=y] && VIDEO_DEV [=y] && (ARCH_SUNXI || COMPILE_TEST 
[=y]) && PM [=y] && COMMON_CLK [=y] && RESET_CONTROLLER [=y]

Fixes: 94d7fd9692b5 ("media: sunxi: Depend on GENERIC_PHY_MIPI_DPHY")
Reported-by: kernel test robot 
Closes: https://lore.kernel.org/r/ZQ/WS8HC1A3F0Qn8@rli9-mobl
Link: 
https://lore.kernel.org/linux-media/20230927040438.5589-1-rdun...@infradead.org

Signed-off-by: Randy Dunlap 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig | 1 +
 1 file changed, 1 insertion(+)

---

diff --git a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig 
b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
index 47a8c0fb7eb9..99c401e653bc 100644
--- a/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
+++ b/drivers/media/platform/sunxi/sun8i-a83t-mipi-csi2/Kconfig
@@ -8,6 +8,7 @@ config VIDEO_SUN8I_A83T_MIPI_CSI2
select VIDEO_V4L2_SUBDEV_API
select V4L2_FWNODE
select REGMAP_MMIO
+   select GENERIC_PHY
select GENERIC_PHY_MIPI_DPHY
help
   Support for the Allwinner A83T MIPI CSI-2 controller and D-PHY.


[git:media_stage/master] media: verisilicon: Correct a typo in H1_REG_MAD_CTRL_MAD_THRESHOLD

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: verisilicon: Correct a typo in H1_REG_MAD_CTRL_MAD_THRESHOLD
Author:  Andrzej Pietrasiewicz 
Date:Thu Nov 16 15:48:12 2023 +

It's a THRESHOLD and not a THREDHOLD.

Link: 
https://lore.kernel.org/linux-media/20231116154816.70959-3-andrze...@collabora.com
Signed-off-by: Andrzej Pietrasiewicz 
Reviewed-by: Chen-Yu Tsai 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/media/platform/verisilicon/hantro_h1_regs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/drivers/media/platform/verisilicon/hantro_h1_regs.h 
b/drivers/media/platform/verisilicon/hantro_h1_regs.h
index b45e6e104b23..8650cc489392 100644
--- a/drivers/media/platform/verisilicon/hantro_h1_regs.h
+++ b/drivers/media/platform/verisilicon/hantro_h1_regs.h
@@ -89,7 +89,7 @@
 #define H1_REG_STR_BUF_LIMIT   0x060
 #define H1_REG_MAD_CTRL0x064
 #defineH1_REG_MAD_CTRL_QP_ADJUST(x)((x) << 28)
-#defineH1_REG_MAD_CTRL_MAD_THREDHOLD(x)((x) << 22)
+#defineH1_REG_MAD_CTRL_MAD_THRESHOLD(x)((x) << 22)
 #defineH1_REG_MAD_CTRL_QP_SUM_DIV2(x)  ((x))
 #define H1_REG_ADDR_VP8_PROB_CNT   0x068
 #define H1_REG_QP_VAL  0x06c


[git:media_tree/master] media: atomisp: Fix sh_css_config_input_network_2400() coding style

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: atomisp: Fix sh_css_config_input_network_2400() coding style
Author:  Hans de Goede 
Date:Tue Apr 16 10:19:52 2024 +0100

Fix the if (stream->config.mode == IA_CSS_INPUT_MODE_PRBS) {} block
coding style. Specifically fix the weird declaration of variables split
over multiple lines.

While at it also split the multi-line width calculation at a more
logical place.

Reported-by: Andy Shevchenko 
Signed-off-by: Hans de Goede 
Signed-off-by: Mauro Carvalho Chehab 

 drivers/staging/media/atomisp/pci/sh_css.c | 16 +++-
 1 file changed, 7 insertions(+), 9 deletions(-)

---

diff --git a/drivers/staging/media/atomisp/pci/sh_css.c 
b/drivers/staging/media/atomisp/pci/sh_css.c
index 6520a35b6e47..42a69b26db01 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -498,17 +498,15 @@ sh_css_config_input_network_2400(struct ia_css_stream 
*stream)
}
 
if (stream->config.mode == IA_CSS_INPUT_MODE_PRBS) {
-   unsigned int hblank_cycles = 100,
-   vblank_lines = 6,
-   width,
-   height,
-   vblank_cycles;
-   width  = (stream->config.input_config.input_res.width) / (1 +
-   (stream->config.pixels_per_clock == 2));
+   unsigned int width, height, vblank_cycles;
+   const unsigned int hblank_cycles = 100;
+   const unsigned int vblank_lines = 6;
+
+   width = (stream->config.input_config.input_res.width) /
+   (1 + (stream->config.pixels_per_clock == 2));
height = stream->config.input_config.input_res.height;
vblank_cycles = vblank_lines * (width + hblank_cycles);
-   sh_css_sp_configure_sync_gen(width, height, hblank_cycles,
-vblank_cycles);
+   sh_css_sp_configure_sync_gen(width, height, hblank_cycles, 
vblank_cycles);
}
ia_css_debug_dtrace(IA_CSS_DEBUG_TRACE_PRIVATE,
"sh_css_config_input_network() leave:\n");


[git:media_tree/master] media: atomisp: Drop custom flash support

2024-05-02 Thread Mauro Carvalho Chehab
This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: atomisp: Drop custom flash support
Author:  Hans de Goede 
Date:Sat Apr 13 16:10:41 2024 +0100

Remove the custom flash handling from the atomisp driver. There are
only few Bay Trail / Cherry Trail devices with flash and if those will
ever get supported then this should be done through the new standard
include/linux/led-class-flash.h APIs instead of with atomisp specific
custom APIs.

Reviewed-by: Andy Shevchenko 
Signed-off-by: Hans de Goede 
Signed-off-by: Mauro Carvalho Chehab 

 .../staging/media/atomisp/include/linux/atomisp.h  |  42 
 .../media/atomisp/include/linux/atomisp_platform.h |   1 -
 drivers/staging/media/atomisp/pci/atomisp_cmd.c| 117 +
 drivers/staging/media/atomisp/pci/atomisp_cmd.h|   4 -
 drivers/staging/media/atomisp/pci/atomisp_fops.c   |  14 ---
 .../staging/media/atomisp/pci/atomisp_internal.h   |   1 -
 drivers/staging/media/atomisp/pci/atomisp_ioctl.c  |  61 ---
 drivers/staging/media/atomisp/pci/atomisp_subdev.h |  13 ---
 drivers/staging/media/atomisp/pci/atomisp_v4l2.c   |   7 --
 .../media/atomisp/pci/ia_css_frame_public.h|   8 --
 .../media/atomisp/pci/ia_css_stream_public.h   |  14 ---
 drivers/staging/media/atomisp/pci/sh_css.c |  33 --
 12 files changed, 2 insertions(+), 313 deletions(-)

---

diff --git a/drivers/staging/media/atomisp/include/linux/atomisp.h 
b/drivers/staging/media/atomisp/include/linux/atomisp.h
index b2735a008052..db0c1b87c9ef 100644
--- a/drivers/staging/media/atomisp/include/linux/atomisp.h
+++ b/drivers/staging/media/atomisp/include/linux/atomisp.h
@@ -614,26 +614,6 @@ enum atomisp_camera_port {
ATOMISP_CAMERA_NR_PORTS
 };
 
-/* Flash modes. Default is off.
- * Setting a flash to TORCH or INDICATOR mode will automatically
- * turn it on. Setting it to FLASH mode will not turn on the flash
- * until the FLASH_STROBE command is sent. */
-enum atomisp_flash_mode {
-   ATOMISP_FLASH_MODE_OFF,
-   ATOMISP_FLASH_MODE_FLASH,
-   ATOMISP_FLASH_MODE_TORCH,
-   ATOMISP_FLASH_MODE_INDICATOR,
-};
-
-/* Flash statuses, used by atomisp driver to check before starting
- * flash and after having started flash. */
-enum atomisp_flash_status {
-   ATOMISP_FLASH_STATUS_OK,
-   ATOMISP_FLASH_STATUS_HW_ERROR,
-   ATOMISP_FLASH_STATUS_INTERRUPTED,
-   ATOMISP_FLASH_STATUS_TIMEOUT,
-};
-
 /* Frame status. This is used to detect corrupted frames and flash
  * exposed frames. Usually, the first 2 frames coming out of the sensor
  * are corrupted. When using flash, the frame before and the frame after
@@ -661,7 +641,6 @@ enum atomisp_ext_isp_id {
EXT_ISP_CID_AF_STATUS,
EXT_ISP_CID_GET_AF_MODE,
EXT_ISP_CID_CAPTURE_BURST,
-   EXT_ISP_CID_FLASH_MODE,
EXT_ISP_CID_ZOOM,
EXT_ISP_CID_SHOT_MODE
 };
@@ -694,12 +673,6 @@ enum atomisp_burst_capture_options {
EXT_ISP_BURST_CAPTURE_CTRL_STOP
 };
 
-#define EXT_ISP_FLASH_MODE_OFF 0
-#define EXT_ISP_FLASH_MODE_ON  1
-#define EXT_ISP_FLASH_MODE_AUTO2
-#define EXT_ISP_LED_TORCH_OFF  3
-#define EXT_ISP_LED_TORCH_ON   4
-
 #define EXT_ISP_SHOT_MODE_AUTO 0
 #define EXT_ISP_SHOT_MODE_BEAUTY_FACE  1
 #define EXT_ISP_SHOT_MODE_BEST_PHOTO   2
@@ -894,18 +867,6 @@ enum atomisp_burst_capture_options {
  * Exposure, Flash and privacy (indicator) light controls, to be upstreamed */
 #define V4L2_CID_CAMERA_LASTP1 (V4L2_CID_CAMERA_CLASS_BASE + 1024)
 
-/* Flash related CIDs, see also:
- * http://linuxtv.org/downloads/v4l-dvb-apis/extended-controls.html\
- * #flash-controls */
-
-/* Request a number of flash-exposed frames. The frame status can be
- * found in the reserved field in the v4l2_buffer struct. */
-#define V4L2_CID_REQUEST_FLASH (V4L2_CID_CAMERA_LASTP1 + 3)
-/* Query flash driver status. See enum atomisp_flash_status above. */
-#define V4L2_CID_FLASH_STATUS  (V4L2_CID_CAMERA_LASTP1 + 5)
-/* Set the flash mode (see enum atomisp_flash_mode) */
-#define V4L2_CID_FLASH_MODE(V4L2_CID_CAMERA_LASTP1 + 10)
-
 #define V4L2_CID_RUN_MODE  (V4L2_CID_CAMERA_LASTP1 + 20)
 #define ATOMISP_RUN_MODE_VIDEO 1
 #define ATOMISP_RUN_MODE_STILL_CAPTURE 2
@@ -925,9 +886,6 @@ enum atomisp_burst_capture_options {
 #define ATOMISP_VFPP_DISABLE_SCALER1
 #define ATOMISP_VFPP_DISABLE_LOWLAT2
 
-/* Query real flash status register value */
-#define V4L2_CID_FLASH_STATUS_REGISTER  (V4L2_CID_CAMERA_LASTP1 + 26)
-
 #define V4L2_CID_START_ZSL_CAPTURE (V4L2_CID_CAMERA_LASTP1 + 28)
 /* Lock and unlock raw buffer */
 #define V4L2_CID_ENABLE_RAW_BUFFER_LOCK (V4L2_CID_CAMERA_LASTP1 + 29)
diff --git a/drivers/staging/media/atomisp/include/linux/atomisp_platform.h 
b/drivers/staging/media/atomisp/include/linux/atomisp_platform.h
index

  1   2   3   4   5   6   7   8   9   10   >