drm: improve the documentation of connector hpd ops

Message ID 20230920201358.27597-1-quic_abhinavk@quicinc.com
State New
Headers
Series drm: improve the documentation of connector hpd ops |

Commit Message

Abhinav Kumar Sept. 20, 2023, 8:13 p.m. UTC
  While making the changes in [1], it was noted that the documentation
of the enable_hpd() and disable_hpd() does not make it clear that
these ops should not try to do hpd state maintenance and should only
attempt to enable/disable hpd related hardware for the connector.

The state management of these calls to make sure these calls are
balanced is handled by the DRM core and we should keep it that way
to minimize the overhead in the drivers which implement these ops.

[1]: https://patchwork.freedesktop.org/patch/558387/

Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
 include/drm/drm_modeset_helper_vtables.h | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Comments

Laurent Pinchart Dec. 3, 2023, 2:24 p.m. UTC | #1
Hi Abhinav,

Thank you for the patch (and thank to Dmitry for pinging me on IRC, this
patch got burried in my inbox).

On Wed, Sep 20, 2023 at 01:13:58PM -0700, Abhinav Kumar wrote:
> While making the changes in [1], it was noted that the documentation
> of the enable_hpd() and disable_hpd() does not make it clear that
> these ops should not try to do hpd state maintenance and should only
> attempt to enable/disable hpd related hardware for the connector.

s/attempt to //

> 
> The state management of these calls to make sure these calls are
> balanced is handled by the DRM core and we should keep it that way
> to minimize the overhead in the drivers which implement these ops.
> 
> [1]: https://patchwork.freedesktop.org/patch/558387/
> 

You could add a

Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> ---
>  include/drm/drm_modeset_helper_vtables.h | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> index e3c3ac615909..a33cf7488737 100644
> --- a/include/drm/drm_modeset_helper_vtables.h
> +++ b/include/drm/drm_modeset_helper_vtables.h
> @@ -1154,6 +1154,11 @@ struct drm_connector_helper_funcs {
>  	 * This operation is optional.
>  	 *
>  	 * This callback is used by the drm_kms_helper_poll_enable() helpers.
> +	 *
> +	 * This operation does not need to perform any hpd state tracking as
> +	 * the DRM core handles that maintenance and ensures the calls to enable
> +	 * and disable hpd are balanced.
> +	 *
>  	 */
>  	void (*enable_hpd)(struct drm_connector *connector);
>  
> @@ -1165,6 +1170,11 @@ struct drm_connector_helper_funcs {
>  	 * This operation is optional.
>  	 *
>  	 * This callback is used by the drm_kms_helper_poll_disable() helpers.
> +	 *
> +	 * This operation does not need to perform any hpd state tracking as
> +	 * the DRM core handles that maintenance and ensures the calls to enable
> +	 * and disable hpd are balanced.
> +	 *
>  	 */
>  	void (*disable_hpd)(struct drm_connector *connector);
>  };
  
Dmitry Baryshkov Dec. 3, 2023, 6:14 p.m. UTC | #2
On Sun, 3 Dec 2023 at 16:24, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Abhinav,
>
> Thank you for the patch (and thank to Dmitry for pinging me on IRC, this
> patch got burried in my inbox).
>
> On Wed, Sep 20, 2023 at 01:13:58PM -0700, Abhinav Kumar wrote:
> > While making the changes in [1], it was noted that the documentation
> > of the enable_hpd() and disable_hpd() does not make it clear that
> > these ops should not try to do hpd state maintenance and should only
> > attempt to enable/disable hpd related hardware for the connector.
>
> s/attempt to //

I can probably fix this while applying the patch.

>
> >
> > The state management of these calls to make sure these calls are
> > balanced is handled by the DRM core and we should keep it that way
> > to minimize the overhead in the drivers which implement these ops.
> >
> > [1]: https://patchwork.freedesktop.org/patch/558387/
> >
>
> You could add a
>
> Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> > ---
> >  include/drm/drm_modeset_helper_vtables.h | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
> > index e3c3ac615909..a33cf7488737 100644
> > --- a/include/drm/drm_modeset_helper_vtables.h
> > +++ b/include/drm/drm_modeset_helper_vtables.h
> > @@ -1154,6 +1154,11 @@ struct drm_connector_helper_funcs {
> >        * This operation is optional.
> >        *
> >        * This callback is used by the drm_kms_helper_poll_enable() helpers.
> > +      *
> > +      * This operation does not need to perform any hpd state tracking as
> > +      * the DRM core handles that maintenance and ensures the calls to enable
> > +      * and disable hpd are balanced.
> > +      *
> >        */
> >       void (*enable_hpd)(struct drm_connector *connector);
> >
> > @@ -1165,6 +1170,11 @@ struct drm_connector_helper_funcs {
> >        * This operation is optional.
> >        *
> >        * This callback is used by the drm_kms_helper_poll_disable() helpers.
> > +      *
> > +      * This operation does not need to perform any hpd state tracking as
> > +      * the DRM core handles that maintenance and ensures the calls to enable
> > +      * and disable hpd are balanced.
> > +      *
> >        */
> >       void (*disable_hpd)(struct drm_connector *connector);
> >  };
>
> --
> Regards,
>
> Laurent Pinchart
  
Dmitry Baryshkov Dec. 4, 2023, 2:16 p.m. UTC | #3
On Wed, 20 Sep 2023 13:13:58 -0700, Abhinav Kumar wrote:
> While making the changes in [1], it was noted that the documentation
> of the enable_hpd() and disable_hpd() does not make it clear that
> these ops should not try to do hpd state maintenance and should only
> attempt to enable/disable hpd related hardware for the connector.
> 
> The state management of these calls to make sure these calls are
> balanced is handled by the DRM core and we should keep it that way
> to minimize the overhead in the drivers which implement these ops.
> 
> [...]

Applied to drm-misc-next, thanks!

[1/1] drm: improve the documentation of connector hpd ops
      commit: a5b2dcb96d6acb286459612a142371b0d74543bf

Best regards,
  
Abhinav Kumar Dec. 4, 2023, 5:45 p.m. UTC | #4
On 12/3/2023 10:14 AM, Dmitry Baryshkov wrote:
> On Sun, 3 Dec 2023 at 16:24, Laurent Pinchart
> <laurent.pinchart@ideasonboard.com> wrote:
>>
>> Hi Abhinav,
>>
>> Thank you for the patch (and thank to Dmitry for pinging me on IRC, this
>> patch got burried in my inbox).
>>
>> On Wed, Sep 20, 2023 at 01:13:58PM -0700, Abhinav Kumar wrote:
>>> While making the changes in [1], it was noted that the documentation
>>> of the enable_hpd() and disable_hpd() does not make it clear that
>>> these ops should not try to do hpd state maintenance and should only
>>> attempt to enable/disable hpd related hardware for the connector.
>>
>> s/attempt to //
> 
> I can probably fix this while applying the patch.
> 

Thank you Laurent and Dmitry.

>>
>>>
>>> The state management of these calls to make sure these calls are
>>> balanced is handled by the DRM core and we should keep it that way
>>> to minimize the overhead in the drivers which implement these ops.
>>>
>>> [1]: https://patchwork.freedesktop.org/patch/558387/
>>>
>>
>> You could add a
>>
>> Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>
>>> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
>>
>> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>
>>> ---
>>>   include/drm/drm_modeset_helper_vtables.h | 10 ++++++++++
>>>   1 file changed, 10 insertions(+)
>>>
>>> diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
>>> index e3c3ac615909..a33cf7488737 100644
>>> --- a/include/drm/drm_modeset_helper_vtables.h
>>> +++ b/include/drm/drm_modeset_helper_vtables.h
>>> @@ -1154,6 +1154,11 @@ struct drm_connector_helper_funcs {
>>>         * This operation is optional.
>>>         *
>>>         * This callback is used by the drm_kms_helper_poll_enable() helpers.
>>> +      *
>>> +      * This operation does not need to perform any hpd state tracking as
>>> +      * the DRM core handles that maintenance and ensures the calls to enable
>>> +      * and disable hpd are balanced.
>>> +      *
>>>         */
>>>        void (*enable_hpd)(struct drm_connector *connector);
>>>
>>> @@ -1165,6 +1170,11 @@ struct drm_connector_helper_funcs {
>>>         * This operation is optional.
>>>         *
>>>         * This callback is used by the drm_kms_helper_poll_disable() helpers.
>>> +      *
>>> +      * This operation does not need to perform any hpd state tracking as
>>> +      * the DRM core handles that maintenance and ensures the calls to enable
>>> +      * and disable hpd are balanced.
>>> +      *
>>>         */
>>>        void (*disable_hpd)(struct drm_connector *connector);
>>>   };
>>
>> --
>> Regards,
>>
>> Laurent Pinchart
> 
> 
>
  

Patch

diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h
index e3c3ac615909..a33cf7488737 100644
--- a/include/drm/drm_modeset_helper_vtables.h
+++ b/include/drm/drm_modeset_helper_vtables.h
@@ -1154,6 +1154,11 @@  struct drm_connector_helper_funcs {
 	 * This operation is optional.
 	 *
 	 * This callback is used by the drm_kms_helper_poll_enable() helpers.
+	 *
+	 * This operation does not need to perform any hpd state tracking as
+	 * the DRM core handles that maintenance and ensures the calls to enable
+	 * and disable hpd are balanced.
+	 *
 	 */
 	void (*enable_hpd)(struct drm_connector *connector);
 
@@ -1165,6 +1170,11 @@  struct drm_connector_helper_funcs {
 	 * This operation is optional.
 	 *
 	 * This callback is used by the drm_kms_helper_poll_disable() helpers.
+	 *
+	 * This operation does not need to perform any hpd state tracking as
+	 * the DRM core handles that maintenance and ensures the calls to enable
+	 * and disable hpd are balanced.
+	 *
 	 */
 	void (*disable_hpd)(struct drm_connector *connector);
 };