diff mbox series

[RFC,5/7] drm/i915: Make WARN* device specific where drm_priv ptr is available

Message ID 20200106172326.32592-6-pankaj.laxminarayan.bharadiya@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: Convert WARN* to use device-specific variants | expand

Commit Message

Pankaj Bharadiya Jan. 6, 2020, 5:23 p.m. UTC
Device specific WARN* calls include device information in the
backtrace, so we know what device the warnings originate from.

Covert all the calls of WARN* with device specific dev_WARN*
variants in functions where drm_i915_private struct pointer is readily
available.

The conversion was done automatically with below coccinelle semantic
patch. checkpatch errors/warnings are fixed manually.

@rule1@
identifier func, T;
@@
func(...) {
...
struct drm_i915_private *T = ...;
+struct device *dev = i915_to_dev(T);
<+...
(
-WARN(
+dev_WARN(dev,
...)
|
-WARN_ON(
+dev_WARN_ON(dev,
...)
|
-WARN_ONCE(
+dev_WARN_ONCE(dev,
...)
|
-WARN_ON_ONCE(
+dev_WARN_ON_ONCE(dev,
...)
)
...+>
}

@rule2@
identifier func, T;
@@
func(struct drm_i915_private *T,...) {
+struct device *dev = i915_to_dev(T);
<+...
(
-WARN(
+dev_WARN(dev,
...)
|
-WARN_ON(
+dev_WARN_ON(dev,
...)
|
-WARN_ONCE(
+dev_WARN_ONCE(dev,
...)
|
-WARN_ON_ONCE(
+dev_WARN_ON_ONCE(dev,
...)
)
...+>
}

command: spatch --sp-file <script> --dir drivers/gpu/drm/i915 \
					--linux-spacing --in-place
Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
---
 drivers/gpu/drm/i915/display/icl_dsi.c        |  14 +-
 drivers/gpu/drm/i915/display/intel_atomic.c   |   8 +-
 drivers/gpu/drm/i915/display/intel_audio.c    |  23 ++-
 drivers/gpu/drm/i915/display/intel_bios.c     |  13 +-
 drivers/gpu/drm/i915/display/intel_bw.c       |   3 +-
 drivers/gpu/drm/i915/display/intel_cdclk.c    |  85 ++++----
 drivers/gpu/drm/i915/display/intel_color.c    |   4 +-
 .../gpu/drm/i915/display/intel_combo_phy.c    |   3 +-
 drivers/gpu/drm/i915/display/intel_crt.c      |  15 +-
 drivers/gpu/drm/i915/display/intel_ddi.c      | 102 ++++++----
 drivers/gpu/drm/i915/display/intel_display.c  | 180 ++++++++++-------
 .../drm/i915/display/intel_display_power.c    | 190 +++++++++++-------
 drivers/gpu/drm/i915/display/intel_dp.c       | 112 +++++++----
 drivers/gpu/drm/i915/display/intel_dp_mst.c   |  10 +-
 drivers/gpu/drm/i915/display/intel_dpio_phy.c |   3 +-
 drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  45 +++--
 drivers/gpu/drm/i915/display/intel_dsb.c      |   9 +-
 drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |   5 +-
 drivers/gpu/drm/i915/display/intel_fbc.c      |  30 ++-
 drivers/gpu/drm/i915/display/intel_gmbus.c    |   4 +-
 drivers/gpu/drm/i915/display/intel_hdcp.c     |  26 ++-
 drivers/gpu/drm/i915/display/intel_hdmi.c     |  47 +++--
 drivers/gpu/drm/i915/display/intel_hotplug.c  |   6 +-
 .../gpu/drm/i915/display/intel_lpe_audio.c    |   3 +-
 drivers/gpu/drm/i915/display/intel_lvds.c     |   3 +-
 drivers/gpu/drm/i915/display/intel_opregion.c |   8 +-
 drivers/gpu/drm/i915/display/intel_overlay.c  |  17 +-
 drivers/gpu/drm/i915/display/intel_panel.c    |  28 ++-
 drivers/gpu/drm/i915/display/intel_pipe_crc.c |   4 +-
 drivers/gpu/drm/i915/display/intel_psr.c      |  38 ++--
 drivers/gpu/drm/i915/display/intel_sdvo.c     |   8 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |   6 +-
 drivers/gpu/drm/i915/display/intel_tc.c       |  24 ++-
 drivers/gpu/drm/i915/display/intel_vdsc.c     |   3 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c        |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_pm.c        |   3 +-
 drivers/gpu/drm/i915/gem/i915_gem_shmem.c     |   4 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c  |  15 +-
 drivers/gpu/drm/i915/gem/i915_gem_stolen.c    |  15 +-
 drivers/gpu/drm/i915/gt/intel_engine_cs.c     |   9 +-
 drivers/gpu/drm/i915/gt/intel_engine_user.c   |   3 +-
 drivers/gpu/drm/i915/gt/intel_mocs.c          |   5 +-
 drivers/gpu/drm/i915/gt/intel_rc6.c           |   3 +-
 .../gpu/drm/i915/gt/intel_ring_submission.c   |   8 +-
 drivers/gpu/drm/i915/gt/intel_rps.c           |  23 ++-
 drivers/gpu/drm/i915/gt/intel_workarounds.c   |   3 +-
 drivers/gpu/drm/i915/gvt/aperture_gm.c        |   8 +-
 drivers/gpu/drm/i915/gvt/cmd_parser.c         |   5 +-
 drivers/gpu/drm/i915/gvt/display.c            |   3 +-
 drivers/gpu/drm/i915/gvt/dmabuf.c             |   5 +-
 drivers/gpu/drm/i915/gvt/edid.c               |   3 +-
 drivers/gpu/drm/i915/gvt/gvt.c                |   6 +-
 drivers/gpu/drm/i915/gvt/handlers.c           |   3 +-
 drivers/gpu/drm/i915/gvt/mmio_context.c       |   3 +-
 drivers/gpu/drm/i915/i915_drv.c               |  23 ++-
 drivers/gpu/drm/i915/i915_gem.c               |   9 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c           |   7 +-
 drivers/gpu/drm/i915/i915_irq.c               |  83 ++++----
 drivers/gpu/drm/i915/i915_pmu.c               |   9 +-
 drivers/gpu/drm/i915/intel_csr.c              |   7 +-
 drivers/gpu/drm/i915/intel_pch.c              |  65 +++---
 drivers/gpu/drm/i915/intel_pm.c               |  30 ++-
 drivers/gpu/drm/i915/intel_sideband.c         |   9 +-
 drivers/gpu/drm/i915/intel_uncore.c           |   3 +-
 64 files changed, 918 insertions(+), 536 deletions(-)

Comments

Jani Nikula Jan. 8, 2020, 12:52 p.m. UTC | #1
On Mon, 06 Jan 2020, Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com> wrote:
> Device specific WARN* calls include device information in the
> backtrace, so we know what device the warnings originate from.
>
> Covert all the calls of WARN* with device specific dev_WARN*
> variants in functions where drm_i915_private struct pointer is readily
> available.
>
> The conversion was done automatically with below coccinelle semantic
> patch. checkpatch errors/warnings are fixed manually.
>
> @rule1@
> identifier func, T;
> @@
> func(...) {
> ...
> struct drm_i915_private *T = ...;
> +struct device *dev = i915_to_dev(T);
> <+...
> (
> -WARN(
> +dev_WARN(dev,
> ...)
> |
> -WARN_ON(
> +dev_WARN_ON(dev,
> ...)
> |
> -WARN_ONCE(
> +dev_WARN_ONCE(dev,
> ...)
> |
> -WARN_ON_ONCE(
> +dev_WARN_ON_ONCE(dev,
> ...)
> )
> ...+>
> }
>
> @rule2@
> identifier func, T;
> @@
> func(struct drm_i915_private *T,...) {
> +struct device *dev = i915_to_dev(T);
> <+...
> (
> -WARN(
> +dev_WARN(dev,
> ...)
> |
> -WARN_ON(
> +dev_WARN_ON(dev,
> ...)
> |
> -WARN_ONCE(
> +dev_WARN_ONCE(dev,
> ...)
> |
> -WARN_ON_ONCE(
> +dev_WARN_ON_ONCE(dev,
> ...)
> )
> ...+>
> }
>
> command: spatch --sp-file <script> --dir drivers/gpu/drm/i915 \
> 					--linux-spacing --in-place
> Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> ---
>  drivers/gpu/drm/i915/display/icl_dsi.c        |  14 +-
>  drivers/gpu/drm/i915/display/intel_atomic.c   |   8 +-
>  drivers/gpu/drm/i915/display/intel_audio.c    |  23 ++-
>  drivers/gpu/drm/i915/display/intel_bios.c     |  13 +-
>  drivers/gpu/drm/i915/display/intel_bw.c       |   3 +-
>  drivers/gpu/drm/i915/display/intel_cdclk.c    |  85 ++++----
>  drivers/gpu/drm/i915/display/intel_color.c    |   4 +-
>  .../gpu/drm/i915/display/intel_combo_phy.c    |   3 +-
>  drivers/gpu/drm/i915/display/intel_crt.c      |  15 +-
>  drivers/gpu/drm/i915/display/intel_ddi.c      | 102 ++++++----
>  drivers/gpu/drm/i915/display/intel_display.c  | 180 ++++++++++-------
>  .../drm/i915/display/intel_display_power.c    | 190 +++++++++++-------
>  drivers/gpu/drm/i915/display/intel_dp.c       | 112 +++++++----
>  drivers/gpu/drm/i915/display/intel_dp_mst.c   |  10 +-
>  drivers/gpu/drm/i915/display/intel_dpio_phy.c |   3 +-
>  drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  45 +++--
>  drivers/gpu/drm/i915/display/intel_dsb.c      |   9 +-
>  drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |   5 +-
>  drivers/gpu/drm/i915/display/intel_fbc.c      |  30 ++-
>  drivers/gpu/drm/i915/display/intel_gmbus.c    |   4 +-
>  drivers/gpu/drm/i915/display/intel_hdcp.c     |  26 ++-
>  drivers/gpu/drm/i915/display/intel_hdmi.c     |  47 +++--
>  drivers/gpu/drm/i915/display/intel_hotplug.c  |   6 +-
>  .../gpu/drm/i915/display/intel_lpe_audio.c    |   3 +-
>  drivers/gpu/drm/i915/display/intel_lvds.c     |   3 +-
>  drivers/gpu/drm/i915/display/intel_opregion.c |   8 +-
>  drivers/gpu/drm/i915/display/intel_overlay.c  |  17 +-
>  drivers/gpu/drm/i915/display/intel_panel.c    |  28 ++-
>  drivers/gpu/drm/i915/display/intel_pipe_crc.c |   4 +-
>  drivers/gpu/drm/i915/display/intel_psr.c      |  38 ++--
>  drivers/gpu/drm/i915/display/intel_sdvo.c     |   8 +-
>  drivers/gpu/drm/i915/display/intel_sprite.c   |   6 +-
>  drivers/gpu/drm/i915/display/intel_tc.c       |  24 ++-
>  drivers/gpu/drm/i915/display/intel_vdsc.c     |   3 +-
>  drivers/gpu/drm/i915/display/vlv_dsi.c        |   3 +-
>  drivers/gpu/drm/i915/gem/i915_gem_pm.c        |   3 +-
>  drivers/gpu/drm/i915/gem/i915_gem_shmem.c     |   4 +-
>  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c  |  15 +-
>  drivers/gpu/drm/i915/gem/i915_gem_stolen.c    |  15 +-
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c     |   9 +-
>  drivers/gpu/drm/i915/gt/intel_engine_user.c   |   3 +-
>  drivers/gpu/drm/i915/gt/intel_mocs.c          |   5 +-
>  drivers/gpu/drm/i915/gt/intel_rc6.c           |   3 +-
>  .../gpu/drm/i915/gt/intel_ring_submission.c   |   8 +-
>  drivers/gpu/drm/i915/gt/intel_rps.c           |  23 ++-
>  drivers/gpu/drm/i915/gt/intel_workarounds.c   |   3 +-
>  drivers/gpu/drm/i915/gvt/aperture_gm.c        |   8 +-
>  drivers/gpu/drm/i915/gvt/cmd_parser.c         |   5 +-
>  drivers/gpu/drm/i915/gvt/display.c            |   3 +-
>  drivers/gpu/drm/i915/gvt/dmabuf.c             |   5 +-
>  drivers/gpu/drm/i915/gvt/edid.c               |   3 +-
>  drivers/gpu/drm/i915/gvt/gvt.c                |   6 +-
>  drivers/gpu/drm/i915/gvt/handlers.c           |   3 +-
>  drivers/gpu/drm/i915/gvt/mmio_context.c       |   3 +-
>  drivers/gpu/drm/i915/i915_drv.c               |  23 ++-
>  drivers/gpu/drm/i915/i915_gem.c               |   9 +-
>  drivers/gpu/drm/i915/i915_gem_gtt.c           |   7 +-
>  drivers/gpu/drm/i915/i915_irq.c               |  83 ++++----
>  drivers/gpu/drm/i915/i915_pmu.c               |   9 +-
>  drivers/gpu/drm/i915/intel_csr.c              |   7 +-
>  drivers/gpu/drm/i915/intel_pch.c              |  65 +++---
>  drivers/gpu/drm/i915/intel_pm.c               |  30 ++-
>  drivers/gpu/drm/i915/intel_sideband.c         |   9 +-
>  drivers/gpu/drm/i915/intel_uncore.c           |   3 +-
>  64 files changed, 918 insertions(+), 536 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> index 8435bc5a7a74..8648569793f6 100644
> --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> @@ -345,10 +345,11 @@ static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder,
>  static void get_dsi_io_power_domains(struct drm_i915_private *dev_priv,
>  				     struct intel_dsi *intel_dsi)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);

Please don't add the extra local variables. See the replies to previous
patches, and use dev_priv->drm.dev or just &dev_priv->drm.

Also we usually have struct drm_device *dev, almost never struct device
*dev, so these will inevitably conflict.

BR,
Jani.

>  	enum port port;
>  
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		WARN_ON(intel_dsi->io_wakeref[port]);
> +		dev_WARN_ON(dev, intel_dsi->io_wakeref[port]);
>  		intel_dsi->io_wakeref[port] =
>  			intel_display_power_get(dev_priv,
>  						port == PORT_A ?
> @@ -1334,6 +1335,7 @@ static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
>  					struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
>  	int dsc_max_bpc = INTEL_GEN(dev_priv) >= 12 ? 12 : 10;
>  	bool use_dsc;
> @@ -1357,11 +1359,11 @@ static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
>  		return ret;
>  
>  	/* DSI specific sanity checks on the common code */
> -	WARN_ON(vdsc_cfg->vbr_enable);
> -	WARN_ON(vdsc_cfg->simple_422);
> -	WARN_ON(vdsc_cfg->pic_width % vdsc_cfg->slice_width);
> -	WARN_ON(vdsc_cfg->slice_height < 8);
> -	WARN_ON(vdsc_cfg->pic_height % vdsc_cfg->slice_height);
> +	dev_WARN_ON(dev, vdsc_cfg->vbr_enable);
> +	dev_WARN_ON(dev, vdsc_cfg->simple_422);
> +	dev_WARN_ON(dev, vdsc_cfg->pic_width % vdsc_cfg->slice_width);
> +	dev_WARN_ON(dev, vdsc_cfg->slice_height < 8);
> +	dev_WARN_ON(dev, vdsc_cfg->pic_height % vdsc_cfg->slice_height);
>  
>  	ret = drm_dsc_compute_rc_parameters(vdsc_cfg);
>  	if (ret)
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
> index 0eb973f65977..ecc18390cf47 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic.c
> @@ -297,6 +297,7 @@ static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
>  				      int *scaler_id)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int j;
>  	u32 mode;
>  
> @@ -312,7 +313,8 @@ static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
>  		}
>  	}
>  
> -	if (WARN(*scaler_id < 0, "Cannot find scaler for %s:%d\n", name, idx))
> +	if (dev_WARN(dev, *scaler_id < 0,
> +		     "Cannot find scaler for %s:%d\n", name, idx))
>  		return;
>  
>  	/* set scaler mode */
> @@ -381,6 +383,7 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
>  			       struct intel_crtc *intel_crtc,
>  			       struct intel_crtc_state *crtc_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct drm_plane *plane = NULL;
>  	struct intel_plane *intel_plane;
>  	struct intel_plane_state *plane_state = NULL;
> @@ -463,7 +466,8 @@ int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
>  			idx = plane->base.id;
>  
>  			/* plane on different crtc cannot be a scaler user of this crtc */
> -			if (WARN_ON(intel_plane->pipe != intel_crtc->pipe))
> +			if (dev_WARN_ON(dev,
> +					intel_plane->pipe != intel_crtc->pipe))
>  				continue;
>  
>  			plane_state = intel_atomic_get_new_plane_state(intel_state,
> diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
> index 27710098d056..0221c954f09d 100644
> --- a/drivers/gpu/drm/i915/display/intel_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_audio.c
> @@ -555,6 +555,7 @@ static void ilk_audio_codec_disable(struct intel_encoder *encoder,
>  				    const struct drm_connector_state *old_conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>  	enum pipe pipe = crtc->pipe;
>  	enum port port = encoder->port;
> @@ -565,7 +566,7 @@ static void ilk_audio_codec_disable(struct intel_encoder *encoder,
>  		      encoder->base.base.id, encoder->base.name,
>  		      pipe_name(pipe));
>  
> -	if (WARN_ON(port == PORT_A))
> +	if (dev_WARN_ON(dev, port == PORT_A))
>  		return;
>  
>  	if (HAS_PCH_IBX(dev_priv)) {
> @@ -602,6 +603,7 @@ static void ilk_audio_codec_enable(struct intel_encoder *encoder,
>  				   const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_connector *connector = conn_state->connector;
>  	enum pipe pipe = crtc->pipe;
> @@ -615,7 +617,7 @@ static void ilk_audio_codec_enable(struct intel_encoder *encoder,
>  		      encoder->base.base.id, encoder->base.name,
>  		      pipe_name(pipe), drm_eld_size(eld));
>  
> -	if (WARN_ON(port == PORT_A))
> +	if (dev_WARN_ON(dev, port == PORT_A))
>  		return;
>  
>  	/*
> @@ -803,13 +805,14 @@ void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
>  static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
>  				  bool enable)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct drm_modeset_acquire_ctx ctx;
>  	struct drm_atomic_state *state;
>  	int ret;
>  
>  	drm_modeset_acquire_init(&ctx, 0);
>  	state = drm_atomic_state_alloc(&dev_priv->drm);
> -	if (WARN_ON(!state))
> +	if (dev_WARN_ON(dev, !state))
>  		return;
>  
>  	state->acquire_ctx = &ctx;
> @@ -830,7 +833,7 @@ static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
>  		goto retry;
>  	}
>  
> -	WARN_ON(ret);
> +	dev_WARN_ON(dev, ret);
>  
>  	drm_atomic_state_put(state);
>  
> @@ -916,8 +919,9 @@ static void i915_audio_component_codec_wake_override(struct device *kdev,
>  static int i915_audio_component_get_cdclk_freq(struct device *kdev)
>  {
>  	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
> -	if (WARN_ON_ONCE(!HAS_DDI(dev_priv)))
> +	if (dev_WARN_ON_ONCE(dev, !HAS_DDI(dev_priv)))
>  		return -ENODEV;
>  
>  	return dev_priv->cdclk.hw.cdclk;
> @@ -936,11 +940,12 @@ static int i915_audio_component_get_cdclk_freq(struct device *kdev)
>  static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv,
>  					       int port, int pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_encoder *encoder;
>  
>  	/* MST */
>  	if (pipe >= 0) {
> -		if (WARN_ON(pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
> +		if (dev_WARN_ON(dev, pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
>  			return NULL;
>  
>  		encoder = dev_priv->av_enc_map[pipe];
> @@ -1055,12 +1060,14 @@ static int i915_audio_component_bind(struct device *i915_kdev,
>  {
>  	struct i915_audio_component *acomp = data;
>  	struct drm_i915_private *dev_priv = kdev_to_i915(i915_kdev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int i;
>  
> -	if (WARN_ON(acomp->base.ops || acomp->base.dev))
> +	if (dev_WARN_ON(dev, acomp->base.ops || acomp->base.dev))
>  		return -EEXIST;
>  
> -	if (WARN_ON(!device_link_add(hda_kdev, i915_kdev, DL_FLAG_STATELESS)))
> +	if (dev_WARN_ON(dev, !device_link_add(hda_kdev, i915_kdev,
> +					      DL_FLAG_STATELESS)))
>  		return -ENOMEM;
>  
>  	drm_modeset_lock_all(&dev_priv->drm);
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 8beac06e3f10..de6bc97a81ba 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -215,6 +215,7 @@ static void
>  parse_panel_options(struct drm_i915_private *dev_priv,
>  		    const struct bdb_header *bdb)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct bdb_lvds_options *lvds_options;
>  	int panel_type;
>  	int drrs_mode;
> @@ -228,7 +229,7 @@ parse_panel_options(struct drm_i915_private *dev_priv,
>  
>  	ret = intel_opregion_get_panel_type(dev_priv);
>  	if (ret >= 0) {
> -		WARN_ON(ret > 0xf);
> +		dev_WARN_ON(dev, ret > 0xf);
>  		panel_type = ret;
>  		DRM_DEBUG_KMS("Panel type: %d (OpRegion)\n", panel_type);
>  	} else {
> @@ -1215,10 +1216,11 @@ static int goto_next_sequence_v3(const u8 *data, int index, int total)
>   */
>  static int get_init_otp_deassert_fragment_len(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const u8 *data = dev_priv->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP];
>  	int index, len;
>  
> -	if (WARN_ON(!data || dev_priv->vbt.dsi.seq_version != 1))
> +	if (dev_WARN_ON(dev, !data || dev_priv->vbt.dsi.seq_version != 1))
>  		return 0;
>  
>  	/* index = 1 to skip sequence byte */
> @@ -2220,6 +2222,7 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin)
>   */
>  bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct display_device_data *devdata;
>  	const struct child_device_config *child;
>  	static const struct {
> @@ -2242,7 +2245,8 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por
>  	}
>  
>  	/* FIXME maybe deal with port A as well? */
> -	if (WARN_ON(port == PORT_A) || port >= ARRAY_SIZE(port_mapping))
> +	if (dev_WARN_ON(dev, port == PORT_A) ||
> +	    port >= ARRAY_SIZE(port_mapping))
>  		return false;
>  
>  	list_for_each_entry(devdata, &dev_priv->vbt.display_devices, node) {
> @@ -2488,10 +2492,11 @@ bool
>  intel_bios_is_port_hpd_inverted(const struct drm_i915_private *i915,
>  				enum port port)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	const struct child_device_config *child =
>  		i915->vbt.ddi_port_info[port].child;
>  
> -	if (WARN_ON_ONCE(!IS_GEN9_LP(i915)))
> +	if (dev_WARN_ON_ONCE(dev, !IS_GEN9_LP(i915)))
>  		return false;
>  
>  	return child && child->hpd_invert;
> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> index b228671d5a5d..ec9419373fc2 100644
> --- a/drivers/gpu/drm/i915/display/intel_bw.c
> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> @@ -116,13 +116,14 @@ static int icl_pcode_read_qgv_point_info(struct drm_i915_private *dev_priv,
>  static int icl_get_qgv_points(struct drm_i915_private *dev_priv,
>  			      struct intel_qgv_info *qi)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int i, ret;
>  
>  	ret = icl_pcode_read_mem_global_info(dev_priv, qi);
>  	if (ret)
>  		return ret;
>  
> -	if (WARN_ON(qi->num_points > ARRAY_SIZE(qi->points)))
> +	if (dev_WARN_ON(dev, qi->num_points > ARRAY_SIZE(qi->points)))
>  		qi->num_points = ARRAY_SIZE(qi->points);
>  
>  	for (i = 0; i < qi->num_points; i++) {
> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
> index 7d1ab1e5b7c3..ee884e3ec2e1 100644
> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c
> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
> @@ -489,6 +489,7 @@ static void vlv_get_cdclk(struct drm_i915_private *dev_priv,
>  
>  static void vlv_program_pfi_credits(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	unsigned int credits, default_credits;
>  
>  	if (IS_CHERRYVIEW(dev_priv))
> @@ -520,7 +521,7 @@ static void vlv_program_pfi_credits(struct drm_i915_private *dev_priv)
>  	 * FIXME is this guaranteed to clear
>  	 * immediately or should we poll for it?
>  	 */
> -	WARN_ON(I915_READ(GCI_CONTROL) & PFI_CREDIT_RESEND);
> +	dev_WARN_ON(dev, I915_READ(GCI_CONTROL) & PFI_CREDIT_RESEND);
>  }
>  
>  static void vlv_set_cdclk(struct drm_i915_private *dev_priv,
> @@ -715,16 +716,18 @@ static void bdw_set_cdclk(struct drm_i915_private *dev_priv,
>  			  const struct intel_cdclk_state *cdclk_state,
>  			  enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int cdclk = cdclk_state->cdclk;
>  	u32 val;
>  	int ret;
>  
> -	if (WARN((I915_READ(LCPLL_CTL) &
> -		  (LCPLL_PLL_DISABLE | LCPLL_PLL_LOCK |
> -		   LCPLL_CD_CLOCK_DISABLE | LCPLL_ROOT_CD_CLOCK_DISABLE |
> -		   LCPLL_CD2X_CLOCK_DISABLE | LCPLL_POWER_DOWN_ALLOW |
> -		   LCPLL_CD_SOURCE_FCLK)) != LCPLL_PLL_LOCK,
> -		 "trying to change cdclk frequency with cdclk not enabled\n"))
> +	if (dev_WARN(dev, (I915_READ(LCPLL_CTL) &
> +			   (LCPLL_PLL_DISABLE | LCPLL_PLL_LOCK |
> +			    LCPLL_CD_CLOCK_DISABLE |
> +			    LCPLL_ROOT_CD_CLOCK_DISABLE |
> +			    LCPLL_CD2X_CLOCK_DISABLE | LCPLL_POWER_DOWN_ALLOW |
> +			    LCPLL_CD_SOURCE_FCLK)) != LCPLL_PLL_LOCK,
> +		     "trying to change cdclk frequency with cdclk not enabled\n"))
>  		return;
>  
>  	ret = sandybridge_pcode_write(dev_priv,
> @@ -823,6 +826,7 @@ static u8 skl_calc_voltage_level(int cdclk)
>  static void skl_dpll0_update(struct drm_i915_private *dev_priv,
>  			     struct intel_cdclk_state *cdclk_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
>  	cdclk_state->ref = 24000;
> @@ -832,15 +836,15 @@ static void skl_dpll0_update(struct drm_i915_private *dev_priv,
>  	if ((val & LCPLL_PLL_ENABLE) == 0)
>  		return;
>  
> -	if (WARN_ON((val & LCPLL_PLL_LOCK) == 0))
> +	if (dev_WARN_ON(dev, (val & LCPLL_PLL_LOCK) == 0))
>  		return;
>  
>  	val = I915_READ(DPLL_CTRL1);
>  
> -	if (WARN_ON((val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
> -			    DPLL_CTRL1_SSC(SKL_DPLL0) |
> -			    DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
> -		    DPLL_CTRL1_OVERRIDE(SKL_DPLL0)))
> +	if (dev_WARN_ON(dev, (val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
> +				     DPLL_CTRL1_SSC(SKL_DPLL0) |
> +				     DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
> +			DPLL_CTRL1_OVERRIDE(SKL_DPLL0)))
>  		return;
>  
>  	switch (val & DPLL_CTRL1_LINK_RATE_MASK(SKL_DPLL0)) {
> @@ -940,9 +944,10 @@ static void skl_set_preferred_cdclk_vco(struct drm_i915_private *dev_priv,
>  
>  static void skl_dpll0_enable(struct drm_i915_private *dev_priv, int vco)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
> -	WARN_ON(vco != 8100000 && vco != 8640000);
> +	dev_WARN_ON(dev, vco != 8100000 && vco != 8640000);
>  
>  	/*
>  	 * We always enable DPLL0 with the lowest link rate possible, but still
> @@ -992,6 +997,7 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv,
>  			  const struct intel_cdclk_state *cdclk_state,
>  			  enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int cdclk = cdclk_state->cdclk;
>  	int vco = cdclk_state->vco;
>  	u32 freq_select, cdclk_ctl;
> @@ -1005,7 +1011,7 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv,
>  	 * use the corresponding VCO freq as that always leads to using the
>  	 * minimum 308MHz CDCLK.
>  	 */
> -	WARN_ON_ONCE(IS_SKYLAKE(dev_priv) && vco == 8640000);
> +	dev_WARN_ON_ONCE(dev, IS_SKYLAKE(dev_priv) && vco == 8640000);
>  
>  	ret = skl_pcode_request(dev_priv, SKL_PCODE_CDCLK_CONTROL,
>  				SKL_CDCLK_PREPARE_FOR_CHANGE,
> @@ -1020,8 +1026,8 @@ static void skl_set_cdclk(struct drm_i915_private *dev_priv,
>  	/* Choose frequency for this cdclk */
>  	switch (cdclk) {
>  	default:
> -		WARN_ON(cdclk != dev_priv->cdclk.hw.bypass);
> -		WARN_ON(vco != 0);
> +		dev_WARN_ON(dev, cdclk != dev_priv->cdclk.hw.bypass);
> +		dev_WARN_ON(dev, vco != 0);
>  		/* fall through */
>  	case 308571:
>  	case 337500:
> @@ -1215,6 +1221,7 @@ static const struct intel_cdclk_vals icl_cdclk_table[] = {
>  
>  static int bxt_calc_cdclk(struct drm_i915_private *dev_priv, int min_cdclk)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct intel_cdclk_vals *table = dev_priv->cdclk.table;
>  	int i;
>  
> @@ -1223,13 +1230,14 @@ static int bxt_calc_cdclk(struct drm_i915_private *dev_priv, int min_cdclk)
>  		    table[i].cdclk >= min_cdclk)
>  			return table[i].cdclk;
>  
> -	WARN(1, "Cannot satisfy minimum cdclk %d with refclk %u\n",
> -	     min_cdclk, dev_priv->cdclk.hw.ref);
> +	dev_WARN(dev, 1, "Cannot satisfy minimum cdclk %d with refclk %u\n",
> +		 min_cdclk, dev_priv->cdclk.hw.ref);
>  	return 0;
>  }
>  
>  static int bxt_calc_cdclk_pll_vco(struct drm_i915_private *dev_priv, int cdclk)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct intel_cdclk_vals *table = dev_priv->cdclk.table;
>  	int i;
>  
> @@ -1241,8 +1249,8 @@ static int bxt_calc_cdclk_pll_vco(struct drm_i915_private *dev_priv, int cdclk)
>  		    table[i].cdclk == cdclk)
>  			return dev_priv->cdclk.hw.ref * table[i].ratio;
>  
> -	WARN(1, "cdclk %d not valid for refclk %u\n",
> -	     cdclk, dev_priv->cdclk.hw.ref);
> +	dev_WARN(dev, 1, "cdclk %d not valid for refclk %u\n",
> +		 cdclk, dev_priv->cdclk.hw.ref);
>  	return 0;
>  }
>  
> @@ -1351,6 +1359,7 @@ static void bxt_de_pll_readout(struct drm_i915_private *dev_priv,
>  static void bxt_get_cdclk(struct drm_i915_private *dev_priv,
>  			  struct intel_cdclk_state *cdclk_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 divider;
>  	int div;
>  
> @@ -1375,15 +1384,17 @@ static void bxt_get_cdclk(struct drm_i915_private *dev_priv,
>  		div = 2;
>  		break;
>  	case BXT_CDCLK_CD2X_DIV_SEL_1_5:
> -		WARN(IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
> -		     "Unsupported divider\n");
> +		dev_WARN(dev,
> +			 IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
> +			 "Unsupported divider\n");
>  		div = 3;
>  		break;
>  	case BXT_CDCLK_CD2X_DIV_SEL_2:
>  		div = 4;
>  		break;
>  	case BXT_CDCLK_CD2X_DIV_SEL_4:
> -		WARN(INTEL_GEN(dev_priv) >= 10, "Unsupported divider\n");
> +		dev_WARN(dev, INTEL_GEN(dev_priv) >= 10,
> +			 "Unsupported divider\n");
>  		div = 8;
>  		break;
>  	default:
> @@ -1491,6 +1502,7 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
>  			  const struct intel_cdclk_state *cdclk_state,
>  			  enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int cdclk = cdclk_state->cdclk;
>  	int vco = cdclk_state->vco;
>  	u32 val, divider;
> @@ -1520,22 +1532,24 @@ static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
>  	/* cdclk = vco / 2 / div{1,1.5,2,4} */
>  	switch (DIV_ROUND_CLOSEST(vco, cdclk)) {
>  	default:
> -		WARN_ON(cdclk != dev_priv->cdclk.hw.bypass);
> -		WARN_ON(vco != 0);
> +		dev_WARN_ON(dev, cdclk != dev_priv->cdclk.hw.bypass);
> +		dev_WARN_ON(dev, vco != 0);
>  		/* fall through */
>  	case 2:
>  		divider = BXT_CDCLK_CD2X_DIV_SEL_1;
>  		break;
>  	case 3:
> -		WARN(IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
> -		     "Unsupported divider\n");
> +		dev_WARN(dev,
> +			 IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
> +			 "Unsupported divider\n");
>  		divider = BXT_CDCLK_CD2X_DIV_SEL_1_5;
>  		break;
>  	case 4:
>  		divider = BXT_CDCLK_CD2X_DIV_SEL_2;
>  		break;
>  	case 8:
> -		WARN(INTEL_GEN(dev_priv) >= 10, "Unsupported divider\n");
> +		dev_WARN(dev, INTEL_GEN(dev_priv) >= 10,
> +			 "Unsupported divider\n");
>  		divider = BXT_CDCLK_CD2X_DIV_SEL_4;
>  		break;
>  	}
> @@ -1845,18 +1859,19 @@ static void intel_set_cdclk(struct drm_i915_private *dev_priv,
>  			    const struct intel_cdclk_state *cdclk_state,
>  			    enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (!intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state))
>  		return;
>  
> -	if (WARN_ON_ONCE(!dev_priv->display.set_cdclk))
> +	if (dev_WARN_ON_ONCE(dev, !dev_priv->display.set_cdclk))
>  		return;
>  
>  	intel_dump_cdclk_state(cdclk_state, "Changing CDCLK to");
>  
>  	dev_priv->display.set_cdclk(dev_priv, cdclk_state, pipe);
>  
> -	if (WARN(intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state),
> -		 "cdclk state doesn't match!\n")) {
> +	if (dev_WARN(dev, intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state),
> +		     "cdclk state doesn't match!\n")) {
>  		intel_dump_cdclk_state(&dev_priv->cdclk.hw, "[hw state]");
>  		intel_dump_cdclk_state(cdclk_state, "[sw state]");
>  	}
> @@ -2428,6 +2443,7 @@ static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv)
>   */
>  void intel_update_max_cdclk(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (IS_ELKHARTLAKE(dev_priv)) {
>  		if (dev_priv->cdclk.hw.ref == 24000)
>  			dev_priv->max_cdclk_freq = 552000;
> @@ -2445,7 +2461,7 @@ void intel_update_max_cdclk(struct drm_i915_private *dev_priv)
>  		int max_cdclk, vco;
>  
>  		vco = dev_priv->skl_preferred_vco_freq;
> -		WARN_ON(vco != 8100000 && vco != 8640000);
> +		dev_WARN_ON(dev, vco != 8100000 && vco != 8640000);
>  
>  		/*
>  		 * Use the lower (vco 8640) cdclk values as a
> @@ -2617,6 +2633,7 @@ void intel_update_rawclk(struct drm_i915_private *dev_priv)
>   */
>  void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (IS_ELKHARTLAKE(dev_priv)) {
>  		dev_priv->display.set_cdclk = bxt_set_cdclk;
>  		dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk;
> @@ -2697,8 +2714,8 @@ void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
>  	else if (IS_I845G(dev_priv))
>  		dev_priv->display.get_cdclk = fixed_200mhz_get_cdclk;
>  	else { /* 830 */
> -		WARN(!IS_I830(dev_priv),
> -		     "Unknown platform. Assuming 133 MHz CDCLK\n");
> +		dev_WARN(dev, !IS_I830(dev_priv),
> +			 "Unknown platform. Assuming 133 MHz CDCLK\n");
>  		dev_priv->display.get_cdclk = fixed_133mhz_get_cdclk;
>  	}
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
> index 3980e8b50c28..4a38b53b1e2b 100644
> --- a/drivers/gpu/drm/i915/display/intel_color.c
> +++ b/drivers/gpu/drm/i915/display/intel_color.c
> @@ -272,6 +272,7 @@ static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	bool limited_color_range = ilk_csc_limited_range(crtc_state);
>  
>  	if (crtc_state->hw.ctm) {
> @@ -297,7 +298,8 @@ static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)
>  		 * LUT is needed but CSC is not we need to load an
>  		 * identity matrix.
>  		 */
> -		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_GEMINILAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
> +			    !IS_GEMINILAKE(dev_priv));
>  
>  		ilk_update_pipe_csc(crtc, ilk_csc_off_zero,
>  				    ilk_csc_coeff_identity,
> diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.c b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> index 44bbc7e74fc3..011610a9bcd4 100644
> --- a/drivers/gpu/drm/i915/display/intel_combo_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_combo_phy.c
> @@ -215,11 +215,12 @@ void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv,
>  				    enum phy phy, bool is_dsi,
>  				    int lane_count, bool lane_reversal)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u8 lane_mask;
>  	u32 val;
>  
>  	if (is_dsi) {
> -		WARN_ON(lane_reversal);
> +		dev_WARN_ON(dev, lane_reversal);
>  
>  		switch (lane_count) {
>  		case 1:
> diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
> index cbe5978e7fb5..5aa3a69f5ec6 100644
> --- a/drivers/gpu/drm/i915/display/intel_crt.c
> +++ b/drivers/gpu/drm/i915/display/intel_crt.c
> @@ -229,8 +229,9 @@ static void hsw_disable_crt(struct intel_encoder *encoder,
>  			    const struct drm_connector_state *old_conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
> -	WARN_ON(!old_crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, !old_crtc_state->has_pch_encoder);
>  
>  	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, false);
>  }
> @@ -240,6 +241,7 @@ static void hsw_post_disable_crt(struct intel_encoder *encoder,
>  				 const struct drm_connector_state *old_conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	intel_crtc_vblank_off(old_crtc_state);
>  
> @@ -258,7 +260,7 @@ static void hsw_post_disable_crt(struct intel_encoder *encoder,
>  
>  	intel_ddi_fdi_post_disable(encoder, old_crtc_state, old_conn_state);
>  
> -	WARN_ON(!old_crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, !old_crtc_state->has_pch_encoder);
>  
>  	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, true);
>  }
> @@ -268,8 +270,9 @@ static void hsw_pre_pll_enable_crt(struct intel_encoder *encoder,
>  				   const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
> -	WARN_ON(!crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
>  
>  	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, false);
>  }
> @@ -279,10 +282,11 @@ static void hsw_pre_enable_crt(struct intel_encoder *encoder,
>  			       const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	enum pipe pipe = crtc->pipe;
>  
> -	WARN_ON(!crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
>  
>  	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
>  
> @@ -296,10 +300,11 @@ static void hsw_enable_crt(struct intel_encoder *encoder,
>  			   const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	enum pipe pipe = crtc->pipe;
>  
> -	WARN_ON(!crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
>  
>  	intel_crt_set_dpms(encoder, crtc_state, DRM_MODE_DPMS_ON);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
> index 5832faf74fdf..8f635637d61e 100644
> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
> @@ -903,6 +903,7 @@ icl_get_combo_buf_trans(struct drm_i915_private *dev_priv, int type, int rate,
>  
>  static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct ddi_vbt_port_info *port_info = &dev_priv->vbt.ddi_port_info[port];
>  	int n_entries, level, default_entry;
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
> @@ -937,11 +938,11 @@ static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
>  		intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
>  		default_entry = 6;
>  	} else {
> -		WARN(1, "ddi translation table missing\n");
> +		dev_WARN(dev, 1, "ddi translation table missing\n");
>  		return 0;
>  	}
>  
> -	if (WARN_ON_ONCE(n_entries == 0))
> +	if (dev_WARN_ON_ONCE(dev, n_entries == 0))
>  		return 0;
>  
>  	if (port_info->hdmi_level_shift_set)
> @@ -949,7 +950,7 @@ static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
>  	else
>  		level = default_entry;
>  
> -	if (WARN_ON_ONCE(level >= n_entries))
> +	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
>  		level = n_entries - 1;
>  
>  	return level;
> @@ -1001,6 +1002,7 @@ static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder,
>  					   int level)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 iboost_bit = 0;
>  	int n_entries;
>  	enum port port = encoder->port;
> @@ -1008,9 +1010,9 @@ static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder,
>  
>  	ddi_translations = intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
>  
> -	if (WARN_ON_ONCE(!ddi_translations))
> +	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
>  		return;
> -	if (WARN_ON_ONCE(level >= n_entries))
> +	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
>  		level = n_entries - 1;
>  
>  	/* If we're boosting the current, set bit 31 of trans1 */
> @@ -1113,6 +1115,7 @@ void hsw_fdi_link_train(struct intel_encoder *encoder,
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 temp, i, rx_ctl_val, ddi_pll_sel;
>  
>  	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
> @@ -1143,7 +1146,7 @@ void hsw_fdi_link_train(struct intel_encoder *encoder,
>  	/* Configure Port Clock Select */
>  	ddi_pll_sel = hsw_pll_to_ddi_pll_sel(crtc_state->shared_dpll);
>  	I915_WRITE(PORT_CLK_SEL(PORT_E), ddi_pll_sel);
> -	WARN_ON(ddi_pll_sel != PORT_CLK_SEL_SPLL);
> +	dev_WARN_ON(dev, ddi_pll_sel != PORT_CLK_SEL_SPLL);
>  
>  	/* Start the training iterating through available voltages and emphasis,
>  	 * testing each value twice. */
> @@ -1373,6 +1376,7 @@ static int skl_calc_wrpll_link(const struct intel_dpll_hw_state *pll_state)
>  int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv,
>  			struct intel_dpll_hw_state *pll_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 p0, p1, p2, dco_freq, ref_clock;
>  
>  	p0 = pll_state->cfgcr1 & DPLL_CFGCR1_PDIV_MASK;
> @@ -1420,7 +1424,7 @@ int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv,
>  	dco_freq += (((pll_state->cfgcr0 & DPLL_CFGCR0_DCO_FRACTION_MASK) >>
>  		      DPLL_CFGCR0_DCO_FRACTION_SHIFT) * ref_clock) / 0x8000;
>  
> -	if (WARN_ON(p0 == 0 || p1 == 0 || p2 == 0))
> +	if (dev_WARN_ON(dev, p0 == 0 || p1 == 0 || p2 == 0))
>  		return 0;
>  
>  	return dco_freq / (p0 * p1 * p2 * 5);
> @@ -1574,6 +1578,7 @@ static void cnl_ddi_clock_get(struct intel_encoder *encoder,
>  			      struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dpll_hw_state *pll_state = &pipe_config->dpll_hw_state;
>  	int link_clock;
>  
> @@ -1608,7 +1613,7 @@ static void cnl_ddi_clock_get(struct intel_encoder *encoder,
>  			link_clock = 405000;
>  			break;
>  		default:
> -			WARN(1, "Unsupported link rate\n");
> +			dev_WARN(dev, 1, "Unsupported link rate\n");
>  			break;
>  		}
>  		link_clock *= 2;
> @@ -1670,6 +1675,7 @@ static void hsw_ddi_clock_get(struct intel_encoder *encoder,
>  			      struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int link_clock = 0;
>  	u32 val, pll;
>  
> @@ -1699,12 +1705,12 @@ static void hsw_ddi_clock_get(struct intel_encoder *encoder,
>  		else if (pll == SPLL_FREQ_2700MHz)
>  			link_clock = 270000;
>  		else {
> -			WARN(1, "bad spll freq\n");
> +			dev_WARN(dev, 1, "bad spll freq\n");
>  			return;
>  		}
>  		break;
>  	default:
> -		WARN(1, "bad port clock sel\n");
> +		dev_WARN(dev, 1, "bad port clock sel\n");
>  		return;
>  	}
>  
> @@ -1759,13 +1765,14 @@ void intel_ddi_set_dp_msa(const struct intel_crtc_state *crtc_state,
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>  	u32 temp;
>  
>  	if (!intel_crtc_has_dp_encoder(crtc_state))
>  		return;
>  
> -	WARN_ON(transcoder_is_dsi(cpu_transcoder));
> +	dev_WARN_ON(dev, transcoder_is_dsi(cpu_transcoder));
>  
>  	temp = DP_MSA_MISC_SYNC_CLOCK;
>  
> @@ -1788,8 +1795,8 @@ void intel_ddi_set_dp_msa(const struct intel_crtc_state *crtc_state,
>  	}
>  
>  	/* nonsense combination */
> -	WARN_ON(crtc_state->limited_color_range &&
> -		crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
> +	dev_WARN_ON(dev, crtc_state->limited_color_range &&
> +		    crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
>  
>  	if (crtc_state->limited_color_range)
>  		temp |= DP_MSA_MISC_COLOR_CEA_RGB;
> @@ -1826,6 +1833,7 @@ intel_ddi_transcoder_func_reg_val_get(const struct intel_crtc_state *crtc_state)
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct intel_encoder *encoder = intel_ddi_get_crtc_encoder(crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>  	enum port port = encoder->port;
> @@ -1905,7 +1913,7 @@ intel_ddi_transcoder_func_reg_val_get(const struct intel_crtc_state *crtc_state)
>  			enum transcoder master;
>  
>  			master = crtc_state->mst_master_transcoder;
> -			WARN_ON(master == INVALID_TRANSCODER);
> +			dev_WARN_ON(dev, master == INVALID_TRANSCODER);
>  			temp |= TRANS_DDI_MST_TRANSPORT_SELECT(master);
>  		}
>  	} else {
> @@ -2215,6 +2223,7 @@ static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
>  					struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *dig_port;
>  	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>  
> @@ -2223,7 +2232,8 @@ static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
>  	 * happen since fake-MST encoders don't set their get_power_domains()
>  	 * hook.
>  	 */
> -	if (WARN_ON(intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
> +	if (dev_WARN_ON(dev,
> +			intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
>  		return;
>  
>  	dig_port = enc_to_dig_port(&encoder->base);
> @@ -2298,6 +2308,7 @@ static void skl_ddi_set_iboost(struct intel_encoder *encoder,
>  {
>  	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum port port = encoder->port;
>  	u8 iboost;
>  
> @@ -2317,9 +2328,9 @@ static void skl_ddi_set_iboost(struct intel_encoder *encoder,
>  		else
>  			ddi_translations = intel_ddi_get_buf_trans_dp(dev_priv, port, &n_entries);
>  
> -		if (WARN_ON_ONCE(!ddi_translations))
> +		if (dev_WARN_ON_ONCE(dev, !ddi_translations))
>  			return;
> -		if (WARN_ON_ONCE(level >= n_entries))
> +		if (dev_WARN_ON_ONCE(dev, level >= n_entries))
>  			level = n_entries - 1;
>  
>  		iboost = ddi_translations[level].i_boost;
> @@ -2341,6 +2352,7 @@ static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
>  				    int level, enum intel_output_type type)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct bxt_ddi_buf_trans *ddi_translations;
>  	enum port port = encoder->port;
>  	int n_entries;
> @@ -2352,9 +2364,9 @@ static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
>  	else
>  		ddi_translations = bxt_get_buf_trans_dp(dev_priv, &n_entries);
>  
> -	if (WARN_ON_ONCE(!ddi_translations))
> +	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
>  		return;
> -	if (WARN_ON_ONCE(level >= n_entries))
> +	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
>  		level = n_entries - 1;
>  
>  	bxt_ddi_phy_set_signal_level(dev_priv, port,
> @@ -2367,6 +2379,7 @@ static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
>  u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	enum port port = encoder->port;
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
> @@ -2401,9 +2414,9 @@ u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
>  			intel_ddi_get_buf_trans_dp(dev_priv, port, &n_entries);
>  	}
>  
> -	if (WARN_ON(n_entries < 1))
> +	if (dev_WARN_ON(dev, n_entries < 1))
>  		n_entries = 1;
> -	if (WARN_ON(n_entries > ARRAY_SIZE(index_to_dp_signal_levels)))
> +	if (dev_WARN_ON(dev, n_entries > ARRAY_SIZE(index_to_dp_signal_levels)))
>  		n_entries = ARRAY_SIZE(index_to_dp_signal_levels);
>  
>  	return index_to_dp_signal_levels[n_entries - 1] &
> @@ -2434,6 +2447,7 @@ static void cnl_ddi_vswing_program(struct intel_encoder *encoder,
>  				   int level, enum intel_output_type type)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct cnl_ddi_buf_trans *ddi_translations;
>  	enum port port = encoder->port;
>  	int n_entries, ln;
> @@ -2446,9 +2460,9 @@ static void cnl_ddi_vswing_program(struct intel_encoder *encoder,
>  	else
>  		ddi_translations = cnl_get_buf_trans_dp(dev_priv, &n_entries);
>  
> -	if (WARN_ON_ONCE(!ddi_translations))
> +	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
>  		return;
> -	if (WARN_ON_ONCE(level >= n_entries))
> +	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
>  		level = n_entries - 1;
>  
>  	/* Set PORT_TX_DW5 Scaling Mode Sel to 010b. */
> @@ -2961,6 +2975,7 @@ static void icl_map_plls_to_ports(struct intel_encoder *encoder,
>  				  const struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>  	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
>  	u32 val;
> @@ -2968,7 +2983,8 @@ static void icl_map_plls_to_ports(struct intel_encoder *encoder,
>  	mutex_lock(&dev_priv->dpll_lock);
>  
>  	val = I915_READ(ICL_DPCLKA_CFGCR0);
> -	WARN_ON((val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
> +	dev_WARN_ON(dev,
> +		    (val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
>  
>  	if (intel_phy_is_combo(dev_priv, phy)) {
>  		/*
> @@ -3011,6 +3027,7 @@ static void icl_unmap_plls_to_ports(struct intel_encoder *encoder)
>  static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
>  				      u32 port_mask, bool ddi_clk_needed)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum port port;
>  	u32 val;
>  
> @@ -3027,7 +3044,7 @@ static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
>  		 * Punt on the case now where clock is gated, but it would
>  		 * be needed by the port. Something else is really broken then.
>  		 */
> -		if (WARN_ON(ddi_clk_needed))
> +		if (dev_WARN_ON(dev, ddi_clk_needed))
>  			continue;
>  
>  		DRM_NOTE("PHY %c is disabled/in DSI mode with an ungated DDI clock, gate it\n",
> @@ -3040,6 +3057,7 @@ static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
>  void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 port_mask;
>  	bool ddi_clk_needed;
>  
> @@ -3059,7 +3077,7 @@ void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
>  		 * In the unlikely case that BIOS enables DP in MST mode, just
>  		 * warn since our MST HW readout is incomplete.
>  		 */
> -		if (WARN_ON(is_mst))
> +		if (dev_WARN_ON(dev, is_mst))
>  			return;
>  	}
>  
> @@ -3078,7 +3096,8 @@ void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
>  			if (other_encoder == encoder)
>  				continue;
>  
> -			if (WARN_ON(port_mask & BIT(other_encoder->port)))
> +			if (dev_WARN_ON(dev, port_mask &
> +					BIT(other_encoder->port)))
>  				return;
>  		}
>  		/*
> @@ -3095,12 +3114,13 @@ static void intel_ddi_clk_select(struct intel_encoder *encoder,
>  				 const struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum port port = encoder->port;
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>  	u32 val;
>  	const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>  
> -	if (WARN_ON(!pll))
> +	if (dev_WARN_ON(dev, !pll))
>  		return;
>  
>  	mutex_lock(&dev_priv->dpll_lock);
> @@ -3225,6 +3245,7 @@ icl_program_mg_dp_mode(struct intel_digital_port *intel_dig_port,
>  		       const struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum tc_port tc_port = intel_port_to_tc(dev_priv, intel_dig_port->base.port);
>  	u32 ln0, ln1, pin_assignment;
>  	u8 width;
> @@ -3251,7 +3272,7 @@ icl_program_mg_dp_mode(struct intel_digital_port *intel_dig_port,
>  
>  	switch (pin_assignment) {
>  	case 0x0:
> -		WARN_ON(intel_dig_port->tc_mode != TC_PORT_LEGACY);
> +		dev_WARN_ON(dev, intel_dig_port->tc_mode != TC_PORT_LEGACY);
>  		if (width == 1) {
>  			ln1 |= MG_DP_MODE_CFG_DP_X1_MODE;
>  		} else {
> @@ -3390,6 +3411,7 @@ static void tgl_dc3co_exitline_compute_config(struct intel_encoder *encoder,
>  {
>  	u32 exit_scanlines;
>  	struct drm_i915_private *dev_priv = to_i915(cstate->uapi.crtc->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 crtc_vdisplay = cstate->hw.adjusted_mode.crtc_vdisplay;
>  
>  	cstate->dc3co_exitline = 0;
> @@ -3412,7 +3434,7 @@ static void tgl_dc3co_exitline_compute_config(struct intel_encoder *encoder,
>  	exit_scanlines =
>  		intel_usecs_to_scanlines(&cstate->hw.adjusted_mode, 200) + 1;
>  
> -	if (WARN_ON(exit_scanlines > crtc_vdisplay))
> +	if (dev_WARN_ON(dev, exit_scanlines > crtc_vdisplay))
>  		return;
>  
>  	cstate->dc3co_exitline = crtc_vdisplay - exit_scanlines;
> @@ -3595,13 +3617,14 @@ static void hsw_ddi_pre_enable_dp(struct intel_encoder *encoder,
>  {
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum port port = encoder->port;
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>  	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
>  	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
>  	int level = intel_ddi_dp_level(intel_dp);
>  
> -	WARN_ON(is_mst && (port == PORT_A || port == PORT_E));
> +	dev_WARN_ON(dev, is_mst && (port == PORT_A || port == PORT_E));
>  
>  	intel_dp_set_link_params(intel_dp, crtc_state->port_clock,
>  				 crtc_state->lane_count, is_mst);
> @@ -3729,6 +3752,7 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  
>  	/*
> @@ -3744,7 +3768,7 @@ static void intel_ddi_pre_enable(struct intel_encoder *encoder,
>  	 *   the DP link parameteres
>  	 */
>  
> -	WARN_ON(crtc_state->has_pch_encoder);
> +	dev_WARN_ON(dev, crtc_state->has_pch_encoder);
>  
>  	if (INTEL_GEN(dev_priv) >= 11)
>  		icl_map_plls_to_ports(encoder, crtc_state);
> @@ -4010,6 +4034,7 @@ static i915_reg_t
>  gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
>  			       enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	static const enum transcoder trans[] = {
>  		[PORT_A] = TRANSCODER_EDP,
>  		[PORT_B] = TRANSCODER_A,
> @@ -4018,9 +4043,9 @@ gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
>  		[PORT_E] = TRANSCODER_A,
>  	};
>  
> -	WARN_ON(INTEL_GEN(dev_priv) < 9);
> +	dev_WARN_ON(dev, INTEL_GEN(dev_priv) < 9);
>  
> -	if (WARN_ON(port < PORT_A || port > PORT_E))
> +	if (dev_WARN_ON(dev, port < PORT_A || port > PORT_E))
>  		port = PORT_A;
>  
>  	return CHICKEN_TRANS(trans[port]);
> @@ -4334,12 +4359,13 @@ void intel_ddi_get_config(struct intel_encoder *encoder,
>  			  struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
>  	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
>  	u32 temp, flags = 0;
>  
>  	/* XXX: DSI transcoder paranoia */
> -	if (WARN_ON(transcoder_is_dsi(cpu_transcoder)))
> +	if (dev_WARN_ON(dev, transcoder_is_dsi(cpu_transcoder)))
>  		return;
>  
>  	intel_dsc_get_config(encoder, pipe_config);
> @@ -4610,6 +4636,7 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
>  				 struct drm_modeset_acquire_ctx *ctx)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base);
>  	struct intel_connector *connector = hdmi->attached_connector;
>  	struct i2c_adapter *adapter =
> @@ -4640,7 +4667,7 @@ static int intel_hdmi_reset_link(struct intel_encoder *encoder,
>  
>  	crtc_state = to_intel_crtc_state(crtc->base.state);
>  
> -	WARN_ON(!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI));
> +	dev_WARN_ON(dev, !intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI));
>  
>  	if (!crtc_state->hw.active)
>  		return 0;
> @@ -4810,6 +4837,7 @@ intel_ddi_max_lanes(struct intel_digital_port *intel_dport)
>  
>  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct ddi_vbt_port_info *port_info =
>  		&dev_priv->vbt.ddi_port_info[port];
>  	struct intel_digital_port *intel_dig_port;
> @@ -4888,7 +4916,7 @@ void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
>  		encoder->update_complete = intel_ddi_update_complete;
>  	}
>  
> -	WARN_ON(port > PORT_I);
> +	dev_WARN_ON(dev, port > PORT_I);
>  	intel_dig_port->ddi_io_power_domain = POWER_DOMAIN_PORT_DDI_A_IO +
>  					      port - PORT_A;
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 817f49425bfb..ab1fac1abf37 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -197,15 +197,16 @@ int vlv_get_hpll_vco(struct drm_i915_private *dev_priv)
>  int vlv_get_cck_clock(struct drm_i915_private *dev_priv,
>  		      const char *name, u32 reg, int ref_freq)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  	int divider;
>  
>  	val = vlv_cck_read(dev_priv, reg);
>  	divider = val & CCK_FREQUENCY_VALUES;
>  
> -	WARN((val & CCK_FREQUENCY_STATUS) !=
> -	     (divider << CCK_FREQUENCY_STATUS_SHIFT),
> -	     "%s change in progress\n", name);
> +	dev_WARN(dev, (val & CCK_FREQUENCY_STATUS) !=
> +		 (divider << CCK_FREQUENCY_STATUS_SHIFT),
> +		 "%s change in progress\n", name);
>  
>  	return DIV_ROUND_CLOSEST(ref_freq << 1, divider + 1);
>  }
> @@ -1089,6 +1090,7 @@ intel_wait_for_pipe_off(const struct intel_crtc_state *old_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (INTEL_GEN(dev_priv) >= 4) {
>  		enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
> @@ -1097,7 +1099,7 @@ intel_wait_for_pipe_off(const struct intel_crtc_state *old_crtc_state)
>  		/* Wait for the Pipe State to go off */
>  		if (intel_de_wait_for_clear(dev_priv, reg,
>  					    I965_PIPECONF_ACTIVE, 100))
> -			WARN(1, "pipe_off wait timed out\n");
> +			dev_WARN(dev, 1, "pipe_off wait timed out\n");
>  	} else {
>  		intel_wait_for_pipe_scanline_stopped(crtc);
>  	}
> @@ -1206,12 +1208,13 @@ void assert_fdi_rx_pll(struct drm_i915_private *dev_priv,
>  
>  void assert_panel_unlocked(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	i915_reg_t pp_reg;
>  	u32 val;
>  	enum pipe panel_pipe = INVALID_PIPE;
>  	bool locked = true;
>  
> -	if (WARN_ON(HAS_DDI(dev_priv)))
> +	if (dev_WARN_ON(dev, HAS_DDI(dev_priv)))
>  		return;
>  
>  	if (HAS_PCH_SPLIT(dev_priv)) {
> @@ -1247,7 +1250,7 @@ void assert_panel_unlocked(struct drm_i915_private *dev_priv, enum pipe pipe)
>  		pp_reg = PP_CONTROL(0);
>  		port_sel = I915_READ(PP_ON_DELAYS(0)) & PANEL_PORT_SELECT_MASK;
>  
> -		WARN_ON(port_sel != PANEL_PORT_SELECT_LVDS);
> +		dev_WARN_ON(dev, port_sel != PANEL_PORT_SELECT_LVDS);
>  		intel_lvds_port_enabled(dev_priv, LVDS, &panel_pipe);
>  	}
>  
> @@ -1460,6 +1463,7 @@ static void chv_enable_pll(struct intel_crtc *crtc,
>  			   const struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  
>  	assert_pipe_disabled(dev_priv, pipe_config->cpu_transcoder);
> @@ -1486,7 +1490,8 @@ static void chv_enable_pll(struct intel_crtc *crtc,
>  		 * DPLLB VGA mode also seems to cause problems.
>  		 * We should always have it disabled.
>  		 */
> -		WARN_ON((I915_READ(DPLL(PIPE_B)) & DPLL_VGA_MODE_DIS) == 0);
> +		dev_WARN_ON(dev,
> +			    (I915_READ(DPLL(PIPE_B)) & DPLL_VGA_MODE_DIS) == 0);
>  	} else {
>  		I915_WRITE(DPLL_MD(pipe), pipe_config->dpll_hw_state.dpll_md);
>  		POSTING_READ(DPLL_MD(pipe));
> @@ -1610,6 +1615,7 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
>  			 struct intel_digital_port *dport,
>  			 unsigned int expected_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 port_mask;
>  	i915_reg_t dpll_reg;
>  
> @@ -1633,9 +1639,10 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
>  
>  	if (intel_de_wait_for_register(dev_priv, dpll_reg,
>  				       port_mask, expected_mask, 1000))
> -		WARN(1, "timed out waiting for [ENCODER:%d:%s] port ready: got 0x%x, expected 0x%x\n",
> -		     dport->base.base.base.id, dport->base.base.name,
> -		     I915_READ(dpll_reg) & port_mask, expected_mask);
> +		dev_WARN(dev, 1,
> +			 "timed out waiting for [ENCODER:%d:%s] port ready: got 0x%x, expected 0x%x\n",
> +			 dport->base.base.base.id, dport->base.base.name,
> +			 I915_READ(dpll_reg) & port_mask, expected_mask);
>  }
>  
>  static void ilk_enable_pch_transcoder(const struct intel_crtc_state *crtc_state)
> @@ -1836,6 +1843,7 @@ static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum transcoder cpu_transcoder = new_crtc_state->cpu_transcoder;
>  	enum pipe pipe = crtc->pipe;
>  	i915_reg_t reg;
> @@ -1872,7 +1880,7 @@ static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
>  	val = I915_READ(reg);
>  	if (val & PIPECONF_ENABLE) {
>  		/* we keep both pipes enabled on 830 */
> -		WARN_ON(!IS_I830(dev_priv));
> +		dev_WARN_ON(dev, !IS_I830(dev_priv));
>  		return;
>  	}
>  
> @@ -2361,9 +2369,10 @@ static u32 intel_adjust_aligned_offset(int *x, int *y,
>  				       u32 old_offset, u32 new_offset)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(fb->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	unsigned int cpp = fb->format->cpp[color_plane];
>  
> -	WARN_ON(new_offset > old_offset);
> +	dev_WARN_ON(dev, new_offset > old_offset);
>  
>  	if (!is_surface_linear(fb, color_plane)) {
>  		unsigned int tile_size, tile_width, tile_height;
> @@ -3058,6 +3067,7 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv =
>  		to_i915(plane_state->uapi.plane->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct drm_framebuffer *fb = plane_state->hw.fb;
>  	struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
>  	struct intel_rotation_info *info = &plane_state->view.rotated;
> @@ -3077,7 +3087,7 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
>  	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
>  
> -	WARN_ON(is_ccs_modifier(fb->modifier));
> +	dev_WARN_ON(dev, is_ccs_modifier(fb->modifier));
>  
>  	/* Make src coordinates relative to the viewport */
>  	drm_rect_translate(&plane_state->uapi.src,
> @@ -3118,7 +3128,7 @@ intel_plane_remap_gtt(struct intel_plane_state *plane_state)
>  						      DRM_MODE_ROTATE_0, tile_size);
>  		offset /= tile_size;
>  
> -		WARN_ON(i >= ARRAY_SIZE(info->plane));
> +		dev_WARN_ON(dev, i >= ARRAY_SIZE(info->plane));
>  		info->plane[i].offset = offset;
>  		info->plane[i].stride = DIV_ROUND_UP(fb->pitches[i],
>  						     tile_width * cpp);
> @@ -5386,6 +5396,7 @@ static void lpt_program_iclkip(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int clock = crtc_state->hw.adjusted_mode.crtc_clock;
>  	u32 divsel, phaseinc, auxdiv, phasedir = 0;
>  	u32 temp;
> @@ -5417,10 +5428,10 @@ static void lpt_program_iclkip(const struct intel_crtc_state *crtc_state)
>  	}
>  
>  	/* This should not happen with any sane values */
> -	WARN_ON(SBI_SSCDIVINTPHASE_DIVSEL(divsel) &
> -		~SBI_SSCDIVINTPHASE_DIVSEL_MASK);
> -	WARN_ON(SBI_SSCDIVINTPHASE_DIR(phasedir) &
> -		~SBI_SSCDIVINTPHASE_INCVAL_MASK);
> +	dev_WARN_ON(dev, SBI_SSCDIVINTPHASE_DIVSEL(divsel) &
> +		    ~SBI_SSCDIVINTPHASE_DIVSEL_MASK);
> +	dev_WARN_ON(dev, SBI_SSCDIVINTPHASE_DIR(phasedir) &
> +		    ~SBI_SSCDIVINTPHASE_INCVAL_MASK);
>  
>  	DRM_DEBUG_KMS("iCLKIP clock: found settings for %dKHz refresh rate: auxdiv=%x, divsel=%x, phasedir=%x, phaseinc=%x\n",
>  			clock,
> @@ -5523,14 +5534,15 @@ static void ilk_pch_transcoder_set_timings(const struct intel_crtc_state *crtc_s
>  
>  static void cpt_set_fdi_bc_bifurcation(struct drm_i915_private *dev_priv, bool enable)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 temp;
>  
>  	temp = I915_READ(SOUTH_CHICKEN1);
>  	if (!!(temp & FDI_BC_BIFURCATION_SELECT) == enable)
>  		return;
>  
> -	WARN_ON(I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE);
> -	WARN_ON(I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE);
>  
>  	temp &= ~FDI_BC_BIFURCATION_SELECT;
>  	if (enable)
> @@ -6015,6 +6027,7 @@ static void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  	const struct intel_crtc_scaler_state *scaler_state =
>  		&crtc_state->scaler_state;
> @@ -6024,7 +6037,7 @@ static void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
>  		int pfit_w, pfit_h, hscale, vscale;
>  		int id;
>  
> -		if (WARN_ON(crtc_state->scaler_state.scaler_id < 0))
> +		if (dev_WARN_ON(dev, crtc_state->scaler_state.scaler_id < 0))
>  			return;
>  
>  		pfit_w = (crtc_state->pch_pfit.size >> 16) & 0xFFFF;
> @@ -6639,9 +6652,10 @@ static void ilk_crtc_enable(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *new_crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  
> -	if (WARN_ON(crtc->active))
> +	if (dev_WARN_ON(dev, crtc->active))
>  		return;
>  
>  	/*
> @@ -6783,11 +6797,12 @@ static void hsw_crtc_enable(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *new_crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe, hsw_workaround_pipe;
>  	enum transcoder cpu_transcoder = new_crtc_state->cpu_transcoder;
>  	bool psl_clkgate_wa;
>  
> -	if (WARN_ON(crtc->active))
> +	if (dev_WARN_ON(dev, crtc->active))
>  		return;
>  
>  	intel_encoders_pre_pll_enable(state, crtc);
> @@ -6972,6 +6987,7 @@ static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (!crtc_state->gmch_pfit.control)
>  		return;
> @@ -6980,7 +6996,7 @@ static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)
>  	 * The panel fitter should only be adjusted whilst the pipe is disabled,
>  	 * according to register description and PRM.
>  	 */
> -	WARN_ON(I915_READ(PFIT_CONTROL) & PFIT_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(PFIT_CONTROL) & PFIT_ENABLE);
>  	assert_pipe_disabled(dev_priv, crtc_state->cpu_transcoder);
>  
>  	I915_WRITE(PFIT_PGM_RATIOS, crtc_state->gmch_pfit.pgm_ratios);
> @@ -7173,9 +7189,10 @@ static void valleyview_crtc_enable(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *new_crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  
> -	if (WARN_ON(crtc->active))
> +	if (dev_WARN_ON(dev, crtc->active))
>  		return;
>  
>  	if (intel_crtc_has_dp_encoder(new_crtc_state))
> @@ -7237,9 +7254,10 @@ static void i9xx_crtc_enable(struct intel_atomic_state *state,
>  	const struct intel_crtc_state *new_crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  
> -	if (WARN_ON(crtc->active))
> +	if (dev_WARN_ON(dev, crtc->active))
>  		return;
>  
>  	i9xx_set_pll_dividers(new_crtc_state);
> @@ -7346,6 +7364,7 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
>  {
>  	struct intel_encoder *encoder;
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_bw_state *bw_state =
>  		to_intel_bw_state(dev_priv->bw_obj.state);
>  	struct intel_crtc_state *crtc_state =
> @@ -7382,7 +7401,7 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
>  	temp_crtc_state = intel_atomic_get_crtc_state(state, crtc);
>  	ret = drm_atomic_add_affected_connectors(state, &crtc->base);
>  
> -	WARN_ON(IS_ERR(temp_crtc_state) || ret);
> +	dev_WARN_ON(dev, IS_ERR(temp_crtc_state) || ret);
>  
>  	dev_priv->display.crtc_disable(to_intel_atomic_state(state), crtc);
>  
> @@ -7394,7 +7413,8 @@ static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
>  	crtc->active = false;
>  	crtc->base.enabled = false;
>  
> -	WARN_ON(drm_atomic_set_mode_for_crtc(&crtc_state->uapi, NULL) < 0);
> +	dev_WARN_ON(dev,
> +		    drm_atomic_set_mode_for_crtc(&crtc_state->uapi, NULL) < 0);
>  	crtc_state->uapi.active = false;
>  	crtc_state->uapi.connector_mask = 0;
>  	crtc_state->uapi.encoder_mask = 0;
> @@ -9061,13 +9081,14 @@ static enum intel_output_format
>  bdw_get_pipemisc_output_format(struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 tmp;
>  
>  	tmp = I915_READ(PIPEMISC(crtc->pipe));
>  
>  	if (tmp & PIPEMISC_YUV420_ENABLE) {
>  		/* We support 4:2:0 in full blend mode only */
> -		WARN_ON((tmp & PIPEMISC_YUV420_MODE_FULL_BLEND) == 0);
> +		dev_WARN_ON(dev, (tmp & PIPEMISC_YUV420_MODE_FULL_BLEND) == 0);
>  
>  		return INTEL_OUTPUT_FORMAT_YCBCR420;
>  	} else if (tmp & PIPEMISC_OUTPUT_COLORSPACE_YUV) {
> @@ -9486,12 +9507,14 @@ static void lpt_program_fdi_mphy(struct drm_i915_private *dev_priv)
>  static void lpt_enable_clkout_dp(struct drm_i915_private *dev_priv,
>  				 bool with_spread, bool with_fdi)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 reg, tmp;
>  
> -	if (WARN(with_fdi && !with_spread, "FDI requires downspread\n"))
> +	if (dev_WARN(dev, with_fdi && !with_spread,
> +		     "FDI requires downspread\n"))
>  		with_spread = true;
> -	if (WARN(HAS_PCH_LPT_LP(dev_priv) &&
> -	    with_fdi, "LP PCH doesn't have FDI\n"))
> +	if (dev_WARN(dev, HAS_PCH_LPT_LP(dev_priv) &&
> +		     with_fdi, "LP PCH doesn't have FDI\n"))
>  		with_fdi = false;
>  
>  	mutex_lock(&dev_priv->sb_lock);
> @@ -9582,13 +9605,14 @@ static const u16 sscdivintphase[] = {
>   */
>  static void lpt_bend_clkout_dp(struct drm_i915_private *dev_priv, int steps)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 tmp;
>  	int idx = BEND_IDX(steps);
>  
> -	if (WARN_ON(steps % 5 != 0))
> +	if (dev_WARN_ON(dev, steps % 5 != 0))
>  		return;
>  
> -	if (WARN_ON(idx >= ARRAY_SIZE(sscdivintphase)))
> +	if (dev_WARN_ON(dev, idx >= ARRAY_SIZE(sscdivintphase)))
>  		return;
>  
>  	mutex_lock(&dev_priv->sb_lock);
> @@ -9721,6 +9745,7 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = crtc->pipe;
>  	u32 val;
>  
> @@ -9756,8 +9781,8 @@ static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
>  	 * This would end up with an odd purple hue over
>  	 * the entire display. Make sure we don't do it.
>  	 */
> -	WARN_ON(crtc_state->limited_color_range &&
> -		crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
> +	dev_WARN_ON(dev, crtc_state->limited_color_range &&
> +		    crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
>  
>  	if (crtc_state->limited_color_range)
>  		val |= PIPECONF_COLOR_RANGE_SELECT;
> @@ -10434,13 +10459,14 @@ static int hsw_crtc_compute_clock(struct intel_crtc *crtc,
>  static void cnl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
>  			    struct intel_crtc_state *pipe_config)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum intel_dpll_id id;
>  	u32 temp;
>  
>  	temp = I915_READ(DPCLKA_CFGCR0) & DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port);
>  	id = temp >> DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port);
>  
> -	if (WARN_ON(id < SKL_DPLL0 || id > SKL_DPLL2))
> +	if (dev_WARN_ON(dev, id < SKL_DPLL0 || id > SKL_DPLL2))
>  		return;
>  
>  	pipe_config->shared_dpll = intel_get_shared_dpll_by_id(dev_priv, id);
> @@ -10449,6 +10475,7 @@ static void cnl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
>  static void icl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
>  			    struct intel_crtc_state *pipe_config)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>  	enum icl_port_dpll_id port_dpll_id;
>  	enum intel_dpll_id id;
> @@ -10467,12 +10494,12 @@ static void icl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
>  								    port));
>  			port_dpll_id = ICL_PORT_DPLL_MG_PHY;
>  		} else {
> -			WARN_ON(clk_sel < DDI_CLK_SEL_TBT_162);
> +			dev_WARN_ON(dev, clk_sel < DDI_CLK_SEL_TBT_162);
>  			id = DPLL_ID_ICL_TBTPLL;
>  			port_dpll_id = ICL_PORT_DPLL_DEFAULT;
>  		}
>  	} else {
> -		WARN(1, "Invalid port %x\n", port);
> +		dev_WARN(dev, 1, "Invalid port %x\n", port);
>  		return;
>  	}
>  
> @@ -10509,13 +10536,14 @@ static void bxt_get_ddi_pll(struct drm_i915_private *dev_priv,
>  static void skl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
>  			    struct intel_crtc_state *pipe_config)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum intel_dpll_id id;
>  	u32 temp;
>  
>  	temp = I915_READ(DPLL_CTRL2) & DPLL_CTRL2_DDI_CLK_SEL_MASK(port);
>  	id = temp >> (port * 3 + 1);
>  
> -	if (WARN_ON(id < SKL_DPLL0 || id > SKL_DPLL3))
> +	if (dev_WARN_ON(dev, id < SKL_DPLL0 || id > SKL_DPLL3))
>  		return;
>  
>  	pipe_config->shared_dpll = intel_get_shared_dpll_by_id(dev_priv, id);
> @@ -10717,6 +10745,7 @@ static void hsw_get_ddi_port_state(struct intel_crtc *crtc,
>  				   struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
>  	struct intel_shared_dpll *pll;
>  	enum port port;
> @@ -10746,8 +10775,8 @@ static void hsw_get_ddi_port_state(struct intel_crtc *crtc,
>  
>  	pll = pipe_config->shared_dpll;
>  	if (pll) {
> -		WARN_ON(!pll->info->funcs->get_hw_state(dev_priv, pll,
> -						&pipe_config->dpll_hw_state));
> +		dev_WARN_ON(dev, !pll->info->funcs->get_hw_state(dev_priv, pll,
> +								 &pipe_config->dpll_hw_state));
>  	}
>  
>  	/*
> @@ -10788,6 +10817,7 @@ static enum transcoder transcoder_master_readout(struct drm_i915_private *dev_pr
>  static void icl_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 transcoders;
>  	enum transcoder cpu_transcoder;
>  
> @@ -10816,14 +10846,16 @@ static void icl_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
>  		intel_display_power_put(dev_priv, power_domain, trans_wakeref);
>  	}
>  
> -	WARN_ON(crtc_state->master_transcoder != INVALID_TRANSCODER &&
> -		crtc_state->sync_mode_slaves_mask);
> +	dev_WARN_ON(dev,
> +		    crtc_state->master_transcoder != INVALID_TRANSCODER &&
> +		    crtc_state->sync_mode_slaves_mask);
>  }
>  
>  static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>  				struct intel_crtc_state *pipe_config)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	intel_wakeref_t wakerefs[POWER_DOMAIN_NUM], wf;
>  	enum intel_display_power_domain power_domain;
>  	u64 power_domain_mask;
> @@ -10847,7 +10879,7 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>  	if (IS_GEN9_LP(dev_priv) &&
>  	    bxt_get_dsi_transcoder_state(crtc, pipe_config,
>  					 &power_domain_mask, wakerefs)) {
> -		WARN_ON(active);
> +		dev_WARN_ON(dev, active);
>  		active = true;
>  	}
>  
> @@ -10905,7 +10937,7 @@ static bool hsw_get_pipe_config(struct intel_crtc *crtc,
>  	intel_color_get_config(pipe_config);
>  
>  	power_domain = POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe);
> -	WARN_ON(power_domain_mask & BIT_ULL(power_domain));
> +	dev_WARN_ON(dev, power_domain_mask & BIT_ULL(power_domain));
>  
>  	wf = intel_display_power_get_if_enabled(dev_priv, power_domain);
>  	if (wf) {
> @@ -11342,6 +11374,7 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
>  {
>  	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
>  	enum pipe pipe = plane->pipe;
>  	int ret;
> @@ -11362,8 +11395,8 @@ static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
>  		return -EINVAL;
>  	}
>  
> -	WARN_ON(plane_state->uapi.visible &&
> -		plane_state->color_plane[0].stride != fb->pitches[0]);
> +	dev_WARN_ON(dev, plane_state->uapi.visible &&
> +		    plane_state->color_plane[0].stride != fb->pitches[0]);
>  
>  	if (fb->pitches[0] !=
>  	    drm_rect_width(&plane_state->uapi.dst) * fb->format->cpp[0]) {
> @@ -12001,6 +12034,7 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	bool mode_changed = needs_modeset(crtc_state);
>  	bool was_crtc_enabled = old_crtc_state->hw.active;
>  	bool is_crtc_enabled = crtc_state->hw.active;
> @@ -12016,7 +12050,7 @@ int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
>  	was_visible = old_plane_state->uapi.visible;
>  	visible = plane_state->uapi.visible;
>  
> -	if (!was_crtc_enabled && WARN_ON(was_visible))
> +	if (!was_crtc_enabled && dev_WARN_ON(dev, was_visible))
>  		was_visible = false;
>  
>  	/*
> @@ -12360,6 +12394,7 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
>  				   struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc_state *crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
>  	bool mode_changed = needs_modeset(crtc_state);
> @@ -12371,7 +12406,7 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
>  
>  	if (mode_changed && crtc_state->hw.enable &&
>  	    dev_priv->display.crtc_compute_clock &&
> -	    !WARN_ON(crtc_state->shared_dpll)) {
> +	    !dev_WARN_ON(dev, crtc_state->shared_dpll)) {
>  		ret = dev_priv->display.crtc_compute_clock(crtc, crtc_state);
>  		if (ret)
>  			return ret;
> @@ -12401,7 +12436,7 @@ static int intel_crtc_atomic_check(struct intel_atomic_state *state,
>  	}
>  
>  	if (dev_priv->display.compute_intermediate_wm) {
> -		if (WARN_ON(!dev_priv->display.compute_pipe_wm))
> +		if (dev_WARN_ON(dev, !dev_priv->display.compute_pipe_wm))
>  			return 0;
>  
>  		/*
> @@ -13549,6 +13584,7 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
>  static void intel_pipe_config_sanity_check(struct drm_i915_private *dev_priv,
>  					   const struct intel_crtc_state *pipe_config)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (pipe_config->has_pch_encoder) {
>  		int fdi_dotclock = intel_dotclock_calculate(intel_fdi_link_freq(dev_priv, pipe_config),
>  							    &pipe_config->fdi_m_n);
> @@ -13558,9 +13594,10 @@ static void intel_pipe_config_sanity_check(struct drm_i915_private *dev_priv,
>  		 * FDI already provided one idea for the dotclock.
>  		 * Yell if the encoder disagrees.
>  		 */
> -		WARN(!intel_fuzzy_clock_check(fdi_dotclock, dotclock),
> -		     "FDI dotclock and encoder dotclock mismatch, fdi: %i, encoder: %i\n",
> -		     fdi_dotclock, dotclock);
> +		dev_WARN(dev,
> +			 !intel_fuzzy_clock_check(fdi_dotclock, dotclock),
> +			 "FDI dotclock and encoder dotclock mismatch, fdi: %i, encoder: %i\n",
> +			 fdi_dotclock, dotclock);
>  	}
>  }
>  
> @@ -14622,9 +14659,11 @@ static void intel_update_crtc(struct intel_crtc *crtc,
>  static struct intel_crtc *intel_get_slave_crtc(const struct intel_crtc_state *new_crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(new_crtc_state->uapi.crtc->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum transcoder slave_transcoder;
>  
> -	WARN_ON(!is_power_of_2(new_crtc_state->sync_mode_slaves_mask));
> +	dev_WARN_ON(dev,
> +		    !is_power_of_2(new_crtc_state->sync_mode_slaves_mask));
>  
>  	slave_transcoder = ffs(new_crtc_state->sync_mode_slaves_mask) - 1;
>  	return intel_get_crtc_for_pipe(dev_priv,
> @@ -14832,6 +14871,7 @@ static void intel_update_trans_port_sync_crtcs(struct intel_crtc *crtc,
>  static void skl_commit_modeset_enables(struct intel_atomic_state *state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc;
>  	struct intel_crtc_state *old_crtc_state, *new_crtc_state;
>  	u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
> @@ -14913,8 +14953,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
>  		    is_trans_port_sync_slave(new_crtc_state))
>  			continue;
>  
> -		WARN_ON(skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
> -						    entries, num_pipes, i));
> +		dev_WARN_ON(dev, skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
> +							     entries, num_pipes, i));
>  
>  		entries[i] = new_crtc_state->wm.skl.ddb;
>  		modeset_pipes &= ~BIT(pipe);
> @@ -14948,8 +14988,8 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
>  		if ((modeset_pipes & BIT(pipe)) == 0)
>  			continue;
>  
> -		WARN_ON(skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
> -						    entries, num_pipes, i));
> +		dev_WARN_ON(dev, skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
> +							     entries, num_pipes, i));
>  
>  		entries[i] = new_crtc_state->wm.skl.ddb;
>  		modeset_pipes &= ~BIT(pipe);
> @@ -14957,7 +14997,7 @@ static void skl_commit_modeset_enables(struct intel_atomic_state *state)
>  		intel_update_crtc(crtc, state, old_crtc_state, new_crtc_state);
>  	}
>  
> -	WARN_ON(modeset_pipes);
> +	dev_WARN_ON(dev, modeset_pipes);
>  
>  	/* If 2nd DBuf slice is no more required disable it */
>  	if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
> @@ -16127,6 +16167,7 @@ static void intel_crtc_free(struct intel_crtc *crtc)
>  
>  static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_plane *primary, *cursor;
>  	const struct drm_crtc_funcs *funcs;
>  	struct intel_crtc *crtc;
> @@ -16203,7 +16244,7 @@ static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
>  
>  	intel_color_init(crtc);
>  
> -	WARN_ON(drm_crtc_index(&crtc->base) != crtc->pipe);
> +	dev_WARN_ON(dev, drm_crtc_index(&crtc->base) != crtc->pipe);
>  
>  	return 0;
>  
> @@ -17326,6 +17367,7 @@ int intel_modeset_init(struct drm_i915_private *i915)
>  
>  void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
>  	/* 640x480@60Hz, ~25175 kHz */
>  	struct dpll clock = {
> @@ -17338,7 +17380,7 @@ void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
>  	u32 dpll, fp;
>  	int i;
>  
> -	WARN_ON(i9xx_calc_dpll_params(48000, &clock) != 25154);
> +	dev_WARN_ON(dev, i9xx_calc_dpll_params(48000, &clock) != 25154);
>  
>  	DRM_DEBUG_KMS("enabling pipe %c due to force quirk (vco=%d dot=%d)\n",
>  		      pipe_name(pipe), clock.vco, clock.dot);
> @@ -17396,16 +17438,17 @@ void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
>  
>  void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
>  
>  	DRM_DEBUG_KMS("disabling pipe %c due to force quirk\n",
>  		      pipe_name(pipe));
>  
> -	WARN_ON(I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE);
> -	WARN_ON(I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE);
> -	WARN_ON(I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE);
> -	WARN_ON(I915_READ(CURCNTR(PIPE_A)) & MCURSOR_MODE);
> -	WARN_ON(I915_READ(CURCNTR(PIPE_B)) & MCURSOR_MODE);
> +	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE);
> +	dev_WARN_ON(dev, I915_READ(CURCNTR(PIPE_A)) & MCURSOR_MODE);
> +	dev_WARN_ON(dev, I915_READ(CURCNTR(PIPE_B)) & MCURSOR_MODE);
>  
>  	I915_WRITE(PIPECONF(pipe), 0);
>  	POSTING_READ(PIPECONF(pipe));
> @@ -18169,11 +18212,12 @@ static void intel_hpd_poll_fini(struct drm_i915_private *i915)
>  
>  void intel_modeset_driver_remove(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	flush_workqueue(i915->flip_wq);
>  	flush_workqueue(i915->modeset_wq);
>  
>  	flush_work(&i915->atomic_helper.free_work);
> -	WARN_ON(!llist_empty(&i915->atomic_helper.free_list));
> +	dev_WARN_ON(dev, !llist_empty(&i915->atomic_helper.free_list));
>  
>  	/*
>  	 * Interrupts and polling as the first thing to avoid creating havoc.
> diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
> index 679457156797..ea1609fe8557 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_power.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> @@ -182,8 +182,11 @@ static void intel_power_well_get(struct drm_i915_private *dev_priv,
>  static void intel_power_well_put(struct drm_i915_private *dev_priv,
>  				 struct i915_power_well *power_well)
>  {
> -	WARN(!power_well->count, "Use count on power well %s is already zero",
> -	     power_well->desc->name);
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN(dev, !power_well->count,
> +		 "Use count on power well %s is already zero",
> +		 power_well->desc->name);
>  
>  	if (!--power_well->count)
>  		intel_power_well_disable(dev_priv, power_well);
> @@ -283,6 +286,7 @@ static void hsw_power_well_pre_disable(struct drm_i915_private *dev_priv,
>  static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
>  					   struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
>  	int pw_idx = power_well->desc->hsw.idx;
>  
> @@ -293,7 +297,7 @@ static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
>  			      power_well->desc->name);
>  
>  		/* An AUX timeout is expected if the TBT DP tunnel is down. */
> -		WARN_ON(!power_well->desc->hsw.is_tc_tbt);
> +		dev_WARN_ON(dev, !power_well->desc->hsw.is_tc_tbt);
>  	}
>  }
>  
> @@ -344,9 +348,10 @@ static void hsw_wait_for_power_well_disable(struct drm_i915_private *dev_priv,
>  static void gen9_wait_for_power_well_fuses(struct drm_i915_private *dev_priv,
>  					   enum skl_power_gate pg)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	/* Timeout 5us for PG#0, for other PGs 1us */
> -	WARN_ON(intel_de_wait_for_set(dev_priv, SKL_FUSE_STATUS,
> -				      SKL_FUSE_PG_DIST_STATUS(pg), 1));
> +	dev_WARN_ON(dev, intel_de_wait_for_set(dev_priv, SKL_FUSE_STATUS,
> +					       SKL_FUSE_PG_DIST_STATUS(pg), 1));
>  }
>  
>  static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
> @@ -414,12 +419,13 @@ static void
>  icl_combo_phy_aux_power_well_enable(struct drm_i915_private *dev_priv,
>  				    struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
>  	int pw_idx = power_well->desc->hsw.idx;
>  	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);
>  	u32 val;
>  
> -	WARN_ON(!IS_ICELAKE(dev_priv));
> +	dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
>  
>  	val = I915_READ(regs->driver);
>  	I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx));
> @@ -444,12 +450,13 @@ static void
>  icl_combo_phy_aux_power_well_disable(struct drm_i915_private *dev_priv,
>  				     struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
>  	int pw_idx = power_well->desc->hsw.idx;
>  	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);
>  	u32 val;
>  
> -	WARN_ON(!IS_ICELAKE(dev_priv));
> +	dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
>  
>  	val = I915_READ(ICL_PORT_CL_DW12(phy));
>  	I915_WRITE(ICL_PORT_CL_DW12(phy), val & ~ICL_LANE_ENABLE_AUX);
> @@ -482,10 +489,11 @@ static u64 async_put_domains_mask(struct i915_power_domains *power_domains);
>  static int power_well_async_ref_count(struct drm_i915_private *dev_priv,
>  				      struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int refs = hweight64(power_well->desc->domains &
>  			     async_put_domains_mask(&dev_priv->power_domains));
>  
> -	WARN_ON(refs > power_well->count);
> +	dev_WARN_ON(dev, refs > power_well->count);
>  
>  	return refs;
>  }
> @@ -493,6 +501,7 @@ static int power_well_async_ref_count(struct drm_i915_private *dev_priv,
>  static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
>  					struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
>  	struct intel_digital_port *dig_port = NULL;
>  	struct intel_encoder *encoder;
> @@ -515,7 +524,7 @@ static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
>  			continue;
>  
>  		dig_port = enc_to_dig_port(&encoder->base);
> -		if (WARN_ON(!dig_port))
> +		if (dev_WARN_ON(dev, !dig_port))
>  			continue;
>  
>  		if (dig_port->aux_ch != aux_ch) {
> @@ -526,10 +535,10 @@ static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
>  		break;
>  	}
>  
> -	if (WARN_ON(!dig_port))
> +	if (dev_WARN_ON(dev, !dig_port))
>  		return;
>  
> -	WARN_ON(!intel_tc_port_ref_held(dig_port));
> +	dev_WARN_ON(dev, !intel_tc_port_ref_held(dig_port));
>  }
>  
>  #else
> @@ -613,15 +622,17 @@ static bool hsw_power_well_enabled(struct drm_i915_private *dev_priv,
>  
>  static void assert_can_enable_dc9(struct drm_i915_private *dev_priv)
>  {
> -	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_DC9),
> -		  "DC9 already programmed to be enabled.\n");
> -	WARN_ONCE(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
> -		  "DC5 still not disabled to enable DC9.\n");
> -	WARN_ONCE(I915_READ(HSW_PWR_WELL_CTL2) &
> -		  HSW_PWR_WELL_CTL_REQ(SKL_PW_CTL_IDX_PW_2),
> -		  "Power well 2 on.\n");
> -	WARN_ONCE(intel_irqs_enabled(dev_priv),
> -		  "Interrupts not disabled yet.\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_DC9),
> +		      "DC9 already programmed to be enabled.\n");
> +	dev_WARN_ONCE(dev, I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
> +		      "DC5 still not disabled to enable DC9.\n");
> +	dev_WARN_ONCE(dev, I915_READ(HSW_PWR_WELL_CTL2) &
> +		      HSW_PWR_WELL_CTL_REQ(SKL_PW_CTL_IDX_PW_2),
> +		      "Power well 2 on.\n");
> +	dev_WARN_ONCE(dev, intel_irqs_enabled(dev_priv),
> +		      "Interrupts not disabled yet.\n");
>  
>  	 /*
>  	  * TODO: check for the following to verify the conditions to enter DC9
> @@ -634,10 +645,12 @@ static void assert_can_enable_dc9(struct drm_i915_private *dev_priv)
>  
>  static void assert_can_disable_dc9(struct drm_i915_private *dev_priv)
>  {
> -	WARN_ONCE(intel_irqs_enabled(dev_priv),
> -		  "Interrupts not disabled yet.\n");
> -	WARN_ONCE(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
> -		  "DC5 still not disabled.\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN_ONCE(dev, intel_irqs_enabled(dev_priv),
> +		      "Interrupts not disabled yet.\n");
> +	dev_WARN_ONCE(dev, I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
> +		      "DC5 still not disabled.\n");
>  
>  	 /*
>  	  * TODO: check for the following to verify DC9 state was indeed
> @@ -740,10 +753,11 @@ static void gen9_sanitize_dc_state(struct drm_i915_private *dev_priv)
>   */
>  static void gen9_set_dc_state(struct drm_i915_private *dev_priv, u32 state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  	u32 mask;
>  
> -	if (WARN_ON_ONCE(state & ~dev_priv->csr.allowed_dc_mask))
> +	if (dev_WARN_ON_ONCE(dev, state & ~dev_priv->csr.allowed_dc_mask))
>  		state &= dev_priv->csr.allowed_dc_mask;
>  
>  	val = I915_READ(DC_STATE_EN);
> @@ -838,16 +852,20 @@ static void bxt_disable_dc9(struct drm_i915_private *dev_priv)
>  
>  static void assert_csr_loaded(struct drm_i915_private *dev_priv)
>  {
> -	WARN_ONCE(!I915_READ(CSR_PROGRAM(0)),
> -		  "CSR program storage start is NULL\n");
> -	WARN_ONCE(!I915_READ(CSR_SSP_BASE), "CSR SSP Base Not fine\n");
> -	WARN_ONCE(!I915_READ(CSR_HTP_SKL), "CSR HTP Not fine\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN_ONCE(dev, !I915_READ(CSR_PROGRAM(0)),
> +		      "CSR program storage start is NULL\n");
> +	dev_WARN_ONCE(dev, !I915_READ(CSR_SSP_BASE),
> +		      "CSR SSP Base Not fine\n");
> +	dev_WARN_ONCE(dev, !I915_READ(CSR_HTP_SKL), "CSR HTP Not fine\n");
>  }
>  
>  static struct i915_power_well *
>  lookup_power_well(struct drm_i915_private *dev_priv,
>  		  enum i915_power_well_id power_well_id)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_power_well *power_well;
>  
>  	for_each_power_well(dev_priv, power_well)
> @@ -861,7 +879,8 @@ lookup_power_well(struct drm_i915_private *dev_priv,
>  	 * the first power well and hope the WARN gets reported so we can fix
>  	 * our driver.
>  	 */
> -	WARN(1, "Power well %d not defined for this platform\n", power_well_id);
> +	dev_WARN(dev, 1, "Power well %d not defined for this platform\n",
> +		 power_well_id);
>  	return &dev_priv->power_domains.power_wells[0];
>  }
>  
> @@ -877,6 +896,7 @@ lookup_power_well(struct drm_i915_private *dev_priv,
>  void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
>  					     u32 state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_power_well *power_well;
>  	bool dc_off_enabled;
>  	struct i915_power_domains *power_domains = &dev_priv->power_domains;
> @@ -884,7 +904,7 @@ void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
>  	mutex_lock(&power_domains->lock);
>  	power_well = lookup_power_well(dev_priv, SKL_DISP_DC_OFF);
>  
> -	if (WARN_ON(!power_well))
> +	if (dev_WARN_ON(dev, !power_well))
>  		goto unlock;
>  
>  	state = sanitize_target_dc_state(dev_priv, state);
> @@ -912,13 +932,14 @@ void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
>  
>  static void assert_can_enable_dc5(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	bool pg2_enabled = intel_display_power_well_is_enabled(dev_priv,
>  					SKL_DISP_PW_2);
>  
> -	WARN_ONCE(pg2_enabled, "PG2 not disabled to enable DC5.\n");
> +	dev_WARN_ONCE(dev, pg2_enabled, "PG2 not disabled to enable DC5.\n");
>  
> -	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5),
> -		  "DC5 already programmed to be enabled.\n");
> +	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5),
> +		      "DC5 already programmed to be enabled.\n");
>  	assert_rpm_wakelock_held(&dev_priv->runtime_pm);
>  
>  	assert_csr_loaded(dev_priv);
> @@ -940,10 +961,12 @@ static void gen9_enable_dc5(struct drm_i915_private *dev_priv)
>  
>  static void assert_can_enable_dc6(struct drm_i915_private *dev_priv)
>  {
> -	WARN_ONCE(I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE,
> -		  "Backlight is not disabled.\n");
> -	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC6),
> -		  "DC6 already programmed to be enabled.\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN_ONCE(dev, I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE,
> +		      "Backlight is not disabled.\n");
> +	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC6),
> +		      "DC6 already programmed to be enabled.\n");
>  
>  	assert_csr_loaded(dev_priv);
>  }
> @@ -1028,15 +1051,17 @@ static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv,
>  
>  static void gen9_assert_dbuf_enabled(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 tmp = I915_READ(DBUF_CTL);
>  
> -	WARN((tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
> -	     (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
> -	     "Unexpected DBuf power power state (0x%08x)\n", tmp);
> +	dev_WARN(dev, (tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
> +		 (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
> +		 "Unexpected DBuf power power state (0x%08x)\n", tmp);
>  }
>  
>  static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_cdclk_state cdclk_state = {};
>  
>  	if (dev_priv->csr.target_dc_state == DC_STATE_EN_DC3CO) {
> @@ -1048,7 +1073,8 @@ static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
>  
>  	dev_priv->display.get_cdclk(dev_priv, &cdclk_state);
>  	/* Can't read out voltage_level so can't use intel_cdclk_changed() */
> -	WARN_ON(intel_cdclk_needs_modeset(&dev_priv->cdclk.hw, &cdclk_state));
> +	dev_WARN_ON(dev, intel_cdclk_needs_modeset(&dev_priv->cdclk.hw,
> +						   &cdclk_state));
>  
>  	gen9_assert_dbuf_enabled(dev_priv);
>  
> @@ -1188,6 +1214,7 @@ static void vlv_power_well_disable(struct drm_i915_private *dev_priv,
>  static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
>  				   struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int pw_idx = power_well->desc->vlv.idx;
>  	bool enabled = false;
>  	u32 mask;
> @@ -1204,8 +1231,8 @@ static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
>  	 * We only ever set the power-on and power-gate states, anything
>  	 * else is unexpected.
>  	 */
> -	WARN_ON(state != PUNIT_PWRGT_PWR_ON(pw_idx) &&
> -		state != PUNIT_PWRGT_PWR_GATE(pw_idx));
> +	dev_WARN_ON(dev, state != PUNIT_PWRGT_PWR_ON(pw_idx) &&
> +		    state != PUNIT_PWRGT_PWR_GATE(pw_idx));
>  	if (state == ctrl)
>  		enabled = true;
>  
> @@ -1214,7 +1241,7 @@ static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
>  	 * is poking at the power controls too.
>  	 */
>  	ctrl = vlv_punit_read(dev_priv, PUNIT_REG_PWRGT_CTRL) & mask;
> -	WARN_ON(ctrl != state);
> +	dev_WARN_ON(dev, ctrl != state);
>  
>  	vlv_punit_put(dev_priv);
>  
> @@ -1223,6 +1250,7 @@ static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
>  
>  static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
>  	/*
> @@ -1242,7 +1270,7 @@ static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv)
>  	I915_WRITE(MI_ARB_VLV, MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE);
>  	I915_WRITE(CBR1_VLV, 0);
>  
> -	WARN_ON(dev_priv->rawclk_freq == 0);
> +	dev_WARN_ON(dev, dev_priv->rawclk_freq == 0);
>  
>  	I915_WRITE(RAWCLK_FREQ_VLV,
>  		   DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 1000));
> @@ -1477,12 +1505,14 @@ static void assert_chv_phy_status(struct drm_i915_private *dev_priv)
>  static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv,
>  					   struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum dpio_phy phy;
>  	enum pipe pipe;
>  	u32 tmp;
>  
> -	WARN_ON_ONCE(power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
> -		     power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
> +	dev_WARN_ON_ONCE(dev,
> +			 power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
> +			 power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
>  
>  	if (power_well->desc->id == VLV_DISP_PW_DPIO_CMN_BC) {
>  		pipe = PIPE_A;
> @@ -1538,10 +1568,12 @@ static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv,
>  static void chv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv,
>  					    struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum dpio_phy phy;
>  
> -	WARN_ON_ONCE(power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
> -		     power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
> +	dev_WARN_ON_ONCE(dev,
> +			 power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
> +			 power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
>  
>  	if (power_well->desc->id == VLV_DISP_PW_DPIO_CMN_BC) {
>  		phy = DPIO_PHY0;
> @@ -1569,6 +1601,7 @@ static void chv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv,
>  static void assert_chv_phy_powergate(struct drm_i915_private *dev_priv, enum dpio_phy phy,
>  				     enum dpio_channel ch, bool override, unsigned int mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = phy == DPIO_PHY0 ? PIPE_A : PIPE_C;
>  	u32 reg, val, expected, actual;
>  
> @@ -1621,11 +1654,13 @@ static void assert_chv_phy_powergate(struct drm_i915_private *dev_priv, enum dpi
>  		actual = val >> DPIO_ANYDL_POWERDOWN_SHIFT_CH1;
>  	actual &= DPIO_ALLDL_POWERDOWN | DPIO_ANYDL_POWERDOWN;
>  
> -	WARN(actual != expected,
> -	     "Unexpected DPIO lane power down: all %d, any %d. Expected: all %d, any %d. (0x%x = 0x%08x)\n",
> -	     !!(actual & DPIO_ALLDL_POWERDOWN), !!(actual & DPIO_ANYDL_POWERDOWN),
> -	     !!(expected & DPIO_ALLDL_POWERDOWN), !!(expected & DPIO_ANYDL_POWERDOWN),
> -	     reg, val);
> +	dev_WARN(dev, actual != expected,
> +		 "Unexpected DPIO lane power down: all %d, any %d. Expected: all %d, any %d. (0x%x = 0x%08x)\n",
> +		 !!(actual & DPIO_ALLDL_POWERDOWN),
> +		 !!(actual & DPIO_ANYDL_POWERDOWN),
> +		 !!(expected & DPIO_ALLDL_POWERDOWN),
> +		 !!(expected & DPIO_ANYDL_POWERDOWN),
> +		 reg, val);
>  }
>  
>  bool chv_phy_powergate_ch(struct drm_i915_private *dev_priv, enum dpio_phy phy,
> @@ -1692,6 +1727,7 @@ void chv_phy_powergate_lanes(struct intel_encoder *encoder,
>  static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
>  					struct i915_power_well *power_well)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = PIPE_A;
>  	bool enabled;
>  	u32 state, ctrl;
> @@ -1703,7 +1739,9 @@ static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
>  	 * We only ever set the power-on and power-gate states, anything
>  	 * else is unexpected.
>  	 */
> -	WARN_ON(state != DP_SSS_PWR_ON(pipe) && state != DP_SSS_PWR_GATE(pipe));
> +	dev_WARN_ON(dev,
> +		    state != DP_SSS_PWR_ON(pipe) &&
> +		    state != DP_SSS_PWR_GATE(pipe));
>  	enabled = state == DP_SSS_PWR_ON(pipe);
>  
>  	/*
> @@ -1711,7 +1749,7 @@ static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
>  	 * is poking at the power controls too.
>  	 */
>  	ctrl = vlv_punit_read(dev_priv, PUNIT_REG_DSPSSPM) & DP_SSC_MASK(pipe);
> -	WARN_ON(ctrl << 16 != state);
> +	dev_WARN_ON(dev, ctrl << 16 != state);
>  
>  	vlv_punit_put(dev_priv);
>  
> @@ -1975,18 +2013,19 @@ static void
>  __intel_display_power_put_domain(struct drm_i915_private *dev_priv,
>  				 enum intel_display_power_domain domain)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_power_domains *power_domains;
>  	struct i915_power_well *power_well;
>  	const char *name = intel_display_power_domain_str(domain);
>  
>  	power_domains = &dev_priv->power_domains;
>  
> -	WARN(!power_domains->domain_use_count[domain],
> -	     "Use count on domain %s is already zero\n",
> -	     name);
> -	WARN(async_put_domains_mask(power_domains) & BIT_ULL(domain),
> -	     "Async disabling of domain %s is pending\n",
> -	     name);
> +	dev_WARN(dev, !power_domains->domain_use_count[domain],
> +		 "Use count on domain %s is already zero\n",
> +		 name);
> +	dev_WARN(dev, async_put_domains_mask(power_domains) & BIT_ULL(domain),
> +		 "Async disabling of domain %s is pending\n",
> +		 name);
>  
>  	power_domains->domain_use_count[domain]--;
>  
> @@ -2119,6 +2158,7 @@ void __intel_display_power_put_async(struct drm_i915_private *i915,
>  				     enum intel_display_power_domain domain,
>  				     intel_wakeref_t wakeref)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_power_domains *power_domains = &i915->power_domains;
>  	struct intel_runtime_pm *rpm = &i915->runtime_pm;
>  	intel_wakeref_t work_wakeref = intel_runtime_pm_get_raw(rpm);
> @@ -2131,7 +2171,7 @@ void __intel_display_power_put_async(struct drm_i915_private *i915,
>  		goto out_verify;
>  	}
>  
> -	WARN_ON(power_domains->domain_use_count[domain] != 1);
> +	dev_WARN_ON(dev, power_domains->domain_use_count[domain] != 1);
>  
>  	/* Let a pending work requeue itself or queue a new one. */
>  	if (power_domains->async_put_wakeref) {
> @@ -2199,6 +2239,7 @@ void intel_display_power_flush_work(struct drm_i915_private *i915)
>  static void
>  intel_display_power_flush_work_sync(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_power_domains *power_domains = &i915->power_domains;
>  
>  	intel_display_power_flush_work(i915);
> @@ -2206,7 +2247,7 @@ intel_display_power_flush_work_sync(struct drm_i915_private *i915)
>  
>  	verify_async_put_domains_state(power_domains);
>  
> -	WARN_ON(power_domains->async_put_wakeref);
> +	dev_WARN_ON(dev, power_domains->async_put_wakeref);
>  }
>  
>  #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
> @@ -5170,21 +5211,24 @@ static bool vlv_punit_is_power_gated(struct drm_i915_private *dev_priv, u32 reg0
>  
>  static void assert_ved_power_gated(struct drm_i915_private *dev_priv)
>  {
> -	WARN(!vlv_punit_is_power_gated(dev_priv, PUNIT_REG_VEDSSPM0),
> -	     "VED not power gated\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN(dev, !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_VEDSSPM0),
> +		 "VED not power gated\n");
>  }
>  
>  static void assert_isp_power_gated(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	static const struct pci_device_id isp_ids[] = {
>  		{PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0f38)},
>  		{PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x22b8)},
>  		{}
>  	};
>  
> -	WARN(!pci_dev_present(isp_ids) &&
> -	     !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_ISPSSPM0),
> -	     "ISP not power gated\n");
> +	dev_WARN(dev, !pci_dev_present(isp_ids) &&
> +		 !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_ISPSSPM0),
> +		 "ISP not power gated\n");
>  }
>  
>  static void intel_power_domains_verify_state(struct drm_i915_private *dev_priv);
> @@ -5315,9 +5359,10 @@ void intel_power_domains_enable(struct drm_i915_private *i915)
>   */
>  void intel_power_domains_disable(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_power_domains *power_domains = &i915->power_domains;
>  
> -	WARN_ON(power_domains->wakeref);
> +	dev_WARN_ON(dev, power_domains->wakeref);
>  	power_domains->wakeref =
>  		intel_display_power_get(i915, POWER_DOMAIN_INIT);
>  
> @@ -5393,13 +5438,14 @@ void intel_power_domains_suspend(struct drm_i915_private *i915,
>   */
>  void intel_power_domains_resume(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_power_domains *power_domains = &i915->power_domains;
>  
>  	if (power_domains->display_core_suspended) {
>  		intel_power_domains_init_hw(i915, true);
>  		power_domains->display_core_suspended = false;
>  	} else {
> -		WARN_ON(power_domains->wakeref);
> +		dev_WARN_ON(dev, power_domains->wakeref);
>  		power_domains->wakeref =
>  			intel_display_power_get(i915, POWER_DOMAIN_INIT);
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index 255de50fcf84..c637929aa311 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -324,13 +324,14 @@ intel_dp_set_source_rates(struct intel_dp *intel_dp)
>  	};
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct ddi_vbt_port_info *info =
>  		&dev_priv->vbt.ddi_port_info[dig_port->base.port];
>  	const int *source_rates;
>  	int size, max_rate = 0, vbt_max_rate = info->dp_max_link_rate;
>  
>  	/* This should only be done once */
> -	WARN_ON(intel_dp->source_rates || intel_dp->num_source_rates);
> +	dev_WARN_ON(dev, intel_dp->source_rates || intel_dp->num_source_rates);
>  
>  	if (INTEL_GEN(dev_priv) >= 10) {
>  		source_rates = cnl_rates;
> @@ -753,6 +754,7 @@ static void
>  vlv_power_sequencer_kick(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>  	enum pipe pipe = intel_dp->pps_pipe;
>  	bool pll_enabled, release_cl_override = false;
> @@ -760,10 +762,10 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
>  	enum dpio_channel ch = vlv_pipe_to_channel(pipe);
>  	u32 DP;
>  
> -	if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
> -		 "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
> -		 pipe_name(pipe), intel_dig_port->base.base.base.id,
> -		 intel_dig_port->base.base.name))
> +	if (dev_WARN(dev, I915_READ(intel_dp->output_reg) & DP_PORT_EN,
> +		     "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
> +		     pipe_name(pipe), intel_dig_port->base.base.base.id,
> +		     intel_dig_port->base.base.name))
>  		return;
>  
>  	DRM_DEBUG_KMS("kicking pipe %c power sequencer for [ENCODER:%d:%s]\n",
> @@ -826,6 +828,7 @@ vlv_power_sequencer_kick(struct intel_dp *intel_dp)
>  
>  static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_encoder *encoder;
>  	unsigned int pipes = (1 << PIPE_A) | (1 << PIPE_B);
>  
> @@ -837,13 +840,14 @@ static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
>  		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
>  		if (encoder->type == INTEL_OUTPUT_EDP) {
> -			WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
> -				intel_dp->active_pipe != intel_dp->pps_pipe);
> +			dev_WARN_ON(dev,
> +				    intel_dp->active_pipe != INVALID_PIPE &&
> +				    intel_dp->active_pipe != intel_dp->pps_pipe);
>  
>  			if (intel_dp->pps_pipe != INVALID_PIPE)
>  				pipes &= ~(1 << intel_dp->pps_pipe);
>  		} else {
> -			WARN_ON(intel_dp->pps_pipe != INVALID_PIPE);
> +			dev_WARN_ON(dev, intel_dp->pps_pipe != INVALID_PIPE);
>  
>  			if (intel_dp->active_pipe != INVALID_PIPE)
>  				pipes &= ~(1 << intel_dp->active_pipe);
> @@ -860,16 +864,17 @@ static enum pipe
>  vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>  	enum pipe pipe;
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
>  	/* We should never land here with regular DP ports */
> -	WARN_ON(!intel_dp_is_edp(intel_dp));
> +	dev_WARN_ON(dev, !intel_dp_is_edp(intel_dp));
>  
> -	WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
> -		intel_dp->active_pipe != intel_dp->pps_pipe);
> +	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE &&
> +		    intel_dp->active_pipe != intel_dp->pps_pipe);
>  
>  	if (intel_dp->pps_pipe != INVALID_PIPE)
>  		return intel_dp->pps_pipe;
> @@ -880,7 +885,7 @@ vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
>  	 * Didn't find one. This should not happen since there
>  	 * are two power sequencers and up to two eDP ports.
>  	 */
> -	if (WARN_ON(pipe == INVALID_PIPE))
> +	if (dev_WARN_ON(dev, pipe == INVALID_PIPE))
>  		pipe = PIPE_A;
>  
>  	vlv_steal_power_sequencer(dev_priv, pipe);
> @@ -908,12 +913,13 @@ static int
>  bxt_power_sequencer_idx(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int backlight_controller = dev_priv->vbt.backlight.controller;
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
>  	/* We should never land here with regular DP ports */
> -	WARN_ON(!intel_dp_is_edp(intel_dp));
> +	dev_WARN_ON(dev, !intel_dp_is_edp(intel_dp));
>  
>  	if (!intel_dp->pps_reset)
>  		return backlight_controller;
> @@ -1014,10 +1020,12 @@ vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
>  
>  void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_encoder *encoder;
>  
> -	if (WARN_ON(!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv) &&
> -		    !IS_GEN9_LP(dev_priv)))
> +	if (dev_WARN_ON(dev, !IS_VALLEYVIEW(dev_priv) &&
> +			!IS_CHERRYVIEW(dev_priv) &&
> +			!IS_GEN9_LP(dev_priv)))
>  		return;
>  
>  	/*
> @@ -1033,7 +1041,7 @@ void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
>  	for_each_intel_dp(&dev_priv->drm, encoder) {
>  		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
> -		WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
> +		dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
>  
>  		if (encoder->type != INTEL_OUTPUT_EDP)
>  			continue;
> @@ -1162,12 +1170,14 @@ static void
>  intel_dp_check_edp(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (!intel_dp_is_edp(intel_dp))
>  		return;
>  
>  	if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) {
> -		WARN(1, "eDP powered off while attempting aux channel communication.\n");
> +		dev_WARN(dev, 1,
> +			 "eDP powered off while attempting aux channel communication.\n");
>  		DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n",
>  			      I915_READ(_pp_stat_reg(intel_dp)),
>  			      I915_READ(_pp_ctrl_reg(intel_dp)));
> @@ -1324,6 +1334,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
>  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_i915_private *i915 =
>  			to_i915(intel_dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = &i915->uncore;
>  	enum phy phy = intel_port_to_phy(i915, intel_dig_port->base.port);
>  	bool is_tc_port = intel_phy_is_tc(i915, phy);
> @@ -1378,8 +1389,9 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
>  		const u32 status = intel_uncore_read(uncore, ch_ctl);
>  
>  		if (status != intel_dp->aux_busy_last_status) {
> -			WARN(1, "dp_aux_ch not started status 0x%08x\n",
> -			     status);
> +			dev_WARN(dev, 1,
> +				 "dp_aux_ch not started status 0x%08x\n",
> +				 status);
>  			intel_dp->aux_busy_last_status = status;
>  		}
>  
> @@ -1388,7 +1400,7 @@ intel_dp_aux_xfer(struct intel_dp *intel_dp,
>  	}
>  
>  	/* Only 5 data registers! */
> -	if (WARN_ON(send_bytes > 20 || recv_size > 20)) {
> +	if (dev_WARN_ON(dev, send_bytes > 20 || recv_size > 20)) {
>  		ret = -E2BIG;
>  		goto out;
>  	}
> @@ -2656,13 +2668,14 @@ static void edp_wait_backlight_off(struct intel_dp *intel_dp)
>  static  u32 ilk_get_pp_control(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 control;
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
>  	control = I915_READ(_pp_ctrl_reg(intel_dp));
> -	if (WARN_ON(!HAS_DDI(dev_priv) &&
> -		    (control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
> +	if (dev_WARN_ON(dev, !HAS_DDI(dev_priv) &&
> +			(control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
>  		control &= ~PANEL_UNLOCK_MASK;
>  		control |= PANEL_UNLOCK_REGS;
>  	}
> @@ -2752,6 +2765,7 @@ void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
>  static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *intel_dig_port =
>  		dp_to_dig_port(intel_dp);
>  	u32 pp;
> @@ -2759,7 +2773,7 @@ static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
> -	WARN_ON(intel_dp->want_panel_vdd);
> +	dev_WARN_ON(dev, intel_dp->want_panel_vdd);
>  
>  	if (!edp_have_panel_vdd(intel_dp))
>  		return;
> @@ -2843,6 +2857,7 @@ static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
>  static void edp_panel_on(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 pp;
>  	i915_reg_t pp_ctrl_reg;
>  
> @@ -2855,10 +2870,10 @@ static void edp_panel_on(struct intel_dp *intel_dp)
>  		      dp_to_dig_port(intel_dp)->base.base.base.id,
>  		      dp_to_dig_port(intel_dp)->base.base.name);
>  
> -	if (WARN(edp_have_panel_power(intel_dp),
> -		 "[ENCODER:%d:%s] panel power already on\n",
> -		 dp_to_dig_port(intel_dp)->base.base.base.id,
> -		 dp_to_dig_port(intel_dp)->base.base.name))
> +	if (dev_WARN(dev, edp_have_panel_power(intel_dp),
> +		     "[ENCODER:%d:%s] panel power already on\n",
> +		     dp_to_dig_port(intel_dp)->base.base.base.id,
> +		     dp_to_dig_port(intel_dp)->base.base.name))
>  		return;
>  
>  	wait_panel_power_cycle(intel_dp);
> @@ -2904,6 +2919,7 @@ void intel_edp_panel_on(struct intel_dp *intel_dp)
>  static void edp_panel_off(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	u32 pp;
>  	i915_reg_t pp_ctrl_reg;
> @@ -2916,8 +2932,9 @@ static void edp_panel_off(struct intel_dp *intel_dp)
>  	DRM_DEBUG_KMS("Turn [ENCODER:%d:%s] panel power off\n",
>  		      dig_port->base.base.base.id, dig_port->base.base.name);
>  
> -	WARN(!intel_dp->want_panel_vdd, "Need [ENCODER:%d:%s] VDD to turn off panel\n",
> -	     dig_port->base.base.base.id, dig_port->base.base.name);
> +	dev_WARN(dev, !intel_dp->want_panel_vdd,
> +		 "Need [ENCODER:%d:%s] VDD to turn off panel\n",
> +		 dig_port->base.base.base.id, dig_port->base.base.name);
>  
>  	pp = ilk_get_pp_control(intel_dp);
>  	/* We need to switch off panel power _and_ force vdd, for otherwise some
> @@ -3548,13 +3565,14 @@ static void intel_enable_dp(struct intel_encoder *encoder,
>  			    const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>  	u32 dp_reg = I915_READ(intel_dp->output_reg);
>  	enum pipe pipe = crtc->pipe;
>  	intel_wakeref_t wakeref;
>  
> -	if (WARN_ON(dp_reg & DP_PORT_EN))
> +	if (dev_WARN_ON(dev, dp_reg & DP_PORT_EN))
>  		return;
>  
>  	with_pps_lock(intel_dp, wakeref) {
> @@ -3622,12 +3640,13 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
>  {
>  	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
>  	struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum pipe pipe = intel_dp->pps_pipe;
>  	i915_reg_t pp_on_reg = PP_ON_DELAYS(pipe);
>  
> -	WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
> +	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
>  
> -	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
> +	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
>  		return;
>  
>  	edp_panel_vdd_off_sync(intel_dp);
> @@ -3653,6 +3672,7 @@ static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
>  static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
>  				      enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_encoder *encoder;
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
> @@ -3660,10 +3680,10 @@ static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
>  	for_each_intel_dp(&dev_priv->drm, encoder) {
>  		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  
> -		WARN(intel_dp->active_pipe == pipe,
> -		     "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
> -		     pipe_name(pipe), encoder->base.base.id,
> -		     encoder->base.name);
> +		dev_WARN(dev, intel_dp->active_pipe == pipe,
> +			 "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
> +			 pipe_name(pipe), encoder->base.base.id,
> +			 encoder->base.name);
>  
>  		if (intel_dp->pps_pipe != pipe)
>  			continue;
> @@ -3681,12 +3701,13 @@ static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
>  					   const struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  
>  	lockdep_assert_held(&dev_priv->pps_mutex);
>  
> -	WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
> +	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
>  
>  	if (intel_dp->pps_pipe != INVALID_PIPE &&
>  	    intel_dp->pps_pipe != crtc->pipe) {
> @@ -4203,12 +4224,14 @@ intel_dp_link_down(struct intel_encoder *encoder,
>  		   const struct intel_crtc_state *old_crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>  	enum port port = encoder->port;
>  	u32 DP = intel_dp->DP;
>  
> -	if (WARN_ON((I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
> +	if (dev_WARN_ON(dev,
> +			(I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
>  		return;
>  
>  	DRM_DEBUG_KMS("\n");
> @@ -4368,9 +4391,10 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv =
>  		to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	/* this function is meant to be called only once */
> -	WARN_ON(intel_dp->dpcd[DP_DPCD_REV] != 0);
> +	dev_WARN_ON(dev, intel_dp->dpcd[DP_DPCD_REV] != 0);
>  
>  	if (!intel_dp_read_dpcd(intel_dp))
>  		return false;
> @@ -5096,6 +5120,7 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
>  			  struct drm_modeset_acquire_ctx *ctx)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
>  	struct intel_connector *connector = intel_dp->attached_connector;
>  	struct drm_connector_state *conn_state;
> @@ -5125,7 +5150,7 @@ int intel_dp_retrain_link(struct intel_encoder *encoder,
>  
>  	crtc_state = to_intel_crtc_state(crtc->base.state);
>  
> -	WARN_ON(!intel_crtc_has_dp_encoder(crtc_state));
> +	dev_WARN_ON(dev, !intel_crtc_has_dp_encoder(crtc_state));
>  
>  	if (!crtc_state->hw.active)
>  		return 0;
> @@ -5651,6 +5676,7 @@ intel_dp_detect(struct drm_connector *connector,
>  		bool force)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = intel_attached_dp(connector);
>  	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
>  	struct intel_encoder *encoder = &dig_port->base;
> @@ -5658,7 +5684,8 @@ intel_dp_detect(struct drm_connector *connector,
>  
>  	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
>  		      connector->base.id, connector->name);
> -	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
> +	dev_WARN_ON(dev,
> +		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
>  
>  	/* Can't disconnect eDP */
>  	if (intel_dp_is_edp(intel_dp))
> @@ -6840,6 +6867,7 @@ intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
>  					      bool force_disable_vdd)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 pp_on, pp_off, port_sel = 0;
>  	int div = dev_priv->rawclk_freq / 1000;
>  	struct pps_registers regs;
> @@ -6865,7 +6893,7 @@ intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
>  	if (force_disable_vdd) {
>  		u32 pp = ilk_get_pp_control(intel_dp);
>  
> -		WARN(pp & PANEL_POWER_ON, "Panel power already on\n");
> +		dev_WARN(dev, pp & PANEL_POWER_ON, "Panel power already on\n");
>  
>  		if (pp & EDP_FORCE_VDD)
>  			DRM_DEBUG_KMS("VDD already on, disabling first\n");
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index 3b066c63816d..84d25496ed45 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -346,13 +346,14 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
>  	struct intel_connector *connector =
>  		to_intel_connector(old_conn_state->connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	bool last_mst_stream;
>  	u32 val;
>  
>  	intel_dp->active_mst_links--;
>  	last_mst_stream = intel_dp->active_mst_links == 0;
> -	WARN_ON(INTEL_GEN(dev_priv) >= 12 && last_mst_stream &&
> -		!intel_dp_mst_is_master_trans(old_crtc_state));
> +	dev_WARN_ON(dev, INTEL_GEN(dev_priv) >= 12 && last_mst_stream &&
> +		    !intel_dp_mst_is_master_trans(old_crtc_state));
>  
>  	intel_crtc_vblank_off(old_crtc_state);
>  
> @@ -424,6 +425,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
>  	struct intel_digital_port *intel_dig_port = intel_mst->primary;
>  	struct intel_dp *intel_dp = &intel_dig_port->dp;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_connector *connector =
>  		to_intel_connector(conn_state->connector);
>  	int ret;
> @@ -436,8 +438,8 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
>  	connector->encoder = encoder;
>  	intel_mst->connector = connector;
>  	first_mst_stream = intel_dp->active_mst_links == 0;
> -	WARN_ON(INTEL_GEN(dev_priv) >= 12 && first_mst_stream &&
> -		!intel_dp_mst_is_master_trans(pipe_config));
> +	dev_WARN_ON(dev, INTEL_GEN(dev_priv) >= 12 && first_mst_stream &&
> +		    !intel_dp_mst_is_master_trans(pipe_config));
>  
>  	DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> index 704f38681c4b..ed0e6c09d13a 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
> @@ -237,6 +237,7 @@ bxt_get_phy_info(struct drm_i915_private *dev_priv, enum dpio_phy phy)
>  void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port,
>  			     enum dpio_phy *phy, enum dpio_channel *ch)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct bxt_ddi_phy_info *phy_info, *phys;
>  	int i, count;
>  
> @@ -259,7 +260,7 @@ void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port,
>  		}
>  	}
>  
> -	WARN(1, "PHY not found for PORT %c", port_name(port));
> +	dev_WARN(dev, 1, "PHY not found for PORT %c", port_name(port));
>  	*phy = DPIO_PHY0;
>  	*ch = DPIO_CH0;
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> index 2cae30d2669c..7141d5ae0ee3 100644
> --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
> @@ -103,8 +103,10 @@ enum intel_dpll_id
>  intel_get_shared_dpll_id(struct drm_i915_private *dev_priv,
>  			 struct intel_shared_dpll *pll)
>  {
> -	if (WARN_ON(pll < dev_priv->shared_dplls||
> -		    pll > &dev_priv->shared_dplls[dev_priv->num_shared_dpll]))
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	if (dev_WARN_ON(dev, pll < dev_priv->shared_dplls ||
> +			pll > &dev_priv->shared_dplls[dev_priv->num_shared_dpll]))
>  		return -1;
>  
>  	return (enum intel_dpll_id) (pll - dev_priv->shared_dplls);
> @@ -115,10 +117,12 @@ void assert_shared_dpll(struct drm_i915_private *dev_priv,
>  			struct intel_shared_dpll *pll,
>  			bool state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	bool cur_state;
>  	struct intel_dpll_hw_state hw_state;
>  
> -	if (WARN(!pll, "asserting DPLL %s with no DPLL\n", onoff(state)))
> +	if (dev_WARN(dev, !pll,
> +		     "asserting DPLL %s with no DPLL\n", onoff(state)))
>  		return;
>  
>  	cur_state = pll->info->funcs->get_hw_state(dev_priv, pll, &hw_state);
> @@ -138,16 +142,17 @@ void intel_prepare_shared_dpll(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>  
> -	if (WARN_ON(pll == NULL))
> +	if (dev_WARN_ON(dev, pll == NULL))
>  		return;
>  
>  	mutex_lock(&dev_priv->dpll_lock);
> -	WARN_ON(!pll->state.crtc_mask);
> +	dev_WARN_ON(dev, !pll->state.crtc_mask);
>  	if (!pll->active_mask) {
>  		DRM_DEBUG_DRIVER("setting up %s\n", pll->info->name);
> -		WARN_ON(pll->on);
> +		dev_WARN_ON(dev, pll->on);
>  		assert_shared_dpll_disabled(dev_priv, pll);
>  
>  		pll->info->funcs->prepare(dev_priv, pll);
> @@ -165,18 +170,19 @@ void intel_enable_shared_dpll(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>  	unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
>  	unsigned int old_mask;
>  
> -	if (WARN_ON(pll == NULL))
> +	if (dev_WARN_ON(dev, pll == NULL))
>  		return;
>  
>  	mutex_lock(&dev_priv->dpll_lock);
>  	old_mask = pll->active_mask;
>  
> -	if (WARN_ON(!(pll->state.crtc_mask & crtc_mask)) ||
> -	    WARN_ON(pll->active_mask & crtc_mask))
> +	if (dev_WARN_ON(dev, !(pll->state.crtc_mask & crtc_mask)) ||
> +	    dev_WARN_ON(dev, pll->active_mask & crtc_mask))
>  		goto out;
>  
>  	pll->active_mask |= crtc_mask;
> @@ -186,11 +192,11 @@ void intel_enable_shared_dpll(const struct intel_crtc_state *crtc_state)
>  		      crtc->base.base.id);
>  
>  	if (old_mask) {
> -		WARN_ON(!pll->on);
> +		dev_WARN_ON(dev, !pll->on);
>  		assert_shared_dpll_enabled(dev_priv, pll);
>  		goto out;
>  	}
> -	WARN_ON(pll->on);
> +	dev_WARN_ON(dev, pll->on);
>  
>  	DRM_DEBUG_KMS("enabling %s\n", pll->info->name);
>  	pll->info->funcs->enable(dev_priv, pll);
> @@ -210,6 +216,7 @@ void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
>  	unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
>  
> @@ -221,7 +228,7 @@ void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
>  		return;
>  
>  	mutex_lock(&dev_priv->dpll_lock);
> -	if (WARN_ON(!(pll->active_mask & crtc_mask)))
> +	if (dev_WARN_ON(dev, !(pll->active_mask & crtc_mask)))
>  		goto out;
>  
>  	DRM_DEBUG_KMS("disable %s (active %x, on? %d) for crtc %d\n",
> @@ -229,7 +236,7 @@ void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
>  		      crtc->base.base.id);
>  
>  	assert_shared_dpll_enabled(dev_priv, pll);
> -	WARN_ON(!pll->on);
> +	dev_WARN_ON(dev, !pll->on);
>  
>  	pll->active_mask &= ~crtc_mask;
>  	if (pll->active_mask)
> @@ -250,13 +257,14 @@ intel_find_shared_dpll(struct intel_atomic_state *state,
>  		       unsigned long dpll_mask)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_shared_dpll *pll, *unused_pll = NULL;
>  	struct intel_shared_dpll_state *shared_dpll;
>  	enum intel_dpll_id i;
>  
>  	shared_dpll = intel_atomic_get_shared_dpll_state(&state->base);
>  
> -	WARN_ON(dpll_mask & ~(BIT(I915_NUM_PLLS) - 1));
> +	dev_WARN_ON(dev, dpll_mask & ~(BIT(I915_NUM_PLLS) - 1));
>  
>  	for_each_set_bit(i, &dpll_mask, I915_NUM_PLLS) {
>  		pll = &dev_priv->shared_dplls[i];
> @@ -1085,6 +1093,7 @@ static bool skl_ddi_dpll0_get_hw_state(struct drm_i915_private *dev_priv,
>  				       struct intel_shared_dpll *pll,
>  				       struct intel_dpll_hw_state *hw_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct skl_dpll_regs *regs = skl_dpll_regs;
>  	const enum intel_dpll_id id = pll->info->id;
>  	intel_wakeref_t wakeref;
> @@ -1100,7 +1109,7 @@ static bool skl_ddi_dpll0_get_hw_state(struct drm_i915_private *dev_priv,
>  
>  	/* DPLL0 is always enabled since it drives CDCLK */
>  	val = I915_READ(regs[id].ctl);
> -	if (WARN_ON(!(val & LCPLL_PLL_ENABLE)))
> +	if (dev_WARN_ON(dev, !(val & LCPLL_PLL_ENABLE)))
>  		goto out;
>  
>  	val = I915_READ(DPLL_CTRL1);
> @@ -3812,9 +3821,10 @@ bool intel_reserve_shared_dplls(struct intel_atomic_state *state,
>  				struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(state->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct intel_dpll_mgr *dpll_mgr = dev_priv->dpll_mgr;
>  
> -	if (WARN_ON(!dpll_mgr))
> +	if (dev_WARN_ON(dev, !dpll_mgr))
>  		return false;
>  
>  	return dpll_mgr->get_dplls(state, crtc, encoder);
> @@ -3864,9 +3874,10 @@ void intel_update_active_dpll(struct intel_atomic_state *state,
>  			      struct intel_encoder *encoder)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct intel_dpll_mgr *dpll_mgr = dev_priv->dpll_mgr;
>  
> -	if (WARN_ON(!dpll_mgr))
> +	if (dev_WARN_ON(dev, !dpll_mgr))
>  		return;
>  
>  	dpll_mgr->update_active_dpll(state, crtc, encoder);
> diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
> index ada006a690df..9370f5031ed0 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsb.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsb.c
> @@ -161,11 +161,12 @@ void intel_dsb_put(struct intel_dsb *dsb)
>  {
>  	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
>  	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  
>  	if (!HAS_DSB(i915))
>  		return;
>  
> -	if (WARN_ON(dsb->refcount == 0))
> +	if (dev_WARN_ON(dev, dsb->refcount == 0))
>  		return;
>  
>  	if (--dsb->refcount == 0) {
> @@ -194,6 +195,7 @@ void intel_dsb_indexed_reg_write(struct intel_dsb *dsb, i915_reg_t reg,
>  {
>  	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 *buf = dsb->cmd_buf;
>  	u32 reg_val;
>  
> @@ -202,7 +204,7 @@ void intel_dsb_indexed_reg_write(struct intel_dsb *dsb, i915_reg_t reg,
>  		return;
>  	}
>  
> -	if (WARN_ON(dsb->free_pos >= DSB_BUF_SIZE)) {
> +	if (dev_WARN_ON(dev, dsb->free_pos >= DSB_BUF_SIZE)) {
>  		DRM_DEBUG_KMS("DSB buffer overflow\n");
>  		return;
>  	}
> @@ -269,6 +271,7 @@ void intel_dsb_reg_write(struct intel_dsb *dsb, i915_reg_t reg, u32 val)
>  {
>  	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 *buf = dsb->cmd_buf;
>  
>  	if (!buf) {
> @@ -276,7 +279,7 @@ void intel_dsb_reg_write(struct intel_dsb *dsb, i915_reg_t reg, u32 val)
>  		return;
>  	}
>  
> -	if (WARN_ON(dsb->free_pos >= DSB_BUF_SIZE)) {
> +	if (dev_WARN_ON(dev, dsb->free_pos >= DSB_BUF_SIZE)) {
>  		DRM_DEBUG_KMS("DSB buffer overflow\n");
>  		return;
>  	}
> diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> index f90946c912ee..53c167cf389e 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
> @@ -457,17 +457,18 @@ void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
>  				 enum mipi_seq seq_id)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const u8 *data;
>  	fn_mipi_elem_exec mipi_elem_exec;
>  
> -	if (WARN_ON(seq_id >= ARRAY_SIZE(dev_priv->vbt.dsi.sequence)))
> +	if (dev_WARN_ON(dev, seq_id >= ARRAY_SIZE(dev_priv->vbt.dsi.sequence)))
>  		return;
>  
>  	data = dev_priv->vbt.dsi.sequence[seq_id];
>  	if (!data)
>  		return;
>  
> -	WARN_ON(*data != seq_id);
> +	dev_WARN_ON(dev, *data != seq_id);
>  
>  	DRM_DEBUG_KMS("Starting MIPI sequence %d - %s\n",
>  		      seq_id, sequence_name(seq_id));
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index a1048ece541e..2c4c1b6438f6 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -405,9 +405,10 @@ bool intel_fbc_is_active(struct drm_i915_private *dev_priv)
>  static void intel_fbc_deactivate(struct drm_i915_private *dev_priv,
>  				 const char *reason)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  
> -	WARN_ON(!mutex_is_locked(&fbc->lock));
> +	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
>  
>  	if (fbc->active)
>  		intel_fbc_hw_deactivate(dev_priv);
> @@ -467,11 +468,12 @@ static int find_compression_threshold(struct drm_i915_private *dev_priv,
>  static int intel_fbc_alloc_cfb(struct drm_i915_private *dev_priv,
>  			       unsigned int size, unsigned int fb_cpp)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  	struct drm_mm_node *uninitialized_var(compressed_llb);
>  	int ret;
>  
> -	WARN_ON(drm_mm_node_allocated(&fbc->compressed_fb));
> +	dev_WARN_ON(dev, drm_mm_node_allocated(&fbc->compressed_fb));
>  
>  	ret = find_compression_threshold(dev_priv, &fbc->compressed_fb,
>  					 size, fb_cpp);
> @@ -554,8 +556,9 @@ void intel_fbc_cleanup_cfb(struct drm_i915_private *dev_priv)
>  static bool stride_is_valid(struct drm_i915_private *dev_priv,
>  			    unsigned int stride)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	/* This should have been caught earlier. */
> -	if (WARN_ON_ONCE((stride & (64 - 1)) != 0))
> +	if (dev_WARN_ON_ONCE(dev, (stride & (64 - 1)) != 0))
>  		return false;
>  
>  	/* Below are the additional FBC restrictions. */
> @@ -634,6 +637,7 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
>  					 const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  	struct intel_fbc_state_cache *cache = &fbc->state_cache;
>  	struct drm_framebuffer *fb = plane_state->hw.fb;
> @@ -663,8 +667,8 @@ static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
>  	cache->fb.format = fb->format;
>  	cache->fb.stride = fb->pitches[0];
>  
> -	WARN_ON(plane_state->flags & PLANE_HAS_FENCE &&
> -		!plane_state->vma->fence);
> +	dev_WARN_ON(dev, plane_state->flags & PLANE_HAS_FENCE &&
> +		    !plane_state->vma->fence);
>  
>  	if (plane_state->flags & PLANE_HAS_FENCE &&
>  	    plane_state->vma->fence)
> @@ -923,12 +927,13 @@ bool intel_fbc_pre_update(struct intel_crtc *crtc,
>   */
>  static void __intel_fbc_disable(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  	struct intel_crtc *crtc = fbc->crtc;
>  
> -	WARN_ON(!mutex_is_locked(&fbc->lock));
> -	WARN_ON(!fbc->crtc);
> -	WARN_ON(fbc->active);
> +	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
> +	dev_WARN_ON(dev, !fbc->crtc);
> +	dev_WARN_ON(dev, fbc->active);
>  
>  	DRM_DEBUG_KMS("Disabling FBC on pipe %c\n", pipe_name(crtc->pipe));
>  
> @@ -940,9 +945,10 @@ static void __intel_fbc_disable(struct drm_i915_private *dev_priv)
>  static void __intel_fbc_post_update(struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  
> -	WARN_ON(!mutex_is_locked(&fbc->lock));
> +	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
>  
>  	if (fbc->crtc != crtc)
>  		return;
> @@ -1112,6 +1118,7 @@ void intel_fbc_enable(struct intel_crtc *crtc,
>  		      const struct intel_plane_state *plane_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  	struct intel_fbc_state_cache *cache = &fbc->state_cache;
>  	const struct drm_framebuffer *fb = plane_state->hw.fb;
> @@ -1129,7 +1136,7 @@ void intel_fbc_enable(struct intel_crtc *crtc,
>  		__intel_fbc_disable(dev_priv);
>  	}
>  
> -	WARN_ON(fbc->active);
> +	dev_WARN_ON(dev, fbc->active);
>  
>  	intel_fbc_update_state_cache(crtc, crtc_state, plane_state);
>  
> @@ -1188,6 +1195,7 @@ void intel_fbc_disable(struct intel_crtc *crtc)
>   */
>  void intel_fbc_global_disable(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_fbc *fbc = &dev_priv->fbc;
>  
>  	if (!fbc_supported(dev_priv))
> @@ -1195,7 +1203,7 @@ void intel_fbc_global_disable(struct drm_i915_private *dev_priv)
>  
>  	mutex_lock(&fbc->lock);
>  	if (fbc->crtc) {
> -		WARN_ON(fbc->crtc->active);
> +		dev_WARN_ON(dev, fbc->crtc->active);
>  		__intel_fbc_disable(dev_priv);
>  	}
>  	mutex_unlock(&fbc->lock);
> diff --git a/drivers/gpu/drm/i915/display/intel_gmbus.c b/drivers/gpu/drm/i915/display/intel_gmbus.c
> index 3d4d19ac1d14..721f7fa3008c 100644
> --- a/drivers/gpu/drm/i915/display/intel_gmbus.c
> +++ b/drivers/gpu/drm/i915/display/intel_gmbus.c
> @@ -908,7 +908,9 @@ int intel_gmbus_setup(struct drm_i915_private *dev_priv)
>  struct i2c_adapter *intel_gmbus_get_adapter(struct drm_i915_private *dev_priv,
>  					    unsigned int pin)
>  {
> -	if (WARN_ON(!intel_gmbus_is_valid_pin(dev_priv, pin)))
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	if (dev_WARN_ON(dev, !intel_gmbus_is_valid_pin(dev_priv, pin)))
>  		return NULL;
>  
>  	return &dev_priv->gmbus[pin].adapter;
> diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
> index 0fdbd39f6641..f1d9b7958e08 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
> @@ -838,6 +838,7 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
>  {
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	enum port port = intel_dig_port->base.port;
>  	enum transcoder cpu_transcoder;
> @@ -853,7 +854,8 @@ static int intel_hdcp_check_link(struct intel_connector *connector)
>  		goto out;
>  	}
>  
> -	if (WARN_ON(!intel_hdcp_in_use(dev_priv, cpu_transcoder, port))) {
> +	if (dev_WARN_ON(dev,
> +			!intel_hdcp_in_use(dev_priv, cpu_transcoder, port))) {
>  		DRM_ERROR("%s:%d HDCP link stopped encryption,%x\n",
>  			  connector->base.name, connector->base.base.id,
>  			  I915_READ(HDCP_STATUS(dev_priv, cpu_transcoder,
> @@ -1526,13 +1528,15 @@ static int hdcp2_enable_encryption(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = connector->encoder->port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> -	WARN_ON(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
> -		LINK_ENCRYPTION_STATUS);
> +	dev_WARN_ON(dev,
> +		    I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
> +		    LINK_ENCRYPTION_STATUS);
>  	if (hdcp->shim->toggle_signalling) {
>  		ret = hdcp->shim->toggle_signalling(intel_dig_port, true);
>  		if (ret) {
> @@ -1564,13 +1568,15 @@ static int hdcp2_disable_encryption(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = connector->encoder->port;
>  	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
>  	int ret;
>  
> -	WARN_ON(!(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
> -			    LINK_ENCRYPTION_STATUS));
> +	dev_WARN_ON(dev,
> +		    !(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
> +		      LINK_ENCRYPTION_STATUS));
>  
>  	I915_WRITE(HDCP2_CTL(dev_priv, cpu_transcoder, port),
>  		   I915_READ(HDCP2_CTL(dev_priv, cpu_transcoder, port)) &
> @@ -1675,6 +1681,7 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  {
>  	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	enum port port = connector->encoder->port;
>  	enum transcoder cpu_transcoder;
> @@ -1690,7 +1697,8 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)
>  		goto out;
>  	}
>  
> -	if (WARN_ON(!intel_hdcp2_in_use(dev_priv, cpu_transcoder, port))) {
> +	if (dev_WARN_ON(dev,
> +			!intel_hdcp2_in_use(dev_priv, cpu_transcoder, port))) {
>  		DRM_ERROR("HDCP2.2 link stopped the encryption, %x\n",
>  			  I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder,
>  						 port)));
> @@ -1875,13 +1883,14 @@ static bool is_hdcp2_supported(struct drm_i915_private *dev_priv)
>  
>  void intel_hdcp_component_init(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int ret;
>  
>  	if (!is_hdcp2_supported(dev_priv))
>  		return;
>  
>  	mutex_lock(&dev_priv->hdcp_comp_mutex);
> -	WARN_ON(dev_priv->hdcp_comp_added);
> +	dev_WARN_ON(dev, dev_priv->hdcp_comp_added);
>  
>  	dev_priv->hdcp_comp_added = true;
>  	mutex_unlock(&dev_priv->hdcp_comp_mutex);
> @@ -1946,6 +1955,7 @@ int intel_hdcp_enable(struct intel_connector *connector,
>  		      enum transcoder cpu_transcoder, u8 content_type)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_hdcp *hdcp = &connector->hdcp;
>  	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
>  	int ret = -EINVAL;
> @@ -1954,7 +1964,7 @@ int intel_hdcp_enable(struct intel_connector *connector,
>  		return -ENOENT;
>  
>  	mutex_lock(&hdcp->mutex);
> -	WARN_ON(hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
> +	dev_WARN_ON(dev, hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
>  	hdcp->content_type = content_type;
>  
>  	if (INTEL_GEN(dev_priv) >= 12) {
> diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
> index 715b854b24a0..7dbd30c65d62 100644
> --- a/drivers/gpu/drm/i915/display/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
> @@ -80,9 +80,11 @@ static void
>  assert_hdmi_transcoder_func_disabled(struct drm_i915_private *dev_priv,
>  				     enum transcoder cpu_transcoder)
>  {
> -	WARN(I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)) &
> -	     TRANS_DDI_FUNC_ENABLE,
> -	     "HDMI transcoder function enabled, expecting disabled\n");
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN(dev, I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)) &
> +		 TRANS_DDI_FUNC_ENABLE,
> +		 "HDMI transcoder function enabled, expecting disabled\n");
>  }
>  
>  struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
> @@ -214,10 +216,12 @@ static void g4x_write_infoframe(struct intel_encoder *encoder,
>  {
>  	const u32 *data = frame;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val = I915_READ(VIDEO_DIP_CTL);
>  	int i;
>  
> -	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
> +	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
> +		 "Writing DIP with CTL reg disabled\n");
>  
>  	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
>  	val |= g4x_infoframe_index(type);
> @@ -285,12 +289,14 @@ static void ibx_write_infoframe(struct intel_encoder *encoder,
>  {
>  	const u32 *data = frame;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
>  	u32 val = I915_READ(reg);
>  	int i;
>  
> -	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
> +	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
> +		 "Writing DIP with CTL reg disabled\n");
>  
>  	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
>  	val |= g4x_infoframe_index(type);
> @@ -362,12 +368,14 @@ static void cpt_write_infoframe(struct intel_encoder *encoder,
>  {
>  	const u32 *data = frame;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
>  	u32 val = I915_READ(reg);
>  	int i;
>  
> -	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
> +	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
> +		 "Writing DIP with CTL reg disabled\n");
>  
>  	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
>  	val |= g4x_infoframe_index(type);
> @@ -438,12 +446,14 @@ static void vlv_write_infoframe(struct intel_encoder *encoder,
>  {
>  	const u32 *data = frame;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
>  	u32 val = I915_READ(reg);
>  	int i;
>  
> -	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
> +	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
> +		 "Writing DIP with CTL reg disabled\n");
>  
>  	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
>  	val |= g4x_infoframe_index(type);
> @@ -514,6 +524,7 @@ static void hsw_write_infoframe(struct intel_encoder *encoder,
>  {
>  	const u32 *data = frame;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>  	i915_reg_t ctl_reg = HSW_TVIDEO_DIP_CTL(cpu_transcoder);
>  	int data_size;
> @@ -522,7 +533,7 @@ static void hsw_write_infoframe(struct intel_encoder *encoder,
>  
>  	data_size = hsw_dip_data_size(dev_priv, type);
>  
> -	WARN_ON(len > data_size);
> +	dev_WARN_ON(dev, len > data_size);
>  
>  	val &= ~hsw_infoframe_enable(type);
>  	I915_WRITE(ctl_reg, val);
> @@ -822,6 +833,7 @@ intel_hdmi_compute_drm_infoframe(struct intel_encoder *encoder,
>  {
>  	struct hdmi_drm_infoframe *frame = &crtc_state->infoframes.drm.drm;
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int ret;
>  
>  	if (!(INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)))
> @@ -843,7 +855,7 @@ intel_hdmi_compute_drm_infoframe(struct intel_encoder *encoder,
>  	}
>  
>  	ret = hdmi_drm_infoframe_check(frame);
> -	if (WARN_ON(ret))
> +	if (dev_WARN_ON(dev, ret))
>  		return false;
>  
>  	return true;
> @@ -1037,6 +1049,7 @@ static void ibx_set_infoframes(struct intel_encoder *encoder,
>  			       const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
>  	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
> @@ -1061,9 +1074,9 @@ static void ibx_set_infoframes(struct intel_encoder *encoder,
>  	}
>  
>  	if (port != (val & VIDEO_DIP_PORT_MASK)) {
> -		WARN(val & VIDEO_DIP_ENABLE,
> -		     "DIP already enabled on port %c\n",
> -		     (val & VIDEO_DIP_PORT_MASK) >> 29);
> +		dev_WARN(dev, val & VIDEO_DIP_ENABLE,
> +			 "DIP already enabled on port %c\n",
> +			 (val & VIDEO_DIP_PORT_MASK) >> 29);
>  		val &= ~VIDEO_DIP_PORT_MASK;
>  		val |= port;
>  	}
> @@ -1145,6 +1158,7 @@ static void vlv_set_infoframes(struct intel_encoder *encoder,
>  			       const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
>  	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
> @@ -1168,9 +1182,9 @@ static void vlv_set_infoframes(struct intel_encoder *encoder,
>  	}
>  
>  	if (port != (val & VIDEO_DIP_PORT_MASK)) {
> -		WARN(val & VIDEO_DIP_ENABLE,
> -		     "DIP already enabled on port %c\n",
> -		     (val & VIDEO_DIP_PORT_MASK) >> 29);
> +		dev_WARN(dev, val & VIDEO_DIP_ENABLE,
> +			 "DIP already enabled on port %c\n",
> +			 (val & VIDEO_DIP_PORT_MASK) >> 29);
>  		val &= ~VIDEO_DIP_PORT_MASK;
>  		val |= port;
>  	}
> @@ -2994,6 +3008,7 @@ static u8 cnp_port_to_ddc_pin(struct drm_i915_private *dev_priv,
>  
>  static u8 icl_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum phy phy = intel_port_to_phy(dev_priv, port);
>  
>  	if (intel_phy_is_combo(dev_priv, phy))
> @@ -3001,7 +3016,7 @@ static u8 icl_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
>  	else if (intel_phy_is_tc(dev_priv, phy))
>  		return GMBUS_PIN_9_TC1_ICP + intel_port_to_tc(dev_priv, port);
>  
> -	WARN(1, "Unknown port:%c\n", port_name(port));
> +	dev_WARN(dev, 1, "Unknown port:%c\n", port_name(port));
>  	return GMBUS_PIN_2_BXT;
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
> index 3a5e0db8888a..5924f0f176cc 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
> @@ -449,6 +449,7 @@ static void i915_hotplug_work_func(struct work_struct *work)
>  void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
>  			   u32 pin_mask, u32 long_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_encoder *encoder;
>  	bool storm_detected = false;
>  	bool queue_dig = false, queue_hp = false;
> @@ -509,8 +510,9 @@ void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
>  			 * hotplug bits itself. So only WARN about unexpected
>  			 * interrupts on saner platforms.
>  			 */
> -			WARN_ONCE(!HAS_GMCH(dev_priv),
> -				  "Received HPD interrupt on pin %d although disabled\n", pin);
> +			dev_WARN_ONCE(dev, !HAS_GMCH(dev_priv),
> +				      "Received HPD interrupt on pin %d although disabled\n",
> +				      pin);
>  			continue;
>  		}
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> index 0b67f7887cd0..3b0d63874136 100644
> --- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> +++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
> @@ -164,9 +164,10 @@ static struct irq_chip lpe_audio_irqchip = {
>  
>  static int lpe_audio_irq_init(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int irq = dev_priv->lpe_audio.irq;
>  
> -	WARN_ON(!intel_irqs_enabled(dev_priv));
> +	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
>  	irq_set_chip_and_handler_name(irq,
>  				&lpe_audio_irqchip,
>  				handle_simple_irq,
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index a320b8d76a64..b6f5828cd3aa 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -201,10 +201,11 @@ static void intel_lvds_pps_get_hw_state(struct drm_i915_private *dev_priv,
>  static void intel_lvds_pps_init_hw(struct drm_i915_private *dev_priv,
>  				   struct intel_lvds_pps *pps)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
>  	val = I915_READ(PP_CONTROL(0));
> -	WARN_ON((val & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS);
> +	dev_WARN_ON(dev, (val & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS);
>  	if (pps->powerdown_on_reset)
>  		val |= PANEL_POWER_RESET;
>  	I915_WRITE(PP_CONTROL(0), val);
> diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
> index e59b4992ba1b..0b6fe01c743d 100644
> --- a/drivers/gpu/drm/i915/display/intel_opregion.c
> +++ b/drivers/gpu/drm/i915/display/intel_opregion.c
> @@ -365,6 +365,7 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  				  bool enable)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 parm = 0;
>  	u32 type = 0;
>  	u32 port;
> @@ -403,8 +404,8 @@ int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
>  		type = DISPLAY_TYPE_INTERNAL_FLAT_PANEL;
>  		break;
>  	default:
> -		WARN_ONCE(1, "unsupported intel_encoder type %d\n",
> -			  intel_encoder->type);
> +		dev_WARN_ONCE(dev, 1, "unsupported intel_encoder type %d\n",
> +			      intel_encoder->type);
>  		return -EINVAL;
>  	}
>  
> @@ -894,6 +895,7 @@ static int intel_load_vbt_firmware(struct drm_i915_private *dev_priv)
>  
>  int intel_opregion_setup(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_opregion *opregion = &dev_priv->opregion;
>  	struct pci_dev *pdev = dev_priv->drm.pdev;
>  	u32 asls, mboxes;
> @@ -984,7 +986,7 @@ int intel_opregion_setup(struct drm_i915_private *dev_priv)
>  		 */
>  		if (opregion->header->over.major > 2 ||
>  		    opregion->header->over.minor >= 1) {
> -			WARN_ON(rvda < OPREGION_SIZE);
> +			dev_WARN_ON(dev, rvda < OPREGION_SIZE);
>  
>  			rvda += asls;
>  		}
> diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
> index e40c3a0e2cd7..d30389303f5f 100644
> --- a/drivers/gpu/drm/i915/display/intel_overlay.c
> +++ b/drivers/gpu/drm/i915/display/intel_overlay.c
> @@ -244,10 +244,11 @@ alloc_request(struct intel_overlay *overlay, void (*fn)(struct intel_overlay *))
>  static int intel_overlay_on(struct intel_overlay *overlay)
>  {
>  	struct drm_i915_private *dev_priv = overlay->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_request *rq;
>  	u32 *cs;
>  
> -	WARN_ON(overlay->active);
> +	dev_WARN_ON(dev, overlay->active);
>  
>  	rq = alloc_request(overlay, NULL);
>  	if (IS_ERR(rq))
> @@ -311,11 +312,12 @@ static int intel_overlay_continue(struct intel_overlay *overlay,
>  				  bool load_polyphase_filter)
>  {
>  	struct drm_i915_private *dev_priv = overlay->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_request *rq;
>  	u32 flip_addr = overlay->flip_addr;
>  	u32 tmp, *cs;
>  
> -	WARN_ON(!overlay->active);
> +	dev_WARN_ON(dev, !overlay->active);
>  
>  	if (load_polyphase_filter)
>  		flip_addr |= OFC_UPDATE;
> @@ -753,13 +755,15 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
>  {
>  	struct overlay_registers __iomem *regs = overlay->regs;
>  	struct drm_i915_private *dev_priv = overlay->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 swidth, swidthsw, sheight, ostride;
>  	enum pipe pipe = overlay->crtc->pipe;
>  	bool scale_changed = false;
>  	struct i915_vma *vma;
>  	int ret, tmp_width;
>  
> -	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
> +	dev_WARN_ON(dev,
> +		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
>  
>  	ret = intel_overlay_release_old_vid(overlay);
>  	if (ret != 0)
> @@ -855,9 +859,11 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay,
>  int intel_overlay_switch_off(struct intel_overlay *overlay)
>  {
>  	struct drm_i915_private *dev_priv = overlay->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int ret;
>  
> -	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
> +	dev_WARN_ON(dev,
> +		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
>  
>  	ret = intel_overlay_recover_from_interrupt(overlay);
>  	if (ret != 0)
> @@ -1378,6 +1384,7 @@ void intel_overlay_setup(struct drm_i915_private *dev_priv)
>  
>  void intel_overlay_cleanup(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_overlay *overlay;
>  
>  	overlay = fetch_and_zero(&dev_priv->overlay);
> @@ -1389,7 +1396,7 @@ void intel_overlay_cleanup(struct drm_i915_private *dev_priv)
>  	 * Furthermore modesetting teardown happens beforehand so the
>  	 * hardware should be off already.
>  	 */
> -	WARN_ON(overlay->active);
> +	dev_WARN_ON(dev, overlay->active);
>  
>  	i915_gem_object_put(overlay->reg_bo);
>  	i915_active_fini(&overlay->last_flip);
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 7b3ec6eb3382..c108e4934fbf 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -379,6 +379,7 @@ void intel_gmch_panel_fitting(struct intel_crtc *intel_crtc,
>  			      int fitting_mode)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
>  	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
>  
> @@ -423,7 +424,7 @@ void intel_gmch_panel_fitting(struct intel_crtc *intel_crtc,
>  		}
>  		break;
>  	default:
> -		WARN(1, "bad panel fit mode: %d\n", fitting_mode);
> +		dev_WARN(dev, 1, "bad panel fit mode: %d\n", fitting_mode);
>  		return;
>  	}
>  
> @@ -518,9 +519,10 @@ static u32 intel_panel_compute_brightness(struct intel_connector *connector,
>  					  u32 val)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  
> -	WARN_ON(panel->backlight.max == 0);
> +	dev_WARN_ON(dev, panel->backlight.max == 0);
>  
>  	if (i915_modparams.invert_brightness < 0)
>  		return val;
> @@ -569,7 +571,9 @@ static u32 i9xx_get_backlight(struct intel_connector *connector)
>  
>  static u32 _vlv_get_backlight(struct drm_i915_private *dev_priv, enum pipe pipe)
>  {
> -	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
>  		return 0;
>  
>  	return I915_READ(VLV_BLC_PWM_CTL(pipe)) & BACKLIGHT_DUTY_CYCLE_MASK;
> @@ -623,10 +627,11 @@ static void i9xx_set_backlight(const struct drm_connector_state *conn_state, u32
>  {
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  	u32 tmp, mask;
>  
> -	WARN_ON(panel->backlight.max == 0);
> +	dev_WARN_ON(dev, panel->backlight.max == 0);
>  
>  	if (panel->backlight.combination_mode) {
>  		u8 lbpc;
> @@ -695,6 +700,7 @@ void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state
>  {
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  	u32 hw_level;
>  
> @@ -709,7 +715,7 @@ void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state
>  
>  	mutex_lock(&dev_priv->backlight_lock);
>  
> -	WARN_ON(panel->backlight.max == 0);
> +	dev_WARN_ON(dev, panel->backlight.max == 0);
>  
>  	hw_level = clamp_user_to_hw(connector, user_level, user_max);
>  	panel->backlight.level = hw_level;
> @@ -1229,6 +1235,7 @@ static void intel_panel_set_backlight(const struct drm_connector_state *conn_sta
>  {
>  	struct intel_connector *connector = to_intel_connector(conn_state->connector);
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  	u32 hw_level;
>  
> @@ -1237,7 +1244,7 @@ static void intel_panel_set_backlight(const struct drm_connector_state *conn_sta
>  
>  	mutex_lock(&dev_priv->backlight_lock);
>  
> -	WARN_ON(panel->backlight.max == 0);
> +	dev_WARN_ON(dev, panel->backlight.max == 0);
>  
>  	hw_level = scale_user_to_hw(connector, user_level, user_max);
>  	panel->backlight.level = hw_level;
> @@ -1543,10 +1550,11 @@ static u32 get_backlight_max_vbt(struct intel_connector *connector)
>  static u32 get_backlight_min_vbt(struct intel_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  	int min;
>  
> -	WARN_ON(panel->backlight.max == 0);
> +	dev_WARN_ON(dev, panel->backlight.max == 0);
>  
>  	/*
>  	 * XXX: If the vbt value is 255, it makes min equal to max, which leads
> @@ -1728,10 +1736,11 @@ static int i965_setup_backlight(struct intel_connector *connector, enum pipe unu
>  static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_panel *panel = &connector->panel;
>  	u32 ctl, ctl2, val;
>  
> -	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
> +	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
>  		return -ENODEV;
>  
>  	ctl2 = I915_READ(VLV_BLC_PWM_CTL2(pipe));
> @@ -1907,6 +1916,7 @@ void intel_panel_update_backlight(struct intel_encoder *encoder,
>  int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(connector->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_connector *intel_connector = to_intel_connector(connector);
>  	struct intel_panel *panel = &intel_connector->panel;
>  	int ret;
> @@ -1921,7 +1931,7 @@ int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
>  	}
>  
>  	/* ensure intel_panel has been initialized first */
> -	if (WARN_ON(!panel->backlight.setup))
> +	if (dev_WARN_ON(dev, !panel->backlight.setup))
>  		return -ENODEV;
>  
>  	/* set level and max in panel struct */
> diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> index 283416c73205..4e4b44323195 100644
> --- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> +++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
> @@ -288,6 +288,7 @@ static void
>  intel_crtc_crc_setup_workarounds(struct intel_crtc *crtc, bool enable)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc_state *pipe_config;
>  	struct drm_atomic_state *state;
>  	struct drm_modeset_acquire_ctx ctx;
> @@ -329,7 +330,8 @@ intel_crtc_crc_setup_workarounds(struct intel_crtc *crtc, bool enable)
>  
>  	drm_atomic_state_put(state);
>  unlock:
> -	WARN(ret, "Toggling workaround to %i returns %i\n", enable, ret);
> +	dev_WARN(dev, ret, "Toggling workaround to %i returns %i\n", enable,
> +		 ret);
>  	drm_modeset_drop_locks(&ctx);
>  	drm_modeset_acquire_fini(&ctx);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index 16e9ff47d519..aa283cf92d50 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -76,9 +76,10 @@ static bool psr_global_enabled(u32 debug)
>  static bool intel_psr2_enabled(struct drm_i915_private *dev_priv,
>  			       const struct intel_crtc_state *crtc_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	/* Cannot enable DSC and PSR2 simultaneously */
> -	WARN_ON(crtc_state->dsc.compression_enable &&
> -		crtc_state->has_psr2);
> +	dev_WARN_ON(dev, crtc_state->dsc.compression_enable &&
> +		    crtc_state->has_psr2);
>  
>  	switch (dev_priv->psr.debug & I915_PSR_DEBUG_MODE_MASK) {
>  	case I915_PSR_DEBUG_DISABLE:
> @@ -735,12 +736,17 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
>  static void intel_psr_activate(struct intel_dp *intel_dp)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (transcoder_has_psr2(dev_priv, dev_priv->psr.transcoder))
> -		WARN_ON(I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder)) & EDP_PSR2_ENABLE);
> -
> -	WARN_ON(I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder)) & EDP_PSR_ENABLE);
> -	WARN_ON(dev_priv->psr.active);
> +		dev_WARN_ON(dev,
> +			    I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder)) &
> +			    EDP_PSR2_ENABLE);
> +
> +	dev_WARN_ON(dev,
> +		    I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder)) &
> +		    EDP_PSR_ENABLE);
> +	dev_WARN_ON(dev, dev_priv->psr.active);
>  	lockdep_assert_held(&dev_priv->psr.lock);
>  
>  	/* psr1 and psr2 are mutually exclusive.*/
> @@ -797,10 +803,11 @@ static void intel_psr_enable_source(struct intel_dp *intel_dp,
>  static void intel_psr_enable_locked(struct drm_i915_private *dev_priv,
>  				    const struct intel_crtc_state *crtc_state)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dp *intel_dp = dev_priv->psr.dp;
>  	u32 val;
>  
> -	WARN_ON(dev_priv->psr.enabled);
> +	dev_WARN_ON(dev, dev_priv->psr.enabled);
>  
>  	dev_priv->psr.psr2_enabled = intel_psr2_enabled(dev_priv, crtc_state);
>  	dev_priv->psr.busy_frontbuffer_bits = 0;
> @@ -851,14 +858,15 @@ void intel_psr_enable(struct intel_dp *intel_dp,
>  		      const struct intel_crtc_state *crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (!crtc_state->has_psr)
>  		return;
>  
> -	if (WARN_ON(!CAN_PSR(dev_priv)))
> +	if (dev_WARN_ON(dev, !CAN_PSR(dev_priv)))
>  		return;
>  
> -	WARN_ON(dev_priv->drrs.dp);
> +	dev_WARN_ON(dev, dev_priv->drrs.dp);
>  
>  	mutex_lock(&dev_priv->psr.lock);
>  
> @@ -875,16 +883,17 @@ void intel_psr_enable(struct intel_dp *intel_dp,
>  
>  static void intel_psr_exit(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
>  	if (!dev_priv->psr.active) {
>  		if (transcoder_has_psr2(dev_priv, dev_priv->psr.transcoder)) {
>  			val = I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder));
> -			WARN_ON(val & EDP_PSR2_ENABLE);
> +			dev_WARN_ON(dev, val & EDP_PSR2_ENABLE);
>  		}
>  
>  		val = I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder));
> -		WARN_ON(val & EDP_PSR_ENABLE);
> +		dev_WARN_ON(dev, val & EDP_PSR_ENABLE);
>  
>  		return;
>  	}
> @@ -892,12 +901,12 @@ static void intel_psr_exit(struct drm_i915_private *dev_priv)
>  	if (dev_priv->psr.psr2_enabled) {
>  		tgl_disallow_dc3co_on_psr2_exit(dev_priv);
>  		val = I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder));
> -		WARN_ON(!(val & EDP_PSR2_ENABLE));
> +		dev_WARN_ON(dev, !(val & EDP_PSR2_ENABLE));
>  		val &= ~EDP_PSR2_ENABLE;
>  		I915_WRITE(EDP_PSR2_CTL(dev_priv->psr.transcoder), val);
>  	} else {
>  		val = I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder));
> -		WARN_ON(!(val & EDP_PSR_ENABLE));
> +		dev_WARN_ON(dev, !(val & EDP_PSR_ENABLE));
>  		val &= ~EDP_PSR_ENABLE;
>  		I915_WRITE(EDP_PSR_CTL(dev_priv->psr.transcoder), val);
>  	}
> @@ -953,11 +962,12 @@ void intel_psr_disable(struct intel_dp *intel_dp,
>  		       const struct intel_crtc_state *old_crtc_state)
>  {
>  	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (!old_crtc_state->has_psr)
>  		return;
>  
> -	if (WARN_ON(!CAN_PSR(dev_priv)))
> +	if (dev_WARN_ON(dev, !CAN_PSR(dev_priv)))
>  		return;
>  
>  	mutex_lock(&dev_priv->psr.lock);
> diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
> index 9b510a4cf8c5..2ceb0c72db33 100644
> --- a/drivers/gpu/drm/i915/display/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
> @@ -1429,6 +1429,7 @@ static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder,
>  				  const struct drm_connector_state *conn_state)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>  	const struct intel_sdvo_connector_state *sdvo_state =
> @@ -1499,7 +1500,7 @@ static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder,
>  
>  	switch (crtc_state->pixel_multiplier) {
>  	default:
> -		WARN(1, "unknown pixel multiplier specified\n");
> +		dev_WARN(dev, 1, "unknown pixel multiplier specified\n");
>  		/* fall through */
>  	case 1: rate = SDVO_CLOCK_RATE_MULT_1X; break;
>  	case 2: rate = SDVO_CLOCK_RATE_MULT_2X; break;
> @@ -3229,10 +3230,11 @@ intel_sdvo_init_ddc_proxy(struct intel_sdvo *sdvo,
>  static void assert_sdvo_port_valid(const struct drm_i915_private *dev_priv,
>  				   enum port port)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (HAS_PCH_SPLIT(dev_priv))
> -		WARN_ON(port != PORT_B);
> +		dev_WARN_ON(dev, port != PORT_B);
>  	else
> -		WARN_ON(port != PORT_B && port != PORT_C);
> +		dev_WARN_ON(dev, port != PORT_B && port != PORT_C);
>  }
>  
>  bool intel_sdvo_init(struct drm_i915_private *dev_priv,
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 3f7b8f2ff671..58040d4ce256 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -83,6 +83,7 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
>  {
>  	struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct drm_display_mode *adjusted_mode = &new_crtc_state->hw.adjusted_mode;
>  	long timeout = msecs_to_jiffies_timeout(1);
>  	int scanline, min, max, vblank_start;
> @@ -104,7 +105,7 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
>  	if (min <= 0 || max <= 0)
>  		goto irq_disable;
>  
> -	if (WARN_ON(drm_crtc_vblank_get(&crtc->base)))
> +	if (dev_WARN_ON(dev, drm_crtc_vblank_get(&crtc->base)))
>  		goto irq_disable;
>  
>  	/*
> @@ -196,6 +197,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
>  	u32 end_vbl_count = intel_crtc_get_vblank_counter(crtc);
>  	ktime_t end_vbl_time = ktime_get();
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	trace_intel_pipe_update_end(crtc, end_vbl_count, scanline_end);
>  
> @@ -204,7 +206,7 @@ void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
>  	 * event outside of the critical section - the spinlock might spin for a
>  	 * while ... */
>  	if (new_crtc_state->uapi.event) {
> -		WARN_ON(drm_crtc_vblank_get(&crtc->base) != 0);
> +		dev_WARN_ON(dev, drm_crtc_vblank_get(&crtc->base) != 0);
>  
>  		spin_lock(&crtc->base.dev->event_lock);
>  		drm_crtc_arm_vblank_event(&crtc->base,
> diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
> index 7773169b7331..d5e3e4e6c6d2 100644
> --- a/drivers/gpu/drm/i915/display/intel_tc.c
> +++ b/drivers/gpu/drm/i915/display/intel_tc.c
> @@ -55,13 +55,14 @@ tc_port_load_fia_params(struct drm_i915_private *i915,
>  u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = &i915->uncore;
>  	u32 lane_mask;
>  
>  	lane_mask = intel_uncore_read(uncore,
>  				      PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia));
>  
> -	WARN_ON(lane_mask == 0xffffffff);
> +	dev_WARN_ON(dev, lane_mask == 0xffffffff);
>  
>  	lane_mask &= DP_LANE_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx);
>  	return lane_mask >> DP_LANE_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx);
> @@ -70,13 +71,14 @@ u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
>  u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = &i915->uncore;
>  	u32 pin_mask;
>  
>  	pin_mask = intel_uncore_read(uncore,
>  				     PORT_TX_DFLEXPA1(dig_port->tc_phy_fia));
>  
> -	WARN_ON(pin_mask == 0xffffffff);
> +	dev_WARN_ON(dev, pin_mask == 0xffffffff);
>  
>  	return (pin_mask & DP_PIN_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx)) >>
>  	       DP_PIN_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx);
> @@ -116,11 +118,12 @@ void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port,
>  				      int required_lanes)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	bool lane_reversal = dig_port->saved_port_bits & DDI_BUF_PORT_REVERSAL;
>  	struct intel_uncore *uncore = &i915->uncore;
>  	u32 val;
>  
> -	WARN_ON(lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
> +	dev_WARN_ON(dev, lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
>  
>  	val = intel_uncore_read(uncore,
>  				PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia));
> @@ -172,6 +175,7 @@ static void tc_port_fixup_legacy_flag(struct intel_digital_port *dig_port,
>  static u32 tc_port_live_status_mask(struct intel_digital_port *dig_port)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	enum tc_port tc_port = intel_port_to_tc(i915, dig_port->base.port);
>  	struct intel_uncore *uncore = &i915->uncore;
>  	u32 mask = 0;
> @@ -195,7 +199,7 @@ static u32 tc_port_live_status_mask(struct intel_digital_port *dig_port)
>  		mask |= BIT(TC_PORT_LEGACY);
>  
>  	/* The sink can be connected only in a single mode. */
> -	if (!WARN_ON(hweight32(mask) > 1))
> +	if (!dev_WARN_ON(dev, hweight32(mask) > 1))
>  		tc_port_fixup_legacy_flag(dig_port, mask);
>  
>  	return mask;
> @@ -406,11 +410,13 @@ static void intel_tc_port_reset_mode(struct intel_digital_port *dig_port,
>  				     int required_lanes)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	enum tc_port_mode old_tc_mode = dig_port->tc_mode;
>  
>  	intel_display_power_flush_work(i915);
> -	WARN_ON(intel_display_power_is_enabled(i915,
> -					       intel_aux_power_domain(dig_port)));
> +	dev_WARN_ON(dev,
> +		    intel_display_power_is_enabled(i915,
> +					   intel_aux_power_domain(dig_port)));
>  
>  	icl_tc_phy_disconnect(dig_port);
>  	icl_tc_phy_connect(dig_port, required_lanes);
> @@ -493,6 +499,7 @@ static void __intel_tc_port_lock(struct intel_digital_port *dig_port,
>  				 int required_lanes)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	intel_wakeref_t wakeref;
>  
>  	wakeref = intel_display_power_get(i915, POWER_DOMAIN_DISPLAY_CORE);
> @@ -503,7 +510,7 @@ static void __intel_tc_port_lock(struct intel_digital_port *dig_port,
>  	    intel_tc_port_needs_reset(dig_port))
>  		intel_tc_port_reset_mode(dig_port, required_lanes);
>  
> -	WARN_ON(dig_port->tc_lock_wakeref);
> +	dev_WARN_ON(dev, dig_port->tc_lock_wakeref);
>  	dig_port->tc_lock_wakeref = wakeref;
>  }
>  
> @@ -547,10 +554,11 @@ void intel_tc_port_put_link(struct intel_digital_port *dig_port)
>  void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy)
>  {
>  	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	enum port port = dig_port->base.port;
>  	enum tc_port tc_port = intel_port_to_tc(i915, port);
>  
> -	if (WARN_ON(tc_port == PORT_TC_NONE))
> +	if (dev_WARN_ON(dev, tc_port == PORT_TC_NONE))
>  		return;
>  
>  	snprintf(dig_port->tc_port_name, sizeof(dig_port->tc_port_name),
> diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
> index 6bab08db5d75..44fa8f4d32db 100644
> --- a/drivers/gpu/drm/i915/display/intel_vdsc.c
> +++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
> @@ -363,6 +363,7 @@ static bool is_pipe_dsc(const struct intel_crtc_state *crtc_state)
>  {
>  	const struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	const struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>  
>  	if (INTEL_GEN(i915) >= 12)
> @@ -374,7 +375,7 @@ static bool is_pipe_dsc(const struct intel_crtc_state *crtc_state)
>  		return false;
>  
>  	/* There's no pipe A DSC engine on ICL */
> -	WARN_ON(crtc->pipe == PIPE_A);
> +	dev_WARN_ON(dev, crtc->pipe == PIPE_A);
>  
>  	return true;
>  }
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 70ab378803c4..18feef4dbe13 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -962,6 +962,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  				   enum pipe *pipe)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
>  	intel_wakeref_t wakeref;
>  	enum port port;
> @@ -1014,7 +1015,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  			tmp &= BXT_PIPE_SELECT_MASK;
>  			tmp >>= BXT_PIPE_SELECT_SHIFT;
>  
> -			if (WARN_ON(tmp > PIPE_C))
> +			if (dev_WARN_ON(dev, tmp > PIPE_C))
>  				continue;
>  
>  			*pipe = tmp;
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> index c8264eb036bf..7116f5764cf9 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
> @@ -41,6 +41,7 @@ static struct drm_i915_gem_object *first_mm_object(struct list_head *list)
>  
>  void i915_gem_suspend_late(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct drm_i915_gem_object *obj;
>  	struct list_head *phases[] = {
>  		&i915->mm.shrink_list,
> @@ -85,7 +86,7 @@ void i915_gem_suspend_late(struct drm_i915_private *i915)
>  			spin_unlock_irqrestore(&i915->mm.obj_lock, flags);
>  
>  			i915_gem_object_lock(obj);
> -			WARN_ON(i915_gem_object_set_to_gtt_domain(obj, false));
> +			dev_WARN_ON(dev, i915_gem_object_set_to_gtt_domain(obj, false));
>  			i915_gem_object_unlock(obj);
>  			i915_gem_object_put(obj);
>  
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> index a2a980d9d241..6ca29707ef9a 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
> @@ -28,6 +28,7 @@ static void check_release_pagevec(struct pagevec *pvec)
>  static int shmem_get_pages(struct drm_i915_gem_object *obj)
>  {
>  	struct drm_i915_private *i915 = to_i915(obj->base.dev);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_memory_region *mem = obj->mm.region;
>  	const unsigned long page_count = obj->base.size / PAGE_SIZE;
>  	unsigned long i;
> @@ -148,7 +149,8 @@ static int shmem_get_pages(struct drm_i915_gem_object *obj)
>  		last_pfn = page_to_pfn(page);
>  
>  		/* Check that the i965g/gm workaround works. */
> -		WARN_ON((gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
> +		dev_WARN_ON(dev,
> +			    (gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
>  	}
>  	if (sg) { /* loop terminated early; short sg table */
>  		sg_page_sizes |= sg->length;
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> index f7e4b39c734f..09e8db629276 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
> @@ -399,23 +399,28 @@ i915_gem_shrinker_vmap(struct notifier_block *nb, unsigned long event, void *ptr
>  
>  void i915_gem_driver_register__shrinker(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	i915->mm.shrinker.scan_objects = i915_gem_shrinker_scan;
>  	i915->mm.shrinker.count_objects = i915_gem_shrinker_count;
>  	i915->mm.shrinker.seeks = DEFAULT_SEEKS;
>  	i915->mm.shrinker.batch = 4096;
> -	WARN_ON(register_shrinker(&i915->mm.shrinker));
> +	dev_WARN_ON(dev, register_shrinker(&i915->mm.shrinker));
>  
>  	i915->mm.oom_notifier.notifier_call = i915_gem_shrinker_oom;
> -	WARN_ON(register_oom_notifier(&i915->mm.oom_notifier));
> +	dev_WARN_ON(dev, register_oom_notifier(&i915->mm.oom_notifier));
>  
>  	i915->mm.vmap_notifier.notifier_call = i915_gem_shrinker_vmap;
> -	WARN_ON(register_vmap_purge_notifier(&i915->mm.vmap_notifier));
> +	dev_WARN_ON(dev,
> +		    register_vmap_purge_notifier(&i915->mm.vmap_notifier));
>  }
>  
>  void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915)
>  {
> -	WARN_ON(unregister_vmap_purge_notifier(&i915->mm.vmap_notifier));
> -	WARN_ON(unregister_oom_notifier(&i915->mm.oom_notifier));
> +	struct device *dev = i915_to_dev(i915);
> +
> +	dev_WARN_ON(dev,
> +		    unregister_vmap_purge_notifier(&i915->mm.vmap_notifier));
> +	dev_WARN_ON(dev, unregister_oom_notifier(&i915->mm.oom_notifier));
>  	unregister_shrinker(&i915->mm.shrinker);
>  }
>  
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> index 451f3078d60d..75cdb869a312 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
> @@ -165,6 +165,7 @@ static void g4x_get_stolen_reserved(struct drm_i915_private *i915,
>  				    resource_size_t *base,
>  				    resource_size_t *size)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	u32 reg_val = intel_uncore_read(uncore,
>  					IS_GM45(i915) ?
>  					CTG_STOLEN_RESERVED :
> @@ -181,14 +182,14 @@ static void g4x_get_stolen_reserved(struct drm_i915_private *i915,
>  	 * Whether ILK really reuses the ELK register for this is unclear.
>  	 * Let's see if we catch anyone with this supposedly enabled on ILK.
>  	 */
> -	WARN(IS_GEN(i915, 5), "ILK stolen reserved found? 0x%08x\n",
> -	     reg_val);
> +	dev_WARN(dev, IS_GEN(i915, 5), "ILK stolen reserved found? 0x%08x\n",
> +		 reg_val);
>  
>  	if (!(reg_val & G4X_STOLEN_RESERVED_ADDR2_MASK))
>  		return;
>  
>  	*base = (reg_val & G4X_STOLEN_RESERVED_ADDR2_MASK) << 16;
> -	WARN_ON((reg_val & G4X_STOLEN_RESERVED_ADDR1_MASK) < *base);
> +	dev_WARN_ON(dev, (reg_val & G4X_STOLEN_RESERVED_ADDR1_MASK) < *base);
>  
>  	*size = stolen_top - *base;
>  }
> @@ -680,6 +681,7 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
>  					       resource_size_t gtt_offset,
>  					       resource_size_t size)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_memory_region *mem = i915->mm.regions[INTEL_REGION_STOLEN];
>  	struct i915_ggtt *ggtt = &i915->ggtt;
>  	struct drm_i915_gem_object *obj;
> @@ -694,9 +696,10 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
>  			 &stolen_offset, &gtt_offset, &size);
>  
>  	/* KISS and expect everything to be page-aligned */
> -	if (WARN_ON(size == 0) ||
> -	    WARN_ON(!IS_ALIGNED(size, I915_GTT_PAGE_SIZE)) ||
> -	    WARN_ON(!IS_ALIGNED(stolen_offset, I915_GTT_MIN_ALIGNMENT)))
> +	if (dev_WARN_ON(dev, size == 0) ||
> +	    dev_WARN_ON(dev, !IS_ALIGNED(size, I915_GTT_PAGE_SIZE)) ||
> +	    dev_WARN_ON(dev,
> +			!IS_ALIGNED(stolen_offset, I915_GTT_MIN_ALIGNMENT)))
>  		return ERR_PTR(-EINVAL);
>  
>  	stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> index 825c94e7ca0b..37869515acff 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
> @@ -426,15 +426,16 @@ void intel_engines_free(struct intel_gt *gt)
>  int intel_engines_init_mmio(struct intel_gt *gt)
>  {
>  	struct drm_i915_private *i915 = gt->i915;
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_device_info *device_info = mkwrite_device_info(i915);
>  	const unsigned int engine_mask = INTEL_INFO(i915)->engine_mask;
>  	unsigned int mask = 0;
>  	unsigned int i;
>  	int err;
>  
> -	WARN_ON(engine_mask == 0);
> -	WARN_ON(engine_mask &
> -		GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES));
> +	dev_WARN_ON(dev, engine_mask == 0);
> +	dev_WARN_ON(dev, engine_mask &
> +		    GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES));
>  
>  	if (i915_inject_probe_failure(i915))
>  		return -ENODEV;
> @@ -455,7 +456,7 @@ int intel_engines_init_mmio(struct intel_gt *gt)
>  	 * are added to the driver by a warning and disabling the forgotten
>  	 * engines.
>  	 */
> -	if (WARN_ON(mask != engine_mask))
> +	if (dev_WARN_ON(dev, mask != engine_mask))
>  		device_info->engine_mask = mask;
>  
>  	RUNTIME_INFO(i915)->num_engines = hweight32(mask);
> diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c b/drivers/gpu/drm/i915/gt/intel_engine_user.c
> index 9e7f12bef828..2760982d14f7 100644
> --- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
> +++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
> @@ -185,6 +185,7 @@ static void add_legacy_ring(struct legacy_ring *ring,
>  
>  void intel_engines_driver_register(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct legacy_ring ring = {};
>  	u8 uabi_instances[4] = {};
>  	struct list_head *it, *next;
> @@ -278,7 +279,7 @@ void intel_engines_driver_register(struct drm_i915_private *i915)
>  			}
>  		}
>  
> -		if (WARN(errors, "Invalid UABI engine mapping found"))
> +		if (dev_WARN(dev, errors, "Invalid UABI engine mapping found"))
>  			i915->uabi_engines = RB_ROOT;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
> index eeef90b55c64..847ed933fe59 100644
> --- a/drivers/gpu/drm/i915/gt/intel_mocs.c
> +++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
> @@ -283,6 +283,7 @@ static const struct drm_i915_mocs_entry icl_mocs_table[] = {
>  static bool get_mocs_settings(const struct drm_i915_private *i915,
>  			      struct drm_i915_mocs_table *table)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	if (INTEL_GEN(i915) >= 12) {
>  		table->size  = ARRAY_SIZE(tgl_mocs_table);
>  		table->table = tgl_mocs_table;
> @@ -300,8 +301,8 @@ static bool get_mocs_settings(const struct drm_i915_private *i915,
>  		table->n_entries = GEN9_NUM_MOCS_ENTRIES;
>  		table->table = broxton_mocs_table;
>  	} else {
> -		WARN_ONCE(INTEL_GEN(i915) >= 9,
> -			  "Platform that should have a MOCS table does not.\n");
> +		dev_WARN_ONCE(dev, INTEL_GEN(i915) >= 9,
> +			      "Platform that should have a MOCS table does not.\n");
>  		return false;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c
> index 9e303c29d6e3..2c168cd13ee2 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rc6.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rc6.c
> @@ -694,6 +694,7 @@ static u64 vlv_residency_raw(struct intel_uncore *uncore, const i915_reg_t reg)
>  u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, const i915_reg_t reg)
>  {
>  	struct drm_i915_private *i915 = rc6_to_i915(rc6);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = rc6_to_uncore(rc6);
>  	u64 time_hw, prev_hw, overflow_hw;
>  	unsigned int fw_domains;
> @@ -713,7 +714,7 @@ u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, const i915_reg_t reg)
>  	 */
>  	i = (i915_mmio_reg_offset(reg) -
>  	     i915_mmio_reg_offset(GEN6_GT_GFX_RC6_LOCKED)) / sizeof(u32);
> -	if (WARN_ON_ONCE(i >= ARRAY_SIZE(rc6->cur_residency)))
> +	if (dev_WARN_ON_ONCE(dev, i >= ARRAY_SIZE(rc6->cur_residency)))
>  		return 0;
>  
>  	fw_domains = intel_uncore_forcewake_for_reg(uncore, reg, FW_REG_READ);
> diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> index 81f872f9ef03..0762091edb8e 100644
> --- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> +++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> @@ -562,12 +562,13 @@ static void set_hwsp(struct intel_engine_cs *engine, u32 offset)
>  static void flush_cs_tlb(struct intel_engine_cs *engine)
>  {
>  	struct drm_i915_private *dev_priv = engine->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  
>  	if (!IS_GEN_RANGE(dev_priv, 6, 7))
>  		return;
>  
>  	/* ring should be idle before issuing a sync flush*/
> -	WARN_ON((ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
> +	dev_WARN_ON(dev, (ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
>  
>  	ENGINE_WRITE(engine, RING_INSTPM,
>  		     _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE |
> @@ -1801,9 +1802,10 @@ static void gen6_bsd_set_default_submission(struct intel_engine_cs *engine)
>  static void ring_release(struct intel_engine_cs *engine)
>  {
>  	struct drm_i915_private *dev_priv = engine->i915;
> +	struct device *dev = i915_to_dev(dev_priv);
>  
> -	WARN_ON(INTEL_GEN(dev_priv) > 2 &&
> -		(ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
> +	dev_WARN_ON(dev, INTEL_GEN(dev_priv) > 2 &&
> +		    (ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
>  
>  	intel_engine_cleanup_common(engine);
>  
> diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
> index f232036c3c7a..f4aacb09bdad 100644
> --- a/drivers/gpu/drm/i915/gt/intel_rps.c
> +++ b/drivers/gpu/drm/i915/gt/intel_rps.c
> @@ -996,6 +996,7 @@ static bool chv_rps_enable(struct intel_rps *rps)
>  {
>  	struct intel_uncore *uncore = rps_to_uncore(rps);
>  	struct drm_i915_private *i915 = rps_to_i915(rps);
> +	struct device *dev = i915_to_dev(i915);
>  	u32 val;
>  
>  	/* 1: Program defaults and thresholds for RPS*/
> @@ -1026,7 +1027,7 @@ static bool chv_rps_enable(struct intel_rps *rps)
>  	vlv_punit_put(i915);
>  
>  	/* RPS code assumes GPLL is used */
> -	WARN_ONCE((val & GPLLENABLE) == 0, "GPLL not enabled\n");
> +	dev_WARN_ONCE(dev, (val & GPLLENABLE) == 0, "GPLL not enabled\n");
>  
>  	DRM_DEBUG_DRIVER("GPLL enabled? %s\n", yesno(val & GPLLENABLE));
>  	DRM_DEBUG_DRIVER("GPU status: 0x%08x\n", val);
> @@ -1094,6 +1095,7 @@ static bool vlv_rps_enable(struct intel_rps *rps)
>  {
>  	struct intel_uncore *uncore = rps_to_uncore(rps);
>  	struct drm_i915_private *i915 = rps_to_i915(rps);
> +	struct device *dev = i915_to_dev(i915);
>  	u32 val;
>  
>  	intel_uncore_write_fw(uncore, GEN6_RP_DOWN_TIMEOUT, 1000000);
> @@ -1123,7 +1125,7 @@ static bool vlv_rps_enable(struct intel_rps *rps)
>  	vlv_punit_put(i915);
>  
>  	/* RPS code assumes GPLL is used */
> -	WARN_ONCE((val & GPLLENABLE) == 0, "GPLL not enabled\n");
> +	dev_WARN_ONCE(dev, (val & GPLLENABLE) == 0, "GPLL not enabled\n");
>  
>  	DRM_DEBUG_DRIVER("GPLL enabled? %s\n", yesno(val & GPLLENABLE));
>  	DRM_DEBUG_DRIVER("GPU status: 0x%08x\n", val);
> @@ -1172,6 +1174,7 @@ static unsigned long __ips_gfx_val(struct intel_ips *ips)
>  void intel_rps_enable(struct intel_rps *rps)
>  {
>  	struct drm_i915_private *i915 = rps_to_i915(rps);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = rps_to_uncore(rps);
>  
>  	intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL);
> @@ -1191,11 +1194,11 @@ void intel_rps_enable(struct intel_rps *rps)
>  	if (!rps->enabled)
>  		return;
>  
> -	WARN_ON(rps->max_freq < rps->min_freq);
> -	WARN_ON(rps->idle_freq > rps->max_freq);
> +	dev_WARN_ON(dev, rps->max_freq < rps->min_freq);
> +	dev_WARN_ON(dev, rps->idle_freq > rps->max_freq);
>  
> -	WARN_ON(rps->efficient_freq < rps->min_freq);
> -	WARN_ON(rps->efficient_freq > rps->max_freq);
> +	dev_WARN_ON(dev, rps->efficient_freq < rps->min_freq);
> +	dev_WARN_ON(dev, rps->efficient_freq > rps->max_freq);
>  }
>  
>  static void gen6_rps_disable(struct intel_rps *rps)
> @@ -1343,6 +1346,7 @@ static void vlv_rps_init(struct intel_rps *rps)
>  static void chv_rps_init(struct intel_rps *rps)
>  {
>  	struct drm_i915_private *i915 = rps_to_i915(rps);
> +	struct device *dev = i915_to_dev(i915);
>  	u32 val;
>  
>  	vlv_iosf_sb_get(i915,
> @@ -1390,9 +1394,10 @@ static void chv_rps_init(struct intel_rps *rps)
>  			BIT(VLV_IOSF_SB_NC) |
>  			BIT(VLV_IOSF_SB_CCK));
>  
> -	WARN_ONCE((rps->max_freq | rps->efficient_freq | rps->rp1_freq |
> -		   rps->min_freq) & 1,
> -		  "Odd GPU freq values\n");
> +	dev_WARN_ONCE(dev, (rps->max_freq | rps->efficient_freq |
> +			    rps->rp1_freq |
> +			    rps->min_freq) & 1,
> +		      "Odd GPU freq values\n");
>  }
>  
>  static void vlv_c0_read(struct intel_uncore *uncore, struct intel_rps_ei *ei)
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 4e292d4bf7b9..4b11c3d2cad6 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -776,6 +776,7 @@ cfl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>  static void
>  wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	const struct sseu_dev_info *sseu = &RUNTIME_INFO(i915)->sseu;
>  	unsigned int slice, subslice;
>  	u32 l3_en, mcr, mcr_mask;
> @@ -827,7 +828,7 @@ wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
>  		DRM_WARN("No common index found between subslice mask %x and L3 bank mask %x!\n",
>  			 intel_sseu_get_subslices(sseu, slice), l3_en);
>  		subslice = fls(l3_en);
> -		WARN_ON(!subslice);
> +		dev_WARN_ON(dev, !subslice);
>  	}
>  	subslice--;
>  
> diff --git a/drivers/gpu/drm/i915/gvt/aperture_gm.c b/drivers/gpu/drm/i915/gvt/aperture_gm.c
> index 771420453f82..8c7e68a1bdc5 100644
> --- a/drivers/gpu/drm/i915/gvt/aperture_gm.c
> +++ b/drivers/gpu/drm/i915/gvt/aperture_gm.c
> @@ -129,16 +129,17 @@ void intel_vgpu_write_fence(struct intel_vgpu *vgpu,
>  {
>  	struct intel_gvt *gvt = vgpu->gvt;
>  	struct drm_i915_private *dev_priv = gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_fence_reg *reg;
>  	i915_reg_t fence_reg_lo, fence_reg_hi;
>  
>  	assert_rpm_wakelock_held(&dev_priv->runtime_pm);
>  
> -	if (WARN_ON(fence >= vgpu_fence_sz(vgpu)))
> +	if (dev_WARN_ON(dev, fence >= vgpu_fence_sz(vgpu)))
>  		return;
>  
>  	reg = vgpu->fence.regs[fence];
> -	if (WARN_ON(!reg))
> +	if (dev_WARN_ON(dev, !reg))
>  		return;
>  
>  	fence_reg_lo = FENCE_REG_GEN6_LO(reg->id);
> @@ -164,10 +165,11 @@ static void free_vgpu_fence(struct intel_vgpu *vgpu)
>  {
>  	struct intel_gvt *gvt = vgpu->gvt;
>  	struct drm_i915_private *dev_priv = gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct i915_fence_reg *reg;
>  	u32 i;
>  
> -	if (WARN_ON(!vgpu_fence_sz(vgpu)))
> +	if (dev_WARN_ON(dev, !vgpu_fence_sz(vgpu)))
>  		return;
>  
>  	intel_runtime_pm_get(&dev_priv->runtime_pm);
> diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> index 21a176cd8acc..c6b9e58548ed 100644
> --- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
> +++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
> @@ -1214,6 +1214,7 @@ static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
>  		struct mi_display_flip_command_info *info)
>  {
>  	struct drm_i915_private *dev_priv = s->vgpu->gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct plane_code_mapping gen8_plane_code[] = {
>  		[0] = {PIPE_A, PLANE_A, PRIMARY_A_FLIP_DONE},
>  		[1] = {PIPE_B, PLANE_A, PRIMARY_B_FLIP_DONE},
> @@ -1230,7 +1231,7 @@ static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
>  	dword2 = cmd_val(s, 2);
>  
>  	v = (dword0 & GENMASK(21, 19)) >> 19;
> -	if (WARN_ON(v >= ARRAY_SIZE(gen8_plane_code)))
> +	if (dev_WARN_ON(dev, v >= ARRAY_SIZE(gen8_plane_code)))
>  		return -EBADRQC;
>  
>  	info->pipe = gen8_plane_code[v].pipe;
> @@ -1250,7 +1251,7 @@ static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
>  		info->stride_reg = SPRSTRIDE(info->pipe);
>  		info->surf_reg = SPRSURF(info->pipe);
>  	} else {
> -		WARN_ON(1);
> +		dev_WARN_ON(dev, 1);
>  		return -EBADRQC;
>  	}
>  	return 0;
> diff --git a/drivers/gpu/drm/i915/gvt/display.c b/drivers/gpu/drm/i915/gvt/display.c
> index e1c313da6c00..66516d6f8811 100644
> --- a/drivers/gpu/drm/i915/gvt/display.c
> +++ b/drivers/gpu/drm/i915/gvt/display.c
> @@ -70,8 +70,9 @@ static int edp_pipe_is_enabled(struct intel_vgpu *vgpu)
>  int pipe_is_enabled(struct intel_vgpu *vgpu, int pipe)
>  {
>  	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  
> -	if (WARN_ON(pipe < PIPE_A || pipe >= I915_MAX_PIPES))
> +	if (dev_WARN_ON(dev, pipe < PIPE_A || pipe >= I915_MAX_PIPES))
>  		return -EINVAL;
>  
>  	if (vgpu_vreg_t(vgpu, PIPECONF(pipe)) & PIPECONF_ENABLE)
> diff --git a/drivers/gpu/drm/i915/gvt/dmabuf.c b/drivers/gpu/drm/i915/gvt/dmabuf.c
> index 2477a1e5a166..38bd30c2a5fe 100644
> --- a/drivers/gpu/drm/i915/gvt/dmabuf.c
> +++ b/drivers/gpu/drm/i915/gvt/dmabuf.c
> @@ -58,6 +58,7 @@ static int vgpu_gem_get_pages(
>  		struct drm_i915_gem_object *obj)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_vgpu *vgpu;
>  	struct sg_table *st;
>  	struct scatterlist *sg;
> @@ -67,11 +68,11 @@ static int vgpu_gem_get_pages(
>  	u32 page_num;
>  
>  	fb_info = (struct intel_vgpu_fb_info *)obj->gvt_info;
> -	if (WARN_ON(!fb_info))
> +	if (dev_WARN_ON(dev, !fb_info))
>  		return -ENODEV;
>  
>  	vgpu = fb_info->obj->vgpu;
> -	if (WARN_ON(!vgpu))
> +	if (dev_WARN_ON(dev, !vgpu))
>  		return -ENODEV;
>  
>  	st = kmalloc(sizeof(*st), GFP_KERNEL);
> diff --git a/drivers/gpu/drm/i915/gvt/edid.c b/drivers/gpu/drm/i915/gvt/edid.c
> index 1fe6124918f1..e8541b50ab21 100644
> --- a/drivers/gpu/drm/i915/gvt/edid.c
> +++ b/drivers/gpu/drm/i915/gvt/edid.c
> @@ -136,6 +136,7 @@ static int gmbus0_mmio_write(struct intel_vgpu *vgpu,
>  			unsigned int offset, void *p_data, unsigned int bytes)
>  {
>  	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int port, pin_select;
>  
>  	memcpy(&vgpu_vreg(vgpu, offset), p_data, bytes);
> @@ -153,7 +154,7 @@ static int gmbus0_mmio_write(struct intel_vgpu *vgpu,
>  		port = cnp_get_port_from_gmbus0(pin_select);
>  	else
>  		port = get_port_from_gmbus0(pin_select);
> -	if (WARN_ON(port < 0))
> +	if (dev_WARN_ON(dev, port < 0))
>  		return 0;
>  
>  	vgpu->display.i2c_edid.state = I2C_GMBUS;
> diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
> index 8f37eefa0a02..58b0011786ed 100644
> --- a/drivers/gpu/drm/i915/gvt/gvt.c
> +++ b/drivers/gpu/drm/i915/gvt/gvt.c
> @@ -265,9 +265,10 @@ static int init_service_thread(struct intel_gvt *gvt)
>   */
>  void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_gvt *gvt = to_gvt(dev_priv);
>  
> -	if (WARN_ON(!gvt))
> +	if (dev_WARN_ON(dev, !gvt))
>  		return;
>  
>  	intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
> @@ -302,11 +303,12 @@ void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
>   */
>  int intel_gvt_init_device(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_gvt *gvt;
>  	struct intel_vgpu *vgpu;
>  	int ret;
>  
> -	if (WARN_ON(dev_priv->gvt))
> +	if (dev_WARN_ON(dev, dev_priv->gvt))
>  		return -EEXIST;
>  
>  	gvt = kzalloc(sizeof(struct intel_gvt), GFP_KERNEL);
> diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
> index 6d28d72e6c7e..73f668885bea 100644
> --- a/drivers/gpu/drm/i915/gvt/handlers.c
> +++ b/drivers/gpu/drm/i915/gvt/handlers.c
> @@ -822,6 +822,7 @@ static int trigger_aux_channel_interrupt(struct intel_vgpu *vgpu,
>  		unsigned int reg)
>  {
>  	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	enum intel_gvt_event_type event;
>  
>  	if (reg == i915_mmio_reg_offset(DP_AUX_CH_CTL(AUX_CH_A)))
> @@ -836,7 +837,7 @@ static int trigger_aux_channel_interrupt(struct intel_vgpu *vgpu,
>  		 reg == i915_mmio_reg_offset(DP_AUX_CH_CTL(AUX_CH_D)))
>  		event = AUX_CHANNEL_D;
>  	else {
> -		WARN_ON(true);
> +		dev_WARN_ON(dev, true);
>  		return -EINVAL;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/gvt/mmio_context.c b/drivers/gpu/drm/i915/gvt/mmio_context.c
> index aaf15916d29a..82dbcd091f5b 100644
> --- a/drivers/gpu/drm/i915/gvt/mmio_context.c
> +++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
> @@ -347,6 +347,7 @@ static u32 gen8_tlb_mmio_offset_list[] = {
>  static void handle_tlb_pending_event(struct intel_vgpu *vgpu, int ring_id)
>  {
>  	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_uncore *uncore = &dev_priv->uncore;
>  	struct intel_vgpu_submission *s = &vgpu->submission;
>  	u32 *regs = vgpu->gvt->engine_mmio_list.tlb_mmio_offset_list;
> @@ -357,7 +358,7 @@ static void handle_tlb_pending_event(struct intel_vgpu *vgpu, int ring_id)
>  	if (!regs)
>  		return;
>  
> -	if (WARN_ON(ring_id >= cnt))
> +	if (dev_WARN_ON(dev, ring_id >= cnt))
>  		return;
>  
>  	if (!test_and_clear_bit(ring_id, (void *)s->tlb_handle_pending))
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index f7385abdd74b..d466251e09d0 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -978,6 +978,7 @@ static void bxt_get_dimm_info(struct dram_dimm_info *dimm,
>  static int
>  bxt_get_dram_info(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct dram_info *dram_info = &dev_priv->dram_info;
>  	u32 dram_channels;
>  	u32 mem_freq_khz, val;
> @@ -1015,9 +1016,9 @@ bxt_get_dram_info(struct drm_i915_private *dev_priv)
>  		bxt_get_dimm_info(&dimm, val);
>  		type = bxt_get_dimm_type(val);
>  
> -		WARN_ON(type != INTEL_DRAM_UNKNOWN &&
> -			dram_info->type != INTEL_DRAM_UNKNOWN &&
> -			dram_info->type != type);
> +		dev_WARN_ON(dev, type != INTEL_DRAM_UNKNOWN &&
> +			    dram_info->type != INTEL_DRAM_UNKNOWN &&
> +			    dram_info->type != type);
>  
>  		DRM_DEBUG_KMS("CH%u DIMM size: %u GB, width: X%u, ranks: %u, type: %s\n",
>  			      i - BXT_D_CR_DRP0_DUNIT_START,
> @@ -1803,10 +1804,11 @@ static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
>  
>  int i915_suspend_switcheroo(struct drm_i915_private *i915, pm_message_t state)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	int error;
>  
> -	if (WARN_ON_ONCE(state.event != PM_EVENT_SUSPEND &&
> -			 state.event != PM_EVENT_FREEZE))
> +	if (dev_WARN_ON_ONCE(dev, state.event != PM_EVENT_SUSPEND &&
> +			     state.event != PM_EVENT_FREEZE))
>  		return -EINVAL;
>  
>  	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
> @@ -2419,6 +2421,7 @@ static void vlv_check_no_gt_access(struct drm_i915_private *dev_priv)
>  
>  static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 mask;
>  	int err;
>  
> @@ -2429,7 +2432,7 @@ static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
>  	vlv_wait_for_gt_wells(dev_priv, false);
>  
>  	mask = VLV_GTLC_RENDER_CTX_EXISTS | VLV_GTLC_MEDIA_CTX_EXISTS;
> -	WARN_ON((I915_READ(VLV_GTLC_WAKE_CTRL) & mask) != mask);
> +	dev_WARN_ON(dev, (I915_READ(VLV_GTLC_WAKE_CTRL) & mask) != mask);
>  
>  	vlv_check_no_gt_access(dev_priv);
>  
> @@ -2492,10 +2495,11 @@ static int vlv_resume_prepare(struct drm_i915_private *dev_priv,
>  static int intel_runtime_suspend(struct device *kdev)
>  {
>  	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
>  	int ret = 0;
>  
> -	if (WARN_ON_ONCE(!HAS_RUNTIME_PM(dev_priv)))
> +	if (dev_WARN_ON_ONCE(dev, !HAS_RUNTIME_PM(dev_priv)))
>  		return -ENODEV;
>  
>  	DRM_DEBUG_KMS("Suspending device\n");
> @@ -2577,15 +2581,16 @@ static int intel_runtime_suspend(struct device *kdev)
>  static int intel_runtime_resume(struct device *kdev)
>  {
>  	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
>  	int ret = 0;
>  
> -	if (WARN_ON_ONCE(!HAS_RUNTIME_PM(dev_priv)))
> +	if (dev_WARN_ON_ONCE(dev, !HAS_RUNTIME_PM(dev_priv)))
>  		return -ENODEV;
>  
>  	DRM_DEBUG_KMS("Resuming device\n");
>  
> -	WARN_ON_ONCE(atomic_read(&rpm->wakeref_count));
> +	dev_WARN_ON_ONCE(dev, atomic_read(&rpm->wakeref_count));
>  	disable_rpm_wakeref_asserts(rpm);
>  
>  	intel_opregion_notify_adapter(dev_priv, PCI_D0);
> diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> index 9ddcf17230e6..074859d75cbb 100644
> --- a/drivers/gpu/drm/i915/i915_gem.c
> +++ b/drivers/gpu/drm/i915/i915_gem.c
> @@ -1172,6 +1172,7 @@ void i915_gem_driver_remove(struct drm_i915_private *dev_priv)
>  
>  void i915_gem_driver_release(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	intel_gt_driver_release(&dev_priv->gt);
>  
>  	intel_wa_list_free(&dev_priv->gt_wa_list);
> @@ -1183,7 +1184,7 @@ void i915_gem_driver_release(struct drm_i915_private *dev_priv)
>  
>  	i915_gem_drain_freed_objects(dev_priv);
>  
> -	WARN_ON(!list_empty(&dev_priv->gem.contexts.list));
> +	dev_WARN_ON(dev, !list_empty(&dev_priv->gem.contexts.list));
>  }
>  
>  static void i915_gem_init__mm(struct drm_i915_private *i915)
> @@ -1208,10 +1209,11 @@ void i915_gem_init_early(struct drm_i915_private *dev_priv)
>  
>  void i915_gem_cleanup_early(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	i915_gem_drain_freed_objects(dev_priv);
>  	GEM_BUG_ON(!llist_empty(&dev_priv->mm.free_list));
>  	GEM_BUG_ON(atomic_read(&dev_priv->mm.free_count));
> -	WARN_ON(dev_priv->mm.shrink_count);
> +	dev_WARN_ON(dev, dev_priv->mm.shrink_count);
>  }
>  
>  int i915_gem_freeze(struct drm_i915_private *dev_priv)
> @@ -1226,6 +1228,7 @@ int i915_gem_freeze(struct drm_i915_private *dev_priv)
>  
>  int i915_gem_freeze_late(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct drm_i915_gem_object *obj;
>  	intel_wakeref_t wakeref;
>  
> @@ -1251,7 +1254,7 @@ int i915_gem_freeze_late(struct drm_i915_private *i915)
>  
>  	list_for_each_entry(obj, &i915->mm.shrink_list, mm.link) {
>  		i915_gem_object_lock(obj);
> -		WARN_ON(i915_gem_object_set_to_cpu_domain(obj, true));
> +		dev_WARN_ON(dev, i915_gem_object_set_to_cpu_domain(obj, true));
>  		i915_gem_object_unlock(obj);
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 1efe58ad0ce9..630158ee6188 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -2021,6 +2021,7 @@ static struct i915_ppgtt *gen6_ppgtt_create(struct drm_i915_private *i915)
>  static void gtt_write_workarounds(struct intel_gt *gt)
>  {
>  	struct drm_i915_private *i915 = gt->i915;
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_uncore *uncore = gt->uncore;
>  
>  	/* This function is for gtt related workarounds. This function is
> @@ -2079,9 +2080,9 @@ static void gtt_write_workarounds(struct intel_gt *gt)
>  		intel_uncore_write(uncore,
>  				   HSW_GTT_CACHE_EN,
>  				   can_use_gtt_cache ? GTT_CACHE_EN_ALL : 0);
> -		WARN_ON_ONCE(can_use_gtt_cache &&
> -			     intel_uncore_read(uncore,
> -					       HSW_GTT_CACHE_EN) == 0);
> +		dev_WARN_ON_ONCE(dev, can_use_gtt_cache &&
> +				 intel_uncore_read(uncore,
> +						   HSW_GTT_CACHE_EN) == 0);
>  	}
>  }
>  
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index d1a254de182d..0bcc3915be0d 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -259,10 +259,11 @@ i915_hotplug_interrupt_update_locked(struct drm_i915_private *dev_priv,
>  				     u32 mask,
>  				     u32 bits)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 val;
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
> -	WARN_ON(bits & ~mask);
> +	dev_WARN_ON(dev, bits & ~mask);
>  
>  	val = I915_READ(PORT_HOTPLUG_EN);
>  	val &= ~mask;
> @@ -301,13 +302,14 @@ void ilk_update_display_irq(struct drm_i915_private *dev_priv,
>  			    u32 interrupt_mask,
>  			    u32 enabled_irq_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 new_val;
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
>  
> -	WARN_ON(enabled_irq_mask & ~interrupt_mask);
> +	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
>  
> -	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
> +	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
>  		return;
>  
>  	new_val = dev_priv->irq_mask;
> @@ -331,14 +333,15 @@ static void bdw_update_port_irq(struct drm_i915_private *dev_priv,
>  				u32 interrupt_mask,
>  				u32 enabled_irq_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 new_val;
>  	u32 old_val;
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
>  
> -	WARN_ON(enabled_irq_mask & ~interrupt_mask);
> +	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
>  
> -	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
> +	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
>  		return;
>  
>  	old_val = I915_READ(GEN8_DE_PORT_IMR);
> @@ -365,13 +368,14 @@ void bdw_update_pipe_irq(struct drm_i915_private *dev_priv,
>  			 u32 interrupt_mask,
>  			 u32 enabled_irq_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 new_val;
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
>  
> -	WARN_ON(enabled_irq_mask & ~interrupt_mask);
> +	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
>  
> -	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
> +	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
>  		return;
>  
>  	new_val = dev_priv->de_irq_mask[pipe];
> @@ -395,15 +399,16 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
>  				  u32 interrupt_mask,
>  				  u32 enabled_irq_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 sdeimr = I915_READ(SDEIMR);
>  	sdeimr &= ~interrupt_mask;
>  	sdeimr |= (~enabled_irq_mask & interrupt_mask);
>  
> -	WARN_ON(enabled_irq_mask & ~interrupt_mask);
> +	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
>  
> -	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
> +	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
>  		return;
>  
>  	I915_WRITE(SDEIMR, sdeimr);
> @@ -413,6 +418,7 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
>  u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
>  			      enum pipe pipe)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 status_mask = dev_priv->pipestat_irq_mask[pipe];
>  	u32 enable_mask = status_mask << 16;
>  
> @@ -425,13 +431,13 @@ u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
>  	 * On pipe A we don't support the PSR interrupt yet,
>  	 * on pipe B and C the same bit MBZ.
>  	 */
> -	if (WARN_ON_ONCE(status_mask & PIPE_A_PSR_STATUS_VLV))
> +	if (dev_WARN_ON_ONCE(dev, status_mask & PIPE_A_PSR_STATUS_VLV))
>  		return 0;
>  	/*
>  	 * On pipe B and C we don't support the PSR interrupt yet, on pipe
>  	 * A the same bit is for perf counters which we don't use either.
>  	 */
> -	if (WARN_ON_ONCE(status_mask & PIPE_B_PSR_STATUS_VLV))
> +	if (dev_WARN_ON_ONCE(dev, status_mask & PIPE_B_PSR_STATUS_VLV))
>  		return 0;
>  
>  	enable_mask &= ~(PIPE_FIFO_UNDERRUN_STATUS |
> @@ -443,10 +449,10 @@ u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
>  		enable_mask |= SPRITE1_FLIP_DONE_INT_EN_VLV;
>  
>  out:
> -	WARN_ONCE(enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
> -		  status_mask & ~PIPESTAT_INT_STATUS_MASK,
> -		  "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
> -		  pipe_name(pipe), enable_mask, status_mask);
> +	dev_WARN_ONCE(dev, enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
> +		      status_mask & ~PIPESTAT_INT_STATUS_MASK,
> +		      "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
> +		      pipe_name(pipe), enable_mask, status_mask);
>  
>  	return enable_mask;
>  }
> @@ -454,15 +460,16 @@ u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
>  void i915_enable_pipestat(struct drm_i915_private *dev_priv,
>  			  enum pipe pipe, u32 status_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	i915_reg_t reg = PIPESTAT(pipe);
>  	u32 enable_mask;
>  
> -	WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
> -		  "pipe %c: status_mask=0x%x\n",
> -		  pipe_name(pipe), status_mask);
> +	dev_WARN_ONCE(dev, status_mask & ~PIPESTAT_INT_STATUS_MASK,
> +		      "pipe %c: status_mask=0x%x\n",
> +		      pipe_name(pipe), status_mask);
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
> -	WARN_ON(!intel_irqs_enabled(dev_priv));
> +	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
>  
>  	if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == status_mask)
>  		return;
> @@ -477,15 +484,16 @@ void i915_enable_pipestat(struct drm_i915_private *dev_priv,
>  void i915_disable_pipestat(struct drm_i915_private *dev_priv,
>  			   enum pipe pipe, u32 status_mask)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	i915_reg_t reg = PIPESTAT(pipe);
>  	u32 enable_mask;
>  
> -	WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
> -		  "pipe %c: status_mask=0x%x\n",
> -		  pipe_name(pipe), status_mask);
> +	dev_WARN_ONCE(dev, status_mask & ~PIPESTAT_INT_STATUS_MASK,
> +		      "pipe %c: status_mask=0x%x\n",
> +		      pipe_name(pipe), status_mask);
>  
>  	lockdep_assert_held(&dev_priv->irq_lock);
> -	WARN_ON(!intel_irqs_enabled(dev_priv));
> +	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
>  
>  	if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == 0)
>  		return;
> @@ -905,6 +913,7 @@ static void ivb_parity_work(struct work_struct *work)
>  {
>  	struct drm_i915_private *dev_priv =
>  		container_of(work, typeof(*dev_priv), l3_parity.error_work);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_gt *gt = &dev_priv->gt;
>  	u32 error_status, row, bank, subbank;
>  	char *parity_event[6];
> @@ -918,7 +927,7 @@ static void ivb_parity_work(struct work_struct *work)
>  	mutex_lock(&dev_priv->drm.struct_mutex);
>  
>  	/* If we've screwed up tracking, just let the interrupt fire again */
> -	if (WARN_ON(!dev_priv->l3_parity.which_slice))
> +	if (dev_WARN_ON(dev, !dev_priv->l3_parity.which_slice))
>  		goto out;
>  
>  	misccpctl = I915_READ(GEN7_MISCCPCTL);
> @@ -929,7 +938,7 @@ static void ivb_parity_work(struct work_struct *work)
>  		i915_reg_t reg;
>  
>  		slice--;
> -		if (WARN_ON_ONCE(slice >= NUM_L3_SLICES(dev_priv)))
> +		if (dev_WARN_ON_ONCE(dev, slice >= NUM_L3_SLICES(dev_priv)))
>  			break;
>  
>  		dev_priv->l3_parity.which_slice &= ~(1<<slice);
> @@ -966,7 +975,7 @@ static void ivb_parity_work(struct work_struct *work)
>  	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
>  
>  out:
> -	WARN_ON(dev_priv->l3_parity.which_slice);
> +	dev_WARN_ON(dev, dev_priv->l3_parity.which_slice);
>  	spin_lock_irq(&gt->irq_lock);
>  	gen5_gt_enable_irq(gt, GT_PARITY_ERROR(dev_priv));
>  	spin_unlock_irq(&gt->irq_lock);
> @@ -1434,6 +1443,7 @@ static void valleyview_pipestat_irq_handler(struct drm_i915_private *dev_priv,
>  
>  static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 hotplug_status = 0, hotplug_status_mask;
>  	int i;
>  
> @@ -1463,9 +1473,9 @@ static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
>  		I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
>  	}
>  
> -	WARN_ONCE(1,
> -		  "PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
> -		  I915_READ(PORT_HOTPLUG_STAT));
> +	dev_WARN_ONCE(dev, 1,
> +		      "PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
> +		      I915_READ(PORT_HOTPLUG_STAT));
>  
>  	return hotplug_status;
>  }
> @@ -1824,6 +1834,7 @@ static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
>  
>  static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 ddi_hotplug_trigger, tc_hotplug_trigger;
>  	u32 pin_mask = 0, long_mask = 0;
>  	bool (*tc_port_hotplug_long_detect)(enum hpd_pin pin, u32 val);
> @@ -1844,8 +1855,9 @@ static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
>  		tc_port_hotplug_long_detect = icp_tc_port_hotplug_long_detect;
>  		pins = hpd_icp;
>  	} else {
> -		WARN(!HAS_PCH_ICP(dev_priv),
> -		     "Unrecognized PCH type 0x%x\n", INTEL_PCH_TYPE(dev_priv));
> +		dev_WARN(dev, !HAS_PCH_ICP(dev_priv),
> +			 "Unrecognized PCH type 0x%x\n",
> +			 INTEL_PCH_TYPE(dev_priv));
>  
>  		ddi_hotplug_trigger = pch_iir & SDE_DDI_MASK_ICP;
>  		tc_hotplug_trigger = pch_iir & SDE_TC_MASK_ICP;
> @@ -2683,10 +2695,11 @@ static void ibx_irq_reset(struct drm_i915_private *dev_priv)
>   */
>  static void ibx_irq_pre_postinstall(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (HAS_PCH_NOP(dev_priv))
>  		return;
>  
> -	WARN_ON(I915_READ(SDEIER) != 0);
> +	dev_WARN_ON(dev, I915_READ(SDEIER) != 0);
>  	I915_WRITE(SDEIER, 0xffffffff);
>  	POSTING_READ(SDEIER);
>  }
> @@ -2711,6 +2724,7 @@ static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
>  
>  static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_uncore *uncore = &dev_priv->uncore;
>  
>  	u32 pipestat_mask;
> @@ -2733,7 +2747,7 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
>  		enable_mask |= I915_DISPLAY_PIPE_C_EVENT_INTERRUPT |
>  			I915_LPE_PIPE_C_INTERRUPT;
>  
> -	WARN_ON(dev_priv->irq_mask != ~0u);
> +	dev_WARN_ON(dev, dev_priv->irq_mask != ~0u);
>  
>  	dev_priv->irq_mask = ~enable_mask;
>  
> @@ -3416,9 +3430,10 @@ static void gen8_irq_postinstall(struct drm_i915_private *dev_priv)
>  
>  static void icp_irq_postinstall(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	u32 mask = SDE_GMBUS_ICP;
>  
> -	WARN_ON(I915_READ(SDEIER) != 0);
> +	dev_WARN_ON(dev, I915_READ(SDEIER) != 0);
>  	I915_WRITE(SDEIER, 0xffffffff);
>  	POSTING_READ(SDEIER);
>  
> diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
> index f3ef6700a5f2..ca36f31509ec 100644
> --- a/drivers/gpu/drm/i915/i915_pmu.c
> +++ b/drivers/gpu/drm/i915/i915_pmu.c
> @@ -443,12 +443,13 @@ static void engine_event_destroy(struct perf_event *event)
>  {
>  	struct drm_i915_private *i915 =
>  		container_of(event->pmu, typeof(*i915), pmu.base);
> +	struct device *dev = i915_to_dev(i915);
>  	struct intel_engine_cs *engine;
>  
>  	engine = intel_engine_lookup_user(i915,
>  					  engine_event_class(event),
>  					  engine_event_instance(event));
> -	if (WARN_ON_ONCE(!engine))
> +	if (dev_WARN_ON_ONCE(dev, !engine))
>  		return;
>  
>  	if (engine_event_sample(event) == I915_SAMPLE_BUSY &&
> @@ -573,6 +574,7 @@ static u64 __i915_pmu_event_read(struct perf_event *event)
>  {
>  	struct drm_i915_private *i915 =
>  		container_of(event->pmu, typeof(*i915), pmu.base);
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_pmu *pmu = &i915->pmu;
>  	u64 val = 0;
>  
> @@ -584,7 +586,7 @@ static u64 __i915_pmu_event_read(struct perf_event *event)
>  						  engine_event_class(event),
>  						  engine_event_instance(event));
>  
> -		if (WARN_ON_ONCE(!engine)) {
> +		if (dev_WARN_ON_ONCE(dev, !engine)) {
>  			/* Do nothing */
>  		} else if (sample == I915_SAMPLE_BUSY &&
>  			   intel_engine_supports_stats(engine)) {
> @@ -1164,12 +1166,13 @@ void i915_pmu_register(struct drm_i915_private *i915)
>  
>  void i915_pmu_unregister(struct drm_i915_private *i915)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	struct i915_pmu *pmu = &i915->pmu;
>  
>  	if (!pmu->base.event_init)
>  		return;
>  
> -	WARN_ON(pmu->enable);
> +	dev_WARN_ON(dev, pmu->enable);
>  
>  	hrtimer_cancel(&pmu->timer);
>  
> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> index 09870a31b4f0..5fc71ec804a7 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -607,7 +607,9 @@ static void parse_csr_fw(struct drm_i915_private *dev_priv,
>  
>  static void intel_csr_runtime_pm_get(struct drm_i915_private *dev_priv)
>  {
> -	WARN_ON(dev_priv->csr.wakeref);
> +	struct device *dev = i915_to_dev(dev_priv);
> +
> +	dev_WARN_ON(dev, dev_priv->csr.wakeref);
>  	dev_priv->csr.wakeref =
>  		intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
>  }
> @@ -779,11 +781,12 @@ void intel_csr_ucode_resume(struct drm_i915_private *dev_priv)
>   */
>  void intel_csr_ucode_fini(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	if (!HAS_CSR(dev_priv))
>  		return;
>  
>  	intel_csr_ucode_suspend(dev_priv);
> -	WARN_ON(dev_priv->csr.wakeref);
> +	dev_WARN_ON(dev, dev_priv->csr.wakeref);
>  
>  	kfree(dev_priv->csr.dmc_payload);
>  }
> diff --git a/drivers/gpu/drm/i915/intel_pch.c b/drivers/gpu/drm/i915/intel_pch.c
> index 43b68b5fc562..1c56f81a22af 100644
> --- a/drivers/gpu/drm/i915/intel_pch.c
> +++ b/drivers/gpu/drm/i915/intel_pch.c
> @@ -10,93 +10,107 @@
>  static enum intel_pch
>  intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	switch (id) {
>  	case INTEL_PCH_IBX_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Ibex Peak PCH\n");
> -		WARN_ON(!IS_GEN(dev_priv, 5));
> +		dev_WARN_ON(dev, !IS_GEN(dev_priv, 5));
>  		return PCH_IBX;
>  	case INTEL_PCH_CPT_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found CougarPoint PCH\n");
> -		WARN_ON(!IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
>  		return PCH_CPT;
>  	case INTEL_PCH_PPT_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found PantherPoint PCH\n");
> -		WARN_ON(!IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
>  		/* PantherPoint is CPT compatible */
>  		return PCH_CPT;
>  	case INTEL_PCH_LPT_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found LynxPoint PCH\n");
> -		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> -		WARN_ON(IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> +		dev_WARN_ON(dev, IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
>  		return PCH_LPT;
>  	case INTEL_PCH_LPT_LP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found LynxPoint LP PCH\n");
> -		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> -		WARN_ON(!IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
>  		return PCH_LPT;
>  	case INTEL_PCH_WPT_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found WildcatPoint PCH\n");
> -		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> -		WARN_ON(IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> +		dev_WARN_ON(dev, IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
>  		/* WildcatPoint is LPT compatible */
>  		return PCH_LPT;
>  	case INTEL_PCH_WPT_LP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found WildcatPoint LP PCH\n");
> -		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> -		WARN_ON(!IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
>  		/* WildcatPoint is LPT compatible */
>  		return PCH_LPT;
>  	case INTEL_PCH_SPT_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found SunrisePoint PCH\n");
> -		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv));
>  		return PCH_SPT;
>  	case INTEL_PCH_SPT_LP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found SunrisePoint LP PCH\n");
> -		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
> -			!IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
> +			    !IS_COFFEELAKE(dev_priv));
>  		return PCH_SPT;
>  	case INTEL_PCH_KBP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Kaby Lake PCH (KBP)\n");
> -		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
> -			!IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev,
> +			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
> +			    !IS_COFFEELAKE(dev_priv));
>  		/* KBP is SPT compatible */
>  		return PCH_SPT;
>  	case INTEL_PCH_CNP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Cannon Lake PCH (CNP)\n");
> -		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
> +			    !IS_COFFEELAKE(dev_priv));
>  		return PCH_CNP;
>  	case INTEL_PCH_CNP_LP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Cannon Lake LP PCH (CNP-LP)\n");
> -		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
> +			    !IS_COFFEELAKE(dev_priv));
>  		return PCH_CNP;
>  	case INTEL_PCH_CMP_DEVICE_ID_TYPE:
>  	case INTEL_PCH_CMP2_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
> -		WARN_ON(!IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_COFFEELAKE(dev_priv));
>  		/* CometPoint is CNP Compatible */
>  		return PCH_CNP;
>  	case INTEL_PCH_CMP_V_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Comet Lake V PCH (CMP-V)\n");
> -		WARN_ON(!IS_COFFEELAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_COFFEELAKE(dev_priv));
>  		/* Comet Lake V PCH is based on KBP, which is SPT compatible */
>  		return PCH_SPT;
>  	case INTEL_PCH_ICP_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Ice Lake PCH\n");
> -		WARN_ON(!IS_ICELAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
>  		return PCH_ICP;
>  	case INTEL_PCH_MCC_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Mule Creek Canyon PCH\n");
> -		WARN_ON(!IS_ELKHARTLAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_ELKHARTLAKE(dev_priv));
>  		return PCH_MCC;
>  	case INTEL_PCH_TGP_DEVICE_ID_TYPE:
>  	case INTEL_PCH_TGP2_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Tiger Lake LP PCH\n");
> -		WARN_ON(!IS_TIGERLAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_TIGERLAKE(dev_priv));
>  		return PCH_TGP;
>  	case INTEL_PCH_JSP_DEVICE_ID_TYPE:
>  	case INTEL_PCH_JSP2_DEVICE_ID_TYPE:
>  		DRM_DEBUG_KMS("Found Jasper Lake PCH\n");
> -		WARN_ON(!IS_ELKHARTLAKE(dev_priv));
> +		dev_WARN_ON(dev, !IS_ELKHARTLAKE(dev_priv));
>  		return PCH_JSP;
>  	default:
>  		return PCH_NONE;
> @@ -154,6 +168,7 @@ intel_virt_detect_pch(const struct drm_i915_private *dev_priv)
>  
>  void intel_detect_pch(struct drm_i915_private *dev_priv)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct pci_dev *pch = NULL;
>  
>  	/*
> @@ -187,7 +202,7 @@ void intel_detect_pch(struct drm_i915_private *dev_priv)
>  			pch_type = intel_pch_type(dev_priv, id);
>  
>  			/* Sanity check virtual PCH id */
> -			if (WARN_ON(id && pch_type == PCH_NONE))
> +			if (dev_WARN_ON(dev, id && pch_type == PCH_NONE))
>  				id = 0;
>  
>  			dev_priv->pch_type = pch_type;
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index d3dd80db8813..227c35d1c395 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1956,6 +1956,7 @@ static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
>  				   struct intel_crtc *crtc)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_uncore *uncore = &dev_priv->uncore;
>  	const struct intel_crtc_state *crtc_state =
>  		intel_atomic_get_new_crtc_state(state, crtc);
> @@ -1970,8 +1971,8 @@ static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
>  	sprite1_start = fifo_state->plane[PLANE_SPRITE0] + sprite0_start;
>  	fifo_size = fifo_state->plane[PLANE_SPRITE1] + sprite1_start;
>  
> -	WARN_ON(fifo_state->plane[PLANE_CURSOR] != 63);
> -	WARN_ON(fifo_size != 511);
> +	dev_WARN_ON(dev, fifo_state->plane[PLANE_CURSOR] != 63);
> +	dev_WARN_ON(dev, fifo_size != 511);
>  
>  	trace_vlv_fifo_size(crtc, sprite0_start, sprite1_start, fifo_size);
>  
> @@ -3360,6 +3361,7 @@ static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
>  				   enum intel_ddb_partitioning partitioning,
>  				   struct ilk_wm_values *results)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc;
>  	int level, wm_lp;
>  
> @@ -3398,7 +3400,7 @@ static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
>  		 * level is disabled. Doing otherwise could cause underruns.
>  		 */
>  		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
> -			WARN_ON(wm_lp != 1);
> +			dev_WARN_ON(dev, wm_lp != 1);
>  			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r->spr_val;
>  		} else
>  			results->wm_lp_spr[wm_lp - 1] = r->spr_val;
> @@ -3410,7 +3412,7 @@ static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
>  		const struct intel_wm_level *r =
>  			&intel_crtc->wm.active.ilk.wm[0];
>  
> -		if (WARN_ON(!r->enable))
> +		if (dev_WARN_ON(dev, !r->enable))
>  			continue;
>  
>  		results->wm_linetime[pipe] = intel_crtc->wm.active.ilk.linetime;
> @@ -3851,11 +3853,12 @@ static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
>  			      const int num_active,
>  			      struct skl_ddb_allocation *ddb)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	const struct drm_display_mode *adjusted_mode;
>  	u64 total_data_bw;
>  	u16 ddb_size = INTEL_INFO(dev_priv)->ddb_size;
>  
> -	WARN_ON(ddb_size == 0);
> +	dev_WARN_ON(dev, ddb_size == 0);
>  
>  	if (INTEL_GEN(dev_priv) < 11)
>  		return ddb_size - 4; /* 4 blocks for bypass path allocation */
> @@ -3889,6 +3892,7 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
>  				   struct skl_ddb_entry *alloc, /* out */
>  				   int *num_active /* out */)
>  {
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct drm_atomic_state *state = crtc_state->uapi.state;
>  	struct intel_atomic_state *intel_state = to_intel_atomic_state(state);
>  	struct drm_crtc *for_crtc = crtc_state->uapi.crtc;
> @@ -3898,7 +3902,7 @@ skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
>  	u16 ddb_size;
>  	u32 i;
>  
> -	if (WARN_ON(!state) || !crtc_state->hw.active) {
> +	if (dev_WARN_ON(dev, !state) || !crtc_state->hw.active) {
>  		alloc->start = 0;
>  		alloc->end = 0;
>  		*num_active = hweight8(dev_priv->active_pipes);
> @@ -3973,6 +3977,7 @@ skl_cursor_allocation(const struct intel_crtc_state *crtc_state,
>  		      int num_active)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	int level, max_level = ilk_wm_max_level(dev_priv);
>  	struct skl_wm_level wm = {};
>  	int ret, min_ddb_alloc = 0;
> @@ -3983,7 +3988,7 @@ skl_cursor_allocation(const struct intel_crtc_state *crtc_state,
>  				    DRM_FORMAT_MOD_LINEAR,
>  				    DRM_MODE_ROTATE_0,
>  				    crtc_state->pixel_rate, &wp, 0);
> -	WARN_ON(ret);
> +	dev_WARN_ON(dev, ret);
>  
>  	for (level = 0; level <= max_level; level++) {
>  		skl_compute_plane_wm(crtc_state, level, &wp, &wm, &wm);
> @@ -4258,6 +4263,7 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
>  	struct drm_atomic_state *state = crtc_state->uapi.state;
>  	struct drm_crtc *crtc = crtc_state->uapi.crtc;
>  	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
> +	struct device *dev = i915_to_dev(dev_priv);
>  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>  	struct skl_ddb_entry *alloc = &crtc_state->wm.skl.ddb;
>  	u16 alloc_size, start = 0;
> @@ -4275,7 +4281,7 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
>  	memset(crtc_state->wm.skl.plane_ddb_y, 0, sizeof(crtc_state->wm.skl.plane_ddb_y));
>  	memset(crtc_state->wm.skl.plane_ddb_uv, 0, sizeof(crtc_state->wm.skl.plane_ddb_uv));
>  
> -	if (WARN_ON(!state))
> +	if (dev_WARN_ON(dev, !state))
>  		return 0;
>  
>  	if (!crtc_state->hw.active) {
> @@ -4322,7 +4328,8 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
>  
>  			if (plane_id == PLANE_CURSOR) {
>  				if (wm->wm[level].min_ddb_alloc > total[PLANE_CURSOR]) {
> -					WARN_ON(wm->wm[level].min_ddb_alloc != U16_MAX);
> +					dev_WARN_ON(dev,
> +						    wm->wm[level].min_ddb_alloc != U16_MAX);
>  					blocks = U32_MAX;
>  					break;
>  				}
> @@ -4386,7 +4393,7 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
>  		alloc_size -= extra;
>  		total_data_rate -= rate;
>  	}
> -	WARN_ON(alloc_size != 0 || total_data_rate != 0);
> +	dev_WARN_ON(dev, alloc_size != 0 || total_data_rate != 0);
>  
>  	/* Set the actual DDB start/end points for each plane */
>  	start = alloc->start;
> @@ -4400,7 +4407,8 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
>  			continue;
>  
>  		/* Gen11+ uses a separate plane for UV watermarks */
> -		WARN_ON(INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
> +		dev_WARN_ON(dev,
> +			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
>  
>  		/* Leave disabled planes at (0,0) */
>  		if (total[plane_id]) {
> diff --git a/drivers/gpu/drm/i915/intel_sideband.c b/drivers/gpu/drm/i915/intel_sideband.c
> index e06b35b844a0..e87b99730e43 100644
> --- a/drivers/gpu/drm/i915/intel_sideband.c
> +++ b/drivers/gpu/drm/i915/intel_sideband.c
> @@ -232,6 +232,7 @@ void vlv_ccu_write(struct drm_i915_private *i915, u32 reg, u32 val)
>  
>  u32 vlv_dpio_read(struct drm_i915_private *i915, enum pipe pipe, int reg)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	int port = i915->dpio_phy_iosf_port[DPIO_PHY(pipe)];
>  	u32 val = 0;
>  
> @@ -241,8 +242,9 @@ u32 vlv_dpio_read(struct drm_i915_private *i915, enum pipe pipe, int reg)
>  	 * FIXME: There might be some registers where all 1's is a valid value,
>  	 * so ideally we should check the register offset instead...
>  	 */
> -	WARN(val == 0xffffffff, "DPIO read pipe %c reg 0x%x == 0x%x\n",
> -	     pipe_name(pipe), reg, val);
> +	dev_WARN(dev, val == 0xffffffff,
> +		 "DPIO read pipe %c reg 0x%x == 0x%x\n",
> +		 pipe_name(pipe), reg, val);
>  
>  	return val;
>  }
> @@ -487,6 +489,7 @@ static bool skl_pcode_try_request(struct drm_i915_private *i915, u32 mbox,
>  int skl_pcode_request(struct drm_i915_private *i915, u32 mbox, u32 request,
>  		      u32 reply_mask, u32 reply, int timeout_base_ms)
>  {
> +	struct device *dev = i915_to_dev(i915);
>  	u32 status;
>  	int ret;
>  
> @@ -520,7 +523,7 @@ int skl_pcode_request(struct drm_i915_private *i915, u32 mbox, u32 request,
>  	 * the request completion.
>  	 */
>  	DRM_DEBUG_KMS("PCODE timeout, retrying with preemption disabled\n");
> -	WARN_ON_ONCE(timeout_base_ms > 3);
> +	dev_WARN_ON_ONCE(dev, timeout_base_ms > 3);
>  	preempt_disable();
>  	ret = wait_for_atomic(COND, 50);
>  	preempt_enable();
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index 94a97bf8c021..f3de70e7ee50 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1498,6 +1498,7 @@ static void intel_uncore_fw_domains_fini(struct intel_uncore *uncore)
>  static int intel_uncore_fw_domains_init(struct intel_uncore *uncore)
>  {
>  	struct drm_i915_private *i915 = uncore->i915;
> +	struct device *dev = i915_to_dev(i915);
>  	int ret = 0;
>  
>  	GEM_BUG_ON(!intel_uncore_has_forcewake(uncore));
> @@ -1612,7 +1613,7 @@ static int intel_uncore_fw_domains_init(struct intel_uncore *uncore)
>  #undef fw_domain_init
>  
>  	/* All future platforms are expected to require complex power gating */
> -	WARN_ON(!ret && uncore->fw_domains == 0);
> +	dev_WARN_ON(dev, !ret && uncore->fw_domains == 0);
>  
>  out:
>  	if (ret)
Pankaj Bharadiya Jan. 9, 2020, 11:25 a.m. UTC | #2
On Wed, Jan 08, 2020 at 02:52:02PM +0200, Jani Nikula wrote:
> On Mon, 06 Jan 2020, Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com> wrote:
> > Device specific WARN* calls include device information in the
> > backtrace, so we know what device the warnings originate from.
> >
> > Covert all the calls of WARN* with device specific dev_WARN*
> > variants in functions where drm_i915_private struct pointer is readily
> > available.
> >
> > The conversion was done automatically with below coccinelle semantic
> > patch. checkpatch errors/warnings are fixed manually.
> >
> > @rule1@
> > identifier func, T;
> > @@
> > func(...) {
> > ...
> > struct drm_i915_private *T = ...;
> > +struct device *dev = i915_to_dev(T);
> > <+...
> > (
> > -WARN(
> > +dev_WARN(dev,
> > ...)
> > |
> > -WARN_ON(
> > +dev_WARN_ON(dev,
> > ...)
> > |
> > -WARN_ONCE(
> > +dev_WARN_ONCE(dev,
> > ...)
> > |
> > -WARN_ON_ONCE(
> > +dev_WARN_ON_ONCE(dev,
> > ...)
> > )
> > ...+>
> > }
> >
> > @rule2@
> > identifier func, T;
> > @@
> > func(struct drm_i915_private *T,...) {
> > +struct device *dev = i915_to_dev(T);
> > <+...
> > (
> > -WARN(
> > +dev_WARN(dev,
> > ...)
> > |
> > -WARN_ON(
> > +dev_WARN_ON(dev,
> > ...)
> > |
> > -WARN_ONCE(
> > +dev_WARN_ONCE(dev,
> > ...)
> > |
> > -WARN_ON_ONCE(
> > +dev_WARN_ON_ONCE(dev,
> > ...)
> > )
> > ...+>
> > }
> >
> > command: spatch --sp-file <script> --dir drivers/gpu/drm/i915 \
> > 					--linux-spacing --in-place
> > Signed-off-by: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/icl_dsi.c        |  14 +-
> >  drivers/gpu/drm/i915/display/intel_atomic.c   |   8 +-
> >  drivers/gpu/drm/i915/display/intel_audio.c    |  23 ++-
> >  drivers/gpu/drm/i915/display/intel_bios.c     |  13 +-
> >  drivers/gpu/drm/i915/display/intel_bw.c       |   3 +-
> >  drivers/gpu/drm/i915/display/intel_cdclk.c    |  85 ++++----
> >  drivers/gpu/drm/i915/display/intel_color.c    |   4 +-
> >  .../gpu/drm/i915/display/intel_combo_phy.c    |   3 +-
> >  drivers/gpu/drm/i915/display/intel_crt.c      |  15 +-
> >  drivers/gpu/drm/i915/display/intel_ddi.c      | 102 ++++++----
> >  drivers/gpu/drm/i915/display/intel_display.c  | 180 ++++++++++-------
> >  .../drm/i915/display/intel_display_power.c    | 190 +++++++++++-------
> >  drivers/gpu/drm/i915/display/intel_dp.c       | 112 +++++++----
> >  drivers/gpu/drm/i915/display/intel_dp_mst.c   |  10 +-
> >  drivers/gpu/drm/i915/display/intel_dpio_phy.c |   3 +-
> >  drivers/gpu/drm/i915/display/intel_dpll_mgr.c |  45 +++--
> >  drivers/gpu/drm/i915/display/intel_dsb.c      |   9 +-
> >  drivers/gpu/drm/i915/display/intel_dsi_vbt.c  |   5 +-
> >  drivers/gpu/drm/i915/display/intel_fbc.c      |  30 ++-
> >  drivers/gpu/drm/i915/display/intel_gmbus.c    |   4 +-
> >  drivers/gpu/drm/i915/display/intel_hdcp.c     |  26 ++-
> >  drivers/gpu/drm/i915/display/intel_hdmi.c     |  47 +++--
> >  drivers/gpu/drm/i915/display/intel_hotplug.c  |   6 +-
> >  .../gpu/drm/i915/display/intel_lpe_audio.c    |   3 +-
> >  drivers/gpu/drm/i915/display/intel_lvds.c     |   3 +-
> >  drivers/gpu/drm/i915/display/intel_opregion.c |   8 +-
> >  drivers/gpu/drm/i915/display/intel_overlay.c  |  17 +-
> >  drivers/gpu/drm/i915/display/intel_panel.c    |  28 ++-
> >  drivers/gpu/drm/i915/display/intel_pipe_crc.c |   4 +-
> >  drivers/gpu/drm/i915/display/intel_psr.c      |  38 ++--
> >  drivers/gpu/drm/i915/display/intel_sdvo.c     |   8 +-
> >  drivers/gpu/drm/i915/display/intel_sprite.c   |   6 +-
> >  drivers/gpu/drm/i915/display/intel_tc.c       |  24 ++-
> >  drivers/gpu/drm/i915/display/intel_vdsc.c     |   3 +-
> >  drivers/gpu/drm/i915/display/vlv_dsi.c        |   3 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_pm.c        |   3 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_shmem.c     |   4 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_shrinker.c  |  15 +-
> >  drivers/gpu/drm/i915/gem/i915_gem_stolen.c    |  15 +-
> >  drivers/gpu/drm/i915/gt/intel_engine_cs.c     |   9 +-
> >  drivers/gpu/drm/i915/gt/intel_engine_user.c   |   3 +-
> >  drivers/gpu/drm/i915/gt/intel_mocs.c          |   5 +-
> >  drivers/gpu/drm/i915/gt/intel_rc6.c           |   3 +-
> >  .../gpu/drm/i915/gt/intel_ring_submission.c   |   8 +-
> >  drivers/gpu/drm/i915/gt/intel_rps.c           |  23 ++-
> >  drivers/gpu/drm/i915/gt/intel_workarounds.c   |   3 +-
> >  drivers/gpu/drm/i915/gvt/aperture_gm.c        |   8 +-
> >  drivers/gpu/drm/i915/gvt/cmd_parser.c         |   5 +-
> >  drivers/gpu/drm/i915/gvt/display.c            |   3 +-
> >  drivers/gpu/drm/i915/gvt/dmabuf.c             |   5 +-
> >  drivers/gpu/drm/i915/gvt/edid.c               |   3 +-
> >  drivers/gpu/drm/i915/gvt/gvt.c                |   6 +-
> >  drivers/gpu/drm/i915/gvt/handlers.c           |   3 +-
> >  drivers/gpu/drm/i915/gvt/mmio_context.c       |   3 +-
> >  drivers/gpu/drm/i915/i915_drv.c               |  23 ++-
> >  drivers/gpu/drm/i915/i915_gem.c               |   9 +-
> >  drivers/gpu/drm/i915/i915_gem_gtt.c           |   7 +-
> >  drivers/gpu/drm/i915/i915_irq.c               |  83 ++++----
> >  drivers/gpu/drm/i915/i915_pmu.c               |   9 +-
> >  drivers/gpu/drm/i915/intel_csr.c              |   7 +-
> >  drivers/gpu/drm/i915/intel_pch.c              |  65 +++---
> >  drivers/gpu/drm/i915/intel_pm.c               |  30 ++-
> >  drivers/gpu/drm/i915/intel_sideband.c         |   9 +-
> >  drivers/gpu/drm/i915/intel_uncore.c           |   3 +-
> >  64 files changed, 918 insertions(+), 536 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
> > index 8435bc5a7a74..8648569793f6 100644
> > --- a/drivers/gpu/drm/i915/display/icl_dsi.c
> > +++ b/drivers/gpu/drm/i915/display/icl_dsi.c
> > @@ -345,10 +345,11 @@ static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder,
> >  static void get_dsi_io_power_domains(struct drm_i915_private *dev_priv,
> >  				     struct intel_dsi *intel_dsi)
> >  {
> > +	struct device *dev = i915_to_dev(dev_priv);
> 
> Please don't add the extra local variables. See the replies to previous
> patches, and use dev_priv->drm.dev or just &dev_priv->drm.
> 
> Also we usually have struct drm_device *dev, almost never struct device
> *dev, so these will inevitably conflict.

Thank you for the review. Will post updated series.

Thanks,
Pankaj

> 
> BR,
> Jani.
> 
[snip]
> >  	struct drm_i915_private *i915 = uncore->i915;
> > +	struct device *dev = i915_to_dev(i915);
> >  	int ret = 0;
> >  
> >  	GEM_BUG_ON(!intel_uncore_has_forcewake(uncore));
> > @@ -1612,7 +1613,7 @@ static int intel_uncore_fw_domains_init(struct intel_uncore *uncore)
> >  #undef fw_domain_init
> >  
> >  	/* All future platforms are expected to require complex power gating */
> > -	WARN_ON(!ret && uncore->fw_domains == 0);
> > +	dev_WARN_ON(dev, !ret && uncore->fw_domains == 0);
> >  
> >  out:
> >  	if (ret)
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/icl_dsi.c b/drivers/gpu/drm/i915/display/icl_dsi.c
index 8435bc5a7a74..8648569793f6 100644
--- a/drivers/gpu/drm/i915/display/icl_dsi.c
+++ b/drivers/gpu/drm/i915/display/icl_dsi.c
@@ -345,10 +345,11 @@  static void gen11_dsi_program_esc_clk_div(struct intel_encoder *encoder,
 static void get_dsi_io_power_domains(struct drm_i915_private *dev_priv,
 				     struct intel_dsi *intel_dsi)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum port port;
 
 	for_each_dsi_port(port, intel_dsi->ports) {
-		WARN_ON(intel_dsi->io_wakeref[port]);
+		dev_WARN_ON(dev, intel_dsi->io_wakeref[port]);
 		intel_dsi->io_wakeref[port] =
 			intel_display_power_get(dev_priv,
 						port == PORT_A ?
@@ -1334,6 +1335,7 @@  static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
 					struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct drm_dsc_config *vdsc_cfg = &crtc_state->dsc.config;
 	int dsc_max_bpc = INTEL_GEN(dev_priv) >= 12 ? 12 : 10;
 	bool use_dsc;
@@ -1357,11 +1359,11 @@  static int gen11_dsi_dsc_compute_config(struct intel_encoder *encoder,
 		return ret;
 
 	/* DSI specific sanity checks on the common code */
-	WARN_ON(vdsc_cfg->vbr_enable);
-	WARN_ON(vdsc_cfg->simple_422);
-	WARN_ON(vdsc_cfg->pic_width % vdsc_cfg->slice_width);
-	WARN_ON(vdsc_cfg->slice_height < 8);
-	WARN_ON(vdsc_cfg->pic_height % vdsc_cfg->slice_height);
+	dev_WARN_ON(dev, vdsc_cfg->vbr_enable);
+	dev_WARN_ON(dev, vdsc_cfg->simple_422);
+	dev_WARN_ON(dev, vdsc_cfg->pic_width % vdsc_cfg->slice_width);
+	dev_WARN_ON(dev, vdsc_cfg->slice_height < 8);
+	dev_WARN_ON(dev, vdsc_cfg->pic_height % vdsc_cfg->slice_height);
 
 	ret = drm_dsc_compute_rc_parameters(vdsc_cfg);
 	if (ret)
diff --git a/drivers/gpu/drm/i915/display/intel_atomic.c b/drivers/gpu/drm/i915/display/intel_atomic.c
index 0eb973f65977..ecc18390cf47 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic.c
@@ -297,6 +297,7 @@  static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
 				      int *scaler_id)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int j;
 	u32 mode;
 
@@ -312,7 +313,8 @@  static void intel_atomic_setup_scaler(struct intel_crtc_scaler_state *scaler_sta
 		}
 	}
 
-	if (WARN(*scaler_id < 0, "Cannot find scaler for %s:%d\n", name, idx))
+	if (dev_WARN(dev, *scaler_id < 0,
+		     "Cannot find scaler for %s:%d\n", name, idx))
 		return;
 
 	/* set scaler mode */
@@ -381,6 +383,7 @@  int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
 			       struct intel_crtc *intel_crtc,
 			       struct intel_crtc_state *crtc_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct drm_plane *plane = NULL;
 	struct intel_plane *intel_plane;
 	struct intel_plane_state *plane_state = NULL;
@@ -463,7 +466,8 @@  int intel_atomic_setup_scalers(struct drm_i915_private *dev_priv,
 			idx = plane->base.id;
 
 			/* plane on different crtc cannot be a scaler user of this crtc */
-			if (WARN_ON(intel_plane->pipe != intel_crtc->pipe))
+			if (dev_WARN_ON(dev,
+					intel_plane->pipe != intel_crtc->pipe))
 				continue;
 
 			plane_state = intel_atomic_get_new_plane_state(intel_state,
diff --git a/drivers/gpu/drm/i915/display/intel_audio.c b/drivers/gpu/drm/i915/display/intel_audio.c
index 27710098d056..0221c954f09d 100644
--- a/drivers/gpu/drm/i915/display/intel_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_audio.c
@@ -555,6 +555,7 @@  static void ilk_audio_codec_disable(struct intel_encoder *encoder,
 				    const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	enum pipe pipe = crtc->pipe;
 	enum port port = encoder->port;
@@ -565,7 +566,7 @@  static void ilk_audio_codec_disable(struct intel_encoder *encoder,
 		      encoder->base.base.id, encoder->base.name,
 		      pipe_name(pipe));
 
-	if (WARN_ON(port == PORT_A))
+	if (dev_WARN_ON(dev, port == PORT_A))
 		return;
 
 	if (HAS_PCH_IBX(dev_priv)) {
@@ -602,6 +603,7 @@  static void ilk_audio_codec_enable(struct intel_encoder *encoder,
 				   const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_connector *connector = conn_state->connector;
 	enum pipe pipe = crtc->pipe;
@@ -615,7 +617,7 @@  static void ilk_audio_codec_enable(struct intel_encoder *encoder,
 		      encoder->base.base.id, encoder->base.name,
 		      pipe_name(pipe), drm_eld_size(eld));
 
-	if (WARN_ON(port == PORT_A))
+	if (dev_WARN_ON(dev, port == PORT_A))
 		return;
 
 	/*
@@ -803,13 +805,14 @@  void intel_init_audio_hooks(struct drm_i915_private *dev_priv)
 static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
 				  bool enable)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct drm_modeset_acquire_ctx ctx;
 	struct drm_atomic_state *state;
 	int ret;
 
 	drm_modeset_acquire_init(&ctx, 0);
 	state = drm_atomic_state_alloc(&dev_priv->drm);
-	if (WARN_ON(!state))
+	if (dev_WARN_ON(dev, !state))
 		return;
 
 	state->acquire_ctx = &ctx;
@@ -830,7 +833,7 @@  static void glk_force_audio_cdclk(struct drm_i915_private *dev_priv,
 		goto retry;
 	}
 
-	WARN_ON(ret);
+	dev_WARN_ON(dev, ret);
 
 	drm_atomic_state_put(state);
 
@@ -916,8 +919,9 @@  static void i915_audio_component_codec_wake_override(struct device *kdev,
 static int i915_audio_component_get_cdclk_freq(struct device *kdev)
 {
 	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
+	struct device *dev = i915_to_dev(dev_priv);
 
-	if (WARN_ON_ONCE(!HAS_DDI(dev_priv)))
+	if (dev_WARN_ON_ONCE(dev, !HAS_DDI(dev_priv)))
 		return -ENODEV;
 
 	return dev_priv->cdclk.hw.cdclk;
@@ -936,11 +940,12 @@  static int i915_audio_component_get_cdclk_freq(struct device *kdev)
 static struct intel_encoder *get_saved_enc(struct drm_i915_private *dev_priv,
 					       int port, int pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_encoder *encoder;
 
 	/* MST */
 	if (pipe >= 0) {
-		if (WARN_ON(pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
+		if (dev_WARN_ON(dev, pipe >= ARRAY_SIZE(dev_priv->av_enc_map)))
 			return NULL;
 
 		encoder = dev_priv->av_enc_map[pipe];
@@ -1055,12 +1060,14 @@  static int i915_audio_component_bind(struct device *i915_kdev,
 {
 	struct i915_audio_component *acomp = data;
 	struct drm_i915_private *dev_priv = kdev_to_i915(i915_kdev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int i;
 
-	if (WARN_ON(acomp->base.ops || acomp->base.dev))
+	if (dev_WARN_ON(dev, acomp->base.ops || acomp->base.dev))
 		return -EEXIST;
 
-	if (WARN_ON(!device_link_add(hda_kdev, i915_kdev, DL_FLAG_STATELESS)))
+	if (dev_WARN_ON(dev, !device_link_add(hda_kdev, i915_kdev,
+					      DL_FLAG_STATELESS)))
 		return -ENOMEM;
 
 	drm_modeset_lock_all(&dev_priv->drm);
diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
index 8beac06e3f10..de6bc97a81ba 100644
--- a/drivers/gpu/drm/i915/display/intel_bios.c
+++ b/drivers/gpu/drm/i915/display/intel_bios.c
@@ -215,6 +215,7 @@  static void
 parse_panel_options(struct drm_i915_private *dev_priv,
 		    const struct bdb_header *bdb)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct bdb_lvds_options *lvds_options;
 	int panel_type;
 	int drrs_mode;
@@ -228,7 +229,7 @@  parse_panel_options(struct drm_i915_private *dev_priv,
 
 	ret = intel_opregion_get_panel_type(dev_priv);
 	if (ret >= 0) {
-		WARN_ON(ret > 0xf);
+		dev_WARN_ON(dev, ret > 0xf);
 		panel_type = ret;
 		DRM_DEBUG_KMS("Panel type: %d (OpRegion)\n", panel_type);
 	} else {
@@ -1215,10 +1216,11 @@  static int goto_next_sequence_v3(const u8 *data, int index, int total)
  */
 static int get_init_otp_deassert_fragment_len(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const u8 *data = dev_priv->vbt.dsi.sequence[MIPI_SEQ_INIT_OTP];
 	int index, len;
 
-	if (WARN_ON(!data || dev_priv->vbt.dsi.seq_version != 1))
+	if (dev_WARN_ON(dev, !data || dev_priv->vbt.dsi.seq_version != 1))
 		return 0;
 
 	/* index = 1 to skip sequence byte */
@@ -2220,6 +2222,7 @@  bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin)
  */
 bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct display_device_data *devdata;
 	const struct child_device_config *child;
 	static const struct {
@@ -2242,7 +2245,8 @@  bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por
 	}
 
 	/* FIXME maybe deal with port A as well? */
-	if (WARN_ON(port == PORT_A) || port >= ARRAY_SIZE(port_mapping))
+	if (dev_WARN_ON(dev, port == PORT_A) ||
+	    port >= ARRAY_SIZE(port_mapping))
 		return false;
 
 	list_for_each_entry(devdata, &dev_priv->vbt.display_devices, node) {
@@ -2488,10 +2492,11 @@  bool
 intel_bios_is_port_hpd_inverted(const struct drm_i915_private *i915,
 				enum port port)
 {
+	struct device *dev = i915_to_dev(i915);
 	const struct child_device_config *child =
 		i915->vbt.ddi_port_info[port].child;
 
-	if (WARN_ON_ONCE(!IS_GEN9_LP(i915)))
+	if (dev_WARN_ON_ONCE(dev, !IS_GEN9_LP(i915)))
 		return false;
 
 	return child && child->hpd_invert;
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index b228671d5a5d..ec9419373fc2 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -116,13 +116,14 @@  static int icl_pcode_read_qgv_point_info(struct drm_i915_private *dev_priv,
 static int icl_get_qgv_points(struct drm_i915_private *dev_priv,
 			      struct intel_qgv_info *qi)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int i, ret;
 
 	ret = icl_pcode_read_mem_global_info(dev_priv, qi);
 	if (ret)
 		return ret;
 
-	if (WARN_ON(qi->num_points > ARRAY_SIZE(qi->points)))
+	if (dev_WARN_ON(dev, qi->num_points > ARRAY_SIZE(qi->points)))
 		qi->num_points = ARRAY_SIZE(qi->points);
 
 	for (i = 0; i < qi->num_points; i++) {
diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c
index 7d1ab1e5b7c3..ee884e3ec2e1 100644
--- a/drivers/gpu/drm/i915/display/intel_cdclk.c
+++ b/drivers/gpu/drm/i915/display/intel_cdclk.c
@@ -489,6 +489,7 @@  static void vlv_get_cdclk(struct drm_i915_private *dev_priv,
 
 static void vlv_program_pfi_credits(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	unsigned int credits, default_credits;
 
 	if (IS_CHERRYVIEW(dev_priv))
@@ -520,7 +521,7 @@  static void vlv_program_pfi_credits(struct drm_i915_private *dev_priv)
 	 * FIXME is this guaranteed to clear
 	 * immediately or should we poll for it?
 	 */
-	WARN_ON(I915_READ(GCI_CONTROL) & PFI_CREDIT_RESEND);
+	dev_WARN_ON(dev, I915_READ(GCI_CONTROL) & PFI_CREDIT_RESEND);
 }
 
 static void vlv_set_cdclk(struct drm_i915_private *dev_priv,
@@ -715,16 +716,18 @@  static void bdw_set_cdclk(struct drm_i915_private *dev_priv,
 			  const struct intel_cdclk_state *cdclk_state,
 			  enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int cdclk = cdclk_state->cdclk;
 	u32 val;
 	int ret;
 
-	if (WARN((I915_READ(LCPLL_CTL) &
-		  (LCPLL_PLL_DISABLE | LCPLL_PLL_LOCK |
-		   LCPLL_CD_CLOCK_DISABLE | LCPLL_ROOT_CD_CLOCK_DISABLE |
-		   LCPLL_CD2X_CLOCK_DISABLE | LCPLL_POWER_DOWN_ALLOW |
-		   LCPLL_CD_SOURCE_FCLK)) != LCPLL_PLL_LOCK,
-		 "trying to change cdclk frequency with cdclk not enabled\n"))
+	if (dev_WARN(dev, (I915_READ(LCPLL_CTL) &
+			   (LCPLL_PLL_DISABLE | LCPLL_PLL_LOCK |
+			    LCPLL_CD_CLOCK_DISABLE |
+			    LCPLL_ROOT_CD_CLOCK_DISABLE |
+			    LCPLL_CD2X_CLOCK_DISABLE | LCPLL_POWER_DOWN_ALLOW |
+			    LCPLL_CD_SOURCE_FCLK)) != LCPLL_PLL_LOCK,
+		     "trying to change cdclk frequency with cdclk not enabled\n"))
 		return;
 
 	ret = sandybridge_pcode_write(dev_priv,
@@ -823,6 +826,7 @@  static u8 skl_calc_voltage_level(int cdclk)
 static void skl_dpll0_update(struct drm_i915_private *dev_priv,
 			     struct intel_cdclk_state *cdclk_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
 	cdclk_state->ref = 24000;
@@ -832,15 +836,15 @@  static void skl_dpll0_update(struct drm_i915_private *dev_priv,
 	if ((val & LCPLL_PLL_ENABLE) == 0)
 		return;
 
-	if (WARN_ON((val & LCPLL_PLL_LOCK) == 0))
+	if (dev_WARN_ON(dev, (val & LCPLL_PLL_LOCK) == 0))
 		return;
 
 	val = I915_READ(DPLL_CTRL1);
 
-	if (WARN_ON((val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
-			    DPLL_CTRL1_SSC(SKL_DPLL0) |
-			    DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
-		    DPLL_CTRL1_OVERRIDE(SKL_DPLL0)))
+	if (dev_WARN_ON(dev, (val & (DPLL_CTRL1_HDMI_MODE(SKL_DPLL0) |
+				     DPLL_CTRL1_SSC(SKL_DPLL0) |
+				     DPLL_CTRL1_OVERRIDE(SKL_DPLL0))) !=
+			DPLL_CTRL1_OVERRIDE(SKL_DPLL0)))
 		return;
 
 	switch (val & DPLL_CTRL1_LINK_RATE_MASK(SKL_DPLL0)) {
@@ -940,9 +944,10 @@  static void skl_set_preferred_cdclk_vco(struct drm_i915_private *dev_priv,
 
 static void skl_dpll0_enable(struct drm_i915_private *dev_priv, int vco)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
-	WARN_ON(vco != 8100000 && vco != 8640000);
+	dev_WARN_ON(dev, vco != 8100000 && vco != 8640000);
 
 	/*
 	 * We always enable DPLL0 with the lowest link rate possible, but still
@@ -992,6 +997,7 @@  static void skl_set_cdclk(struct drm_i915_private *dev_priv,
 			  const struct intel_cdclk_state *cdclk_state,
 			  enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int cdclk = cdclk_state->cdclk;
 	int vco = cdclk_state->vco;
 	u32 freq_select, cdclk_ctl;
@@ -1005,7 +1011,7 @@  static void skl_set_cdclk(struct drm_i915_private *dev_priv,
 	 * use the corresponding VCO freq as that always leads to using the
 	 * minimum 308MHz CDCLK.
 	 */
-	WARN_ON_ONCE(IS_SKYLAKE(dev_priv) && vco == 8640000);
+	dev_WARN_ON_ONCE(dev, IS_SKYLAKE(dev_priv) && vco == 8640000);
 
 	ret = skl_pcode_request(dev_priv, SKL_PCODE_CDCLK_CONTROL,
 				SKL_CDCLK_PREPARE_FOR_CHANGE,
@@ -1020,8 +1026,8 @@  static void skl_set_cdclk(struct drm_i915_private *dev_priv,
 	/* Choose frequency for this cdclk */
 	switch (cdclk) {
 	default:
-		WARN_ON(cdclk != dev_priv->cdclk.hw.bypass);
-		WARN_ON(vco != 0);
+		dev_WARN_ON(dev, cdclk != dev_priv->cdclk.hw.bypass);
+		dev_WARN_ON(dev, vco != 0);
 		/* fall through */
 	case 308571:
 	case 337500:
@@ -1215,6 +1221,7 @@  static const struct intel_cdclk_vals icl_cdclk_table[] = {
 
 static int bxt_calc_cdclk(struct drm_i915_private *dev_priv, int min_cdclk)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct intel_cdclk_vals *table = dev_priv->cdclk.table;
 	int i;
 
@@ -1223,13 +1230,14 @@  static int bxt_calc_cdclk(struct drm_i915_private *dev_priv, int min_cdclk)
 		    table[i].cdclk >= min_cdclk)
 			return table[i].cdclk;
 
-	WARN(1, "Cannot satisfy minimum cdclk %d with refclk %u\n",
-	     min_cdclk, dev_priv->cdclk.hw.ref);
+	dev_WARN(dev, 1, "Cannot satisfy minimum cdclk %d with refclk %u\n",
+		 min_cdclk, dev_priv->cdclk.hw.ref);
 	return 0;
 }
 
 static int bxt_calc_cdclk_pll_vco(struct drm_i915_private *dev_priv, int cdclk)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct intel_cdclk_vals *table = dev_priv->cdclk.table;
 	int i;
 
@@ -1241,8 +1249,8 @@  static int bxt_calc_cdclk_pll_vco(struct drm_i915_private *dev_priv, int cdclk)
 		    table[i].cdclk == cdclk)
 			return dev_priv->cdclk.hw.ref * table[i].ratio;
 
-	WARN(1, "cdclk %d not valid for refclk %u\n",
-	     cdclk, dev_priv->cdclk.hw.ref);
+	dev_WARN(dev, 1, "cdclk %d not valid for refclk %u\n",
+		 cdclk, dev_priv->cdclk.hw.ref);
 	return 0;
 }
 
@@ -1351,6 +1359,7 @@  static void bxt_de_pll_readout(struct drm_i915_private *dev_priv,
 static void bxt_get_cdclk(struct drm_i915_private *dev_priv,
 			  struct intel_cdclk_state *cdclk_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 divider;
 	int div;
 
@@ -1375,15 +1384,17 @@  static void bxt_get_cdclk(struct drm_i915_private *dev_priv,
 		div = 2;
 		break;
 	case BXT_CDCLK_CD2X_DIV_SEL_1_5:
-		WARN(IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
-		     "Unsupported divider\n");
+		dev_WARN(dev,
+			 IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
+			 "Unsupported divider\n");
 		div = 3;
 		break;
 	case BXT_CDCLK_CD2X_DIV_SEL_2:
 		div = 4;
 		break;
 	case BXT_CDCLK_CD2X_DIV_SEL_4:
-		WARN(INTEL_GEN(dev_priv) >= 10, "Unsupported divider\n");
+		dev_WARN(dev, INTEL_GEN(dev_priv) >= 10,
+			 "Unsupported divider\n");
 		div = 8;
 		break;
 	default:
@@ -1491,6 +1502,7 @@  static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
 			  const struct intel_cdclk_state *cdclk_state,
 			  enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int cdclk = cdclk_state->cdclk;
 	int vco = cdclk_state->vco;
 	u32 val, divider;
@@ -1520,22 +1532,24 @@  static void bxt_set_cdclk(struct drm_i915_private *dev_priv,
 	/* cdclk = vco / 2 / div{1,1.5,2,4} */
 	switch (DIV_ROUND_CLOSEST(vco, cdclk)) {
 	default:
-		WARN_ON(cdclk != dev_priv->cdclk.hw.bypass);
-		WARN_ON(vco != 0);
+		dev_WARN_ON(dev, cdclk != dev_priv->cdclk.hw.bypass);
+		dev_WARN_ON(dev, vco != 0);
 		/* fall through */
 	case 2:
 		divider = BXT_CDCLK_CD2X_DIV_SEL_1;
 		break;
 	case 3:
-		WARN(IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
-		     "Unsupported divider\n");
+		dev_WARN(dev,
+			 IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10,
+			 "Unsupported divider\n");
 		divider = BXT_CDCLK_CD2X_DIV_SEL_1_5;
 		break;
 	case 4:
 		divider = BXT_CDCLK_CD2X_DIV_SEL_2;
 		break;
 	case 8:
-		WARN(INTEL_GEN(dev_priv) >= 10, "Unsupported divider\n");
+		dev_WARN(dev, INTEL_GEN(dev_priv) >= 10,
+			 "Unsupported divider\n");
 		divider = BXT_CDCLK_CD2X_DIV_SEL_4;
 		break;
 	}
@@ -1845,18 +1859,19 @@  static void intel_set_cdclk(struct drm_i915_private *dev_priv,
 			    const struct intel_cdclk_state *cdclk_state,
 			    enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (!intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state))
 		return;
 
-	if (WARN_ON_ONCE(!dev_priv->display.set_cdclk))
+	if (dev_WARN_ON_ONCE(dev, !dev_priv->display.set_cdclk))
 		return;
 
 	intel_dump_cdclk_state(cdclk_state, "Changing CDCLK to");
 
 	dev_priv->display.set_cdclk(dev_priv, cdclk_state, pipe);
 
-	if (WARN(intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state),
-		 "cdclk state doesn't match!\n")) {
+	if (dev_WARN(dev, intel_cdclk_changed(&dev_priv->cdclk.hw, cdclk_state),
+		     "cdclk state doesn't match!\n")) {
 		intel_dump_cdclk_state(&dev_priv->cdclk.hw, "[hw state]");
 		intel_dump_cdclk_state(cdclk_state, "[sw state]");
 	}
@@ -2428,6 +2443,7 @@  static int intel_compute_max_dotclk(struct drm_i915_private *dev_priv)
  */
 void intel_update_max_cdclk(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (IS_ELKHARTLAKE(dev_priv)) {
 		if (dev_priv->cdclk.hw.ref == 24000)
 			dev_priv->max_cdclk_freq = 552000;
@@ -2445,7 +2461,7 @@  void intel_update_max_cdclk(struct drm_i915_private *dev_priv)
 		int max_cdclk, vco;
 
 		vco = dev_priv->skl_preferred_vco_freq;
-		WARN_ON(vco != 8100000 && vco != 8640000);
+		dev_WARN_ON(dev, vco != 8100000 && vco != 8640000);
 
 		/*
 		 * Use the lower (vco 8640) cdclk values as a
@@ -2617,6 +2633,7 @@  void intel_update_rawclk(struct drm_i915_private *dev_priv)
  */
 void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (IS_ELKHARTLAKE(dev_priv)) {
 		dev_priv->display.set_cdclk = bxt_set_cdclk;
 		dev_priv->display.modeset_calc_cdclk = bxt_modeset_calc_cdclk;
@@ -2697,8 +2714,8 @@  void intel_init_cdclk_hooks(struct drm_i915_private *dev_priv)
 	else if (IS_I845G(dev_priv))
 		dev_priv->display.get_cdclk = fixed_200mhz_get_cdclk;
 	else { /* 830 */
-		WARN(!IS_I830(dev_priv),
-		     "Unknown platform. Assuming 133 MHz CDCLK\n");
+		dev_WARN(dev, !IS_I830(dev_priv),
+			 "Unknown platform. Assuming 133 MHz CDCLK\n");
 		dev_priv->display.get_cdclk = fixed_133mhz_get_cdclk;
 	}
 }
diff --git a/drivers/gpu/drm/i915/display/intel_color.c b/drivers/gpu/drm/i915/display/intel_color.c
index 3980e8b50c28..4a38b53b1e2b 100644
--- a/drivers/gpu/drm/i915/display/intel_color.c
+++ b/drivers/gpu/drm/i915/display/intel_color.c
@@ -272,6 +272,7 @@  static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	bool limited_color_range = ilk_csc_limited_range(crtc_state);
 
 	if (crtc_state->hw.ctm) {
@@ -297,7 +298,8 @@  static void ilk_load_csc_matrix(const struct intel_crtc_state *crtc_state)
 		 * LUT is needed but CSC is not we need to load an
 		 * identity matrix.
 		 */
-		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_GEMINILAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
+			    !IS_GEMINILAKE(dev_priv));
 
 		ilk_update_pipe_csc(crtc, ilk_csc_off_zero,
 				    ilk_csc_coeff_identity,
diff --git a/drivers/gpu/drm/i915/display/intel_combo_phy.c b/drivers/gpu/drm/i915/display/intel_combo_phy.c
index 44bbc7e74fc3..011610a9bcd4 100644
--- a/drivers/gpu/drm/i915/display/intel_combo_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_combo_phy.c
@@ -215,11 +215,12 @@  void intel_combo_phy_power_up_lanes(struct drm_i915_private *dev_priv,
 				    enum phy phy, bool is_dsi,
 				    int lane_count, bool lane_reversal)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u8 lane_mask;
 	u32 val;
 
 	if (is_dsi) {
-		WARN_ON(lane_reversal);
+		dev_WARN_ON(dev, lane_reversal);
 
 		switch (lane_count) {
 		case 1:
diff --git a/drivers/gpu/drm/i915/display/intel_crt.c b/drivers/gpu/drm/i915/display/intel_crt.c
index cbe5978e7fb5..5aa3a69f5ec6 100644
--- a/drivers/gpu/drm/i915/display/intel_crt.c
+++ b/drivers/gpu/drm/i915/display/intel_crt.c
@@ -229,8 +229,9 @@  static void hsw_disable_crt(struct intel_encoder *encoder,
 			    const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
-	WARN_ON(!old_crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, !old_crtc_state->has_pch_encoder);
 
 	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, false);
 }
@@ -240,6 +241,7 @@  static void hsw_post_disable_crt(struct intel_encoder *encoder,
 				 const struct drm_connector_state *old_conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	intel_crtc_vblank_off(old_crtc_state);
 
@@ -258,7 +260,7 @@  static void hsw_post_disable_crt(struct intel_encoder *encoder,
 
 	intel_ddi_fdi_post_disable(encoder, old_crtc_state, old_conn_state);
 
-	WARN_ON(!old_crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, !old_crtc_state->has_pch_encoder);
 
 	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, true);
 }
@@ -268,8 +270,9 @@  static void hsw_pre_pll_enable_crt(struct intel_encoder *encoder,
 				   const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
-	WARN_ON(!crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
 
 	intel_set_pch_fifo_underrun_reporting(dev_priv, PIPE_A, false);
 }
@@ -279,10 +282,11 @@  static void hsw_pre_enable_crt(struct intel_encoder *encoder,
 			       const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	enum pipe pipe = crtc->pipe;
 
-	WARN_ON(!crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
 
 	intel_set_cpu_fifo_underrun_reporting(dev_priv, pipe, false);
 
@@ -296,10 +300,11 @@  static void hsw_enable_crt(struct intel_encoder *encoder,
 			   const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	enum pipe pipe = crtc->pipe;
 
-	WARN_ON(!crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, !crtc_state->has_pch_encoder);
 
 	intel_crt_set_dpms(encoder, crtc_state, DRM_MODE_DPMS_ON);
 
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 5832faf74fdf..8f635637d61e 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -903,6 +903,7 @@  icl_get_combo_buf_trans(struct drm_i915_private *dev_priv, int type, int rate,
 
 static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct ddi_vbt_port_info *port_info = &dev_priv->vbt.ddi_port_info[port];
 	int n_entries, level, default_entry;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
@@ -937,11 +938,11 @@  static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
 		intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
 		default_entry = 6;
 	} else {
-		WARN(1, "ddi translation table missing\n");
+		dev_WARN(dev, 1, "ddi translation table missing\n");
 		return 0;
 	}
 
-	if (WARN_ON_ONCE(n_entries == 0))
+	if (dev_WARN_ON_ONCE(dev, n_entries == 0))
 		return 0;
 
 	if (port_info->hdmi_level_shift_set)
@@ -949,7 +950,7 @@  static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum port por
 	else
 		level = default_entry;
 
-	if (WARN_ON_ONCE(level >= n_entries))
+	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
 		level = n_entries - 1;
 
 	return level;
@@ -1001,6 +1002,7 @@  static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder,
 					   int level)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 iboost_bit = 0;
 	int n_entries;
 	enum port port = encoder->port;
@@ -1008,9 +1010,9 @@  static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder,
 
 	ddi_translations = intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
 
-	if (WARN_ON_ONCE(!ddi_translations))
+	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
 		return;
-	if (WARN_ON_ONCE(level >= n_entries))
+	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
 		level = n_entries - 1;
 
 	/* If we're boosting the current, set bit 31 of trans1 */
@@ -1113,6 +1115,7 @@  void hsw_fdi_link_train(struct intel_encoder *encoder,
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 temp, i, rx_ctl_val, ddi_pll_sel;
 
 	intel_prepare_dp_ddi_buffers(encoder, crtc_state);
@@ -1143,7 +1146,7 @@  void hsw_fdi_link_train(struct intel_encoder *encoder,
 	/* Configure Port Clock Select */
 	ddi_pll_sel = hsw_pll_to_ddi_pll_sel(crtc_state->shared_dpll);
 	I915_WRITE(PORT_CLK_SEL(PORT_E), ddi_pll_sel);
-	WARN_ON(ddi_pll_sel != PORT_CLK_SEL_SPLL);
+	dev_WARN_ON(dev, ddi_pll_sel != PORT_CLK_SEL_SPLL);
 
 	/* Start the training iterating through available voltages and emphasis,
 	 * testing each value twice. */
@@ -1373,6 +1376,7 @@  static int skl_calc_wrpll_link(const struct intel_dpll_hw_state *pll_state)
 int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv,
 			struct intel_dpll_hw_state *pll_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 p0, p1, p2, dco_freq, ref_clock;
 
 	p0 = pll_state->cfgcr1 & DPLL_CFGCR1_PDIV_MASK;
@@ -1420,7 +1424,7 @@  int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv,
 	dco_freq += (((pll_state->cfgcr0 & DPLL_CFGCR0_DCO_FRACTION_MASK) >>
 		      DPLL_CFGCR0_DCO_FRACTION_SHIFT) * ref_clock) / 0x8000;
 
-	if (WARN_ON(p0 == 0 || p1 == 0 || p2 == 0))
+	if (dev_WARN_ON(dev, p0 == 0 || p1 == 0 || p2 == 0))
 		return 0;
 
 	return dco_freq / (p0 * p1 * p2 * 5);
@@ -1574,6 +1578,7 @@  static void cnl_ddi_clock_get(struct intel_encoder *encoder,
 			      struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dpll_hw_state *pll_state = &pipe_config->dpll_hw_state;
 	int link_clock;
 
@@ -1608,7 +1613,7 @@  static void cnl_ddi_clock_get(struct intel_encoder *encoder,
 			link_clock = 405000;
 			break;
 		default:
-			WARN(1, "Unsupported link rate\n");
+			dev_WARN(dev, 1, "Unsupported link rate\n");
 			break;
 		}
 		link_clock *= 2;
@@ -1670,6 +1675,7 @@  static void hsw_ddi_clock_get(struct intel_encoder *encoder,
 			      struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int link_clock = 0;
 	u32 val, pll;
 
@@ -1699,12 +1705,12 @@  static void hsw_ddi_clock_get(struct intel_encoder *encoder,
 		else if (pll == SPLL_FREQ_2700MHz)
 			link_clock = 270000;
 		else {
-			WARN(1, "bad spll freq\n");
+			dev_WARN(dev, 1, "bad spll freq\n");
 			return;
 		}
 		break;
 	default:
-		WARN(1, "bad port clock sel\n");
+		dev_WARN(dev, 1, "bad port clock sel\n");
 		return;
 	}
 
@@ -1759,13 +1765,14 @@  void intel_ddi_set_dp_msa(const struct intel_crtc_state *crtc_state,
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 	u32 temp;
 
 	if (!intel_crtc_has_dp_encoder(crtc_state))
 		return;
 
-	WARN_ON(transcoder_is_dsi(cpu_transcoder));
+	dev_WARN_ON(dev, transcoder_is_dsi(cpu_transcoder));
 
 	temp = DP_MSA_MISC_SYNC_CLOCK;
 
@@ -1788,8 +1795,8 @@  void intel_ddi_set_dp_msa(const struct intel_crtc_state *crtc_state,
 	}
 
 	/* nonsense combination */
-	WARN_ON(crtc_state->limited_color_range &&
-		crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
+	dev_WARN_ON(dev, crtc_state->limited_color_range &&
+		    crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
 
 	if (crtc_state->limited_color_range)
 		temp |= DP_MSA_MISC_COLOR_CEA_RGB;
@@ -1826,6 +1833,7 @@  intel_ddi_transcoder_func_reg_val_get(const struct intel_crtc_state *crtc_state)
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct intel_encoder *encoder = intel_ddi_get_crtc_encoder(crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 	enum port port = encoder->port;
@@ -1905,7 +1913,7 @@  intel_ddi_transcoder_func_reg_val_get(const struct intel_crtc_state *crtc_state)
 			enum transcoder master;
 
 			master = crtc_state->mst_master_transcoder;
-			WARN_ON(master == INVALID_TRANSCODER);
+			dev_WARN_ON(dev, master == INVALID_TRANSCODER);
 			temp |= TRANS_DDI_MST_TRANSPORT_SELECT(master);
 		}
 	} else {
@@ -2215,6 +2223,7 @@  static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
 					struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *dig_port;
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
@@ -2223,7 +2232,8 @@  static void intel_ddi_get_power_domains(struct intel_encoder *encoder,
 	 * happen since fake-MST encoders don't set their get_power_domains()
 	 * hook.
 	 */
-	if (WARN_ON(intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
+	if (dev_WARN_ON(dev,
+			intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST)))
 		return;
 
 	dig_port = enc_to_dig_port(&encoder->base);
@@ -2298,6 +2308,7 @@  static void skl_ddi_set_iboost(struct intel_encoder *encoder,
 {
 	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum port port = encoder->port;
 	u8 iboost;
 
@@ -2317,9 +2328,9 @@  static void skl_ddi_set_iboost(struct intel_encoder *encoder,
 		else
 			ddi_translations = intel_ddi_get_buf_trans_dp(dev_priv, port, &n_entries);
 
-		if (WARN_ON_ONCE(!ddi_translations))
+		if (dev_WARN_ON_ONCE(dev, !ddi_translations))
 			return;
-		if (WARN_ON_ONCE(level >= n_entries))
+		if (dev_WARN_ON_ONCE(dev, level >= n_entries))
 			level = n_entries - 1;
 
 		iboost = ddi_translations[level].i_boost;
@@ -2341,6 +2352,7 @@  static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
 				    int level, enum intel_output_type type)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct bxt_ddi_buf_trans *ddi_translations;
 	enum port port = encoder->port;
 	int n_entries;
@@ -2352,9 +2364,9 @@  static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
 	else
 		ddi_translations = bxt_get_buf_trans_dp(dev_priv, &n_entries);
 
-	if (WARN_ON_ONCE(!ddi_translations))
+	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
 		return;
-	if (WARN_ON_ONCE(level >= n_entries))
+	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
 		level = n_entries - 1;
 
 	bxt_ddi_phy_set_signal_level(dev_priv, port,
@@ -2367,6 +2379,7 @@  static void bxt_ddi_vswing_sequence(struct intel_encoder *encoder,
 u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	enum port port = encoder->port;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
@@ -2401,9 +2414,9 @@  u8 intel_ddi_dp_voltage_max(struct intel_encoder *encoder)
 			intel_ddi_get_buf_trans_dp(dev_priv, port, &n_entries);
 	}
 
-	if (WARN_ON(n_entries < 1))
+	if (dev_WARN_ON(dev, n_entries < 1))
 		n_entries = 1;
-	if (WARN_ON(n_entries > ARRAY_SIZE(index_to_dp_signal_levels)))
+	if (dev_WARN_ON(dev, n_entries > ARRAY_SIZE(index_to_dp_signal_levels)))
 		n_entries = ARRAY_SIZE(index_to_dp_signal_levels);
 
 	return index_to_dp_signal_levels[n_entries - 1] &
@@ -2434,6 +2447,7 @@  static void cnl_ddi_vswing_program(struct intel_encoder *encoder,
 				   int level, enum intel_output_type type)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct cnl_ddi_buf_trans *ddi_translations;
 	enum port port = encoder->port;
 	int n_entries, ln;
@@ -2446,9 +2460,9 @@  static void cnl_ddi_vswing_program(struct intel_encoder *encoder,
 	else
 		ddi_translations = cnl_get_buf_trans_dp(dev_priv, &n_entries);
 
-	if (WARN_ON_ONCE(!ddi_translations))
+	if (dev_WARN_ON_ONCE(dev, !ddi_translations))
 		return;
-	if (WARN_ON_ONCE(level >= n_entries))
+	if (dev_WARN_ON_ONCE(dev, level >= n_entries))
 		level = n_entries - 1;
 
 	/* Set PORT_TX_DW5 Scaling Mode Sel to 010b. */
@@ -2961,6 +2975,7 @@  static void icl_map_plls_to_ports(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 	enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 	u32 val;
@@ -2968,7 +2983,8 @@  static void icl_map_plls_to_ports(struct intel_encoder *encoder,
 	mutex_lock(&dev_priv->dpll_lock);
 
 	val = I915_READ(ICL_DPCLKA_CFGCR0);
-	WARN_ON((val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
+	dev_WARN_ON(dev,
+		    (val & icl_dpclka_cfgcr0_clk_off(dev_priv, phy)) == 0);
 
 	if (intel_phy_is_combo(dev_priv, phy)) {
 		/*
@@ -3011,6 +3027,7 @@  static void icl_unmap_plls_to_ports(struct intel_encoder *encoder)
 static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
 				      u32 port_mask, bool ddi_clk_needed)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum port port;
 	u32 val;
 
@@ -3027,7 +3044,7 @@  static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
 		 * Punt on the case now where clock is gated, but it would
 		 * be needed by the port. Something else is really broken then.
 		 */
-		if (WARN_ON(ddi_clk_needed))
+		if (dev_WARN_ON(dev, ddi_clk_needed))
 			continue;
 
 		DRM_NOTE("PHY %c is disabled/in DSI mode with an ungated DDI clock, gate it\n",
@@ -3040,6 +3057,7 @@  static void icl_sanitize_port_clk_off(struct drm_i915_private *dev_priv,
 void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 port_mask;
 	bool ddi_clk_needed;
 
@@ -3059,7 +3077,7 @@  void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
 		 * In the unlikely case that BIOS enables DP in MST mode, just
 		 * warn since our MST HW readout is incomplete.
 		 */
-		if (WARN_ON(is_mst))
+		if (dev_WARN_ON(dev, is_mst))
 			return;
 	}
 
@@ -3078,7 +3096,8 @@  void icl_sanitize_encoder_pll_mapping(struct intel_encoder *encoder)
 			if (other_encoder == encoder)
 				continue;
 
-			if (WARN_ON(port_mask & BIT(other_encoder->port)))
+			if (dev_WARN_ON(dev, port_mask &
+					BIT(other_encoder->port)))
 				return;
 		}
 		/*
@@ -3095,12 +3114,13 @@  static void intel_ddi_clk_select(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum port port = encoder->port;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 	u32 val;
 	const struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 
-	if (WARN_ON(!pll))
+	if (dev_WARN_ON(dev, !pll))
 		return;
 
 	mutex_lock(&dev_priv->dpll_lock);
@@ -3225,6 +3245,7 @@  icl_program_mg_dp_mode(struct intel_digital_port *intel_dig_port,
 		       const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum tc_port tc_port = intel_port_to_tc(dev_priv, intel_dig_port->base.port);
 	u32 ln0, ln1, pin_assignment;
 	u8 width;
@@ -3251,7 +3272,7 @@  icl_program_mg_dp_mode(struct intel_digital_port *intel_dig_port,
 
 	switch (pin_assignment) {
 	case 0x0:
-		WARN_ON(intel_dig_port->tc_mode != TC_PORT_LEGACY);
+		dev_WARN_ON(dev, intel_dig_port->tc_mode != TC_PORT_LEGACY);
 		if (width == 1) {
 			ln1 |= MG_DP_MODE_CFG_DP_X1_MODE;
 		} else {
@@ -3390,6 +3411,7 @@  static void tgl_dc3co_exitline_compute_config(struct intel_encoder *encoder,
 {
 	u32 exit_scanlines;
 	struct drm_i915_private *dev_priv = to_i915(cstate->uapi.crtc->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 crtc_vdisplay = cstate->hw.adjusted_mode.crtc_vdisplay;
 
 	cstate->dc3co_exitline = 0;
@@ -3412,7 +3434,7 @@  static void tgl_dc3co_exitline_compute_config(struct intel_encoder *encoder,
 	exit_scanlines =
 		intel_usecs_to_scanlines(&cstate->hw.adjusted_mode, 200) + 1;
 
-	if (WARN_ON(exit_scanlines > crtc_vdisplay))
+	if (dev_WARN_ON(dev, exit_scanlines > crtc_vdisplay))
 		return;
 
 	cstate->dc3co_exitline = crtc_vdisplay - exit_scanlines;
@@ -3595,13 +3617,14 @@  static void hsw_ddi_pre_enable_dp(struct intel_encoder *encoder,
 {
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum port port = encoder->port;
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 	struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
 	bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
 	int level = intel_ddi_dp_level(intel_dp);
 
-	WARN_ON(is_mst && (port == PORT_A || port == PORT_E));
+	dev_WARN_ON(dev, is_mst && (port == PORT_A || port == PORT_E));
 
 	intel_dp_set_link_params(intel_dp, crtc_state->port_clock,
 				 crtc_state->lane_count, is_mst);
@@ -3729,6 +3752,7 @@  static void intel_ddi_pre_enable(struct intel_encoder *encoder,
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 
 	/*
@@ -3744,7 +3768,7 @@  static void intel_ddi_pre_enable(struct intel_encoder *encoder,
 	 *   the DP link parameteres
 	 */
 
-	WARN_ON(crtc_state->has_pch_encoder);
+	dev_WARN_ON(dev, crtc_state->has_pch_encoder);
 
 	if (INTEL_GEN(dev_priv) >= 11)
 		icl_map_plls_to_ports(encoder, crtc_state);
@@ -4010,6 +4034,7 @@  static i915_reg_t
 gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
 			       enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	static const enum transcoder trans[] = {
 		[PORT_A] = TRANSCODER_EDP,
 		[PORT_B] = TRANSCODER_A,
@@ -4018,9 +4043,9 @@  gen9_chicken_trans_reg_by_port(struct drm_i915_private *dev_priv,
 		[PORT_E] = TRANSCODER_A,
 	};
 
-	WARN_ON(INTEL_GEN(dev_priv) < 9);
+	dev_WARN_ON(dev, INTEL_GEN(dev_priv) < 9);
 
-	if (WARN_ON(port < PORT_A || port > PORT_E))
+	if (dev_WARN_ON(dev, port < PORT_A || port > PORT_E))
 		port = PORT_A;
 
 	return CHICKEN_TRANS(trans[port]);
@@ -4334,12 +4359,13 @@  void intel_ddi_get_config(struct intel_encoder *encoder,
 			  struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
 	u32 temp, flags = 0;
 
 	/* XXX: DSI transcoder paranoia */
-	if (WARN_ON(transcoder_is_dsi(cpu_transcoder)))
+	if (dev_WARN_ON(dev, transcoder_is_dsi(cpu_transcoder)))
 		return;
 
 	intel_dsc_get_config(encoder, pipe_config);
@@ -4610,6 +4636,7 @@  static int intel_hdmi_reset_link(struct intel_encoder *encoder,
 				 struct drm_modeset_acquire_ctx *ctx)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_hdmi *hdmi = enc_to_intel_hdmi(&encoder->base);
 	struct intel_connector *connector = hdmi->attached_connector;
 	struct i2c_adapter *adapter =
@@ -4640,7 +4667,7 @@  static int intel_hdmi_reset_link(struct intel_encoder *encoder,
 
 	crtc_state = to_intel_crtc_state(crtc->base.state);
 
-	WARN_ON(!intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI));
+	dev_WARN_ON(dev, !intel_crtc_has_type(crtc_state, INTEL_OUTPUT_HDMI));
 
 	if (!crtc_state->hw.active)
 		return 0;
@@ -4810,6 +4837,7 @@  intel_ddi_max_lanes(struct intel_digital_port *intel_dport)
 
 void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct ddi_vbt_port_info *port_info =
 		&dev_priv->vbt.ddi_port_info[port];
 	struct intel_digital_port *intel_dig_port;
@@ -4888,7 +4916,7 @@  void intel_ddi_init(struct drm_i915_private *dev_priv, enum port port)
 		encoder->update_complete = intel_ddi_update_complete;
 	}
 
-	WARN_ON(port > PORT_I);
+	dev_WARN_ON(dev, port > PORT_I);
 	intel_dig_port->ddi_io_power_domain = POWER_DOMAIN_PORT_DDI_A_IO +
 					      port - PORT_A;
 
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 817f49425bfb..ab1fac1abf37 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -197,15 +197,16 @@  int vlv_get_hpll_vco(struct drm_i915_private *dev_priv)
 int vlv_get_cck_clock(struct drm_i915_private *dev_priv,
 		      const char *name, u32 reg, int ref_freq)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 	int divider;
 
 	val = vlv_cck_read(dev_priv, reg);
 	divider = val & CCK_FREQUENCY_VALUES;
 
-	WARN((val & CCK_FREQUENCY_STATUS) !=
-	     (divider << CCK_FREQUENCY_STATUS_SHIFT),
-	     "%s change in progress\n", name);
+	dev_WARN(dev, (val & CCK_FREQUENCY_STATUS) !=
+		 (divider << CCK_FREQUENCY_STATUS_SHIFT),
+		 "%s change in progress\n", name);
 
 	return DIV_ROUND_CLOSEST(ref_freq << 1, divider + 1);
 }
@@ -1089,6 +1090,7 @@  intel_wait_for_pipe_off(const struct intel_crtc_state *old_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (INTEL_GEN(dev_priv) >= 4) {
 		enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
@@ -1097,7 +1099,7 @@  intel_wait_for_pipe_off(const struct intel_crtc_state *old_crtc_state)
 		/* Wait for the Pipe State to go off */
 		if (intel_de_wait_for_clear(dev_priv, reg,
 					    I965_PIPECONF_ACTIVE, 100))
-			WARN(1, "pipe_off wait timed out\n");
+			dev_WARN(dev, 1, "pipe_off wait timed out\n");
 	} else {
 		intel_wait_for_pipe_scanline_stopped(crtc);
 	}
@@ -1206,12 +1208,13 @@  void assert_fdi_rx_pll(struct drm_i915_private *dev_priv,
 
 void assert_panel_unlocked(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	i915_reg_t pp_reg;
 	u32 val;
 	enum pipe panel_pipe = INVALID_PIPE;
 	bool locked = true;
 
-	if (WARN_ON(HAS_DDI(dev_priv)))
+	if (dev_WARN_ON(dev, HAS_DDI(dev_priv)))
 		return;
 
 	if (HAS_PCH_SPLIT(dev_priv)) {
@@ -1247,7 +1250,7 @@  void assert_panel_unlocked(struct drm_i915_private *dev_priv, enum pipe pipe)
 		pp_reg = PP_CONTROL(0);
 		port_sel = I915_READ(PP_ON_DELAYS(0)) & PANEL_PORT_SELECT_MASK;
 
-		WARN_ON(port_sel != PANEL_PORT_SELECT_LVDS);
+		dev_WARN_ON(dev, port_sel != PANEL_PORT_SELECT_LVDS);
 		intel_lvds_port_enabled(dev_priv, LVDS, &panel_pipe);
 	}
 
@@ -1460,6 +1463,7 @@  static void chv_enable_pll(struct intel_crtc *crtc,
 			   const struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 
 	assert_pipe_disabled(dev_priv, pipe_config->cpu_transcoder);
@@ -1486,7 +1490,8 @@  static void chv_enable_pll(struct intel_crtc *crtc,
 		 * DPLLB VGA mode also seems to cause problems.
 		 * We should always have it disabled.
 		 */
-		WARN_ON((I915_READ(DPLL(PIPE_B)) & DPLL_VGA_MODE_DIS) == 0);
+		dev_WARN_ON(dev,
+			    (I915_READ(DPLL(PIPE_B)) & DPLL_VGA_MODE_DIS) == 0);
 	} else {
 		I915_WRITE(DPLL_MD(pipe), pipe_config->dpll_hw_state.dpll_md);
 		POSTING_READ(DPLL_MD(pipe));
@@ -1610,6 +1615,7 @@  void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
 			 struct intel_digital_port *dport,
 			 unsigned int expected_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 port_mask;
 	i915_reg_t dpll_reg;
 
@@ -1633,9 +1639,10 @@  void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
 
 	if (intel_de_wait_for_register(dev_priv, dpll_reg,
 				       port_mask, expected_mask, 1000))
-		WARN(1, "timed out waiting for [ENCODER:%d:%s] port ready: got 0x%x, expected 0x%x\n",
-		     dport->base.base.base.id, dport->base.base.name,
-		     I915_READ(dpll_reg) & port_mask, expected_mask);
+		dev_WARN(dev, 1,
+			 "timed out waiting for [ENCODER:%d:%s] port ready: got 0x%x, expected 0x%x\n",
+			 dport->base.base.base.id, dport->base.base.name,
+			 I915_READ(dpll_reg) & port_mask, expected_mask);
 }
 
 static void ilk_enable_pch_transcoder(const struct intel_crtc_state *crtc_state)
@@ -1836,6 +1843,7 @@  static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum transcoder cpu_transcoder = new_crtc_state->cpu_transcoder;
 	enum pipe pipe = crtc->pipe;
 	i915_reg_t reg;
@@ -1872,7 +1880,7 @@  static void intel_enable_pipe(const struct intel_crtc_state *new_crtc_state)
 	val = I915_READ(reg);
 	if (val & PIPECONF_ENABLE) {
 		/* we keep both pipes enabled on 830 */
-		WARN_ON(!IS_I830(dev_priv));
+		dev_WARN_ON(dev, !IS_I830(dev_priv));
 		return;
 	}
 
@@ -2361,9 +2369,10 @@  static u32 intel_adjust_aligned_offset(int *x, int *y,
 				       u32 old_offset, u32 new_offset)
 {
 	struct drm_i915_private *dev_priv = to_i915(fb->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	unsigned int cpp = fb->format->cpp[color_plane];
 
-	WARN_ON(new_offset > old_offset);
+	dev_WARN_ON(dev, new_offset > old_offset);
 
 	if (!is_surface_linear(fb, color_plane)) {
 		unsigned int tile_size, tile_width, tile_height;
@@ -3058,6 +3067,7 @@  intel_plane_remap_gtt(struct intel_plane_state *plane_state)
 {
 	struct drm_i915_private *dev_priv =
 		to_i915(plane_state->uapi.plane->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct drm_framebuffer *fb = plane_state->hw.fb;
 	struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
 	struct intel_rotation_info *info = &plane_state->view.rotated;
@@ -3077,7 +3087,7 @@  intel_plane_remap_gtt(struct intel_plane_state *plane_state)
 	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
 	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
 
-	WARN_ON(is_ccs_modifier(fb->modifier));
+	dev_WARN_ON(dev, is_ccs_modifier(fb->modifier));
 
 	/* Make src coordinates relative to the viewport */
 	drm_rect_translate(&plane_state->uapi.src,
@@ -3118,7 +3128,7 @@  intel_plane_remap_gtt(struct intel_plane_state *plane_state)
 						      DRM_MODE_ROTATE_0, tile_size);
 		offset /= tile_size;
 
-		WARN_ON(i >= ARRAY_SIZE(info->plane));
+		dev_WARN_ON(dev, i >= ARRAY_SIZE(info->plane));
 		info->plane[i].offset = offset;
 		info->plane[i].stride = DIV_ROUND_UP(fb->pitches[i],
 						     tile_width * cpp);
@@ -5386,6 +5396,7 @@  static void lpt_program_iclkip(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int clock = crtc_state->hw.adjusted_mode.crtc_clock;
 	u32 divsel, phaseinc, auxdiv, phasedir = 0;
 	u32 temp;
@@ -5417,10 +5428,10 @@  static void lpt_program_iclkip(const struct intel_crtc_state *crtc_state)
 	}
 
 	/* This should not happen with any sane values */
-	WARN_ON(SBI_SSCDIVINTPHASE_DIVSEL(divsel) &
-		~SBI_SSCDIVINTPHASE_DIVSEL_MASK);
-	WARN_ON(SBI_SSCDIVINTPHASE_DIR(phasedir) &
-		~SBI_SSCDIVINTPHASE_INCVAL_MASK);
+	dev_WARN_ON(dev, SBI_SSCDIVINTPHASE_DIVSEL(divsel) &
+		    ~SBI_SSCDIVINTPHASE_DIVSEL_MASK);
+	dev_WARN_ON(dev, SBI_SSCDIVINTPHASE_DIR(phasedir) &
+		    ~SBI_SSCDIVINTPHASE_INCVAL_MASK);
 
 	DRM_DEBUG_KMS("iCLKIP clock: found settings for %dKHz refresh rate: auxdiv=%x, divsel=%x, phasedir=%x, phaseinc=%x\n",
 			clock,
@@ -5523,14 +5534,15 @@  static void ilk_pch_transcoder_set_timings(const struct intel_crtc_state *crtc_s
 
 static void cpt_set_fdi_bc_bifurcation(struct drm_i915_private *dev_priv, bool enable)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 temp;
 
 	temp = I915_READ(SOUTH_CHICKEN1);
 	if (!!(temp & FDI_BC_BIFURCATION_SELECT) == enable)
 		return;
 
-	WARN_ON(I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE);
-	WARN_ON(I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE);
+	dev_WARN_ON(dev, I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE);
+	dev_WARN_ON(dev, I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE);
 
 	temp &= ~FDI_BC_BIFURCATION_SELECT;
 	if (enable)
@@ -6015,6 +6027,7 @@  static void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 	const struct intel_crtc_scaler_state *scaler_state =
 		&crtc_state->scaler_state;
@@ -6024,7 +6037,7 @@  static void skl_pfit_enable(const struct intel_crtc_state *crtc_state)
 		int pfit_w, pfit_h, hscale, vscale;
 		int id;
 
-		if (WARN_ON(crtc_state->scaler_state.scaler_id < 0))
+		if (dev_WARN_ON(dev, crtc_state->scaler_state.scaler_id < 0))
 			return;
 
 		pfit_w = (crtc_state->pch_pfit.size >> 16) & 0xFFFF;
@@ -6639,9 +6652,10 @@  static void ilk_crtc_enable(struct intel_atomic_state *state,
 	const struct intel_crtc_state *new_crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 
-	if (WARN_ON(crtc->active))
+	if (dev_WARN_ON(dev, crtc->active))
 		return;
 
 	/*
@@ -6783,11 +6797,12 @@  static void hsw_crtc_enable(struct intel_atomic_state *state,
 	const struct intel_crtc_state *new_crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe, hsw_workaround_pipe;
 	enum transcoder cpu_transcoder = new_crtc_state->cpu_transcoder;
 	bool psl_clkgate_wa;
 
-	if (WARN_ON(crtc->active))
+	if (dev_WARN_ON(dev, crtc->active))
 		return;
 
 	intel_encoders_pre_pll_enable(state, crtc);
@@ -6972,6 +6987,7 @@  static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (!crtc_state->gmch_pfit.control)
 		return;
@@ -6980,7 +6996,7 @@  static void i9xx_pfit_enable(const struct intel_crtc_state *crtc_state)
 	 * The panel fitter should only be adjusted whilst the pipe is disabled,
 	 * according to register description and PRM.
 	 */
-	WARN_ON(I915_READ(PFIT_CONTROL) & PFIT_ENABLE);
+	dev_WARN_ON(dev, I915_READ(PFIT_CONTROL) & PFIT_ENABLE);
 	assert_pipe_disabled(dev_priv, crtc_state->cpu_transcoder);
 
 	I915_WRITE(PFIT_PGM_RATIOS, crtc_state->gmch_pfit.pgm_ratios);
@@ -7173,9 +7189,10 @@  static void valleyview_crtc_enable(struct intel_atomic_state *state,
 	const struct intel_crtc_state *new_crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 
-	if (WARN_ON(crtc->active))
+	if (dev_WARN_ON(dev, crtc->active))
 		return;
 
 	if (intel_crtc_has_dp_encoder(new_crtc_state))
@@ -7237,9 +7254,10 @@  static void i9xx_crtc_enable(struct intel_atomic_state *state,
 	const struct intel_crtc_state *new_crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 
-	if (WARN_ON(crtc->active))
+	if (dev_WARN_ON(dev, crtc->active))
 		return;
 
 	i9xx_set_pll_dividers(new_crtc_state);
@@ -7346,6 +7364,7 @@  static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
 {
 	struct intel_encoder *encoder;
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_bw_state *bw_state =
 		to_intel_bw_state(dev_priv->bw_obj.state);
 	struct intel_crtc_state *crtc_state =
@@ -7382,7 +7401,7 @@  static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
 	temp_crtc_state = intel_atomic_get_crtc_state(state, crtc);
 	ret = drm_atomic_add_affected_connectors(state, &crtc->base);
 
-	WARN_ON(IS_ERR(temp_crtc_state) || ret);
+	dev_WARN_ON(dev, IS_ERR(temp_crtc_state) || ret);
 
 	dev_priv->display.crtc_disable(to_intel_atomic_state(state), crtc);
 
@@ -7394,7 +7413,8 @@  static void intel_crtc_disable_noatomic(struct intel_crtc *crtc,
 	crtc->active = false;
 	crtc->base.enabled = false;
 
-	WARN_ON(drm_atomic_set_mode_for_crtc(&crtc_state->uapi, NULL) < 0);
+	dev_WARN_ON(dev,
+		    drm_atomic_set_mode_for_crtc(&crtc_state->uapi, NULL) < 0);
 	crtc_state->uapi.active = false;
 	crtc_state->uapi.connector_mask = 0;
 	crtc_state->uapi.encoder_mask = 0;
@@ -9061,13 +9081,14 @@  static enum intel_output_format
 bdw_get_pipemisc_output_format(struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 tmp;
 
 	tmp = I915_READ(PIPEMISC(crtc->pipe));
 
 	if (tmp & PIPEMISC_YUV420_ENABLE) {
 		/* We support 4:2:0 in full blend mode only */
-		WARN_ON((tmp & PIPEMISC_YUV420_MODE_FULL_BLEND) == 0);
+		dev_WARN_ON(dev, (tmp & PIPEMISC_YUV420_MODE_FULL_BLEND) == 0);
 
 		return INTEL_OUTPUT_FORMAT_YCBCR420;
 	} else if (tmp & PIPEMISC_OUTPUT_COLORSPACE_YUV) {
@@ -9486,12 +9507,14 @@  static void lpt_program_fdi_mphy(struct drm_i915_private *dev_priv)
 static void lpt_enable_clkout_dp(struct drm_i915_private *dev_priv,
 				 bool with_spread, bool with_fdi)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 reg, tmp;
 
-	if (WARN(with_fdi && !with_spread, "FDI requires downspread\n"))
+	if (dev_WARN(dev, with_fdi && !with_spread,
+		     "FDI requires downspread\n"))
 		with_spread = true;
-	if (WARN(HAS_PCH_LPT_LP(dev_priv) &&
-	    with_fdi, "LP PCH doesn't have FDI\n"))
+	if (dev_WARN(dev, HAS_PCH_LPT_LP(dev_priv) &&
+		     with_fdi, "LP PCH doesn't have FDI\n"))
 		with_fdi = false;
 
 	mutex_lock(&dev_priv->sb_lock);
@@ -9582,13 +9605,14 @@  static const u16 sscdivintphase[] = {
  */
 static void lpt_bend_clkout_dp(struct drm_i915_private *dev_priv, int steps)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 tmp;
 	int idx = BEND_IDX(steps);
 
-	if (WARN_ON(steps % 5 != 0))
+	if (dev_WARN_ON(dev, steps % 5 != 0))
 		return;
 
-	if (WARN_ON(idx >= ARRAY_SIZE(sscdivintphase)))
+	if (dev_WARN_ON(dev, idx >= ARRAY_SIZE(sscdivintphase)))
 		return;
 
 	mutex_lock(&dev_priv->sb_lock);
@@ -9721,6 +9745,7 @@  static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = crtc->pipe;
 	u32 val;
 
@@ -9756,8 +9781,8 @@  static void ilk_set_pipeconf(const struct intel_crtc_state *crtc_state)
 	 * This would end up with an odd purple hue over
 	 * the entire display. Make sure we don't do it.
 	 */
-	WARN_ON(crtc_state->limited_color_range &&
-		crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
+	dev_WARN_ON(dev, crtc_state->limited_color_range &&
+		    crtc_state->output_format != INTEL_OUTPUT_FORMAT_RGB);
 
 	if (crtc_state->limited_color_range)
 		val |= PIPECONF_COLOR_RANGE_SELECT;
@@ -10434,13 +10459,14 @@  static int hsw_crtc_compute_clock(struct intel_crtc *crtc,
 static void cnl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
 			    struct intel_crtc_state *pipe_config)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum intel_dpll_id id;
 	u32 temp;
 
 	temp = I915_READ(DPCLKA_CFGCR0) & DPCLKA_CFGCR0_DDI_CLK_SEL_MASK(port);
 	id = temp >> DPCLKA_CFGCR0_DDI_CLK_SEL_SHIFT(port);
 
-	if (WARN_ON(id < SKL_DPLL0 || id > SKL_DPLL2))
+	if (dev_WARN_ON(dev, id < SKL_DPLL0 || id > SKL_DPLL2))
 		return;
 
 	pipe_config->shared_dpll = intel_get_shared_dpll_by_id(dev_priv, id);
@@ -10449,6 +10475,7 @@  static void cnl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
 static void icl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
 			    struct intel_crtc_state *pipe_config)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 	enum icl_port_dpll_id port_dpll_id;
 	enum intel_dpll_id id;
@@ -10467,12 +10494,12 @@  static void icl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
 								    port));
 			port_dpll_id = ICL_PORT_DPLL_MG_PHY;
 		} else {
-			WARN_ON(clk_sel < DDI_CLK_SEL_TBT_162);
+			dev_WARN_ON(dev, clk_sel < DDI_CLK_SEL_TBT_162);
 			id = DPLL_ID_ICL_TBTPLL;
 			port_dpll_id = ICL_PORT_DPLL_DEFAULT;
 		}
 	} else {
-		WARN(1, "Invalid port %x\n", port);
+		dev_WARN(dev, 1, "Invalid port %x\n", port);
 		return;
 	}
 
@@ -10509,13 +10536,14 @@  static void bxt_get_ddi_pll(struct drm_i915_private *dev_priv,
 static void skl_get_ddi_pll(struct drm_i915_private *dev_priv, enum port port,
 			    struct intel_crtc_state *pipe_config)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum intel_dpll_id id;
 	u32 temp;
 
 	temp = I915_READ(DPLL_CTRL2) & DPLL_CTRL2_DDI_CLK_SEL_MASK(port);
 	id = temp >> (port * 3 + 1);
 
-	if (WARN_ON(id < SKL_DPLL0 || id > SKL_DPLL3))
+	if (dev_WARN_ON(dev, id < SKL_DPLL0 || id > SKL_DPLL3))
 		return;
 
 	pipe_config->shared_dpll = intel_get_shared_dpll_by_id(dev_priv, id);
@@ -10717,6 +10745,7 @@  static void hsw_get_ddi_port_state(struct intel_crtc *crtc,
 				   struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum transcoder cpu_transcoder = pipe_config->cpu_transcoder;
 	struct intel_shared_dpll *pll;
 	enum port port;
@@ -10746,8 +10775,8 @@  static void hsw_get_ddi_port_state(struct intel_crtc *crtc,
 
 	pll = pipe_config->shared_dpll;
 	if (pll) {
-		WARN_ON(!pll->info->funcs->get_hw_state(dev_priv, pll,
-						&pipe_config->dpll_hw_state));
+		dev_WARN_ON(dev, !pll->info->funcs->get_hw_state(dev_priv, pll,
+								 &pipe_config->dpll_hw_state));
 	}
 
 	/*
@@ -10788,6 +10817,7 @@  static enum transcoder transcoder_master_readout(struct drm_i915_private *dev_pr
 static void icl_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 transcoders;
 	enum transcoder cpu_transcoder;
 
@@ -10816,14 +10846,16 @@  static void icl_get_trans_port_sync_config(struct intel_crtc_state *crtc_state)
 		intel_display_power_put(dev_priv, power_domain, trans_wakeref);
 	}
 
-	WARN_ON(crtc_state->master_transcoder != INVALID_TRANSCODER &&
-		crtc_state->sync_mode_slaves_mask);
+	dev_WARN_ON(dev,
+		    crtc_state->master_transcoder != INVALID_TRANSCODER &&
+		    crtc_state->sync_mode_slaves_mask);
 }
 
 static bool hsw_get_pipe_config(struct intel_crtc *crtc,
 				struct intel_crtc_state *pipe_config)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	intel_wakeref_t wakerefs[POWER_DOMAIN_NUM], wf;
 	enum intel_display_power_domain power_domain;
 	u64 power_domain_mask;
@@ -10847,7 +10879,7 @@  static bool hsw_get_pipe_config(struct intel_crtc *crtc,
 	if (IS_GEN9_LP(dev_priv) &&
 	    bxt_get_dsi_transcoder_state(crtc, pipe_config,
 					 &power_domain_mask, wakerefs)) {
-		WARN_ON(active);
+		dev_WARN_ON(dev, active);
 		active = true;
 	}
 
@@ -10905,7 +10937,7 @@  static bool hsw_get_pipe_config(struct intel_crtc *crtc,
 	intel_color_get_config(pipe_config);
 
 	power_domain = POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe);
-	WARN_ON(power_domain_mask & BIT_ULL(power_domain));
+	dev_WARN_ON(dev, power_domain_mask & BIT_ULL(power_domain));
 
 	wf = intel_display_power_get_if_enabled(dev_priv, power_domain);
 	if (wf) {
@@ -11342,6 +11374,7 @@  static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
 {
 	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
 	struct drm_i915_private *dev_priv = to_i915(plane->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
 	enum pipe pipe = plane->pipe;
 	int ret;
@@ -11362,8 +11395,8 @@  static int i9xx_check_cursor(struct intel_crtc_state *crtc_state,
 		return -EINVAL;
 	}
 
-	WARN_ON(plane_state->uapi.visible &&
-		plane_state->color_plane[0].stride != fb->pitches[0]);
+	dev_WARN_ON(dev, plane_state->uapi.visible &&
+		    plane_state->color_plane[0].stride != fb->pitches[0]);
 
 	if (fb->pitches[0] !=
 	    drm_rect_width(&plane_state->uapi.dst) * fb->format->cpp[0]) {
@@ -12001,6 +12034,7 @@  int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	bool mode_changed = needs_modeset(crtc_state);
 	bool was_crtc_enabled = old_crtc_state->hw.active;
 	bool is_crtc_enabled = crtc_state->hw.active;
@@ -12016,7 +12050,7 @@  int intel_plane_atomic_calc_changes(const struct intel_crtc_state *old_crtc_stat
 	was_visible = old_plane_state->uapi.visible;
 	visible = plane_state->uapi.visible;
 
-	if (!was_crtc_enabled && WARN_ON(was_visible))
+	if (!was_crtc_enabled && dev_WARN_ON(dev, was_visible))
 		was_visible = false;
 
 	/*
@@ -12360,6 +12394,7 @@  static int intel_crtc_atomic_check(struct intel_atomic_state *state,
 				   struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc_state *crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
 	bool mode_changed = needs_modeset(crtc_state);
@@ -12371,7 +12406,7 @@  static int intel_crtc_atomic_check(struct intel_atomic_state *state,
 
 	if (mode_changed && crtc_state->hw.enable &&
 	    dev_priv->display.crtc_compute_clock &&
-	    !WARN_ON(crtc_state->shared_dpll)) {
+	    !dev_WARN_ON(dev, crtc_state->shared_dpll)) {
 		ret = dev_priv->display.crtc_compute_clock(crtc, crtc_state);
 		if (ret)
 			return ret;
@@ -12401,7 +12436,7 @@  static int intel_crtc_atomic_check(struct intel_atomic_state *state,
 	}
 
 	if (dev_priv->display.compute_intermediate_wm) {
-		if (WARN_ON(!dev_priv->display.compute_pipe_wm))
+		if (dev_WARN_ON(dev, !dev_priv->display.compute_pipe_wm))
 			return 0;
 
 		/*
@@ -13549,6 +13584,7 @@  intel_pipe_config_compare(const struct intel_crtc_state *current_config,
 static void intel_pipe_config_sanity_check(struct drm_i915_private *dev_priv,
 					   const struct intel_crtc_state *pipe_config)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (pipe_config->has_pch_encoder) {
 		int fdi_dotclock = intel_dotclock_calculate(intel_fdi_link_freq(dev_priv, pipe_config),
 							    &pipe_config->fdi_m_n);
@@ -13558,9 +13594,10 @@  static void intel_pipe_config_sanity_check(struct drm_i915_private *dev_priv,
 		 * FDI already provided one idea for the dotclock.
 		 * Yell if the encoder disagrees.
 		 */
-		WARN(!intel_fuzzy_clock_check(fdi_dotclock, dotclock),
-		     "FDI dotclock and encoder dotclock mismatch, fdi: %i, encoder: %i\n",
-		     fdi_dotclock, dotclock);
+		dev_WARN(dev,
+			 !intel_fuzzy_clock_check(fdi_dotclock, dotclock),
+			 "FDI dotclock and encoder dotclock mismatch, fdi: %i, encoder: %i\n",
+			 fdi_dotclock, dotclock);
 	}
 }
 
@@ -14622,9 +14659,11 @@  static void intel_update_crtc(struct intel_crtc *crtc,
 static struct intel_crtc *intel_get_slave_crtc(const struct intel_crtc_state *new_crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(new_crtc_state->uapi.crtc->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum transcoder slave_transcoder;
 
-	WARN_ON(!is_power_of_2(new_crtc_state->sync_mode_slaves_mask));
+	dev_WARN_ON(dev,
+		    !is_power_of_2(new_crtc_state->sync_mode_slaves_mask));
 
 	slave_transcoder = ffs(new_crtc_state->sync_mode_slaves_mask) - 1;
 	return intel_get_crtc_for_pipe(dev_priv,
@@ -14832,6 +14871,7 @@  static void intel_update_trans_port_sync_crtcs(struct intel_crtc *crtc,
 static void skl_commit_modeset_enables(struct intel_atomic_state *state)
 {
 	struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc;
 	struct intel_crtc_state *old_crtc_state, *new_crtc_state;
 	u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
@@ -14913,8 +14953,8 @@  static void skl_commit_modeset_enables(struct intel_atomic_state *state)
 		    is_trans_port_sync_slave(new_crtc_state))
 			continue;
 
-		WARN_ON(skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
-						    entries, num_pipes, i));
+		dev_WARN_ON(dev, skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
+							     entries, num_pipes, i));
 
 		entries[i] = new_crtc_state->wm.skl.ddb;
 		modeset_pipes &= ~BIT(pipe);
@@ -14948,8 +14988,8 @@  static void skl_commit_modeset_enables(struct intel_atomic_state *state)
 		if ((modeset_pipes & BIT(pipe)) == 0)
 			continue;
 
-		WARN_ON(skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
-						    entries, num_pipes, i));
+		dev_WARN_ON(dev, skl_ddb_allocation_overlaps(&new_crtc_state->wm.skl.ddb,
+							     entries, num_pipes, i));
 
 		entries[i] = new_crtc_state->wm.skl.ddb;
 		modeset_pipes &= ~BIT(pipe);
@@ -14957,7 +14997,7 @@  static void skl_commit_modeset_enables(struct intel_atomic_state *state)
 		intel_update_crtc(crtc, state, old_crtc_state, new_crtc_state);
 	}
 
-	WARN_ON(modeset_pipes);
+	dev_WARN_ON(dev, modeset_pipes);
 
 	/* If 2nd DBuf slice is no more required disable it */
 	if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
@@ -16127,6 +16167,7 @@  static void intel_crtc_free(struct intel_crtc *crtc)
 
 static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_plane *primary, *cursor;
 	const struct drm_crtc_funcs *funcs;
 	struct intel_crtc *crtc;
@@ -16203,7 +16244,7 @@  static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe)
 
 	intel_color_init(crtc);
 
-	WARN_ON(drm_crtc_index(&crtc->base) != crtc->pipe);
+	dev_WARN_ON(dev, drm_crtc_index(&crtc->base) != crtc->pipe);
 
 	return 0;
 
@@ -17326,6 +17367,7 @@  int intel_modeset_init(struct drm_i915_private *i915)
 
 void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
 	/* 640x480@60Hz, ~25175 kHz */
 	struct dpll clock = {
@@ -17338,7 +17380,7 @@  void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 	u32 dpll, fp;
 	int i;
 
-	WARN_ON(i9xx_calc_dpll_params(48000, &clock) != 25154);
+	dev_WARN_ON(dev, i9xx_calc_dpll_params(48000, &clock) != 25154);
 
 	DRM_DEBUG_KMS("enabling pipe %c due to force quirk (vco=%d dot=%d)\n",
 		      pipe_name(pipe), clock.vco, clock.dot);
@@ -17396,16 +17438,17 @@  void i830_enable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 
 void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = intel_get_crtc_for_pipe(dev_priv, pipe);
 
 	DRM_DEBUG_KMS("disabling pipe %c due to force quirk\n",
 		      pipe_name(pipe));
 
-	WARN_ON(I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE);
-	WARN_ON(I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE);
-	WARN_ON(I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE);
-	WARN_ON(I915_READ(CURCNTR(PIPE_A)) & MCURSOR_MODE);
-	WARN_ON(I915_READ(CURCNTR(PIPE_B)) & MCURSOR_MODE);
+	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_A)) & DISPLAY_PLANE_ENABLE);
+	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_B)) & DISPLAY_PLANE_ENABLE);
+	dev_WARN_ON(dev, I915_READ(DSPCNTR(PLANE_C)) & DISPLAY_PLANE_ENABLE);
+	dev_WARN_ON(dev, I915_READ(CURCNTR(PIPE_A)) & MCURSOR_MODE);
+	dev_WARN_ON(dev, I915_READ(CURCNTR(PIPE_B)) & MCURSOR_MODE);
 
 	I915_WRITE(PIPECONF(pipe), 0);
 	POSTING_READ(PIPECONF(pipe));
@@ -18169,11 +18212,12 @@  static void intel_hpd_poll_fini(struct drm_i915_private *i915)
 
 void intel_modeset_driver_remove(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	flush_workqueue(i915->flip_wq);
 	flush_workqueue(i915->modeset_wq);
 
 	flush_work(&i915->atomic_helper.free_work);
-	WARN_ON(!llist_empty(&i915->atomic_helper.free_list));
+	dev_WARN_ON(dev, !llist_empty(&i915->atomic_helper.free_list));
 
 	/*
 	 * Interrupts and polling as the first thing to avoid creating havoc.
diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c b/drivers/gpu/drm/i915/display/intel_display_power.c
index 679457156797..ea1609fe8557 100644
--- a/drivers/gpu/drm/i915/display/intel_display_power.c
+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
@@ -182,8 +182,11 @@  static void intel_power_well_get(struct drm_i915_private *dev_priv,
 static void intel_power_well_put(struct drm_i915_private *dev_priv,
 				 struct i915_power_well *power_well)
 {
-	WARN(!power_well->count, "Use count on power well %s is already zero",
-	     power_well->desc->name);
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN(dev, !power_well->count,
+		 "Use count on power well %s is already zero",
+		 power_well->desc->name);
 
 	if (!--power_well->count)
 		intel_power_well_disable(dev_priv, power_well);
@@ -283,6 +286,7 @@  static void hsw_power_well_pre_disable(struct drm_i915_private *dev_priv,
 static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
 					   struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
 	int pw_idx = power_well->desc->hsw.idx;
 
@@ -293,7 +297,7 @@  static void hsw_wait_for_power_well_enable(struct drm_i915_private *dev_priv,
 			      power_well->desc->name);
 
 		/* An AUX timeout is expected if the TBT DP tunnel is down. */
-		WARN_ON(!power_well->desc->hsw.is_tc_tbt);
+		dev_WARN_ON(dev, !power_well->desc->hsw.is_tc_tbt);
 	}
 }
 
@@ -344,9 +348,10 @@  static void hsw_wait_for_power_well_disable(struct drm_i915_private *dev_priv,
 static void gen9_wait_for_power_well_fuses(struct drm_i915_private *dev_priv,
 					   enum skl_power_gate pg)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	/* Timeout 5us for PG#0, for other PGs 1us */
-	WARN_ON(intel_de_wait_for_set(dev_priv, SKL_FUSE_STATUS,
-				      SKL_FUSE_PG_DIST_STATUS(pg), 1));
+	dev_WARN_ON(dev, intel_de_wait_for_set(dev_priv, SKL_FUSE_STATUS,
+					       SKL_FUSE_PG_DIST_STATUS(pg), 1));
 }
 
 static void hsw_power_well_enable(struct drm_i915_private *dev_priv,
@@ -414,12 +419,13 @@  static void
 icl_combo_phy_aux_power_well_enable(struct drm_i915_private *dev_priv,
 				    struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
 	int pw_idx = power_well->desc->hsw.idx;
 	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);
 	u32 val;
 
-	WARN_ON(!IS_ICELAKE(dev_priv));
+	dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
 
 	val = I915_READ(regs->driver);
 	I915_WRITE(regs->driver, val | HSW_PWR_WELL_CTL_REQ(pw_idx));
@@ -444,12 +450,13 @@  static void
 icl_combo_phy_aux_power_well_disable(struct drm_i915_private *dev_priv,
 				     struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct i915_power_well_regs *regs = power_well->desc->hsw.regs;
 	int pw_idx = power_well->desc->hsw.idx;
 	enum phy phy = ICL_AUX_PW_TO_PHY(pw_idx);
 	u32 val;
 
-	WARN_ON(!IS_ICELAKE(dev_priv));
+	dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
 
 	val = I915_READ(ICL_PORT_CL_DW12(phy));
 	I915_WRITE(ICL_PORT_CL_DW12(phy), val & ~ICL_LANE_ENABLE_AUX);
@@ -482,10 +489,11 @@  static u64 async_put_domains_mask(struct i915_power_domains *power_domains);
 static int power_well_async_ref_count(struct drm_i915_private *dev_priv,
 				      struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int refs = hweight64(power_well->desc->domains &
 			     async_put_domains_mask(&dev_priv->power_domains));
 
-	WARN_ON(refs > power_well->count);
+	dev_WARN_ON(dev, refs > power_well->count);
 
 	return refs;
 }
@@ -493,6 +501,7 @@  static int power_well_async_ref_count(struct drm_i915_private *dev_priv,
 static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
 					struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum aux_ch aux_ch = icl_tc_phy_aux_ch(dev_priv, power_well);
 	struct intel_digital_port *dig_port = NULL;
 	struct intel_encoder *encoder;
@@ -515,7 +524,7 @@  static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
 			continue;
 
 		dig_port = enc_to_dig_port(&encoder->base);
-		if (WARN_ON(!dig_port))
+		if (dev_WARN_ON(dev, !dig_port))
 			continue;
 
 		if (dig_port->aux_ch != aux_ch) {
@@ -526,10 +535,10 @@  static void icl_tc_port_assert_ref_held(struct drm_i915_private *dev_priv,
 		break;
 	}
 
-	if (WARN_ON(!dig_port))
+	if (dev_WARN_ON(dev, !dig_port))
 		return;
 
-	WARN_ON(!intel_tc_port_ref_held(dig_port));
+	dev_WARN_ON(dev, !intel_tc_port_ref_held(dig_port));
 }
 
 #else
@@ -613,15 +622,17 @@  static bool hsw_power_well_enabled(struct drm_i915_private *dev_priv,
 
 static void assert_can_enable_dc9(struct drm_i915_private *dev_priv)
 {
-	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_DC9),
-		  "DC9 already programmed to be enabled.\n");
-	WARN_ONCE(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
-		  "DC5 still not disabled to enable DC9.\n");
-	WARN_ONCE(I915_READ(HSW_PWR_WELL_CTL2) &
-		  HSW_PWR_WELL_CTL_REQ(SKL_PW_CTL_IDX_PW_2),
-		  "Power well 2 on.\n");
-	WARN_ONCE(intel_irqs_enabled(dev_priv),
-		  "Interrupts not disabled yet.\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_DC9),
+		      "DC9 already programmed to be enabled.\n");
+	dev_WARN_ONCE(dev, I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
+		      "DC5 still not disabled to enable DC9.\n");
+	dev_WARN_ONCE(dev, I915_READ(HSW_PWR_WELL_CTL2) &
+		      HSW_PWR_WELL_CTL_REQ(SKL_PW_CTL_IDX_PW_2),
+		      "Power well 2 on.\n");
+	dev_WARN_ONCE(dev, intel_irqs_enabled(dev_priv),
+		      "Interrupts not disabled yet.\n");
 
 	 /*
 	  * TODO: check for the following to verify the conditions to enter DC9
@@ -634,10 +645,12 @@  static void assert_can_enable_dc9(struct drm_i915_private *dev_priv)
 
 static void assert_can_disable_dc9(struct drm_i915_private *dev_priv)
 {
-	WARN_ONCE(intel_irqs_enabled(dev_priv),
-		  "Interrupts not disabled yet.\n");
-	WARN_ONCE(I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
-		  "DC5 still not disabled.\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN_ONCE(dev, intel_irqs_enabled(dev_priv),
+		      "Interrupts not disabled yet.\n");
+	dev_WARN_ONCE(dev, I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5,
+		      "DC5 still not disabled.\n");
 
 	 /*
 	  * TODO: check for the following to verify DC9 state was indeed
@@ -740,10 +753,11 @@  static void gen9_sanitize_dc_state(struct drm_i915_private *dev_priv)
  */
 static void gen9_set_dc_state(struct drm_i915_private *dev_priv, u32 state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 	u32 mask;
 
-	if (WARN_ON_ONCE(state & ~dev_priv->csr.allowed_dc_mask))
+	if (dev_WARN_ON_ONCE(dev, state & ~dev_priv->csr.allowed_dc_mask))
 		state &= dev_priv->csr.allowed_dc_mask;
 
 	val = I915_READ(DC_STATE_EN);
@@ -838,16 +852,20 @@  static void bxt_disable_dc9(struct drm_i915_private *dev_priv)
 
 static void assert_csr_loaded(struct drm_i915_private *dev_priv)
 {
-	WARN_ONCE(!I915_READ(CSR_PROGRAM(0)),
-		  "CSR program storage start is NULL\n");
-	WARN_ONCE(!I915_READ(CSR_SSP_BASE), "CSR SSP Base Not fine\n");
-	WARN_ONCE(!I915_READ(CSR_HTP_SKL), "CSR HTP Not fine\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN_ONCE(dev, !I915_READ(CSR_PROGRAM(0)),
+		      "CSR program storage start is NULL\n");
+	dev_WARN_ONCE(dev, !I915_READ(CSR_SSP_BASE),
+		      "CSR SSP Base Not fine\n");
+	dev_WARN_ONCE(dev, !I915_READ(CSR_HTP_SKL), "CSR HTP Not fine\n");
 }
 
 static struct i915_power_well *
 lookup_power_well(struct drm_i915_private *dev_priv,
 		  enum i915_power_well_id power_well_id)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_power_well *power_well;
 
 	for_each_power_well(dev_priv, power_well)
@@ -861,7 +879,8 @@  lookup_power_well(struct drm_i915_private *dev_priv,
 	 * the first power well and hope the WARN gets reported so we can fix
 	 * our driver.
 	 */
-	WARN(1, "Power well %d not defined for this platform\n", power_well_id);
+	dev_WARN(dev, 1, "Power well %d not defined for this platform\n",
+		 power_well_id);
 	return &dev_priv->power_domains.power_wells[0];
 }
 
@@ -877,6 +896,7 @@  lookup_power_well(struct drm_i915_private *dev_priv,
 void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
 					     u32 state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_power_well *power_well;
 	bool dc_off_enabled;
 	struct i915_power_domains *power_domains = &dev_priv->power_domains;
@@ -884,7 +904,7 @@  void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
 	mutex_lock(&power_domains->lock);
 	power_well = lookup_power_well(dev_priv, SKL_DISP_DC_OFF);
 
-	if (WARN_ON(!power_well))
+	if (dev_WARN_ON(dev, !power_well))
 		goto unlock;
 
 	state = sanitize_target_dc_state(dev_priv, state);
@@ -912,13 +932,14 @@  void intel_display_power_set_target_dc_state(struct drm_i915_private *dev_priv,
 
 static void assert_can_enable_dc5(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	bool pg2_enabled = intel_display_power_well_is_enabled(dev_priv,
 					SKL_DISP_PW_2);
 
-	WARN_ONCE(pg2_enabled, "PG2 not disabled to enable DC5.\n");
+	dev_WARN_ONCE(dev, pg2_enabled, "PG2 not disabled to enable DC5.\n");
 
-	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5),
-		  "DC5 already programmed to be enabled.\n");
+	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC5),
+		      "DC5 already programmed to be enabled.\n");
 	assert_rpm_wakelock_held(&dev_priv->runtime_pm);
 
 	assert_csr_loaded(dev_priv);
@@ -940,10 +961,12 @@  static void gen9_enable_dc5(struct drm_i915_private *dev_priv)
 
 static void assert_can_enable_dc6(struct drm_i915_private *dev_priv)
 {
-	WARN_ONCE(I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE,
-		  "Backlight is not disabled.\n");
-	WARN_ONCE((I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC6),
-		  "DC6 already programmed to be enabled.\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN_ONCE(dev, I915_READ(UTIL_PIN_CTL) & UTIL_PIN_ENABLE,
+		      "Backlight is not disabled.\n");
+	dev_WARN_ONCE(dev, (I915_READ(DC_STATE_EN) & DC_STATE_EN_UPTO_DC6),
+		      "DC6 already programmed to be enabled.\n");
 
 	assert_csr_loaded(dev_priv);
 }
@@ -1028,15 +1051,17 @@  static bool gen9_dc_off_power_well_enabled(struct drm_i915_private *dev_priv,
 
 static void gen9_assert_dbuf_enabled(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 tmp = I915_READ(DBUF_CTL);
 
-	WARN((tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
-	     (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
-	     "Unexpected DBuf power power state (0x%08x)\n", tmp);
+	dev_WARN(dev, (tmp & (DBUF_POWER_STATE | DBUF_POWER_REQUEST)) !=
+		 (DBUF_POWER_STATE | DBUF_POWER_REQUEST),
+		 "Unexpected DBuf power power state (0x%08x)\n", tmp);
 }
 
 static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_cdclk_state cdclk_state = {};
 
 	if (dev_priv->csr.target_dc_state == DC_STATE_EN_DC3CO) {
@@ -1048,7 +1073,8 @@  static void gen9_disable_dc_states(struct drm_i915_private *dev_priv)
 
 	dev_priv->display.get_cdclk(dev_priv, &cdclk_state);
 	/* Can't read out voltage_level so can't use intel_cdclk_changed() */
-	WARN_ON(intel_cdclk_needs_modeset(&dev_priv->cdclk.hw, &cdclk_state));
+	dev_WARN_ON(dev, intel_cdclk_needs_modeset(&dev_priv->cdclk.hw,
+						   &cdclk_state));
 
 	gen9_assert_dbuf_enabled(dev_priv);
 
@@ -1188,6 +1214,7 @@  static void vlv_power_well_disable(struct drm_i915_private *dev_priv,
 static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
 				   struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int pw_idx = power_well->desc->vlv.idx;
 	bool enabled = false;
 	u32 mask;
@@ -1204,8 +1231,8 @@  static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
 	 * We only ever set the power-on and power-gate states, anything
 	 * else is unexpected.
 	 */
-	WARN_ON(state != PUNIT_PWRGT_PWR_ON(pw_idx) &&
-		state != PUNIT_PWRGT_PWR_GATE(pw_idx));
+	dev_WARN_ON(dev, state != PUNIT_PWRGT_PWR_ON(pw_idx) &&
+		    state != PUNIT_PWRGT_PWR_GATE(pw_idx));
 	if (state == ctrl)
 		enabled = true;
 
@@ -1214,7 +1241,7 @@  static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
 	 * is poking at the power controls too.
 	 */
 	ctrl = vlv_punit_read(dev_priv, PUNIT_REG_PWRGT_CTRL) & mask;
-	WARN_ON(ctrl != state);
+	dev_WARN_ON(dev, ctrl != state);
 
 	vlv_punit_put(dev_priv);
 
@@ -1223,6 +1250,7 @@  static bool vlv_power_well_enabled(struct drm_i915_private *dev_priv,
 
 static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
 	/*
@@ -1242,7 +1270,7 @@  static void vlv_init_display_clock_gating(struct drm_i915_private *dev_priv)
 	I915_WRITE(MI_ARB_VLV, MI_ARB_DISPLAY_TRICKLE_FEED_DISABLE);
 	I915_WRITE(CBR1_VLV, 0);
 
-	WARN_ON(dev_priv->rawclk_freq == 0);
+	dev_WARN_ON(dev, dev_priv->rawclk_freq == 0);
 
 	I915_WRITE(RAWCLK_FREQ_VLV,
 		   DIV_ROUND_CLOSEST(dev_priv->rawclk_freq, 1000));
@@ -1477,12 +1505,14 @@  static void assert_chv_phy_status(struct drm_i915_private *dev_priv)
 static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv,
 					   struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum dpio_phy phy;
 	enum pipe pipe;
 	u32 tmp;
 
-	WARN_ON_ONCE(power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
-		     power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
+	dev_WARN_ON_ONCE(dev,
+			 power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
+			 power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
 
 	if (power_well->desc->id == VLV_DISP_PW_DPIO_CMN_BC) {
 		pipe = PIPE_A;
@@ -1538,10 +1568,12 @@  static void chv_dpio_cmn_power_well_enable(struct drm_i915_private *dev_priv,
 static void chv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv,
 					    struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum dpio_phy phy;
 
-	WARN_ON_ONCE(power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
-		     power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
+	dev_WARN_ON_ONCE(dev,
+			 power_well->desc->id != VLV_DISP_PW_DPIO_CMN_BC &&
+			 power_well->desc->id != CHV_DISP_PW_DPIO_CMN_D);
 
 	if (power_well->desc->id == VLV_DISP_PW_DPIO_CMN_BC) {
 		phy = DPIO_PHY0;
@@ -1569,6 +1601,7 @@  static void chv_dpio_cmn_power_well_disable(struct drm_i915_private *dev_priv,
 static void assert_chv_phy_powergate(struct drm_i915_private *dev_priv, enum dpio_phy phy,
 				     enum dpio_channel ch, bool override, unsigned int mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = phy == DPIO_PHY0 ? PIPE_A : PIPE_C;
 	u32 reg, val, expected, actual;
 
@@ -1621,11 +1654,13 @@  static void assert_chv_phy_powergate(struct drm_i915_private *dev_priv, enum dpi
 		actual = val >> DPIO_ANYDL_POWERDOWN_SHIFT_CH1;
 	actual &= DPIO_ALLDL_POWERDOWN | DPIO_ANYDL_POWERDOWN;
 
-	WARN(actual != expected,
-	     "Unexpected DPIO lane power down: all %d, any %d. Expected: all %d, any %d. (0x%x = 0x%08x)\n",
-	     !!(actual & DPIO_ALLDL_POWERDOWN), !!(actual & DPIO_ANYDL_POWERDOWN),
-	     !!(expected & DPIO_ALLDL_POWERDOWN), !!(expected & DPIO_ANYDL_POWERDOWN),
-	     reg, val);
+	dev_WARN(dev, actual != expected,
+		 "Unexpected DPIO lane power down: all %d, any %d. Expected: all %d, any %d. (0x%x = 0x%08x)\n",
+		 !!(actual & DPIO_ALLDL_POWERDOWN),
+		 !!(actual & DPIO_ANYDL_POWERDOWN),
+		 !!(expected & DPIO_ALLDL_POWERDOWN),
+		 !!(expected & DPIO_ANYDL_POWERDOWN),
+		 reg, val);
 }
 
 bool chv_phy_powergate_ch(struct drm_i915_private *dev_priv, enum dpio_phy phy,
@@ -1692,6 +1727,7 @@  void chv_phy_powergate_lanes(struct intel_encoder *encoder,
 static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
 					struct i915_power_well *power_well)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = PIPE_A;
 	bool enabled;
 	u32 state, ctrl;
@@ -1703,7 +1739,9 @@  static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
 	 * We only ever set the power-on and power-gate states, anything
 	 * else is unexpected.
 	 */
-	WARN_ON(state != DP_SSS_PWR_ON(pipe) && state != DP_SSS_PWR_GATE(pipe));
+	dev_WARN_ON(dev,
+		    state != DP_SSS_PWR_ON(pipe) &&
+		    state != DP_SSS_PWR_GATE(pipe));
 	enabled = state == DP_SSS_PWR_ON(pipe);
 
 	/*
@@ -1711,7 +1749,7 @@  static bool chv_pipe_power_well_enabled(struct drm_i915_private *dev_priv,
 	 * is poking at the power controls too.
 	 */
 	ctrl = vlv_punit_read(dev_priv, PUNIT_REG_DSPSSPM) & DP_SSC_MASK(pipe);
-	WARN_ON(ctrl << 16 != state);
+	dev_WARN_ON(dev, ctrl << 16 != state);
 
 	vlv_punit_put(dev_priv);
 
@@ -1975,18 +2013,19 @@  static void
 __intel_display_power_put_domain(struct drm_i915_private *dev_priv,
 				 enum intel_display_power_domain domain)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_power_domains *power_domains;
 	struct i915_power_well *power_well;
 	const char *name = intel_display_power_domain_str(domain);
 
 	power_domains = &dev_priv->power_domains;
 
-	WARN(!power_domains->domain_use_count[domain],
-	     "Use count on domain %s is already zero\n",
-	     name);
-	WARN(async_put_domains_mask(power_domains) & BIT_ULL(domain),
-	     "Async disabling of domain %s is pending\n",
-	     name);
+	dev_WARN(dev, !power_domains->domain_use_count[domain],
+		 "Use count on domain %s is already zero\n",
+		 name);
+	dev_WARN(dev, async_put_domains_mask(power_domains) & BIT_ULL(domain),
+		 "Async disabling of domain %s is pending\n",
+		 name);
 
 	power_domains->domain_use_count[domain]--;
 
@@ -2119,6 +2158,7 @@  void __intel_display_power_put_async(struct drm_i915_private *i915,
 				     enum intel_display_power_domain domain,
 				     intel_wakeref_t wakeref)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct i915_power_domains *power_domains = &i915->power_domains;
 	struct intel_runtime_pm *rpm = &i915->runtime_pm;
 	intel_wakeref_t work_wakeref = intel_runtime_pm_get_raw(rpm);
@@ -2131,7 +2171,7 @@  void __intel_display_power_put_async(struct drm_i915_private *i915,
 		goto out_verify;
 	}
 
-	WARN_ON(power_domains->domain_use_count[domain] != 1);
+	dev_WARN_ON(dev, power_domains->domain_use_count[domain] != 1);
 
 	/* Let a pending work requeue itself or queue a new one. */
 	if (power_domains->async_put_wakeref) {
@@ -2199,6 +2239,7 @@  void intel_display_power_flush_work(struct drm_i915_private *i915)
 static void
 intel_display_power_flush_work_sync(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct i915_power_domains *power_domains = &i915->power_domains;
 
 	intel_display_power_flush_work(i915);
@@ -2206,7 +2247,7 @@  intel_display_power_flush_work_sync(struct drm_i915_private *i915)
 
 	verify_async_put_domains_state(power_domains);
 
-	WARN_ON(power_domains->async_put_wakeref);
+	dev_WARN_ON(dev, power_domains->async_put_wakeref);
 }
 
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG_RUNTIME_PM)
@@ -5170,21 +5211,24 @@  static bool vlv_punit_is_power_gated(struct drm_i915_private *dev_priv, u32 reg0
 
 static void assert_ved_power_gated(struct drm_i915_private *dev_priv)
 {
-	WARN(!vlv_punit_is_power_gated(dev_priv, PUNIT_REG_VEDSSPM0),
-	     "VED not power gated\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN(dev, !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_VEDSSPM0),
+		 "VED not power gated\n");
 }
 
 static void assert_isp_power_gated(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	static const struct pci_device_id isp_ids[] = {
 		{PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0f38)},
 		{PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x22b8)},
 		{}
 	};
 
-	WARN(!pci_dev_present(isp_ids) &&
-	     !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_ISPSSPM0),
-	     "ISP not power gated\n");
+	dev_WARN(dev, !pci_dev_present(isp_ids) &&
+		 !vlv_punit_is_power_gated(dev_priv, PUNIT_REG_ISPSSPM0),
+		 "ISP not power gated\n");
 }
 
 static void intel_power_domains_verify_state(struct drm_i915_private *dev_priv);
@@ -5315,9 +5359,10 @@  void intel_power_domains_enable(struct drm_i915_private *i915)
  */
 void intel_power_domains_disable(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct i915_power_domains *power_domains = &i915->power_domains;
 
-	WARN_ON(power_domains->wakeref);
+	dev_WARN_ON(dev, power_domains->wakeref);
 	power_domains->wakeref =
 		intel_display_power_get(i915, POWER_DOMAIN_INIT);
 
@@ -5393,13 +5438,14 @@  void intel_power_domains_suspend(struct drm_i915_private *i915,
  */
 void intel_power_domains_resume(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct i915_power_domains *power_domains = &i915->power_domains;
 
 	if (power_domains->display_core_suspended) {
 		intel_power_domains_init_hw(i915, true);
 		power_domains->display_core_suspended = false;
 	} else {
-		WARN_ON(power_domains->wakeref);
+		dev_WARN_ON(dev, power_domains->wakeref);
 		power_domains->wakeref =
 			intel_display_power_get(i915, POWER_DOMAIN_INIT);
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 255de50fcf84..c637929aa311 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -324,13 +324,14 @@  intel_dp_set_source_rates(struct intel_dp *intel_dp)
 	};
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct ddi_vbt_port_info *info =
 		&dev_priv->vbt.ddi_port_info[dig_port->base.port];
 	const int *source_rates;
 	int size, max_rate = 0, vbt_max_rate = info->dp_max_link_rate;
 
 	/* This should only be done once */
-	WARN_ON(intel_dp->source_rates || intel_dp->num_source_rates);
+	dev_WARN_ON(dev, intel_dp->source_rates || intel_dp->num_source_rates);
 
 	if (INTEL_GEN(dev_priv) >= 10) {
 		source_rates = cnl_rates;
@@ -753,6 +754,7 @@  static void
 vlv_power_sequencer_kick(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 	enum pipe pipe = intel_dp->pps_pipe;
 	bool pll_enabled, release_cl_override = false;
@@ -760,10 +762,10 @@  vlv_power_sequencer_kick(struct intel_dp *intel_dp)
 	enum dpio_channel ch = vlv_pipe_to_channel(pipe);
 	u32 DP;
 
-	if (WARN(I915_READ(intel_dp->output_reg) & DP_PORT_EN,
-		 "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
-		 pipe_name(pipe), intel_dig_port->base.base.base.id,
-		 intel_dig_port->base.base.name))
+	if (dev_WARN(dev, I915_READ(intel_dp->output_reg) & DP_PORT_EN,
+		     "skipping pipe %c power sequencer kick due to [ENCODER:%d:%s] being active\n",
+		     pipe_name(pipe), intel_dig_port->base.base.base.id,
+		     intel_dig_port->base.base.name))
 		return;
 
 	DRM_DEBUG_KMS("kicking pipe %c power sequencer for [ENCODER:%d:%s]\n",
@@ -826,6 +828,7 @@  vlv_power_sequencer_kick(struct intel_dp *intel_dp)
 
 static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_encoder *encoder;
 	unsigned int pipes = (1 << PIPE_A) | (1 << PIPE_B);
 
@@ -837,13 +840,14 @@  static enum pipe vlv_find_free_pps(struct drm_i915_private *dev_priv)
 		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 
 		if (encoder->type == INTEL_OUTPUT_EDP) {
-			WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
-				intel_dp->active_pipe != intel_dp->pps_pipe);
+			dev_WARN_ON(dev,
+				    intel_dp->active_pipe != INVALID_PIPE &&
+				    intel_dp->active_pipe != intel_dp->pps_pipe);
 
 			if (intel_dp->pps_pipe != INVALID_PIPE)
 				pipes &= ~(1 << intel_dp->pps_pipe);
 		} else {
-			WARN_ON(intel_dp->pps_pipe != INVALID_PIPE);
+			dev_WARN_ON(dev, intel_dp->pps_pipe != INVALID_PIPE);
 
 			if (intel_dp->active_pipe != INVALID_PIPE)
 				pipes &= ~(1 << intel_dp->active_pipe);
@@ -860,16 +864,17 @@  static enum pipe
 vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 	enum pipe pipe;
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
 	/* We should never land here with regular DP ports */
-	WARN_ON(!intel_dp_is_edp(intel_dp));
+	dev_WARN_ON(dev, !intel_dp_is_edp(intel_dp));
 
-	WARN_ON(intel_dp->active_pipe != INVALID_PIPE &&
-		intel_dp->active_pipe != intel_dp->pps_pipe);
+	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE &&
+		    intel_dp->active_pipe != intel_dp->pps_pipe);
 
 	if (intel_dp->pps_pipe != INVALID_PIPE)
 		return intel_dp->pps_pipe;
@@ -880,7 +885,7 @@  vlv_power_sequencer_pipe(struct intel_dp *intel_dp)
 	 * Didn't find one. This should not happen since there
 	 * are two power sequencers and up to two eDP ports.
 	 */
-	if (WARN_ON(pipe == INVALID_PIPE))
+	if (dev_WARN_ON(dev, pipe == INVALID_PIPE))
 		pipe = PIPE_A;
 
 	vlv_steal_power_sequencer(dev_priv, pipe);
@@ -908,12 +913,13 @@  static int
 bxt_power_sequencer_idx(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	int backlight_controller = dev_priv->vbt.backlight.controller;
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
 	/* We should never land here with regular DP ports */
-	WARN_ON(!intel_dp_is_edp(intel_dp));
+	dev_WARN_ON(dev, !intel_dp_is_edp(intel_dp));
 
 	if (!intel_dp->pps_reset)
 		return backlight_controller;
@@ -1014,10 +1020,12 @@  vlv_initial_power_sequencer_setup(struct intel_dp *intel_dp)
 
 void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_encoder *encoder;
 
-	if (WARN_ON(!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv) &&
-		    !IS_GEN9_LP(dev_priv)))
+	if (dev_WARN_ON(dev, !IS_VALLEYVIEW(dev_priv) &&
+			!IS_CHERRYVIEW(dev_priv) &&
+			!IS_GEN9_LP(dev_priv)))
 		return;
 
 	/*
@@ -1033,7 +1041,7 @@  void intel_power_sequencer_reset(struct drm_i915_private *dev_priv)
 	for_each_intel_dp(&dev_priv->drm, encoder) {
 		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 
-		WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+		dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
 
 		if (encoder->type != INTEL_OUTPUT_EDP)
 			continue;
@@ -1162,12 +1170,14 @@  static void
 intel_dp_check_edp(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (!intel_dp_is_edp(intel_dp))
 		return;
 
 	if (!edp_have_panel_power(intel_dp) && !edp_have_panel_vdd(intel_dp)) {
-		WARN(1, "eDP powered off while attempting aux channel communication.\n");
+		dev_WARN(dev, 1,
+			 "eDP powered off while attempting aux channel communication.\n");
 		DRM_DEBUG_KMS("Status 0x%08x Control 0x%08x\n",
 			      I915_READ(_pp_stat_reg(intel_dp)),
 			      I915_READ(_pp_ctrl_reg(intel_dp)));
@@ -1324,6 +1334,7 @@  intel_dp_aux_xfer(struct intel_dp *intel_dp,
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 	struct drm_i915_private *i915 =
 			to_i915(intel_dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = &i915->uncore;
 	enum phy phy = intel_port_to_phy(i915, intel_dig_port->base.port);
 	bool is_tc_port = intel_phy_is_tc(i915, phy);
@@ -1378,8 +1389,9 @@  intel_dp_aux_xfer(struct intel_dp *intel_dp,
 		const u32 status = intel_uncore_read(uncore, ch_ctl);
 
 		if (status != intel_dp->aux_busy_last_status) {
-			WARN(1, "dp_aux_ch not started status 0x%08x\n",
-			     status);
+			dev_WARN(dev, 1,
+				 "dp_aux_ch not started status 0x%08x\n",
+				 status);
 			intel_dp->aux_busy_last_status = status;
 		}
 
@@ -1388,7 +1400,7 @@  intel_dp_aux_xfer(struct intel_dp *intel_dp,
 	}
 
 	/* Only 5 data registers! */
-	if (WARN_ON(send_bytes > 20 || recv_size > 20)) {
+	if (dev_WARN_ON(dev, send_bytes > 20 || recv_size > 20)) {
 		ret = -E2BIG;
 		goto out;
 	}
@@ -2656,13 +2668,14 @@  static void edp_wait_backlight_off(struct intel_dp *intel_dp)
 static  u32 ilk_get_pp_control(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 control;
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
 	control = I915_READ(_pp_ctrl_reg(intel_dp));
-	if (WARN_ON(!HAS_DDI(dev_priv) &&
-		    (control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
+	if (dev_WARN_ON(dev, !HAS_DDI(dev_priv) &&
+			(control & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS)) {
 		control &= ~PANEL_UNLOCK_MASK;
 		control |= PANEL_UNLOCK_REGS;
 	}
@@ -2752,6 +2765,7 @@  void intel_edp_panel_vdd_on(struct intel_dp *intel_dp)
 static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *intel_dig_port =
 		dp_to_dig_port(intel_dp);
 	u32 pp;
@@ -2759,7 +2773,7 @@  static void edp_panel_vdd_off_sync(struct intel_dp *intel_dp)
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
-	WARN_ON(intel_dp->want_panel_vdd);
+	dev_WARN_ON(dev, intel_dp->want_panel_vdd);
 
 	if (!edp_have_panel_vdd(intel_dp))
 		return;
@@ -2843,6 +2857,7 @@  static void edp_panel_vdd_off(struct intel_dp *intel_dp, bool sync)
 static void edp_panel_on(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 pp;
 	i915_reg_t pp_ctrl_reg;
 
@@ -2855,10 +2870,10 @@  static void edp_panel_on(struct intel_dp *intel_dp)
 		      dp_to_dig_port(intel_dp)->base.base.base.id,
 		      dp_to_dig_port(intel_dp)->base.base.name);
 
-	if (WARN(edp_have_panel_power(intel_dp),
-		 "[ENCODER:%d:%s] panel power already on\n",
-		 dp_to_dig_port(intel_dp)->base.base.base.id,
-		 dp_to_dig_port(intel_dp)->base.base.name))
+	if (dev_WARN(dev, edp_have_panel_power(intel_dp),
+		     "[ENCODER:%d:%s] panel power already on\n",
+		     dp_to_dig_port(intel_dp)->base.base.base.id,
+		     dp_to_dig_port(intel_dp)->base.base.name))
 		return;
 
 	wait_panel_power_cycle(intel_dp);
@@ -2904,6 +2919,7 @@  void intel_edp_panel_on(struct intel_dp *intel_dp)
 static void edp_panel_off(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	u32 pp;
 	i915_reg_t pp_ctrl_reg;
@@ -2916,8 +2932,9 @@  static void edp_panel_off(struct intel_dp *intel_dp)
 	DRM_DEBUG_KMS("Turn [ENCODER:%d:%s] panel power off\n",
 		      dig_port->base.base.base.id, dig_port->base.base.name);
 
-	WARN(!intel_dp->want_panel_vdd, "Need [ENCODER:%d:%s] VDD to turn off panel\n",
-	     dig_port->base.base.base.id, dig_port->base.base.name);
+	dev_WARN(dev, !intel_dp->want_panel_vdd,
+		 "Need [ENCODER:%d:%s] VDD to turn off panel\n",
+		 dig_port->base.base.base.id, dig_port->base.base.name);
 
 	pp = ilk_get_pp_control(intel_dp);
 	/* We need to switch off panel power _and_ force vdd, for otherwise some
@@ -3548,13 +3565,14 @@  static void intel_enable_dp(struct intel_encoder *encoder,
 			    const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	u32 dp_reg = I915_READ(intel_dp->output_reg);
 	enum pipe pipe = crtc->pipe;
 	intel_wakeref_t wakeref;
 
-	if (WARN_ON(dp_reg & DP_PORT_EN))
+	if (dev_WARN_ON(dev, dp_reg & DP_PORT_EN))
 		return;
 
 	with_pps_lock(intel_dp, wakeref) {
@@ -3622,12 +3640,13 @@  static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
 {
 	struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
 	struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum pipe pipe = intel_dp->pps_pipe;
 	i915_reg_t pp_on_reg = PP_ON_DELAYS(pipe);
 
-	WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
 
-	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
+	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
 		return;
 
 	edp_panel_vdd_off_sync(intel_dp);
@@ -3653,6 +3672,7 @@  static void vlv_detach_power_sequencer(struct intel_dp *intel_dp)
 static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
 				      enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_encoder *encoder;
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
@@ -3660,10 +3680,10 @@  static void vlv_steal_power_sequencer(struct drm_i915_private *dev_priv,
 	for_each_intel_dp(&dev_priv->drm, encoder) {
 		struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 
-		WARN(intel_dp->active_pipe == pipe,
-		     "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
-		     pipe_name(pipe), encoder->base.base.id,
-		     encoder->base.name);
+		dev_WARN(dev, intel_dp->active_pipe == pipe,
+			 "stealing pipe %c power sequencer from active [ENCODER:%d:%s]\n",
+			 pipe_name(pipe), encoder->base.base.id,
+			 encoder->base.name);
 
 		if (intel_dp->pps_pipe != pipe)
 			continue;
@@ -3681,12 +3701,13 @@  static void vlv_init_panel_power_sequencer(struct intel_encoder *encoder,
 					   const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 
 	lockdep_assert_held(&dev_priv->pps_mutex);
 
-	WARN_ON(intel_dp->active_pipe != INVALID_PIPE);
+	dev_WARN_ON(dev, intel_dp->active_pipe != INVALID_PIPE);
 
 	if (intel_dp->pps_pipe != INVALID_PIPE &&
 	    intel_dp->pps_pipe != crtc->pipe) {
@@ -4203,12 +4224,14 @@  intel_dp_link_down(struct intel_encoder *encoder,
 		   const struct intel_crtc_state *old_crtc_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
 	enum port port = encoder->port;
 	u32 DP = intel_dp->DP;
 
-	if (WARN_ON((I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
+	if (dev_WARN_ON(dev,
+			(I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0))
 		return;
 
 	DRM_DEBUG_KMS("\n");
@@ -4368,9 +4391,10 @@  intel_edp_init_dpcd(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv =
 		to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	/* this function is meant to be called only once */
-	WARN_ON(intel_dp->dpcd[DP_DPCD_REV] != 0);
+	dev_WARN_ON(dev, intel_dp->dpcd[DP_DPCD_REV] != 0);
 
 	if (!intel_dp_read_dpcd(intel_dp))
 		return false;
@@ -5096,6 +5120,7 @@  int intel_dp_retrain_link(struct intel_encoder *encoder,
 			  struct drm_modeset_acquire_ctx *ctx)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
 	struct intel_connector *connector = intel_dp->attached_connector;
 	struct drm_connector_state *conn_state;
@@ -5125,7 +5150,7 @@  int intel_dp_retrain_link(struct intel_encoder *encoder,
 
 	crtc_state = to_intel_crtc_state(crtc->base.state);
 
-	WARN_ON(!intel_crtc_has_dp_encoder(crtc_state));
+	dev_WARN_ON(dev, !intel_crtc_has_dp_encoder(crtc_state));
 
 	if (!crtc_state->hw.active)
 		return 0;
@@ -5651,6 +5676,7 @@  intel_dp_detect(struct drm_connector *connector,
 		bool force)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = intel_attached_dp(connector);
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_encoder *encoder = &dig_port->base;
@@ -5658,7 +5684,8 @@  intel_dp_detect(struct drm_connector *connector,
 
 	DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n",
 		      connector->base.id, connector->name);
-	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
+	dev_WARN_ON(dev,
+		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
 
 	/* Can't disconnect eDP */
 	if (intel_dp_is_edp(intel_dp))
@@ -6840,6 +6867,7 @@  intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
 					      bool force_disable_vdd)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 pp_on, pp_off, port_sel = 0;
 	int div = dev_priv->rawclk_freq / 1000;
 	struct pps_registers regs;
@@ -6865,7 +6893,7 @@  intel_dp_init_panel_power_sequencer_registers(struct intel_dp *intel_dp,
 	if (force_disable_vdd) {
 		u32 pp = ilk_get_pp_control(intel_dp);
 
-		WARN(pp & PANEL_POWER_ON, "Panel power already on\n");
+		dev_WARN(dev, pp & PANEL_POWER_ON, "Panel power already on\n");
 
 		if (pp & EDP_FORCE_VDD)
 			DRM_DEBUG_KMS("VDD already on, disabling first\n");
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 3b066c63816d..84d25496ed45 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -346,13 +346,14 @@  static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
 	struct intel_connector *connector =
 		to_intel_connector(old_conn_state->connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	bool last_mst_stream;
 	u32 val;
 
 	intel_dp->active_mst_links--;
 	last_mst_stream = intel_dp->active_mst_links == 0;
-	WARN_ON(INTEL_GEN(dev_priv) >= 12 && last_mst_stream &&
-		!intel_dp_mst_is_master_trans(old_crtc_state));
+	dev_WARN_ON(dev, INTEL_GEN(dev_priv) >= 12 && last_mst_stream &&
+		    !intel_dp_mst_is_master_trans(old_crtc_state));
 
 	intel_crtc_vblank_off(old_crtc_state);
 
@@ -424,6 +425,7 @@  static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
 	struct intel_digital_port *intel_dig_port = intel_mst->primary;
 	struct intel_dp *intel_dp = &intel_dig_port->dp;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_connector *connector =
 		to_intel_connector(conn_state->connector);
 	int ret;
@@ -436,8 +438,8 @@  static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
 	connector->encoder = encoder;
 	intel_mst->connector = connector;
 	first_mst_stream = intel_dp->active_mst_links == 0;
-	WARN_ON(INTEL_GEN(dev_priv) >= 12 && first_mst_stream &&
-		!intel_dp_mst_is_master_trans(pipe_config));
+	dev_WARN_ON(dev, INTEL_GEN(dev_priv) >= 12 && first_mst_stream &&
+		    !intel_dp_mst_is_master_trans(pipe_config));
 
 	DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 
diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
index 704f38681c4b..ed0e6c09d13a 100644
--- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c
@@ -237,6 +237,7 @@  bxt_get_phy_info(struct drm_i915_private *dev_priv, enum dpio_phy phy)
 void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port,
 			     enum dpio_phy *phy, enum dpio_channel *ch)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct bxt_ddi_phy_info *phy_info, *phys;
 	int i, count;
 
@@ -259,7 +260,7 @@  void bxt_port_to_phy_channel(struct drm_i915_private *dev_priv, enum port port,
 		}
 	}
 
-	WARN(1, "PHY not found for PORT %c", port_name(port));
+	dev_WARN(dev, 1, "PHY not found for PORT %c", port_name(port));
 	*phy = DPIO_PHY0;
 	*ch = DPIO_CH0;
 }
diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
index 2cae30d2669c..7141d5ae0ee3 100644
--- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c
@@ -103,8 +103,10 @@  enum intel_dpll_id
 intel_get_shared_dpll_id(struct drm_i915_private *dev_priv,
 			 struct intel_shared_dpll *pll)
 {
-	if (WARN_ON(pll < dev_priv->shared_dplls||
-		    pll > &dev_priv->shared_dplls[dev_priv->num_shared_dpll]))
+	struct device *dev = i915_to_dev(dev_priv);
+
+	if (dev_WARN_ON(dev, pll < dev_priv->shared_dplls ||
+			pll > &dev_priv->shared_dplls[dev_priv->num_shared_dpll]))
 		return -1;
 
 	return (enum intel_dpll_id) (pll - dev_priv->shared_dplls);
@@ -115,10 +117,12 @@  void assert_shared_dpll(struct drm_i915_private *dev_priv,
 			struct intel_shared_dpll *pll,
 			bool state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	bool cur_state;
 	struct intel_dpll_hw_state hw_state;
 
-	if (WARN(!pll, "asserting DPLL %s with no DPLL\n", onoff(state)))
+	if (dev_WARN(dev, !pll,
+		     "asserting DPLL %s with no DPLL\n", onoff(state)))
 		return;
 
 	cur_state = pll->info->funcs->get_hw_state(dev_priv, pll, &hw_state);
@@ -138,16 +142,17 @@  void intel_prepare_shared_dpll(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 
-	if (WARN_ON(pll == NULL))
+	if (dev_WARN_ON(dev, pll == NULL))
 		return;
 
 	mutex_lock(&dev_priv->dpll_lock);
-	WARN_ON(!pll->state.crtc_mask);
+	dev_WARN_ON(dev, !pll->state.crtc_mask);
 	if (!pll->active_mask) {
 		DRM_DEBUG_DRIVER("setting up %s\n", pll->info->name);
-		WARN_ON(pll->on);
+		dev_WARN_ON(dev, pll->on);
 		assert_shared_dpll_disabled(dev_priv, pll);
 
 		pll->info->funcs->prepare(dev_priv, pll);
@@ -165,18 +170,19 @@  void intel_enable_shared_dpll(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 	unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
 	unsigned int old_mask;
 
-	if (WARN_ON(pll == NULL))
+	if (dev_WARN_ON(dev, pll == NULL))
 		return;
 
 	mutex_lock(&dev_priv->dpll_lock);
 	old_mask = pll->active_mask;
 
-	if (WARN_ON(!(pll->state.crtc_mask & crtc_mask)) ||
-	    WARN_ON(pll->active_mask & crtc_mask))
+	if (dev_WARN_ON(dev, !(pll->state.crtc_mask & crtc_mask)) ||
+	    dev_WARN_ON(dev, pll->active_mask & crtc_mask))
 		goto out;
 
 	pll->active_mask |= crtc_mask;
@@ -186,11 +192,11 @@  void intel_enable_shared_dpll(const struct intel_crtc_state *crtc_state)
 		      crtc->base.base.id);
 
 	if (old_mask) {
-		WARN_ON(!pll->on);
+		dev_WARN_ON(dev, !pll->on);
 		assert_shared_dpll_enabled(dev_priv, pll);
 		goto out;
 	}
-	WARN_ON(pll->on);
+	dev_WARN_ON(dev, pll->on);
 
 	DRM_DEBUG_KMS("enabling %s\n", pll->info->name);
 	pll->info->funcs->enable(dev_priv, pll);
@@ -210,6 +216,7 @@  void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_shared_dpll *pll = crtc_state->shared_dpll;
 	unsigned int crtc_mask = drm_crtc_mask(&crtc->base);
 
@@ -221,7 +228,7 @@  void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
 		return;
 
 	mutex_lock(&dev_priv->dpll_lock);
-	if (WARN_ON(!(pll->active_mask & crtc_mask)))
+	if (dev_WARN_ON(dev, !(pll->active_mask & crtc_mask)))
 		goto out;
 
 	DRM_DEBUG_KMS("disable %s (active %x, on? %d) for crtc %d\n",
@@ -229,7 +236,7 @@  void intel_disable_shared_dpll(const struct intel_crtc_state *crtc_state)
 		      crtc->base.base.id);
 
 	assert_shared_dpll_enabled(dev_priv, pll);
-	WARN_ON(!pll->on);
+	dev_WARN_ON(dev, !pll->on);
 
 	pll->active_mask &= ~crtc_mask;
 	if (pll->active_mask)
@@ -250,13 +257,14 @@  intel_find_shared_dpll(struct intel_atomic_state *state,
 		       unsigned long dpll_mask)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_shared_dpll *pll, *unused_pll = NULL;
 	struct intel_shared_dpll_state *shared_dpll;
 	enum intel_dpll_id i;
 
 	shared_dpll = intel_atomic_get_shared_dpll_state(&state->base);
 
-	WARN_ON(dpll_mask & ~(BIT(I915_NUM_PLLS) - 1));
+	dev_WARN_ON(dev, dpll_mask & ~(BIT(I915_NUM_PLLS) - 1));
 
 	for_each_set_bit(i, &dpll_mask, I915_NUM_PLLS) {
 		pll = &dev_priv->shared_dplls[i];
@@ -1085,6 +1093,7 @@  static bool skl_ddi_dpll0_get_hw_state(struct drm_i915_private *dev_priv,
 				       struct intel_shared_dpll *pll,
 				       struct intel_dpll_hw_state *hw_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct skl_dpll_regs *regs = skl_dpll_regs;
 	const enum intel_dpll_id id = pll->info->id;
 	intel_wakeref_t wakeref;
@@ -1100,7 +1109,7 @@  static bool skl_ddi_dpll0_get_hw_state(struct drm_i915_private *dev_priv,
 
 	/* DPLL0 is always enabled since it drives CDCLK */
 	val = I915_READ(regs[id].ctl);
-	if (WARN_ON(!(val & LCPLL_PLL_ENABLE)))
+	if (dev_WARN_ON(dev, !(val & LCPLL_PLL_ENABLE)))
 		goto out;
 
 	val = I915_READ(DPLL_CTRL1);
@@ -3812,9 +3821,10 @@  bool intel_reserve_shared_dplls(struct intel_atomic_state *state,
 				struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct intel_dpll_mgr *dpll_mgr = dev_priv->dpll_mgr;
 
-	if (WARN_ON(!dpll_mgr))
+	if (dev_WARN_ON(dev, !dpll_mgr))
 		return false;
 
 	return dpll_mgr->get_dplls(state, crtc, encoder);
@@ -3864,9 +3874,10 @@  void intel_update_active_dpll(struct intel_atomic_state *state,
 			      struct intel_encoder *encoder)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct intel_dpll_mgr *dpll_mgr = dev_priv->dpll_mgr;
 
-	if (WARN_ON(!dpll_mgr))
+	if (dev_WARN_ON(dev, !dpll_mgr))
 		return;
 
 	dpll_mgr->update_active_dpll(state, crtc, encoder);
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
index ada006a690df..9370f5031ed0 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -161,11 +161,12 @@  void intel_dsb_put(struct intel_dsb *dsb)
 {
 	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
 	struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(i915);
 
 	if (!HAS_DSB(i915))
 		return;
 
-	if (WARN_ON(dsb->refcount == 0))
+	if (dev_WARN_ON(dev, dsb->refcount == 0))
 		return;
 
 	if (--dsb->refcount == 0) {
@@ -194,6 +195,7 @@  void intel_dsb_indexed_reg_write(struct intel_dsb *dsb, i915_reg_t reg,
 {
 	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 *buf = dsb->cmd_buf;
 	u32 reg_val;
 
@@ -202,7 +204,7 @@  void intel_dsb_indexed_reg_write(struct intel_dsb *dsb, i915_reg_t reg,
 		return;
 	}
 
-	if (WARN_ON(dsb->free_pos >= DSB_BUF_SIZE)) {
+	if (dev_WARN_ON(dev, dsb->free_pos >= DSB_BUF_SIZE)) {
 		DRM_DEBUG_KMS("DSB buffer overflow\n");
 		return;
 	}
@@ -269,6 +271,7 @@  void intel_dsb_reg_write(struct intel_dsb *dsb, i915_reg_t reg, u32 val)
 {
 	struct intel_crtc *crtc = container_of(dsb, typeof(*crtc), dsb);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 *buf = dsb->cmd_buf;
 
 	if (!buf) {
@@ -276,7 +279,7 @@  void intel_dsb_reg_write(struct intel_dsb *dsb, i915_reg_t reg, u32 val)
 		return;
 	}
 
-	if (WARN_ON(dsb->free_pos >= DSB_BUF_SIZE)) {
+	if (dev_WARN_ON(dev, dsb->free_pos >= DSB_BUF_SIZE)) {
 		DRM_DEBUG_KMS("DSB buffer overflow\n");
 		return;
 	}
diff --git a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
index f90946c912ee..53c167cf389e 100644
--- a/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
+++ b/drivers/gpu/drm/i915/display/intel_dsi_vbt.c
@@ -457,17 +457,18 @@  void intel_dsi_vbt_exec_sequence(struct intel_dsi *intel_dsi,
 				 enum mipi_seq seq_id)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const u8 *data;
 	fn_mipi_elem_exec mipi_elem_exec;
 
-	if (WARN_ON(seq_id >= ARRAY_SIZE(dev_priv->vbt.dsi.sequence)))
+	if (dev_WARN_ON(dev, seq_id >= ARRAY_SIZE(dev_priv->vbt.dsi.sequence)))
 		return;
 
 	data = dev_priv->vbt.dsi.sequence[seq_id];
 	if (!data)
 		return;
 
-	WARN_ON(*data != seq_id);
+	dev_WARN_ON(dev, *data != seq_id);
 
 	DRM_DEBUG_KMS("Starting MIPI sequence %d - %s\n",
 		      seq_id, sequence_name(seq_id));
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index a1048ece541e..2c4c1b6438f6 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -405,9 +405,10 @@  bool intel_fbc_is_active(struct drm_i915_private *dev_priv)
 static void intel_fbc_deactivate(struct drm_i915_private *dev_priv,
 				 const char *reason)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 
-	WARN_ON(!mutex_is_locked(&fbc->lock));
+	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
 
 	if (fbc->active)
 		intel_fbc_hw_deactivate(dev_priv);
@@ -467,11 +468,12 @@  static int find_compression_threshold(struct drm_i915_private *dev_priv,
 static int intel_fbc_alloc_cfb(struct drm_i915_private *dev_priv,
 			       unsigned int size, unsigned int fb_cpp)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 	struct drm_mm_node *uninitialized_var(compressed_llb);
 	int ret;
 
-	WARN_ON(drm_mm_node_allocated(&fbc->compressed_fb));
+	dev_WARN_ON(dev, drm_mm_node_allocated(&fbc->compressed_fb));
 
 	ret = find_compression_threshold(dev_priv, &fbc->compressed_fb,
 					 size, fb_cpp);
@@ -554,8 +556,9 @@  void intel_fbc_cleanup_cfb(struct drm_i915_private *dev_priv)
 static bool stride_is_valid(struct drm_i915_private *dev_priv,
 			    unsigned int stride)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	/* This should have been caught earlier. */
-	if (WARN_ON_ONCE((stride & (64 - 1)) != 0))
+	if (dev_WARN_ON_ONCE(dev, (stride & (64 - 1)) != 0))
 		return false;
 
 	/* Below are the additional FBC restrictions. */
@@ -634,6 +637,7 @@  static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
 					 const struct intel_plane_state *plane_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 	struct intel_fbc_state_cache *cache = &fbc->state_cache;
 	struct drm_framebuffer *fb = plane_state->hw.fb;
@@ -663,8 +667,8 @@  static void intel_fbc_update_state_cache(struct intel_crtc *crtc,
 	cache->fb.format = fb->format;
 	cache->fb.stride = fb->pitches[0];
 
-	WARN_ON(plane_state->flags & PLANE_HAS_FENCE &&
-		!plane_state->vma->fence);
+	dev_WARN_ON(dev, plane_state->flags & PLANE_HAS_FENCE &&
+		    !plane_state->vma->fence);
 
 	if (plane_state->flags & PLANE_HAS_FENCE &&
 	    plane_state->vma->fence)
@@ -923,12 +927,13 @@  bool intel_fbc_pre_update(struct intel_crtc *crtc,
  */
 static void __intel_fbc_disable(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 	struct intel_crtc *crtc = fbc->crtc;
 
-	WARN_ON(!mutex_is_locked(&fbc->lock));
-	WARN_ON(!fbc->crtc);
-	WARN_ON(fbc->active);
+	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
+	dev_WARN_ON(dev, !fbc->crtc);
+	dev_WARN_ON(dev, fbc->active);
 
 	DRM_DEBUG_KMS("Disabling FBC on pipe %c\n", pipe_name(crtc->pipe));
 
@@ -940,9 +945,10 @@  static void __intel_fbc_disable(struct drm_i915_private *dev_priv)
 static void __intel_fbc_post_update(struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 
-	WARN_ON(!mutex_is_locked(&fbc->lock));
+	dev_WARN_ON(dev, !mutex_is_locked(&fbc->lock));
 
 	if (fbc->crtc != crtc)
 		return;
@@ -1112,6 +1118,7 @@  void intel_fbc_enable(struct intel_crtc *crtc,
 		      const struct intel_plane_state *plane_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 	struct intel_fbc_state_cache *cache = &fbc->state_cache;
 	const struct drm_framebuffer *fb = plane_state->hw.fb;
@@ -1129,7 +1136,7 @@  void intel_fbc_enable(struct intel_crtc *crtc,
 		__intel_fbc_disable(dev_priv);
 	}
 
-	WARN_ON(fbc->active);
+	dev_WARN_ON(dev, fbc->active);
 
 	intel_fbc_update_state_cache(crtc, crtc_state, plane_state);
 
@@ -1188,6 +1195,7 @@  void intel_fbc_disable(struct intel_crtc *crtc)
  */
 void intel_fbc_global_disable(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_fbc *fbc = &dev_priv->fbc;
 
 	if (!fbc_supported(dev_priv))
@@ -1195,7 +1203,7 @@  void intel_fbc_global_disable(struct drm_i915_private *dev_priv)
 
 	mutex_lock(&fbc->lock);
 	if (fbc->crtc) {
-		WARN_ON(fbc->crtc->active);
+		dev_WARN_ON(dev, fbc->crtc->active);
 		__intel_fbc_disable(dev_priv);
 	}
 	mutex_unlock(&fbc->lock);
diff --git a/drivers/gpu/drm/i915/display/intel_gmbus.c b/drivers/gpu/drm/i915/display/intel_gmbus.c
index 3d4d19ac1d14..721f7fa3008c 100644
--- a/drivers/gpu/drm/i915/display/intel_gmbus.c
+++ b/drivers/gpu/drm/i915/display/intel_gmbus.c
@@ -908,7 +908,9 @@  int intel_gmbus_setup(struct drm_i915_private *dev_priv)
 struct i2c_adapter *intel_gmbus_get_adapter(struct drm_i915_private *dev_priv,
 					    unsigned int pin)
 {
-	if (WARN_ON(!intel_gmbus_is_valid_pin(dev_priv, pin)))
+	struct device *dev = i915_to_dev(dev_priv);
+
+	if (dev_WARN_ON(dev, !intel_gmbus_is_valid_pin(dev_priv, pin)))
 		return NULL;
 
 	return &dev_priv->gmbus[pin].adapter;
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c
index 0fdbd39f6641..f1d9b7958e08 100644
--- a/drivers/gpu/drm/i915/display/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_hdcp.c
@@ -838,6 +838,7 @@  static int intel_hdcp_check_link(struct intel_connector *connector)
 {
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	enum port port = intel_dig_port->base.port;
 	enum transcoder cpu_transcoder;
@@ -853,7 +854,8 @@  static int intel_hdcp_check_link(struct intel_connector *connector)
 		goto out;
 	}
 
-	if (WARN_ON(!intel_hdcp_in_use(dev_priv, cpu_transcoder, port))) {
+	if (dev_WARN_ON(dev,
+			!intel_hdcp_in_use(dev_priv, cpu_transcoder, port))) {
 		DRM_ERROR("%s:%d HDCP link stopped encryption,%x\n",
 			  connector->base.name, connector->base.base.id,
 			  I915_READ(HDCP_STATUS(dev_priv, cpu_transcoder,
@@ -1526,13 +1528,15 @@  static int hdcp2_enable_encryption(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = connector->encoder->port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
-	WARN_ON(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
-		LINK_ENCRYPTION_STATUS);
+	dev_WARN_ON(dev,
+		    I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
+		    LINK_ENCRYPTION_STATUS);
 	if (hdcp->shim->toggle_signalling) {
 		ret = hdcp->shim->toggle_signalling(intel_dig_port, true);
 		if (ret) {
@@ -1564,13 +1568,15 @@  static int hdcp2_disable_encryption(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = connector->encoder->port;
 	enum transcoder cpu_transcoder = hdcp->cpu_transcoder;
 	int ret;
 
-	WARN_ON(!(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
-			    LINK_ENCRYPTION_STATUS));
+	dev_WARN_ON(dev,
+		    !(I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder, port)) &
+		      LINK_ENCRYPTION_STATUS));
 
 	I915_WRITE(HDCP2_CTL(dev_priv, cpu_transcoder, port),
 		   I915_READ(HDCP2_CTL(dev_priv, cpu_transcoder, port)) &
@@ -1675,6 +1681,7 @@  static int intel_hdcp2_check_link(struct intel_connector *connector)
 {
 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	enum port port = connector->encoder->port;
 	enum transcoder cpu_transcoder;
@@ -1690,7 +1697,8 @@  static int intel_hdcp2_check_link(struct intel_connector *connector)
 		goto out;
 	}
 
-	if (WARN_ON(!intel_hdcp2_in_use(dev_priv, cpu_transcoder, port))) {
+	if (dev_WARN_ON(dev,
+			!intel_hdcp2_in_use(dev_priv, cpu_transcoder, port))) {
 		DRM_ERROR("HDCP2.2 link stopped the encryption, %x\n",
 			  I915_READ(HDCP2_STATUS(dev_priv, cpu_transcoder,
 						 port)));
@@ -1875,13 +1883,14 @@  static bool is_hdcp2_supported(struct drm_i915_private *dev_priv)
 
 void intel_hdcp_component_init(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int ret;
 
 	if (!is_hdcp2_supported(dev_priv))
 		return;
 
 	mutex_lock(&dev_priv->hdcp_comp_mutex);
-	WARN_ON(dev_priv->hdcp_comp_added);
+	dev_WARN_ON(dev, dev_priv->hdcp_comp_added);
 
 	dev_priv->hdcp_comp_added = true;
 	mutex_unlock(&dev_priv->hdcp_comp_mutex);
@@ -1946,6 +1955,7 @@  int intel_hdcp_enable(struct intel_connector *connector,
 		      enum transcoder cpu_transcoder, u8 content_type)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_hdcp *hdcp = &connector->hdcp;
 	unsigned long check_link_interval = DRM_HDCP_CHECK_PERIOD_MS;
 	int ret = -EINVAL;
@@ -1954,7 +1964,7 @@  int intel_hdcp_enable(struct intel_connector *connector,
 		return -ENOENT;
 
 	mutex_lock(&hdcp->mutex);
-	WARN_ON(hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
+	dev_WARN_ON(dev, hdcp->value == DRM_MODE_CONTENT_PROTECTION_ENABLED);
 	hdcp->content_type = content_type;
 
 	if (INTEL_GEN(dev_priv) >= 12) {
diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c b/drivers/gpu/drm/i915/display/intel_hdmi.c
index 715b854b24a0..7dbd30c65d62 100644
--- a/drivers/gpu/drm/i915/display/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/display/intel_hdmi.c
@@ -80,9 +80,11 @@  static void
 assert_hdmi_transcoder_func_disabled(struct drm_i915_private *dev_priv,
 				     enum transcoder cpu_transcoder)
 {
-	WARN(I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)) &
-	     TRANS_DDI_FUNC_ENABLE,
-	     "HDMI transcoder function enabled, expecting disabled\n");
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN(dev, I915_READ(TRANS_DDI_FUNC_CTL(cpu_transcoder)) &
+		 TRANS_DDI_FUNC_ENABLE,
+		 "HDMI transcoder function enabled, expecting disabled\n");
 }
 
 struct intel_hdmi *enc_to_intel_hdmi(struct drm_encoder *encoder)
@@ -214,10 +216,12 @@  static void g4x_write_infoframe(struct intel_encoder *encoder,
 {
 	const u32 *data = frame;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val = I915_READ(VIDEO_DIP_CTL);
 	int i;
 
-	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
+	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
+		 "Writing DIP with CTL reg disabled\n");
 
 	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
 	val |= g4x_infoframe_index(type);
@@ -285,12 +289,14 @@  static void ibx_write_infoframe(struct intel_encoder *encoder,
 {
 	const u32 *data = frame;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
 	int i;
 
-	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
+	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
+		 "Writing DIP with CTL reg disabled\n");
 
 	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
 	val |= g4x_infoframe_index(type);
@@ -362,12 +368,14 @@  static void cpt_write_infoframe(struct intel_encoder *encoder,
 {
 	const u32 *data = frame;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	i915_reg_t reg = TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
 	int i;
 
-	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
+	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
+		 "Writing DIP with CTL reg disabled\n");
 
 	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
 	val |= g4x_infoframe_index(type);
@@ -438,12 +446,14 @@  static void vlv_write_infoframe(struct intel_encoder *encoder,
 {
 	const u32 *data = frame;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
 	u32 val = I915_READ(reg);
 	int i;
 
-	WARN(!(val & VIDEO_DIP_ENABLE), "Writing DIP with CTL reg disabled\n");
+	dev_WARN(dev, !(val & VIDEO_DIP_ENABLE),
+		 "Writing DIP with CTL reg disabled\n");
 
 	val &= ~(VIDEO_DIP_SELECT_MASK | 0xf); /* clear DIP data offset */
 	val |= g4x_infoframe_index(type);
@@ -514,6 +524,7 @@  static void hsw_write_infoframe(struct intel_encoder *encoder,
 {
 	const u32 *data = frame;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 	i915_reg_t ctl_reg = HSW_TVIDEO_DIP_CTL(cpu_transcoder);
 	int data_size;
@@ -522,7 +533,7 @@  static void hsw_write_infoframe(struct intel_encoder *encoder,
 
 	data_size = hsw_dip_data_size(dev_priv, type);
 
-	WARN_ON(len > data_size);
+	dev_WARN_ON(dev, len > data_size);
 
 	val &= ~hsw_infoframe_enable(type);
 	I915_WRITE(ctl_reg, val);
@@ -822,6 +833,7 @@  intel_hdmi_compute_drm_infoframe(struct intel_encoder *encoder,
 {
 	struct hdmi_drm_infoframe *frame = &crtc_state->infoframes.drm.drm;
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int ret;
 
 	if (!(INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)))
@@ -843,7 +855,7 @@  intel_hdmi_compute_drm_infoframe(struct intel_encoder *encoder,
 	}
 
 	ret = hdmi_drm_infoframe_check(frame);
-	if (WARN_ON(ret))
+	if (dev_WARN_ON(dev, ret))
 		return false;
 
 	return true;
@@ -1037,6 +1049,7 @@  static void ibx_set_infoframes(struct intel_encoder *encoder,
 			       const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct intel_digital_port *intel_dig_port = enc_to_dig_port(&encoder->base);
 	struct intel_hdmi *intel_hdmi = &intel_dig_port->hdmi;
@@ -1061,9 +1074,9 @@  static void ibx_set_infoframes(struct intel_encoder *encoder,
 	}
 
 	if (port != (val & VIDEO_DIP_PORT_MASK)) {
-		WARN(val & VIDEO_DIP_ENABLE,
-		     "DIP already enabled on port %c\n",
-		     (val & VIDEO_DIP_PORT_MASK) >> 29);
+		dev_WARN(dev, val & VIDEO_DIP_ENABLE,
+			 "DIP already enabled on port %c\n",
+			 (val & VIDEO_DIP_PORT_MASK) >> 29);
 		val &= ~VIDEO_DIP_PORT_MASK;
 		val |= port;
 	}
@@ -1145,6 +1158,7 @@  static void vlv_set_infoframes(struct intel_encoder *encoder,
 			       const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(&encoder->base);
 	i915_reg_t reg = VLV_TVIDEO_DIP_CTL(intel_crtc->pipe);
@@ -1168,9 +1182,9 @@  static void vlv_set_infoframes(struct intel_encoder *encoder,
 	}
 
 	if (port != (val & VIDEO_DIP_PORT_MASK)) {
-		WARN(val & VIDEO_DIP_ENABLE,
-		     "DIP already enabled on port %c\n",
-		     (val & VIDEO_DIP_PORT_MASK) >> 29);
+		dev_WARN(dev, val & VIDEO_DIP_ENABLE,
+			 "DIP already enabled on port %c\n",
+			 (val & VIDEO_DIP_PORT_MASK) >> 29);
 		val &= ~VIDEO_DIP_PORT_MASK;
 		val |= port;
 	}
@@ -2994,6 +3008,7 @@  static u8 cnp_port_to_ddc_pin(struct drm_i915_private *dev_priv,
 
 static u8 icl_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	enum phy phy = intel_port_to_phy(dev_priv, port);
 
 	if (intel_phy_is_combo(dev_priv, phy))
@@ -3001,7 +3016,7 @@  static u8 icl_port_to_ddc_pin(struct drm_i915_private *dev_priv, enum port port)
 	else if (intel_phy_is_tc(dev_priv, phy))
 		return GMBUS_PIN_9_TC1_ICP + intel_port_to_tc(dev_priv, port);
 
-	WARN(1, "Unknown port:%c\n", port_name(port));
+	dev_WARN(dev, 1, "Unknown port:%c\n", port_name(port));
 	return GMBUS_PIN_2_BXT;
 }
 
diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c
index 3a5e0db8888a..5924f0f176cc 100644
--- a/drivers/gpu/drm/i915/display/intel_hotplug.c
+++ b/drivers/gpu/drm/i915/display/intel_hotplug.c
@@ -449,6 +449,7 @@  static void i915_hotplug_work_func(struct work_struct *work)
 void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
 			   u32 pin_mask, u32 long_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_encoder *encoder;
 	bool storm_detected = false;
 	bool queue_dig = false, queue_hp = false;
@@ -509,8 +510,9 @@  void intel_hpd_irq_handler(struct drm_i915_private *dev_priv,
 			 * hotplug bits itself. So only WARN about unexpected
 			 * interrupts on saner platforms.
 			 */
-			WARN_ONCE(!HAS_GMCH(dev_priv),
-				  "Received HPD interrupt on pin %d although disabled\n", pin);
+			dev_WARN_ONCE(dev, !HAS_GMCH(dev_priv),
+				      "Received HPD interrupt on pin %d although disabled\n",
+				      pin);
 			continue;
 		}
 
diff --git a/drivers/gpu/drm/i915/display/intel_lpe_audio.c b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
index 0b67f7887cd0..3b0d63874136 100644
--- a/drivers/gpu/drm/i915/display/intel_lpe_audio.c
+++ b/drivers/gpu/drm/i915/display/intel_lpe_audio.c
@@ -164,9 +164,10 @@  static struct irq_chip lpe_audio_irqchip = {
 
 static int lpe_audio_irq_init(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	int irq = dev_priv->lpe_audio.irq;
 
-	WARN_ON(!intel_irqs_enabled(dev_priv));
+	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
 	irq_set_chip_and_handler_name(irq,
 				&lpe_audio_irqchip,
 				handle_simple_irq,
diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
index a320b8d76a64..b6f5828cd3aa 100644
--- a/drivers/gpu/drm/i915/display/intel_lvds.c
+++ b/drivers/gpu/drm/i915/display/intel_lvds.c
@@ -201,10 +201,11 @@  static void intel_lvds_pps_get_hw_state(struct drm_i915_private *dev_priv,
 static void intel_lvds_pps_init_hw(struct drm_i915_private *dev_priv,
 				   struct intel_lvds_pps *pps)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
 	val = I915_READ(PP_CONTROL(0));
-	WARN_ON((val & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS);
+	dev_WARN_ON(dev, (val & PANEL_UNLOCK_MASK) != PANEL_UNLOCK_REGS);
 	if (pps->powerdown_on_reset)
 		val |= PANEL_POWER_RESET;
 	I915_WRITE(PP_CONTROL(0), val);
diff --git a/drivers/gpu/drm/i915/display/intel_opregion.c b/drivers/gpu/drm/i915/display/intel_opregion.c
index e59b4992ba1b..0b6fe01c743d 100644
--- a/drivers/gpu/drm/i915/display/intel_opregion.c
+++ b/drivers/gpu/drm/i915/display/intel_opregion.c
@@ -365,6 +365,7 @@  int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 				  bool enable)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 parm = 0;
 	u32 type = 0;
 	u32 port;
@@ -403,8 +404,8 @@  int intel_opregion_notify_encoder(struct intel_encoder *intel_encoder,
 		type = DISPLAY_TYPE_INTERNAL_FLAT_PANEL;
 		break;
 	default:
-		WARN_ONCE(1, "unsupported intel_encoder type %d\n",
-			  intel_encoder->type);
+		dev_WARN_ONCE(dev, 1, "unsupported intel_encoder type %d\n",
+			      intel_encoder->type);
 		return -EINVAL;
 	}
 
@@ -894,6 +895,7 @@  static int intel_load_vbt_firmware(struct drm_i915_private *dev_priv)
 
 int intel_opregion_setup(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_opregion *opregion = &dev_priv->opregion;
 	struct pci_dev *pdev = dev_priv->drm.pdev;
 	u32 asls, mboxes;
@@ -984,7 +986,7 @@  int intel_opregion_setup(struct drm_i915_private *dev_priv)
 		 */
 		if (opregion->header->over.major > 2 ||
 		    opregion->header->over.minor >= 1) {
-			WARN_ON(rvda < OPREGION_SIZE);
+			dev_WARN_ON(dev, rvda < OPREGION_SIZE);
 
 			rvda += asls;
 		}
diff --git a/drivers/gpu/drm/i915/display/intel_overlay.c b/drivers/gpu/drm/i915/display/intel_overlay.c
index e40c3a0e2cd7..d30389303f5f 100644
--- a/drivers/gpu/drm/i915/display/intel_overlay.c
+++ b/drivers/gpu/drm/i915/display/intel_overlay.c
@@ -244,10 +244,11 @@  alloc_request(struct intel_overlay *overlay, void (*fn)(struct intel_overlay *))
 static int intel_overlay_on(struct intel_overlay *overlay)
 {
 	struct drm_i915_private *dev_priv = overlay->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_request *rq;
 	u32 *cs;
 
-	WARN_ON(overlay->active);
+	dev_WARN_ON(dev, overlay->active);
 
 	rq = alloc_request(overlay, NULL);
 	if (IS_ERR(rq))
@@ -311,11 +312,12 @@  static int intel_overlay_continue(struct intel_overlay *overlay,
 				  bool load_polyphase_filter)
 {
 	struct drm_i915_private *dev_priv = overlay->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_request *rq;
 	u32 flip_addr = overlay->flip_addr;
 	u32 tmp, *cs;
 
-	WARN_ON(!overlay->active);
+	dev_WARN_ON(dev, !overlay->active);
 
 	if (load_polyphase_filter)
 		flip_addr |= OFC_UPDATE;
@@ -753,13 +755,15 @@  static int intel_overlay_do_put_image(struct intel_overlay *overlay,
 {
 	struct overlay_registers __iomem *regs = overlay->regs;
 	struct drm_i915_private *dev_priv = overlay->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 swidth, swidthsw, sheight, ostride;
 	enum pipe pipe = overlay->crtc->pipe;
 	bool scale_changed = false;
 	struct i915_vma *vma;
 	int ret, tmp_width;
 
-	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
+	dev_WARN_ON(dev,
+		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
 
 	ret = intel_overlay_release_old_vid(overlay);
 	if (ret != 0)
@@ -855,9 +859,11 @@  static int intel_overlay_do_put_image(struct intel_overlay *overlay,
 int intel_overlay_switch_off(struct intel_overlay *overlay)
 {
 	struct drm_i915_private *dev_priv = overlay->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 	int ret;
 
-	WARN_ON(!drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
+	dev_WARN_ON(dev,
+		    !drm_modeset_is_locked(&dev_priv->drm.mode_config.connection_mutex));
 
 	ret = intel_overlay_recover_from_interrupt(overlay);
 	if (ret != 0)
@@ -1378,6 +1384,7 @@  void intel_overlay_setup(struct drm_i915_private *dev_priv)
 
 void intel_overlay_cleanup(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_overlay *overlay;
 
 	overlay = fetch_and_zero(&dev_priv->overlay);
@@ -1389,7 +1396,7 @@  void intel_overlay_cleanup(struct drm_i915_private *dev_priv)
 	 * Furthermore modesetting teardown happens beforehand so the
 	 * hardware should be off already.
 	 */
-	WARN_ON(overlay->active);
+	dev_WARN_ON(dev, overlay->active);
 
 	i915_gem_object_put(overlay->reg_bo);
 	i915_active_fini(&overlay->last_flip);
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 7b3ec6eb3382..c108e4934fbf 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -379,6 +379,7 @@  void intel_gmch_panel_fitting(struct intel_crtc *intel_crtc,
 			      int fitting_mode)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 pfit_control = 0, pfit_pgm_ratios = 0, border = 0;
 	struct drm_display_mode *adjusted_mode = &pipe_config->hw.adjusted_mode;
 
@@ -423,7 +424,7 @@  void intel_gmch_panel_fitting(struct intel_crtc *intel_crtc,
 		}
 		break;
 	default:
-		WARN(1, "bad panel fit mode: %d\n", fitting_mode);
+		dev_WARN(dev, 1, "bad panel fit mode: %d\n", fitting_mode);
 		return;
 	}
 
@@ -518,9 +519,10 @@  static u32 intel_panel_compute_brightness(struct intel_connector *connector,
 					  u32 val)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 
-	WARN_ON(panel->backlight.max == 0);
+	dev_WARN_ON(dev, panel->backlight.max == 0);
 
 	if (i915_modparams.invert_brightness < 0)
 		return val;
@@ -569,7 +571,9 @@  static u32 i9xx_get_backlight(struct intel_connector *connector)
 
 static u32 _vlv_get_backlight(struct drm_i915_private *dev_priv, enum pipe pipe)
 {
-	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
+	struct device *dev = i915_to_dev(dev_priv);
+
+	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
 		return 0;
 
 	return I915_READ(VLV_BLC_PWM_CTL(pipe)) & BACKLIGHT_DUTY_CYCLE_MASK;
@@ -623,10 +627,11 @@  static void i9xx_set_backlight(const struct drm_connector_state *conn_state, u32
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 	u32 tmp, mask;
 
-	WARN_ON(panel->backlight.max == 0);
+	dev_WARN_ON(dev, panel->backlight.max == 0);
 
 	if (panel->backlight.combination_mode) {
 		u8 lbpc;
@@ -695,6 +700,7 @@  void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 	u32 hw_level;
 
@@ -709,7 +715,7 @@  void intel_panel_set_backlight_acpi(const struct drm_connector_state *conn_state
 
 	mutex_lock(&dev_priv->backlight_lock);
 
-	WARN_ON(panel->backlight.max == 0);
+	dev_WARN_ON(dev, panel->backlight.max == 0);
 
 	hw_level = clamp_user_to_hw(connector, user_level, user_max);
 	panel->backlight.level = hw_level;
@@ -1229,6 +1235,7 @@  static void intel_panel_set_backlight(const struct drm_connector_state *conn_sta
 {
 	struct intel_connector *connector = to_intel_connector(conn_state->connector);
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 	u32 hw_level;
 
@@ -1237,7 +1244,7 @@  static void intel_panel_set_backlight(const struct drm_connector_state *conn_sta
 
 	mutex_lock(&dev_priv->backlight_lock);
 
-	WARN_ON(panel->backlight.max == 0);
+	dev_WARN_ON(dev, panel->backlight.max == 0);
 
 	hw_level = scale_user_to_hw(connector, user_level, user_max);
 	panel->backlight.level = hw_level;
@@ -1543,10 +1550,11 @@  static u32 get_backlight_max_vbt(struct intel_connector *connector)
 static u32 get_backlight_min_vbt(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 	int min;
 
-	WARN_ON(panel->backlight.max == 0);
+	dev_WARN_ON(dev, panel->backlight.max == 0);
 
 	/*
 	 * XXX: If the vbt value is 255, it makes min equal to max, which leads
@@ -1728,10 +1736,11 @@  static int i965_setup_backlight(struct intel_connector *connector, enum pipe unu
 static int vlv_setup_backlight(struct intel_connector *connector, enum pipe pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_panel *panel = &connector->panel;
 	u32 ctl, ctl2, val;
 
-	if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
+	if (dev_WARN_ON(dev, pipe != PIPE_A && pipe != PIPE_B))
 		return -ENODEV;
 
 	ctl2 = I915_READ(VLV_BLC_PWM_CTL2(pipe));
@@ -1907,6 +1916,7 @@  void intel_panel_update_backlight(struct intel_encoder *encoder,
 int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_connector *intel_connector = to_intel_connector(connector);
 	struct intel_panel *panel = &intel_connector->panel;
 	int ret;
@@ -1921,7 +1931,7 @@  int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
 	}
 
 	/* ensure intel_panel has been initialized first */
-	if (WARN_ON(!panel->backlight.setup))
+	if (dev_WARN_ON(dev, !panel->backlight.setup))
 		return -ENODEV;
 
 	/* set level and max in panel struct */
diff --git a/drivers/gpu/drm/i915/display/intel_pipe_crc.c b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
index 283416c73205..4e4b44323195 100644
--- a/drivers/gpu/drm/i915/display/intel_pipe_crc.c
+++ b/drivers/gpu/drm/i915/display/intel_pipe_crc.c
@@ -288,6 +288,7 @@  static void
 intel_crtc_crc_setup_workarounds(struct intel_crtc *crtc, bool enable)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc_state *pipe_config;
 	struct drm_atomic_state *state;
 	struct drm_modeset_acquire_ctx ctx;
@@ -329,7 +330,8 @@  intel_crtc_crc_setup_workarounds(struct intel_crtc *crtc, bool enable)
 
 	drm_atomic_state_put(state);
 unlock:
-	WARN(ret, "Toggling workaround to %i returns %i\n", enable, ret);
+	dev_WARN(dev, ret, "Toggling workaround to %i returns %i\n", enable,
+		 ret);
 	drm_modeset_drop_locks(&ctx);
 	drm_modeset_acquire_fini(&ctx);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 16e9ff47d519..aa283cf92d50 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -76,9 +76,10 @@  static bool psr_global_enabled(u32 debug)
 static bool intel_psr2_enabled(struct drm_i915_private *dev_priv,
 			       const struct intel_crtc_state *crtc_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	/* Cannot enable DSC and PSR2 simultaneously */
-	WARN_ON(crtc_state->dsc.compression_enable &&
-		crtc_state->has_psr2);
+	dev_WARN_ON(dev, crtc_state->dsc.compression_enable &&
+		    crtc_state->has_psr2);
 
 	switch (dev_priv->psr.debug & I915_PSR_DEBUG_MODE_MASK) {
 	case I915_PSR_DEBUG_DISABLE:
@@ -735,12 +736,17 @@  void intel_psr_compute_config(struct intel_dp *intel_dp,
 static void intel_psr_activate(struct intel_dp *intel_dp)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (transcoder_has_psr2(dev_priv, dev_priv->psr.transcoder))
-		WARN_ON(I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder)) & EDP_PSR2_ENABLE);
-
-	WARN_ON(I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder)) & EDP_PSR_ENABLE);
-	WARN_ON(dev_priv->psr.active);
+		dev_WARN_ON(dev,
+			    I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder)) &
+			    EDP_PSR2_ENABLE);
+
+	dev_WARN_ON(dev,
+		    I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder)) &
+		    EDP_PSR_ENABLE);
+	dev_WARN_ON(dev, dev_priv->psr.active);
 	lockdep_assert_held(&dev_priv->psr.lock);
 
 	/* psr1 and psr2 are mutually exclusive.*/
@@ -797,10 +803,11 @@  static void intel_psr_enable_source(struct intel_dp *intel_dp,
 static void intel_psr_enable_locked(struct drm_i915_private *dev_priv,
 				    const struct intel_crtc_state *crtc_state)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dp *intel_dp = dev_priv->psr.dp;
 	u32 val;
 
-	WARN_ON(dev_priv->psr.enabled);
+	dev_WARN_ON(dev, dev_priv->psr.enabled);
 
 	dev_priv->psr.psr2_enabled = intel_psr2_enabled(dev_priv, crtc_state);
 	dev_priv->psr.busy_frontbuffer_bits = 0;
@@ -851,14 +858,15 @@  void intel_psr_enable(struct intel_dp *intel_dp,
 		      const struct intel_crtc_state *crtc_state)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (!crtc_state->has_psr)
 		return;
 
-	if (WARN_ON(!CAN_PSR(dev_priv)))
+	if (dev_WARN_ON(dev, !CAN_PSR(dev_priv)))
 		return;
 
-	WARN_ON(dev_priv->drrs.dp);
+	dev_WARN_ON(dev, dev_priv->drrs.dp);
 
 	mutex_lock(&dev_priv->psr.lock);
 
@@ -875,16 +883,17 @@  void intel_psr_enable(struct intel_dp *intel_dp,
 
 static void intel_psr_exit(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
 	if (!dev_priv->psr.active) {
 		if (transcoder_has_psr2(dev_priv, dev_priv->psr.transcoder)) {
 			val = I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder));
-			WARN_ON(val & EDP_PSR2_ENABLE);
+			dev_WARN_ON(dev, val & EDP_PSR2_ENABLE);
 		}
 
 		val = I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder));
-		WARN_ON(val & EDP_PSR_ENABLE);
+		dev_WARN_ON(dev, val & EDP_PSR_ENABLE);
 
 		return;
 	}
@@ -892,12 +901,12 @@  static void intel_psr_exit(struct drm_i915_private *dev_priv)
 	if (dev_priv->psr.psr2_enabled) {
 		tgl_disallow_dc3co_on_psr2_exit(dev_priv);
 		val = I915_READ(EDP_PSR2_CTL(dev_priv->psr.transcoder));
-		WARN_ON(!(val & EDP_PSR2_ENABLE));
+		dev_WARN_ON(dev, !(val & EDP_PSR2_ENABLE));
 		val &= ~EDP_PSR2_ENABLE;
 		I915_WRITE(EDP_PSR2_CTL(dev_priv->psr.transcoder), val);
 	} else {
 		val = I915_READ(EDP_PSR_CTL(dev_priv->psr.transcoder));
-		WARN_ON(!(val & EDP_PSR_ENABLE));
+		dev_WARN_ON(dev, !(val & EDP_PSR_ENABLE));
 		val &= ~EDP_PSR_ENABLE;
 		I915_WRITE(EDP_PSR_CTL(dev_priv->psr.transcoder), val);
 	}
@@ -953,11 +962,12 @@  void intel_psr_disable(struct intel_dp *intel_dp,
 		       const struct intel_crtc_state *old_crtc_state)
 {
 	struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (!old_crtc_state->has_psr)
 		return;
 
-	if (WARN_ON(!CAN_PSR(dev_priv)))
+	if (dev_WARN_ON(dev, !CAN_PSR(dev_priv)))
 		return;
 
 	mutex_lock(&dev_priv->psr.lock);
diff --git a/drivers/gpu/drm/i915/display/intel_sdvo.c b/drivers/gpu/drm/i915/display/intel_sdvo.c
index 9b510a4cf8c5..2ceb0c72db33 100644
--- a/drivers/gpu/drm/i915/display/intel_sdvo.c
+++ b/drivers/gpu/drm/i915/display/intel_sdvo.c
@@ -1429,6 +1429,7 @@  static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder,
 				  const struct drm_connector_state *conn_state)
 {
 	struct drm_i915_private *dev_priv = to_i915(intel_encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
 	const struct intel_sdvo_connector_state *sdvo_state =
@@ -1499,7 +1500,7 @@  static void intel_sdvo_pre_enable(struct intel_encoder *intel_encoder,
 
 	switch (crtc_state->pixel_multiplier) {
 	default:
-		WARN(1, "unknown pixel multiplier specified\n");
+		dev_WARN(dev, 1, "unknown pixel multiplier specified\n");
 		/* fall through */
 	case 1: rate = SDVO_CLOCK_RATE_MULT_1X; break;
 	case 2: rate = SDVO_CLOCK_RATE_MULT_2X; break;
@@ -3229,10 +3230,11 @@  intel_sdvo_init_ddc_proxy(struct intel_sdvo *sdvo,
 static void assert_sdvo_port_valid(const struct drm_i915_private *dev_priv,
 				   enum port port)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (HAS_PCH_SPLIT(dev_priv))
-		WARN_ON(port != PORT_B);
+		dev_WARN_ON(dev, port != PORT_B);
 	else
-		WARN_ON(port != PORT_B && port != PORT_C);
+		dev_WARN_ON(dev, port != PORT_B && port != PORT_C);
 }
 
 bool intel_sdvo_init(struct drm_i915_private *dev_priv,
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index 3f7b8f2ff671..58040d4ce256 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -83,6 +83,7 @@  void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
 {
 	struct intel_crtc *crtc = to_intel_crtc(new_crtc_state->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct drm_display_mode *adjusted_mode = &new_crtc_state->hw.adjusted_mode;
 	long timeout = msecs_to_jiffies_timeout(1);
 	int scanline, min, max, vblank_start;
@@ -104,7 +105,7 @@  void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state)
 	if (min <= 0 || max <= 0)
 		goto irq_disable;
 
-	if (WARN_ON(drm_crtc_vblank_get(&crtc->base)))
+	if (dev_WARN_ON(dev, drm_crtc_vblank_get(&crtc->base)))
 		goto irq_disable;
 
 	/*
@@ -196,6 +197,7 @@  void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
 	u32 end_vbl_count = intel_crtc_get_vblank_counter(crtc);
 	ktime_t end_vbl_time = ktime_get();
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 
 	trace_intel_pipe_update_end(crtc, end_vbl_count, scanline_end);
 
@@ -204,7 +206,7 @@  void intel_pipe_update_end(struct intel_crtc_state *new_crtc_state)
 	 * event outside of the critical section - the spinlock might spin for a
 	 * while ... */
 	if (new_crtc_state->uapi.event) {
-		WARN_ON(drm_crtc_vblank_get(&crtc->base) != 0);
+		dev_WARN_ON(dev, drm_crtc_vblank_get(&crtc->base) != 0);
 
 		spin_lock(&crtc->base.dev->event_lock);
 		drm_crtc_arm_vblank_event(&crtc->base,
diff --git a/drivers/gpu/drm/i915/display/intel_tc.c b/drivers/gpu/drm/i915/display/intel_tc.c
index 7773169b7331..d5e3e4e6c6d2 100644
--- a/drivers/gpu/drm/i915/display/intel_tc.c
+++ b/drivers/gpu/drm/i915/display/intel_tc.c
@@ -55,13 +55,14 @@  tc_port_load_fia_params(struct drm_i915_private *i915,
 u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = &i915->uncore;
 	u32 lane_mask;
 
 	lane_mask = intel_uncore_read(uncore,
 				      PORT_TX_DFLEXDPSP(dig_port->tc_phy_fia));
 
-	WARN_ON(lane_mask == 0xffffffff);
+	dev_WARN_ON(dev, lane_mask == 0xffffffff);
 
 	lane_mask &= DP_LANE_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx);
 	return lane_mask >> DP_LANE_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx);
@@ -70,13 +71,14 @@  u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port)
 u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = &i915->uncore;
 	u32 pin_mask;
 
 	pin_mask = intel_uncore_read(uncore,
 				     PORT_TX_DFLEXPA1(dig_port->tc_phy_fia));
 
-	WARN_ON(pin_mask == 0xffffffff);
+	dev_WARN_ON(dev, pin_mask == 0xffffffff);
 
 	return (pin_mask & DP_PIN_ASSIGNMENT_MASK(dig_port->tc_phy_fia_idx)) >>
 	       DP_PIN_ASSIGNMENT_SHIFT(dig_port->tc_phy_fia_idx);
@@ -116,11 +118,12 @@  void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port,
 				      int required_lanes)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	bool lane_reversal = dig_port->saved_port_bits & DDI_BUF_PORT_REVERSAL;
 	struct intel_uncore *uncore = &i915->uncore;
 	u32 val;
 
-	WARN_ON(lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
+	dev_WARN_ON(dev, lane_reversal && dig_port->tc_mode != TC_PORT_LEGACY);
 
 	val = intel_uncore_read(uncore,
 				PORT_TX_DFLEXDPMLE1(dig_port->tc_phy_fia));
@@ -172,6 +175,7 @@  static void tc_port_fixup_legacy_flag(struct intel_digital_port *dig_port,
 static u32 tc_port_live_status_mask(struct intel_digital_port *dig_port)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	enum tc_port tc_port = intel_port_to_tc(i915, dig_port->base.port);
 	struct intel_uncore *uncore = &i915->uncore;
 	u32 mask = 0;
@@ -195,7 +199,7 @@  static u32 tc_port_live_status_mask(struct intel_digital_port *dig_port)
 		mask |= BIT(TC_PORT_LEGACY);
 
 	/* The sink can be connected only in a single mode. */
-	if (!WARN_ON(hweight32(mask) > 1))
+	if (!dev_WARN_ON(dev, hweight32(mask) > 1))
 		tc_port_fixup_legacy_flag(dig_port, mask);
 
 	return mask;
@@ -406,11 +410,13 @@  static void intel_tc_port_reset_mode(struct intel_digital_port *dig_port,
 				     int required_lanes)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	enum tc_port_mode old_tc_mode = dig_port->tc_mode;
 
 	intel_display_power_flush_work(i915);
-	WARN_ON(intel_display_power_is_enabled(i915,
-					       intel_aux_power_domain(dig_port)));
+	dev_WARN_ON(dev,
+		    intel_display_power_is_enabled(i915,
+					   intel_aux_power_domain(dig_port)));
 
 	icl_tc_phy_disconnect(dig_port);
 	icl_tc_phy_connect(dig_port, required_lanes);
@@ -493,6 +499,7 @@  static void __intel_tc_port_lock(struct intel_digital_port *dig_port,
 				 int required_lanes)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	intel_wakeref_t wakeref;
 
 	wakeref = intel_display_power_get(i915, POWER_DOMAIN_DISPLAY_CORE);
@@ -503,7 +510,7 @@  static void __intel_tc_port_lock(struct intel_digital_port *dig_port,
 	    intel_tc_port_needs_reset(dig_port))
 		intel_tc_port_reset_mode(dig_port, required_lanes);
 
-	WARN_ON(dig_port->tc_lock_wakeref);
+	dev_WARN_ON(dev, dig_port->tc_lock_wakeref);
 	dig_port->tc_lock_wakeref = wakeref;
 }
 
@@ -547,10 +554,11 @@  void intel_tc_port_put_link(struct intel_digital_port *dig_port)
 void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy)
 {
 	struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev);
+	struct device *dev = i915_to_dev(i915);
 	enum port port = dig_port->base.port;
 	enum tc_port tc_port = intel_port_to_tc(i915, port);
 
-	if (WARN_ON(tc_port == PORT_TC_NONE))
+	if (dev_WARN_ON(dev, tc_port == PORT_TC_NONE))
 		return;
 
 	snprintf(dig_port->tc_port_name, sizeof(dig_port->tc_port_name),
diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 6bab08db5d75..44fa8f4d32db 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -363,6 +363,7 @@  static bool is_pipe_dsc(const struct intel_crtc_state *crtc_state)
 {
 	const struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	const struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(i915);
 	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 
 	if (INTEL_GEN(i915) >= 12)
@@ -374,7 +375,7 @@  static bool is_pipe_dsc(const struct intel_crtc_state *crtc_state)
 		return false;
 
 	/* There's no pipe A DSC engine on ICL */
-	WARN_ON(crtc->pipe == PIPE_A);
+	dev_WARN_ON(dev, crtc->pipe == PIPE_A);
 
 	return true;
 }
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 70ab378803c4..18feef4dbe13 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -962,6 +962,7 @@  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 				   enum pipe *pipe)
 {
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(&encoder->base);
 	intel_wakeref_t wakeref;
 	enum port port;
@@ -1014,7 +1015,7 @@  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 			tmp &= BXT_PIPE_SELECT_MASK;
 			tmp >>= BXT_PIPE_SELECT_SHIFT;
 
-			if (WARN_ON(tmp > PIPE_C))
+			if (dev_WARN_ON(dev, tmp > PIPE_C))
 				continue;
 
 			*pipe = tmp;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_pm.c b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
index c8264eb036bf..7116f5764cf9 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_pm.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_pm.c
@@ -41,6 +41,7 @@  static struct drm_i915_gem_object *first_mm_object(struct list_head *list)
 
 void i915_gem_suspend_late(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct drm_i915_gem_object *obj;
 	struct list_head *phases[] = {
 		&i915->mm.shrink_list,
@@ -85,7 +86,7 @@  void i915_gem_suspend_late(struct drm_i915_private *i915)
 			spin_unlock_irqrestore(&i915->mm.obj_lock, flags);
 
 			i915_gem_object_lock(obj);
-			WARN_ON(i915_gem_object_set_to_gtt_domain(obj, false));
+			dev_WARN_ON(dev, i915_gem_object_set_to_gtt_domain(obj, false));
 			i915_gem_object_unlock(obj);
 			i915_gem_object_put(obj);
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
index a2a980d9d241..6ca29707ef9a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c
@@ -28,6 +28,7 @@  static void check_release_pagevec(struct pagevec *pvec)
 static int shmem_get_pages(struct drm_i915_gem_object *obj)
 {
 	struct drm_i915_private *i915 = to_i915(obj->base.dev);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_memory_region *mem = obj->mm.region;
 	const unsigned long page_count = obj->base.size / PAGE_SIZE;
 	unsigned long i;
@@ -148,7 +149,8 @@  static int shmem_get_pages(struct drm_i915_gem_object *obj)
 		last_pfn = page_to_pfn(page);
 
 		/* Check that the i965g/gm workaround works. */
-		WARN_ON((gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
+		dev_WARN_ON(dev,
+			    (gfp & __GFP_DMA32) && (last_pfn >= 0x00100000UL));
 	}
 	if (sg) { /* loop terminated early; short sg table */
 		sg_page_sizes |= sg->length;
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index f7e4b39c734f..09e8db629276 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -399,23 +399,28 @@  i915_gem_shrinker_vmap(struct notifier_block *nb, unsigned long event, void *ptr
 
 void i915_gem_driver_register__shrinker(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	i915->mm.shrinker.scan_objects = i915_gem_shrinker_scan;
 	i915->mm.shrinker.count_objects = i915_gem_shrinker_count;
 	i915->mm.shrinker.seeks = DEFAULT_SEEKS;
 	i915->mm.shrinker.batch = 4096;
-	WARN_ON(register_shrinker(&i915->mm.shrinker));
+	dev_WARN_ON(dev, register_shrinker(&i915->mm.shrinker));
 
 	i915->mm.oom_notifier.notifier_call = i915_gem_shrinker_oom;
-	WARN_ON(register_oom_notifier(&i915->mm.oom_notifier));
+	dev_WARN_ON(dev, register_oom_notifier(&i915->mm.oom_notifier));
 
 	i915->mm.vmap_notifier.notifier_call = i915_gem_shrinker_vmap;
-	WARN_ON(register_vmap_purge_notifier(&i915->mm.vmap_notifier));
+	dev_WARN_ON(dev,
+		    register_vmap_purge_notifier(&i915->mm.vmap_notifier));
 }
 
 void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915)
 {
-	WARN_ON(unregister_vmap_purge_notifier(&i915->mm.vmap_notifier));
-	WARN_ON(unregister_oom_notifier(&i915->mm.oom_notifier));
+	struct device *dev = i915_to_dev(i915);
+
+	dev_WARN_ON(dev,
+		    unregister_vmap_purge_notifier(&i915->mm.vmap_notifier));
+	dev_WARN_ON(dev, unregister_oom_notifier(&i915->mm.oom_notifier));
 	unregister_shrinker(&i915->mm.shrinker);
 }
 
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
index 451f3078d60d..75cdb869a312 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_stolen.c
@@ -165,6 +165,7 @@  static void g4x_get_stolen_reserved(struct drm_i915_private *i915,
 				    resource_size_t *base,
 				    resource_size_t *size)
 {
+	struct device *dev = i915_to_dev(i915);
 	u32 reg_val = intel_uncore_read(uncore,
 					IS_GM45(i915) ?
 					CTG_STOLEN_RESERVED :
@@ -181,14 +182,14 @@  static void g4x_get_stolen_reserved(struct drm_i915_private *i915,
 	 * Whether ILK really reuses the ELK register for this is unclear.
 	 * Let's see if we catch anyone with this supposedly enabled on ILK.
 	 */
-	WARN(IS_GEN(i915, 5), "ILK stolen reserved found? 0x%08x\n",
-	     reg_val);
+	dev_WARN(dev, IS_GEN(i915, 5), "ILK stolen reserved found? 0x%08x\n",
+		 reg_val);
 
 	if (!(reg_val & G4X_STOLEN_RESERVED_ADDR2_MASK))
 		return;
 
 	*base = (reg_val & G4X_STOLEN_RESERVED_ADDR2_MASK) << 16;
-	WARN_ON((reg_val & G4X_STOLEN_RESERVED_ADDR1_MASK) < *base);
+	dev_WARN_ON(dev, (reg_val & G4X_STOLEN_RESERVED_ADDR1_MASK) < *base);
 
 	*size = stolen_top - *base;
 }
@@ -680,6 +681,7 @@  i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
 					       resource_size_t gtt_offset,
 					       resource_size_t size)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct intel_memory_region *mem = i915->mm.regions[INTEL_REGION_STOLEN];
 	struct i915_ggtt *ggtt = &i915->ggtt;
 	struct drm_i915_gem_object *obj;
@@ -694,9 +696,10 @@  i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *i915,
 			 &stolen_offset, &gtt_offset, &size);
 
 	/* KISS and expect everything to be page-aligned */
-	if (WARN_ON(size == 0) ||
-	    WARN_ON(!IS_ALIGNED(size, I915_GTT_PAGE_SIZE)) ||
-	    WARN_ON(!IS_ALIGNED(stolen_offset, I915_GTT_MIN_ALIGNMENT)))
+	if (dev_WARN_ON(dev, size == 0) ||
+	    dev_WARN_ON(dev, !IS_ALIGNED(size, I915_GTT_PAGE_SIZE)) ||
+	    dev_WARN_ON(dev,
+			!IS_ALIGNED(stolen_offset, I915_GTT_MIN_ALIGNMENT)))
 		return ERR_PTR(-EINVAL);
 
 	stolen = kzalloc(sizeof(*stolen), GFP_KERNEL);
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
index 825c94e7ca0b..37869515acff 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_cs.c
@@ -426,15 +426,16 @@  void intel_engines_free(struct intel_gt *gt)
 int intel_engines_init_mmio(struct intel_gt *gt)
 {
 	struct drm_i915_private *i915 = gt->i915;
+	struct device *dev = i915_to_dev(i915);
 	struct intel_device_info *device_info = mkwrite_device_info(i915);
 	const unsigned int engine_mask = INTEL_INFO(i915)->engine_mask;
 	unsigned int mask = 0;
 	unsigned int i;
 	int err;
 
-	WARN_ON(engine_mask == 0);
-	WARN_ON(engine_mask &
-		GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES));
+	dev_WARN_ON(dev, engine_mask == 0);
+	dev_WARN_ON(dev, engine_mask &
+		    GENMASK(BITS_PER_TYPE(mask) - 1, I915_NUM_ENGINES));
 
 	if (i915_inject_probe_failure(i915))
 		return -ENODEV;
@@ -455,7 +456,7 @@  int intel_engines_init_mmio(struct intel_gt *gt)
 	 * are added to the driver by a warning and disabling the forgotten
 	 * engines.
 	 */
-	if (WARN_ON(mask != engine_mask))
+	if (dev_WARN_ON(dev, mask != engine_mask))
 		device_info->engine_mask = mask;
 
 	RUNTIME_INFO(i915)->num_engines = hweight32(mask);
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c b/drivers/gpu/drm/i915/gt/intel_engine_user.c
index 9e7f12bef828..2760982d14f7 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
@@ -185,6 +185,7 @@  static void add_legacy_ring(struct legacy_ring *ring,
 
 void intel_engines_driver_register(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct legacy_ring ring = {};
 	u8 uabi_instances[4] = {};
 	struct list_head *it, *next;
@@ -278,7 +279,7 @@  void intel_engines_driver_register(struct drm_i915_private *i915)
 			}
 		}
 
-		if (WARN(errors, "Invalid UABI engine mapping found"))
+		if (dev_WARN(dev, errors, "Invalid UABI engine mapping found"))
 			i915->uabi_engines = RB_ROOT;
 	}
 
diff --git a/drivers/gpu/drm/i915/gt/intel_mocs.c b/drivers/gpu/drm/i915/gt/intel_mocs.c
index eeef90b55c64..847ed933fe59 100644
--- a/drivers/gpu/drm/i915/gt/intel_mocs.c
+++ b/drivers/gpu/drm/i915/gt/intel_mocs.c
@@ -283,6 +283,7 @@  static const struct drm_i915_mocs_entry icl_mocs_table[] = {
 static bool get_mocs_settings(const struct drm_i915_private *i915,
 			      struct drm_i915_mocs_table *table)
 {
+	struct device *dev = i915_to_dev(i915);
 	if (INTEL_GEN(i915) >= 12) {
 		table->size  = ARRAY_SIZE(tgl_mocs_table);
 		table->table = tgl_mocs_table;
@@ -300,8 +301,8 @@  static bool get_mocs_settings(const struct drm_i915_private *i915,
 		table->n_entries = GEN9_NUM_MOCS_ENTRIES;
 		table->table = broxton_mocs_table;
 	} else {
-		WARN_ONCE(INTEL_GEN(i915) >= 9,
-			  "Platform that should have a MOCS table does not.\n");
+		dev_WARN_ONCE(dev, INTEL_GEN(i915) >= 9,
+			      "Platform that should have a MOCS table does not.\n");
 		return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/gt/intel_rc6.c b/drivers/gpu/drm/i915/gt/intel_rc6.c
index 9e303c29d6e3..2c168cd13ee2 100644
--- a/drivers/gpu/drm/i915/gt/intel_rc6.c
+++ b/drivers/gpu/drm/i915/gt/intel_rc6.c
@@ -694,6 +694,7 @@  static u64 vlv_residency_raw(struct intel_uncore *uncore, const i915_reg_t reg)
 u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, const i915_reg_t reg)
 {
 	struct drm_i915_private *i915 = rc6_to_i915(rc6);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = rc6_to_uncore(rc6);
 	u64 time_hw, prev_hw, overflow_hw;
 	unsigned int fw_domains;
@@ -713,7 +714,7 @@  u64 intel_rc6_residency_ns(struct intel_rc6 *rc6, const i915_reg_t reg)
 	 */
 	i = (i915_mmio_reg_offset(reg) -
 	     i915_mmio_reg_offset(GEN6_GT_GFX_RC6_LOCKED)) / sizeof(u32);
-	if (WARN_ON_ONCE(i >= ARRAY_SIZE(rc6->cur_residency)))
+	if (dev_WARN_ON_ONCE(dev, i >= ARRAY_SIZE(rc6->cur_residency)))
 		return 0;
 
 	fw_domains = intel_uncore_forcewake_for_reg(uncore, reg, FW_REG_READ);
diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
index 81f872f9ef03..0762091edb8e 100644
--- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c
+++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
@@ -562,12 +562,13 @@  static void set_hwsp(struct intel_engine_cs *engine, u32 offset)
 static void flush_cs_tlb(struct intel_engine_cs *engine)
 {
 	struct drm_i915_private *dev_priv = engine->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 
 	if (!IS_GEN_RANGE(dev_priv, 6, 7))
 		return;
 
 	/* ring should be idle before issuing a sync flush*/
-	WARN_ON((ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
+	dev_WARN_ON(dev, (ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
 
 	ENGINE_WRITE(engine, RING_INSTPM,
 		     _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE |
@@ -1801,9 +1802,10 @@  static void gen6_bsd_set_default_submission(struct intel_engine_cs *engine)
 static void ring_release(struct intel_engine_cs *engine)
 {
 	struct drm_i915_private *dev_priv = engine->i915;
+	struct device *dev = i915_to_dev(dev_priv);
 
-	WARN_ON(INTEL_GEN(dev_priv) > 2 &&
-		(ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
+	dev_WARN_ON(dev, INTEL_GEN(dev_priv) > 2 &&
+		    (ENGINE_READ(engine, RING_MI_MODE) & MODE_IDLE) == 0);
 
 	intel_engine_cleanup_common(engine);
 
diff --git a/drivers/gpu/drm/i915/gt/intel_rps.c b/drivers/gpu/drm/i915/gt/intel_rps.c
index f232036c3c7a..f4aacb09bdad 100644
--- a/drivers/gpu/drm/i915/gt/intel_rps.c
+++ b/drivers/gpu/drm/i915/gt/intel_rps.c
@@ -996,6 +996,7 @@  static bool chv_rps_enable(struct intel_rps *rps)
 {
 	struct intel_uncore *uncore = rps_to_uncore(rps);
 	struct drm_i915_private *i915 = rps_to_i915(rps);
+	struct device *dev = i915_to_dev(i915);
 	u32 val;
 
 	/* 1: Program defaults and thresholds for RPS*/
@@ -1026,7 +1027,7 @@  static bool chv_rps_enable(struct intel_rps *rps)
 	vlv_punit_put(i915);
 
 	/* RPS code assumes GPLL is used */
-	WARN_ONCE((val & GPLLENABLE) == 0, "GPLL not enabled\n");
+	dev_WARN_ONCE(dev, (val & GPLLENABLE) == 0, "GPLL not enabled\n");
 
 	DRM_DEBUG_DRIVER("GPLL enabled? %s\n", yesno(val & GPLLENABLE));
 	DRM_DEBUG_DRIVER("GPU status: 0x%08x\n", val);
@@ -1094,6 +1095,7 @@  static bool vlv_rps_enable(struct intel_rps *rps)
 {
 	struct intel_uncore *uncore = rps_to_uncore(rps);
 	struct drm_i915_private *i915 = rps_to_i915(rps);
+	struct device *dev = i915_to_dev(i915);
 	u32 val;
 
 	intel_uncore_write_fw(uncore, GEN6_RP_DOWN_TIMEOUT, 1000000);
@@ -1123,7 +1125,7 @@  static bool vlv_rps_enable(struct intel_rps *rps)
 	vlv_punit_put(i915);
 
 	/* RPS code assumes GPLL is used */
-	WARN_ONCE((val & GPLLENABLE) == 0, "GPLL not enabled\n");
+	dev_WARN_ONCE(dev, (val & GPLLENABLE) == 0, "GPLL not enabled\n");
 
 	DRM_DEBUG_DRIVER("GPLL enabled? %s\n", yesno(val & GPLLENABLE));
 	DRM_DEBUG_DRIVER("GPU status: 0x%08x\n", val);
@@ -1172,6 +1174,7 @@  static unsigned long __ips_gfx_val(struct intel_ips *ips)
 void intel_rps_enable(struct intel_rps *rps)
 {
 	struct drm_i915_private *i915 = rps_to_i915(rps);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = rps_to_uncore(rps);
 
 	intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL);
@@ -1191,11 +1194,11 @@  void intel_rps_enable(struct intel_rps *rps)
 	if (!rps->enabled)
 		return;
 
-	WARN_ON(rps->max_freq < rps->min_freq);
-	WARN_ON(rps->idle_freq > rps->max_freq);
+	dev_WARN_ON(dev, rps->max_freq < rps->min_freq);
+	dev_WARN_ON(dev, rps->idle_freq > rps->max_freq);
 
-	WARN_ON(rps->efficient_freq < rps->min_freq);
-	WARN_ON(rps->efficient_freq > rps->max_freq);
+	dev_WARN_ON(dev, rps->efficient_freq < rps->min_freq);
+	dev_WARN_ON(dev, rps->efficient_freq > rps->max_freq);
 }
 
 static void gen6_rps_disable(struct intel_rps *rps)
@@ -1343,6 +1346,7 @@  static void vlv_rps_init(struct intel_rps *rps)
 static void chv_rps_init(struct intel_rps *rps)
 {
 	struct drm_i915_private *i915 = rps_to_i915(rps);
+	struct device *dev = i915_to_dev(i915);
 	u32 val;
 
 	vlv_iosf_sb_get(i915,
@@ -1390,9 +1394,10 @@  static void chv_rps_init(struct intel_rps *rps)
 			BIT(VLV_IOSF_SB_NC) |
 			BIT(VLV_IOSF_SB_CCK));
 
-	WARN_ONCE((rps->max_freq | rps->efficient_freq | rps->rp1_freq |
-		   rps->min_freq) & 1,
-		  "Odd GPU freq values\n");
+	dev_WARN_ONCE(dev, (rps->max_freq | rps->efficient_freq |
+			    rps->rp1_freq |
+			    rps->min_freq) & 1,
+		      "Odd GPU freq values\n");
 }
 
 static void vlv_c0_read(struct intel_uncore *uncore, struct intel_rps_ei *ei)
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 4e292d4bf7b9..4b11c3d2cad6 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -776,6 +776,7 @@  cfl_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
 static void
 wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
 {
+	struct device *dev = i915_to_dev(i915);
 	const struct sseu_dev_info *sseu = &RUNTIME_INFO(i915)->sseu;
 	unsigned int slice, subslice;
 	u32 l3_en, mcr, mcr_mask;
@@ -827,7 +828,7 @@  wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
 		DRM_WARN("No common index found between subslice mask %x and L3 bank mask %x!\n",
 			 intel_sseu_get_subslices(sseu, slice), l3_en);
 		subslice = fls(l3_en);
-		WARN_ON(!subslice);
+		dev_WARN_ON(dev, !subslice);
 	}
 	subslice--;
 
diff --git a/drivers/gpu/drm/i915/gvt/aperture_gm.c b/drivers/gpu/drm/i915/gvt/aperture_gm.c
index 771420453f82..8c7e68a1bdc5 100644
--- a/drivers/gpu/drm/i915/gvt/aperture_gm.c
+++ b/drivers/gpu/drm/i915/gvt/aperture_gm.c
@@ -129,16 +129,17 @@  void intel_vgpu_write_fence(struct intel_vgpu *vgpu,
 {
 	struct intel_gvt *gvt = vgpu->gvt;
 	struct drm_i915_private *dev_priv = gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_fence_reg *reg;
 	i915_reg_t fence_reg_lo, fence_reg_hi;
 
 	assert_rpm_wakelock_held(&dev_priv->runtime_pm);
 
-	if (WARN_ON(fence >= vgpu_fence_sz(vgpu)))
+	if (dev_WARN_ON(dev, fence >= vgpu_fence_sz(vgpu)))
 		return;
 
 	reg = vgpu->fence.regs[fence];
-	if (WARN_ON(!reg))
+	if (dev_WARN_ON(dev, !reg))
 		return;
 
 	fence_reg_lo = FENCE_REG_GEN6_LO(reg->id);
@@ -164,10 +165,11 @@  static void free_vgpu_fence(struct intel_vgpu *vgpu)
 {
 	struct intel_gvt *gvt = vgpu->gvt;
 	struct drm_i915_private *dev_priv = gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct i915_fence_reg *reg;
 	u32 i;
 
-	if (WARN_ON(!vgpu_fence_sz(vgpu)))
+	if (dev_WARN_ON(dev, !vgpu_fence_sz(vgpu)))
 		return;
 
 	intel_runtime_pm_get(&dev_priv->runtime_pm);
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 21a176cd8acc..c6b9e58548ed 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -1214,6 +1214,7 @@  static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
 		struct mi_display_flip_command_info *info)
 {
 	struct drm_i915_private *dev_priv = s->vgpu->gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct plane_code_mapping gen8_plane_code[] = {
 		[0] = {PIPE_A, PLANE_A, PRIMARY_A_FLIP_DONE},
 		[1] = {PIPE_B, PLANE_A, PRIMARY_B_FLIP_DONE},
@@ -1230,7 +1231,7 @@  static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
 	dword2 = cmd_val(s, 2);
 
 	v = (dword0 & GENMASK(21, 19)) >> 19;
-	if (WARN_ON(v >= ARRAY_SIZE(gen8_plane_code)))
+	if (dev_WARN_ON(dev, v >= ARRAY_SIZE(gen8_plane_code)))
 		return -EBADRQC;
 
 	info->pipe = gen8_plane_code[v].pipe;
@@ -1250,7 +1251,7 @@  static int gen8_decode_mi_display_flip(struct parser_exec_state *s,
 		info->stride_reg = SPRSTRIDE(info->pipe);
 		info->surf_reg = SPRSURF(info->pipe);
 	} else {
-		WARN_ON(1);
+		dev_WARN_ON(dev, 1);
 		return -EBADRQC;
 	}
 	return 0;
diff --git a/drivers/gpu/drm/i915/gvt/display.c b/drivers/gpu/drm/i915/gvt/display.c
index e1c313da6c00..66516d6f8811 100644
--- a/drivers/gpu/drm/i915/gvt/display.c
+++ b/drivers/gpu/drm/i915/gvt/display.c
@@ -70,8 +70,9 @@  static int edp_pipe_is_enabled(struct intel_vgpu *vgpu)
 int pipe_is_enabled(struct intel_vgpu *vgpu, int pipe)
 {
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 
-	if (WARN_ON(pipe < PIPE_A || pipe >= I915_MAX_PIPES))
+	if (dev_WARN_ON(dev, pipe < PIPE_A || pipe >= I915_MAX_PIPES))
 		return -EINVAL;
 
 	if (vgpu_vreg_t(vgpu, PIPECONF(pipe)) & PIPECONF_ENABLE)
diff --git a/drivers/gpu/drm/i915/gvt/dmabuf.c b/drivers/gpu/drm/i915/gvt/dmabuf.c
index 2477a1e5a166..38bd30c2a5fe 100644
--- a/drivers/gpu/drm/i915/gvt/dmabuf.c
+++ b/drivers/gpu/drm/i915/gvt/dmabuf.c
@@ -58,6 +58,7 @@  static int vgpu_gem_get_pages(
 		struct drm_i915_gem_object *obj)
 {
 	struct drm_i915_private *dev_priv = to_i915(obj->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_vgpu *vgpu;
 	struct sg_table *st;
 	struct scatterlist *sg;
@@ -67,11 +68,11 @@  static int vgpu_gem_get_pages(
 	u32 page_num;
 
 	fb_info = (struct intel_vgpu_fb_info *)obj->gvt_info;
-	if (WARN_ON(!fb_info))
+	if (dev_WARN_ON(dev, !fb_info))
 		return -ENODEV;
 
 	vgpu = fb_info->obj->vgpu;
-	if (WARN_ON(!vgpu))
+	if (dev_WARN_ON(dev, !vgpu))
 		return -ENODEV;
 
 	st = kmalloc(sizeof(*st), GFP_KERNEL);
diff --git a/drivers/gpu/drm/i915/gvt/edid.c b/drivers/gpu/drm/i915/gvt/edid.c
index 1fe6124918f1..e8541b50ab21 100644
--- a/drivers/gpu/drm/i915/gvt/edid.c
+++ b/drivers/gpu/drm/i915/gvt/edid.c
@@ -136,6 +136,7 @@  static int gmbus0_mmio_write(struct intel_vgpu *vgpu,
 			unsigned int offset, void *p_data, unsigned int bytes)
 {
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	int port, pin_select;
 
 	memcpy(&vgpu_vreg(vgpu, offset), p_data, bytes);
@@ -153,7 +154,7 @@  static int gmbus0_mmio_write(struct intel_vgpu *vgpu,
 		port = cnp_get_port_from_gmbus0(pin_select);
 	else
 		port = get_port_from_gmbus0(pin_select);
-	if (WARN_ON(port < 0))
+	if (dev_WARN_ON(dev, port < 0))
 		return 0;
 
 	vgpu->display.i2c_edid.state = I2C_GMBUS;
diff --git a/drivers/gpu/drm/i915/gvt/gvt.c b/drivers/gpu/drm/i915/gvt/gvt.c
index 8f37eefa0a02..58b0011786ed 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.c
+++ b/drivers/gpu/drm/i915/gvt/gvt.c
@@ -265,9 +265,10 @@  static int init_service_thread(struct intel_gvt *gvt)
  */
 void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_gvt *gvt = to_gvt(dev_priv);
 
-	if (WARN_ON(!gvt))
+	if (dev_WARN_ON(dev, !gvt))
 		return;
 
 	intel_gvt_destroy_idle_vgpu(gvt->idle_vgpu);
@@ -302,11 +303,12 @@  void intel_gvt_clean_device(struct drm_i915_private *dev_priv)
  */
 int intel_gvt_init_device(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_gvt *gvt;
 	struct intel_vgpu *vgpu;
 	int ret;
 
-	if (WARN_ON(dev_priv->gvt))
+	if (dev_WARN_ON(dev, dev_priv->gvt))
 		return -EEXIST;
 
 	gvt = kzalloc(sizeof(struct intel_gvt), GFP_KERNEL);
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index 6d28d72e6c7e..73f668885bea 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -822,6 +822,7 @@  static int trigger_aux_channel_interrupt(struct intel_vgpu *vgpu,
 		unsigned int reg)
 {
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	enum intel_gvt_event_type event;
 
 	if (reg == i915_mmio_reg_offset(DP_AUX_CH_CTL(AUX_CH_A)))
@@ -836,7 +837,7 @@  static int trigger_aux_channel_interrupt(struct intel_vgpu *vgpu,
 		 reg == i915_mmio_reg_offset(DP_AUX_CH_CTL(AUX_CH_D)))
 		event = AUX_CHANNEL_D;
 	else {
-		WARN_ON(true);
+		dev_WARN_ON(dev, true);
 		return -EINVAL;
 	}
 
diff --git a/drivers/gpu/drm/i915/gvt/mmio_context.c b/drivers/gpu/drm/i915/gvt/mmio_context.c
index aaf15916d29a..82dbcd091f5b 100644
--- a/drivers/gpu/drm/i915/gvt/mmio_context.c
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
@@ -347,6 +347,7 @@  static u32 gen8_tlb_mmio_offset_list[] = {
 static void handle_tlb_pending_event(struct intel_vgpu *vgpu, int ring_id)
 {
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_uncore *uncore = &dev_priv->uncore;
 	struct intel_vgpu_submission *s = &vgpu->submission;
 	u32 *regs = vgpu->gvt->engine_mmio_list.tlb_mmio_offset_list;
@@ -357,7 +358,7 @@  static void handle_tlb_pending_event(struct intel_vgpu *vgpu, int ring_id)
 	if (!regs)
 		return;
 
-	if (WARN_ON(ring_id >= cnt))
+	if (dev_WARN_ON(dev, ring_id >= cnt))
 		return;
 
 	if (!test_and_clear_bit(ring_id, (void *)s->tlb_handle_pending))
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index f7385abdd74b..d466251e09d0 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -978,6 +978,7 @@  static void bxt_get_dimm_info(struct dram_dimm_info *dimm,
 static int
 bxt_get_dram_info(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct dram_info *dram_info = &dev_priv->dram_info;
 	u32 dram_channels;
 	u32 mem_freq_khz, val;
@@ -1015,9 +1016,9 @@  bxt_get_dram_info(struct drm_i915_private *dev_priv)
 		bxt_get_dimm_info(&dimm, val);
 		type = bxt_get_dimm_type(val);
 
-		WARN_ON(type != INTEL_DRAM_UNKNOWN &&
-			dram_info->type != INTEL_DRAM_UNKNOWN &&
-			dram_info->type != type);
+		dev_WARN_ON(dev, type != INTEL_DRAM_UNKNOWN &&
+			    dram_info->type != INTEL_DRAM_UNKNOWN &&
+			    dram_info->type != type);
 
 		DRM_DEBUG_KMS("CH%u DIMM size: %u GB, width: X%u, ranks: %u, type: %s\n",
 			      i - BXT_D_CR_DRP0_DUNIT_START,
@@ -1803,10 +1804,11 @@  static int i915_drm_suspend_late(struct drm_device *dev, bool hibernation)
 
 int i915_suspend_switcheroo(struct drm_i915_private *i915, pm_message_t state)
 {
+	struct device *dev = i915_to_dev(i915);
 	int error;
 
-	if (WARN_ON_ONCE(state.event != PM_EVENT_SUSPEND &&
-			 state.event != PM_EVENT_FREEZE))
+	if (dev_WARN_ON_ONCE(dev, state.event != PM_EVENT_SUSPEND &&
+			     state.event != PM_EVENT_FREEZE))
 		return -EINVAL;
 
 	if (i915->drm.switch_power_state == DRM_SWITCH_POWER_OFF)
@@ -2419,6 +2421,7 @@  static void vlv_check_no_gt_access(struct drm_i915_private *dev_priv)
 
 static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 mask;
 	int err;
 
@@ -2429,7 +2432,7 @@  static int vlv_suspend_complete(struct drm_i915_private *dev_priv)
 	vlv_wait_for_gt_wells(dev_priv, false);
 
 	mask = VLV_GTLC_RENDER_CTX_EXISTS | VLV_GTLC_MEDIA_CTX_EXISTS;
-	WARN_ON((I915_READ(VLV_GTLC_WAKE_CTRL) & mask) != mask);
+	dev_WARN_ON(dev, (I915_READ(VLV_GTLC_WAKE_CTRL) & mask) != mask);
 
 	vlv_check_no_gt_access(dev_priv);
 
@@ -2492,10 +2495,11 @@  static int vlv_resume_prepare(struct drm_i915_private *dev_priv,
 static int intel_runtime_suspend(struct device *kdev)
 {
 	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
 	int ret = 0;
 
-	if (WARN_ON_ONCE(!HAS_RUNTIME_PM(dev_priv)))
+	if (dev_WARN_ON_ONCE(dev, !HAS_RUNTIME_PM(dev_priv)))
 		return -ENODEV;
 
 	DRM_DEBUG_KMS("Suspending device\n");
@@ -2577,15 +2581,16 @@  static int intel_runtime_suspend(struct device *kdev)
 static int intel_runtime_resume(struct device *kdev)
 {
 	struct drm_i915_private *dev_priv = kdev_to_i915(kdev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_runtime_pm *rpm = &dev_priv->runtime_pm;
 	int ret = 0;
 
-	if (WARN_ON_ONCE(!HAS_RUNTIME_PM(dev_priv)))
+	if (dev_WARN_ON_ONCE(dev, !HAS_RUNTIME_PM(dev_priv)))
 		return -ENODEV;
 
 	DRM_DEBUG_KMS("Resuming device\n");
 
-	WARN_ON_ONCE(atomic_read(&rpm->wakeref_count));
+	dev_WARN_ON_ONCE(dev, atomic_read(&rpm->wakeref_count));
 	disable_rpm_wakeref_asserts(rpm);
 
 	intel_opregion_notify_adapter(dev_priv, PCI_D0);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 9ddcf17230e6..074859d75cbb 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1172,6 +1172,7 @@  void i915_gem_driver_remove(struct drm_i915_private *dev_priv)
 
 void i915_gem_driver_release(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	intel_gt_driver_release(&dev_priv->gt);
 
 	intel_wa_list_free(&dev_priv->gt_wa_list);
@@ -1183,7 +1184,7 @@  void i915_gem_driver_release(struct drm_i915_private *dev_priv)
 
 	i915_gem_drain_freed_objects(dev_priv);
 
-	WARN_ON(!list_empty(&dev_priv->gem.contexts.list));
+	dev_WARN_ON(dev, !list_empty(&dev_priv->gem.contexts.list));
 }
 
 static void i915_gem_init__mm(struct drm_i915_private *i915)
@@ -1208,10 +1209,11 @@  void i915_gem_init_early(struct drm_i915_private *dev_priv)
 
 void i915_gem_cleanup_early(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	i915_gem_drain_freed_objects(dev_priv);
 	GEM_BUG_ON(!llist_empty(&dev_priv->mm.free_list));
 	GEM_BUG_ON(atomic_read(&dev_priv->mm.free_count));
-	WARN_ON(dev_priv->mm.shrink_count);
+	dev_WARN_ON(dev, dev_priv->mm.shrink_count);
 }
 
 int i915_gem_freeze(struct drm_i915_private *dev_priv)
@@ -1226,6 +1228,7 @@  int i915_gem_freeze(struct drm_i915_private *dev_priv)
 
 int i915_gem_freeze_late(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct drm_i915_gem_object *obj;
 	intel_wakeref_t wakeref;
 
@@ -1251,7 +1254,7 @@  int i915_gem_freeze_late(struct drm_i915_private *i915)
 
 	list_for_each_entry(obj, &i915->mm.shrink_list, mm.link) {
 		i915_gem_object_lock(obj);
-		WARN_ON(i915_gem_object_set_to_cpu_domain(obj, true));
+		dev_WARN_ON(dev, i915_gem_object_set_to_cpu_domain(obj, true));
 		i915_gem_object_unlock(obj);
 	}
 
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 1efe58ad0ce9..630158ee6188 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -2021,6 +2021,7 @@  static struct i915_ppgtt *gen6_ppgtt_create(struct drm_i915_private *i915)
 static void gtt_write_workarounds(struct intel_gt *gt)
 {
 	struct drm_i915_private *i915 = gt->i915;
+	struct device *dev = i915_to_dev(i915);
 	struct intel_uncore *uncore = gt->uncore;
 
 	/* This function is for gtt related workarounds. This function is
@@ -2079,9 +2080,9 @@  static void gtt_write_workarounds(struct intel_gt *gt)
 		intel_uncore_write(uncore,
 				   HSW_GTT_CACHE_EN,
 				   can_use_gtt_cache ? GTT_CACHE_EN_ALL : 0);
-		WARN_ON_ONCE(can_use_gtt_cache &&
-			     intel_uncore_read(uncore,
-					       HSW_GTT_CACHE_EN) == 0);
+		dev_WARN_ON_ONCE(dev, can_use_gtt_cache &&
+				 intel_uncore_read(uncore,
+						   HSW_GTT_CACHE_EN) == 0);
 	}
 }
 
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index d1a254de182d..0bcc3915be0d 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -259,10 +259,11 @@  i915_hotplug_interrupt_update_locked(struct drm_i915_private *dev_priv,
 				     u32 mask,
 				     u32 bits)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 val;
 
 	lockdep_assert_held(&dev_priv->irq_lock);
-	WARN_ON(bits & ~mask);
+	dev_WARN_ON(dev, bits & ~mask);
 
 	val = I915_READ(PORT_HOTPLUG_EN);
 	val &= ~mask;
@@ -301,13 +302,14 @@  void ilk_update_display_irq(struct drm_i915_private *dev_priv,
 			    u32 interrupt_mask,
 			    u32 enabled_irq_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 new_val;
 
 	lockdep_assert_held(&dev_priv->irq_lock);
 
-	WARN_ON(enabled_irq_mask & ~interrupt_mask);
+	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
 
-	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
+	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
 		return;
 
 	new_val = dev_priv->irq_mask;
@@ -331,14 +333,15 @@  static void bdw_update_port_irq(struct drm_i915_private *dev_priv,
 				u32 interrupt_mask,
 				u32 enabled_irq_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 new_val;
 	u32 old_val;
 
 	lockdep_assert_held(&dev_priv->irq_lock);
 
-	WARN_ON(enabled_irq_mask & ~interrupt_mask);
+	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
 
-	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
+	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
 		return;
 
 	old_val = I915_READ(GEN8_DE_PORT_IMR);
@@ -365,13 +368,14 @@  void bdw_update_pipe_irq(struct drm_i915_private *dev_priv,
 			 u32 interrupt_mask,
 			 u32 enabled_irq_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 new_val;
 
 	lockdep_assert_held(&dev_priv->irq_lock);
 
-	WARN_ON(enabled_irq_mask & ~interrupt_mask);
+	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
 
-	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
+	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
 		return;
 
 	new_val = dev_priv->de_irq_mask[pipe];
@@ -395,15 +399,16 @@  void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
 				  u32 interrupt_mask,
 				  u32 enabled_irq_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 sdeimr = I915_READ(SDEIMR);
 	sdeimr &= ~interrupt_mask;
 	sdeimr |= (~enabled_irq_mask & interrupt_mask);
 
-	WARN_ON(enabled_irq_mask & ~interrupt_mask);
+	dev_WARN_ON(dev, enabled_irq_mask & ~interrupt_mask);
 
 	lockdep_assert_held(&dev_priv->irq_lock);
 
-	if (WARN_ON(!intel_irqs_enabled(dev_priv)))
+	if (dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv)))
 		return;
 
 	I915_WRITE(SDEIMR, sdeimr);
@@ -413,6 +418,7 @@  void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
 u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
 			      enum pipe pipe)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 status_mask = dev_priv->pipestat_irq_mask[pipe];
 	u32 enable_mask = status_mask << 16;
 
@@ -425,13 +431,13 @@  u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
 	 * On pipe A we don't support the PSR interrupt yet,
 	 * on pipe B and C the same bit MBZ.
 	 */
-	if (WARN_ON_ONCE(status_mask & PIPE_A_PSR_STATUS_VLV))
+	if (dev_WARN_ON_ONCE(dev, status_mask & PIPE_A_PSR_STATUS_VLV))
 		return 0;
 	/*
 	 * On pipe B and C we don't support the PSR interrupt yet, on pipe
 	 * A the same bit is for perf counters which we don't use either.
 	 */
-	if (WARN_ON_ONCE(status_mask & PIPE_B_PSR_STATUS_VLV))
+	if (dev_WARN_ON_ONCE(dev, status_mask & PIPE_B_PSR_STATUS_VLV))
 		return 0;
 
 	enable_mask &= ~(PIPE_FIFO_UNDERRUN_STATUS |
@@ -443,10 +449,10 @@  u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
 		enable_mask |= SPRITE1_FLIP_DONE_INT_EN_VLV;
 
 out:
-	WARN_ONCE(enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
-		  status_mask & ~PIPESTAT_INT_STATUS_MASK,
-		  "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
-		  pipe_name(pipe), enable_mask, status_mask);
+	dev_WARN_ONCE(dev, enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
+		      status_mask & ~PIPESTAT_INT_STATUS_MASK,
+		      "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
+		      pipe_name(pipe), enable_mask, status_mask);
 
 	return enable_mask;
 }
@@ -454,15 +460,16 @@  u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
 void i915_enable_pipestat(struct drm_i915_private *dev_priv,
 			  enum pipe pipe, u32 status_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	i915_reg_t reg = PIPESTAT(pipe);
 	u32 enable_mask;
 
-	WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
-		  "pipe %c: status_mask=0x%x\n",
-		  pipe_name(pipe), status_mask);
+	dev_WARN_ONCE(dev, status_mask & ~PIPESTAT_INT_STATUS_MASK,
+		      "pipe %c: status_mask=0x%x\n",
+		      pipe_name(pipe), status_mask);
 
 	lockdep_assert_held(&dev_priv->irq_lock);
-	WARN_ON(!intel_irqs_enabled(dev_priv));
+	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
 
 	if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == status_mask)
 		return;
@@ -477,15 +484,16 @@  void i915_enable_pipestat(struct drm_i915_private *dev_priv,
 void i915_disable_pipestat(struct drm_i915_private *dev_priv,
 			   enum pipe pipe, u32 status_mask)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	i915_reg_t reg = PIPESTAT(pipe);
 	u32 enable_mask;
 
-	WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
-		  "pipe %c: status_mask=0x%x\n",
-		  pipe_name(pipe), status_mask);
+	dev_WARN_ONCE(dev, status_mask & ~PIPESTAT_INT_STATUS_MASK,
+		      "pipe %c: status_mask=0x%x\n",
+		      pipe_name(pipe), status_mask);
 
 	lockdep_assert_held(&dev_priv->irq_lock);
-	WARN_ON(!intel_irqs_enabled(dev_priv));
+	dev_WARN_ON(dev, !intel_irqs_enabled(dev_priv));
 
 	if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == 0)
 		return;
@@ -905,6 +913,7 @@  static void ivb_parity_work(struct work_struct *work)
 {
 	struct drm_i915_private *dev_priv =
 		container_of(work, typeof(*dev_priv), l3_parity.error_work);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_gt *gt = &dev_priv->gt;
 	u32 error_status, row, bank, subbank;
 	char *parity_event[6];
@@ -918,7 +927,7 @@  static void ivb_parity_work(struct work_struct *work)
 	mutex_lock(&dev_priv->drm.struct_mutex);
 
 	/* If we've screwed up tracking, just let the interrupt fire again */
-	if (WARN_ON(!dev_priv->l3_parity.which_slice))
+	if (dev_WARN_ON(dev, !dev_priv->l3_parity.which_slice))
 		goto out;
 
 	misccpctl = I915_READ(GEN7_MISCCPCTL);
@@ -929,7 +938,7 @@  static void ivb_parity_work(struct work_struct *work)
 		i915_reg_t reg;
 
 		slice--;
-		if (WARN_ON_ONCE(slice >= NUM_L3_SLICES(dev_priv)))
+		if (dev_WARN_ON_ONCE(dev, slice >= NUM_L3_SLICES(dev_priv)))
 			break;
 
 		dev_priv->l3_parity.which_slice &= ~(1<<slice);
@@ -966,7 +975,7 @@  static void ivb_parity_work(struct work_struct *work)
 	I915_WRITE(GEN7_MISCCPCTL, misccpctl);
 
 out:
-	WARN_ON(dev_priv->l3_parity.which_slice);
+	dev_WARN_ON(dev, dev_priv->l3_parity.which_slice);
 	spin_lock_irq(&gt->irq_lock);
 	gen5_gt_enable_irq(gt, GT_PARITY_ERROR(dev_priv));
 	spin_unlock_irq(&gt->irq_lock);
@@ -1434,6 +1443,7 @@  static void valleyview_pipestat_irq_handler(struct drm_i915_private *dev_priv,
 
 static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 hotplug_status = 0, hotplug_status_mask;
 	int i;
 
@@ -1463,9 +1473,9 @@  static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
 		I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
 	}
 
-	WARN_ONCE(1,
-		  "PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
-		  I915_READ(PORT_HOTPLUG_STAT));
+	dev_WARN_ONCE(dev, 1,
+		      "PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
+		      I915_READ(PORT_HOTPLUG_STAT));
 
 	return hotplug_status;
 }
@@ -1824,6 +1834,7 @@  static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 
 static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 ddi_hotplug_trigger, tc_hotplug_trigger;
 	u32 pin_mask = 0, long_mask = 0;
 	bool (*tc_port_hotplug_long_detect)(enum hpd_pin pin, u32 val);
@@ -1844,8 +1855,9 @@  static void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
 		tc_port_hotplug_long_detect = icp_tc_port_hotplug_long_detect;
 		pins = hpd_icp;
 	} else {
-		WARN(!HAS_PCH_ICP(dev_priv),
-		     "Unrecognized PCH type 0x%x\n", INTEL_PCH_TYPE(dev_priv));
+		dev_WARN(dev, !HAS_PCH_ICP(dev_priv),
+			 "Unrecognized PCH type 0x%x\n",
+			 INTEL_PCH_TYPE(dev_priv));
 
 		ddi_hotplug_trigger = pch_iir & SDE_DDI_MASK_ICP;
 		tc_hotplug_trigger = pch_iir & SDE_TC_MASK_ICP;
@@ -2683,10 +2695,11 @@  static void ibx_irq_reset(struct drm_i915_private *dev_priv)
  */
 static void ibx_irq_pre_postinstall(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (HAS_PCH_NOP(dev_priv))
 		return;
 
-	WARN_ON(I915_READ(SDEIER) != 0);
+	dev_WARN_ON(dev, I915_READ(SDEIER) != 0);
 	I915_WRITE(SDEIER, 0xffffffff);
 	POSTING_READ(SDEIER);
 }
@@ -2711,6 +2724,7 @@  static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
 
 static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_uncore *uncore = &dev_priv->uncore;
 
 	u32 pipestat_mask;
@@ -2733,7 +2747,7 @@  static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
 		enable_mask |= I915_DISPLAY_PIPE_C_EVENT_INTERRUPT |
 			I915_LPE_PIPE_C_INTERRUPT;
 
-	WARN_ON(dev_priv->irq_mask != ~0u);
+	dev_WARN_ON(dev, dev_priv->irq_mask != ~0u);
 
 	dev_priv->irq_mask = ~enable_mask;
 
@@ -3416,9 +3430,10 @@  static void gen8_irq_postinstall(struct drm_i915_private *dev_priv)
 
 static void icp_irq_postinstall(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	u32 mask = SDE_GMBUS_ICP;
 
-	WARN_ON(I915_READ(SDEIER) != 0);
+	dev_WARN_ON(dev, I915_READ(SDEIER) != 0);
 	I915_WRITE(SDEIER, 0xffffffff);
 	POSTING_READ(SDEIER);
 
diff --git a/drivers/gpu/drm/i915/i915_pmu.c b/drivers/gpu/drm/i915/i915_pmu.c
index f3ef6700a5f2..ca36f31509ec 100644
--- a/drivers/gpu/drm/i915/i915_pmu.c
+++ b/drivers/gpu/drm/i915/i915_pmu.c
@@ -443,12 +443,13 @@  static void engine_event_destroy(struct perf_event *event)
 {
 	struct drm_i915_private *i915 =
 		container_of(event->pmu, typeof(*i915), pmu.base);
+	struct device *dev = i915_to_dev(i915);
 	struct intel_engine_cs *engine;
 
 	engine = intel_engine_lookup_user(i915,
 					  engine_event_class(event),
 					  engine_event_instance(event));
-	if (WARN_ON_ONCE(!engine))
+	if (dev_WARN_ON_ONCE(dev, !engine))
 		return;
 
 	if (engine_event_sample(event) == I915_SAMPLE_BUSY &&
@@ -573,6 +574,7 @@  static u64 __i915_pmu_event_read(struct perf_event *event)
 {
 	struct drm_i915_private *i915 =
 		container_of(event->pmu, typeof(*i915), pmu.base);
+	struct device *dev = i915_to_dev(i915);
 	struct i915_pmu *pmu = &i915->pmu;
 	u64 val = 0;
 
@@ -584,7 +586,7 @@  static u64 __i915_pmu_event_read(struct perf_event *event)
 						  engine_event_class(event),
 						  engine_event_instance(event));
 
-		if (WARN_ON_ONCE(!engine)) {
+		if (dev_WARN_ON_ONCE(dev, !engine)) {
 			/* Do nothing */
 		} else if (sample == I915_SAMPLE_BUSY &&
 			   intel_engine_supports_stats(engine)) {
@@ -1164,12 +1166,13 @@  void i915_pmu_register(struct drm_i915_private *i915)
 
 void i915_pmu_unregister(struct drm_i915_private *i915)
 {
+	struct device *dev = i915_to_dev(i915);
 	struct i915_pmu *pmu = &i915->pmu;
 
 	if (!pmu->base.event_init)
 		return;
 
-	WARN_ON(pmu->enable);
+	dev_WARN_ON(dev, pmu->enable);
 
 	hrtimer_cancel(&pmu->timer);
 
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 09870a31b4f0..5fc71ec804a7 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -607,7 +607,9 @@  static void parse_csr_fw(struct drm_i915_private *dev_priv,
 
 static void intel_csr_runtime_pm_get(struct drm_i915_private *dev_priv)
 {
-	WARN_ON(dev_priv->csr.wakeref);
+	struct device *dev = i915_to_dev(dev_priv);
+
+	dev_WARN_ON(dev, dev_priv->csr.wakeref);
 	dev_priv->csr.wakeref =
 		intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
 }
@@ -779,11 +781,12 @@  void intel_csr_ucode_resume(struct drm_i915_private *dev_priv)
  */
 void intel_csr_ucode_fini(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	if (!HAS_CSR(dev_priv))
 		return;
 
 	intel_csr_ucode_suspend(dev_priv);
-	WARN_ON(dev_priv->csr.wakeref);
+	dev_WARN_ON(dev, dev_priv->csr.wakeref);
 
 	kfree(dev_priv->csr.dmc_payload);
 }
diff --git a/drivers/gpu/drm/i915/intel_pch.c b/drivers/gpu/drm/i915/intel_pch.c
index 43b68b5fc562..1c56f81a22af 100644
--- a/drivers/gpu/drm/i915/intel_pch.c
+++ b/drivers/gpu/drm/i915/intel_pch.c
@@ -10,93 +10,107 @@ 
 static enum intel_pch
 intel_pch_type(const struct drm_i915_private *dev_priv, unsigned short id)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	switch (id) {
 	case INTEL_PCH_IBX_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Ibex Peak PCH\n");
-		WARN_ON(!IS_GEN(dev_priv, 5));
+		dev_WARN_ON(dev, !IS_GEN(dev_priv, 5));
 		return PCH_IBX;
 	case INTEL_PCH_CPT_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found CougarPoint PCH\n");
-		WARN_ON(!IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
 		return PCH_CPT;
 	case INTEL_PCH_PPT_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found PantherPoint PCH\n");
-		WARN_ON(!IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_GEN(dev_priv, 6) && !IS_IVYBRIDGE(dev_priv));
 		/* PantherPoint is CPT compatible */
 		return PCH_CPT;
 	case INTEL_PCH_LPT_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found LynxPoint PCH\n");
-		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
-		WARN_ON(IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
+		dev_WARN_ON(dev, IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
 		return PCH_LPT;
 	case INTEL_PCH_LPT_LP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found LynxPoint LP PCH\n");
-		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
-		WARN_ON(!IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
 		return PCH_LPT;
 	case INTEL_PCH_WPT_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found WildcatPoint PCH\n");
-		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
-		WARN_ON(IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
+		dev_WARN_ON(dev, IS_HSW_ULT(dev_priv) || IS_BDW_ULT(dev_priv));
 		/* WildcatPoint is LPT compatible */
 		return PCH_LPT;
 	case INTEL_PCH_WPT_LP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found WildcatPoint LP PCH\n");
-		WARN_ON(!IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
-		WARN_ON(!IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HASWELL(dev_priv) && !IS_BROADWELL(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_HSW_ULT(dev_priv) && !IS_BDW_ULT(dev_priv));
 		/* WildcatPoint is LPT compatible */
 		return PCH_LPT;
 	case INTEL_PCH_SPT_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found SunrisePoint PCH\n");
-		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv));
 		return PCH_SPT;
 	case INTEL_PCH_SPT_LP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found SunrisePoint LP PCH\n");
-		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
-			!IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
+			    !IS_COFFEELAKE(dev_priv));
 		return PCH_SPT;
 	case INTEL_PCH_KBP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Kaby Lake PCH (KBP)\n");
-		WARN_ON(!IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
-			!IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev,
+			    !IS_SKYLAKE(dev_priv) && !IS_KABYLAKE(dev_priv) &&
+			    !IS_COFFEELAKE(dev_priv));
 		/* KBP is SPT compatible */
 		return PCH_SPT;
 	case INTEL_PCH_CNP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Cannon Lake PCH (CNP)\n");
-		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
+			    !IS_COFFEELAKE(dev_priv));
 		return PCH_CNP;
 	case INTEL_PCH_CNP_LP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Cannon Lake LP PCH (CNP-LP)\n");
-		WARN_ON(!IS_CANNONLAKE(dev_priv) && !IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_CANNONLAKE(dev_priv) &&
+			    !IS_COFFEELAKE(dev_priv));
 		return PCH_CNP;
 	case INTEL_PCH_CMP_DEVICE_ID_TYPE:
 	case INTEL_PCH_CMP2_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Comet Lake PCH (CMP)\n");
-		WARN_ON(!IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_COFFEELAKE(dev_priv));
 		/* CometPoint is CNP Compatible */
 		return PCH_CNP;
 	case INTEL_PCH_CMP_V_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Comet Lake V PCH (CMP-V)\n");
-		WARN_ON(!IS_COFFEELAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_COFFEELAKE(dev_priv));
 		/* Comet Lake V PCH is based on KBP, which is SPT compatible */
 		return PCH_SPT;
 	case INTEL_PCH_ICP_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Ice Lake PCH\n");
-		WARN_ON(!IS_ICELAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_ICELAKE(dev_priv));
 		return PCH_ICP;
 	case INTEL_PCH_MCC_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Mule Creek Canyon PCH\n");
-		WARN_ON(!IS_ELKHARTLAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_ELKHARTLAKE(dev_priv));
 		return PCH_MCC;
 	case INTEL_PCH_TGP_DEVICE_ID_TYPE:
 	case INTEL_PCH_TGP2_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Tiger Lake LP PCH\n");
-		WARN_ON(!IS_TIGERLAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_TIGERLAKE(dev_priv));
 		return PCH_TGP;
 	case INTEL_PCH_JSP_DEVICE_ID_TYPE:
 	case INTEL_PCH_JSP2_DEVICE_ID_TYPE:
 		DRM_DEBUG_KMS("Found Jasper Lake PCH\n");
-		WARN_ON(!IS_ELKHARTLAKE(dev_priv));
+		dev_WARN_ON(dev, !IS_ELKHARTLAKE(dev_priv));
 		return PCH_JSP;
 	default:
 		return PCH_NONE;
@@ -154,6 +168,7 @@  intel_virt_detect_pch(const struct drm_i915_private *dev_priv)
 
 void intel_detect_pch(struct drm_i915_private *dev_priv)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct pci_dev *pch = NULL;
 
 	/*
@@ -187,7 +202,7 @@  void intel_detect_pch(struct drm_i915_private *dev_priv)
 			pch_type = intel_pch_type(dev_priv, id);
 
 			/* Sanity check virtual PCH id */
-			if (WARN_ON(id && pch_type == PCH_NONE))
+			if (dev_WARN_ON(dev, id && pch_type == PCH_NONE))
 				id = 0;
 
 			dev_priv->pch_type = pch_type;
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index d3dd80db8813..227c35d1c395 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -1956,6 +1956,7 @@  static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
 				   struct intel_crtc *crtc)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_uncore *uncore = &dev_priv->uncore;
 	const struct intel_crtc_state *crtc_state =
 		intel_atomic_get_new_crtc_state(state, crtc);
@@ -1970,8 +1971,8 @@  static void vlv_atomic_update_fifo(struct intel_atomic_state *state,
 	sprite1_start = fifo_state->plane[PLANE_SPRITE0] + sprite0_start;
 	fifo_size = fifo_state->plane[PLANE_SPRITE1] + sprite1_start;
 
-	WARN_ON(fifo_state->plane[PLANE_CURSOR] != 63);
-	WARN_ON(fifo_size != 511);
+	dev_WARN_ON(dev, fifo_state->plane[PLANE_CURSOR] != 63);
+	dev_WARN_ON(dev, fifo_size != 511);
 
 	trace_vlv_fifo_size(crtc, sprite0_start, sprite1_start, fifo_size);
 
@@ -3360,6 +3361,7 @@  static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
 				   enum intel_ddb_partitioning partitioning,
 				   struct ilk_wm_values *results)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc;
 	int level, wm_lp;
 
@@ -3398,7 +3400,7 @@  static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
 		 * level is disabled. Doing otherwise could cause underruns.
 		 */
 		if (INTEL_GEN(dev_priv) <= 6 && r->spr_val) {
-			WARN_ON(wm_lp != 1);
+			dev_WARN_ON(dev, wm_lp != 1);
 			results->wm_lp_spr[wm_lp - 1] = WM1S_LP_EN | r->spr_val;
 		} else
 			results->wm_lp_spr[wm_lp - 1] = r->spr_val;
@@ -3410,7 +3412,7 @@  static void ilk_compute_wm_results(struct drm_i915_private *dev_priv,
 		const struct intel_wm_level *r =
 			&intel_crtc->wm.active.ilk.wm[0];
 
-		if (WARN_ON(!r->enable))
+		if (dev_WARN_ON(dev, !r->enable))
 			continue;
 
 		results->wm_linetime[pipe] = intel_crtc->wm.active.ilk.linetime;
@@ -3851,11 +3853,12 @@  static u16 intel_get_ddb_size(struct drm_i915_private *dev_priv,
 			      const int num_active,
 			      struct skl_ddb_allocation *ddb)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	const struct drm_display_mode *adjusted_mode;
 	u64 total_data_bw;
 	u16 ddb_size = INTEL_INFO(dev_priv)->ddb_size;
 
-	WARN_ON(ddb_size == 0);
+	dev_WARN_ON(dev, ddb_size == 0);
 
 	if (INTEL_GEN(dev_priv) < 11)
 		return ddb_size - 4; /* 4 blocks for bypass path allocation */
@@ -3889,6 +3892,7 @@  skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
 				   struct skl_ddb_entry *alloc, /* out */
 				   int *num_active /* out */)
 {
+	struct device *dev = i915_to_dev(dev_priv);
 	struct drm_atomic_state *state = crtc_state->uapi.state;
 	struct intel_atomic_state *intel_state = to_intel_atomic_state(state);
 	struct drm_crtc *for_crtc = crtc_state->uapi.crtc;
@@ -3898,7 +3902,7 @@  skl_ddb_get_pipe_allocation_limits(struct drm_i915_private *dev_priv,
 	u16 ddb_size;
 	u32 i;
 
-	if (WARN_ON(!state) || !crtc_state->hw.active) {
+	if (dev_WARN_ON(dev, !state) || !crtc_state->hw.active) {
 		alloc->start = 0;
 		alloc->end = 0;
 		*num_active = hweight8(dev_priv->active_pipes);
@@ -3973,6 +3977,7 @@  skl_cursor_allocation(const struct intel_crtc_state *crtc_state,
 		      int num_active)
 {
 	struct drm_i915_private *dev_priv = to_i915(crtc_state->uapi.crtc->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	int level, max_level = ilk_wm_max_level(dev_priv);
 	struct skl_wm_level wm = {};
 	int ret, min_ddb_alloc = 0;
@@ -3983,7 +3988,7 @@  skl_cursor_allocation(const struct intel_crtc_state *crtc_state,
 				    DRM_FORMAT_MOD_LINEAR,
 				    DRM_MODE_ROTATE_0,
 				    crtc_state->pixel_rate, &wp, 0);
-	WARN_ON(ret);
+	dev_WARN_ON(dev, ret);
 
 	for (level = 0; level <= max_level; level++) {
 		skl_compute_plane_wm(crtc_state, level, &wp, &wm, &wm);
@@ -4258,6 +4263,7 @@  skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
 	struct drm_atomic_state *state = crtc_state->uapi.state;
 	struct drm_crtc *crtc = crtc_state->uapi.crtc;
 	struct drm_i915_private *dev_priv = to_i915(crtc->dev);
+	struct device *dev = i915_to_dev(dev_priv);
 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
 	struct skl_ddb_entry *alloc = &crtc_state->wm.skl.ddb;
 	u16 alloc_size, start = 0;
@@ -4275,7 +4281,7 @@  skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
 	memset(crtc_state->wm.skl.plane_ddb_y, 0, sizeof(crtc_state->wm.skl.plane_ddb_y));
 	memset(crtc_state->wm.skl.plane_ddb_uv, 0, sizeof(crtc_state->wm.skl.plane_ddb_uv));
 
-	if (WARN_ON(!state))
+	if (dev_WARN_ON(dev, !state))
 		return 0;
 
 	if (!crtc_state->hw.active) {
@@ -4322,7 +4328,8 @@  skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
 
 			if (plane_id == PLANE_CURSOR) {
 				if (wm->wm[level].min_ddb_alloc > total[PLANE_CURSOR]) {
-					WARN_ON(wm->wm[level].min_ddb_alloc != U16_MAX);
+					dev_WARN_ON(dev,
+						    wm->wm[level].min_ddb_alloc != U16_MAX);
 					blocks = U32_MAX;
 					break;
 				}
@@ -4386,7 +4393,7 @@  skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
 		alloc_size -= extra;
 		total_data_rate -= rate;
 	}
-	WARN_ON(alloc_size != 0 || total_data_rate != 0);
+	dev_WARN_ON(dev, alloc_size != 0 || total_data_rate != 0);
 
 	/* Set the actual DDB start/end points for each plane */
 	start = alloc->start;
@@ -4400,7 +4407,8 @@  skl_allocate_pipe_ddb(struct intel_crtc_state *crtc_state,
 			continue;
 
 		/* Gen11+ uses a separate plane for UV watermarks */
-		WARN_ON(INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
+		dev_WARN_ON(dev,
+			    INTEL_GEN(dev_priv) >= 11 && uv_total[plane_id]);
 
 		/* Leave disabled planes at (0,0) */
 		if (total[plane_id]) {
diff --git a/drivers/gpu/drm/i915/intel_sideband.c b/drivers/gpu/drm/i915/intel_sideband.c
index e06b35b844a0..e87b99730e43 100644
--- a/drivers/gpu/drm/i915/intel_sideband.c
+++ b/drivers/gpu/drm/i915/intel_sideband.c
@@ -232,6 +232,7 @@  void vlv_ccu_write(struct drm_i915_private *i915, u32 reg, u32 val)
 
 u32 vlv_dpio_read(struct drm_i915_private *i915, enum pipe pipe, int reg)
 {
+	struct device *dev = i915_to_dev(i915);
 	int port = i915->dpio_phy_iosf_port[DPIO_PHY(pipe)];
 	u32 val = 0;
 
@@ -241,8 +242,9 @@  u32 vlv_dpio_read(struct drm_i915_private *i915, enum pipe pipe, int reg)
 	 * FIXME: There might be some registers where all 1's is a valid value,
 	 * so ideally we should check the register offset instead...
 	 */
-	WARN(val == 0xffffffff, "DPIO read pipe %c reg 0x%x == 0x%x\n",
-	     pipe_name(pipe), reg, val);
+	dev_WARN(dev, val == 0xffffffff,
+		 "DPIO read pipe %c reg 0x%x == 0x%x\n",
+		 pipe_name(pipe), reg, val);
 
 	return val;
 }
@@ -487,6 +489,7 @@  static bool skl_pcode_try_request(struct drm_i915_private *i915, u32 mbox,
 int skl_pcode_request(struct drm_i915_private *i915, u32 mbox, u32 request,
 		      u32 reply_mask, u32 reply, int timeout_base_ms)
 {
+	struct device *dev = i915_to_dev(i915);
 	u32 status;
 	int ret;
 
@@ -520,7 +523,7 @@  int skl_pcode_request(struct drm_i915_private *i915, u32 mbox, u32 request,
 	 * the request completion.
 	 */
 	DRM_DEBUG_KMS("PCODE timeout, retrying with preemption disabled\n");
-	WARN_ON_ONCE(timeout_base_ms > 3);
+	dev_WARN_ON_ONCE(dev, timeout_base_ms > 3);
 	preempt_disable();
 	ret = wait_for_atomic(COND, 50);
 	preempt_enable();
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index 94a97bf8c021..f3de70e7ee50 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -1498,6 +1498,7 @@  static void intel_uncore_fw_domains_fini(struct intel_uncore *uncore)
 static int intel_uncore_fw_domains_init(struct intel_uncore *uncore)
 {
 	struct drm_i915_private *i915 = uncore->i915;
+	struct device *dev = i915_to_dev(i915);
 	int ret = 0;
 
 	GEM_BUG_ON(!intel_uncore_has_forcewake(uncore));
@@ -1612,7 +1613,7 @@  static int intel_uncore_fw_domains_init(struct intel_uncore *uncore)
 #undef fw_domain_init
 
 	/* All future platforms are expected to require complex power gating */
-	WARN_ON(!ret && uncore->fw_domains == 0);
+	dev_WARN_ON(dev, !ret && uncore->fw_domains == 0);
 
 out:
 	if (ret)