media: xilinx-vipp: Use for_each_child_of_node_scoped()Avoids the need for manual cleanup of_node_put() in early exitsfrom the loop.Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>Signed-off-
media: xilinx-vipp: Use for_each_child_of_node_scoped()Avoids the need for manual cleanup of_node_put() in early exitsfrom the loop.Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
show more ...
media: xilinx-tpg: fix double put in xtpg_parse_of()This loop was recently converted to use for_each_of_graph_port() whichautomatically does __cleanup__ on the "port" iterator variable. Deleteth
media: xilinx-tpg: fix double put in xtpg_parse_of()This loop was recently converted to use for_each_of_graph_port() whichautomatically does __cleanup__ on the "port" iterator variable. Deletethe calls to of_node_put(port) to avoid a double put bug.Fixes: 393194cdf11e ("media: xilinx-tpg: use new of_graph functions")Cc: stable@vger.kernel.orgSigned-off-by: Dan Carpenter <dan.carpenter@linaro.org>Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Merge tag 'media/v6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediaPull media updates from Mauro Carvalho Chehab: - removal of the old omap4iss media driver - mantis:
Merge tag 'media/v6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediaPull media updates from Mauro Carvalho Chehab: - removal of the old omap4iss media driver - mantis: remove orphan mantis_core.h - add support for Raspberypi CFE - uvc driver got a co-maintainer - main media tree moved to git://linuxtv.org/media.git - lots of driver cleanups, updates and fixes* tag 'media/v6.13-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (233 commits) docs: media: update location of the media patches MAINTAINERS: update location of media main tree media: MAINTAINERS: Add Hans de Goede as USB VIDEO CLASS co-maintainer media: platform: samsung: s5p-jpeg: Remove deadcode media: qcom: camss: Add MSM8953 resources media: dt-bindings: Add qcom,msm8953-camss media: qcom: camss: implement pm domain ops for VFE v4.1 media: platform: exynos4-is: Fix an OF node reference leak in fimc_md_is_isp_available media: adv7180: Also check for "adi,force-bt656-4" media: dt-bindings: adv7180: Document 'adi,force-bt656-4' media: mgb4: Fix inconsistent input/output alignment in loopback mode media: replace obsolete hans.verkuil@cisco.com alias Documentation: media: improve V4L2_CID_MIN_BUFFERS_FOR_*, doc media: vicodec: add V4L2_CID_MIN_BUFFERS_FOR_* controls media: atomisp: Add check for rgby_data memory allocation failure media: atomisp: remove redundant re-checking of err media: atomisp: Fix spelling errors reported by codespell media: atomisp: Remove License information boilerplate media: atomisp: Fix typos in comment media: atomisp: hmm_bo: Fix spelling errors in hmm_bo.h ...
media: platform: drop vb2_ops_wait_prepare/finishSince commit 88785982a19d ("media: vb2: use lock if wait_prepare/finishare NULL") it is no longer needed to set the wait_prepare/finishvb2_ops cal
media: platform: drop vb2_ops_wait_prepare/finishSince commit 88785982a19d ("media: vb2: use lock if wait_prepare/finishare NULL") it is no longer needed to set the wait_prepare/finishvb2_ops callbacks as long as the lock field in vb2_queue is set.Since the vb2_ops_wait_prepare/finish callbacks already rely on that field,we can safely drop these callbacks.This simplifies the code and this is a step towards the goal of deletingthese callbacks.Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> # for meson-ge2dAcked-by: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
media: xilinx-tpg: use new of_graph functionsNow we can use new port related functions for port parsing. Use it.Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>Reviewed-by: To
media: xilinx-tpg: use new of_graph functionsNow we can use new port related functions for port parsing. Use it.Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>Reviewed-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>Link: https://lore.kernel.org/r/87a5eub5s8.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: Rob Herring (Arm) <robh@kernel.org>
media: Switch back to struct platform_driver::remove()After commit 0edb555a65d1 ("platform: Make platform_driver::remove()return void") .remove() is (again) the right callback to implement forpla
media: Switch back to struct platform_driver::remove()After commit 0edb555a65d1 ("platform: Make platform_driver::remove()return void") .remove() is (again) the right callback to implement forplatform drivers.Convert all platform drivers below drivers/media to use .remove(), withthe eventual goal to drop struct platform_driver::remove_new(). As.remove() and .remove_new() have the same prototypes, conversion is doneby just changing the structure member name in the driver initializer.Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: platform: xilinx: use for_each_endpoint_of_node()We already have for_each_endpoint_of_node(), don't useof_graph_get_next_endpoint() directly. Replace it.Signed-off-by: Kuninori Morimoto <
media: platform: xilinx: use for_each_endpoint_of_node()We already have for_each_endpoint_of_node(), don't useof_graph_get_next_endpoint() directly. Replace it.Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: xilinx: Refactor struct xvip_dmaReplace a single element array with a single field.The following cocci warning is fixed:drivers/media/platform/xilinx/xilinx-dma.h:100:19-22: WARNING use f
media: xilinx: Refactor struct xvip_dmaReplace a single element array with a single field.The following cocci warning is fixed:drivers/media/platform/xilinx/xilinx-dma.h:100:19-22: WARNING use flexible-array member instead (https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays)Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: platform: xilinx: Fix Kconfig indentationUse proper indentation for Kconfig fragments - help part.Signed-off-by: Michal Simek <michal.simek@amd.com>Reviewed-by: Randy Dunlap <rdunlap@infr
media: platform: xilinx: Fix Kconfig indentationUse proper indentation for Kconfig fragments - help part.Signed-off-by: Michal Simek <michal.simek@amd.com>Reviewed-by: Randy Dunlap <rdunlap@infradead.org>Tested-by: Randy Dunlap <rdunlap@infradead.org>Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l2-subdev: Rename .init_cfg() operation to .init_state()The subdev .init_cfg() operation is affected by two issues:- It has long been extended to initialize a whole v4l2_subdev_state i
media: v4l2-subdev: Rename .init_cfg() operation to .init_state()The subdev .init_cfg() operation is affected by two issues:- It has long been extended to initialize a whole v4l2_subdev_state instead of just a v4l2_subdev_pad_config, but its name has stuck around.- Despite operating on a whole subdev state and not being directly exposed to the subdev users (either in-kernel or through the userspace API), .init_cfg() is categorized as a subdev pad operation.This participates in making the subdev API confusing for new developers.Fix it by renaming the operation to .init_state(), and make it a subdevinternal operation.Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Acked-by: Michael Riesch <michael.riesch@wolfvision.net> # for imx415Acked-by: Shuah Khan <skhan@linuxfoundation.org> # for vimcReviewed-by: Philipp Zabel <p.zabel@pengutronix.de>Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>[Sakari Ailus: Resolved a conflict in Renesas vsp1 driver.]Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l: subdev: Switch to stream-aware state functionsSwitch all drivers accessing sub-device state to use the stream-awarefunctions. We will soon remove the old ones.This patch has been gen
media: v4l: subdev: Switch to stream-aware state functionsSwitch all drivers accessing sub-device state to use the stream-awarefunctions. We will soon remove the old ones.This patch has been generated using the following Coccinelle script:---------8<------------@@expression E1, E2, E3;@@- v4l2_subdev_get_pad_format(E1, E2, E3)+ v4l2_subdev_state_get_format(E2, E3)@@expression E1, E2, E3;@@- v4l2_subdev_get_pad_crop(E1, E2, E3)+ v4l2_subdev_state_get_crop(E2, E3)@@expression E1, E2, E3;@@- v4l2_subdev_get_pad_compose(E1, E2, E3)+ v4l2_subdev_state_get_compose(E2, E3)@@expression E1, E2, E3;@@- v4l2_subdev_get_try_format(E1, E2, E3)+ v4l2_subdev_state_get_format(E2, E3)@@expression E1, E2, E3;@@- v4l2_subdev_get_try_crop(E1, E2, E3)+ v4l2_subdev_state_get_crop(E2, E3)@@expression E1, E2, E3;@@- v4l2_subdev_get_try_compose(E1, E2, E3)+ v4l2_subdev_state_get_compose(E2, E3)---------8<------------Additionally drivers/media/i2c/s5k5baf.c anddrivers/media/platform/samsung/s3c-camif/camif-capture.c have beenmanually changed as Coccinelle didn't. Further local variables have beenremoved as they became unused as a result of the other changes.Also Coccinelle introduced indentation by space in filesdrivers/media/i2c/st-mipid02.c anddrivers/media/platform/rockchip/rkisp1/rkisp1-isp.c. This has been alsocorrected.The diff from Coccinelle-generated changes are:> diff --git b/drivers/media/i2c/imx319.c a/drivers/media/i2c/imx319.c> index e549692ff478..420984382173 100644> --- b/drivers/media/i2c/imx319.c> +++ a/drivers/media/i2c/imx319.c> @@ -2001,7 +2001,6 @@ static int imx319_do_get_pad_format(struct imx319 *imx319,> struct v4l2_subdev_format *fmt)> {> struct v4l2_mbus_framefmt *framefmt;> - struct v4l2_subdev *sd = &imx319->sd;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);> diff --git b/drivers/media/i2c/imx355.c a/drivers/media/i2c/imx355.c> index 96bdde685d65..e1b1d2fc79dd 100644> --- b/drivers/media/i2c/imx355.c> +++ a/drivers/media/i2c/imx355.c> @@ -1299,7 +1299,6 @@ static int imx355_do_get_pad_format(struct imx355 *imx355,> struct v4l2_subdev_format *fmt)> {> struct v4l2_mbus_framefmt *framefmt;> - struct v4l2_subdev *sd = &imx355->sd;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);> diff --git b/drivers/media/i2c/ov08x40.c a/drivers/media/i2c/ov08x40.c> index ca799bbcfdb7..abbb0b774d43 100644> --- b/drivers/media/i2c/ov08x40.c> +++ a/drivers/media/i2c/ov08x40.c> @@ -2774,7 +2774,6 @@ static int ov08x40_do_get_pad_format(struct ov08x40 *ov08x,> struct v4l2_subdev_format *fmt)> {> struct v4l2_mbus_framefmt *framefmt;> - struct v4l2_subdev *sd = &ov08x->sd;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);> diff --git b/drivers/media/i2c/ov13858.c a/drivers/media/i2c/ov13858.c> index 7816d9787c61..09387e335d80 100644> --- b/drivers/media/i2c/ov13858.c> +++ a/drivers/media/i2c/ov13858.c> @@ -1316,7 +1316,6 @@ static int ov13858_do_get_pad_format(struct ov13858 *ov13858,> struct v4l2_subdev_format *fmt)> {> struct v4l2_mbus_framefmt *framefmt;> - struct v4l2_subdev *sd = &ov13858->sd;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);> diff --git b/drivers/media/i2c/ov13b10.c a/drivers/media/i2c/ov13b10.c> index 268cd4b03f9c..c06411d5ee2b 100644> --- b/drivers/media/i2c/ov13b10.c> +++ a/drivers/media/i2c/ov13b10.c> @@ -1001,7 +1001,6 @@ static int ov13b10_do_get_pad_format(struct ov13b10 *ov13b,> struct v4l2_subdev_format *fmt)> {> struct v4l2_mbus_framefmt *framefmt;> - struct v4l2_subdev *sd = &ov13b->sd;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> framefmt = v4l2_subdev_state_get_format(sd_state, fmt->pad);> diff --git b/drivers/media/i2c/s5c73m3/s5c73m3-core.c a/drivers/media/i2c/s5c73m3/s5c73m3-core.c> index 47605e36bc60..8f9b5713daf7 100644> --- b/drivers/media/i2c/s5c73m3/s5c73m3-core.c> +++ a/drivers/media/i2c/s5c73m3/s5c73m3-core.c> @@ -819,7 +819,6 @@ static void s5c73m3_oif_try_format(struct s5c73m3 *state,> struct v4l2_subdev_format *fmt,> const struct s5c73m3_frame_size **fs)> {> - struct v4l2_subdev *sd = &state->sensor_sd;> u32 code;>> switch (fmt->pad) {> diff --git a/drivers/media/i2c/s5k5baf.c b/drivers/media/i2c/s5k5baf.c> index 67da2045f543..03ccfb0e1e11 100644> --- a/drivers/media/i2c/s5k5baf.c> +++ b/drivers/media/i2c/s5k5baf.c> @@ -1472,14 +1472,11 @@ static int s5k5baf_set_selection(struct v4l2_subdev *sd,>> if (sel->which == V4L2_SUBDEV_FORMAT_TRY) {> rects = (struct v4l2_rect * []) {> - &s5k5baf_cis_rect,> - v4l2_subdev_get_try_crop(sd, sd_state,> - PAD_CIS),> - v4l2_subdev_get_try_compose(sd, sd_state,> - PAD_CIS),> - v4l2_subdev_get_try_crop(sd, sd_state,> - PAD_OUT)> - };> + &s5k5baf_cis_rect,> + v4l2_subdev_state_get_crop(sd_state, PAD_CIS),> + v4l2_subdev_state_get_compose(sd_state, PAD_CIS),> + v4l2_subdev_state_get_crop(sd_state, PAD_OUT)> + };> s5k5baf_set_rect_and_adjust(rects, rtype, &sel->r);> return 0;> }> diff --git b/drivers/media/platform/samsung/s3c-camif/camif-capture.c a/drivers/media/platform/samsung/s3c-camif/camif-capture.c> index 295e083f38e8..be58260ea67e 100644> --- b/drivers/media/platform/samsung/s3c-camif/camif-capture.c> +++ a/drivers/media/platform/samsung/s3c-camif/camif-capture.c> @@ -1216,7 +1216,7 @@ static int s3c_camif_subdev_get_fmt(struct v4l2_subdev *sd,> struct v4l2_mbus_framefmt *mf = &fmt->format;>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> - mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);> + mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);> fmt->format = *mf;> return 0;> }> @@ -1305,7 +1305,7 @@ static int s3c_camif_subdev_set_fmt(struct v4l2_subdev *sd,> __camif_subdev_try_format(camif, mf, fmt->pad);>> if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {> - mf = v4l2_subdev_get_try_format(sd, sd_state, fmt->pad);> + mf = v4l2_subdev_state_get_format(sd_state, fmt->pad);> *mf = fmt->format;> mutex_unlock(&camif->lock);> return 0;> diff --git b/drivers/media/platform/ti/cal/cal-camerarx.c a/drivers/media/platform/ti/cal/cal-camerarx.c> index cea454ed9c20..61433744c6c4 100644> --- b/drivers/media/platform/ti/cal/cal-camerarx.c> +++ a/drivers/media/platform/ti/cal/cal-camerarx.c> @@ -621,8 +621,6 @@ static int cal_camerarx_sd_enum_mbus_code(struct v4l2_subdev *sd,> struct v4l2_subdev_state *state,> struct v4l2_subdev_mbus_code_enum *code)> {> - struct cal_camerarx *phy = to_cal_camerarx(sd);> -> /* No transcoding, source and sink codes must match. */> if (cal_rx_pad_is_source(code->pad)) {> struct v4l2_mbus_framefmt *fmt;> diff --git b/drivers/staging/media/imx/imx-ic-prp.c a/drivers/staging/media/imx/imx-ic-prp.c> index dd558fac6477..61d69f19657e 100644> --- b/drivers/staging/media/imx/imx-ic-prp.c> +++ a/drivers/staging/media/imx/imx-ic-prp.c> @@ -82,8 +82,6 @@ static struct v4l2_mbus_framefmt *> __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,> unsigned int pad, enum v4l2_subdev_format_whence which)> {> - struct imx_ic_priv *ic_priv = priv->ic_priv;> -> if (which == V4L2_SUBDEV_FORMAT_TRY)> return v4l2_subdev_state_get_format(sd_state, pad);> else> diff --git b/drivers/staging/media/imx/imx-ic-prpencvf.c a/drivers/staging/media/imx/imx-ic-prpencvf.c> index 02db7dbb884b..ec73c901079e 100644> --- b/drivers/staging/media/imx/imx-ic-prpencvf.c> +++ a/drivers/staging/media/imx/imx-ic-prpencvf.c> @@ -790,8 +790,6 @@ static struct v4l2_mbus_framefmt *> __prp_get_fmt(struct prp_priv *priv, struct v4l2_subdev_state *sd_state,> unsigned int pad, enum v4l2_subdev_format_whence which)> {> - struct imx_ic_priv *ic_priv = priv->ic_priv;> -> if (which == V4L2_SUBDEV_FORMAT_TRY)> return v4l2_subdev_state_get_format(sd_state, pad);> else> diff --git a/drivers/media/i2c/st-mipid02.c b/drivers/media/i2c/st-mipid02.c> index 9c9361354c00..b08a249b5fdd 100644> --- a/drivers/media/i2c/st-mipid02.c> +++ b/drivers/media/i2c/st-mipid02.c> @@ -751,7 +751,7 @@ static void mipid02_set_fmt_source(struct v4l2_subdev *sd,> format->format = bridge->fmt;> else> format->format = *v4l2_subdev_state_get_format(sd_state,> - MIPID02_SINK_0);> + MIPID02_SINK_0);>> /* but code may need to be converted */> format->format.code = serial_to_parallel_code(format->format.code);> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c> index 117912d3bfbd..96353648c032 100644> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-isp.c> @@ -319,7 +319,7 @@ static void rkisp1_isp_start(struct rkisp1_isp *isp,> rkisp1_write(rkisp1, RKISP1_CIF_ISP_CTRL, val);>> src_fmt = v4l2_subdev_state_get_format(sd_state,> - RKISP1_ISP_PAD_SOURCE_VIDEO);> + RKISP1_ISP_PAD_SOURCE_VIDEO);> src_info = rkisp1_mbus_info_get_by_code(src_fmt->code);>> if (src_info->pixel_enc != V4L2_PIXEL_ENC_BAYER)> @@ -475,9 +475,9 @@ static void rkisp1_isp_set_src_fmt(struct rkisp1_isp *isp,> sink_fmt = v4l2_subdev_state_get_format(sd_state,> RKISP1_ISP_PAD_SINK_VIDEO);> src_fmt = v4l2_subdev_state_get_format(sd_state,> - RKISP1_ISP_PAD_SOURCE_VIDEO);> + RKISP1_ISP_PAD_SOURCE_VIDEO);> src_crop = v4l2_subdev_state_get_crop(sd_state,> - RKISP1_ISP_PAD_SOURCE_VIDEO);> + RKISP1_ISP_PAD_SOURCE_VIDEO);>> /*> * Media bus code. The ISP can operate in pass-through mode (Bayer in,Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: xilinx: csi2rxss: Drop comment blocks for subdev op handlersThe V4L2 subdev operation handlers have short documentation blocks thatmerely duplicates information from the V4L2 subdev API doc
media: xilinx: csi2rxss: Drop comment blocks for subdev op handlersThe V4L2 subdev operation handlers have short documentation blocks thatmerely duplicates information from the V4L2 subdev API documentation.They offer no value, and are prone to bit-rotting as shown by theixcsi2rxss_set_format() documentation being incorrect. Drop them.Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Merge tag 'media/v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediaPull media updates from Mauro Carvalho Chehab: - the old V4L2 core videobuf kAPI was finally removed.
Merge tag 'media/v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-mediaPull media updates from Mauro Carvalho Chehab: - the old V4L2 core videobuf kAPI was finally removed. All media drivers should now be using VB2 kAPI - new automotive driver: mgb4 - new platform video driver: npcm-video - new sensor driver: mt9m114 - new TI driver used in conjunction with Cadence CSI2RX IP to bridge TI-specific parts - ir-rx51 was removed and the N900 DT binding was moved to the pwm-ir-tx generic driver - drop atomisp-specific ov5693, using the upstream driver instead - the camss driver has gained RDI3 support for VFE 17x - the atomisp driver now detects ISP2400 or ISP2401 at run time. No need to set it up at build time anymore - lots of driver fixes, cleanups and improvements* tag 'media/v6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (377 commits) media: nuvoton: VIDEO_NPCM_VCD_ECE should depend on ARCH_NPCM media: venus: Fix firmware path for resources media: venus: hfi_cmds: Replace one-element array with flex-array member and use __counted_by media: venus: hfi_parser: Add check to keep the number of codecs within range media: venus: hfi: add checks to handle capabilities from firmware media: venus: hfi: fix the check to handle session buffer requirement media: venus: hfi: add checks to perform sanity on queue pointers media: platform: cadence: select MIPI_DPHY dependency media: MAINTAINERS: Fix path for J721E CSI2RX bindings media: cec: meson: always include meson sub-directory in Makefile media: videobuf2: Fix IS_ERR checking in vb2_dc_put_userptr() media: platform: mtk-mdp3: fix uninitialized variable in mdp_path_config() media: mediatek: vcodec: using encoder device to alloc/free encoder memory media: imx-jpeg: notify source chagne event when the first picture parsed media: cx231xx: Use EP5_BUF_SIZE macro media: siano: Drop unnecessary error check for debugfs_create_dir/file() media: mediatek: vcodec: Handle invalid encoder vsi media: aspeed: Drop unnecessary error check for debugfs_create_file() Documentation: media: buffer.rst: fix V4L2_BUF_FLAG_PREPARED Documentation: media: gen-errors.rst: fix confusing ENOTTY description ...
media: xilinx-vipp: Look for entities also in waiting_listThe big V4L2 async framework overhaul simplified linked lists used by theV4L2 async framework. This affected a few drivers and it turns ou
media: xilinx-vipp: Look for entities also in waiting_listThe big V4L2 async framework overhaul simplified linked lists used by theV4L2 async framework. This affected a few drivers and it turns out a fewof those drivers rely on searching for entities in both async notifier'swaiting and done lists. Do that by separately traversing both.Fixes: 9bf19fbf0c8b ("media: v4l: async: Rework internal lists")Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: platform: Use dev_err_probe instead of dev_errIt is possible that dma_request_chan will return EPROBE_DEFER,which means that dma->xdev->dev is not ready yet. In this case,dev_err(dma->xdev
media: platform: Use dev_err_probe instead of dev_errIt is possible that dma_request_chan will return EPROBE_DEFER,which means that dma->xdev->dev is not ready yet. In this case,dev_err(dma->xdev->dev), there will be no output. This patchfixes the bug.Signed-off-by: Wang Ming <machel@vivo.com>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: v4l: async: Set v4l2_device and subdev in async notifier initSet the v4l2_device already in async notifier init, so struct devicerelated to it will be available before the notifier is regis
media: v4l: async: Set v4l2_device and subdev in async notifier initSet the v4l2_device already in async notifier init, so struct devicerelated to it will be available before the notifier is registered. Thisrequires separating notifier initialisation into two functions, one thattakes v4l2_device as its argument, v4l2_async_nf_init andv4l2_async_subdev_nf_init, for sub-device notifiers. Registering thenotifier will use a single function, v4l2_async_nf_register.This is done in order to make struct device available earlier, duringconstruction of the async connections, for sensible debug prints.Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xTested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: xilinx-vipp: Init async notifier after registering V4L2 deviceInitialise the V4L2 async notifier after registering the V4L2 device, justbefore parsing DT for async sub-devices. This way the
media: xilinx-vipp: Init async notifier after registering V4L2 deviceInitialise the V4L2 async notifier after registering the V4L2 device, justbefore parsing DT for async sub-devices. This way the device can be madeavailable to the V4L2 async framework from the notifier init time onwards.A subsequent patch will add struct v4l2_device as an argument tov4l2_async_nf_init().Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xTested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: v4l: async: Rework internal listsThis patch re-arranges internal V4L2 async lists for preparation ofsupporting multiple connections per sub-device as well as cleaning up usedlists.The li
media: v4l: async: Rework internal listsThis patch re-arranges internal V4L2 async lists for preparation ofsupporting multiple connections per sub-device as well as cleaning up usedlists.The list of unbound V4L2 sub-devices shall be maintained for the purpose oflisting those sub-devices only, not for their bindin status. Also, the V4L2async connections now have, instead of two list entries, a single listentry in the notifier's list, be that either waiting or done lists, whilethe notifier's asc_list is removed.The one-to-one relation between a sub-device and a connection is stillmaintained in this patch.Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xTested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connectionRename v4l2_async_subdev as v4l2_async_connection, in order todifferentiate between the sub-devices and their connections: ones
media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connectionRename v4l2_async_subdev as v4l2_async_connection, in order todifferentiate between the sub-devices and their connections: onesub-device can have many connections but the V4L2 async framework has sofar allowed just a single one. Connections in this context will latertranslate into either MC ancillary or data links.This patch prepares changing that relation by changing existing users ofv4l2_async_subdev to switch to v4l2_async_connection. Async sub-devicesthemselves will not be needed anymoreAdditionally, __v4l2_async_nf_add_subdev() has been renamed__v4l2_async_nf_add_connection().Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xTested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: v4l: async: Clean up list heads and entriesThe naming of list heads and list entries is confusing as they're namedsimilarly. Use _list for list head and _entry for list entries.Signed-off
media: v4l: async: Clean up list heads and entriesThe naming of list heads and list entries is confusing as they're namedsimilarly. Use _list for list head and _entry for list entries.Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xTested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: xilinx-vipp: Clean up bound async notifier callbackThe async notifier bound callback does a lot of checks that have probablybeen always unnecessary. Remove the lookup of the async subev tha
media: xilinx-vipp: Clean up bound async notifier callbackThe async notifier bound callback does a lot of checks that have probablybeen always unnecessary. Remove the lookup of the async subev that wealready have, as well as the debug print that is already printed by theframework.Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Tested-by: Philipp Zabel <p.zabel@pengutronix.de> # imx6qpTested-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> # rcar + adv746xReviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>Tested-by: Aishwarya Kothari <aishwarya.kothari@toradex.com> # Apalis i.MX6Q with TC358743Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> # Renesas RZ/G2L SMARCSigned-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
media: Zero-initialize all structures passed to subdev pad operationsSeveral drivers call subdev pad operations, passing structures that arenot fully zeroed. While the drivers initialize the field
media: Zero-initialize all structures passed to subdev pad operationsSeveral drivers call subdev pad operations, passing structures that arenot fully zeroed. While the drivers initialize the fields they careabout explicitly, this results in reserved fields having uninitializedvalues. Future kernel API changes that make use of those fields thusrisk breaking proper driver operation in ways that could be hard todetect.To avoid this, make the code more robust by zero-initializing all thestructures passed to subdev pad operation. Maintain a consistent codingstyle by preferring designated initializers (which zero-initialize allthe fields that are not specified) over memset() where possible, andmake variable declarations local to inner scopes where applicable. Onenotable exception to this rule is in the ipu3 driver, where a memset()is needed as the structure is not a local variable but a functionparameter provided by the caller.Not all fields of those structures can be initialized when declaring thevariables, as the values for those fields are computed later in thecode. Initialize the 'which' field in all cases, and other fields whenthe variable declaration is so close to the v4l2_subdev_call() call thatit keeps all the context easily visible when reading the code, to avoidhindering readability.Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Acked-by: Shuah Khan <skhan@linuxfoundation.org> # For vimcReviewed-by: Lad Prabhakar <prabhakar.csengg@gmail.com> # For am437xAcked-by: Sakari Ailus <sakari.ailus@linux.intel.com>Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> # For drivers/staging/media/imx/Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: Use of_property_present() for testing DT property presenceIt is preferred to use typed property access functions (i.e.of_property_read_<type> functions) rather than low-levelof_get_propert
media: Use of_property_present() for testing DT property presenceIt is preferred to use typed property access functions (i.e.of_property_read_<type> functions) rather than low-levelof_get_property/of_find_property functions for reading properties. Aspart of this, convert of_get_property/of_find_property calls to therecently added of_property_present() helper when we just want to testfor presence of a property and nothing more.Signed-off-by: Rob Herring <robh@kernel.org>Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: xilinx-vtc: Convert to platform remove callback returning voidThe .remove() callback for a platform driver returns an int which makesmany driver authors wrongly assume it's possible to do e
media: xilinx-vtc: Convert to platform remove callback returning voidThe .remove() callback for a platform driver returns an int which makesmany driver authors wrongly assume it's possible to do error handling byreturning an error code. However the value returned is (mostly) ignoredand this typically results in resource leaks. To improve here there is aquest to make the remove callback return void. In the first step of thisquest all drivers are converted to .remove_new() which already returnsvoid.Trivially convert this driver from always returning zero in the removecallback to the void returning variant.Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
media: xilinx-vipp: Convert to platform remove callback returning voidThe .remove() callback for a platform driver returns an int which makesmany driver authors wrongly assume it's possible to do
media: xilinx-vipp: Convert to platform remove callback returning voidThe .remove() callback for a platform driver returns an int which makesmany driver authors wrongly assume it's possible to do error handling byreturning an error code. However the value returned is (mostly) ignoredand this typically results in resource leaks. To improve here there is aquest to make the remove callback return void. In the first step of thisquest all drivers are converted to .remove_new() which already returnsvoid.Trivially convert this driver from always returning zero in the removecallback to the void returning variant.Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
12345