diff mbox

[v3] drm/dsi: Implement set tear scanline

Message ID 1465285532-12676-1-git-send-email-simhavcs@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vinay Simha B N June 7, 2016, 7:45 a.m. UTC
Provide a small convenience wrapper that transmits
a set_tear_scanline command.

Cc: Archit Taneja <archit.taneja@gmail.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Vinay Simha BN <simhavcs@gmail.com>

--
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(+)

Comments

Jani Nikula June 7, 2016, 9:02 a.m. UTC | #1
On Tue, 07 Jun 2016, Vinay Simha BN <simhavcs@gmail.com> wrote:
> Provide a small convenience wrapper that transmits
> a set_tear_scanline command.
>
> Cc: Archit Taneja <archit.taneja@gmail.com>
> Cc: John Stultz <john.stultz@linaro.org>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Sumit Semwal <sumit.semwal@linaro.org>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> Signed-off-by: Vinay Simha BN <simhavcs@gmail.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


>
> --
> 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(+)
>
> diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
> index f5d8083..7938ce7 100644
> --- a/drivers/gpu/drm/drm_mipi_dsi.c
> +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> @@ -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
> diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
> index 7a9840f..ec55285 100644
> --- a/include/drm/drm_mipi_dsi.h
> +++ b/include/drm/drm_mipi_dsi.h
> @@ -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);
Sumit Semwal June 7, 2016, 5:51 p.m. UTC | #2
On 07-Jun-2016 2:32 PM, "Jani Nikula" <jani.nikula@linux.intel.com> wrote:
>
> On Tue, 07 Jun 2016, Vinay Simha BN <simhavcs@gmail.com> wrote:
> > Provide a small convenience wrapper that transmits
> > a set_tear_scanline command.
> >
> > Cc: Archit Taneja <archit.taneja@gmail.com>
> > Cc: John Stultz <john.stultz@linaro.org>
> > Cc: Thierry Reding <thierry.reding@gmail.com>
> > Cc: Sumit Semwal <sumit.semwal@linaro.org>
> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > Signed-off-by: Vinay Simha BN <simhavcs@gmail.com>
>
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>
>
Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>
> >
> > --
> > 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(+)
> >
> > diff --git a/drivers/gpu/drm/drm_mipi_dsi.c
b/drivers/gpu/drm/drm_mipi_dsi.c
> > index f5d8083..7938ce7 100644
> > --- a/drivers/gpu/drm/drm_mipi_dsi.c
> > +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> > @@ -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
> > diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
> > index 7a9840f..ec55285 100644
> > --- a/include/drm/drm_mipi_dsi.h
> > +++ b/include/drm/drm_mipi_dsi.h
> > @@ -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);
>
> --
> Jani Nikula, Intel Open Source Technology Center
Daniel Vetter June 7, 2016, 7:45 p.m. UTC | #3
On Tue, Jun 07, 2016 at 11:21:10PM +0530, Sumit Semwal wrote:
> On 07-Jun-2016 2:32 PM, "Jani Nikula" <jani.nikula@linux.intel.com> wrote:
> >
> > On Tue, 07 Jun 2016, Vinay Simha BN <simhavcs@gmail.com> wrote:
> > > Provide a small convenience wrapper that transmits
> > > a set_tear_scanline command.
> > >
> > > Cc: Archit Taneja <archit.taneja@gmail.com>
> > > Cc: John Stultz <john.stultz@linaro.org>
> > > Cc: Thierry Reding <thierry.reding@gmail.com>
> > > Cc: Sumit Semwal <sumit.semwal@linaro.org>
> > > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > > Signed-off-by: Vinay Simha BN <simhavcs@gmail.com>
> >
> > Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> >
> >
> Reviewed-by: Sumit Semwal <sumit.semwal@linaro.org>

Applied to drm-misc, thanks.
-Daniel

> > >
> > > --
> > > 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(+)
> > >
> > > diff --git a/drivers/gpu/drm/drm_mipi_dsi.c
> b/drivers/gpu/drm/drm_mipi_dsi.c
> > > index f5d8083..7938ce7 100644
> > > --- a/drivers/gpu/drm/drm_mipi_dsi.c
> > > +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> > > @@ -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
> > > diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
> > > index 7a9840f..ec55285 100644
> > > --- a/include/drm/drm_mipi_dsi.h
> > > +++ b/include/drm/drm_mipi_dsi.h
> > > @@ -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);
> >
> > --
> > Jani Nikula, Intel Open Source Technology Center

> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index f5d8083..7938ce7 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -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
diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index 7a9840f..ec55285 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -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);