Skip to content

Commit a954e0a

Browse files
committed
drm/i915/dp: convert intel_dp_tunnel.[ch] to struct intel_display
Going forward, struct intel_display shall replace struct drm_i915_private as the main display device data pointer type. Convert intel_dp_tunnel.[ch] to struct intel_display. Reviewed-by: Ville Syrjälä <[email protected]> Signed-off-by: Jani Nikula <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/2c83fe739ab8de05361d6eaae0249e58878a3c06.1725012870.git.jani.nikula@intel.com
1 parent b34b43f commit a954e0a

File tree

3 files changed

+49
-45
lines changed

3 files changed

+49
-45
lines changed

drivers/gpu/drm/i915/display/intel_display_driver.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
459459
intel_vga_disable(i915);
460460
intel_setup_outputs(i915);
461461

462-
ret = intel_dp_tunnel_mgr_init(i915);
462+
ret = intel_dp_tunnel_mgr_init(display);
463463
if (ret)
464464
goto err_hdcp;
465465

@@ -580,6 +580,8 @@ void intel_display_driver_remove(struct drm_i915_private *i915)
580580
/* part #2: call after irq uninstall */
581581
void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
582582
{
583+
struct intel_display *display = &i915->display;
584+
583585
if (!HAS_DISPLAY(i915))
584586
return;
585587

@@ -600,7 +602,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
600602

601603
intel_mode_config_cleanup(i915);
602604

603-
intel_dp_tunnel_mgr_cleanup(i915);
605+
intel_dp_tunnel_mgr_cleanup(display);
604606

605607
intel_overlay_cleanup(i915);
606608

drivers/gpu/drm/i915/display/intel_dp_tunnel.c

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ static int get_current_link_bw(struct intel_dp *intel_dp,
6969

7070
static int update_tunnel_state(struct intel_dp *intel_dp)
7171
{
72-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
72+
struct intel_display *display = to_intel_display(intel_dp);
7373
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
7474
bool old_bw_below_dprx;
7575
bool new_bw_below_dprx;
@@ -81,7 +81,7 @@ static int update_tunnel_state(struct intel_dp *intel_dp)
8181

8282
ret = drm_dp_tunnel_update_state(intel_dp->tunnel);
8383
if (ret < 0) {
84-
drm_dbg_kms(&i915->drm,
84+
drm_dbg_kms(display->drm,
8585
"[DPTUN %s][ENCODER:%d:%s] State update failed (err %pe)\n",
8686
drm_dp_tunnel_name(intel_dp->tunnel),
8787
encoder->base.base.id, encoder->base.name,
@@ -103,7 +103,7 @@ static int update_tunnel_state(struct intel_dp *intel_dp)
103103
!new_bw_below_dprx)
104104
return 0;
105105

106-
drm_dbg_kms(&i915->drm,
106+
drm_dbg_kms(display->drm,
107107
"[DPTUN %s][ENCODER:%d:%s] Notify users about BW change: %d -> %d\n",
108108
drm_dp_tunnel_name(intel_dp->tunnel),
109109
encoder->base.base.id, encoder->base.name,
@@ -121,20 +121,20 @@ static int update_tunnel_state(struct intel_dp *intel_dp)
121121
*/
122122
static int allocate_initial_tunnel_bw_for_pipes(struct intel_dp *intel_dp, u8 pipe_mask)
123123
{
124-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
124+
struct intel_display *display = to_intel_display(intel_dp);
125125
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
126126
struct intel_crtc *crtc;
127127
int tunnel_bw = 0;
128128
int err;
129129

130-
for_each_intel_crtc_in_pipe_mask(&i915->drm, crtc, pipe_mask) {
130+
for_each_intel_crtc_in_pipe_mask(display->drm, crtc, pipe_mask) {
131131
const struct intel_crtc_state *crtc_state =
132132
to_intel_crtc_state(crtc->base.state);
133133
int stream_bw = intel_dp_config_required_rate(crtc_state);
134134

135135
tunnel_bw += stream_bw;
136136

137-
drm_dbg_kms(&i915->drm,
137+
drm_dbg_kms(display->drm,
138138
"[DPTUN %s][ENCODER:%d:%s][CRTC:%d:%s] Initial BW for stream %d: %d/%d Mb/s\n",
139139
drm_dp_tunnel_name(intel_dp->tunnel),
140140
encoder->base.base.id, encoder->base.name,
@@ -145,7 +145,7 @@ static int allocate_initial_tunnel_bw_for_pipes(struct intel_dp *intel_dp, u8 pi
145145

146146
err = drm_dp_tunnel_alloc_bw(intel_dp->tunnel, tunnel_bw);
147147
if (err) {
148-
drm_dbg_kms(&i915->drm,
148+
drm_dbg_kms(display->drm,
149149
"[DPTUN %s][ENCODER:%d:%s] Initial BW allocation failed (err %pe)\n",
150150
drm_dp_tunnel_name(intel_dp->tunnel),
151151
encoder->base.base.id, encoder->base.name,
@@ -172,12 +172,12 @@ static int allocate_initial_tunnel_bw(struct intel_dp *intel_dp,
172172

173173
static int detect_new_tunnel(struct intel_dp *intel_dp, struct drm_modeset_acquire_ctx *ctx)
174174
{
175-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
175+
struct intel_display *display = to_intel_display(intel_dp);
176176
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
177177
struct drm_dp_tunnel *tunnel;
178178
int ret;
179179

180-
tunnel = drm_dp_tunnel_detect(i915->display.dp_tunnel_mgr,
180+
tunnel = drm_dp_tunnel_detect(display->dp_tunnel_mgr,
181181
&intel_dp->aux);
182182
if (IS_ERR(tunnel))
183183
return PTR_ERR(tunnel);
@@ -189,7 +189,7 @@ static int detect_new_tunnel(struct intel_dp *intel_dp, struct drm_modeset_acqui
189189
if (ret == -EOPNOTSUPP)
190190
return 0;
191191

192-
drm_dbg_kms(&i915->drm,
192+
drm_dbg_kms(display->drm,
193193
"[DPTUN %s][ENCODER:%d:%s] Failed to enable BW allocation mode (ret %pe)\n",
194194
drm_dp_tunnel_name(intel_dp->tunnel),
195195
encoder->base.base.id, encoder->base.name,
@@ -266,14 +266,15 @@ bool intel_dp_tunnel_bw_alloc_is_enabled(struct intel_dp *intel_dp)
266266
*/
267267
void intel_dp_tunnel_suspend(struct intel_dp *intel_dp)
268268
{
269-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
269+
struct intel_display *display = to_intel_display(intel_dp);
270270
struct intel_connector *connector = intel_dp->attached_connector;
271271
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
272272

273273
if (!intel_dp_tunnel_bw_alloc_is_enabled(intel_dp))
274274
return;
275275

276-
drm_dbg_kms(&i915->drm, "[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s] Suspend\n",
276+
drm_dbg_kms(display->drm,
277+
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s] Suspend\n",
277278
drm_dp_tunnel_name(intel_dp->tunnel),
278279
connector->base.base.id, connector->base.name,
279280
encoder->base.base.id, encoder->base.name);
@@ -295,7 +296,7 @@ void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
295296
const struct intel_crtc_state *crtc_state,
296297
bool dpcd_updated)
297298
{
298-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
299+
struct intel_display *display = to_intel_display(intel_dp);
299300
struct intel_connector *connector = intel_dp->attached_connector;
300301
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
301302
u8 dpcd[DP_RECEIVER_CAP_SIZE];
@@ -307,7 +308,8 @@ void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
307308

308309
intel_dp->tunnel_suspended = false;
309310

310-
drm_dbg_kms(&i915->drm, "[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s] Resume\n",
311+
drm_dbg_kms(display->drm,
312+
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s] Resume\n",
311313
drm_dp_tunnel_name(intel_dp->tunnel),
312314
connector->base.base.id, connector->base.name,
313315
encoder->base.base.id, encoder->base.name);
@@ -347,7 +349,7 @@ void intel_dp_tunnel_resume(struct intel_dp *intel_dp,
347349
return;
348350

349351
out_err:
350-
drm_dbg_kms(&i915->drm,
352+
drm_dbg_kms(display->drm,
351353
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s] Tunnel can't be resumed, will drop and reject it (err %pe)\n",
352354
drm_dp_tunnel_name(intel_dp->tunnel),
353355
connector->base.base.id, connector->base.name,
@@ -369,12 +371,12 @@ add_inherited_tunnel(struct intel_atomic_state *state,
369371
struct drm_dp_tunnel *tunnel,
370372
struct intel_crtc *crtc)
371373
{
372-
struct drm_i915_private *i915 = to_i915(state->base.dev);
374+
struct intel_display *display = to_intel_display(state);
373375
struct drm_dp_tunnel *old_tunnel;
374376

375377
old_tunnel = get_inherited_tunnel(state, crtc);
376378
if (old_tunnel) {
377-
drm_WARN_ON(&i915->drm, old_tunnel != tunnel);
379+
drm_WARN_ON(display->drm, old_tunnel != tunnel);
378380
return 0;
379381
}
380382

@@ -394,7 +396,7 @@ static int check_inherited_tunnel_state(struct intel_atomic_state *state,
394396
struct intel_dp *intel_dp,
395397
const struct intel_digital_connector_state *old_conn_state)
396398
{
397-
struct drm_i915_private *i915 = dp_to_i915(intel_dp);
399+
struct intel_display *display = to_intel_display(state);
398400
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
399401
struct intel_connector *connector =
400402
to_intel_connector(old_conn_state->base.connector);
@@ -422,7 +424,7 @@ static int check_inherited_tunnel_state(struct intel_atomic_state *state,
422424
old_crtc_state->dp_tunnel_ref.tunnel == intel_dp->tunnel)
423425
return 0;
424426

425-
drm_dbg_kms(&i915->drm,
427+
drm_dbg_kms(display->drm,
426428
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s][CRTC:%d:%s] Adding state for inherited tunnel %p\n",
427429
drm_dp_tunnel_name(intel_dp->tunnel),
428430
connector->base.base.id, connector->base.name,
@@ -441,12 +443,13 @@ static int check_inherited_tunnel_state(struct intel_atomic_state *state,
441443
*/
442444
void intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *state)
443445
{
446+
struct intel_display *display = to_intel_display(state);
444447
enum pipe pipe;
445448

446449
if (!state->inherited_dp_tunnels)
447450
return;
448451

449-
for_each_pipe(to_i915(state->base.dev), pipe)
452+
for_each_pipe(display, pipe)
450453
if (state->inherited_dp_tunnels->ref[pipe].tunnel)
451454
drm_dp_tunnel_ref_put(&state->inherited_dp_tunnels->ref[pipe]);
452455

@@ -457,7 +460,7 @@ void intel_dp_tunnel_atomic_cleanup_inherited_state(struct intel_atomic_state *s
457460
static int intel_dp_tunnel_atomic_add_group_state(struct intel_atomic_state *state,
458461
struct drm_dp_tunnel *tunnel)
459462
{
460-
struct drm_i915_private *i915 = to_i915(state->base.dev);
463+
struct intel_display *display = to_intel_display(state);
461464
u32 pipe_mask;
462465
int err;
463466

@@ -466,7 +469,7 @@ static int intel_dp_tunnel_atomic_add_group_state(struct intel_atomic_state *sta
466469
if (err)
467470
return err;
468471

469-
drm_WARN_ON(&i915->drm, pipe_mask & ~((1 << I915_MAX_PIPES) - 1));
472+
drm_WARN_ON(display->drm, pipe_mask & ~((1 << I915_MAX_PIPES) - 1));
470473

471474
return intel_modeset_pipes_in_mask_early(state, "DPTUN", pipe_mask);
472475
}
@@ -504,15 +507,15 @@ static int check_group_state(struct intel_atomic_state *state,
504507
struct intel_connector *connector,
505508
struct intel_crtc *crtc)
506509
{
507-
struct drm_i915_private *i915 = to_i915(state->base.dev);
510+
struct intel_display *display = to_intel_display(state);
508511
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
509512
const struct intel_crtc_state *crtc_state =
510513
intel_atomic_get_new_crtc_state(state, crtc);
511514

512515
if (!crtc_state->dp_tunnel_ref.tunnel)
513516
return 0;
514517

515-
drm_dbg_kms(&i915->drm,
518+
drm_dbg_kms(display->drm,
516519
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s][CRTC:%d:%s] Adding group state for tunnel %p\n",
517520
drm_dp_tunnel_name(intel_dp->tunnel),
518521
connector->base.base.id, connector->base.name,
@@ -583,7 +586,7 @@ int intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state *state,
583586
const struct intel_connector *connector,
584587
struct intel_crtc_state *crtc_state)
585588
{
586-
struct drm_i915_private *i915 = to_i915(state->base.dev);
589+
struct intel_display *display = to_intel_display(state);
587590
struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base;
588591
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
589592
int required_rate = intel_dp_config_required_rate(crtc_state);
@@ -592,7 +595,7 @@ int intel_dp_tunnel_atomic_compute_stream_bw(struct intel_atomic_state *state,
592595
if (!intel_dp_tunnel_bw_alloc_is_enabled(intel_dp))
593596
return 0;
594597

595-
drm_dbg_kms(&i915->drm,
598+
drm_dbg_kms(display->drm,
596599
"[DPTUN %s][CONNECTOR:%d:%s][ENCODER:%d:%s][CRTC:%d:%s] Stream %d required BW %d Mb/s\n",
597600
drm_dp_tunnel_name(intel_dp->tunnel),
598601
connector->base.base.id, connector->base.name,
@@ -708,15 +711,15 @@ static void queue_retry_work(struct intel_atomic_state *state,
708711
struct drm_dp_tunnel *tunnel,
709712
const struct intel_crtc_state *crtc_state)
710713
{
711-
struct drm_i915_private *i915 = to_i915(state->base.dev);
714+
struct intel_display *display = to_intel_display(state);
712715
struct intel_encoder *encoder;
713716

714717
encoder = intel_get_crtc_new_encoder(state, crtc_state);
715718

716719
if (!intel_digital_port_connected(encoder))
717720
return;
718721

719-
drm_dbg_kms(&i915->drm,
722+
drm_dbg_kms(display->drm,
720723
"[DPTUN %s][ENCODER:%d:%s] BW allocation failed on a connected sink\n",
721724
drm_dp_tunnel_name(tunnel),
722725
encoder->base.base.id,
@@ -765,22 +768,22 @@ void intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state)
765768

766769
/**
767770
* intel_dp_tunnel_mgr_init - Initialize the DP tunnel manager
768-
* @i915: i915 device object
771+
* @display: display device
769772
*
770773
* Initialize the DP tunnel manager. The tunnel manager will support the
771774
* detection/management of DP tunnels on all DP connectors, so the function
772775
* must be called after all these connectors have been registered already.
773776
*
774777
* Return 0 in case of success, a negative error code otherwise.
775778
*/
776-
int intel_dp_tunnel_mgr_init(struct drm_i915_private *i915)
779+
int intel_dp_tunnel_mgr_init(struct intel_display *display)
777780
{
778781
struct drm_dp_tunnel_mgr *tunnel_mgr;
779782
struct drm_connector_list_iter connector_list_iter;
780783
struct intel_connector *connector;
781784
int dp_connectors = 0;
782785

783-
drm_connector_list_iter_begin(&i915->drm, &connector_list_iter);
786+
drm_connector_list_iter_begin(display->drm, &connector_list_iter);
784787
for_each_intel_connector_iter(connector, &connector_list_iter) {
785788
if (connector->base.connector_type != DRM_MODE_CONNECTOR_DisplayPort)
786789
continue;
@@ -789,23 +792,23 @@ int intel_dp_tunnel_mgr_init(struct drm_i915_private *i915)
789792
}
790793
drm_connector_list_iter_end(&connector_list_iter);
791794

792-
tunnel_mgr = drm_dp_tunnel_mgr_create(&i915->drm, dp_connectors);
795+
tunnel_mgr = drm_dp_tunnel_mgr_create(display->drm, dp_connectors);
793796
if (IS_ERR(tunnel_mgr))
794797
return PTR_ERR(tunnel_mgr);
795798

796-
i915->display.dp_tunnel_mgr = tunnel_mgr;
799+
display->dp_tunnel_mgr = tunnel_mgr;
797800

798801
return 0;
799802
}
800803

801804
/**
802805
* intel_dp_tunnel_mgr_cleanup - Clean up the DP tunnel manager state
803-
* @i915: i915 device object
806+
* @display: display device
804807
*
805808
* Clean up the DP tunnel manager state.
806809
*/
807-
void intel_dp_tunnel_mgr_cleanup(struct drm_i915_private *i915)
810+
void intel_dp_tunnel_mgr_cleanup(struct intel_display *display)
808811
{
809-
drm_dp_tunnel_mgr_destroy(i915->display.dp_tunnel_mgr);
810-
i915->display.dp_tunnel_mgr = NULL;
812+
drm_dp_tunnel_mgr_destroy(display->dp_tunnel_mgr);
813+
display->dp_tunnel_mgr = NULL;
811814
}

drivers/gpu/drm/i915/display/intel_dp_tunnel.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,13 @@
99
#include <linux/errno.h>
1010
#include <linux/types.h>
1111

12-
struct drm_i915_private;
1312
struct drm_connector_state;
1413
struct drm_modeset_acquire_ctx;
15-
1614
struct intel_atomic_state;
1715
struct intel_connector;
1816
struct intel_crtc;
1917
struct intel_crtc_state;
18+
struct intel_display;
2019
struct intel_dp;
2120
struct intel_encoder;
2221
struct intel_link_bw_limits;
@@ -53,8 +52,8 @@ int intel_dp_tunnel_atomic_check_state(struct intel_atomic_state *state,
5352

5453
void intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state);
5554

56-
int intel_dp_tunnel_mgr_init(struct drm_i915_private *i915);
57-
void intel_dp_tunnel_mgr_cleanup(struct drm_i915_private *i915);
55+
int intel_dp_tunnel_mgr_init(struct intel_display *display);
56+
void intel_dp_tunnel_mgr_cleanup(struct intel_display *display);
5857

5958
#else
6059

@@ -121,12 +120,12 @@ intel_dp_tunnel_atomic_alloc_bw(struct intel_atomic_state *state)
121120
}
122121

123122
static inline int
124-
intel_dp_tunnel_mgr_init(struct drm_i915_private *i915)
123+
intel_dp_tunnel_mgr_init(struct intel_display *display)
125124
{
126125
return 0;
127126
}
128127

129-
static inline void intel_dp_tunnel_mgr_cleanup(struct drm_i915_private *i915) {}
128+
static inline void intel_dp_tunnel_mgr_cleanup(struct intel_display *display) {}
130129

131130
#endif /* CONFIG_DRM_I915_DP_TUNNEL */
132131

0 commit comments

Comments
 (0)