Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/panel: p079zca: Add variable unprepare_delay properties

When panel power down, p079zca need delay between reset and disable
power supply, but p097pfg does not need it. Similarly p097zca needs
a delay after entering panel sleep mode. So add two delay properties,
so we can meet these two panel power down sequence.

Signed-off-by: Lin Huang <hl@rock-chips.com>
[add sleep-mode delay]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180702102721.3546-3-heiko@sntech.de

authored by

Lin Huang and committed by
Thierry Reding
48bd379a 7ad4e463

+8 -2
+8 -2
drivers/gpu/drm/panel/panel-innolux-p079zca.c
··· 33 33 unsigned int lanes; 34 34 const char * const *supply_names; 35 35 unsigned int num_supplies; 36 + unsigned int sleep_mode_delay; 37 + unsigned int power_down_delay; 36 38 }; 37 39 38 40 struct innolux_panel { ··· 91 89 return err; 92 90 } 93 91 92 + if (innolux->desc->sleep_mode_delay) 93 + msleep(innolux->desc->sleep_mode_delay); 94 + 94 95 gpiod_set_value_cansleep(innolux->enable_gpio, 0); 95 96 96 - /* T8: 80ms - 1000ms */ 97 - msleep(80); 97 + if (innolux->desc->power_down_delay) 98 + msleep(innolux->desc->power_down_delay); 98 99 99 100 err = regulator_bulk_disable(innolux->desc->num_supplies, 100 101 innolux->supplies); ··· 213 208 .lanes = 4, 214 209 .supply_names = innolux_p079zca_supply_names, 215 210 .num_supplies = ARRAY_SIZE(innolux_p079zca_supply_names), 211 + .power_down_delay = 80, /* T8: 80ms - 1000ms */ 216 212 }; 217 213 218 214 static int innolux_panel_get_modes(struct drm_panel *panel)