mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
mfd: rkx110_x120: reset dsi tx host when generator pattern
Change-Id: I92b4733152532c62e79d39eabdf2ec99d006a257 Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
#include "rkx110_x120.h"
|
||||
#include "rkx110_x120_display.h"
|
||||
#include "rkx120_dsi_tx.h"
|
||||
#include "hal/cru_api.h"
|
||||
|
||||
#define PATTERN_GEN_PATTERN_CTRL 0x0000
|
||||
@@ -114,7 +115,7 @@ static void pattern_start_stream(struct pattern_gen *pattern_gen, bool is_patter
|
||||
return;
|
||||
|
||||
if (pattern_gen->chip != &serdes->chip[DEVICE_LOCAL])
|
||||
return;
|
||||
goto out;
|
||||
|
||||
if (!strcmp(pattern_gen->name, "lvds0")) {
|
||||
hwclk_reset_deassert(serdes->chip[DEVICE_LOCAL].hwclk,
|
||||
@@ -170,6 +171,12 @@ static void pattern_start_stream(struct pattern_gen *pattern_gen, bool is_patter
|
||||
}
|
||||
|
||||
rk_serdes_display_video_start(serdes, pattern_gen->route, true);
|
||||
|
||||
out:
|
||||
if (pattern_gen->route->remote0_port0 == RK_SERDES_DSI_TX0)
|
||||
rkx120_dsi_tx_reset(serdes, DEVICE_REMOTE0);
|
||||
if (pattern_gen->route->remote1_port0 == RK_SERDES_DSI_TX0)
|
||||
rkx120_dsi_tx_reset(serdes, DEVICE_REMOTE1);
|
||||
}
|
||||
|
||||
static void pattern_switch_clk_to_pattern(struct pattern_gen *pattern_gen, struct videomode *vm)
|
||||
|
||||
@@ -1181,3 +1181,9 @@ void rkx120_dsi_tx_disable(struct rk_serdes *des, struct rk_serdes_route *route,
|
||||
dsi_write(des, remote_id, DSI_MODE_CFG, CMD_VIDEO_MODE(COMMAND_MODE));
|
||||
dsi_write(des, remote_id, DSI_PWR_UP, POWER_UP);
|
||||
}
|
||||
|
||||
void rkx120_dsi_tx_reset(struct rk_serdes *des, u8 remote_id)
|
||||
{
|
||||
dsi_write(des, remote_id, DSI_PWR_UP, RESET);
|
||||
dsi_write(des, remote_id, DSI_PWR_UP, POWER_UP);
|
||||
}
|
||||
|
||||
@@ -20,4 +20,5 @@ void rkx120_dsi_tx_post_disable(struct rk_serdes *serdes,
|
||||
struct rk_serdes_route *route, u8 remote_id);
|
||||
void rkx120_dsi_tx_disable(struct rk_serdes *serdes,
|
||||
struct rk_serdes_route *route, u8 remote_id);
|
||||
void rkx120_dsi_tx_reset(struct rk_serdes *des, u8 remote_id);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user