@@ -606,19 +606,22 @@ static int sd_change_phase(struct realtek_pci_sdmmc *host,
606
606
u8 sample_point , bool rx )
607
607
{
608
608
struct rtsx_pcr * pcr = host -> pcr ;
609
-
609
+ u16 SD_VP_CTL = 0 ;
610
610
dev_dbg (sdmmc_dev (host ), "%s(%s): sample_point = %d\n" ,
611
611
__func__ , rx ? "RX" : "TX" , sample_point );
612
612
613
613
rtsx_pci_write_register (pcr , CLK_CTL , CHANGE_CLK , CHANGE_CLK );
614
- if (rx )
614
+ if (rx ) {
615
+ SD_VP_CTL = SD_VPRX_CTL ;
615
616
rtsx_pci_write_register (pcr , SD_VPRX_CTL ,
616
617
PHASE_SELECT_MASK , sample_point );
617
- else
618
+ } else {
619
+ SD_VP_CTL = SD_VPTX_CTL ;
618
620
rtsx_pci_write_register (pcr , SD_VPTX_CTL ,
619
621
PHASE_SELECT_MASK , sample_point );
620
- rtsx_pci_write_register (pcr , SD_VPCLK0_CTL , PHASE_NOT_RESET , 0 );
621
- rtsx_pci_write_register (pcr , SD_VPCLK0_CTL , PHASE_NOT_RESET ,
622
+ }
623
+ rtsx_pci_write_register (pcr , SD_VP_CTL , PHASE_NOT_RESET , 0 );
624
+ rtsx_pci_write_register (pcr , SD_VP_CTL , PHASE_NOT_RESET ,
622
625
PHASE_NOT_RESET );
623
626
rtsx_pci_write_register (pcr , CLK_CTL , CHANGE_CLK , 0 );
624
627
rtsx_pci_write_register (pcr , SD_CFG1 , SD_ASYNC_FIFO_NOT_RST , 0 );
0 commit comments