• Chon Ming Lee's avatar
    drm/i915: Program GMBUS Frequency based on the CDCLK for VLV. · 24eb2d59
    Chon Ming Lee authored
    CDCLK is used to generate the gmbus clock.  This is normally done by
    BIOS. Program the value if the BIOS-less system doesn't do it.
    
    v2: Move this to intel_i2c_reset to allow reprogram the gmbus frequency
    during resume. (Daniel)
    
    v3: Change GMBUS_FREQ to GMBUSFREQ_VLV, and use VLV_DISPLAY_BASE.
    (Ville).
    	Remove cdclk_ratio[] table, and calculate the cdclk ratio instead.
    (Ville).
     	Change the shift then mask for reg read, to mask first, then shift.
    (Ville).
    	Remove the gmbus frequency calculation = cdclk/1.01.  Based on BIOS
    programming, gmbus frequency = cdclk frequency. (Ville)
    	Add get_disp_clk_div, which can use to get cdclk/czclk divide.
    
    v4: Fix the mmio_offset base for CZCLK_CDCLK_FREQ_RATIO, gmbus_freq
    calculation, and duplicate check for gmbus_freq. (Ville)
    
    In VLV, the spec is wrong about 4Mhz reference frequency for GMBUS. It
    should be 1Mhz.
    Signed-off-by: default avatarChon Ming Lee <chon.ming.lee@intel.com>
    [danvet: Add the comment Ville suggested. Also appease checkpatch a
    bit.]
    Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    24eb2d59
intel_i2c.c 17.4 KB