Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc5d79f9 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: add clock control to dsi connector ops" into msm-4.9

parents e81489ab bb2bf9aa
Loading
Loading
Loading
Loading
+19 −0
Original line number Original line Diff line number Diff line
@@ -248,6 +248,25 @@ int sde_connector_pre_kickoff(struct drm_connector *connector)
	return rc;
	return rc;
}
}


void sde_connector_clk_ctrl(struct drm_connector *connector, bool enable)
{
	struct sde_connector *c_conn;
	struct dsi_display *display;
	u32 state = enable ? DSI_CLK_ON : DSI_CLK_OFF;

	if (!connector) {
		SDE_ERROR("invalid connector\n");
		return;
	}

	c_conn = to_sde_connector(connector);
	display = (struct dsi_display *) c_conn->display;

	if (display && c_conn->ops.clk_ctrl)
		c_conn->ops.clk_ctrl(display->mdp_clk_handle,
				DSI_ALL_CLKS, state);
}

static void sde_connector_destroy(struct drm_connector *connector)
static void sde_connector_destroy(struct drm_connector *connector)
{
{
	struct sde_connector *c_conn;
	struct sde_connector *c_conn;
+15 −0
Original line number Original line Diff line number Diff line
@@ -150,6 +150,14 @@ struct sde_connector_ops {
	int (*pre_kickoff)(struct drm_connector *connector,
	int (*pre_kickoff)(struct drm_connector *connector,
			void *display,
			void *display,
			struct msm_display_kickoff_params *params);
			struct msm_display_kickoff_params *params);

	/**
	 * clk_ctrl - perform clk enable/disable on the connector
	 * @handle: Pointer to clk handle
	 * @type: Type of clks
	 * @enable: State of clks
	 */
	int (*clk_ctrl)(void *handle, u32 type, u32 state);
};
};


/**
/**
@@ -365,6 +373,13 @@ void sde_connector_complete_commit(struct drm_connector *connector);
int sde_connector_get_info(struct drm_connector *connector,
int sde_connector_get_info(struct drm_connector *connector,
		struct msm_display_info *info);
		struct msm_display_info *info);


/**
 * sde_connector_clk_ctrl - enables/disables the connector clks
 * @connector: Pointer to drm connector object
 * @enable: true/false to enable/disable
 */
void sde_connector_clk_ctrl(struct drm_connector *connector, bool enable);

/**
/**
 * sde_connector_trigger_event - indicate that an event has occurred
 * sde_connector_trigger_event - indicate that an event has occurred
 *	Any callbacks that have been registered against this event will
 *	Any callbacks that have been registered against this event will
+2 −1
Original line number Original line Diff line number Diff line
@@ -566,7 +566,8 @@ static int _sde_kms_setup_displays(struct drm_device *dev,
		.get_info =   dsi_display_get_info,
		.get_info =   dsi_display_get_info,
		.set_backlight = dsi_display_set_backlight,
		.set_backlight = dsi_display_set_backlight,
		.soft_reset   = dsi_display_soft_reset,
		.soft_reset   = dsi_display_soft_reset,
		.pre_kickoff  = dsi_conn_pre_kickoff
		.pre_kickoff  = dsi_conn_pre_kickoff,
		.clk_ctrl = dsi_display_clk_ctrl
	};
	};
	static const struct sde_connector_ops wb_ops = {
	static const struct sde_connector_ops wb_ops = {
		.post_init =    sde_wb_connector_post_init,
		.post_init =    sde_wb_connector_post_init,