Re: [PATCH v1 5/7] staging: media: starfive: Add ISP raw video device

Dan Carpenter
2024-03-06T14:26:11Z

I wasn't able to get this patch to apply. I tried applying the patch
mentioned in the cover letter first but it didn't help... It's not
your fault, but it made reviewing the rest hard so I might have made
some mistakes.

On Wed, Mar 06, 2024 at 01:33:32AM -0800, Changhuang Liang wrote:
> Add raw video device to capture raw data from ISP.
>
> Signed-off-by: Changhuang Liang <changhuang.liang@starfivetech.com>
> ---
> .../staging/media/starfive/camss/stf-camss.c | 19 ++++++
> .../media/starfive/camss/stf-capture.c | 58 ++++++++++++++++++-
> .../staging/media/starfive/camss/stf-video.h | 1 +
> 3 files changed, 77 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/staging/media/starfive/camss/stf-camss.c b/drivers/staging/media/starfive/camss/stf-camss.c
> index 81fc39f20615..90ac8b67c76e 100644
> --- a/drivers/staging/media/starfive/camss/stf-camss.c
> +++ b/drivers/staging/media/starfive/camss/stf-camss.c
> @@ -126,6 +126,7 @@ static int stfcamss_of_parse_ports(struct stfcamss *stfcamss)
> static int stfcamss_register_devs(struct stfcamss *stfcamss)
> {
> struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV];
> + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW];
> struct stf_isp_dev *isp_dev = &stfcamss->isp_dev;
> int ret;
>
> @@ -150,8 +151,18 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss)
>
> cap_yuv->video.source_subdev = &isp_dev->subdev;
>
> + ret = media_create_pad_link(&isp_dev->subdev.entity, STF_ISP_PAD_SRC_RAW,
> + &cap_raw->video.vdev.entity, 0, 0);
> + if (ret)
> + goto err_rm_links0;
> +
> + cap_raw->video.source_subdev = &isp_dev->subdev;
> +
> return ret;
>
> +err_rm_links0:
> + media_entity_remove_links(&isp_dev->subdev.entity);

I don't think this line is correct. I think we only need to
remove &cap_yuv->video.vdev.entity.

> + media_entity_remove_links(&cap_yuv->video.vdev.entity);
> err_cap_unregister:
> stf_capture_unregister(stfcamss);
> err_isp_unregister:
> @@ -162,6 +173,14 @@ static int stfcamss_register_devs(struct stfcamss *stfcamss)
>
> static void stfcamss_unregister_devs(struct stfcamss *stfcamss)
> {
> + struct stf_capture *cap_yuv = &stfcamss->captures[STF_CAPTURE_YUV];
> + struct stf_capture *cap_raw = &stfcamss->captures[STF_CAPTURE_RAW];
> + struct stf_isp_dev *isp_dev = &stfcamss->isp_dev;
> +
> + media_entity_remove_links(&isp_dev->subdev.entity);

I think this line should be deleted.

> + media_entity_remove_links(&cap_raw->video.vdev.entity);
> + media_entity_remove_links(&cap_yuv->video.vdev.entity);

I think this "&cap_yuv" should be submitted by itself as a bugfix patch.

> +
> stf_isp_unregister(&stfcamss->isp_dev);
> stf_capture_unregister(stfcamss);
> }

regards,
dan carpenter