@@ -85,9 +85,7 @@ enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
85
85
86
86
void vlv_dsi_wait_for_fifo_empty (struct intel_dsi * intel_dsi , enum port port )
87
87
{
88
- struct drm_encoder * encoder = & intel_dsi -> base .base ;
89
- struct drm_device * dev = encoder -> dev ;
90
- struct drm_i915_private * dev_priv = to_i915 (dev );
88
+ struct drm_i915_private * dev_priv = to_i915 (intel_dsi -> base .base .dev );
91
89
u32 mask ;
92
90
93
91
mask = LP_CTRL_FIFO_EMPTY | HS_CTRL_FIFO_EMPTY |
@@ -132,8 +130,8 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
132
130
const struct mipi_dsi_msg * msg )
133
131
{
134
132
struct intel_dsi_host * intel_dsi_host = to_intel_dsi_host (host );
135
- struct drm_device * dev = intel_dsi_host -> intel_dsi -> base . base . dev ;
136
- struct drm_i915_private * dev_priv = to_i915 (dev );
133
+ struct intel_dsi * intel_dsi = intel_dsi_host -> intel_dsi ;
134
+ struct drm_i915_private * dev_priv = to_i915 (intel_dsi -> base . base . dev );
137
135
enum port port = intel_dsi_host -> port ;
138
136
struct mipi_dsi_packet packet ;
139
137
ssize_t ret ;
@@ -225,9 +223,7 @@ static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
225
223
static int dpi_send_cmd (struct intel_dsi * intel_dsi , u32 cmd , bool hs ,
226
224
enum port port )
227
225
{
228
- struct drm_encoder * encoder = & intel_dsi -> base .base ;
229
- struct drm_device * dev = encoder -> dev ;
230
- struct drm_i915_private * dev_priv = to_i915 (dev );
226
+ struct drm_i915_private * dev_priv = to_i915 (intel_dsi -> base .base .dev );
231
227
u32 mask ;
232
228
233
229
/* XXX: pipe, hs */
@@ -662,8 +658,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
662
658
663
659
static void intel_dsi_port_disable (struct intel_encoder * encoder )
664
660
{
665
- struct drm_device * dev = encoder -> base .dev ;
666
- struct drm_i915_private * dev_priv = to_i915 (dev );
661
+ struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
667
662
struct intel_dsi * intel_dsi = enc_to_intel_dsi (encoder );
668
663
enum port port ;
669
664
@@ -675,7 +670,8 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
675
670
intel_de_posting_read (dev_priv , port_ctrl );
676
671
}
677
672
}
678
- static void intel_dsi_prepare (struct intel_encoder * intel_encoder ,
673
+
674
+ static void intel_dsi_prepare (struct intel_encoder * encoder ,
679
675
const struct intel_crtc_state * pipe_config );
680
676
static void intel_dsi_unprepare (struct intel_encoder * encoder );
681
677
@@ -1009,8 +1005,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
1009
1005
static void bxt_dsi_get_pipe_config (struct intel_encoder * encoder ,
1010
1006
struct intel_crtc_state * pipe_config )
1011
1007
{
1012
- struct drm_device * dev = encoder -> base .dev ;
1013
- struct drm_i915_private * dev_priv = to_i915 (dev );
1008
+ struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
1014
1009
struct drm_display_mode * adjusted_mode =
1015
1010
& pipe_config -> hw .adjusted_mode ;
1016
1011
struct drm_display_mode * adjusted_mode_sw ;
@@ -1209,12 +1204,11 @@ static u16 txclkesc(u32 divider, unsigned int us)
1209
1204
}
1210
1205
}
1211
1206
1212
- static void set_dsi_timings (struct drm_encoder * encoder ,
1207
+ static void set_dsi_timings (struct intel_encoder * encoder ,
1213
1208
const struct drm_display_mode * adjusted_mode )
1214
1209
{
1215
- struct drm_device * dev = encoder -> dev ;
1216
- struct drm_i915_private * dev_priv = to_i915 (dev );
1217
- struct intel_dsi * intel_dsi = enc_to_intel_dsi (to_intel_encoder (encoder ));
1210
+ struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
1211
+ struct intel_dsi * intel_dsi = enc_to_intel_dsi (encoder );
1218
1212
enum port port ;
1219
1213
unsigned int bpp = mipi_dsi_pixel_format_to_bpp (intel_dsi -> pixel_format );
1220
1214
unsigned int lane_count = intel_dsi -> lane_count ;
@@ -1298,14 +1292,12 @@ static u32 pixel_format_to_reg(enum mipi_dsi_pixel_format fmt)
1298
1292
}
1299
1293
}
1300
1294
1301
- static void intel_dsi_prepare (struct intel_encoder * intel_encoder ,
1295
+ static void intel_dsi_prepare (struct intel_encoder * encoder ,
1302
1296
const struct intel_crtc_state * pipe_config )
1303
1297
{
1304
- struct drm_encoder * encoder = & intel_encoder -> base ;
1305
- struct drm_device * dev = encoder -> dev ;
1306
- struct drm_i915_private * dev_priv = to_i915 (dev );
1298
+ struct drm_i915_private * dev_priv = to_i915 (encoder -> base .dev );
1307
1299
struct intel_crtc * crtc = to_intel_crtc (pipe_config -> uapi .crtc );
1308
- struct intel_dsi * intel_dsi = enc_to_intel_dsi (to_intel_encoder ( encoder ) );
1300
+ struct intel_dsi * intel_dsi = enc_to_intel_dsi (encoder );
1309
1301
const struct drm_display_mode * adjusted_mode = & pipe_config -> hw .adjusted_mode ;
1310
1302
enum port port ;
1311
1303
unsigned int bpp = mipi_dsi_pixel_format_to_bpp (intel_dsi -> pixel_format );
@@ -1591,8 +1583,7 @@ static void vlv_dsi_add_properties(struct intel_connector *connector)
1591
1583
1592
1584
static void vlv_dphy_param_init (struct intel_dsi * intel_dsi )
1593
1585
{
1594
- struct drm_device * dev = intel_dsi -> base .base .dev ;
1595
- struct drm_i915_private * dev_priv = to_i915 (dev );
1586
+ struct drm_i915_private * dev_priv = to_i915 (intel_dsi -> base .base .dev );
1596
1587
struct intel_connector * connector = intel_dsi -> attached_connector ;
1597
1588
struct mipi_config * mipi_config = connector -> panel .vbt .dsi .config ;
1598
1589
u32 tlpx_ns , extra_byte_count , tlpx_ui ;
@@ -1878,10 +1869,8 @@ static const struct dmi_system_id vlv_dsi_dmi_quirk_table[] = {
1878
1869
void vlv_dsi_init (struct drm_i915_private * dev_priv )
1879
1870
{
1880
1871
struct intel_dsi * intel_dsi ;
1881
- struct intel_encoder * intel_encoder ;
1882
- struct drm_encoder * encoder ;
1883
- struct intel_connector * intel_connector ;
1884
- struct drm_connector * connector ;
1872
+ struct intel_encoder * encoder ;
1873
+ struct intel_connector * connector ;
1885
1874
struct drm_display_mode * current_mode ;
1886
1875
const struct dmi_system_id * dmi_id ;
1887
1876
enum port port ;
@@ -1902,64 +1891,61 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
1902
1891
if (!intel_dsi )
1903
1892
return ;
1904
1893
1905
- intel_connector = intel_connector_alloc ();
1906
- if (!intel_connector ) {
1894
+ connector = intel_connector_alloc ();
1895
+ if (!connector ) {
1907
1896
kfree (intel_dsi );
1908
1897
return ;
1909
1898
}
1910
1899
1911
- intel_encoder = & intel_dsi -> base ;
1912
- encoder = & intel_encoder -> base ;
1913
- intel_dsi -> attached_connector = intel_connector ;
1914
-
1915
- connector = & intel_connector -> base ;
1900
+ encoder = & intel_dsi -> base ;
1901
+ intel_dsi -> attached_connector = connector ;
1916
1902
1917
- drm_encoder_init (& dev_priv -> drm , encoder , & intel_dsi_funcs , DRM_MODE_ENCODER_DSI ,
1918
- "DSI %c" , port_name (port ));
1903
+ drm_encoder_init (& dev_priv -> drm , & encoder -> base , & intel_dsi_funcs ,
1904
+ DRM_MODE_ENCODER_DSI , "DSI %c" , port_name (port ));
1919
1905
1920
- intel_encoder -> compute_config = intel_dsi_compute_config ;
1921
- intel_encoder -> pre_enable = intel_dsi_pre_enable ;
1906
+ encoder -> compute_config = intel_dsi_compute_config ;
1907
+ encoder -> pre_enable = intel_dsi_pre_enable ;
1922
1908
if (IS_GEMINILAKE (dev_priv ) || IS_BROXTON (dev_priv ))
1923
- intel_encoder -> enable = bxt_dsi_enable ;
1924
- intel_encoder -> disable = intel_dsi_disable ;
1925
- intel_encoder -> post_disable = intel_dsi_post_disable ;
1926
- intel_encoder -> get_hw_state = intel_dsi_get_hw_state ;
1927
- intel_encoder -> get_config = intel_dsi_get_config ;
1928
- intel_encoder -> update_pipe = intel_backlight_update ;
1929
- intel_encoder -> shutdown = intel_dsi_shutdown ;
1909
+ encoder -> enable = bxt_dsi_enable ;
1910
+ encoder -> disable = intel_dsi_disable ;
1911
+ encoder -> post_disable = intel_dsi_post_disable ;
1912
+ encoder -> get_hw_state = intel_dsi_get_hw_state ;
1913
+ encoder -> get_config = intel_dsi_get_config ;
1914
+ encoder -> update_pipe = intel_backlight_update ;
1915
+ encoder -> shutdown = intel_dsi_shutdown ;
1930
1916
1931
- intel_connector -> get_hw_state = intel_connector_get_hw_state ;
1917
+ connector -> get_hw_state = intel_connector_get_hw_state ;
1932
1918
1933
- intel_encoder -> port = port ;
1934
- intel_encoder -> type = INTEL_OUTPUT_DSI ;
1935
- intel_encoder -> power_domain = POWER_DOMAIN_PORT_DSI ;
1936
- intel_encoder -> cloneable = 0 ;
1919
+ encoder -> port = port ;
1920
+ encoder -> type = INTEL_OUTPUT_DSI ;
1921
+ encoder -> power_domain = POWER_DOMAIN_PORT_DSI ;
1922
+ encoder -> cloneable = 0 ;
1937
1923
1938
1924
/*
1939
1925
* On BYT/CHV, pipe A maps to MIPI DSI port A, pipe B maps to MIPI DSI
1940
1926
* port C. BXT isn't limited like this.
1941
1927
*/
1942
1928
if (IS_GEMINILAKE (dev_priv ) || IS_BROXTON (dev_priv ))
1943
- intel_encoder -> pipe_mask = ~0 ;
1929
+ encoder -> pipe_mask = ~0 ;
1944
1930
else if (port == PORT_A )
1945
- intel_encoder -> pipe_mask = BIT (PIPE_A );
1931
+ encoder -> pipe_mask = BIT (PIPE_A );
1946
1932
else
1947
- intel_encoder -> pipe_mask = BIT (PIPE_B );
1933
+ encoder -> pipe_mask = BIT (PIPE_B );
1948
1934
1949
1935
intel_dsi -> panel_power_off_time = ktime_get_boottime ();
1950
1936
1951
- intel_bios_init_panel_late (dev_priv , & intel_connector -> panel , NULL , NULL );
1937
+ intel_bios_init_panel_late (dev_priv , & connector -> panel , NULL , NULL );
1952
1938
1953
- if (intel_connector -> panel .vbt .dsi .config -> dual_link )
1939
+ if (connector -> panel .vbt .dsi .config -> dual_link )
1954
1940
intel_dsi -> ports = BIT (PORT_A ) | BIT (PORT_C );
1955
1941
else
1956
1942
intel_dsi -> ports = BIT (port );
1957
1943
1958
- if (drm_WARN_ON (& dev_priv -> drm , intel_connector -> panel .vbt .dsi .bl_ports & ~intel_dsi -> ports ))
1959
- intel_connector -> panel .vbt .dsi .bl_ports &= intel_dsi -> ports ;
1944
+ if (drm_WARN_ON (& dev_priv -> drm , connector -> panel .vbt .dsi .bl_ports & ~intel_dsi -> ports ))
1945
+ connector -> panel .vbt .dsi .bl_ports &= intel_dsi -> ports ;
1960
1946
1961
- if (drm_WARN_ON (& dev_priv -> drm , intel_connector -> panel .vbt .dsi .cabc_ports & ~intel_dsi -> ports ))
1962
- intel_connector -> panel .vbt .dsi .cabc_ports &= intel_dsi -> ports ;
1947
+ if (drm_WARN_ON (& dev_priv -> drm , connector -> panel .vbt .dsi .cabc_ports & ~intel_dsi -> ports ))
1948
+ connector -> panel .vbt .dsi .cabc_ports &= intel_dsi -> ports ;
1963
1949
1964
1950
/* Create a DSI host (and a device) for each port. */
1965
1951
for_each_dsi_port (port , intel_dsi -> ports ) {
@@ -1979,7 +1965,7 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
1979
1965
}
1980
1966
1981
1967
/* Use clock read-back from current hw-state for fastboot */
1982
- current_mode = intel_encoder_current_mode (intel_encoder );
1968
+ current_mode = intel_encoder_current_mode (encoder );
1983
1969
if (current_mode ) {
1984
1970
drm_dbg_kms (& dev_priv -> drm , "Calculated pclk %d GOP %d\n" ,
1985
1971
intel_dsi -> pclk , current_mode -> clock );
@@ -1995,22 +1981,22 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
1995
1981
vlv_dphy_param_init (intel_dsi );
1996
1982
1997
1983
intel_dsi_vbt_gpio_init (intel_dsi ,
1998
- intel_dsi_get_hw_state (intel_encoder , & pipe ));
1984
+ intel_dsi_get_hw_state (encoder , & pipe ));
1999
1985
2000
- drm_connector_init (& dev_priv -> drm , connector , & intel_dsi_connector_funcs ,
1986
+ drm_connector_init (& dev_priv -> drm , & connector -> base , & intel_dsi_connector_funcs ,
2001
1987
DRM_MODE_CONNECTOR_DSI );
2002
1988
2003
- drm_connector_helper_add (connector , & intel_dsi_connector_helper_funcs );
1989
+ drm_connector_helper_add (& connector -> base , & intel_dsi_connector_helper_funcs );
2004
1990
2005
- connector -> display_info .subpixel_order = SubPixelHorizontalRGB ; /*XXX*/
1991
+ connector -> base . display_info .subpixel_order = SubPixelHorizontalRGB ; /*XXX*/
2006
1992
2007
- intel_connector_attach_encoder (intel_connector , intel_encoder );
1993
+ intel_connector_attach_encoder (connector , encoder );
2008
1994
2009
1995
mutex_lock (& dev_priv -> drm .mode_config .mutex );
2010
- intel_panel_add_vbt_lfp_fixed_mode (intel_connector );
1996
+ intel_panel_add_vbt_lfp_fixed_mode (connector );
2011
1997
mutex_unlock (& dev_priv -> drm .mode_config .mutex );
2012
1998
2013
- if (!intel_panel_preferred_fixed_mode (intel_connector )) {
1999
+ if (!intel_panel_preferred_fixed_mode (connector )) {
2014
2000
drm_dbg_kms (& dev_priv -> drm , "no fixed mode\n" );
2015
2001
goto err_cleanup_connector ;
2016
2002
}
@@ -2023,18 +2009,18 @@ void vlv_dsi_init(struct drm_i915_private *dev_priv)
2023
2009
quirk_func (intel_dsi );
2024
2010
}
2025
2011
2026
- intel_panel_init (intel_connector , NULL );
2012
+ intel_panel_init (connector , NULL );
2027
2013
2028
- intel_backlight_setup (intel_connector , INVALID_PIPE );
2014
+ intel_backlight_setup (connector , INVALID_PIPE );
2029
2015
2030
- vlv_dsi_add_properties (intel_connector );
2016
+ vlv_dsi_add_properties (connector );
2031
2017
2032
2018
return ;
2033
2019
2034
2020
err_cleanup_connector :
2035
- drm_connector_cleanup (& intel_connector -> base );
2021
+ drm_connector_cleanup (& connector -> base );
2036
2022
err :
2037
- drm_encoder_cleanup (& intel_encoder -> base );
2023
+ drm_encoder_cleanup (& encoder -> base );
2038
2024
kfree (intel_dsi );
2039
- kfree (intel_connector );
2025
+ kfree (connector );
2040
2026
}
0 commit comments