All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sui Jingfeng <sui.jingfeng@linux.dev>
To: Jani Nikula <jani.nikula@linux.intel.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Maxime Ripard <mripard@kernel.org>,
	Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] drm/bridge: Support finding bridge with struct device
Date: Wed, 15 May 2024 18:34:59 +0800	[thread overview]
Message-ID: <bd175eb3-ca70-4ce7-89ab-ca7f622ed153@linux.dev> (raw)
In-Reply-To: <87pltncqtg.fsf@intel.com>

Hi,


On 5/15/24 18:28, Jani Nikula wrote:
> On Wed, 15 May 2024, Sui Jingfeng <sui.jingfeng@linux.dev> wrote:
>> Hi,
>>
>>
>> On 5/15/24 17:39, Jani Nikula wrote:
>>> On Tue, 14 May 2024, Sui Jingfeng <sui.jingfeng@linux.dev> wrote:
>>>> diff --git a/drivers/gpu/drm/drm_bridge.c b/drivers/gpu/drm/drm_bridge.c
>>>> index 584d109330ab..1928d9d0dd3c 100644
>>>> --- a/drivers/gpu/drm/drm_bridge.c
>>>> +++ b/drivers/gpu/drm/drm_bridge.c
>>>> @@ -213,6 +213,23 @@ void drm_bridge_add(struct drm_bridge *bridge)
>>>>    }
>>>>    EXPORT_SYMBOL(drm_bridge_add);
>>>>    
>>>> +/**
>>>> + * drm_bridge_add_with_dev - add the given bridge to the global bridge list
>>>> + *
>>>> + * @bridge: bridge control structure
>>>> + * @dev: pointer to the kernel device that this bridge is backed.
>>>> + */
>>>> +void drm_bridge_add_with_dev(struct drm_bridge *bridge, struct device *dev)
>>>> +{
>>>> +	if (dev) {
>>>> +		bridge->kdev = dev;
>>>> +		bridge->of_node = dev->of_node;
>>>> +	}
>>>> +
>>>> +	drm_bridge_add(bridge);
>>>> +}
>>>> +EXPORT_SYMBOL_GPL(drm_bridge_add_with_dev);
>>>
>>> I don't actually have an opinion on whether the dev parameter is useful
>>> or not.
>>>
>>> But please don't add a drm_bridge_add_with_dev() and then convert more
>>> than half the drm_bridge_add() users to that. Please just add a struct
>>> device *dev parameter to drm_bridge_add(), and pass NULL if it's not
>>> relevant.
>>>
>>
>> To be honest, previously, I'm just do it exactly same as the way you
>> told me here. But I'm exhausted and finally give up.
>>
>> Because this is again need me to modify *all* callers of
>> drm_bridge_add(), not only those bridges in drm/bridge/, but also
>> bridge instances in various KMS drivers.
>>
>> However, their some exceptions just don't fit!
>>
>> For example, the imx/imx8qxp-pixel-combiner.c just don't fit our
>> simple model. Our helper function assume that one device backing
>> one drm_bridge instance (1 to 1). Yet, that driver backing two or
>> more bridges with one platform device (1 to 2, 1 to 3, ..., ).
>> Hence, the imx/imx8qxp-pixel-combiner.c just can't use
>> drm_bridge_add_with_dev().
>>
>> The aux_hpd_bridge.c is also bad, it store the of_node of struct device
>> at the .platform_data member of the struct device.
> 
> Like I said, "pass NULL if it's not relevant."

OK, good idea.

> "_add_with_dev" is a terrible function name.
> 
> What if you need to add another parameter later? Add _add_with_foo and
> _add_with_dev_and_foo variants?

Yes, you are right, I'll back give another try then.

> BR,
> Jani.
> 
> 

-- 
Best regards
Sui

  reply	other threads:[~2024-05-15 10:35 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-14 15:40 [PATCH 0/2] drm/bridge: Add 'struct device *' field to the drm_bridge structure Sui Jingfeng
2024-05-14 15:40 ` [PATCH 1/2] drm/bridge: Support finding bridge with struct device Sui Jingfeng
2024-05-15  9:39   ` Jani Nikula
2024-05-15 10:17     ` Sui Jingfeng
2024-05-15 10:28       ` Jani Nikula
2024-05-15 10:34         ` Sui Jingfeng [this message]
2024-05-15 11:33           ` Jani Nikula
2024-05-14 15:40 ` [PATCH 2/2] drm/bridge: Switch to use drm_bridge_add_with_dev() Sui Jingfeng
2024-05-14 16:22 ` [PATCH 0/2] drm/bridge: Add 'struct device *' field to the drm_bridge structure Maxime Ripard
2024-05-14 16:53   ` Sui Jingfeng
2024-05-15 14:30     ` Maxime Ripard
2024-05-15 14:53       ` Sui Jingfeng
2024-05-15 14:58         ` Maxime Ripard
2024-05-15 15:19           ` Sui Jingfeng
2024-05-16  8:25             ` Maxime Ripard
2024-05-16 10:40               ` Sui Jingfeng
2024-05-16 12:04                 ` Sui Jingfeng
2024-05-19 21:44                   ` Dmitry Baryshkov
2024-05-21  8:37                   ` Maxime Ripard
2024-05-21  8:34                 ` Maxime Ripard

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=bd175eb3-ca70-4ce7-89ab-ca7f622ed153@linux.dev \
    --to=sui.jingfeng@linux.dev \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mripard@kernel.org \
    --cc=neil.armstrong@linaro.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 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.