On Tue, 2022-06-07 at 16:01 +0800, CK Hu wrote: > Hi, Rex: > > On Mon, 2022-05-23 at 12:47 +0200, Guillaume Ranquet wrote: > > From: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> > > > > This patch adds a DisplayPort driver for the Mediatek mt8195 SoC. > > > > It supports the mt8195, the embedded DisplayPort units. It offers > > DisplayPort 1.4 with up to 4 lanes. > > > > The driver creates a child device for the phy. The child device > > will > > never exist without the parent being active. As they are sharing a > > register range, the parent passes a regmap pointer to the child so > > that > > both can work with the same register range. The phy driver sets > > device > > data that is read by the parent to get the phy device that can be > > used > > to control the phy properties. > > > > This driver is based on an initial version by > > Jason-JH.Lin <jason-jh.lin@xxxxxxxxxxxx>. > > > > Signed-off-by: Markus Schneider-Pargmann <msp@xxxxxxxxxxxx> > > Signed-off-by: Guillaume Ranquet <granquet@xxxxxxxxxxxx> > > --- > > [snip] > > > + > > +static void mtk_dp_state_handler(struct mtk_dp *mtk_dp) > > +{ > > + switch (mtk_dp->state) { > > Does mtk_dp->state has any relation with mtk_dp->train_state. If yes, > mix mtk_dp->state and mtk_dp->train_state into one state. If no, move > calling mtk_dp_state_handler() out of mtk_dp_train_handler(). > > Regards, > CK > Hello CK, OK, I will refine this flow. About the state machine of traning flow, we can review in v11. BRs, Bo-Chen > > + case MTK_DP_STATE_INITIAL: > > + mtk_dp_video_mute(mtk_dp, true); > > + mtk_dp->state = MTK_DP_STATE_IDLE; > > + break; > > + > > + case MTK_DP_STATE_IDLE: > > + if (mtk_dp->train_state == MTK_DP_TRAIN_STATE_NORMAL) > > + mtk_dp->state = MTK_DP_STATE_PREPARE; > > + break; > > + > > + case MTK_DP_STATE_PREPARE: > > + mtk_dp_video_config(mtk_dp); > > + mtk_dp_video_enable(mtk_dp, true); > > + > > + mtk_dp->state = MTK_DP_STATE_NORMAL; > > + break; > > + > > + case MTK_DP_STATE_NORMAL: > > + if (mtk_dp->train_state != MTK_DP_TRAIN_STATE_NORMAL) { > > + mtk_dp_video_mute(mtk_dp, true); > > + mtk_dp->state = MTK_DP_STATE_IDLE; > > + } > > + break; > > + > > + default: > > + break; > > + } > > +} > >