All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Ramalingam C <ramalingam.c@intel.com>
Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org,
	Russell King - ARM Linux admin <linux@armlinux.org.uk>,
	dri-devel@lists.freedesktop.org,
	Daniel Vetter <daniel.vetter@intel.com>,
	tomas.winkler@intel.com
Subject: Re: [PATCH v12 01/38] drm/doc: document recommended component helper usage
Date: Tue, 12 Feb 2019 14:44:03 +0200	[thread overview]
Message-ID: <20190212124403.GO6279@pendragon.ideasonboard.com> (raw)
In-Reply-To: <1549696387-28268-2-git-send-email-ramalingam.c@intel.com>

Hi Daniel,

Thank you for the patch.

On Sat, Feb 09, 2019 at 12:42:30PM +0530, Ramalingam C wrote:
> From: Daniel Vetter <daniel.vetter@intel.com>
> 
> Now that component has docs it's worth spending a few words and
> hyperlinks on recommended best practices in drm.
> 
> Cc: Russell King - ARM Linux admin <linux@armlinux.org.uk>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  Documentation/driver-api/component.rst |  2 ++
>  Documentation/gpu/drm-internals.rst    |  5 +++++
>  drivers/gpu/drm/drm_drv.c              | 14 ++++++++++++++
>  3 files changed, 21 insertions(+)
> 
> diff --git a/Documentation/driver-api/component.rst b/Documentation/driver-api/component.rst
> index 2da4a8f20607..57e37590733f 100644
> --- a/Documentation/driver-api/component.rst
> +++ b/Documentation/driver-api/component.rst
> @@ -1,3 +1,5 @@
> +.. _component:
> +
>  ======================================
>  Component Helper for Aggregate Drivers
>  ======================================
> diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
> index 3ae23a5454ac..966bd2d9f0cc 100644
> --- a/Documentation/gpu/drm-internals.rst
> +++ b/Documentation/gpu/drm-internals.rst
> @@ -93,6 +93,11 @@ Device Instance and Driver Handling
>  Driver Load
>  -----------
>  
> +Component Helper Usage
> +~~~~~~~~~~~~~~~~~~~~~~
> +
> +.. kernel-doc:: drivers/gpu/drm/drm_drv.c
> +   :doc: component helper usage recommendations
>  
>  IRQ Helper Library
>  ~~~~~~~~~~~~~~~~~~
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 381581b01d48..aae413003705 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -457,6 +457,20 @@ static void drm_fs_inode_free(struct inode *inode)
>  }
>  
>  /**
> + * DOC: component helper usage recommendations
> + *
> + * DRM drivers that drive hardware where a logical device consists of a pile of
> + * independent hardware blocks are recommended to use the :ref:`component helper
> + * library<component>`.

That's the first recommendation I would challenge :-) When using
drm_bridge and drm_panel, the component framework is not strictly
needed. The DRM/KMS probe function can defer probe when a bridge or
panel is missing. Only when two-way dependencies exist between the
display controller and the external components is the component
framework required.

> The entire device initialization procedure should be run
> + * from the &component_master_ops.master_bind callback, starting with
> + * drm_dev_init(), then binding all components with component_bind_all() and
> + * finishing with drm_dev_register().

The omapdss driver, for instance, performs hardware-specific
initialization of the DSS in the probe() handler itself (DT-related
parsing, memory mapping, IRQ registration, ...). I don't see why this
would need to move to the .master_bind() callback.

> For consistency and easier sharing of
> + * components across drivers the opaque pointer passed to all components through
> + * component_bind_all() should point at &struct drm_device of the device
> + * instance, not some driver specific private structure.

I'd say "shall" instead of "should" to make this a hard requirement. The
opaque pointer is something that I have never really liked in the
component framework as it hinders reusability. I have a few ideas on how
to fix that but haven't had time to try them out yet as the changes
would be quite intrusive. Long term major changes will be needed there
anyway as it makes no sense to have to frameworks with similar purposes
in DRM/KMS and V4L2.

> + */
> +
> +/**
>   * drm_dev_init - Initialise new DRM device
>   * @dev: DRM device
>   * @driver: DRM driver

-- 
Regards,

Laurent Pinchart
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2019-02-12 12:44 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-09  7:12 [PATCH v12 00/38] drm/i915: Implement HDCP2.2 Ramalingam C
2019-02-09  7:12 ` [PATCH v12 01/38] drm/doc: document recommended component helper usage Ramalingam C
2019-02-11  8:31   ` Daniel Vetter
2019-02-12 12:44   ` Laurent Pinchart [this message]
2019-02-12 12:52     ` Daniel Vetter
2019-02-09  7:12 ` [PATCH v12 02/38] drm/i915: Gathering the HDCP1.4 routines together Ramalingam C
2019-02-09  7:12 ` [PATCH v12 03/38] drm: header for i915 - MEI_HDCP interface Ramalingam C
2019-02-09  7:12 ` [PATCH v12 04/38] drm/i915: Initialize HDCP2.2 Ramalingam C
2019-02-09  7:12 ` [PATCH v12 05/38] drm/i915: MEI interface definition Ramalingam C
2019-02-09  7:12 ` [PATCH v12 06/38] drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking Ramalingam C
2019-02-09  7:12 ` [PATCH v12 07/38] drm/i915: Enable and Disable of HDCP2.2 Ramalingam C
2019-02-09  7:12 ` [PATCH v12 08/38] drm/i915: Implement HDCP2.2 receiver authentication Ramalingam C
2019-02-09  7:12 ` [PATCH v12 09/38] drm: helper functions for hdcp2 seq_num to from u32 Ramalingam C
2019-02-09  7:12 ` [PATCH v12 10/38] drm/i915: Implement HDCP2.2 repeater authentication Ramalingam C
2019-02-09  7:12 ` [PATCH v12 11/38] drm: HDCP2.2 link check period Ramalingam C
2019-02-09  7:12 ` [PATCH v12 12/38] drm/i915: Implement HDCP2.2 link integrity check Ramalingam C
2019-02-09  7:12 ` [PATCH v12 13/38] drm/i915: Handle HDCP2.2 downstream topology change Ramalingam C
2019-02-09  7:12 ` [PATCH v12 14/38] drm: removing the DP Errata msg and its msg id Ramalingam C
2019-02-09  7:12 ` [PATCH v12 15/38] drm/i915: Implement the HDCP2.2 support for DP Ramalingam C
2019-02-09  7:12 ` [PATCH v12 16/38] drm/i915: Implement the HDCP2.2 support for HDMI Ramalingam C
2019-02-09  7:12 ` [PATCH v12 17/38] drm/i915: CP_IRQ handling for DP HDCP2.2 msgs Ramalingam C
2019-02-09  7:12 ` [PATCH v12 18/38] drm/i915: Fix KBL HDCP2.2 encrypt status signalling Ramalingam C
2019-02-09  7:12 ` [PATCH v12 19/38] mei: bus: whitelist hdcp client Ramalingam C
2019-02-09  7:12 ` [PATCH v12 20/38] mei: bus: export to_mei_cl_device for mei client device drivers Ramalingam C
2019-02-09  7:12 ` [PATCH v12 21/38] mei: me: add ice lake point device id Ramalingam C
2019-02-09  7:57   ` Greg KH
2019-02-09  8:23     ` Winkler, Tomas
2019-02-12 13:28   ` Sasha Levin
2019-02-12 13:28   ` Sasha Levin via dri-devel
2019-02-09  7:12 ` [PATCH v12 22/38] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
2019-02-09  7:12 ` [PATCH v12 23/38] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
2019-02-09  7:12 ` [PATCH v12 24/38] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
2019-02-09 16:09   ` Winkler, Tomas
2019-02-10  8:18     ` C, Ramalingam
2019-02-10  8:25       ` Winkler, Tomas
2019-02-10  9:02         ` C, Ramalingam
2019-02-10 19:58           ` Winkler, Tomas
2019-02-11  5:04   ` [PATCH v13 " Ramalingam C
2019-02-09  7:12 ` [PATCH v12 25/38] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
2019-02-09  7:12 ` [PATCH v12 26/38] misc/mei/hdcp: Verify H_prime Ramalingam C
2019-02-09  7:12 ` [PATCH v12 27/38] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
2019-02-09  7:12 ` [PATCH v12 28/38] misc/mei/hdcp: Initiate Locality check Ramalingam C
2019-02-09  7:12 ` [PATCH v12 29/38] misc/mei/hdcp: Verify L_prime Ramalingam C
2019-02-09  7:12 ` [PATCH v12 30/38] misc/mei/hdcp: Prepare Session Key Ramalingam C
2019-02-09  7:13 ` [PATCH v12 31/38] misc/mei/hdcp: Repeater topology verification and ack Ramalingam C
2019-02-09  7:13 ` [PATCH v12 32/38] misc/mei/hdcp: Verify M_prime Ramalingam C
2019-02-11 18:10   ` Winkler, Tomas
2019-02-09  7:13 ` [PATCH v12 33/38] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
2019-02-09  7:13 ` [PATCH v12 34/38] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
2019-02-09  7:13 ` [PATCH v12 35/38] misc/mei/hdcp: Component framework for I915 Interface Ramalingam C
2019-02-09  7:13 ` [PATCH v12 36/38] FOR_TEST_ONLY: i915/Kconfig: Select mei_hdcp by I915 Ramalingam C
2019-02-09  7:13 ` [PATCH v12 37/38] FOR_TESTING_ONLY: debugfs: Excluding the LSPCon for HDCP1.4 Ramalingam C
2019-02-09  7:13 ` [PATCH v12 38/38] FOR_TESTING_ONLY: ICL: Limit clk to <= 340MHz Ramalingam C
2019-02-09  7:36 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 Patchwork
2019-02-09  7:46 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-02-09  8:04 ` ✓ Fi.CI.BAT: success " Patchwork
2019-02-09 10:14 ` ✓ Fi.CI.IGT: " Patchwork
2019-02-11  5:36 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Implement HDCP2.2 (rev2) Patchwork
2019-02-11  5:46 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-02-11  5:58 ` ✓ Fi.CI.BAT: success " Patchwork
2019-02-11  8:06 ` ✗ Fi.CI.IGT: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2019-02-09  7:11 [PATCH v12 00/38] drm/i915: Implement HDCP2.2 Ramalingam C
2019-02-09  7:11 ` [PATCH v12 01/38] drm/doc: document recommended component helper usage Ramalingam C

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=20190212124403.GO6279@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=linux@armlinux.org.uk \
    --cc=ramalingam.c@intel.com \
    --cc=tomas.winkler@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 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.