mirror of https://gitee.com/openkylin/linux.git
sh: skip disabled LCDC channels
This patch updates the SuperH Mobile LCDC driver to skip over disabled channels. Without this patch suspend-to-ram operation will crash if deferred io is enabled. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
64f1607ffb
commit
21bc1f024d
|
@ -481,6 +481,9 @@ static int sh_mobile_lcdc_start(struct sh_mobile_lcdc_priv *priv)
|
||||||
/* tell the board code to enable the panel */
|
/* tell the board code to enable the panel */
|
||||||
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
|
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
|
||||||
ch = &priv->ch[k];
|
ch = &priv->ch[k];
|
||||||
|
if (!ch->enabled)
|
||||||
|
continue;
|
||||||
|
|
||||||
board_cfg = &ch->cfg.board_cfg;
|
board_cfg = &ch->cfg.board_cfg;
|
||||||
if (board_cfg->display_on)
|
if (board_cfg->display_on)
|
||||||
board_cfg->display_on(board_cfg->board_data);
|
board_cfg->display_on(board_cfg->board_data);
|
||||||
|
@ -498,6 +501,8 @@ static void sh_mobile_lcdc_stop(struct sh_mobile_lcdc_priv *priv)
|
||||||
/* clean up deferred io and ask board code to disable panel */
|
/* clean up deferred io and ask board code to disable panel */
|
||||||
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
|
for (k = 0; k < ARRAY_SIZE(priv->ch); k++) {
|
||||||
ch = &priv->ch[k];
|
ch = &priv->ch[k];
|
||||||
|
if (!ch->enabled)
|
||||||
|
continue;
|
||||||
|
|
||||||
/* deferred io mode:
|
/* deferred io mode:
|
||||||
* flush frame, and wait for frame end interrupt
|
* flush frame, and wait for frame end interrupt
|
||||||
|
|
Loading…
Reference in New Issue