@@ -527,11 +527,11 @@ void vlv_crtc_clock_get(struct intel_crtc_state *crtc_state)
527
527
tmp = vlv_dpio_read (dev_priv , phy , VLV_PLL_DW3 (ch ));
528
528
vlv_dpio_put (dev_priv );
529
529
530
- clock .m1 = ( tmp >> DPIO_M1DIV_SHIFT ) & 7 ;
531
- clock .m2 = tmp & DPIO_M2DIV_MASK ;
532
- clock .n = ( tmp >> DPIO_N_SHIFT ) & 0xf ;
533
- clock .p1 = ( tmp >> DPIO_P1_SHIFT ) & 7 ;
534
- clock .p2 = ( tmp >> DPIO_P2_SHIFT ) & 0x1f ;
530
+ clock .m1 = REG_FIELD_GET ( DPIO_M1_DIV_MASK , tmp ) ;
531
+ clock .m2 = REG_FIELD_GET ( DPIO_M2_DIV_MASK , tmp ) ;
532
+ clock .n = REG_FIELD_GET ( DPIO_N_DIV_MASK , tmp ) ;
533
+ clock .p1 = REG_FIELD_GET ( DPIO_P1_DIV_MASK , tmp ) ;
534
+ clock .p2 = REG_FIELD_GET ( DPIO_P2_DIV_MASK , tmp ) ;
535
535
536
536
crtc_state -> port_clock = vlv_calc_dpll_params (refclk , & clock );
537
537
}
@@ -559,13 +559,13 @@ void chv_crtc_clock_get(struct intel_crtc_state *crtc_state)
559
559
pll_dw3 = vlv_dpio_read (dev_priv , phy , CHV_PLL_DW3 (ch ));
560
560
vlv_dpio_put (dev_priv );
561
561
562
- clock .m1 = ( pll_dw1 & 0x7 ) == DPIO_CHV_M1_DIV_BY_2 ? 2 : 0 ;
563
- clock .m2 = ( pll_dw0 & 0xff ) << 22 ;
562
+ clock .m1 = REG_FIELD_GET ( DPIO_CHV_M1_DIV_MASK , pll_dw1 ) == DPIO_CHV_M1_DIV_BY_2 ? 2 : 0 ;
563
+ clock .m2 = REG_FIELD_GET ( DPIO_CHV_M2_DIV_MASK , pll_dw0 ) << 22 ;
564
564
if (pll_dw3 & DPIO_CHV_FRAC_DIV_EN )
565
- clock .m2 |= pll_dw2 & 0x3fffff ;
566
- clock .n = ( pll_dw1 >> DPIO_CHV_N_DIV_SHIFT ) & 0xf ;
567
- clock .p1 = ( cmn_dw13 >> DPIO_CHV_P1_DIV_SHIFT ) & 0x7 ;
568
- clock .p2 = ( cmn_dw13 >> DPIO_CHV_P2_DIV_SHIFT ) & 0x1f ;
565
+ clock .m2 |= REG_FIELD_GET ( DPIO_CHV_M2_FRAC_DIV_MASK , pll_dw2 ) ;
566
+ clock .n = REG_FIELD_GET ( DPIO_CHV_N_DIV_MASK , pll_dw1 ) ;
567
+ clock .p1 = REG_FIELD_GET ( DPIO_CHV_P1_DIV_MASK , cmn_dw13 ) ;
568
+ clock .p2 = REG_FIELD_GET ( DPIO_CHV_P2_DIV_MASK , cmn_dw13 ) ;
569
569
570
570
crtc_state -> port_clock = chv_calc_dpll_params (refclk , & clock );
571
571
}
@@ -1926,19 +1926,19 @@ static void vlv_prepare_pll(const struct intel_crtc_state *crtc_state)
1926
1926
vlv_dpio_write (dev_priv , phy , VLV_CMN_DW0 , 0x610 );
1927
1927
1928
1928
/* Set idtafcrecal before PLL is enabled */
1929
- tmp = (clock -> m1 << DPIO_M1DIV_SHIFT ) |
1930
- (clock -> m2 & DPIO_M2DIV_MASK ) |
1931
- (clock -> p1 << DPIO_P1_SHIFT ) |
1932
- (clock -> p2 << DPIO_P2_SHIFT ) |
1933
- (clock -> n << DPIO_N_SHIFT ) |
1934
- ( 1 << DPIO_K_SHIFT );
1929
+ tmp = DPIO_M1_DIV (clock -> m1 ) |
1930
+ DPIO_M2_DIV (clock -> m2 ) |
1931
+ DPIO_P1_DIV (clock -> p1 ) |
1932
+ DPIO_P2_DIV (clock -> p2 ) |
1933
+ DPIO_N_DIV (clock -> n ) |
1934
+ DPIO_K_DIV ( 1 );
1935
1935
1936
1936
/*
1937
1937
* Post divider depends on pixel clock rate, DAC vs digital (and LVDS,
1938
1938
* but we don't support that).
1939
1939
* Note: don't use the DAC post divider as it seems unstable.
1940
1940
*/
1941
- tmp |= ( DPIO_POST_DIV_HDMIDP << DPIO_POST_DIV_SHIFT );
1941
+ tmp |= DPIO_S1_DIV ( DPIO_S1_DIV_HDMIDP );
1942
1942
vlv_dpio_write (dev_priv , phy , VLV_PLL_DW3 (ch ), tmp );
1943
1943
1944
1944
tmp |= DPIO_ENABLE_CALIBRATION ;
@@ -2034,75 +2034,74 @@ static void chv_prepare_pll(const struct intel_crtc_state *crtc_state)
2034
2034
u32 m2_frac ;
2035
2035
2036
2036
m2_frac = clock -> m2 & 0x3fffff ;
2037
- loopfilter = 0 ;
2038
2037
2039
2038
vlv_dpio_get (dev_priv );
2040
2039
2041
2040
/* p1 and p2 divider */
2042
2041
vlv_dpio_write (dev_priv , phy , CHV_CMN_DW13 (ch ),
2043
- 5 << DPIO_CHV_S1_DIV_SHIFT |
2044
- clock -> p1 << DPIO_CHV_P1_DIV_SHIFT |
2045
- clock -> p2 << DPIO_CHV_P2_DIV_SHIFT |
2046
- 1 << DPIO_CHV_K_DIV_SHIFT );
2042
+ DPIO_CHV_S1_DIV ( 5 ) |
2043
+ DPIO_CHV_P1_DIV ( clock -> p1 ) |
2044
+ DPIO_CHV_P2_DIV ( clock -> p2 ) |
2045
+ DPIO_CHV_K_DIV ( 1 ) );
2047
2046
2048
2047
/* Feedback post-divider - m2 */
2049
2048
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW0 (ch ),
2050
- clock -> m2 >> 22 );
2049
+ DPIO_CHV_M2_DIV ( clock -> m2 >> 22 ) );
2051
2050
2052
2051
/* Feedback refclk divider - n and m1 */
2053
2052
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW1 (ch ),
2054
- DPIO_CHV_M1_DIV_BY_2 |
2055
- 1 << DPIO_CHV_N_DIV_SHIFT );
2053
+ DPIO_CHV_M1_DIV ( DPIO_CHV_M1_DIV_BY_2 ) |
2054
+ DPIO_CHV_N_DIV ( 1 ) );
2056
2055
2057
2056
/* M2 fraction division */
2058
2057
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW2 (ch ),
2059
- m2_frac );
2058
+ DPIO_CHV_M2_FRAC_DIV ( m2_frac ) );
2060
2059
2061
2060
/* M2 fraction division enable */
2062
2061
tmp = vlv_dpio_read (dev_priv , phy , CHV_PLL_DW3 (ch ));
2063
2062
tmp &= ~(DPIO_CHV_FEEDFWD_GAIN_MASK | DPIO_CHV_FRAC_DIV_EN );
2064
- tmp |= ( 2 << DPIO_CHV_FEEDFWD_GAIN_SHIFT );
2063
+ tmp |= DPIO_CHV_FEEDFWD_GAIN ( 2 );
2065
2064
if (m2_frac )
2066
2065
tmp |= DPIO_CHV_FRAC_DIV_EN ;
2067
2066
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW3 (ch ), tmp );
2068
2067
2069
2068
/* Program digital lock detect threshold */
2070
2069
tmp = vlv_dpio_read (dev_priv , phy , CHV_PLL_DW9 (ch ));
2071
2070
tmp &= ~(DPIO_CHV_INT_LOCK_THRESHOLD_MASK |
2072
- DPIO_CHV_INT_LOCK_THRESHOLD_SEL_COARSE );
2073
- tmp |= (0x5 << DPIO_CHV_INT_LOCK_THRESHOLD_SHIFT );
2071
+ DPIO_CHV_INT_LOCK_THRESHOLD_SEL_COARSE );
2072
+ tmp |= DPIO_CHV_INT_LOCK_THRESHOLD (0x5 );
2074
2073
if (!m2_frac )
2075
2074
tmp |= DPIO_CHV_INT_LOCK_THRESHOLD_SEL_COARSE ;
2076
2075
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW9 (ch ), tmp );
2077
2076
2078
2077
/* Loop filter */
2079
2078
if (clock -> vco == 5400000 ) {
2080
- loopfilter |= (0x3 << DPIO_CHV_PROP_COEFF_SHIFT );
2081
- loopfilter |= (0x8 << DPIO_CHV_INT_COEFF_SHIFT );
2082
- loopfilter |= (0x1 << DPIO_CHV_GAIN_CTRL_SHIFT );
2079
+ loopfilter = DPIO_CHV_PROP_COEFF (0x3 ) |
2080
+ DPIO_CHV_INT_COEFF (0x8 ) |
2081
+ DPIO_CHV_GAIN_CTRL (0x1 );
2083
2082
tribuf_calcntr = 0x9 ;
2084
2083
} else if (clock -> vco <= 6200000 ) {
2085
- loopfilter |= (0x5 << DPIO_CHV_PROP_COEFF_SHIFT );
2086
- loopfilter |= (0xB << DPIO_CHV_INT_COEFF_SHIFT );
2087
- loopfilter |= (0x3 << DPIO_CHV_GAIN_CTRL_SHIFT );
2084
+ loopfilter = DPIO_CHV_PROP_COEFF (0x5 ) |
2085
+ DPIO_CHV_INT_COEFF (0xB ) |
2086
+ DPIO_CHV_GAIN_CTRL (0x3 );
2088
2087
tribuf_calcntr = 0x9 ;
2089
2088
} else if (clock -> vco <= 6480000 ) {
2090
- loopfilter |= (0x4 << DPIO_CHV_PROP_COEFF_SHIFT );
2091
- loopfilter |= (0x9 << DPIO_CHV_INT_COEFF_SHIFT );
2092
- loopfilter |= (0x3 << DPIO_CHV_GAIN_CTRL_SHIFT );
2089
+ loopfilter = DPIO_CHV_PROP_COEFF (0x4 ) |
2090
+ DPIO_CHV_INT_COEFF (0x9 ) |
2091
+ DPIO_CHV_GAIN_CTRL (0x3 );
2093
2092
tribuf_calcntr = 0x8 ;
2094
2093
} else {
2095
2094
/* Not supported. Apply the same limits as in the max case */
2096
- loopfilter |= (0x4 << DPIO_CHV_PROP_COEFF_SHIFT );
2097
- loopfilter |= (0x9 << DPIO_CHV_INT_COEFF_SHIFT );
2098
- loopfilter |= (0x3 << DPIO_CHV_GAIN_CTRL_SHIFT );
2095
+ loopfilter = DPIO_CHV_PROP_COEFF (0x4 ) |
2096
+ DPIO_CHV_INT_COEFF (0x9 ) |
2097
+ DPIO_CHV_GAIN_CTRL (0x3 );
2099
2098
tribuf_calcntr = 0 ;
2100
2099
}
2101
2100
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW6 (ch ), loopfilter );
2102
2101
2103
2102
tmp = vlv_dpio_read (dev_priv , phy , CHV_PLL_DW8 (ch ));
2104
2103
tmp &= ~DPIO_CHV_TDC_TARGET_CNT_MASK ;
2105
- tmp |= (tribuf_calcntr << DPIO_CHV_TDC_TARGET_CNT_SHIFT );
2104
+ tmp |= DPIO_CHV_TDC_TARGET_CNT (tribuf_calcntr );
2106
2105
vlv_dpio_write (dev_priv , phy , CHV_PLL_DW8 (ch ), tmp );
2107
2106
2108
2107
/* AFC Recal */
0 commit comments