Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/dpio: convert to struct intel_display

struct intel_display will replace struct drm_i915_private as the main
device pointer for display code. Switch DPIO PHY code over to it.

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1138083101f3c9058284592009b25f41065fbe30.1730146000.git.jani.nikula@intel.com

+106 -99
+13 -6
drivers/gpu/drm/i915/display/intel_display_power_well.c
··· 919 919 static void bxt_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv, 920 920 struct i915_power_well *power_well) 921 921 { 922 - bxt_dpio_phy_init(dev_priv, i915_power_well_instance(power_well)->bxt.phy); 922 + struct intel_display *display = &dev_priv->display; 923 + 924 + bxt_dpio_phy_init(display, i915_power_well_instance(power_well)->bxt.phy); 923 925 } 924 926 925 927 static void bxt_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv, 926 928 struct i915_power_well *power_well) 927 929 { 928 - bxt_dpio_phy_uninit(dev_priv, i915_power_well_instance(power_well)->bxt.phy); 930 + struct intel_display *display = &dev_priv->display; 931 + 932 + bxt_dpio_phy_uninit(display, i915_power_well_instance(power_well)->bxt.phy); 929 933 } 930 934 931 935 static bool bxt_dpio_cmn_power_well_enabled(struct drm_i915_private *dev_priv, 932 936 struct i915_power_well *power_well) 933 937 { 934 - return bxt_dpio_phy_is_enabled(dev_priv, i915_power_well_instance(power_well)->bxt.phy); 938 + struct intel_display *display = &dev_priv->display; 939 + 940 + return bxt_dpio_phy_is_enabled(display, i915_power_well_instance(power_well)->bxt.phy); 935 941 } 936 942 937 943 static void bxt_verify_dpio_phy_power_wells(struct drm_i915_private *dev_priv) 938 944 { 945 + struct intel_display *display = &dev_priv->display; 939 946 struct i915_power_well *power_well; 940 947 941 948 power_well = lookup_power_well(dev_priv, BXT_DISP_PW_DPIO_CMN_A); 942 949 if (intel_power_well_refcount(power_well) > 0) 943 - bxt_dpio_phy_verify_state(dev_priv, i915_power_well_instance(power_well)->bxt.phy); 950 + bxt_dpio_phy_verify_state(display, i915_power_well_instance(power_well)->bxt.phy); 944 951 945 952 power_well = lookup_power_well(dev_priv, VLV_DISP_PW_DPIO_CMN_BC); 946 953 if (intel_power_well_refcount(power_well) > 0) 947 - bxt_dpio_phy_verify_state(dev_priv, i915_power_well_instance(power_well)->bxt.phy); 954 + bxt_dpio_phy_verify_state(display, i915_power_well_instance(power_well)->bxt.phy); 948 955 949 956 if (IS_GEMINILAKE(dev_priv)) { 950 957 power_well = lookup_power_well(dev_priv, 951 958 GLK_DISP_PW_DPIO_CMN_C); 952 959 if (intel_power_well_refcount(power_well) > 0) 953 - bxt_dpio_phy_verify_state(dev_priv, 960 + bxt_dpio_phy_verify_state(display, 954 961 i915_power_well_instance(power_well)->bxt.phy); 955 962 } 956 963 }
+78 -80
drivers/gpu/drm/i915/display/intel_dpio_phy.c
··· 219 219 }; 220 220 221 221 static const struct bxt_dpio_phy_info * 222 - bxt_get_phy_list(struct drm_i915_private *dev_priv, int *count) 222 + bxt_get_phy_list(struct intel_display *display, int *count) 223 223 { 224 + struct drm_i915_private *dev_priv = to_i915(display->drm); 225 + 224 226 if (IS_GEMINILAKE(dev_priv)) { 225 227 *count = ARRAY_SIZE(glk_dpio_phy_info); 226 228 return glk_dpio_phy_info; ··· 233 231 } 234 232 235 233 static const struct bxt_dpio_phy_info * 236 - bxt_get_phy_info(struct drm_i915_private *dev_priv, enum dpio_phy phy) 234 + bxt_get_phy_info(struct intel_display *display, enum dpio_phy phy) 237 235 { 238 236 int count; 239 237 const struct bxt_dpio_phy_info *phy_list = 240 - bxt_get_phy_list(dev_priv, &count); 238 + bxt_get_phy_list(display, &count); 241 239 242 240 return &phy_list[phy]; 243 241 } 244 242 245 - void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port, 243 + void bxt_port_to_phy_channel(struct intel_display *display, enum port port, 246 244 enum dpio_phy *phy, enum dpio_channel *ch) 247 245 { 248 246 const struct bxt_dpio_phy_info *phy_info, *phys; 249 247 int i, count; 250 248 251 - phys = bxt_get_phy_list(dev_priv, &count); 249 + phys = bxt_get_phy_list(display, &count); 252 250 253 251 for (i = 0; i < count; i++) { 254 252 phy_info = &phys[i]; ··· 267 265 } 268 266 } 269 267 270 - drm_WARN(&dev_priv->drm, 1, "PHY not found for PORT %c", 268 + drm_WARN(display->drm, 1, "PHY not found for PORT %c", 271 269 port_name(port)); 272 270 *phy = DPIO_PHY0; 273 271 *ch = DPIO_CH0; ··· 277 275 * Like intel_de_rmw() but reads from a single per-lane register and 278 276 * writes to the group register to write the same value to all the lanes. 279 277 */ 280 - static u32 bxt_dpio_phy_rmw_grp(struct drm_i915_private *i915, 278 + static u32 bxt_dpio_phy_rmw_grp(struct intel_display *display, 281 279 i915_reg_t reg_single, 282 280 i915_reg_t reg_group, 283 281 u32 clear, u32 set) 284 282 { 285 283 u32 old, val; 286 284 287 - old = intel_de_read(i915, reg_single); 285 + old = intel_de_read(display, reg_single); 288 286 val = (old & ~clear) | set; 289 - intel_de_write(i915, reg_group, val); 287 + intel_de_write(display, reg_group, val); 290 288 291 289 return old; 292 290 } ··· 294 292 void bxt_dpio_phy_set_signal_levels(struct intel_encoder *encoder, 295 293 const struct intel_crtc_state *crtc_state) 296 294 { 297 - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 295 + struct intel_display *display = to_intel_display(encoder); 298 296 const struct intel_ddi_buf_trans *trans; 299 297 enum dpio_channel ch; 300 298 enum dpio_phy phy; 301 299 int lane, n_entries; 302 300 303 301 trans = encoder->get_buf_trans(encoder, crtc_state, &n_entries); 304 - if (drm_WARN_ON_ONCE(&dev_priv->drm, !trans)) 302 + if (drm_WARN_ON_ONCE(display->drm, !trans)) 305 303 return; 306 304 307 - bxt_port_to_phy_channel(dev_priv, encoder->port, &phy, &ch); 305 + bxt_port_to_phy_channel(display, encoder->port, &phy, &ch); 308 306 309 307 /* 310 308 * While we write to the group register to program all lanes at once we 311 309 * can read only lane registers and we pick lanes 0/1 for that. 312 310 */ 313 - bxt_dpio_phy_rmw_grp(dev_priv, BXT_PORT_PCS_DW10_LN01(phy, ch), 311 + bxt_dpio_phy_rmw_grp(display, BXT_PORT_PCS_DW10_LN01(phy, ch), 314 312 BXT_PORT_PCS_DW10_GRP(phy, ch), 315 313 TX2_SWING_CALC_INIT | TX1_SWING_CALC_INIT, 0); 316 314 317 315 for (lane = 0; lane < crtc_state->lane_count; lane++) { 318 316 int level = intel_ddi_level(encoder, crtc_state, lane); 319 317 320 - intel_de_rmw(dev_priv, BXT_PORT_TX_DW2_LN(phy, ch, lane), 318 + intel_de_rmw(display, BXT_PORT_TX_DW2_LN(phy, ch, lane), 321 319 MARGIN_000_MASK | UNIQ_TRANS_SCALE_MASK, 322 320 MARGIN_000(trans->entries[level].bxt.margin) | 323 321 UNIQ_TRANS_SCALE(trans->entries[level].bxt.scale)); ··· 327 325 int level = intel_ddi_level(encoder, crtc_state, lane); 328 326 u32 val; 329 327 330 - intel_de_rmw(dev_priv, BXT_PORT_TX_DW3_LN(phy, ch, lane), 328 + intel_de_rmw(display, BXT_PORT_TX_DW3_LN(phy, ch, lane), 331 329 SCALE_DCOMP_METHOD, 332 330 trans->entries[level].bxt.enable ? 333 331 SCALE_DCOMP_METHOD : 0); 334 332 335 - val = intel_de_read(dev_priv, BXT_PORT_TX_DW3_LN(phy, ch, lane)); 333 + val = intel_de_read(display, BXT_PORT_TX_DW3_LN(phy, ch, lane)); 336 334 if ((val & UNIQUE_TRANGE_EN_METHOD) && !(val & SCALE_DCOMP_METHOD)) 337 - drm_err(&dev_priv->drm, 335 + drm_err(display->drm, 338 336 "Disabled scaling while ouniqetrangenmethod was set"); 339 337 } 340 338 341 339 for (lane = 0; lane < crtc_state->lane_count; lane++) { 342 340 int level = intel_ddi_level(encoder, crtc_state, lane); 343 341 344 - intel_de_rmw(dev_priv, BXT_PORT_TX_DW4_LN(phy, ch, lane), 342 + intel_de_rmw(display, BXT_PORT_TX_DW4_LN(phy, ch, lane), 345 343 DE_EMPHASIS_MASK, 346 344 DE_EMPHASIS(trans->entries[level].bxt.deemphasis)); 347 345 } 348 346 349 - bxt_dpio_phy_rmw_grp(dev_priv, BXT_PORT_PCS_DW10_LN01(phy, ch), 347 + bxt_dpio_phy_rmw_grp(display, BXT_PORT_PCS_DW10_LN01(phy, ch), 350 348 BXT_PORT_PCS_DW10_GRP(phy, ch), 351 349 0, TX2_SWING_CALC_INIT | TX1_SWING_CALC_INIT); 352 350 } 353 351 354 - bool bxt_dpio_phy_is_enabled(struct drm_i915_private *dev_priv, 352 + bool bxt_dpio_phy_is_enabled(struct intel_display *display, 355 353 enum dpio_phy phy) 356 354 { 357 355 const struct bxt_dpio_phy_info *phy_info; 358 356 359 - phy_info = bxt_get_phy_info(dev_priv, phy); 357 + phy_info = bxt_get_phy_info(display, phy); 360 358 361 - if (!(intel_de_read(dev_priv, BXT_P_CR_GT_DISP_PWRON) & phy_info->pwron_mask)) 359 + if (!(intel_de_read(display, BXT_P_CR_GT_DISP_PWRON) & phy_info->pwron_mask)) 362 360 return false; 363 361 364 - if ((intel_de_read(dev_priv, BXT_PORT_CL1CM_DW0(phy)) & 362 + if ((intel_de_read(display, BXT_PORT_CL1CM_DW0(phy)) & 365 363 (PHY_POWER_GOOD | PHY_RESERVED)) != PHY_POWER_GOOD) { 366 - drm_dbg(&dev_priv->drm, 364 + drm_dbg(display->drm, 367 365 "DDI PHY %d powered, but power hasn't settled\n", phy); 368 366 369 367 return false; 370 368 } 371 369 372 - if (!(intel_de_read(dev_priv, BXT_PHY_CTL_FAMILY(phy)) & COMMON_RESET_DIS)) { 373 - drm_dbg(&dev_priv->drm, 370 + if (!(intel_de_read(display, BXT_PHY_CTL_FAMILY(phy)) & COMMON_RESET_DIS)) { 371 + drm_dbg(display->drm, 374 372 "DDI PHY %d powered, but still in reset\n", phy); 375 373 376 374 return false; ··· 379 377 return true; 380 378 } 381 379 382 - static u32 bxt_get_grc(struct drm_i915_private *dev_priv, enum dpio_phy phy) 380 + static u32 bxt_get_grc(struct intel_display *display, enum dpio_phy phy) 383 381 { 384 - u32 val = intel_de_read(dev_priv, BXT_PORT_REF_DW6(phy)); 382 + u32 val = intel_de_read(display, BXT_PORT_REF_DW6(phy)); 385 383 386 384 return REG_FIELD_GET(GRC_CODE_MASK, val); 387 385 } 388 386 389 - static void bxt_phy_wait_grc_done(struct drm_i915_private *dev_priv, 387 + static void bxt_phy_wait_grc_done(struct intel_display *display, 390 388 enum dpio_phy phy) 391 389 { 392 - if (intel_de_wait_for_set(dev_priv, BXT_PORT_REF_DW3(phy), 393 - GRC_DONE, 10)) 394 - drm_err(&dev_priv->drm, "timeout waiting for PHY%d GRC\n", 395 - phy); 390 + if (intel_de_wait_for_set(display, BXT_PORT_REF_DW3(phy), GRC_DONE, 10)) 391 + drm_err(display->drm, "timeout waiting for PHY%d GRC\n", phy); 396 392 } 397 393 398 - static void _bxt_dpio_phy_init(struct drm_i915_private *dev_priv, 399 - enum dpio_phy phy) 394 + static void _bxt_dpio_phy_init(struct intel_display *display, enum dpio_phy phy) 400 395 { 401 396 const struct bxt_dpio_phy_info *phy_info; 402 397 u32 val; 403 398 404 - phy_info = bxt_get_phy_info(dev_priv, phy); 399 + phy_info = bxt_get_phy_info(display, phy); 405 400 406 - if (bxt_dpio_phy_is_enabled(dev_priv, phy)) { 401 + if (bxt_dpio_phy_is_enabled(display, phy)) { 407 402 /* Still read out the GRC value for state verification */ 408 403 if (phy_info->rcomp_phy != -1) 409 - dev_priv->display.state.bxt_phy_grc = bxt_get_grc(dev_priv, phy); 404 + display->state.bxt_phy_grc = bxt_get_grc(display, phy); 410 405 411 - if (bxt_dpio_phy_verify_state(dev_priv, phy)) { 412 - drm_dbg(&dev_priv->drm, "DDI PHY %d already enabled, " 406 + if (bxt_dpio_phy_verify_state(display, phy)) { 407 + drm_dbg(display->drm, "DDI PHY %d already enabled, " 413 408 "won't reprogram it\n", phy); 414 409 return; 415 410 } 416 411 417 - drm_dbg(&dev_priv->drm, 412 + drm_dbg(display->drm, 418 413 "DDI PHY %d enabled with invalid state, " 419 414 "force reprogramming it\n", phy); 420 415 } 421 416 422 - intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, 0, phy_info->pwron_mask); 417 + intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, 0, phy_info->pwron_mask); 423 418 424 419 /* 425 420 * The PHY registers start out inaccessible and respond to reads with ··· 426 427 * The flag should get set in 100us according to the HW team, but 427 428 * use 1ms due to occasional timeouts observed with that. 428 429 */ 429 - if (intel_de_wait_fw(dev_priv, BXT_PORT_CL1CM_DW0(phy), 430 + if (intel_de_wait_fw(display, BXT_PORT_CL1CM_DW0(phy), 430 431 PHY_RESERVED | PHY_POWER_GOOD, PHY_POWER_GOOD, 1)) 431 - drm_err(&dev_priv->drm, "timeout during PHY%d power on\n", 432 + drm_err(display->drm, "timeout during PHY%d power on\n", 432 433 phy); 433 434 434 435 /* Program PLL Rcomp code offset */ 435 - intel_de_rmw(dev_priv, BXT_PORT_CL1CM_DW9(phy), 436 + intel_de_rmw(display, BXT_PORT_CL1CM_DW9(phy), 436 437 IREF0RC_OFFSET_MASK, IREF0RC_OFFSET(0xE4)); 437 438 438 - intel_de_rmw(dev_priv, BXT_PORT_CL1CM_DW10(phy), 439 + intel_de_rmw(display, BXT_PORT_CL1CM_DW10(phy), 439 440 IREF1RC_OFFSET_MASK, IREF1RC_OFFSET(0xE4)); 440 441 441 442 /* Program power gating */ 442 - intel_de_rmw(dev_priv, BXT_PORT_CL1CM_DW28(phy), 0, 443 + intel_de_rmw(display, BXT_PORT_CL1CM_DW28(phy), 0, 443 444 OCL1_POWER_DOWN_EN | DW28_OLDO_DYN_PWR_DOWN_EN | SUS_CLK_CONFIG); 444 445 445 446 if (phy_info->dual_channel) 446 - intel_de_rmw(dev_priv, BXT_PORT_CL2CM_DW6(phy), 0, 447 + intel_de_rmw(display, BXT_PORT_CL2CM_DW6(phy), 0, 447 448 DW6_OLDO_DYN_PWR_DOWN_EN); 448 449 449 450 if (phy_info->rcomp_phy != -1) { 450 451 u32 grc_code; 451 452 452 - bxt_phy_wait_grc_done(dev_priv, phy_info->rcomp_phy); 453 + bxt_phy_wait_grc_done(display, phy_info->rcomp_phy); 453 454 454 455 /* 455 456 * PHY0 isn't connected to an RCOMP resistor so copy over 456 457 * the corresponding calibrated value from PHY1, and disable 457 458 * the automatic calibration on PHY0. 458 459 */ 459 - val = bxt_get_grc(dev_priv, phy_info->rcomp_phy); 460 - dev_priv->display.state.bxt_phy_grc = val; 460 + val = bxt_get_grc(display, phy_info->rcomp_phy); 461 + display->state.bxt_phy_grc = val; 461 462 462 463 grc_code = GRC_CODE_FAST(val) | 463 464 GRC_CODE_SLOW(val) | 464 465 GRC_CODE_NOM(val); 465 - intel_de_write(dev_priv, BXT_PORT_REF_DW6(phy), grc_code); 466 - intel_de_rmw(dev_priv, BXT_PORT_REF_DW8(phy), 466 + intel_de_write(display, BXT_PORT_REF_DW6(phy), grc_code); 467 + intel_de_rmw(display, BXT_PORT_REF_DW8(phy), 467 468 0, GRC_DIS | GRC_RDY_OVRD); 468 469 } 469 470 470 471 if (phy_info->reset_delay) 471 472 udelay(phy_info->reset_delay); 472 473 473 - intel_de_rmw(dev_priv, BXT_PHY_CTL_FAMILY(phy), 0, COMMON_RESET_DIS); 474 + intel_de_rmw(display, BXT_PHY_CTL_FAMILY(phy), 0, COMMON_RESET_DIS); 474 475 } 475 476 476 - void bxt_dpio_phy_uninit(struct drm_i915_private *dev_priv, enum dpio_phy phy) 477 + void bxt_dpio_phy_uninit(struct intel_display *display, enum dpio_phy phy) 477 478 { 478 479 const struct bxt_dpio_phy_info *phy_info; 479 480 480 - phy_info = bxt_get_phy_info(dev_priv, phy); 481 + phy_info = bxt_get_phy_info(display, phy); 481 482 482 - intel_de_rmw(dev_priv, BXT_PHY_CTL_FAMILY(phy), COMMON_RESET_DIS, 0); 483 + intel_de_rmw(display, BXT_PHY_CTL_FAMILY(phy), COMMON_RESET_DIS, 0); 483 484 484 - intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, phy_info->pwron_mask, 0); 485 + intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, phy_info->pwron_mask, 0); 485 486 } 486 487 487 - void bxt_dpio_phy_init(struct drm_i915_private *dev_priv, enum dpio_phy phy) 488 + void bxt_dpio_phy_init(struct intel_display *display, enum dpio_phy phy) 488 489 { 489 - const struct bxt_dpio_phy_info *phy_info = 490 - bxt_get_phy_info(dev_priv, phy); 490 + const struct bxt_dpio_phy_info *phy_info = bxt_get_phy_info(display, phy); 491 491 enum dpio_phy rcomp_phy = phy_info->rcomp_phy; 492 492 bool was_enabled; 493 493 494 - lockdep_assert_held(&dev_priv->display.power.domains.lock); 494 + lockdep_assert_held(&display->power.domains.lock); 495 495 496 496 was_enabled = true; 497 497 if (rcomp_phy != -1) 498 - was_enabled = bxt_dpio_phy_is_enabled(dev_priv, rcomp_phy); 498 + was_enabled = bxt_dpio_phy_is_enabled(display, rcomp_phy); 499 499 500 500 /* 501 501 * We need to copy the GRC calibration value from rcomp_phy, 502 502 * so make sure it's powered up. 503 503 */ 504 504 if (!was_enabled) 505 - _bxt_dpio_phy_init(dev_priv, rcomp_phy); 505 + _bxt_dpio_phy_init(display, rcomp_phy); 506 506 507 - _bxt_dpio_phy_init(dev_priv, phy); 507 + _bxt_dpio_phy_init(display, phy); 508 508 509 509 if (!was_enabled) 510 - bxt_dpio_phy_uninit(dev_priv, rcomp_phy); 510 + bxt_dpio_phy_uninit(display, rcomp_phy); 511 511 } 512 512 513 513 static bool __printf(6, 7) 514 - __phy_reg_verify_state(struct drm_i915_private *dev_priv, enum dpio_phy phy, 514 + __phy_reg_verify_state(struct intel_display *display, enum dpio_phy phy, 515 515 i915_reg_t reg, u32 mask, u32 expected, 516 516 const char *reg_fmt, ...) 517 517 { ··· 518 520 va_list args; 519 521 u32 val; 520 522 521 - val = intel_de_read(dev_priv, reg); 523 + val = intel_de_read(display, reg); 522 524 if ((val & mask) == expected) 523 525 return true; 524 526 ··· 526 528 vaf.fmt = reg_fmt; 527 529 vaf.va = &args; 528 530 529 - drm_dbg(&dev_priv->drm, "DDI PHY %d reg %pV [%08x] state mismatch: " 531 + drm_dbg(display->drm, "DDI PHY %d reg %pV [%08x] state mismatch: " 530 532 "current %08x, expected %08x (mask %08x)\n", 531 533 phy, &vaf, reg.reg, val, (val & ~mask) | expected, 532 534 mask); ··· 536 538 return false; 537 539 } 538 540 539 - bool bxt_dpio_phy_verify_state(struct drm_i915_private *dev_priv, 541 + bool bxt_dpio_phy_verify_state(struct intel_display *display, 540 542 enum dpio_phy phy) 541 543 { 542 544 const struct bxt_dpio_phy_info *phy_info; 543 545 u32 mask; 544 546 bool ok; 545 547 546 - phy_info = bxt_get_phy_info(dev_priv, phy); 548 + phy_info = bxt_get_phy_info(display, phy); 547 549 548 550 #define _CHK(reg, mask, exp, fmt, ...) \ 549 - __phy_reg_verify_state(dev_priv, phy, reg, mask, exp, fmt, \ 551 + __phy_reg_verify_state(display, phy, reg, mask, exp, fmt, \ 550 552 ## __VA_ARGS__) 551 553 552 - if (!bxt_dpio_phy_is_enabled(dev_priv, phy)) 554 + if (!bxt_dpio_phy_is_enabled(display, phy)) 553 555 return false; 554 556 555 557 ok = true; ··· 573 575 "BXT_PORT_CL2CM_DW6(%d)", phy); 574 576 575 577 if (phy_info->rcomp_phy != -1) { 576 - u32 grc_code = dev_priv->display.state.bxt_phy_grc; 578 + u32 grc_code = display->state.bxt_phy_grc; 577 579 578 580 grc_code = GRC_CODE_FAST(grc_code) | 579 581 GRC_CODE_SLOW(grc_code) | ··· 612 614 void bxt_dpio_phy_set_lane_optim_mask(struct intel_encoder *encoder, 613 615 u8 lane_lat_optim_mask) 614 616 { 615 - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 617 + struct intel_display *display = to_intel_display(encoder); 616 618 enum port port = encoder->port; 617 619 enum dpio_phy phy; 618 620 enum dpio_channel ch; 619 621 int lane; 620 622 621 - bxt_port_to_phy_channel(dev_priv, port, &phy, &ch); 623 + bxt_port_to_phy_channel(display, port, &phy, &ch); 622 624 623 625 for (lane = 0; lane < 4; lane++) { 624 626 /* 625 627 * Note that on CHV this flag is called UPAR, but has 626 628 * the same function. 627 629 */ 628 - intel_de_rmw(dev_priv, BXT_PORT_TX_DW14_LN(phy, ch, lane), 630 + intel_de_rmw(display, BXT_PORT_TX_DW14_LN(phy, ch, lane), 629 631 LATENCY_OPTIM, 630 632 lane_lat_optim_mask & BIT(lane) ? LATENCY_OPTIM : 0); 631 633 } ··· 634 636 u8 635 637 bxt_dpio_phy_get_lane_lat_optim_mask(struct intel_encoder *encoder) 636 638 { 637 - struct drm_i915_private *dev_priv = to_i915(encoder->base.dev); 639 + struct intel_display *display = to_intel_display(encoder); 638 640 enum port port = encoder->port; 639 641 enum dpio_phy phy; 640 642 enum dpio_channel ch; 641 643 int lane; 642 644 u8 mask; 643 645 644 - bxt_port_to_phy_channel(dev_priv, port, &phy, &ch); 646 + bxt_port_to_phy_channel(display, port, &phy, &ch); 645 647 646 648 mask = 0; 647 649 for (lane = 0; lane < 4; lane++) { 648 - u32 val = intel_de_read(dev_priv, 650 + u32 val = intel_de_read(display, 649 651 BXT_PORT_TX_DW14_LN(phy, ch, lane)); 650 652 651 653 if (val & LATENCY_OPTIM)
+11 -11
drivers/gpu/drm/i915/display/intel_dpio_phy.h
··· 10 10 11 11 enum pipe; 12 12 enum port; 13 - struct drm_i915_private; 14 13 struct intel_crtc_state; 15 14 struct intel_digital_port; 15 + struct intel_display; 16 16 struct intel_encoder; 17 17 18 18 enum dpio_channel { ··· 27 27 }; 28 28 29 29 #ifdef I915 30 - void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port, 30 + void bxt_port_to_phy_channel(struct intel_display *display, enum port port, 31 31 enum dpio_phy *phy, enum dpio_channel *ch); 32 32 void bxt_dpio_phy_set_signal_levels(struct intel_encoder *encoder, 33 33 const struct intel_crtc_state *crtc_state); 34 - void bxt_dpio_phy_init(struct drm_i915_private *dev_priv, enum dpio_phy phy); 35 - void bxt_dpio_phy_uninit(struct drm_i915_private *dev_priv, enum dpio_phy phy); 36 - bool bxt_dpio_phy_is_enabled(struct drm_i915_private *dev_priv, 34 + void bxt_dpio_phy_init(struct intel_display *display, enum dpio_phy phy); 35 + void bxt_dpio_phy_uninit(struct intel_display *display, enum dpio_phy phy); 36 + bool bxt_dpio_phy_is_enabled(struct intel_display *display, 37 37 enum dpio_phy phy); 38 - bool bxt_dpio_phy_verify_state(struct drm_i915_private *dev_priv, 38 + bool bxt_dpio_phy_verify_state(struct intel_display *display, 39 39 enum dpio_phy phy); 40 40 u8 bxt_dpio_phy_calc_lane_lat_optim_mask(u8 lane_count); 41 41 void bxt_dpio_phy_set_lane_optim_mask(struct intel_encoder *encoder, ··· 73 73 void vlv_phy_reset_lanes(struct intel_encoder *encoder, 74 74 const struct intel_crtc_state *old_crtc_state); 75 75 #else 76 - static inline void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port, 76 + static inline void bxt_port_to_phy_channel(struct intel_display *display, enum port port, 77 77 enum dpio_phy *phy, enum dpio_channel *ch) 78 78 { 79 79 } ··· 81 81 const struct intel_crtc_state *crtc_state) 82 82 { 83 83 } 84 - static inline void bxt_dpio_phy_init(struct drm_i915_private *dev_priv, enum dpio_phy phy) 84 + static inline void bxt_dpio_phy_init(struct intel_display *display, enum dpio_phy phy) 85 85 { 86 86 } 87 - static inline void bxt_dpio_phy_uninit(struct drm_i915_private *dev_priv, enum dpio_phy phy) 87 + static inline void bxt_dpio_phy_uninit(struct intel_display *display, enum dpio_phy phy) 88 88 { 89 89 } 90 - static inline bool bxt_dpio_phy_is_enabled(struct drm_i915_private *dev_priv, 90 + static inline bool bxt_dpio_phy_is_enabled(struct intel_display *display, 91 91 enum dpio_phy phy) 92 92 { 93 93 return false; 94 94 } 95 - static inline bool bxt_dpio_phy_verify_state(struct drm_i915_private *dev_priv, 95 + static inline bool bxt_dpio_phy_verify_state(struct intel_display *display, 96 96 enum dpio_phy phy) 97 97 { 98 98 return true;
+4 -2
drivers/gpu/drm/i915/display/intel_dpll_mgr.c
··· 2037 2037 struct intel_shared_dpll *pll, 2038 2038 const struct intel_dpll_hw_state *dpll_hw_state) 2039 2039 { 2040 + struct intel_display *display = &i915->display; 2040 2041 const struct bxt_dpll_hw_state *hw_state = &dpll_hw_state->bxt; 2041 2042 enum port port = (enum port)pll->info->id; /* 1:1 port->PLL mapping */ 2042 2043 enum dpio_phy phy; 2043 2044 enum dpio_channel ch; 2044 2045 u32 temp; 2045 2046 2046 - bxt_port_to_phy_channel(i915, port, &phy, &ch); 2047 + bxt_port_to_phy_channel(display, port, &phy, &ch); 2047 2048 2048 2049 /* Non-SSC reference */ 2049 2050 intel_de_rmw(i915, BXT_PORT_PLL_ENABLE(port), 0, PORT_PLL_REF_SEL); ··· 2160 2159 struct intel_shared_dpll *pll, 2161 2160 struct intel_dpll_hw_state *dpll_hw_state) 2162 2161 { 2162 + struct intel_display *display = &i915->display; 2163 2163 struct bxt_dpll_hw_state *hw_state = &dpll_hw_state->bxt; 2164 2164 enum port port = (enum port)pll->info->id; /* 1:1 port->PLL mapping */ 2165 2165 intel_wakeref_t wakeref; ··· 2169 2167 u32 val; 2170 2168 bool ret; 2171 2169 2172 - bxt_port_to_phy_channel(i915, port, &phy, &ch); 2170 + bxt_port_to_phy_channel(display, port, &phy, &ch); 2173 2171 2174 2172 wakeref = intel_display_power_get_if_enabled(i915, 2175 2173 POWER_DOMAIN_DISPLAY_CORE);