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

Commit 87d1cd6a authored by Sandeep Panda's avatar Sandeep Panda
Browse files

msm: mdss: handle ULPS clamp programming for sdm660



For sdm660 the ULPS clamp registers are moved from
DSI PHY level to interface level. This change handles
the new settings for both video mode and command mode
interface.

Change-Id: Ib99c605362aa25aacfa394c1a7ffe2886acf7035
Signed-off-by: default avatarSandeep Panda <spanda@codeaurora.org>
parent 0c48b2fc
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -210,6 +210,15 @@ enum mdss_mdp_pipe_type {
	MDSS_MDP_PIPE_TYPE_MAX,
};

enum mdss_mdp_intf_index {
	MDSS_MDP_NO_INTF,
	MDSS_MDP_INTF0,
	MDSS_MDP_INTF1,
	MDSS_MDP_INTF2,
	MDSS_MDP_INTF3,
	MDSS_MDP_MAX_INTF
};

struct reg_bus_client {
	char name[MAX_CLIENT_NAME_LEN];
	short usecase_ndx;
+13 −0
Original line number Diff line number Diff line
@@ -2515,6 +2515,15 @@ static int mdss_dsi_register_mdp_callback(struct mdss_dsi_ctrl_pdata *ctrl,
	return 0;
}

static int mdss_dsi_register_clamp_handler(struct mdss_dsi_ctrl_pdata *ctrl,
	struct mdss_intf_ulp_clamp *clamp_handler)
{
	mutex_lock(&ctrl->mutex);
	ctrl->clamp_handler = clamp_handler;
	mutex_unlock(&ctrl->mutex);
	return 0;
}

static struct device_node *mdss_dsi_get_fb_node_cb(struct platform_device *pdev)
{
	struct device_node *fb_node;
@@ -2699,6 +2708,10 @@ static int mdss_dsi_event_handler(struct mdss_panel_data *pdata,
		rc = mdss_dsi_register_mdp_callback(ctrl_pdata,
			(struct mdss_intf_recovery *)arg);
		break;
	case MDSS_EVENT_REGISTER_CLAMP_HANDLER:
		rc = mdss_dsi_register_clamp_handler(ctrl_pdata,
			(struct mdss_intf_ulp_clamp *)arg);
		break;
	case MDSS_EVENT_DSI_DYNAMIC_SWITCH:
		mode = (u32)(unsigned long) arg;
		mdss_dsi_switch_mode(pdata, mode);
+1 −0
Original line number Diff line number Diff line
@@ -484,6 +484,7 @@ struct mdss_dsi_ctrl_pdata {
	struct mdss_hw *dsi_hw;
	struct mdss_intf_recovery *recovery;
	struct mdss_intf_recovery *mdp_callback;
	struct mdss_intf_ulp_clamp *clamp_handler;

	struct dsi_panel_cmds on_cmds;
	struct dsi_panel_cmds post_dms_on_cmds;
+1 −0
Original line number Diff line number Diff line
@@ -1992,6 +1992,7 @@ void mdss_mdp_disable_hw_irq(struct mdss_data_type *mdata);

void mdss_mdp_set_supported_formats(struct mdss_data_type *mdata);
int mdss_mdp_dest_scaler_setup_locked(struct mdss_mdp_mixer *mixer);
void *mdss_mdp_intf_get_ctx_base(struct mdss_mdp_ctl *ctl, int intf_num);

#ifdef CONFIG_FB_MSM_MDP_NONE
struct mdss_data_type *mdss_mdp_get_mdata(void)
+3 −10
Original line number Diff line number Diff line
/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -634,15 +634,6 @@ enum mdss_mdp_dspp_index {
#define MDSS_MDP_DSPP_OP_PA_SIX_ZONE_SAT_MASK		BIT(30)
#define MDSS_MDP_DSPP_OP_PA_SIX_ZONE_VAL_MASK		BIT(31)

enum mdss_mpd_intf_index {
	MDSS_MDP_NO_INTF,
	MDSS_MDP_INTF0,
	MDSS_MDP_INTF1,
	MDSS_MDP_INTF2,
	MDSS_MDP_INTF3,
	MDSS_MDP_MAX_INTF
};

#define MDSS_MDP_REG_INTF_TIMING_ENGINE_EN		0x000
#define MDSS_MDP_REG_INTF_CONFIG			0x004
#define MDSS_MDP_REG_INTF_HSYNC_CTL			0x008
@@ -703,6 +694,8 @@ enum mdss_mpd_intf_index {
#define MDSS_MDP_PANEL_FORMAT_RGB888			0x213F
#define MDSS_MDP_PANEL_FORMAT_RGB666			0x212A

#define MDSS_MDP_REG_DSI_ULP_CLAMP_VALUE		0x064

#define MDSS_MDP_PANEL_FORMAT_PACK_ALIGN_MSB		BIT(7)

enum mdss_mdp_pingpong_index {
Loading