Skip to content

Commit bf8485c

Browse files
singhomeleeasus-leslieyu
authored andcommitted
mipi-panel: RPI: avoid the flicker of rpi panel when shutdown/reboot/resume.
1. this issue only occurs at the particulare rpi panel. Change-Id: I8d1d1d081b98a6b2ab1c52135b6327c35d5637d7
1 parent b768fb6 commit bf8485c

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

drivers/miniarm/dsi/panel-toshiba-tc358762.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,12 @@ static int tc358762_of_get_native_mode(struct tc358762 *panel)
184184
return 1;
185185
}
186186

187+
extern struct backlight_device * tinker_mcu_get_backlightdev(void);
187188
extern int tinker_mcu_set_bright(int bright);
189+
extern int tinker_mcu_screen_power_up(void);
190+
extern int tinker_mcu_screen_power_off(void);
191+
extern void tinker_ft5406_start_polling(void);
192+
188193
static int tc358762_disable(struct drm_panel *panel)
189194
{
190195
struct tc358762 *p = to_tc358762(panel);
@@ -205,6 +210,8 @@ static int tc358762_disable(struct drm_panel *panel)
205210
if (p->desc && p->desc->delay.disable)
206211
msleep(p->desc->delay.disable);
207212

213+
tinker_mcu_screen_power_off();
214+
208215
p->enabled = false;
209216

210217
return 0;
@@ -296,9 +303,6 @@ static int tc358762_prepare(struct drm_panel *panel)
296303
return 0;
297304
}
298305

299-
extern struct backlight_device * tinker_mcu_get_backlightdev(void);
300-
extern void tinker_mcu_screen_power_up(void);
301-
extern void tinker_ft5406_start_polling(void);
302306
static int tc358762_enable(struct drm_panel *panel)
303307
{
304308
struct tc358762 *p = to_tc358762(panel);
@@ -311,9 +315,13 @@ static int tc358762_enable(struct drm_panel *panel)
311315
if(trigger_bridge) {
312316
pr_info("tinker_mcu_screen_power_up");
313317
tinker_mcu_screen_power_up();
318+
319+
/*Some particulare rpi panel need powering on/off during sususpned/resume to avoid
320+
the flicker about 7 seconds */
321+
//trigger_bridge = 0;
322+
314323
msleep(100);
315324
tinker_ft5406_start_polling();
316-
trigger_bridge = 0;
317325
}
318326

319327
tc358762_dsi_init(p);

drivers/misc/tinker_mcu.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,27 @@ static int init_cmd_check(struct tinker_mcu_data *mcu_data)
136136
return ret;
137137
}
138138

139-
int tinker_mcu_screen_power_up(void)
139+
int tinker_mcu_screen_power_off(void)
140140
{
141141
if (!connected)
142142
return -ENODEV;
143143

144144
LOG_INFO("\n");
145145
send_cmds(g_mcu_data->client, "8500");
146-
msleep(800);
146+
msleep(10);
147+
148+
return 0;
149+
}
150+
EXPORT_SYMBOL_GPL(tinker_mcu_screen_power_off);
151+
152+
int tinker_mcu_screen_power_up(void)
153+
{
154+
if (!connected)
155+
return -ENODEV;
156+
157+
LOG_INFO("\n");
158+
//send_cmds(g_mcu_data->client, "8500");
159+
//msleep(800);
147160
send_cmds(g_mcu_data->client, "8501");
148161
send_cmds(g_mcu_data->client, "8104");
149162

@@ -300,6 +313,8 @@ static int tinker_mcu_probe(struct i2c_client *client,
300313
return ret;
301314
}
302315

316+
tinker_mcu_screen_power_off();
317+
303318
return 0;
304319

305320
error:

0 commit comments

Comments
 (0)