display driver porting
Root cause:
How to fix:
Feature:
Issue:
Depends-On:
Change-Id: Idd7fdf53a98f1917649f48da10de99f3d09145a7
RiskArea:
diff --git a/drivers/video/fbdev/msm/mdss_dsi_panel.c b/drivers/video/fbdev/msm/mdss_dsi_panel.c
index 7d3009b..c453452 100644
--- a/drivers/video/fbdev/msm/mdss_dsi_panel.c
+++ b/drivers/video/fbdev/msm/mdss_dsi_panel.c
@@ -212,18 +212,21 @@
mdss_dsi_cmdlist_put(ctrl, &cmdreq);
}
-
-static char led_pwm1[2] = {0x51, 0x0}; /* DTYPE_DCS_WRITE1 */
+//[Arima][8901][20181105]Jialong modify backlight range is 1~4095 for control cmd range(2 bytes) Start
+static char led_pwm1[3] = {0x51, 0x00,0x00}; /* DTYPE_DCS_WRITE1 */
static struct dsi_cmd_desc backlight_cmd = {
- {DTYPE_DCS_WRITE1, 1, 0, 0, 1, sizeof(led_pwm1)},
- led_pwm1
+ {DTYPE_DCS_LWRITE, 1, 0, 0, 1, sizeof(led_pwm1)}, led_pwm1
};
+//[Arima][8901][20181105]Jialong modify backlight range is 1~4095 for control cmd range(2 bytes) END
static void mdss_dsi_panel_bklt_dcs(struct mdss_dsi_ctrl_pdata *ctrl, int level)
{
struct dcs_cmd_req cmdreq;
struct mdss_panel_info *pinfo;
+//[Arima][8901][20181105]Jialong modify backlight range is 1~4095 for control cmd range(2 bytes) Start
+int para_1,para_2;
+
pinfo = &(ctrl->panel_data.panel_info);
if (pinfo->dcs_cmd_by_left) {
if (ctrl->ndx != DSI_CTRL_LEFT)
@@ -232,7 +235,14 @@
pr_debug("%s: level=%d\n", __func__, level);
- led_pwm1[1] = (unsigned char)level;
+ //led_pwm1[1] = (unsigned char)level;
+ para_1 = (level>>8)&0x0F;
+ para_2 = level&0xFF;
+
+ led_pwm1[1] = (unsigned char)para_1;
+ led_pwm1[2] = (unsigned char)para_2;
+//[Arima][8901][20181105]Jialong modify backlight range is 1~4095 for control cmd range(2 bytes) End
+
memset(&cmdreq, 0, sizeof(cmdreq));
cmdreq.cmds = &backlight_cmd;
@@ -523,6 +533,19 @@
gpio_free(ctrl_pdata->disp_en_gpio);
}
gpio_set_value((ctrl_pdata->rst_gpio), 0);
+
+ //[Arima][8901][Jialongjhan]Modify pull TP reset Pin position 20191104 Start
+ //Move "pull low TP reset pin" from mdss_dsi.c,
+ //it have to same with LCM reset pin pull low
+
+ /*[Fairphone_8901][Jialong]To reduce power,pull down Touch reset pin when panel off start*/
+ //TP reset pin pull low with LCD reset pin at same time.
+ gpio_direction_output(64, 0);
+ /*[Fairphone_8901][Jialong]To reduce power,pull down Touch reset pin when panel off end*/
+
+ msleep(1);
+ //[Arima][8901][Jialongjhan]Modify pull TP reset Pin position 20191104 End
+
gpio_free(ctrl_pdata->rst_gpio);
if (gpio_is_valid(ctrl_pdata->mode_gpio))
gpio_free(ctrl_pdata->mode_gpio);
@@ -824,11 +847,22 @@
mdss_dsi_panel_dsc_pps_send(ctrl_pdata, &pdata->panel_info);
}
+/*[Arima_8901][Jialongjhan] Expose display revision 20190326 begin*/
+static char RDDID[4] = {0x04, 0x00, 0x00, 0x00};
+static struct dsi_cmd_desc cmd_RDDID = {
+ {DTYPE_DCS_READ, 1, 0, 1, 5, sizeof(RDDID)}, RDDID};
+int RDDID_HWINFO[3];
+int RDDID_read_count =0;
+/*[Arima_8901][Jialongjhan] Expose display revision 20190326 end*/
+
static void mdss_dsi_panel_bl_ctrl(struct mdss_panel_data *pdata,
u32 bl_level)
{
struct mdss_dsi_ctrl_pdata *ctrl_pdata = NULL;
struct mdss_dsi_ctrl_pdata *sctrl = NULL;
+ /*[Arima_8901][Jialongjhan] Expose display revision 20190326 begin*/
+ struct dcs_cmd_req cmdreq2;
+ /*[Arima_8901][Jialongjhan] Expose display revision 20190326 end*/
if (pdata == NULL) {
pr_err("%s: Invalid input data\n", __func__);
@@ -838,6 +872,32 @@
ctrl_pdata = container_of(pdata, struct mdss_dsi_ctrl_pdata,
panel_data);
+ /*[Arima_8901][Jialongjhan] Expose display revision 20190326 begin*/
+ if(RDDID_read_count==0){
+ memset(&cmdreq2, 0, sizeof(cmdreq2));
+ cmdreq2.cmds = &cmd_RDDID;
+ cmdreq2.cmds_cnt = 1;
+ cmdreq2.flags = CMD_REQ_COMMIT | CMD_REQ_RX;;
+ cmdreq2.rlen = 3;//return 3 values
+ cmdreq2.cb = NULL; /* call back */
+ cmdreq2.rbuf = ctrl_pdata->rx_buf.data;
+
+ mdss_dsi_cmdlist_put(ctrl_pdata, &cmdreq2);
+
+ if(ctrl_pdata->rx_buf.len>0){
+ RDDID_HWINFO[0]=(int)*(ctrl_pdata->rx_buf.data);
+ RDDID_HWINFO[1]=(int)*(ctrl_pdata->rx_buf.data+1);
+ RDDID_HWINFO[2]=(int)*(ctrl_pdata->rx_buf.data+2);
+ //pr_err("[Jialong] ctrl->rx_buf.data data =0x%x\n",*(ctrl_pdata->rx_buf.data));
+ RDDID_read_count++;
+ }
+ }
+ /*[Arima_8901][Jialongjhan] Expose display revision 20190326 end*/
+
+ //[Arima][8901][JialongJhan] Command mode debug fuzzy screen 20190516 Start
+ mdelay(1);
+ //[Arima][8901][JialongJhan] Command mode debug fuzzy screen 20190516 End
+
/*
* Some backlight controllers specify a minimum duty cycle
* for the backlight brightness. If the brightness is less