Re: [PATCH v14 06/10] drm: drm_display_mode: add signal polarity flags
On Mon, Jun 16, 2014 at 12:11:20PM +0200, Denis Carikli wrote: We need a way to pass signal polarity informations between DRM panels, and the display drivers. To do that, a pol_flags field was added to drm_display_mode. Signed-off-by: Denis Carikli de...@eukrea.com This patch needs an ack from the DRM people - can someone review it please? This series has now been round 14 revisions and it's about time it was properly reviewed - or a statement made if it's unacceptable. --- ChangeLog v13-v14: - Fixed DRM_MODE_FLAG_POL_DE_HIGH's description. ChangeLog v12-v13: - Added Docbook documentation for pol_flags the struct field. - Removed the _PRESERVE defines: it was used by patches against the imx_drm driver. Now theses patches have been adapted not to require that defines. ChangeLog v11-v12: - Rebased: This patch now applies against drm_modes.h - Rebased: It now uses the new DRM_MODE_FLAG_POL_DE flags defines names ChangeLog v10-v11: - Since the imx-drm won't be able to retrive its regulators from the device tree when using display-timings nodes, and that I was told that the drm simple-panel driver already supported that, I then, instead, added what was lacking to make the eukrea displays work with the drm-simple-panel driver. That required a way to get back the display polarity informations from the imx-drm driver without affecting userspace. --- Documentation/DocBook/drm.tmpl | 30 ++ include/drm/drm_modes.h|6 ++ 2 files changed, 36 insertions(+) diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index 7df3134..22d435f 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl @@ -2292,6 +2292,36 @@ void intel_crt_init(struct drm_device *dev) and structfieldheight_mm/structfield fields are only used internally during EDID parsing and should not be set when creating modes manually. /para + para +The structfieldpol_flags/structfield value represents the display +signal polarity flags, it can be a combination of +variablelist + varlistentry +termDRM_MODE_FLAG_POL_PIXDATA_NEGEDGE/term + listitempara + drive pixel data on falling edge, sample data on rising edge. + /para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_PIXDATA_POSEDGE/term +listitempara + Drive pixel data on rising edge, sample data on falling edge. +/para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_DE_LOW/term +listitempara + data-enable pulse is active low +/para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_DE_HIGH/term +listitempara + data-enable pulse is active high +/para/listitem + /varlistentry +/variablelist + /para /listitem listitem synopsisint (*mode_valid)(struct drm_connector *connector, diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h index 91d0582..c5cbe31 100644 --- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h @@ -93,6 +93,11 @@ enum drm_mode_status { #define DRM_MODE_FLAG_3D_MAX DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF +#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGEBIT(1) +#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGEBIT(2) +#define DRM_MODE_FLAG_POL_DE_LOW BIT(3) +#define DRM_MODE_FLAG_POL_DE_HIGHBIT(4) + struct drm_display_mode { /* Header */ struct list_head head; @@ -144,6 +149,7 @@ struct drm_display_mode { int vrefresh; /* in Hz */ int hsync; /* in kHz */ enum hdmi_picture_aspect picture_aspect_ratio; + unsigned int pol_flags; }; /* mode specified on the command line */ -- 1.7.9.5 -- FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly improving, and getting towards what was expected from it. -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v14 06/10] drm: drm_display_mode: add signal polarity flags
On Tue, Jun 24, 2014 at 03:57:46PM +0100, Russell King - ARM Linux wrote: On Mon, Jun 16, 2014 at 12:11:20PM +0200, Denis Carikli wrote: We need a way to pass signal polarity informations between DRM panels, and the display drivers. To do that, a pol_flags field was added to drm_display_mode. Signed-off-by: Denis Carikli de...@eukrea.com This patch needs an ack from the DRM people - can someone review it please? This series has now been round 14 revisions and it's about time it was properly reviewed - or a statement made if it's unacceptable. I didn't follow all of the earlier discussions around this, but it seems to me like data-enable polarity and the pixel data edge flags are properties of the interface rather than the video mode. struct drm_display_mode represents the video timings and I'm not sure if it's a good idea to extend it with this type of information. Maybe we need to add a separate type of device to store these parameters (much like we've done for MIPI DSI devices). Thierry pgpS04DEW9Xje.pgp Description: PGP signature
[PATCH v14 06/10] drm: drm_display_mode: add signal polarity flags
We need a way to pass signal polarity informations between DRM panels, and the display drivers. To do that, a pol_flags field was added to drm_display_mode. Signed-off-by: Denis Carikli de...@eukrea.com --- ChangeLog v13-v14: - Fixed DRM_MODE_FLAG_POL_DE_HIGH's description. ChangeLog v12-v13: - Added Docbook documentation for pol_flags the struct field. - Removed the _PRESERVE defines: it was used by patches against the imx_drm driver. Now theses patches have been adapted not to require that defines. ChangeLog v11-v12: - Rebased: This patch now applies against drm_modes.h - Rebased: It now uses the new DRM_MODE_FLAG_POL_DE flags defines names ChangeLog v10-v11: - Since the imx-drm won't be able to retrive its regulators from the device tree when using display-timings nodes, and that I was told that the drm simple-panel driver already supported that, I then, instead, added what was lacking to make the eukrea displays work with the drm-simple-panel driver. That required a way to get back the display polarity informations from the imx-drm driver without affecting userspace. --- Documentation/DocBook/drm.tmpl | 30 ++ include/drm/drm_modes.h|6 ++ 2 files changed, 36 insertions(+) diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl index 7df3134..22d435f 100644 --- a/Documentation/DocBook/drm.tmpl +++ b/Documentation/DocBook/drm.tmpl @@ -2292,6 +2292,36 @@ void intel_crt_init(struct drm_device *dev) and structfieldheight_mm/structfield fields are only used internally during EDID parsing and should not be set when creating modes manually. /para + para +The structfieldpol_flags/structfield value represents the display +signal polarity flags, it can be a combination of +variablelist + varlistentry +termDRM_MODE_FLAG_POL_PIXDATA_NEGEDGE/term + listitempara + drive pixel data on falling edge, sample data on rising edge. + /para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_PIXDATA_POSEDGE/term +listitempara + Drive pixel data on rising edge, sample data on falling edge. +/para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_DE_LOW/term +listitempara + data-enable pulse is active low +/para/listitem + /varlistentry + varlistentry +termDRM_MODE_FLAG_POL_DE_HIGH/term +listitempara + data-enable pulse is active high +/para/listitem + /varlistentry +/variablelist + /para /listitem listitem synopsisint (*mode_valid)(struct drm_connector *connector, diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h index 91d0582..c5cbe31 100644 --- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h @@ -93,6 +93,11 @@ enum drm_mode_status { #define DRM_MODE_FLAG_3D_MAX DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF +#define DRM_MODE_FLAG_POL_PIXDATA_NEGEDGE BIT(1) +#define DRM_MODE_FLAG_POL_PIXDATA_POSEDGE BIT(2) +#define DRM_MODE_FLAG_POL_DE_LOW BIT(3) +#define DRM_MODE_FLAG_POL_DE_HIGH BIT(4) + struct drm_display_mode { /* Header */ struct list_head head; @@ -144,6 +149,7 @@ struct drm_display_mode { int vrefresh; /* in Hz */ int hsync; /* in kHz */ enum hdmi_picture_aspect picture_aspect_ratio; + unsigned int pol_flags; }; /* mode specified on the command line */ -- 1.7.9.5 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html