mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
drm/i915/vga: Convert VGA code to intel_display
struct intel_display will replace struct drm_i915_private as the main thing for display code. Convert the VGA code to use it (as much as possible at this stage). Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240906143306.15937-5-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
08648ad9b7
commit
4b6e05c43b
|
@ -221,7 +221,7 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
|
|||
|
||||
intel_bios_init(display);
|
||||
|
||||
ret = intel_vga_register(i915);
|
||||
ret = intel_vga_register(display);
|
||||
if (ret)
|
||||
goto cleanup_bios;
|
||||
|
||||
|
@ -275,7 +275,7 @@ cleanup_vga_client_pw_domain_dmc:
|
|||
intel_dmc_fini(i915);
|
||||
intel_power_domains_driver_remove(i915);
|
||||
cleanup_vga:
|
||||
intel_vga_unregister(i915);
|
||||
intel_vga_unregister(display);
|
||||
cleanup_bios:
|
||||
intel_bios_driver_remove(display);
|
||||
|
||||
|
@ -458,7 +458,7 @@ int intel_display_driver_probe_nogem(struct drm_i915_private *i915)
|
|||
intel_hti_init(display);
|
||||
|
||||
/* Just disable it once at startup */
|
||||
intel_vga_disable(i915);
|
||||
intel_vga_disable(display);
|
||||
intel_setup_outputs(i915);
|
||||
|
||||
ret = intel_dp_tunnel_mgr_init(display);
|
||||
|
@ -625,7 +625,7 @@ void intel_display_driver_remove_nogem(struct drm_i915_private *i915)
|
|||
|
||||
intel_power_domains_driver_remove(i915);
|
||||
|
||||
intel_vga_unregister(i915);
|
||||
intel_vga_unregister(display);
|
||||
|
||||
intel_bios_driver_remove(display);
|
||||
}
|
||||
|
@ -683,12 +683,13 @@ __intel_display_driver_resume(struct drm_i915_private *i915,
|
|||
struct drm_atomic_state *state,
|
||||
struct drm_modeset_acquire_ctx *ctx)
|
||||
{
|
||||
struct intel_display *display = &i915->display;
|
||||
struct drm_crtc_state *crtc_state;
|
||||
struct drm_crtc *crtc;
|
||||
int ret, i;
|
||||
|
||||
intel_modeset_setup_hw_state(i915, ctx);
|
||||
intel_vga_redisable(i915);
|
||||
intel_vga_redisable(display);
|
||||
|
||||
if (!state)
|
||||
return 0;
|
||||
|
|
|
@ -187,8 +187,10 @@ int intel_power_well_refcount(struct i915_power_well *power_well)
|
|||
static void hsw_power_well_post_enable(struct drm_i915_private *dev_priv,
|
||||
u8 irq_pipe_mask, bool has_vga)
|
||||
{
|
||||
struct intel_display *display = &dev_priv->display;
|
||||
|
||||
if (has_vga)
|
||||
intel_vga_reset_io_mem(dev_priv);
|
||||
intel_vga_reset_io_mem(display);
|
||||
|
||||
if (irq_pipe_mask)
|
||||
gen8_irq_power_well_post_enable(dev_priv, irq_pipe_mask);
|
||||
|
@ -1248,7 +1250,7 @@ static void vlv_display_power_well_init(struct drm_i915_private *dev_priv)
|
|||
intel_crt_reset(&encoder->base);
|
||||
}
|
||||
|
||||
intel_vga_redisable_power_on(dev_priv);
|
||||
intel_vga_redisable_power_on(display);
|
||||
|
||||
intel_pps_unlock_regs_wa(display);
|
||||
}
|
||||
|
|
|
@ -14,24 +14,26 @@
|
|||
#include "intel_de.h"
|
||||
#include "intel_vga.h"
|
||||
|
||||
static i915_reg_t intel_vga_cntrl_reg(struct drm_i915_private *i915)
|
||||
static i915_reg_t intel_vga_cntrl_reg(struct intel_display *display)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(display->drm);
|
||||
|
||||
if (IS_VALLEYVIEW(i915) || IS_CHERRYVIEW(i915))
|
||||
return VLV_VGACNTRL;
|
||||
else if (DISPLAY_VER(i915) >= 5)
|
||||
else if (DISPLAY_VER(display) >= 5)
|
||||
return CPU_VGACNTRL;
|
||||
else
|
||||
return VGACNTRL;
|
||||
}
|
||||
|
||||
/* Disable the VGA plane that we never use */
|
||||
void intel_vga_disable(struct drm_i915_private *dev_priv)
|
||||
void intel_vga_disable(struct intel_display *display)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
|
||||
i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
|
||||
struct pci_dev *pdev = to_pci_dev(display->drm->dev);
|
||||
i915_reg_t vga_reg = intel_vga_cntrl_reg(display);
|
||||
u8 sr1;
|
||||
|
||||
if (intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)
|
||||
if (intel_de_read(display, vga_reg) & VGA_DISP_DISABLE)
|
||||
return;
|
||||
|
||||
/* WaEnableVGAAccessThroughIOPort:ctg,elk,ilk,snb,ivb,vlv,hsw */
|
||||
|
@ -42,23 +44,24 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
|
|||
vga_put(pdev, VGA_RSRC_LEGACY_IO);
|
||||
udelay(300);
|
||||
|
||||
intel_de_write(dev_priv, vga_reg, VGA_DISP_DISABLE);
|
||||
intel_de_posting_read(dev_priv, vga_reg);
|
||||
intel_de_write(display, vga_reg, VGA_DISP_DISABLE);
|
||||
intel_de_posting_read(display, vga_reg);
|
||||
}
|
||||
|
||||
void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
|
||||
void intel_vga_redisable_power_on(struct intel_display *display)
|
||||
{
|
||||
i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
|
||||
i915_reg_t vga_reg = intel_vga_cntrl_reg(display);
|
||||
|
||||
if (!(intel_de_read(dev_priv, vga_reg) & VGA_DISP_DISABLE)) {
|
||||
drm_dbg_kms(&dev_priv->drm,
|
||||
if (!(intel_de_read(display, vga_reg) & VGA_DISP_DISABLE)) {
|
||||
drm_dbg_kms(display->drm,
|
||||
"Something enabled VGA plane, disabling it\n");
|
||||
intel_vga_disable(dev_priv);
|
||||
intel_vga_disable(display);
|
||||
}
|
||||
}
|
||||
|
||||
void intel_vga_redisable(struct drm_i915_private *i915)
|
||||
void intel_vga_redisable(struct intel_display *display)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(display->drm);
|
||||
intel_wakeref_t wakeref;
|
||||
|
||||
/*
|
||||
|
@ -74,14 +77,14 @@ void intel_vga_redisable(struct drm_i915_private *i915)
|
|||
if (!wakeref)
|
||||
return;
|
||||
|
||||
intel_vga_redisable_power_on(i915);
|
||||
intel_vga_redisable_power_on(display);
|
||||
|
||||
intel_display_power_put(i915, POWER_DOMAIN_VGA, wakeref);
|
||||
}
|
||||
|
||||
void intel_vga_reset_io_mem(struct drm_i915_private *i915)
|
||||
void intel_vga_reset_io_mem(struct intel_display *display)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
|
||||
struct pci_dev *pdev = to_pci_dev(display->drm->dev);
|
||||
|
||||
/*
|
||||
* After we re-enable the power well, if we touch VGA register 0x3d5
|
||||
|
@ -98,10 +101,10 @@ void intel_vga_reset_io_mem(struct drm_i915_private *i915)
|
|||
vga_put(pdev, VGA_RSRC_LEGACY_IO);
|
||||
}
|
||||
|
||||
int intel_vga_register(struct drm_i915_private *i915)
|
||||
int intel_vga_register(struct intel_display *display)
|
||||
{
|
||||
|
||||
struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
|
||||
struct pci_dev *pdev = to_pci_dev(display->drm->dev);
|
||||
int ret;
|
||||
|
||||
/*
|
||||
|
@ -119,9 +122,9 @@ int intel_vga_register(struct drm_i915_private *i915)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void intel_vga_unregister(struct drm_i915_private *i915)
|
||||
void intel_vga_unregister(struct intel_display *display)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(i915->drm.dev);
|
||||
struct pci_dev *pdev = to_pci_dev(display->drm->dev);
|
||||
|
||||
vga_client_unregister(pdev);
|
||||
}
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
#ifndef __INTEL_VGA_H__
|
||||
#define __INTEL_VGA_H__
|
||||
|
||||
struct drm_i915_private;
|
||||
struct intel_display;
|
||||
|
||||
void intel_vga_reset_io_mem(struct drm_i915_private *i915);
|
||||
void intel_vga_disable(struct drm_i915_private *i915);
|
||||
void intel_vga_redisable(struct drm_i915_private *i915);
|
||||
void intel_vga_redisable_power_on(struct drm_i915_private *i915);
|
||||
int intel_vga_register(struct drm_i915_private *i915);
|
||||
void intel_vga_unregister(struct drm_i915_private *i915);
|
||||
void intel_vga_reset_io_mem(struct intel_display *display);
|
||||
void intel_vga_disable(struct intel_display *display);
|
||||
void intel_vga_redisable(struct intel_display *display);
|
||||
void intel_vga_redisable_power_on(struct intel_display *display);
|
||||
int intel_vga_register(struct intel_display *display);
|
||||
void intel_vga_unregister(struct intel_display *display);
|
||||
|
||||
#endif /* __INTEL_VGA_H__ */
|
||||
|
|
|
@ -118,6 +118,7 @@ void i915_save_display(struct drm_i915_private *dev_priv)
|
|||
|
||||
void i915_restore_display(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct intel_display *display = &dev_priv->display;
|
||||
struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
|
||||
|
||||
if (!HAS_DISPLAY(dev_priv))
|
||||
|
@ -134,7 +135,7 @@ void i915_restore_display(struct drm_i915_private *dev_priv)
|
|||
intel_de_write(dev_priv, DSPARB(dev_priv),
|
||||
dev_priv->regfile.saveDSPARB);
|
||||
|
||||
intel_vga_redisable(dev_priv);
|
||||
intel_vga_redisable(display);
|
||||
|
||||
intel_gmbus_reset(dev_priv);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user