drm/mipi-dsi: add mipi_dsi_shutdown_peripheral_multi

Add mipi_dsi_shutdown_peripheral_multi function and mark
mipi_dsi_shutdown_peripheral function as deprecated.

Signed-off-by: Avinal Kumar <avinal.xlvii@gmail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patch.msgid.link/20260417061842.66631-2-avinal.xlvii@gmail.com
This commit is contained in:
Avinal Kumar
2026-04-17 11:48:41 +05:30
committed by Douglas Anderson
parent 6920d18ef7
commit ac7e1a9819
2 changed files with 29 additions and 0 deletions

View File

@@ -587,6 +587,9 @@ EXPORT_SYMBOL(mipi_dsi_create_packet);
* mipi_dsi_shutdown_peripheral() - sends a Shutdown Peripheral command
* @dsi: DSI peripheral device
*
* This function is deprecated. Use mipi_dsi_shutdown_peripheral_multi()
* instead.
*
* Return: 0 on success or a negative error code on failure.
*/
int mipi_dsi_shutdown_peripheral(struct mipi_dsi_device *dsi)
@@ -1980,6 +1983,31 @@ void mipi_dsi_dcs_set_tear_scanline_multi(struct mipi_dsi_multi_context *ctx,
}
EXPORT_SYMBOL(mipi_dsi_dcs_set_tear_scanline_multi);
/**
* mipi_dsi_shutdown_peripheral_multi() - sends a Shutdown Peripheral command
* @ctx: Context for multiple DSI transactions
*
* Like mipi_dsi_shutdown_peripheral() but deals with errors in a way that
* makes it convenient to make several calls in a row.
*/
void mipi_dsi_shutdown_peripheral_multi(struct mipi_dsi_multi_context *ctx)
{
struct mipi_dsi_device *dsi = ctx->dsi;
struct device *dev = &dsi->dev;
int ret;
if (ctx->accum_err)
return;
ret = mipi_dsi_shutdown_peripheral(dsi);
if (ret < 0) {
ctx->accum_err = ret;
dev_err(dev, "Failed to shutdown peripheral: %d\n",
ctx->accum_err);
}
}
EXPORT_SYMBOL(mipi_dsi_shutdown_peripheral_multi);
static int mipi_dsi_drv_probe(struct device *dev)
{
struct mipi_dsi_driver *drv = to_mipi_dsi_driver(dev->driver);

View File

@@ -393,6 +393,7 @@ void mipi_dsi_dcs_set_page_address_multi(struct mipi_dsi_multi_context *ctx,
void mipi_dsi_dcs_set_tear_scanline_multi(struct mipi_dsi_multi_context *ctx,
u16 scanline);
void mipi_dsi_dcs_set_tear_off_multi(struct mipi_dsi_multi_context *ctx);
void mipi_dsi_shutdown_peripheral_multi(struct mipi_dsi_multi_context *ctx);
/**
* mipi_dsi_generic_write_seq_multi - transmit data using a generic write packet