linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: <Eugen.Hristev@microchip.com>
To: <laurent.pinchart@ideasonboard.com>
Cc: <mchehab@kernel.org>, <sakari.ailus@linux.intel.com>,
	<linux-media@vger.kernel.org>
Subject: Re: [PATCH 1/1] microchip-csi2dc: Remove VC support for now
Date: Tue, 8 Feb 2022 11:36:16 +0000	[thread overview]
Message-ID: <5168daa7-2f8b-fdbe-7a15-12de3428322a@microchip.com> (raw)
In-Reply-To: <YgJOqb06gmNhFw6X@pendragon.ideasonboard.com>

On 2/8/22 1:06 PM, Laurent Pinchart wrote:
> Hi Eugen,
> 
> On Tue, Feb 08, 2022 at 08:00:19AM +0000, Eugen.Hristev@microchip.com wrote:
>> On 2/8/22 7:11 AM, Mauro Carvalho Chehab wrote:
>>> Em Wed,  2 Feb 2022 17:36:09 +0200 Sakari Ailus escreveu:
>>>
>>>> As part of removing mbus config flags, remove VC flag use in the
>>>> microchip-csi2dc driver. The support can be reintroduced later on as part
>>>> of the streams patches.
>>>>
>>>> Cc: Eugen Hristev <eugen.hristev@microchip.com>
>>>
>>> Hmm... that sounds a regression to me. What effects this will cause at
>>> the driver?
>>>
>>> Eugen, any comments?
>>
>> Hi ,
>>
>> I am not happy with this change. It looks like I wasn't even CC-ed on
>> the original patch e-mail.
>>
>> The effect on the driver will be that everything will be treated as
>> virtual channel=0 .
> 
> I don't think there's any risk of regression, as we have no driver
> setting any of the V4L2_MBUS_CSI2_CHANNEL_[123] flags in the kernel.
> 
>> I do not yet understand why we are about to remove
>> V4L2_MBUS_CSI2_CHANNEL_* as I remember this was just introduced.
> 
> Those flags were added in 2011. If you think of that as "just
> introduced" then I understand why you would be unhappy about "sudden
> changes" mentioned below ;-)

Hello Laurent,

I am sorry, I was referring to the get_mbus_config which was recently 
added, which in my case uses V4L2_MBUS_CSI2_CHANNEL_* .
Without the get_mbus_config, I wasn't supposed to use the 
V4L2_MBUS_CSI2_CHANNEL_* at all .
Hence my confusion in adding them into the same bucket.

My driver uses these flags because my initial implementation to get the 
VC from the devicetree was rejected and this was suggested instead.

> 
>> Is there any alternative in place ?
> 
> Virtual channels have never been properly supported in V4L2. This is
> going to change with "[PATCH v10 00/38] v4l: subdev internal routing and
> streams" ([1]).
> 
> [1] https://lore.kernel.org/all/20211130141536.891878-1-tomi.valkeinen@ideasonboard.com

In that case then I suppose the support in the csi2dc driver has to be 
rewritten

> 
>> My opinion is that if we want to replace something existing with a new
>> API or something else, we should first add the new support, block any
>> new adopters for the old API such that everyone uses the new API, and
>> only after that convert the old API clients to the new API.
>> So 'can be reintroduced later on' is not okay. We can't remove things in
>> the hope that it would be reintroduced later. Just my personal take on
>> this, feel free to have a different opinion.
> 
> When regressions are introduced this makes sense, but here we're
> dropping a feature that isn't used as no kernel driver selects a VC
> different than 0.

I still disagree that these should be removed before the patch you 
mentioned earlier about adding 'subdev internal routing and streams' is 
applied. I see things in the way that after the new support is 
available, old flags , even if unused, can be removed.
You can disagree, of course.

Thank you for sharing your thoughts,
Eugen

> 
>> In the end you guys are the maintainers for the subsystem and can have
>> this change if you like, I am more unhappy about the fact that changes
>> happen suddenly and without notice.
>>
>>>> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
>>>> ---
>>>>    .../media/platform/atmel/microchip-csi2dc.c    | 18 ++----------------
>>>>    1 file changed, 2 insertions(+), 16 deletions(-)
>>>>
>>>> diff --git a/drivers/media/platform/atmel/microchip-csi2dc.c b/drivers/media/platform/atmel/microchip-csi2dc.c
>>>> index 6bc549c28e05..6a7f5b4b0e3b 100644
>>>> --- a/drivers/media/platform/atmel/microchip-csi2dc.c
>>>> +++ b/drivers/media/platform/atmel/microchip-csi2dc.c
>>>> @@ -348,24 +348,15 @@ static int csi2dc_get_mbus_config(struct csi2dc_device *csi2dc)
>>>>         if (ret == -ENOIOCTLCMD) {
>>>>                 dev_dbg(csi2dc->dev,
>>>>                         "no remote mbus configuration available\n");
>>>> -             goto csi2dc_get_mbus_config_defaults;
>>>> +             return 0;
>>>>         }
>>>>
>>>>         if (ret) {
>>>>                 dev_err(csi2dc->dev,
>>>>                         "failed to get remote mbus configuration\n");
>>>> -             goto csi2dc_get_mbus_config_defaults;
>>>> +             return 0;
>>>>         }
>>>>
>>>> -     if (mbus_config.flags & V4L2_MBUS_CSI2_CHANNEL_0)
>>>> -             csi2dc->vc = 0;
>>>> -     else if (mbus_config.flags & V4L2_MBUS_CSI2_CHANNEL_1)
>>>> -             csi2dc->vc = 1;
>>>> -     else if (mbus_config.flags & V4L2_MBUS_CSI2_CHANNEL_2)
>>>> -             csi2dc->vc = 2;
>>>> -     else if (mbus_config.flags & V4L2_MBUS_CSI2_CHANNEL_3)
>>>> -             csi2dc->vc = 3;
>>>> -
>>>>         dev_dbg(csi2dc->dev, "subdev sending on channel %d\n", csi2dc->vc);
>>>>
>>>>         csi2dc->clk_gated = mbus_config.flags &
>>>> @@ -375,11 +366,6 @@ static int csi2dc_get_mbus_config(struct csi2dc_device *csi2dc)
>>>>                 csi2dc->clk_gated ? "gated" : "free running");
>>>>
>>>>         return 0;
>>>> -
>>>> -csi2dc_get_mbus_config_defaults:
>>>> -     csi2dc->vc = 0; /* Virtual ID 0 by default */
>>>> -
>>>> -     return 0;
>>>>    }
>>>>
>>>>    static void csi2dc_vp_update(struct csi2dc_device *csi2dc)
> 
> --
> Regards,
> 
> Laurent Pinchart
> 


  parent reply	other threads:[~2022-02-08 11:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-02 15:36 [PATCH 1/1] microchip-csi2dc: Remove VC support for now Sakari Ailus
2022-02-08  5:11 ` Mauro Carvalho Chehab
2022-02-08  8:00   ` Eugen.Hristev
2022-02-08  8:05     ` Eugen.Hristev
2022-02-08 11:06     ` Laurent Pinchart
2022-02-08 11:16       ` Sakari Ailus
2022-02-08 11:37         ` Eugen.Hristev
2022-02-08 11:36       ` Eugen.Hristev [this message]
2022-02-08 12:19         ` Laurent Pinchart
2022-02-15 19:21         ` Sakari Ailus
2022-02-15 20:10           ` Eugen.Hristev
2022-02-17 11:10             ` Sakari Ailus

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=5168daa7-2f8b-fdbe-7a15-12de3428322a@microchip.com \
    --to=eugen.hristev@microchip.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /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;
as well as URLs for NNTP newsgroup(s).