Commit dcbd5dcc authored by Dmitry Baryshkov's avatar Dmitry Baryshkov
Browse files

drm/panel: make prepare/enable and disable/unprepare calls return void



Now there are no users of the return value of the drm_panel_prepare(),
drm_panel_unprepare(), drm_panel_enable() and drm_panel_disable() calls.
Usually these calls are performed from the atomic callbacks, where it is
impossible to return an error. Stop returning error codes and return
void instead.

Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20250401-panel-return-void-v1-7-93e1be33dc8d@oss.qualcomm.com


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
parent 58a71d2b
Loading
Loading
Loading
Loading
+20 −34
Original line number Diff line number Diff line
@@ -106,21 +106,21 @@ EXPORT_SYMBOL(drm_panel_remove);
 *
 * Calling this function will enable power and deassert any reset signals to
 * the panel. After this has completed it is possible to communicate with any
 * integrated circuitry via a command bus.
 *
 * Return: 0 on success or a negative error code on failure.
 * integrated circuitry via a command bus. This function cannot fail (as it is
 * called from the pre_enable call chain). There will always be a call to
 * drm_panel_disable() afterwards.
 */
int drm_panel_prepare(struct drm_panel *panel)
void drm_panel_prepare(struct drm_panel *panel)
{
	struct drm_panel_follower *follower;
	int ret;

	if (!panel)
		return -EINVAL;
		return;

	if (panel->prepared) {
		dev_warn(panel->dev, "Skipping prepare of already prepared panel\n");
		return 0;
		return;
	}

	mutex_lock(&panel->follower_lock);
@@ -139,11 +139,8 @@ int drm_panel_prepare(struct drm_panel *panel)
				 follower->funcs->panel_prepared, ret);
	}

	ret = 0;
exit:
	mutex_unlock(&panel->follower_lock);

	return ret;
}
EXPORT_SYMBOL(drm_panel_prepare);

@@ -155,16 +152,14 @@ EXPORT_SYMBOL(drm_panel_prepare);
 * reset, turn off power supplies, ...). After this function has completed, it
 * is usually no longer possible to communicate with the panel until another
 * call to drm_panel_prepare().
 *
 * Return: 0 on success or a negative error code on failure.
 */
int drm_panel_unprepare(struct drm_panel *panel)
void drm_panel_unprepare(struct drm_panel *panel)
{
	struct drm_panel_follower *follower;
	int ret;

	if (!panel)
		return -EINVAL;
		return;

	/*
	 * If you are seeing the warning below it likely means one of two things:
@@ -177,7 +172,7 @@ int drm_panel_unprepare(struct drm_panel *panel)
	 */
	if (!panel->prepared) {
		dev_warn(panel->dev, "Skipping unprepare of already unprepared panel\n");
		return 0;
		return;
	}

	mutex_lock(&panel->follower_lock);
@@ -196,11 +191,8 @@ int drm_panel_unprepare(struct drm_panel *panel)
	}
	panel->prepared = false;

	ret = 0;
exit:
	mutex_unlock(&panel->follower_lock);

	return ret;
}
EXPORT_SYMBOL(drm_panel_unprepare);

@@ -210,26 +202,26 @@ EXPORT_SYMBOL(drm_panel_unprepare);
 *
 * Calling this function will cause the panel display drivers to be turned on
 * and the backlight to be enabled. Content will be visible on screen after
 * this call completes.
 *
 * Return: 0 on success or a negative error code on failure.
 * this call completes. This function cannot fail (as it is called from the
 * enable call chain). There will always be a call to drm_panel_disable()
 * afterwards.
 */
int drm_panel_enable(struct drm_panel *panel)
void drm_panel_enable(struct drm_panel *panel)
{
	int ret;

	if (!panel)
		return -EINVAL;
		return;

	if (panel->enabled) {
		dev_warn(panel->dev, "Skipping enable of already enabled panel\n");
		return 0;
		return;
	}

	if (panel->funcs && panel->funcs->enable) {
		ret = panel->funcs->enable(panel);
		if (ret < 0)
			return ret;
			return;
	}
	panel->enabled = true;

@@ -237,8 +229,6 @@ int drm_panel_enable(struct drm_panel *panel)
	if (ret < 0)
		DRM_DEV_INFO(panel->dev, "failed to enable backlight: %d\n",
			     ret);

	return 0;
}
EXPORT_SYMBOL(drm_panel_enable);

@@ -249,15 +239,13 @@ EXPORT_SYMBOL(drm_panel_enable);
 * This will typically turn off the panel's backlight or disable the display
 * drivers. For smart panels it should still be possible to communicate with
 * the integrated circuitry via any command bus after this call.
 *
 * Return: 0 on success or a negative error code on failure.
 */
int drm_panel_disable(struct drm_panel *panel)
void drm_panel_disable(struct drm_panel *panel)
{
	int ret;

	if (!panel)
		return -EINVAL;
		return;

	/*
	 * If you are seeing the warning below it likely means one of two things:
@@ -270,7 +258,7 @@ int drm_panel_disable(struct drm_panel *panel)
	 */
	if (!panel->enabled) {
		dev_warn(panel->dev, "Skipping disable of already disabled panel\n");
		return 0;
		return;
	}

	ret = backlight_disable(panel->backlight);
@@ -281,11 +269,9 @@ int drm_panel_disable(struct drm_panel *panel)
	if (panel->funcs && panel->funcs->disable) {
		ret = panel->funcs->disable(panel);
		if (ret < 0)
			return ret;
			return;
	}
	panel->enabled = false;

	return 0;
}
EXPORT_SYMBOL(drm_panel_disable);

+2 −7
Original line number Diff line number Diff line
@@ -413,15 +413,10 @@ static int panel_nv3051d_probe(struct mipi_dsi_device *dsi)
static void panel_nv3051d_shutdown(struct mipi_dsi_device *dsi)
{
	struct panel_nv3051d *ctx = mipi_dsi_get_drvdata(dsi);
	int ret;

	ret = drm_panel_unprepare(&ctx->panel);
	if (ret < 0)
		dev_err(&dsi->dev, "Failed to unprepare panel: %d\n", ret);
	drm_panel_unprepare(&ctx->panel);

	ret = drm_panel_disable(&ctx->panel);
	if (ret < 0)
		dev_err(&dsi->dev, "Failed to disable panel: %d\n", ret);
	drm_panel_disable(&ctx->panel);
}

static void panel_nv3051d_remove(struct mipi_dsi_device *dsi)
+4 −4
Original line number Diff line number Diff line
@@ -316,11 +316,11 @@ void drm_panel_put(struct drm_panel *panel);
void drm_panel_add(struct drm_panel *panel);
void drm_panel_remove(struct drm_panel *panel);

int drm_panel_prepare(struct drm_panel *panel);
int drm_panel_unprepare(struct drm_panel *panel);
void drm_panel_prepare(struct drm_panel *panel);
void drm_panel_unprepare(struct drm_panel *panel);

int drm_panel_enable(struct drm_panel *panel);
int drm_panel_disable(struct drm_panel *panel);
void drm_panel_enable(struct drm_panel *panel);
void drm_panel_disable(struct drm_panel *panel);

int drm_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector);