Skip to content

Commit 051c86a

Browse files
meltqdianders
authored andcommitted
drm/mipi-dsi: Add mipi_dsi_dcs_set_tear_scanline_multi
mipi_dsi_dcs_set_tear_scanline_multi can heavily benefit from being converted to a multi style function as it is often called in the context of similar functions. Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Tejas Vipin <tejasvipin76@gmail.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240818060816.848784-2-tejasvipin76@gmail.com
1 parent 1453323 commit 051c86a

2 files changed

Lines changed: 33 additions & 0 deletions

File tree

drivers/gpu/drm/drm_mipi_dsi.c

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,9 @@ EXPORT_SYMBOL(mipi_dsi_dcs_set_pixel_format);
13391339
* @dsi: DSI peripheral device
13401340
* @scanline: scanline to use as trigger
13411341
*
1342+
* This function is deprecated. Use mipi_dsi_dcs_set_tear_scanline_multi()
1343+
* instead.
1344+
*
13421345
* Return: 0 on success or a negative error code on failure
13431346
*/
13441347
int mipi_dsi_dcs_set_tear_scanline(struct mipi_dsi_device *dsi, u16 scanline)
@@ -1833,6 +1836,34 @@ void mipi_dsi_dcs_set_page_address_multi(struct mipi_dsi_multi_context *ctx,
18331836
}
18341837
EXPORT_SYMBOL(mipi_dsi_dcs_set_page_address_multi);
18351838

1839+
/**
1840+
* mipi_dsi_dcs_set_tear_scanline_multi() - set the scanline to use as trigger for
1841+
* the Tearing Effect output signal of the display module
1842+
* @ctx: Context for multiple DSI transactions
1843+
* @scanline: scanline to use as trigger
1844+
*
1845+
* Like mipi_dsi_dcs_set_tear_scanline() but deals with errors in a way that
1846+
* makes it convenient to make several calls in a row.
1847+
*/
1848+
void mipi_dsi_dcs_set_tear_scanline_multi(struct mipi_dsi_multi_context *ctx,
1849+
u16 scanline)
1850+
{
1851+
struct mipi_dsi_device *dsi = ctx->dsi;
1852+
struct device *dev = &dsi->dev;
1853+
int ret;
1854+
1855+
if (ctx->accum_err)
1856+
return;
1857+
1858+
ret = mipi_dsi_dcs_set_tear_scanline(dsi, scanline);
1859+
if (ret < 0) {
1860+
ctx->accum_err = ret;
1861+
dev_err(dev, "Failed to set tear scanline: %d\n",
1862+
ctx->accum_err);
1863+
}
1864+
}
1865+
EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_scanline_multi);
1866+
18361867
static int mipi_dsi_drv_probe(struct device *dev)
18371868
{
18381869
struct mipi_dsi_driver *drv = to_mipi_dsi_driver(dev->driver);

include/drm/drm_mipi_dsi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,8 @@ void mipi_dsi_dcs_set_column_address_multi(struct mipi_dsi_multi_context *ctx,
375375
u16 start, u16 end);
376376
void mipi_dsi_dcs_set_page_address_multi(struct mipi_dsi_multi_context *ctx,
377377
u16 start, u16 end);
378+
void mipi_dsi_dcs_set_tear_scanline_multi(struct mipi_dsi_multi_context *ctx,
379+
u16 scanline);
378380

379381
/**
380382
* mipi_dsi_generic_write_seq - transmit data using a generic write packet

0 commit comments

Comments
 (0)