Skip to contentSkip to conversation

drm/dsi: Implement set tear scanline

PATCH Applied Vinay Simha BN 4 participants 4 messages Jun 7, 2016

Subsystems (2)

v3 of 4 Applied Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 drm/dsi: Implement set tear scanline

Provide a small convenience wrapper that transmits a set_tear_scanline command.

Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc Jani Nikula <[email protected]>

--
v1:
* helper function suggested by Thierry
for set_tear_scanline
* Also includes small build fixes from Sumit Semwal.

v2:
* one scanline parameter suggested by jani

v3:
* passing the payload properly as suggested by jani
--

---
 drivers/gpu/drm/drm_mipi_dsi.c | 22 ++++++++++++++++++++++
 include/drm/drm_mipi_dsi.h     |  1 +
 2 files changed, 23 insertions(+)
drivers/gpu/drm/drm_mipi_dsi.c +22 -0
index f5d8083..7938ce7 100644
@@ -983,6 +983,28 @@ int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_on);
 
 /**
+ * mipi_dsi_set_tear_scanline() - turn on the display module's Tearing Effect
+ * output signal on the TE signal line when display module reaches line N
+ * defined by STS[n:0].
+ * @dsi: DSI peripheral device
+ * @param: STS[10:0]
+ * Return: 0 on success or a negative error code on failure
+ */
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param)
+{
+	u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, param >> 8,
+			  param & 0xff };
+	ssize_t err;
+
+	err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_set_tear_scanline);
+
+/**
  * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB image
  *    data used by the interface
  * @dsi: DSI peripheral device
include/drm/drm_mipi_dsi.h +1 -0
index 7a9840f..ec55285 100644
@@ -263,6 +263,7 @@ int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start,
 				    u16 end);
 int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16 start,
 				  u16 end);
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param);
 int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 			     enum mipi_dsi_dcs_tear_mode mode);
Signature · 1 line
2.1.2
Reviewed-by on v3 1/1
#1 lore raw
Quoted 9 lines · Vinay Simha BN

Provide a small convenience wrapper that transmits a set_tear_scanline command.

Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc Jani Nikula <[email protected]>
Quoted 63 lines

--
v1:
* helper function suggested by Thierry
for set_tear_scanline
* Also includes small build fixes from Sumit Semwal.

v2:
* one scanline parameter suggested by jani

v3:
* passing the payload properly as suggested by jani
--

---
 drivers/gpu/drm/drm_mipi_dsi.c | 22 ++++++++++++++++++++++
 include/drm/drm_mipi_dsi.h     |  1 +
 2 files changed, 23 insertions(+)
drivers/gpu/drm/drm_mipi_dsi.c +22 -0
index f5d8083..7938ce7 100644
@@ -983,6 +983,28 @@ int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_on);
 
 /**
+ * mipi_dsi_set_tear_scanline() - turn on the display module's Tearing Effect
+ * output signal on the TE signal line when display module reaches line N
+ * defined by STS[n:0].
+ * @dsi: DSI peripheral device
+ * @param: STS[10:0]
+ * Return: 0 on success or a negative error code on failure
+ */
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param)
+{
+	u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, param >> 8,
+			  param & 0xff };
+	ssize_t err;
+
+	err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+	if (err < 0)
+		return err;
+
+	return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_set_tear_scanline);
+
+/**
  * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB image
  *    data used by the interface
  * @dsi: DSI peripheral device
include/drm/drm_mipi_dsi.h +1 -0
index 7a9840f..ec55285 100644
@@ -263,6 +263,7 @@ int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start,
 				    u16 end);
 int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16 start,
 				  u16 end);
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param);
 int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
 			     enum mipi_dsi_dcs_tear_mode mode);
Signature · 5 lines
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Reviewed-by
#2 lore raw
Quoted 5 lines · Jani Nikula
Quoted 3 lines · Vinay Simha BN

Provide a small convenience wrapper that transmits a set_tear_scanline command.

Quoted 10 lines
Quoted 6 lines
Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc Jani Nikula <[email protected]>
Quoted 18 lines
Quoted 18 lines

--
v1:
* helper function suggested by Thierry
for set_tear_scanline
* Also includes small build fixes from Sumit Semwal.

v2:
* one scanline parameter suggested by jani

v3:
* passing the payload properly as suggested by jani
--

---
 drivers/gpu/drm/drm_mipi_dsi.c | 22 ++++++++++++++++++++++
 include/drm/drm_mipi_dsi.h     |  1 +
 2 files changed, 23 insertions(+)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/drivers/gpu/drm/drm_mipi_dsi.c

Quoted 4 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct

Quoted 4 lines

index f5d8083..7938ce7 100644

drivers/gpu/drm/drm_mipi_dsi.c +0 -0
@@ -983,6 +983,28 @@ int mipi_dsi_dcs_set_tear_on(struct

mipi_dsi_device *dsi,

Quoted 4 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,

Quoted 4 lines
drivers/gpu/drm/drm_mipi_dsi.c +1 -0
 EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_on);
 
 /**
+ * mipi_dsi_set_tear_scanline() - turn on the display module's Tearing

Effect

Quoted 1 line

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct · line 987

Quoted 1 line
drivers/gpu/drm/drm_mipi_dsi.c +1 -0
+ * output signal on the TE signal line when display module reaches

line N

Quoted 13 lines
Quoted 13 lines
drivers/gpu/drm/drm_mipi_dsi.c +13 -0
+ * defined by STS[n:0].
+ * @dsi: DSI peripheral device
+ * @param: STS[10:0]
+ * Return: 0 on success or a negative error code on failure
+ */
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param)
+{
+     u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, param >> 8,
+                       param & 0xff };
+     ssize_t err;
+
+     err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+     if (err < 0)
Quoted 8 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,

Quoted 8 lines
drivers/gpu/drm/drm_mipi_dsi.c +7 -0
+             return err;
+
+     return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_set_tear_scanline);
+
+/**
  * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB

image

Quoted 7 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct

Quoted 7 lines
drivers/gpu/drm/drm_mipi_dsi.c +0 -0
  *    data used by the interface
  * @dsi: DSI peripheral device
include/drm/drm_mipi_dsi.h +0 -0
index 7a9840f..ec55285 100644
@@ -263,6 +263,7 @@ int mipi_dsi_dcs_set_column_address(struct

mipi_dsi_device *dsi, u16 start,

Quoted 2 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct · line 264

Quoted 2 lines
include/drm/drm_mipi_dsi.h +0 -0
                                  u16 end);
 int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16

start,

Quoted 8 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start, · line 269

Quoted 5 lines
include/drm/drm_mipi_dsi.h +1 -0
                                u16 end);
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param);
 int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
                           enum mipi_dsi_dcs_tear_mode mode);

--
Jani Nikula, Intel Open Source Technology Center

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

#3 lore raw
Quoted 13 lines · Sumit Semwal
Quoted 12 lines · Jani Nikula
Quoted 9 lines · Vinay Simha BN

Provide a small convenience wrapper that transmits a set_tear_scanline command.

Cc Archit Taneja <[email protected]>
Cc John Stultz <[email protected]>
Cc Thierry Reding <[email protected]>
Cc Sumit Semwal <[email protected]>
Cc Jani Nikula <[email protected]>
Quoted 4 lines
Quoted 3 lines

Applied to drm-misc, thanks.
-Daniel

Quoted 78 lines
Quoted 18 lines
Quoted 18 lines

--
v1:
* helper function suggested by Thierry
for set_tear_scanline
* Also includes small build fixes from Sumit Semwal.

v2:
* one scanline parameter suggested by jani

v3:
* passing the payload properly as suggested by jani
--

---
 drivers/gpu/drm/drm_mipi_dsi.c | 22 ++++++++++++++++++++++
 include/drm/drm_mipi_dsi.h     |  1 +
 2 files changed, 23 insertions(+)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/drivers/gpu/drm/drm_mipi_dsi.c

Quoted 4 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct

Quoted 4 lines

index f5d8083..7938ce7 100644

drivers/gpu/drm/drm_mipi_dsi.c +0 -0
@@ -983,6 +983,28 @@ int mipi_dsi_dcs_set_tear_on(struct

mipi_dsi_device *dsi,

Quoted 4 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,

Quoted 4 lines
drivers/gpu/drm/drm_mipi_dsi.c +1 -0
 EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_on);
 
 /**
+ * mipi_dsi_set_tear_scanline() - turn on the display module's Tearing

Effect

Quoted 1 line

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct · line 987

Quoted 1 line
drivers/gpu/drm/drm_mipi_dsi.c +1 -0
+ * output signal on the TE signal line when display module reaches

line N

Quoted 13 lines
Quoted 13 lines
drivers/gpu/drm/drm_mipi_dsi.c +13 -0
+ * defined by STS[n:0].
+ * @dsi: DSI peripheral device
+ * @param: STS[10:0]
+ * Return: 0 on success or a negative error code on failure
+ */
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param)
+{
+     u8 payload[3] = { MIPI_DCS_SET_TEAR_SCANLINE, param >> 8,
+                       param & 0xff };
+     ssize_t err;
+
+     err = mipi_dsi_generic_write(dsi, payload, sizeof(payload));
+     if (err < 0)
Quoted 8 lines

drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,

Quoted 8 lines
drivers/gpu/drm/drm_mipi_dsi.c +7 -0
+             return err;
+
+     return 0;
+}
+EXPORT_SYMBOL(mipi_dsi_set_tear_scanline);
+
+/**
  * mipi_dsi_dcs_set_pixel_format() - sets the pixel format for the RGB

image

Quoted 7 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct

Quoted 7 lines
drivers/gpu/drm/drm_mipi_dsi.c +0 -0
  *    data used by the interface
  * @dsi: DSI peripheral device
include/drm/drm_mipi_dsi.h +0 -0
index 7a9840f..ec55285 100644
@@ -263,6 +263,7 @@ int mipi_dsi_dcs_set_column_address(struct

mipi_dsi_device *dsi, u16 start,

Quoted 2 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct · line 264

Quoted 2 lines
include/drm/drm_mipi_dsi.h +0 -0
                                  u16 end);
 int mipi_dsi_dcs_set_page_address(struct mipi_dsi_device *dsi, u16

start,

Quoted 8 lines

include/drm/drm_mipi_dsi.h int mipi_dsi_dcs_set_column_address(struct mipi_dsi_device *dsi, u16 start, · line 269

Quoted 5 lines
include/drm/drm_mipi_dsi.h +1 -0
                                u16 end);
+int mipi_dsi_set_tear_scanline(struct mipi_dsi_device *dsi, u16 param);
 int mipi_dsi_dcs_set_tear_off(struct mipi_dsi_device *dsi);
 int mipi_dsi_dcs_set_tear_on(struct mipi_dsi_device *dsi,
                           enum mipi_dsi_dcs_tear_mode mode);

--
Jani Nikula, Intel Open Source Technology Center

_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Signature · 7 lines
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel