mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Corentin Labbe <clabbe@baylibre.com>
To: gregkh@linuxfoundation.org, laurent.pinchart@skynet.be,
	mchehab@kernel.org
Cc: devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org, Corentin Labbe <clabbe@baylibre.com>
Subject: [PATCH RFT/RFC 47/49] staging: media: zoran: remove deprecated .vidioc_g_jpegcomp
Date: Mon, 21 Sep 2020 10:20:22 +0000	[thread overview]
Message-ID: <1600683624-5863-48-git-send-email-clabbe@baylibre.com> (raw)
In-Reply-To: <1600683624-5863-1-git-send-email-clabbe@baylibre.com>

This patchs removed the deprecated .vidioc_g_jpegcomp and replace it
with corresponding v4l2_ctrl_ops code.

Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
---
 drivers/staging/media/zoran/zoran_card.c   | 22 ++++++++++
 drivers/staging/media/zoran/zoran_driver.c | 48 ----------------------
 2 files changed, 22 insertions(+), 48 deletions(-)

diff --git a/drivers/staging/media/zoran/zoran_card.c b/drivers/staging/media/zoran/zoran_card.c
index e4688891d307..ca998f0000c2 100644
--- a/drivers/staging/media/zoran/zoran_card.c
+++ b/drivers/staging/media/zoran/zoran_card.c
@@ -1056,6 +1056,25 @@ static void zoran_subdev_notify(struct v4l2_subdev *sd, unsigned int cmd, void *
 		GPIO(zr, 7, 1);
 }
 
+static int zoran_video_set_ctrl(struct v4l2_ctrl *ctrl)
+{
+	struct zoran *zr = container_of(ctrl->handler, struct zoran, hdl);
+
+	switch (ctrl->id) {
+	case V4L2_CID_JPEG_COMPRESSION_QUALITY:
+		zr->jpg_settings.jpg_comp.quality = ctrl->val;
+		return zoran_check_jpg_settings(zr, &zr->jpg_settings, 0);
+	default:
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static const struct v4l2_ctrl_ops zoran_video_ctrl_ops = {
+	.s_ctrl = zoran_video_set_ctrl,
+};
+
 /*
  *   Scan for a Buz card (actually for the PCI controller ZR36057),
  *   request the irq and map the io memory
@@ -1096,6 +1115,9 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (v4l2_ctrl_handler_init(&zr->hdl, 10))
 		goto zr_unreg;
 	zr->v4l2_dev.ctrl_handler = &zr->hdl;
+	v4l2_ctrl_new_std(&zr->hdl, &zoran_video_ctrl_ops,
+			  V4L2_CID_JPEG_COMPRESSION_QUALITY, 0,
+			  100, 1, 50);
 	spin_lock_init(&zr->spinlock);
 	mutex_init(&zr->lock);
 	if (pci_enable_device(pdev))
diff --git a/drivers/staging/media/zoran/zoran_driver.c b/drivers/staging/media/zoran/zoran_driver.c
index 4299578c9bb5..8c23bb4f6b71 100644
--- a/drivers/staging/media/zoran/zoran_driver.c
+++ b/drivers/staging/media/zoran/zoran_driver.c
@@ -1833,52 +1833,6 @@ static int zoran_s_selection(struct file *file, void *__fh, struct v4l2_selectio
 	return res;
 }
 
-static int zoran_g_jpegcomp(struct file *file, void *__fh, struct v4l2_jpegcompression *params)
-{
-	struct zoran *zr = video_drvdata(file);
-
-	memset(params, 0, sizeof(*params));
-
-	params->quality = zr->jpg_settings.jpg_comp.quality;
-	params->APPn = zr->jpg_settings.jpg_comp.APPn;
-	memcpy(params->APP_data, zr->jpg_settings.jpg_comp.APP_data,
-	       zr->jpg_settings.jpg_comp.APP_len);
-	params->APP_len = zr->jpg_settings.jpg_comp.APP_len;
-	memcpy(params->COM_data, zr->jpg_settings.jpg_comp.COM_data,
-	       zr->jpg_settings.jpg_comp.COM_len);
-	params->COM_len = zr->jpg_settings.jpg_comp.COM_len;
-	params->jpeg_markers = zr->jpg_settings.jpg_comp.jpeg_markers;
-
-	return 0;
-}
-
-static int zoran_s_jpegcomp(struct file *file, void *__fh,
-			    const struct v4l2_jpegcompression *params)
-{
-	struct zoran_fh *fh = __fh;
-	struct zoran *zr = fh->zr;
-	int res = 0;
-	struct zoran_jpg_settings settings;
-
-	settings = zr->jpg_settings;
-
-	settings.jpg_comp = *params;
-
-	if (fh->buffers.active != ZORAN_FREE) {
-		pci_warn(zr->pci_dev, "VIDIOC_S_JPEGCOMP called while in playback/capture mode\n");
-		res = -EBUSY;
-		return res;
-	}
-
-	res = zoran_check_jpg_settings(zr, &settings, 0);
-	if (res)
-		return res;
-	if (!fh->buffers.allocated)
-		zr->buffer_size = zoran_v4l2_calc_bufsize(&zr->jpg_settings);
-	zr->jpg_settings.jpg_comp = settings.jpg_comp;
-	return res;
-}
-
 static __poll_t zoran_poll(struct file *file, poll_table  *wait)
 {
 	struct zoran_fh *fh = file->private_data;
@@ -2159,8 +2113,6 @@ static const struct v4l2_ioctl_ops zoran_ioctl_ops = {
 	.vidioc_s_output		    = zoran_s_output,*/
 	.vidioc_g_std			    = zoran_g_std,
 	.vidioc_s_std			    = zoran_s_std,
-	.vidioc_g_jpegcomp		    = zoran_g_jpegcomp,
-	.vidioc_s_jpegcomp		    = zoran_s_jpegcomp,
 	.vidioc_reqbufs			    = zoran_reqbufs,
 	.vidioc_querybuf		    = zoran_querybuf,
 	.vidioc_qbuf			    = zoran_qbuf,
-- 
2.26.2


  parent reply	other threads:[~2020-09-21 10:21 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-21 10:19 [PATCH RFT/RFC 00/49] staging: media: bring back zoran driver Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 01/49] staging: media: Revert "media: zoran: remove deprecated driver" Corentin Labbe
2020-09-22  5:16   ` Christoph Hellwig
2020-09-22 19:15     ` LABBE Corentin
2020-09-21 10:19 ` [PATCH RFT/RFC 02/49] MAINTAINERS: change maintainer of the zoran driver Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 03/49] staging: media: zoran: datasheet is no longer available from zoran.com Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 04/49] staging: media: zoran: Documentation: fix typo Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 05/49] staging: media: zoran: fix checkpatch issue Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 06/49] staging: media: zoran: unsplit lines Corentin Labbe
2020-09-22  5:13   ` Christoph Hellwig
2020-09-21 10:19 ` [PATCH RFT/RFC 07/49] staging: media: zoran: do not forward declare zr36057_init_vfe Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 08/49] staging: media: zoran: convert all error dprintk to pci_err/pr_err Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 09/49] staging: media: zoran: convert dprintk warn Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 10/49] staging: media: zoran: convert dprintk info to pci_info Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 11/49] staging: media: zoran: convert dprintk debug Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 12/49] staging: media: zoran: zoran_device.c: convert pr_x to pci_x Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 13/49] staging: media: zoran: remove proc_fs Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 14/49] staging: media: zoran: use VFL_TYPE_VIDEO Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 15/49] staging: media: zoran: use v4l2_buffer_set_timestamp Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 16/49] staging: media: zoran: do not print random guest 0 Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 17/49] staging: media: zoran: move buffer_size out of zoran_fh Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 18/49] staging: media: zoran: move v4l_settings " Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 19/49] staging: media: zoran: move jpg_settings " Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 20/49] staging: media: zoran: move overlay_settings " Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 21/49] staging: media: zoran: Use video_drvdata to get struct zoran Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 22/49] staging: media: zoran: Change zoran_v4l_set_format parameter from zoran_fh to zoran Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 23/49] staging: media: zoran: remove overlay Corentin Labbe
2020-09-21 10:19 ` [PATCH RFT/RFC 24/49] staging: media: zoran: Use DMA coherent for stat_com Corentin Labbe
2020-09-22  5:14   ` Christoph Hellwig
2020-09-21 10:20 ` [PATCH RFT/RFC 25/49] staging: media: zoran: use ZR_NORM Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 26/49] staging: media: zoran: zoran does not support STD_ALL Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 27/49] staging: media: zoran: convert irq to pci irq Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 28/49] staging: media: zoran: convert zoran alloc to devm Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 29/49] staging: media: zoran: convert mdelay to udelay Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 30/49] staging: media: zoran: use devm for videocodec_master alloc Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 31/49] staging: media: zoran: use pci_request_regions Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 32/49] staging: media: zoran: use devm_ioremap Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 33/49] staging: media: zoran: add stat_com buffer Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 34/49] staging: media: zoran: constify struct tvnorm Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 35/49] staging: media: zoran: constify codec_name Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 36/49] staging: media: zoran: Add more check for compliance Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 37/49] staging: media: zoran: add fallthrough keyword Corentin Labbe
2020-09-21 10:59   ` Dan Carpenter
2020-09-24 18:03     ` LABBE Corentin
2020-09-21 10:20 ` [PATCH RFT/RFC 38/49] staging: media: zoran: Add vb_queue Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 39/49] staging: media: zoran: disable output Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 40/49] staging: media: zoran: device support only 32bit DMA address Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 41/49] staging: media: zoran: enable makefile Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 42/49] staging: media: zoran: remove framebuffer support Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 43/49] staging: media: zoran: add vidioc_g_parm Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 44/49] staging: media: zoran: remove test_interrupts Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 45/49] staging: media: zoran: fix use of buffer_size and sizeimage Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 46/49] staging: media: zoran: fix some compliance test Corentin Labbe
2020-09-21 10:20 ` Corentin Labbe [this message]
2020-09-21 10:20 ` [PATCH RFT/RFC 48/49] staging: media: zoran: convert to vb2 Corentin Labbe
2020-09-21 10:20 ` [PATCH RFT/RFC 49/49] staging: media: zoran: update TODO Corentin Labbe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1600683624-5863-48-git-send-email-clabbe@baylibre.com \
    --to=clabbe@baylibre.com \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=laurent.pinchart@skynet.be \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®