diff mbox series

drm: dsi: Add lane clock rate fields to DSI device

Message ID 20181017140401.29296-1-linus.walleij@linaro.org (mailing list archive)
State New, archived
Headers show
Series drm: dsi: Add lane clock rate fields to DSI device | expand

Commit Message

Linus Walleij Oct. 17, 2018, 2:04 p.m. UTC
The DSI devices have a maximum operating frequency specified
in their data sheet per the MIPI specification, and DSI hosts
that can scale their frequency need this information to set
their clock dividers right.

As current panel drivers often lack this information, specify
that setting it to zero will make the DSI host use some
reasonable default.

Cc: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 include/drm/drm_mipi_dsi.h | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Andrzej Hajda Oct. 18, 2018, 7:11 a.m. UTC | #1
On 17.10.2018 16:04, Linus Walleij wrote:
> The DSI devices have a maximum operating frequency specified
> in their data sheet per the MIPI specification, and DSI hosts
> that can scale their frequency need this information to set
> their clock dividers right.
>
> As current panel drivers often lack this information, specify
> that setting it to zero will make the DSI host use some
> reasonable default.
>
> Cc: Andrzej Hajda <a.hajda@samsung.com>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  include/drm/drm_mipi_dsi.h | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
> index 4fef19064b0f..a57105776e08 100644
> --- a/include/drm/drm_mipi_dsi.h
> +++ b/include/drm/drm_mipi_dsi.h
> @@ -168,6 +168,10 @@ struct mipi_dsi_device_info {
>   * @format: pixel format for video mode
>   * @lanes: number of active data lanes
>   * @mode_flags: DSI operation mode related flags
> + * @hs_rate_hz: Maximum lane frequency for high speed operation, if zero
> + * the driver can assume some safe default
> + * @lp_rate_hz: Maximum lane frequency for low power operation, if zero
> + * the driver can assume some safe default

I think it would be enough to describe which units are used, putting
them in prop name seems to be overkill.

s/operation/mode/ - spec uses mode in context of HS/LP.

Regarding zero value - there is no such thing as safe default, all dsi
devices have some limit, there is no universal limit.
Currently decision what to do in case of zero is up to dsi master, but
after this patch will be settled down we can at least add some warning
in mipi_dsi_attach to report incomplete dsi device description, or
attachment can be even aborted.
So the description should be in style: drivers should set it to real
limits of the hardware, zero is accepted only to keep backward
compatibility.

Regards
Andrzej

>   */
>  struct mipi_dsi_device {
>  	struct mipi_dsi_host *host;
> @@ -178,6 +182,8 @@ struct mipi_dsi_device {
>  	unsigned int lanes;
>  	enum mipi_dsi_pixel_format format;
>  	unsigned long mode_flags;
> +	unsigned long hs_rate_hz;
> +	unsigned long lp_rate_hz;
>  };
>  
>  #define MIPI_DSI_MODULE_PREFIX "mipi-dsi:"
diff mbox series

Patch

diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index 4fef19064b0f..a57105776e08 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -168,6 +168,10 @@  struct mipi_dsi_device_info {
  * @format: pixel format for video mode
  * @lanes: number of active data lanes
  * @mode_flags: DSI operation mode related flags
+ * @hs_rate_hz: Maximum lane frequency for high speed operation, if zero
+ * the driver can assume some safe default
+ * @lp_rate_hz: Maximum lane frequency for low power operation, if zero
+ * the driver can assume some safe default
  */
 struct mipi_dsi_device {
 	struct mipi_dsi_host *host;
@@ -178,6 +182,8 @@  struct mipi_dsi_device {
 	unsigned int lanes;
 	enum mipi_dsi_pixel_format format;
 	unsigned long mode_flags;
+	unsigned long hs_rate_hz;
+	unsigned long lp_rate_hz;
 };
 
 #define MIPI_DSI_MODULE_PREFIX "mipi-dsi:"