* [PATCH v4 1/2] media: imx-pxp: Initialize the spinlock prior to using it @ 2021-10-08 13:10 Fabio Estevam 2021-10-08 13:10 ` [PATCH v4 2/2] media: imx-pxp: Add rotation support Fabio Estevam 0 siblings, 1 reply; 5+ messages in thread From: Fabio Estevam @ 2021-10-08 13:10 UTC (permalink / raw) To: p.zabel; +Cc: hverkuil-cisco, linux-media, Fabio Estevam After devm_request_threaded_irq() is called there is a chance that an interrupt may occur before the spinlock is initialized, which will trigger a kernel oops. To prevent that, move the initialization of the spinlock prior to requesting the interrupts. Fixes: 51abcf7fdb70 ("media: imx-pxp: add i.MX Pixel Pipeline driver") Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> --- Changes since v3: - None. Just made it part of a series. drivers/media/platform/imx-pxp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/imx-pxp.c b/drivers/media/platform/imx-pxp.c index 723b096fedd1..b7174778db53 100644 --- a/drivers/media/platform/imx-pxp.c +++ b/drivers/media/platform/imx-pxp.c @@ -1659,6 +1659,8 @@ static int pxp_probe(struct platform_device *pdev) if (irq < 0) return irq; + spin_lock_init(&dev->irqlock); + ret = devm_request_threaded_irq(&pdev->dev, irq, NULL, pxp_irq_handler, IRQF_ONESHOT, dev_name(&pdev->dev), dev); if (ret < 0) { @@ -1676,8 +1678,6 @@ static int pxp_probe(struct platform_device *pdev) goto err_clk; } - spin_lock_init(&dev->irqlock); - ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev); if (ret) goto err_clk; -- 2.25.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 2/2] media: imx-pxp: Add rotation support 2021-10-08 13:10 [PATCH v4 1/2] media: imx-pxp: Initialize the spinlock prior to using it Fabio Estevam @ 2021-10-08 13:10 ` Fabio Estevam 2021-10-08 14:17 ` Philipp Zabel 0 siblings, 1 reply; 5+ messages in thread From: Fabio Estevam @ 2021-10-08 13:10 UTC (permalink / raw) To: p.zabel; +Cc: hverkuil-cisco, linux-media, Fabio Estevam PXP allows clockwise rotation of 0°, 90°, 180° and 270°. Add support for it. Tested on a imx6ull-evk. For example, to rotate 90° the following Gstreamer pipeline can be used: gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! \ v4l2convert extra-controls=cid,rotate=90 ! \ video/x-raw,width=120,height=160 ! fbdevsink Signed-off-by: Fabio Estevam <festevam@denx.de> --- Changes since v3: - Use existing definitions for the rotation modes (Philipp) - Combine the 0 and default cases (Philipp) drivers/media/platform/imx-pxp.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/drivers/media/platform/imx-pxp.c b/drivers/media/platform/imx-pxp.c index b7174778db53..689ae5e6ac62 100644 --- a/drivers/media/platform/imx-pxp.c +++ b/drivers/media/platform/imx-pxp.c @@ -211,6 +211,7 @@ struct pxp_ctx { /* Processing mode */ int mode; u8 alpha_component; + u8 rotation; enum v4l2_colorspace colorspace; enum v4l2_xfer_func xfer_func; @@ -767,14 +768,20 @@ static int pxp_start(struct pxp_ctx *ctx, struct vb2_v4l2_buffer *in_vb, V4L2_BUF_FLAG_BFRAME | V4L2_BUF_FLAG_TSTAMP_SRC_MASK); - /* Rotation disabled, 8x8 block size */ + /* 8x8 block size */ ctrl = BF_PXP_CTRL_VFLIP0(!!(ctx->mode & MEM2MEM_VFLIP)) | - BF_PXP_CTRL_HFLIP0(!!(ctx->mode & MEM2MEM_HFLIP)); + BF_PXP_CTRL_HFLIP0(!!(ctx->mode & MEM2MEM_HFLIP)) | + BF_PXP_CTRL_ROTATE0(ctx->rotation); /* Always write alpha value as V4L2_CID_ALPHA_COMPONENT */ out_ctrl = BF_PXP_OUT_CTRL_ALPHA(ctx->alpha_component) | BF_PXP_OUT_CTRL_ALPHA_OUTPUT(1) | pxp_v4l2_pix_fmt_to_out_format(dst_fourcc); out_buf = p_out; + + if (ctx->rotation == BV_PXP_CTRL_ROTATE0__ROT_90 || + ctx->rotation == BV_PXP_CTRL_ROTATE0__ROT_270) + swap(dst_width, dst_height); + switch (dst_fourcc) { case V4L2_PIX_FMT_NV12: case V4L2_PIX_FMT_NV21: @@ -1297,6 +1304,21 @@ static int pxp_s_fmt_vid_out(struct file *file, void *priv, return 0; } +static u8 pxp_degrees_to_rot_mode(u32 degrees) +{ + switch (degrees) { + case 90: + return BV_PXP_CTRL_ROTATE0__ROT_90; + case 180: + return BV_PXP_CTRL_ROTATE0__ROT_180; + case 270: + return BV_PXP_CTRL_ROTATE0__ROT_270; + case 0: + default: + return BV_PXP_CTRL_ROTATE0__ROT_0; + } +} + static int pxp_s_ctrl(struct v4l2_ctrl *ctrl) { struct pxp_ctx *ctx = @@ -1317,6 +1339,10 @@ static int pxp_s_ctrl(struct v4l2_ctrl *ctrl) ctx->mode &= ~MEM2MEM_VFLIP; break; + case V4L2_CID_ROTATE: + ctx->rotation = pxp_degrees_to_rot_mode(ctrl->val); + break; + case V4L2_CID_ALPHA_COMPONENT: ctx->alpha_component = ctrl->val; break; @@ -1524,6 +1550,7 @@ static int pxp_open(struct file *file) v4l2_ctrl_handler_init(hdl, 4); v4l2_ctrl_new_std(hdl, &pxp_ctrl_ops, V4L2_CID_HFLIP, 0, 1, 1, 0); v4l2_ctrl_new_std(hdl, &pxp_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0); + v4l2_ctrl_new_std(hdl, &pxp_ctrl_ops, V4L2_CID_ROTATE, 0, 270, 90, 0); v4l2_ctrl_new_std(hdl, &pxp_ctrl_ops, V4L2_CID_ALPHA_COMPONENT, 0, 255, 1, 255); if (hdl->error) { -- 2.25.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 2/2] media: imx-pxp: Add rotation support 2021-10-08 13:10 ` [PATCH v4 2/2] media: imx-pxp: Add rotation support Fabio Estevam @ 2021-10-08 14:17 ` Philipp Zabel 2021-11-25 3:44 ` Fabio Estevam 0 siblings, 1 reply; 5+ messages in thread From: Philipp Zabel @ 2021-10-08 14:17 UTC (permalink / raw) To: Fabio Estevam; +Cc: hverkuil-cisco, linux-media On Fri, 2021-10-08 at 10:10 -0300, Fabio Estevam wrote: > PXP allows clockwise rotation of 0°, 90°, 180° and 270°. > > Add support for it. > > Tested on a imx6ull-evk. > > For example, to rotate 90° the following Gstreamer pipeline can > be used: > > gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! \ > v4l2convert extra-controls=cid,rotate=90 ! \ > video/x-raw,width=120,height=160 ! fbdevsink > > Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> regards Philipp ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 2/2] media: imx-pxp: Add rotation support 2021-10-08 14:17 ` Philipp Zabel @ 2021-11-25 3:44 ` Fabio Estevam 2021-11-25 7:40 ` Hans Verkuil 0 siblings, 1 reply; 5+ messages in thread From: Fabio Estevam @ 2021-11-25 3:44 UTC (permalink / raw) To: Philipp Zabel, hverkuil-cisco; +Cc: linux-media Hi Hans, On 08/10/2021 11:17, Philipp Zabel wrote: > On Fri, 2021-10-08 at 10:10 -0300, Fabio Estevam wrote: >> PXP allows clockwise rotation of 0°, 90°, 180° and 270°. >> >> Add support for it. >> >> Tested on a imx6ull-evk. >> >> For example, to rotate 90° the following Gstreamer pipeline can >> be used: >> >> gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! \ >> v4l2convert extra-controls=cid,rotate=90 ! \ >> video/x-raw,width=120,height=160 ! fbdevsink >> >> Signed-off-by: Fabio Estevam <festevam@denx.de> > > Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> > > regards > Philipp A gentle ping on this series. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v4 2/2] media: imx-pxp: Add rotation support 2021-11-25 3:44 ` Fabio Estevam @ 2021-11-25 7:40 ` Hans Verkuil 0 siblings, 0 replies; 5+ messages in thread From: Hans Verkuil @ 2021-11-25 7:40 UTC (permalink / raw) To: Fabio Estevam, Philipp Zabel; +Cc: linux-media On 25/11/2021 04:44, Fabio Estevam wrote: > Hi Hans, > > On 08/10/2021 11:17, Philipp Zabel wrote: >> On Fri, 2021-10-08 at 10:10 -0300, Fabio Estevam wrote: >>> PXP allows clockwise rotation of 0°, 90°, 180° and 270°. >>> >>> Add support for it. >>> >>> Tested on a imx6ull-evk. >>> >>> For example, to rotate 90° the following Gstreamer pipeline can >>> be used: >>> >>> gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 ! \ >>> v4l2convert extra-controls=cid,rotate=90 ! \ >>> video/x-raw,width=120,height=160 ! fbdevsink >>> >>> Signed-off-by: Fabio Estevam <festevam@denx.de> >> >> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> >> >> regards >> Philipp > > A gentle ping on this series. > I hope to post the PR containing this series today. Regards, Hans ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-11-25 7:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-10-08 13:10 [PATCH v4 1/2] media: imx-pxp: Initialize the spinlock prior to using it Fabio Estevam 2021-10-08 13:10 ` [PATCH v4 2/2] media: imx-pxp: Add rotation support Fabio Estevam 2021-10-08 14:17 ` Philipp Zabel 2021-11-25 3:44 ` Fabio Estevam 2021-11-25 7:40 ` Hans Verkuil
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.