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

drm/i915/dp: convert intel_dp_aux.[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_aux.[ch] to struct intel_display.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/f295369d573d217323a624fd4b8dc477a6cf183b.1725012870.git.jani.nikula@intel.com

+73 -64
+8 -5
drivers/gpu/drm/i915/display/intel_display_irq.c
··· 576 576 577 577 static void ibx_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir) 578 578 { 579 + struct intel_display *display = &dev_priv->display; 579 580 enum pipe pipe; 580 581 u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK; 581 582 ··· 590 589 } 591 590 592 591 if (pch_iir & SDE_AUX_MASK) 593 - intel_dp_aux_irq_handler(dev_priv); 592 + intel_dp_aux_irq_handler(display); 594 593 595 594 if (pch_iir & SDE_GMBUS) 596 595 intel_gmbus_irq_handler(dev_priv); ··· 665 664 666 665 static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir) 667 666 { 667 + struct intel_display *display = &dev_priv->display; 668 668 enum pipe pipe; 669 669 u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK_CPT; 670 670 ··· 679 677 } 680 678 681 679 if (pch_iir & SDE_AUX_MASK_CPT) 682 - intel_dp_aux_irq_handler(dev_priv); 680 + intel_dp_aux_irq_handler(display); 683 681 684 682 if (pch_iir & SDE_GMBUS_CPT) 685 683 intel_gmbus_irq_handler(dev_priv); ··· 711 709 ilk_hpd_irq_handler(dev_priv, hotplug_trigger); 712 710 713 711 if (de_iir & DE_AUX_CHANNEL_A) 714 - intel_dp_aux_irq_handler(dev_priv); 712 + intel_dp_aux_irq_handler(display); 715 713 716 714 if (de_iir & DE_GSE) 717 715 intel_opregion_asle_intr(display); ··· 777 775 } 778 776 779 777 if (de_iir & DE_AUX_CHANNEL_A_IVB) 780 - intel_dp_aux_irq_handler(dev_priv); 778 + intel_dp_aux_irq_handler(display); 781 779 782 780 if (de_iir & DE_GSE_IVB) 783 781 intel_opregion_asle_intr(display); ··· 1067 1065 1068 1066 void gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl) 1069 1067 { 1068 + struct intel_display *display = &dev_priv->display; 1070 1069 u32 iir; 1071 1070 enum pipe pipe; 1072 1071 ··· 1103 1100 intel_uncore_write(&dev_priv->uncore, GEN8_DE_PORT_IIR, iir); 1104 1101 1105 1102 if (iir & gen8_de_port_aux_mask(dev_priv)) { 1106 - intel_dp_aux_irq_handler(dev_priv); 1103 + intel_dp_aux_irq_handler(display); 1107 1104 found = true; 1108 1105 } 1109 1106
+59 -55
drivers/gpu/drm/i915/display/intel_dp_aux.c
··· 18 18 19 19 #define AUX_CH_NAME_BUFSIZE 6 20 20 21 - static const char *aux_ch_name(struct drm_i915_private *i915, 21 + static const char *aux_ch_name(struct intel_display *display, 22 22 char *buf, int size, enum aux_ch aux_ch) 23 23 { 24 - if (DISPLAY_VER(i915) >= 13 && aux_ch >= AUX_CH_D_XELPD) 24 + if (DISPLAY_VER(display) >= 13 && aux_ch >= AUX_CH_D_XELPD) 25 25 snprintf(buf, size, "%c", 'A' + aux_ch - AUX_CH_D_XELPD + AUX_CH_D); 26 - else if (DISPLAY_VER(i915) >= 12 && aux_ch >= AUX_CH_USBC1) 26 + else if (DISPLAY_VER(display) >= 12 && aux_ch >= AUX_CH_USBC1) 27 27 snprintf(buf, size, "USBC%c", '1' + aux_ch - AUX_CH_USBC1); 28 28 else 29 29 snprintf(buf, size, "%c", 'A' + aux_ch); ··· 56 56 static u32 57 57 intel_dp_aux_wait_done(struct intel_dp *intel_dp) 58 58 { 59 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 59 + struct intel_display *display = to_intel_display(intel_dp); 60 60 i915_reg_t ch_ctl = intel_dp->aux_ch_ctl_reg(intel_dp); 61 61 const unsigned int timeout_ms = 10; 62 62 u32 status; 63 63 int ret; 64 64 65 - ret = intel_de_wait_custom(i915, ch_ctl, DP_AUX_CH_CTL_SEND_BUSY, 0, 65 + ret = intel_de_wait_custom(display, ch_ctl, DP_AUX_CH_CTL_SEND_BUSY, 66 + 0, 66 67 2, timeout_ms, &status); 67 68 68 69 if (ret == -ETIMEDOUT) 69 - drm_err(&i915->drm, 70 + drm_err(display->drm, 70 71 "%s: did not complete or timeout within %ums (status 0x%08x)\n", 71 72 intel_dp->aux.name, timeout_ms, status); 72 73 ··· 76 75 77 76 static u32 g4x_get_aux_clock_divider(struct intel_dp *intel_dp, int index) 78 77 { 79 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 78 + struct intel_display *display = to_intel_display(intel_dp); 80 79 81 80 if (index) 82 81 return 0; ··· 85 84 * The clock divider is based off the hrawclk, and would like to run at 86 85 * 2MHz. So, take the hrawclk value and divide by 2000 and use that 87 86 */ 88 - return DIV_ROUND_CLOSEST(DISPLAY_RUNTIME_INFO(i915)->rawclk_freq, 2000); 87 + return DIV_ROUND_CLOSEST(DISPLAY_RUNTIME_INFO(display)->rawclk_freq, 2000); 89 88 } 90 89 91 90 static u32 ilk_get_aux_clock_divider(struct intel_dp *intel_dp, int index) 92 91 { 93 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 92 + struct intel_display *display = to_intel_display(intel_dp); 94 93 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 95 94 u32 freq; 96 95 ··· 103 102 * divide by 2000 and use that 104 103 */ 105 104 if (dig_port->aux_ch == AUX_CH_A) 106 - freq = i915->display.cdclk.hw.cdclk; 105 + freq = display->cdclk.hw.cdclk; 107 106 else 108 - freq = DISPLAY_RUNTIME_INFO(i915)->rawclk_freq; 107 + freq = DISPLAY_RUNTIME_INFO(display)->rawclk_freq; 109 108 return DIV_ROUND_CLOSEST(freq, 2000); 110 109 } 111 110 112 111 static u32 hsw_get_aux_clock_divider(struct intel_dp *intel_dp, int index) 113 112 { 114 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 113 + struct intel_display *display = to_intel_display(intel_dp); 114 + struct drm_i915_private *i915 = to_i915(display->drm); 115 115 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 116 116 117 117 if (dig_port->aux_ch != AUX_CH_A && HAS_PCH_LPT_H(i915)) { ··· 203 201 int send_bytes, 204 202 u32 unused) 205 203 { 204 + struct intel_display *display = to_intel_display(intel_dp); 206 205 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 207 - struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); 208 206 u32 ret; 209 207 210 208 /* ··· 229 227 * Power request bit is already set during aux power well enable. 230 228 * Preserve the bit across aux transactions. 231 229 */ 232 - if (DISPLAY_VER(i915) >= 14) 230 + if (DISPLAY_VER(display) >= 14) 233 231 ret |= XELPDP_DP_AUX_CH_CTL_POWER_REQUEST; 234 232 235 233 return ret; ··· 241 239 u8 *recv, int recv_size, 242 240 u32 aux_send_ctl_flags) 243 241 { 242 + struct intel_display *display = to_intel_display(intel_dp); 244 243 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 245 244 struct intel_encoder *encoder = &dig_port->base; 246 245 struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); ··· 300 297 301 298 /* Try to wait for any previous AUX channel activity */ 302 299 for (try = 0; try < 3; try++) { 303 - status = intel_de_read_notrace(i915, ch_ctl); 300 + status = intel_de_read_notrace(display, ch_ctl); 304 301 if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) 305 302 break; 306 303 msleep(1); ··· 309 306 trace_i915_reg_rw(false, ch_ctl, status, sizeof(status), true); 310 307 311 308 if (try == 3) { 312 - const u32 status = intel_de_read(i915, ch_ctl); 309 + const u32 status = intel_de_read(display, ch_ctl); 313 310 314 311 if (status != intel_dp->aux_busy_last_status) { 315 - drm_WARN(&i915->drm, 1, 312 + drm_WARN(display->drm, 1, 316 313 "%s: not started (status 0x%08x)\n", 317 314 intel_dp->aux.name, status); 318 315 intel_dp->aux_busy_last_status = status; ··· 323 320 } 324 321 325 322 /* Only 5 data registers! */ 326 - if (drm_WARN_ON(&i915->drm, send_bytes > 20 || recv_size > 20)) { 323 + if (drm_WARN_ON(display->drm, send_bytes > 20 || recv_size > 20)) { 327 324 ret = -E2BIG; 328 325 goto out; 329 326 } ··· 339 336 for (try = 0; try < 5; try++) { 340 337 /* Load the send data into the aux channel data registers */ 341 338 for (i = 0; i < send_bytes; i += 4) 342 - intel_de_write(i915, ch_data[i >> 2], 339 + intel_de_write(display, ch_data[i >> 2], 343 340 intel_dp_aux_pack(send + i, 344 341 send_bytes - i)); 345 342 346 343 /* Send the command and wait for it to complete */ 347 - intel_de_write(i915, ch_ctl, send_ctl); 344 + intel_de_write(display, ch_ctl, send_ctl); 348 345 349 346 status = intel_dp_aux_wait_done(intel_dp); 350 347 351 348 /* Clear done status and any errors */ 352 - intel_de_write(i915, ch_ctl, 349 + intel_de_write(display, ch_ctl, 353 350 status | DP_AUX_CH_CTL_DONE | 354 351 DP_AUX_CH_CTL_TIME_OUT_ERROR | 355 352 DP_AUX_CH_CTL_RECEIVE_ERROR); ··· 373 370 } 374 371 375 372 if ((status & DP_AUX_CH_CTL_DONE) == 0) { 376 - drm_err(&i915->drm, "%s: not done (status 0x%08x)\n", 373 + drm_err(display->drm, "%s: not done (status 0x%08x)\n", 377 374 intel_dp->aux.name, status); 378 375 ret = -EBUSY; 379 376 goto out; ··· 385 382 * not connected. 386 383 */ 387 384 if (status & DP_AUX_CH_CTL_RECEIVE_ERROR) { 388 - drm_err(&i915->drm, "%s: receive error (status 0x%08x)\n", 385 + drm_err(display->drm, "%s: receive error (status 0x%08x)\n", 389 386 intel_dp->aux.name, status); 390 387 ret = -EIO; 391 388 goto out; ··· 396 393 * -- don't fill the kernel log with these 397 394 */ 398 395 if (status & DP_AUX_CH_CTL_TIME_OUT_ERROR) { 399 - drm_dbg_kms(&i915->drm, "%s: timeout (status 0x%08x)\n", 396 + drm_dbg_kms(display->drm, "%s: timeout (status 0x%08x)\n", 400 397 intel_dp->aux.name, status); 401 398 ret = -ETIMEDOUT; 402 399 goto out; ··· 411 408 * drm layer takes care for the necessary retries. 412 409 */ 413 410 if (recv_bytes == 0 || recv_bytes > 20) { 414 - drm_dbg_kms(&i915->drm, 411 + drm_dbg_kms(display->drm, 415 412 "%s: Forbidden recv_bytes = %d on aux transaction\n", 416 413 intel_dp->aux.name, recv_bytes); 417 414 ret = -EBUSY; ··· 422 419 recv_bytes = recv_size; 423 420 424 421 for (i = 0; i < recv_bytes; i += 4) 425 - intel_dp_aux_unpack(intel_de_read(i915, ch_data[i >> 2]), 422 + intel_dp_aux_unpack(intel_de_read(display, ch_data[i >> 2]), 426 423 recv + i, recv_bytes - i); 427 424 428 425 ret = recv_bytes; ··· 471 468 intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) 472 469 { 473 470 struct intel_dp *intel_dp = container_of(aux, struct intel_dp, aux); 474 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 471 + struct intel_display *display = to_intel_display(intel_dp); 475 472 u8 txbuf[20], rxbuf[20]; 476 473 size_t txsize, rxsize; 477 474 u32 flags = intel_dp_aux_xfer_flags(msg); ··· 486 483 txsize = msg->size ? HEADER_SIZE + msg->size : BARE_ADDRESS_SIZE; 487 484 rxsize = 2; /* 0 or 1 data bytes */ 488 485 489 - if (drm_WARN_ON(&i915->drm, txsize > 20)) 486 + if (drm_WARN_ON(display->drm, txsize > 20)) 490 487 return -E2BIG; 491 488 492 - drm_WARN_ON(&i915->drm, !msg->buffer != !msg->size); 489 + drm_WARN_ON(display->drm, !msg->buffer != !msg->size); 493 490 494 491 if (msg->buffer) 495 492 memcpy(txbuf + HEADER_SIZE, msg->buffer, msg->size); ··· 514 511 txsize = msg->size ? HEADER_SIZE : BARE_ADDRESS_SIZE; 515 512 rxsize = msg->size + 1; 516 513 517 - if (drm_WARN_ON(&i915->drm, rxsize > 20)) 514 + if (drm_WARN_ON(display->drm, rxsize > 20)) 518 515 return -E2BIG; 519 516 520 517 ret = intel_dp_aux_xfer(intel_dp, txbuf, txsize, ··· 724 721 725 722 static i915_reg_t xelpdp_aux_ctl_reg(struct intel_dp *intel_dp) 726 723 { 727 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 724 + struct intel_display *display = to_intel_display(intel_dp); 728 725 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 729 726 enum aux_ch aux_ch = dig_port->aux_ch; 730 727 ··· 735 732 case AUX_CH_USBC2: 736 733 case AUX_CH_USBC3: 737 734 case AUX_CH_USBC4: 738 - return XELPDP_DP_AUX_CH_CTL(i915, aux_ch); 735 + return XELPDP_DP_AUX_CH_CTL(display, aux_ch); 739 736 default: 740 737 MISSING_CASE(aux_ch); 741 - return XELPDP_DP_AUX_CH_CTL(i915, AUX_CH_A); 738 + return XELPDP_DP_AUX_CH_CTL(display, AUX_CH_A); 742 739 } 743 740 } 744 741 745 742 static i915_reg_t xelpdp_aux_data_reg(struct intel_dp *intel_dp, int index) 746 743 { 747 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 744 + struct intel_display *display = to_intel_display(intel_dp); 748 745 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 749 746 enum aux_ch aux_ch = dig_port->aux_ch; 750 747 ··· 755 752 case AUX_CH_USBC2: 756 753 case AUX_CH_USBC3: 757 754 case AUX_CH_USBC4: 758 - return XELPDP_DP_AUX_CH_DATA(i915, aux_ch, index); 755 + return XELPDP_DP_AUX_CH_DATA(display, aux_ch, index); 759 756 default: 760 757 MISSING_CASE(aux_ch); 761 - return XELPDP_DP_AUX_CH_DATA(i915, AUX_CH_A, index); 758 + return XELPDP_DP_AUX_CH_DATA(display, AUX_CH_A, index); 762 759 } 763 760 } 764 761 ··· 772 769 773 770 void intel_dp_aux_init(struct intel_dp *intel_dp) 774 771 { 775 - struct drm_i915_private *i915 = dp_to_i915(intel_dp); 772 + struct intel_display *display = to_intel_display(intel_dp); 773 + struct drm_i915_private *i915 = to_i915(display->drm); 776 774 struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); 777 775 struct intel_encoder *encoder = &dig_port->base; 778 776 enum aux_ch aux_ch = dig_port->aux_ch; 779 777 char buf[AUX_CH_NAME_BUFSIZE]; 780 778 781 - if (DISPLAY_VER(i915) >= 14) { 779 + if (DISPLAY_VER(display) >= 14) { 782 780 intel_dp->aux_ch_ctl_reg = xelpdp_aux_ctl_reg; 783 781 intel_dp->aux_ch_data_reg = xelpdp_aux_data_reg; 784 - } else if (DISPLAY_VER(i915) >= 12) { 782 + } else if (DISPLAY_VER(display) >= 12) { 785 783 intel_dp->aux_ch_ctl_reg = tgl_aux_ctl_reg; 786 784 intel_dp->aux_ch_data_reg = tgl_aux_data_reg; 787 - } else if (DISPLAY_VER(i915) >= 9) { 785 + } else if (DISPLAY_VER(display) >= 9) { 788 786 intel_dp->aux_ch_ctl_reg = skl_aux_ctl_reg; 789 787 intel_dp->aux_ch_data_reg = skl_aux_data_reg; 790 788 } else if (HAS_PCH_SPLIT(i915)) { ··· 799 795 intel_dp->aux_ch_data_reg = g4x_aux_data_reg; 800 796 } 801 797 802 - if (DISPLAY_VER(i915) >= 9) 798 + if (DISPLAY_VER(display) >= 9) 803 799 intel_dp->get_aux_clock_divider = skl_get_aux_clock_divider; 804 800 else if (IS_BROADWELL(i915) || IS_HASWELL(i915)) 805 801 intel_dp->get_aux_clock_divider = hsw_get_aux_clock_divider; ··· 808 804 else 809 805 intel_dp->get_aux_clock_divider = g4x_get_aux_clock_divider; 810 806 811 - if (DISPLAY_VER(i915) >= 9) 807 + if (DISPLAY_VER(display) >= 9) 812 808 intel_dp->get_aux_send_ctl = skl_get_aux_send_ctl; 813 809 else 814 810 intel_dp->get_aux_send_ctl = g4x_get_aux_send_ctl; 815 811 816 - intel_dp->aux.drm_dev = &i915->drm; 812 + intel_dp->aux.drm_dev = display->drm; 817 813 drm_dp_aux_init(&intel_dp->aux); 818 814 819 815 /* Failure to allocate our preferred name is not critical */ 820 816 intel_dp->aux.name = kasprintf(GFP_KERNEL, "AUX %s/%s", 821 - aux_ch_name(i915, buf, sizeof(buf), aux_ch), 817 + aux_ch_name(display, buf, sizeof(buf), aux_ch), 822 818 encoder->base.name); 823 819 824 820 intel_dp->aux.transfer = intel_dp_aux_transfer; ··· 827 823 828 824 static enum aux_ch default_aux_ch(struct intel_encoder *encoder) 829 825 { 830 - struct drm_i915_private *i915 = to_i915(encoder->base.dev); 826 + struct intel_display *display = to_intel_display(encoder); 831 827 832 828 /* SKL has DDI E but no AUX E */ 833 - if (DISPLAY_VER(i915) == 9 && encoder->port == PORT_E) 829 + if (DISPLAY_VER(display) == 9 && encoder->port == PORT_E) 834 830 return AUX_CH_A; 835 831 836 832 return (enum aux_ch)encoder->port; ··· 840 836 get_encoder_by_aux_ch(struct intel_encoder *encoder, 841 837 enum aux_ch aux_ch) 842 838 { 843 - struct drm_i915_private *i915 = to_i915(encoder->base.dev); 839 + struct intel_display *display = to_intel_display(encoder); 844 840 struct intel_encoder *other; 845 841 846 - for_each_intel_encoder(&i915->drm, other) { 842 + for_each_intel_encoder(display->drm, other) { 847 843 if (other == encoder) 848 844 continue; 849 845 ··· 859 855 860 856 enum aux_ch intel_dp_aux_ch(struct intel_encoder *encoder) 861 857 { 862 - struct drm_i915_private *i915 = to_i915(encoder->base.dev); 858 + struct intel_display *display = to_intel_display(encoder); 863 859 struct intel_encoder *other; 864 860 const char *source; 865 861 enum aux_ch aux_ch; ··· 880 876 881 877 other = get_encoder_by_aux_ch(encoder, aux_ch); 882 878 if (other) { 883 - drm_dbg_kms(&i915->drm, 879 + drm_dbg_kms(display->drm, 884 880 "[ENCODER:%d:%s] AUX CH %s already claimed by [ENCODER:%d:%s]\n", 885 881 encoder->base.base.id, encoder->base.name, 886 - aux_ch_name(i915, buf, sizeof(buf), aux_ch), 882 + aux_ch_name(display, buf, sizeof(buf), aux_ch), 887 883 other->base.base.id, other->base.name); 888 884 return AUX_CH_NONE; 889 885 } 890 886 891 - drm_dbg_kms(&i915->drm, 887 + drm_dbg_kms(display->drm, 892 888 "[ENCODER:%d:%s] Using AUX CH %s (%s)\n", 893 889 encoder->base.base.id, encoder->base.name, 894 - aux_ch_name(i915, buf, sizeof(buf), aux_ch), source); 890 + aux_ch_name(display, buf, sizeof(buf), aux_ch), source); 895 891 896 892 return aux_ch; 897 893 } 898 894 899 - void intel_dp_aux_irq_handler(struct drm_i915_private *i915) 895 + void intel_dp_aux_irq_handler(struct intel_display *display) 900 896 { 901 - wake_up_all(&i915->display.gmbus.wait_queue); 897 + wake_up_all(&display->gmbus.wait_queue); 902 898 }
+2 -2
drivers/gpu/drm/i915/display/intel_dp_aux.h
··· 9 9 #include <linux/types.h> 10 10 11 11 enum aux_ch; 12 - struct drm_i915_private; 12 + struct intel_display; 13 13 struct intel_dp; 14 14 struct intel_encoder; 15 15 ··· 18 18 19 19 enum aux_ch intel_dp_aux_ch(struct intel_encoder *encoder); 20 20 21 - void intel_dp_aux_irq_handler(struct drm_i915_private *i915); 21 + void intel_dp_aux_irq_handler(struct intel_display *display); 22 22 u32 intel_dp_aux_pack(const u8 *src, int src_bytes); 23 23 int intel_dp_aux_fw_sync_len(struct intel_dp *intel_dp); 24 24
+4 -2
drivers/gpu/drm/i915/display/intel_hotplug_irq.c
··· 456 456 457 457 void i9xx_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_status) 458 458 { 459 + struct intel_display *display = &dev_priv->display; 459 460 u32 pin_mask = 0, long_mask = 0; 460 461 u32 hotplug_trigger; 461 462 ··· 478 477 if ((IS_G4X(dev_priv) || 479 478 IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) && 480 479 hotplug_status & DP_AUX_CHANNEL_MASK_INT_STATUS_G4X) 481 - intel_dp_aux_irq_handler(dev_priv); 480 + intel_dp_aux_irq_handler(display); 482 481 } 483 482 484 483 void ibx_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_trigger) ··· 514 513 515 514 void xelpdp_pica_irq_handler(struct drm_i915_private *i915, u32 iir) 516 515 { 516 + struct intel_display *display = &i915->display; 517 517 enum hpd_pin pin; 518 518 u32 hotplug_trigger = iir & (XELPDP_DP_ALT_HOTPLUG_MASK | XELPDP_TBT_HOTPLUG_MASK); 519 519 u32 trigger_aux = iir & XELPDP_AUX_TC_MASK; ··· 547 545 } 548 546 549 547 if (trigger_aux) 550 - intel_dp_aux_irq_handler(i915); 548 + intel_dp_aux_irq_handler(display); 551 549 552 550 if (!pin_mask && !trigger_aux) 553 551 drm_err(&i915->drm,