drm/panel: simple: Replace msleep() with usleep_range()

On rk3588-evb1-lp4-v10:
Before:
[  266.604393][ T1971] PM: suspend exit
[  266.792421][  T410] dw-mipi-dsi2 fde20000.dsi: [drm:dw_mipi_dsi2_encoder_atomic_enable] final DSI-Link bandwidth: 880000 x 4 Kbps
total: 0.188028

After:
[  153.394800][ T1972] PM: suspend exit
[  153.559644][  T409] dw-mipi-dsi2 fde20000.dsi: [drm:dw_mipi_dsi2_encoder_atomic_enable] final DSI-Link bandwidth: 880000 x 4 Kbps
total: 0.164844, save about 0.023s

Signed-off-by: Tao Huang <huangtao@rock-chips.com>
Change-Id: Ifa5c73732478ee253fd81b7e4fd545a4d4b35ba8
This commit is contained in:
Tao Huang
2023-09-20 17:00:43 +08:00
parent f12d67042f
commit cd26d5970c

View File

@@ -277,7 +277,7 @@ static int panel_simple_xfer_dsi_cmd_seq(struct panel_simple *panel,
dev_err(dev, "failed to write dcs cmd: %d\n", err);
if (cmd->header.delay)
msleep(cmd->header.delay);
usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
}
return 0;
@@ -300,7 +300,7 @@ static int panel_simple_xfer_spi_cmd_seq(struct panel_simple *panel, struct pane
return ret;
if (cmd->header.delay)
usleep_range(cmd->header.delay * 1000, (cmd->header.delay + 1) * 1000);
usleep_range(cmd->header.delay * 1000, cmd->header.delay * 1000 + 100);
}
return 0;
@@ -478,7 +478,7 @@ static int panel_simple_disable(struct drm_panel *panel)
return 0;
if (p->desc->delay.disable)
msleep(p->desc->delay.disable);
usleep_range(p->desc->delay.disable * 1000, p->desc->delay.disable * 1000 + 100);
p->enabled = false;
@@ -510,7 +510,7 @@ static int panel_simple_unprepare(struct drm_panel *panel)
panel_simple_regulator_disable(p);
if (p->desc->delay.unprepare)
msleep(p->desc->delay.unprepare);
usleep_range(p->desc->delay.unprepare * 1000, p->desc->delay.unprepare * 1000 + 100);
p->prepared = false;
@@ -564,7 +564,7 @@ static int panel_simple_prepare(struct drm_panel *panel)
if (p->no_hpd)
delay += p->desc->delay.hpd_absent_delay;
if (delay)
msleep(delay);
usleep_range(delay * 1000, delay * 1000 + 100);
if (p->hpd_gpio) {
if (IS_ERR(p->hpd_gpio)) {
@@ -589,12 +589,12 @@ static int panel_simple_prepare(struct drm_panel *panel)
gpiod_direction_output(p->reset_gpio, 1);
if (p->desc->delay.reset)
msleep(p->desc->delay.reset);
usleep_range(p->desc->delay.reset * 1000, p->desc->delay.reset * 1000 + 100);
gpiod_direction_output(p->reset_gpio, 0);
if (p->desc->delay.init)
msleep(p->desc->delay.init);
usleep_range(p->desc->delay.init * 1000, p->desc->delay.init * 1000 + 100);
if (p->desc->init_seq) {
if (p->desc->cmd_type == CMD_TYPE_SPI) {
@@ -621,7 +621,7 @@ static int panel_simple_enable(struct drm_panel *panel)
return 0;
if (p->desc->delay.enable)
msleep(p->desc->delay.enable);
usleep_range(p->desc->delay.enable * 1000, p->desc->delay.enable * 1000 + 100);
p->enabled = true;