Skip to content

Commit 769b081

Browse files
committed
drm/i915/opregion: convert 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_opregion.[ch] to struct intel_display. v2: - Fix declarations for !CONFIG_ACPI (Imre, kernel test robot) - Pass encoder/connector directly to intel_display() (Imre) Reviewed-by: Imre Deak <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/aef94503909bbbf95f0244dc382a4d4cd050b903.1723213547.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <[email protected]>
1 parent b7f317e commit 769b081

File tree

9 files changed

+240
-208
lines changed

9 files changed

+240
-208
lines changed

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,9 @@ static int opregion_get_panel_type(struct drm_i915_private *i915,
622622
const struct intel_bios_encoder_data *devdata,
623623
const struct drm_edid *drm_edid, bool use_fallback)
624624
{
625-
return intel_opregion_get_panel_type(i915);
625+
struct intel_display *display = &i915->display;
626+
627+
return intel_opregion_get_panel_type(display);
626628
}
627629

628630
static int vbt_get_panel_type(struct drm_i915_private *i915,
@@ -3158,13 +3160,14 @@ static struct vbt_header *oprom_get_vbt(struct drm_i915_private *i915,
31583160
static const struct vbt_header *intel_bios_get_vbt(struct drm_i915_private *i915,
31593161
size_t *sizep)
31603162
{
3163+
struct intel_display *display = &i915->display;
31613164
const struct vbt_header *vbt = NULL;
31623165
intel_wakeref_t wakeref;
31633166

31643167
vbt = firmware_get_vbt(i915, sizep);
31653168

31663169
if (!vbt)
3167-
vbt = intel_opregion_get_vbt(i915, sizep);
3170+
vbt = intel_opregion_get_vbt(display, sizep);
31683171

31693172
/*
31703173
* If the OpRegion does not have VBT, look in SPI flash
@@ -3378,6 +3381,7 @@ bool intel_bios_is_tv_present(struct drm_i915_private *i915)
33783381
*/
33793382
bool intel_bios_is_lvds_present(struct drm_i915_private *i915, u8 *i2c_pin)
33803383
{
3384+
struct intel_display *display = &i915->display;
33813385
const struct intel_bios_encoder_data *devdata;
33823386

33833387
if (list_empty(&i915->display.vbt.display_devices))
@@ -3410,7 +3414,7 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *i915, u8 *i2c_pin)
34103414
* additional data. Trust that if the VBT was written into
34113415
* the OpRegion then they have validated the LVDS's existence.
34123416
*/
3413-
return intel_opregion_vbt_present(i915);
3417+
return intel_opregion_vbt_present(display);
34143418
}
34153419

34163420
return false;

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,6 +1049,7 @@ static const struct {
10491049

10501050
void intel_display_debugfs_register(struct drm_i915_private *i915)
10511051
{
1052+
struct intel_display *display = &i915->display;
10521053
struct drm_minor *minor = i915->drm.primary;
10531054
int i;
10541055

@@ -1067,9 +1068,9 @@ void intel_display_debugfs_register(struct drm_i915_private *i915)
10671068
intel_bios_debugfs_register(i915);
10681069
intel_cdclk_debugfs_register(i915);
10691070
intel_dmc_debugfs_register(i915);
1070-
intel_fbc_debugfs_register(&i915->display);
1071+
intel_fbc_debugfs_register(display);
10711072
intel_hpd_debugfs_register(i915);
1072-
intel_opregion_debugfs_register(i915);
1073+
intel_opregion_debugfs_register(display);
10731074
intel_psr_debugfs_register(i915);
10741075
intel_wm_debugfs_register(i915);
10751076
intel_display_debugfs_params(i915);

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,9 +1529,11 @@ void intel_display_device_info_print(const struct intel_display_device_info *inf
15291529
*/
15301530
bool intel_display_device_enabled(struct drm_i915_private *i915)
15311531
{
1532+
struct intel_display *display = &i915->display;
1533+
15321534
/* Only valid when HAS_DISPLAY() is true */
1533-
drm_WARN_ON(&i915->drm, !HAS_DISPLAY(i915));
1535+
drm_WARN_ON(display->drm, !HAS_DISPLAY(display));
15341536

1535-
return !i915->display.params.disable_display &&
1536-
!intel_opregion_headless_sku(i915);
1537+
return !display->params.disable_display &&
1538+
!intel_opregion_headless_sku(display);
15371539
}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ void intel_display_driver_register(struct drm_i915_private *i915)
535535
return;
536536

537537
/* Must be done after probing outputs */
538-
intel_opregion_register(i915);
538+
intel_opregion_register(display);
539539
intel_acpi_video_register(display);
540540

541541
intel_audio_init(i915);
@@ -626,6 +626,8 @@ void intel_display_driver_remove_nogem(struct drm_i915_private *i915)
626626

627627
void intel_display_driver_unregister(struct drm_i915_private *i915)
628628
{
629+
struct intel_display *display = &i915->display;
630+
629631
if (!HAS_DISPLAY(i915))
630632
return;
631633

@@ -645,7 +647,7 @@ void intel_display_driver_unregister(struct drm_i915_private *i915)
645647
drm_atomic_helper_shutdown(&i915->drm);
646648

647649
acpi_video_unregister();
648-
intel_opregion_unregister(i915);
650+
intel_opregion_unregister(display);
649651
}
650652

651653
/*

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

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,12 @@ void i915_disable_pipestat(struct drm_i915_private *dev_priv,
270270

271271
static bool i915_has_asle(struct drm_i915_private *i915)
272272
{
273+
struct intel_display *display = &i915->display;
274+
273275
if (!IS_PINEVIEW(i915) && !IS_MOBILE(i915))
274276
return false;
275277

276-
return intel_opregion_asle_present(i915);
278+
return intel_opregion_asle_present(display);
277279
}
278280

279281
/**
@@ -497,6 +499,8 @@ void i8xx_pipestat_irq_handler(struct drm_i915_private *dev_priv,
497499
void i915_pipestat_irq_handler(struct drm_i915_private *dev_priv,
498500
u32 iir, u32 pipe_stats[I915_MAX_PIPES])
499501
{
502+
struct intel_display *display = &dev_priv->display;
503+
500504
bool blc_event = false;
501505
enum pipe pipe;
502506

@@ -515,12 +519,13 @@ void i915_pipestat_irq_handler(struct drm_i915_private *dev_priv,
515519
}
516520

517521
if (blc_event || (iir & I915_ASLE_INTERRUPT))
518-
intel_opregion_asle_intr(dev_priv);
522+
intel_opregion_asle_intr(display);
519523
}
520524

521525
void i965_pipestat_irq_handler(struct drm_i915_private *dev_priv,
522526
u32 iir, u32 pipe_stats[I915_MAX_PIPES])
523527
{
528+
struct intel_display *display = &dev_priv->display;
524529
bool blc_event = false;
525530
enum pipe pipe;
526531

@@ -539,7 +544,7 @@ void i965_pipestat_irq_handler(struct drm_i915_private *dev_priv,
539544
}
540545

541546
if (blc_event || (iir & I915_ASLE_INTERRUPT))
542-
intel_opregion_asle_intr(dev_priv);
547+
intel_opregion_asle_intr(display);
543548

544549
if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
545550
intel_gmbus_irq_handler(dev_priv);
@@ -695,6 +700,7 @@ static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
695700

696701
void ilk_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
697702
{
703+
struct intel_display *display = &dev_priv->display;
698704
enum pipe pipe;
699705
u32 hotplug_trigger = de_iir & DE_DP_A_HOTPLUG;
700706

@@ -705,7 +711,7 @@ void ilk_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
705711
intel_dp_aux_irq_handler(dev_priv);
706712

707713
if (de_iir & DE_GSE)
708-
intel_opregion_asle_intr(dev_priv);
714+
intel_opregion_asle_intr(display);
709715

710716
if (de_iir & DE_POISON)
711717
drm_err(&dev_priv->drm, "Poison interrupt\n");
@@ -743,6 +749,7 @@ void ilk_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
743749

744750
void ivb_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
745751
{
752+
struct intel_display *display = &dev_priv->display;
746753
enum pipe pipe;
747754
u32 hotplug_trigger = de_iir & DE_DP_A_HOTPLUG_IVB;
748755

@@ -770,7 +777,7 @@ void ivb_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
770777
intel_dp_aux_irq_handler(dev_priv);
771778

772779
if (de_iir & DE_GSE_IVB)
773-
intel_opregion_asle_intr(dev_priv);
780+
intel_opregion_asle_intr(display);
774781

775782
for_each_pipe(dev_priv, pipe) {
776783
if (de_iir & DE_PIPE_VBLANK_IVB(pipe))
@@ -894,6 +901,7 @@ static void intel_pmdemand_irq_handler(struct drm_i915_private *dev_priv)
894901
static void
895902
gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
896903
{
904+
struct intel_display *display = &dev_priv->display;
897905
bool found = false;
898906

899907
if (DISPLAY_VER(dev_priv) >= 14) {
@@ -914,7 +922,7 @@ gen8_de_misc_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
914922
found = true;
915923
}
916924
} else if (iir & GEN8_DE_MISC_GSE) {
917-
intel_opregion_asle_intr(dev_priv);
925+
intel_opregion_asle_intr(display);
918926
found = true;
919927
}
920928

@@ -1218,8 +1226,10 @@ u32 gen11_gu_misc_irq_ack(struct drm_i915_private *i915, const u32 master_ctl)
12181226

12191227
void gen11_gu_misc_irq_handler(struct drm_i915_private *i915, const u32 iir)
12201228
{
1229+
struct intel_display *display = &i915->display;
1230+
12211231
if (iir & GEN11_GU_MISC_GSE)
1222-
intel_opregion_asle_intr(i915);
1232+
intel_opregion_asle_intr(display);
12231233
}
12241234

12251235
void gen11_display_irq_handler(struct drm_i915_private *i915)

0 commit comments

Comments
 (0)