Commit 5e89d62e authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media fixes from Mauro Carvalho Chehab:
 "Some driver fixes:
   - a regression fix for the verisilicon driver
   - uvcvideo: don't expose unsupported video formats to userspace
   - camss-video: don't zero subdev format after init
   - mediatek: some fixes for 4K decoder formats
   - fix a Sphinx build warning (missing doc for client_caps)
   - some fixes for imx and atomisp staging drivers

  And two CEC core fixes:
   - don't set last_initiator if TX in progress
   - disable adapter in cec_devnode_unregister"

* tag 'media/v6.4-4' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
  media: uvcvideo: Don't expose unsupported formats to userspace
  media: v4l2-subdev: Fix missing kerneldoc for client_caps
  media: staging: media: imx: initialize hs_settle to avoid warning
  media: v4l2-mc: Drop subdev check in v4l2_create_fwnode_links_to_pad()
  media: staging: media: atomisp: init high & low vars
  media: cec: core: don't set last_initiator if tx in progress
  media: cec: core: disable adapter in cec_devnode_unregister
  media: mediatek: vcodec: Only apply 4K frame sizes on decoder formats
  media: camss: camss-video: Don't zero subdev format again after initialization
  media: verisilicon: Additional fix for the crash when opening the driver
parents 209835e8 81f3affa
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1091,6 +1091,7 @@ void cec_received_msg_ts(struct cec_adapter *adap,
	mutex_lock(&adap->lock);
	dprintk(2, "%s: %*ph\n", __func__, msg->len, msg->msg);

	if (!adap->transmit_in_progress)
		adap->last_initiator = 0xff;

	/* Check if this message was for us (directed or broadcast). */
@@ -1585,7 +1586,7 @@ static void cec_claim_log_addrs(struct cec_adapter *adap, bool block)
 *
 * This function is called with adap->lock held.
 */
static int cec_adap_enable(struct cec_adapter *adap)
int cec_adap_enable(struct cec_adapter *adap)
{
	bool enable;
	int ret = 0;
@@ -1595,6 +1596,9 @@ static int cec_adap_enable(struct cec_adapter *adap)
	if (adap->needs_hpd)
		enable = enable && adap->phys_addr != CEC_PHYS_ADDR_INVALID;

	if (adap->devnode.unregistered)
		enable = false;

	if (enable == adap->is_enabled)
		return 0;

+2 −0
Original line number Diff line number Diff line
@@ -191,6 +191,8 @@ static void cec_devnode_unregister(struct cec_adapter *adap)
	mutex_lock(&adap->lock);
	__cec_s_phys_addr(adap, CEC_PHYS_ADDR_INVALID, false);
	__cec_s_log_addrs(adap, NULL, false);
	// Disable the adapter (since adap->devnode.unregistered is true)
	cec_adap_enable(adap);
	mutex_unlock(&adap->lock);

	cdev_device_del(&devnode->cdev, &devnode->dev);
+1 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ int cec_monitor_pin_cnt_inc(struct cec_adapter *adap);
void cec_monitor_pin_cnt_dec(struct cec_adapter *adap);
int cec_adap_status(struct seq_file *file, void *priv);
int cec_thread_func(void *_adap);
int cec_adap_enable(struct cec_adapter *adap);
void __cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block);
int __cec_s_log_addrs(struct cec_adapter *adap,
		      struct cec_log_addrs *log_addrs, bool block);
+3 −0
Original line number Diff line number Diff line
@@ -584,6 +584,9 @@ static void mtk_init_vdec_params(struct mtk_vcodec_ctx *ctx)

	if (!(ctx->dev->dec_capability & VCODEC_CAPABILITY_4K_DISABLED)) {
		for (i = 0; i < num_supported_formats; i++) {
			if (mtk_video_formats[i].type != MTK_FMT_DEC)
				continue;

			mtk_video_formats[i].frmsize.max_width =
				VCODEC_DEC_4K_CODED_WIDTH;
			mtk_video_formats[i].frmsize.max_height =
+0 −1
Original line number Diff line number Diff line
@@ -353,7 +353,6 @@ static int video_get_subdev_format(struct camss_video *video,
	if (subdev == NULL)
		return -EPIPE;

	memset(&fmt, 0, sizeof(fmt));
	fmt.pad = pad;

	ret = v4l2_subdev_call(subdev, pad, get_fmt, NULL, &fmt);
Loading