From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>,
Tomi Valkeinen <tomi.valkeinen@ti.com>,
Thierry Reding <thierry.reding@gmail.com>,
Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v2 35/49] drm: Clarify definition of the DRM_BUS_FLAG_(PIXDATA|SYNC)_* macros
Date: Sat, 12 Jan 2019 03:13:13 +0200 [thread overview]
Message-ID: <7302512.OcLG3AzlZx@avalon> (raw)
In-Reply-To: <20190111092310.GQ21184@phenom.ffwll.local>
Hi Daniel,
On Friday, 11 January 2019 11:23:10 EET Daniel Vetter wrote:
> On Fri, Jan 11, 2019 at 05:51:06AM +0200, Laurent Pinchart wrote:
> > From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
> >
> > The DRM_BUS_FLAG_PIXDATA_POSEDGE and DRM_BUS_FLAG_PIXDATA_NEGEDGE macros
> > and their DRM_BUS_FLAG_SYNC_* counterparts define on which pixel clock
> > edge data and sync signals are driven. They are however used in some
> > drivers to define on which pixel clock edge data and sync signals are
> > sampled, which should usually (but not always) be the opposite edge of
> > the driving edge. This creates confusion.
> >
> > Create four new macros for both PIXDATA and SYNC that explicitly state
> > the driving and sampling edge in their name to remove the confusion. The
> > driving macros are defined as the opposite of the sampling macros to
> > made code simpler based on the assumption that the driving and sampling
> > edges are opposite.
> >
> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+renesas@ideasonboard.com>
> > Acked-by: Linus Walleij <linus.walleij@linaro.org>
> > ---
> > Changes since v1:
> >
> > - Address the DRM_BUS_FLAG_SYNC_* flags
> > - Rebase on top of drm-next
> > ---
> >
> > include/drm/drm_connector.h | 36 ++++++++++++++++++++++++++++++++----
> > 1 file changed, 32 insertions(+), 4 deletions(-)
> >
> > diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> > index 9be2181b3ed7..00bb7a74962b 100644
> > --- a/include/drm/drm_connector.h
> > +++ b/include/drm/drm_connector.h
> > @@ -330,19 +330,47 @@ struct drm_display_info {
> >
> > #define DRM_BUS_FLAG_DE_LOW (1<<0)
> > #define DRM_BUS_FLAG_DE_HIGH (1<<1)
> >
> > -/* drive data on pos. edge */
> > +
> > +/*
> > + * Don't use those two flags directly, use the
> > DRM_BUS_FLAG_PIXDATA_DRIVE_* + * and DRM_BUS_FLAG_PIXDATA_SAMPLE_*
> > variants to qualify the flags explicitly. + * The
> > DRM_BUS_FLAG_PIXDATA_SAMPLE_* flags are defined as the opposite of the +
> > * DRM_BUS_FLAG_PIXDATA_DRIVE_* flags to make code simpler, as signals are
> > + * usually to be sampled on the opposite edge of the driving edge. + */
> >
> > #define DRM_BUS_FLAG_PIXDATA_POSEDGE (1<<2)
> >
> > -/* drive data on neg. edge */
> >
> > #define DRM_BUS_FLAG_PIXDATA_NEGEDGE (1<<3)
> >
> > +
> > +/* Drive data on rising edge */
> > +#define DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE DRM_BUS_FLAG_PIXDATA_POSEDGE
> > +/* Drive data on falling edge */
> > +#define DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE DRM_BUS_FLAG_PIXDATA_NEGEDGE
> > +/* Sample data on rising edge */
> > +#define DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE
DRM_BUS_FLAG_PIXDATA_NEGEDGE
> > +/* Sample data on falling edge */
> > +#define DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE
DRM_BUS_FLAG_PIXDATA_POSEDGE
> > +
> >
> > /* data is transmitted MSB to LSB on the bus */
> > #define DRM_BUS_FLAG_DATA_MSB_TO_LSB (1<<4)
> > /* data is transmitted LSB to MSB on the bus */
> > #define DRM_BUS_FLAG_DATA_LSB_TO_MSB (1<<5)
> >
> > -/* drive sync on pos. edge */
> > +
> > +/*
> > + * Similarly to the DRM_BUS_FLAG_PIXDATA_* flags, don't use these two
> > flags + * directly, use one of the DRM_BUS_FLAG_SYNC_(DRIVE|SAMPLE)_*
> > instead. + */
> >
> > #define DRM_BUS_FLAG_SYNC_POSEDGE (1<<6)
> >
> > -/* drive sync on neg. edge */
> >
> > #define DRM_BUS_FLAG_SYNC_NEGEDGE (1<<7)
> >
> > +/* Drive sync on rising edge */
> > +#define DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE DRM_BUS_FLAG_SYNC_POSEDGE
> > +/* Drive sync on falling edge */
> > +#define DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE DRM_BUS_FLAG_SYNC_NEGEDGE
> > +/* Sample sync on rising edge */
> > +#define DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE DRM_BUS_FLAG_SYNC_NEGEDGE
> > +/* Sample sync on falling edge */
> > +#define DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE DRM_BUS_FLAG_SYNC_POSEDGE
>
> Since these are internal I recommend you convert them over to an enum and
> up this to full kerneldoc comments. That way you can have lots more pretty
> formatting and linking, and an easy way to give others a public link to
> full docs.
The patch is in your mailbox.
> > +
> > /**
> > * @bus_flags: Additional information (like pixel signal polarity) for
> > * the pixel data on the bus, using DRM_BUS_FLAGS\_ defines.
--
Regards,
Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-01-12 1:12 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-11 3:50 [PATCH v2 00/49] omapdrm: drm_bridge and drm_panel support Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 01/49] drm/atomic: Constify mode argument to mode_valid_path() Laurent Pinchart
2019-01-14 11:10 ` Tomi Valkeinen
2019-02-09 2:01 ` Sebastian Reichel
2019-01-11 3:50 ` [PATCH v2 02/49] drm/omap: dsi: Fix crash in DSI debug dumps Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 03/49] drm/omap: dsi: Fix OF platform depopulate Laurent Pinchart
2019-01-14 11:40 ` Tomi Valkeinen
2019-01-14 14:32 ` Laurent Pinchart
2019-02-09 2:03 ` Sebastian Reichel
2019-01-11 3:50 ` [PATCH v2 04/49] drm/omap: dsi: Hack-fix DSI bus flags Laurent Pinchart
2019-02-09 2:04 ` Sebastian Reichel
2019-01-11 3:50 ` [PATCH v2 05/49] drm/omap: Remove declaration of nonexisting function Laurent Pinchart
2019-01-14 11:48 ` Tomi Valkeinen
2019-01-11 3:50 ` [PATCH v2 06/49] drm/omap: Remove unused kobj field from struct omap_dss_device Laurent Pinchart
2019-01-14 11:49 ` Tomi Valkeinen
2019-01-11 3:50 ` [PATCH v2 07/49] drm/omap: venc: Remove wss_data field from venc_device structure Laurent Pinchart
2019-01-14 11:50 ` Tomi Valkeinen
2019-01-11 3:50 ` [PATCH v2 08/49] drm/omap: Use atomic suspend/resume helpers Laurent Pinchart
2019-01-14 12:13 ` Tomi Valkeinen
2019-01-11 3:50 ` [PATCH v2 09/49] drm/omap: Move common display enable/disable code to encoder Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 10/49] drm/omap: Remove connection checks from internal encoders .enable() Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 11/49] drm/omap: Remove connection checks from display .enable() and .remove() Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 12/49] drm/omap: Remove enable " Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 13/49] drm/omap: Reverse direction of the DSS device enable/disable operations Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 14/49] drm/omap: Remove omap_dss_device dst field Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 15/49] drm/omap: Factor out common init/cleanup code for output devices Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 16/49] drm/omap: Expose DRM modes instead of timings in display devices Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 17/49] drm/omap: Merge display .get_modes() and .get_size() operations Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 18/49] drm/omap: Add a dss device operation flag for .get_modes() Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 19/49] drm/omap: venc: List both PAL and NTSC modes Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 20/49] drm/omap: Don't pass display pointer to encoder init function Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 21/49] drm/omap: Move display alias ID to omap_drm_pipeline Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 22/49] drm/omap: Don't store display pointer in omap_connector structure Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 23/49] drm/omap: panel-dsi-cm: Store source pointer internally Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 24/49] drm/omap: Notify all devices in the pipeline of output disconnection Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 25/49] drm/omap: Remove src field from omap_dss_device structure Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 26/49] drm/omap: Move DISPC timing checks to CRTC .mode_valid() operation Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 27/49] drm/omap: venc: Simplify mode setting by caching configuration Laurent Pinchart
2019-01-11 3:50 ` [PATCH v2 28/49] drm/omap: Factor out common mode validation code Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 29/49] drm/omap: Pass drm_display_mode to .check_timings() and .set_timings() Laurent Pinchart
2019-02-09 2:33 ` Sebastian Reichel
2019-01-11 3:51 ` [PATCH v2 30/49] drm/omap: venc: Use drm_display_mode natively Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 31/49] drm/omap: Store pixel clock instead of full mode in DPI and SDI encoders Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 32/49] drm/omap: Simplify OF lookup of DSS devices Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 33/49] drm/omap: Refactor initialization sequence Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 34/49] drm/omap: Merge omap_dss_device type and output_type fields Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 35/49] drm: Clarify definition of the DRM_BUS_FLAG_(PIXDATA|SYNC)_* macros Laurent Pinchart
2019-01-11 8:47 ` Stefan Agner
2019-01-11 9:23 ` Daniel Vetter
2019-01-12 1:13 ` Laurent Pinchart [this message]
2019-01-11 3:51 ` [PATCH v2 36/49] drm: Use new DRM_BUS_FLAG_*_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags Laurent Pinchart
2019-01-11 8:53 ` Stefan Agner
2019-01-11 3:51 ` [PATCH v2 37/49] drm/bridge: use bus flags in bridge timings Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 38/49] dt-bindings: display: tfp410: Add bus parameters properties Laurent Pinchart
2019-01-15 21:37 ` Rob Herring
2019-01-11 3:51 ` [PATCH v2 39/49] drm/bridge: ti-tfp410: Set connector type based on DT connector node Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 40/49] drm/bridge: ti-tfp410: Add support for the powerdown GPIO Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 41/49] drm/bridge: ti-tfp410: Report input bus config through bridge timings Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 42/49] dt-bindings: Add vendor prefix for OSD Displays Laurent Pinchart
2019-01-14 12:15 ` Tomi Valkeinen
2019-01-15 21:38 ` Rob Herring
2019-01-11 3:51 ` [PATCH v2 43/49] dt-bindings: display: Add OSD Displays OSD070T1718-19TS panel binding Laurent Pinchart
2019-01-14 12:15 ` Tomi Valkeinen
2019-01-15 21:39 ` Rob Herring
2019-02-08 11:19 ` [PATCH v2.1 " Laurent Pinchart
2019-02-25 23:27 ` Rob Herring
2019-01-11 3:51 ` [PATCH v2 44/49] drm/panel: simple: Add OSD070T1718-19TS panel support Laurent Pinchart
2019-01-14 12:15 ` Tomi Valkeinen
2019-01-11 3:51 ` [PATCH v2 45/49] drm/omap: Add support for drm_bridge Laurent Pinchart
2019-01-18 10:33 ` Tomi Valkeinen
2019-02-08 15:20 ` Laurent Pinchart
2019-02-11 9:32 ` Tomi Valkeinen
2019-02-09 2:00 ` Sebastian Reichel
2019-02-09 3:26 ` Sebastian Reichel
2019-02-11 7:50 ` [PATCH v2.1 " Laurent Pinchart
2019-01-11 3:51 ` [PATCH v2 46/49] drm/omap: Add support for drm_panel Laurent Pinchart
2019-02-09 3:26 ` Sebastian Reichel
2019-01-11 3:51 ` [PATCH v2 47/49] drm/omap: Whitelist DT nodes to fixup with omapdss, prefix Laurent Pinchart
2019-02-09 3:26 ` Sebastian Reichel
2019-01-11 3:51 ` [PATCH v2 48/49] drm/omap: Remove TFP410 and DVI connector drivers Laurent Pinchart
2019-02-09 3:26 ` Sebastian Reichel
2019-01-11 3:51 ` [PATCH v2 49/49] drm/omap: Remove panel-dpi driver Laurent Pinchart
2019-02-09 3:27 ` Sebastian Reichel
2019-02-06 11:41 ` [PATCH v2 00/49] omapdrm: drm_bridge and drm_panel support Tomi Valkeinen
2019-02-09 3:32 ` Sebastian Reichel
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=7302512.OcLG3AzlZx@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--cc=maxime.ripard@bootlin.com \
--cc=thierry.reding@gmail.com \
--cc=tomi.valkeinen@ti.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