diff mbox series

[v2,4/4] drm/i915/dsi: pass display to register macros instead of implicit variable

Message ID 6dd52f3fce3527242479aadc276d05de74ceae5d.1713520813.git.jani.nikula@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/dsi: stop relying on implicit dev_priv variable | expand

Commit Message

Jani Nikula April 19, 2024, 10:04 a.m. UTC
Stop relying on the dev_priv local variable in the DSI register
macros. Pass struct intel_display pointer to the macros. Move the MIPI
DSI MMIO base selection to a different level, passing it to _MMIO_MIPI()
and doing the addition there.

Start using the local display variable for all intel_de_* usage, and
opportunistically use it for other things than display registers as
well.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>

---

Tip: Applying the patch and using 'git show --color-words' is probably
the easiest way to review.
---
 drivers/gpu/drm/i915/display/intel_display.c |   8 +-
 drivers/gpu/drm/i915/display/vlv_dsi.c       | 337 ++++++++++---------
 drivers/gpu/drm/i915/display/vlv_dsi_pll.c   |  22 +-
 drivers/gpu/drm/i915/display/vlv_dsi_regs.h  | 324 +++++++++---------
 4 files changed, 349 insertions(+), 342 deletions(-)

Comments

Vivi, Rodrigo April 22, 2024, 9:10 p.m. UTC | #1
On Fri, Apr 19, 2024 at 01:04:06PM +0300, Jani Nikula wrote:
> Stop relying on the dev_priv local variable in the DSI register
> macros. Pass struct intel_display pointer to the macros. Move the MIPI
> DSI MMIO base selection to a different level, passing it to _MMIO_MIPI()
> and doing the addition there.
> 
> Start using the local display variable for all intel_de_* usage, and
> opportunistically use it for other things than display registers as
> well.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> ---
> 
> Tip: Applying the patch and using 'git show --color-words' is probably
> the easiest way to review.

wow! this is indeed a nice feature for this case. I had never tried it before.
Thanks for showing that.

But the registers changes were easier to review the old way. ;)

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_display.c |   8 +-
>  drivers/gpu/drm/i915/display/vlv_dsi.c       | 337 ++++++++++---------
>  drivers/gpu/drm/i915/display/vlv_dsi_pll.c   |  22 +-
>  drivers/gpu/drm/i915/display/vlv_dsi_regs.h  | 324 +++++++++---------
>  4 files changed, 349 insertions(+), 342 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 96ed1490fec7..b9434465d3a7 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -3722,8 +3722,8 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>  					 struct intel_crtc_state *pipe_config,
>  					 struct intel_display_power_domain_set *power_domain_set)
>  {
> -	struct drm_device *dev = crtc->base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
> +	struct intel_display *display = to_intel_display(crtc);
> +	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	enum transcoder cpu_transcoder;
>  	enum port port;
>  	u32 tmp;
> @@ -3749,11 +3749,11 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>  			break;
>  
>  		/* XXX: this works for video mode only */
> -		tmp = intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port));
> +		tmp = intel_de_read(display, BXT_MIPI_PORT_CTRL(port));
>  		if (!(tmp & DPI_ENABLE))
>  			continue;
>  
> -		tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> +		tmp = intel_de_read(display, MIPI_CTRL(display, port));
>  		if ((tmp & BXT_PIPE_SELECT_MASK) != BXT_PIPE_SELECT(crtc->pipe))
>  			continue;
>  
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> index 9967ef58f1ec..ee9923c7b115 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> @@ -85,18 +85,18 @@ enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
>  
>  void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_dsi->base);
>  	u32 mask;
>  
>  	mask = LP_CTRL_FIFO_EMPTY | HS_CTRL_FIFO_EMPTY |
>  		LP_DATA_FIFO_EMPTY | HS_DATA_FIFO_EMPTY;
>  
> -	if (intel_de_wait_for_set(dev_priv, MIPI_GEN_FIFO_STAT(port),
> +	if (intel_de_wait_for_set(display, MIPI_GEN_FIFO_STAT(display, port),
>  				  mask, 100))
> -		drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n");
> +		drm_err(display->drm, "DPI FIFOs are not empty\n");
>  }
>  
> -static void write_data(struct drm_i915_private *dev_priv,
> +static void write_data(struct intel_display *display,
>  		       i915_reg_t reg,
>  		       const u8 *data, u32 len)
>  {
> @@ -108,18 +108,18 @@ static void write_data(struct drm_i915_private *dev_priv,
>  		for (j = 0; j < min_t(u32, len - i, 4); j++)
>  			val |= *data++ << 8 * j;
>  
> -		intel_de_write(dev_priv, reg, val);
> +		intel_de_write(display, reg, val);
>  	}
>  }
>  
> -static void read_data(struct drm_i915_private *dev_priv,
> +static void read_data(struct intel_display *display,
>  		      i915_reg_t reg,
>  		      u8 *data, u32 len)
>  {
>  	u32 i, j;
>  
>  	for (i = 0; i < len; i += 4) {
> -		u32 val = intel_de_read(dev_priv, reg);
> +		u32 val = intel_de_read(display, reg);
>  
>  		for (j = 0; j < min_t(u32, len - i, 4); j++)
>  			*data++ = val >> 8 * j;
> @@ -131,7 +131,7 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
>  {
>  	struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host);
>  	struct intel_dsi *intel_dsi = intel_dsi_host->intel_dsi;
> -	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_dsi->base);
>  	enum port port = intel_dsi_host->port;
>  	struct mipi_dsi_packet packet;
>  	ssize_t ret;
> @@ -146,51 +146,51 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
>  	header = packet.header;
>  
>  	if (msg->flags & MIPI_DSI_MSG_USE_LPM) {
> -		data_reg = MIPI_LP_GEN_DATA(port);
> +		data_reg = MIPI_LP_GEN_DATA(display, port);
>  		data_mask = LP_DATA_FIFO_FULL;
> -		ctrl_reg = MIPI_LP_GEN_CTRL(port);
> +		ctrl_reg = MIPI_LP_GEN_CTRL(display, port);
>  		ctrl_mask = LP_CTRL_FIFO_FULL;
>  	} else {
> -		data_reg = MIPI_HS_GEN_DATA(port);
> +		data_reg = MIPI_HS_GEN_DATA(display, port);
>  		data_mask = HS_DATA_FIFO_FULL;
> -		ctrl_reg = MIPI_HS_GEN_CTRL(port);
> +		ctrl_reg = MIPI_HS_GEN_CTRL(display, port);
>  		ctrl_mask = HS_CTRL_FIFO_FULL;
>  	}
>  
>  	/* note: this is never true for reads */
>  	if (packet.payload_length) {
> -		if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
> +		if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
>  					    data_mask, 50))
> -			drm_err(&dev_priv->drm,
> +			drm_err(display->drm,
>  				"Timeout waiting for HS/LP DATA FIFO !full\n");
>  
> -		write_data(dev_priv, data_reg, packet.payload,
> +		write_data(display, data_reg, packet.payload,
>  			   packet.payload_length);
>  	}
>  
>  	if (msg->rx_len) {
> -		intel_de_write(dev_priv, MIPI_INTR_STAT(port),
> +		intel_de_write(display, MIPI_INTR_STAT(display, port),
>  			       GEN_READ_DATA_AVAIL);
>  	}
>  
> -	if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
> +	if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
>  				    ctrl_mask, 50)) {
> -		drm_err(&dev_priv->drm,
> +		drm_err(display->drm,
>  			"Timeout waiting for HS/LP CTRL FIFO !full\n");
>  	}
>  
> -	intel_de_write(dev_priv, ctrl_reg,
> +	intel_de_write(display, ctrl_reg,
>  		       header[2] << 16 | header[1] << 8 | header[0]);
>  
>  	/* ->rx_len is set only for reads */
>  	if (msg->rx_len) {
>  		data_mask = GEN_READ_DATA_AVAIL;
> -		if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port),
> +		if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port),
>  					  data_mask, 50))
> -			drm_err(&dev_priv->drm,
> +			drm_err(display->drm,
>  				"Timeout waiting for read data.\n");
>  
> -		read_data(dev_priv, data_reg, msg->rx_buf, msg->rx_len);
> +		read_data(display, data_reg, msg->rx_buf, msg->rx_len);
>  	}
>  
>  	/* XXX: fix for reads and writes */
> @@ -223,7 +223,7 @@ static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
>  static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
>  			enum port port)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> +	struct intel_display *display = to_intel_display(&intel_dsi->base);
>  	u32 mask;
>  
>  	/* XXX: pipe, hs */
> @@ -233,18 +233,18 @@ static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
>  		cmd |= DPI_LP_MODE;
>  
>  	/* clear bit */
> -	intel_de_write(dev_priv, MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);
> +	intel_de_write(display, MIPI_INTR_STAT(display, port), SPL_PKT_SENT_INTERRUPT);
>  
>  	/* XXX: old code skips write if control unchanged */
> -	if (cmd == intel_de_read(dev_priv, MIPI_DPI_CONTROL(port)))
> -		drm_dbg_kms(&dev_priv->drm,
> +	if (cmd == intel_de_read(display, MIPI_DPI_CONTROL(display, port)))
> +		drm_dbg_kms(display->drm,
>  			    "Same special packet %02x twice in a row.\n", cmd);
>  
> -	intel_de_write(dev_priv, MIPI_DPI_CONTROL(port), cmd);
> +	intel_de_write(display, MIPI_DPI_CONTROL(display, port), cmd);
>  
>  	mask = SPL_PKT_SENT_INTERRUPT;
> -	if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port), mask, 100))
> -		drm_err(&dev_priv->drm,
> +	if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port), mask, 100))
> +		drm_err(display->drm,
>  			"Video mode command 0x%08x send failed.\n", cmd);
>  
>  	return 0;
> @@ -324,7 +324,7 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder,
>  
>  static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  	bool cold_boot = false;
> @@ -334,29 +334,30 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>  	 * Power ON MIPI IO first and then write into IO reset and LP wake bits
>  	 */
>  	for_each_dsi_port(port, intel_dsi->ports)
> -		intel_de_rmw(dev_priv, MIPI_CTRL(port), 0, GLK_MIPIIO_ENABLE);
> +		intel_de_rmw(display, MIPI_CTRL(display, port), 0, GLK_MIPIIO_ENABLE);
>  
>  	/* Put the IO into reset */
> -	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> +	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>  
>  	/* Program LP Wake */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		u32 tmp = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
> -		intel_de_rmw(dev_priv, MIPI_CTRL(port),
> +		u32 tmp = intel_de_read(display, MIPI_DEVICE_READY(display, port));
> +
> +		intel_de_rmw(display, MIPI_CTRL(display, port),
>  			     GLK_LP_WAKE, (tmp & DEVICE_READY) ? GLK_LP_WAKE : 0);
>  	}
>  
>  	/* Wait for Pwr ACK */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>  					  GLK_MIPIIO_PORT_POWERED, 20))
> -			drm_err(&dev_priv->drm, "MIPIO port is powergated\n");
> +			drm_err(display->drm, "MIPIO port is powergated\n");
>  	}
>  
>  	/* Check for cold boot scenario */
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  		cold_boot |=
> -			!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY);
> +			!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY);
>  	}
>  
>  	return cold_boot;
> @@ -364,99 +365,100 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>  
>  static void glk_dsi_device_ready(struct intel_encoder *encoder)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
>  	/* Wait for MIPI PHY status bit to set */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>  					  GLK_PHY_STATUS_PORT_READY, 20))
> -			drm_err(&dev_priv->drm, "PHY is not ON\n");
> +			drm_err(display->drm, "PHY is not ON\n");
>  	}
>  
>  	/* Get IO out of reset */
> -	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
> +	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
>  
>  	/* Get IO out of Low power state*/
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY)) {
> -			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> +		if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY)) {
> +			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>  				     ULPS_STATE_MASK, DEVICE_READY);
>  			usleep_range(10, 15);
>  		} else {
>  			/* Enter ULPS */
> -			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> +			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>  				     ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
>  
>  			/* Wait for ULPS active */
> -			if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> +			if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>  						    GLK_ULPS_NOT_ACTIVE, 20))
> -				drm_err(&dev_priv->drm, "ULPS not active\n");
> +				drm_err(display->drm, "ULPS not active\n");
>  
>  			/* Exit ULPS */
> -			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> +			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>  				     ULPS_STATE_MASK, ULPS_STATE_EXIT | DEVICE_READY);
>  
>  			/* Enter Normal Mode */
> -			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> +			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>  				     ULPS_STATE_MASK,
>  				     ULPS_STATE_NORMAL_OPERATION | DEVICE_READY);
>  
> -			intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_LP_WAKE, 0);
> +			intel_de_rmw(display, MIPI_CTRL(display, port), GLK_LP_WAKE, 0);
>  		}
>  	}
>  
>  	/* Wait for Stop state */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>  					  GLK_DATA_LANE_STOP_STATE, 20))
> -			drm_err(&dev_priv->drm,
> +			drm_err(display->drm,
>  				"Date lane not in STOP state\n");
>  	}
>  
>  	/* Wait for AFE LATCH */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_set(dev_priv, BXT_MIPI_PORT_CTRL(port),
> +		if (intel_de_wait_for_set(display, BXT_MIPI_PORT_CTRL(port),
>  					  AFE_LATCHOUT, 20))
> -			drm_err(&dev_priv->drm,
> +			drm_err(display->drm,
>  				"D-PHY not entering LP-11 state\n");
>  	}
>  }
>  
>  static void bxt_dsi_device_ready(struct intel_encoder *encoder)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  	u32 val;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  
>  	/* Enable MIPI PHY transparent latch */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		intel_de_rmw(dev_priv, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
> +		intel_de_rmw(display, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
>  		usleep_range(2000, 2500);
>  	}
>  
>  	/* Clear ULPS and set device ready */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		val = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
> +		val = intel_de_read(display, MIPI_DEVICE_READY(display, port));
>  		val &= ~ULPS_STATE_MASK;
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
>  		usleep_range(2000, 2500);
>  		val |= DEVICE_READY;
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
>  	}
>  }
>  
>  static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  
>  	vlv_flisdsi_get(dev_priv);
>  	/* program rcomp for compliance, reduce from 50 ohms to 45 ohms
> @@ -469,7 +471,7 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>  
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       ULPS_STATE_ENTER);
>  		usleep_range(2500, 3000);
>  
> @@ -477,14 +479,14 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>  		 * Common bit for both MIPI Port A & MIPI Port C
>  		 * No similar bit in MIPI Port C reg
>  		 */
> -		intel_de_rmw(dev_priv, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
> +		intel_de_rmw(display, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
>  		usleep_range(1000, 1500);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       ULPS_STATE_EXIT);
>  		usleep_range(2500, 3000);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       DEVICE_READY);
>  		usleep_range(2500, 3000);
>  	}
> @@ -504,50 +506,50 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
>  
>  static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
>  	/* Enter ULPS */
>  	for_each_dsi_port(port, intel_dsi->ports)
> -		intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>  			     ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
>  
>  	/* Wait for MIPI PHY status bit to unset */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>  					    GLK_PHY_STATUS_PORT_READY, 20))
> -			drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
> +			drm_err(display->drm, "PHY is not turning OFF\n");
>  	}
>  
>  	/* Wait for Pwr ACK bit to unset */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>  					    GLK_MIPIIO_PORT_POWERED, 20))
> -			drm_err(&dev_priv->drm,
> +			drm_err(display->drm,
>  				"MIPI IO Port is not powergated\n");
>  	}
>  }
>  
>  static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
>  	/* Put the IO into reset */
> -	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> +	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>  
>  	/* Wait for MIPI PHY status bit to unset */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> +		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>  					    GLK_PHY_STATUS_PORT_READY, 20))
> -			drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
> +			drm_err(display->drm, "PHY is not turning OFF\n");
>  	}
>  
>  	/* Clear MIPI mode */
>  	for_each_dsi_port(port, intel_dsi->ports)
> -		intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_MIPIIO_ENABLE, 0);
> +		intel_de_rmw(display, MIPI_CTRL(display, port), GLK_MIPIIO_ENABLE, 0);
>  }
>  
>  static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
> @@ -564,25 +566,26 @@ static i915_reg_t port_ctrl_reg(struct drm_i915_private *i915, enum port port)
>  
>  static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  		/* Common bit for both MIPI Port A & MIPI Port C on VLV/CHV */
>  		i915_reg_t port_ctrl = IS_BROXTON(dev_priv) ?
>  			BXT_MIPI_PORT_CTRL(port) : VLV_MIPI_PORT_CTRL(PORT_A);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       DEVICE_READY | ULPS_STATE_ENTER);
>  		usleep_range(2000, 2500);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       DEVICE_READY | ULPS_STATE_EXIT);
>  		usleep_range(2000, 2500);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port),
>  			       DEVICE_READY | ULPS_STATE_ENTER);
>  		usleep_range(2000, 2500);
>  
> @@ -591,15 +594,15 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>  		 * Port A only. MIPI Port C has no similar bit for checking.
>  		 */
>  		if ((IS_BROXTON(dev_priv) || port == PORT_A) &&
> -		    intel_de_wait_for_clear(dev_priv, port_ctrl,
> +		    intel_de_wait_for_clear(display, port_ctrl,
>  					    AFE_LATCHOUT, 30))
> -			drm_err(&dev_priv->drm, "DSI LP not going Low\n");
> +			drm_err(display->drm, "DSI LP not going Low\n");
>  
>  		/* Disable MIPI PHY transparent latch */
> -		intel_de_rmw(dev_priv, port_ctrl, LP_OUTPUT_HOLD, 0);
> +		intel_de_rmw(display, port_ctrl, LP_OUTPUT_HOLD, 0);
>  		usleep_range(1000, 1500);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x00);
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x00);
>  		usleep_range(2000, 2500);
>  	}
>  }
> @@ -607,6 +610,7 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>  static void intel_dsi_port_enable(struct intel_encoder *encoder,
>  				  const struct intel_crtc_state *crtc_state)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> @@ -617,11 +621,11 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>  
>  		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>  			for_each_dsi_port(port, intel_dsi->ports)
> -				intel_de_rmw(dev_priv, MIPI_CTRL(port),
> +				intel_de_rmw(display, MIPI_CTRL(display, port),
>  					     BXT_PIXEL_OVERLAP_CNT_MASK,
>  					     temp << BXT_PIXEL_OVERLAP_CNT_SHIFT);
>  		} else {
> -			intel_de_rmw(dev_priv, VLV_CHICKEN_3,
> +			intel_de_rmw(display, VLV_CHICKEN_3,
>  				     PIXEL_OVERLAP_CNT_MASK,
>  				     temp << PIXEL_OVERLAP_CNT_SHIFT);
>  		}
> @@ -631,7 +635,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>  		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
>  		u32 temp;
>  
> -		temp = intel_de_read(dev_priv, port_ctrl);
> +		temp = intel_de_read(display, port_ctrl);
>  
>  		temp &= ~LANE_CONFIGURATION_MASK;
>  		temp &= ~DUAL_LINK_MODE_MASK;
> @@ -651,13 +655,14 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>  			temp |= DITHERING_ENABLE;
>  
>  		/* assert ip_tg_enable signal */
> -		intel_de_write(dev_priv, port_ctrl, temp | DPI_ENABLE);
> -		intel_de_posting_read(dev_priv, port_ctrl);
> +		intel_de_write(display, port_ctrl, temp | DPI_ENABLE);
> +		intel_de_posting_read(display, port_ctrl);
>  	}
>  }
>  
>  static void intel_dsi_port_disable(struct intel_encoder *encoder)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
> @@ -666,8 +671,8 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
>  		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
>  
>  		/* de-assert ip_tg_enable signal */
> -		intel_de_rmw(dev_priv, port_ctrl, DPI_ENABLE, 0);
> -		intel_de_posting_read(dev_priv, port_ctrl);
> +		intel_de_rmw(display, port_ctrl, DPI_ENABLE, 0);
> +		intel_de_posting_read(display, port_ctrl);
>  	}
>  }
>  
> @@ -721,6 +726,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>  				 const struct intel_crtc_state *pipe_config,
>  				 const struct drm_connector_state *conn_state)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> @@ -728,7 +734,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>  	enum port port;
>  	bool glk_cold_boot = false;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  
>  	intel_dsi_wait_panel_power_cycle(intel_dsi);
>  
> @@ -748,16 +754,16 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>  
>  	if (IS_BROXTON(dev_priv)) {
>  		/* Add MIPI IO reset programming for modeset */
> -		intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
> +		intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
>  
>  		/* Power up DSI regulator */
> -		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> -		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
> +		intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> +		intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
>  	}
>  
>  	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>  		/* Disable DPOunit clock gating, can stall pipe */
> -		intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
> +		intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
>  			     0, DPOUNIT_CLOCK_GATE_DISABLE);
>  	}
>  
> @@ -793,8 +799,8 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>  	 */
>  	if (is_cmd_mode(intel_dsi)) {
>  		for_each_dsi_port(port, intel_dsi->ports)
> -			intel_de_write(dev_priv,
> -				       MIPI_MAX_RETURN_PKT_SIZE(port), 8 * 4);
> +			intel_de_write(display,
> +				       MIPI_MAX_RETURN_PKT_SIZE(display, port), 8 * 4);
>  		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON);
>  		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON);
>  	} else {
> @@ -866,11 +872,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>  				   const struct intel_crtc_state *old_crtc_state,
>  				   const struct drm_connector_state *old_conn_state)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  
>  	if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>  		intel_crtc_vblank_off(old_crtc_state);
> @@ -901,12 +908,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>  
>  	if (IS_BROXTON(dev_priv)) {
>  		/* Power down DSI regulator to save power */
> -		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> -		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL,
> +		intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> +		intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL,
>  			       HS_IO_CTRL_SELECT);
>  
>  		/* Add MIPI IO reset programming for modeset */
> -		intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
> +		intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
>  	}
>  
>  	if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> @@ -914,7 +921,7 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>  	} else {
>  		vlv_dsi_pll_disable(encoder);
>  
> -		intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
> +		intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
>  			     DPOUNIT_CLOCK_GATE_DISABLE, 0);
>  	}
>  
> @@ -930,13 +937,14 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  				   enum pipe *pipe)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	intel_wakeref_t wakeref;
>  	enum port port;
>  	bool active = false;
>  
> -	drm_dbg_kms(&dev_priv->drm, "\n");
> +	drm_dbg_kms(display->drm, "\n");
>  
>  	wakeref = intel_display_power_get_if_enabled(dev_priv,
>  						     encoder->power_domain);
> @@ -955,7 +963,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  	/* XXX: this only works for one DSI output */
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
> -		bool enabled = intel_de_read(dev_priv, port_ctrl) & DPI_ENABLE;
> +		bool enabled = intel_de_read(display, port_ctrl) & DPI_ENABLE;
>  
>  		/*
>  		 * Due to some hardware limitations on VLV/CHV, the DPI enable
> @@ -964,27 +972,27 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  		 */
>  		if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
>  		    port == PORT_C)
> -			enabled = intel_de_read(dev_priv, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
> +			enabled = intel_de_read(display, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
>  
>  		/* Try command mode if video mode not enabled */
>  		if (!enabled) {
> -			u32 tmp = intel_de_read(dev_priv,
> -						MIPI_DSI_FUNC_PRG(port));
> +			u32 tmp = intel_de_read(display,
> +						MIPI_DSI_FUNC_PRG(display, port));
>  			enabled = tmp & CMD_MODE_DATA_WIDTH_MASK;
>  		}
>  
>  		if (!enabled)
>  			continue;
>  
> -		if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY))
> +		if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY))
>  			continue;
>  
>  		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> -			u32 tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> +			u32 tmp = intel_de_read(display, MIPI_CTRL(display, port));
>  			tmp &= BXT_PIPE_SELECT_MASK;
>  			tmp >>= BXT_PIPE_SELECT_SHIFT;
>  
> -			if (drm_WARN_ON(&dev_priv->drm, tmp > PIPE_C))
> +			if (drm_WARN_ON(display->drm, tmp > PIPE_C))
>  				continue;
>  
>  			*pipe = tmp;
> @@ -1005,7 +1013,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>  				    struct intel_crtc_state *pipe_config)
>  {
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_display_mode *adjusted_mode =
>  					&pipe_config->hw.adjusted_mode;
>  	struct drm_display_mode *adjusted_mode_sw;
> @@ -1027,11 +1035,11 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>  	 * encoder->get_hw_state() returns true.
>  	 */
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		if (intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
> +		if (intel_de_read(display, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
>  			break;
>  	}
>  
> -	fmt = intel_de_read(dev_priv, MIPI_DSI_FUNC_PRG(port)) & VID_MODE_FORMAT_MASK;
> +	fmt = intel_de_read(display, MIPI_DSI_FUNC_PRG(display, port)) & VID_MODE_FORMAT_MASK;
>  	bpp = mipi_dsi_pixel_format_to_bpp(
>  			pixel_format_from_register_bits(fmt));
>  
> @@ -1043,24 +1051,24 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>  
>  	/* In terms of pixels */
>  	adjusted_mode->crtc_hdisplay =
> -				intel_de_read(dev_priv,
> +				intel_de_read(display,
>  				              BXT_MIPI_TRANS_HACTIVE(port));
>  	adjusted_mode->crtc_vdisplay =
> -				intel_de_read(dev_priv,
> +				intel_de_read(display,
>  				              BXT_MIPI_TRANS_VACTIVE(port));
>  	adjusted_mode->crtc_vtotal =
> -				intel_de_read(dev_priv,
> +				intel_de_read(display,
>  				              BXT_MIPI_TRANS_VTOTAL(port));
>  
>  	hactive = adjusted_mode->crtc_hdisplay;
> -	hfp = intel_de_read(dev_priv, MIPI_HFP_COUNT(port));
> +	hfp = intel_de_read(display, MIPI_HFP_COUNT(display, port));
>  
>  	/*
>  	 * Meaningful for video mode non-burst sync pulse mode only,
>  	 * can be zero for non-burst sync events and burst modes
>  	 */
> -	hsync = intel_de_read(dev_priv, MIPI_HSYNC_PADDING_COUNT(port));
> -	hbp = intel_de_read(dev_priv, MIPI_HBP_COUNT(port));
> +	hsync = intel_de_read(display, MIPI_HSYNC_PADDING_COUNT(display, port));
> +	hbp = intel_de_read(display, MIPI_HBP_COUNT(display, port));
>  
>  	/* harizontal values are in terms of high speed byte clock */
>  	hfp = pixels_from_txbyteclkhs(hfp, bpp, lane_count,
> @@ -1077,8 +1085,8 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>  	}
>  
>  	/* vertical values are in terms of lines */
> -	vfp = intel_de_read(dev_priv, MIPI_VFP_COUNT(port));
> -	vsync = intel_de_read(dev_priv, MIPI_VSYNC_PADDING_COUNT(port));
> +	vfp = intel_de_read(display, MIPI_VFP_COUNT(display, port));
> +	vsync = intel_de_read(display, MIPI_VSYNC_PADDING_COUNT(display, port));
>  
>  	adjusted_mode->crtc_htotal = hactive + hfp + hsync + hbp;
>  	adjusted_mode->crtc_hsync_start = hfp + adjusted_mode->crtc_hdisplay;
> @@ -1207,6 +1215,7 @@ static u16 txclkesc(u32 divider, unsigned int us)
>  static void set_dsi_timings(struct intel_encoder *encoder,
>  			    const struct drm_display_mode *adjusted_mode)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
> @@ -1249,29 +1258,29 @@ static void set_dsi_timings(struct intel_encoder *encoder,
>  			 * vactive, as they are calculated per channel basis,
>  			 * whereas these values should be based on resolution.
>  			 */
> -			intel_de_write(dev_priv, BXT_MIPI_TRANS_HACTIVE(port),
> +			intel_de_write(display, BXT_MIPI_TRANS_HACTIVE(port),
>  				       adjusted_mode->crtc_hdisplay);
> -			intel_de_write(dev_priv, BXT_MIPI_TRANS_VACTIVE(port),
> +			intel_de_write(display, BXT_MIPI_TRANS_VACTIVE(port),
>  				       adjusted_mode->crtc_vdisplay);
> -			intel_de_write(dev_priv, BXT_MIPI_TRANS_VTOTAL(port),
> +			intel_de_write(display, BXT_MIPI_TRANS_VTOTAL(port),
>  				       adjusted_mode->crtc_vtotal);
>  		}
>  
> -		intel_de_write(dev_priv, MIPI_HACTIVE_AREA_COUNT(port),
> +		intel_de_write(display, MIPI_HACTIVE_AREA_COUNT(display, port),
>  			       hactive);
> -		intel_de_write(dev_priv, MIPI_HFP_COUNT(port), hfp);
> +		intel_de_write(display, MIPI_HFP_COUNT(display, port), hfp);
>  
>  		/* meaningful for video mode non-burst sync pulse mode only,
>  		 * can be zero for non-burst sync events and burst modes */
> -		intel_de_write(dev_priv, MIPI_HSYNC_PADDING_COUNT(port),
> +		intel_de_write(display, MIPI_HSYNC_PADDING_COUNT(display, port),
>  			       hsync);
> -		intel_de_write(dev_priv, MIPI_HBP_COUNT(port), hbp);
> +		intel_de_write(display, MIPI_HBP_COUNT(display, port), hbp);
>  
>  		/* vertical values are in terms of lines */
> -		intel_de_write(dev_priv, MIPI_VFP_COUNT(port), vfp);
> -		intel_de_write(dev_priv, MIPI_VSYNC_PADDING_COUNT(port),
> +		intel_de_write(display, MIPI_VFP_COUNT(display, port), vfp);
> +		intel_de_write(display, MIPI_VSYNC_PADDING_COUNT(display, port),
>  			       vsync);
> -		intel_de_write(dev_priv, MIPI_VBP_COUNT(port), vbp);
> +		intel_de_write(display, MIPI_VBP_COUNT(display, port), vbp);
>  	}
>  }
>  
> @@ -1295,6 +1304,7 @@ static u32 pixel_format_to_reg(enum mipi_dsi_pixel_format fmt)
>  static void intel_dsi_prepare(struct intel_encoder *encoder,
>  			      const struct intel_crtc_state *pipe_config)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> @@ -1304,7 +1314,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  	u32 val, tmp;
>  	u16 mode_hdisplay;
>  
> -	drm_dbg_kms(&dev_priv->drm, "pipe %c\n", pipe_name(crtc->pipe));
> +	drm_dbg_kms(display->drm, "pipe %c\n", pipe_name(crtc->pipe));
>  
>  	mode_hdisplay = adjusted_mode->crtc_hdisplay;
>  
> @@ -1320,31 +1330,31 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  			 * escape clock divider, 20MHz, shared for A and C.
>  			 * device ready must be off when doing this! txclkesc?
>  			 */
> -			tmp = intel_de_read(dev_priv, MIPI_CTRL(PORT_A));
> +			tmp = intel_de_read(display, MIPI_CTRL(display, PORT_A));
>  			tmp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
> -			intel_de_write(dev_priv, MIPI_CTRL(PORT_A),
> +			intel_de_write(display, MIPI_CTRL(display, PORT_A),
>  				       tmp | ESCAPE_CLOCK_DIVIDER_1);
>  
>  			/* read request priority is per pipe */
> -			tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> +			tmp = intel_de_read(display, MIPI_CTRL(display, port));
>  			tmp &= ~READ_REQUEST_PRIORITY_MASK;
> -			intel_de_write(dev_priv, MIPI_CTRL(port),
> +			intel_de_write(display, MIPI_CTRL(display, port),
>  				       tmp | READ_REQUEST_PRIORITY_HIGH);
>  		} else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>  			enum pipe pipe = crtc->pipe;
>  
> -			intel_de_rmw(dev_priv, MIPI_CTRL(port),
> +			intel_de_rmw(display, MIPI_CTRL(display, port),
>  				     BXT_PIPE_SELECT_MASK, BXT_PIPE_SELECT(pipe));
>  		}
>  
>  		/* XXX: why here, why like this? handling in irq handler?! */
> -		intel_de_write(dev_priv, MIPI_INTR_STAT(port), 0xffffffff);
> -		intel_de_write(dev_priv, MIPI_INTR_EN(port), 0xffffffff);
> +		intel_de_write(display, MIPI_INTR_STAT(display, port), 0xffffffff);
> +		intel_de_write(display, MIPI_INTR_EN(display, port), 0xffffffff);
>  
> -		intel_de_write(dev_priv, MIPI_DPHY_PARAM(port),
> +		intel_de_write(display, MIPI_DPHY_PARAM(display, port),
>  			       intel_dsi->dphy_reg);
>  
> -		intel_de_write(dev_priv, MIPI_DPI_RESOLUTION(port),
> +		intel_de_write(display, MIPI_DPI_RESOLUTION(display, port),
>  			       adjusted_mode->crtc_vdisplay << VERTICAL_ADDRESS_SHIFT | mode_hdisplay << HORIZONTAL_ADDRESS_SHIFT);
>  	}
>  
> @@ -1372,7 +1382,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  	}
>  
>  	for_each_dsi_port(port, intel_dsi->ports) {
> -		intel_de_write(dev_priv, MIPI_DSI_FUNC_PRG(port), val);
> +		intel_de_write(display, MIPI_DSI_FUNC_PRG(display, port), val);
>  
>  		/* timeouts for recovery. one frame IIUC. if counter expires,
>  		 * EOT and stop state. */
> @@ -1393,23 +1403,23 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  
>  		if (is_vid_mode(intel_dsi) &&
>  			intel_dsi->video_mode == BURST_MODE) {
> -			intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
> +			intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
>  				       txbyteclkhs(adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
>  		} else {
> -			intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
> +			intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
>  				       txbyteclkhs(adjusted_mode->crtc_vtotal * adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
>  		}
> -		intel_de_write(dev_priv, MIPI_LP_RX_TIMEOUT(port),
> +		intel_de_write(display, MIPI_LP_RX_TIMEOUT(display, port),
>  			       intel_dsi->lp_rx_timeout);
> -		intel_de_write(dev_priv, MIPI_TURN_AROUND_TIMEOUT(port),
> +		intel_de_write(display, MIPI_TURN_AROUND_TIMEOUT(display, port),
>  			       intel_dsi->turn_arnd_val);
> -		intel_de_write(dev_priv, MIPI_DEVICE_RESET_TIMER(port),
> +		intel_de_write(display, MIPI_DEVICE_RESET_TIMER(display, port),
>  			       intel_dsi->rst_timer_val);
>  
>  		/* dphy stuff */
>  
>  		/* in terms of low power clock */
> -		intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
> +		intel_de_write(display, MIPI_INIT_COUNT(display, port),
>  			       txclkesc(intel_dsi->escape_clk_div, 100));
>  
>  		if ((IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) &&
> @@ -1420,16 +1430,16 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  			 * getting used. So write the other port
>  			 * if not in dual link mode.
>  			 */
> -			intel_de_write(dev_priv,
> -				       MIPI_INIT_COUNT(port == PORT_A ? PORT_C : PORT_A),
> +			intel_de_write(display,
> +				       MIPI_INIT_COUNT(display, port == PORT_A ? PORT_C : PORT_A),
>  				       intel_dsi->init_count);
>  		}
>  
>  		/* recovery disables */
> -		intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), tmp);
> +		intel_de_write(display, MIPI_EOT_DISABLE(display, port), tmp);
>  
>  		/* in terms of low power clock */
> -		intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
> +		intel_de_write(display, MIPI_INIT_COUNT(display, port),
>  			       intel_dsi->init_count);
>  
>  		/* in terms of txbyteclkhs. actual high to low switch +
> @@ -1437,7 +1447,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  		 *
>  		 * XXX: write MIPI_STOP_STATE_STALL?
>  		 */
> -		intel_de_write(dev_priv, MIPI_HIGH_LOW_SWITCH_COUNT(port),
> +		intel_de_write(display, MIPI_HIGH_LOW_SWITCH_COUNT(display, port),
>  			       intel_dsi->hs_to_lp_count);
>  
>  		/* XXX: low power clock equivalence in terms of byte clock.
> @@ -1446,14 +1456,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  		 * txclkesc time / txbyteclk time * (105 + MIPI_STOP_STATE_STALL
>  		 * ) / 105.???
>  		 */
> -		intel_de_write(dev_priv, MIPI_LP_BYTECLK(port),
> +		intel_de_write(display, MIPI_LP_BYTECLK(display, port),
>  			       intel_dsi->lp_byte_clk);
>  
>  		if (IS_GEMINILAKE(dev_priv)) {
> -			intel_de_write(dev_priv, MIPI_TLPX_TIME_COUNT(port),
> +			intel_de_write(display, MIPI_TLPX_TIME_COUNT(display, port),
>  				       intel_dsi->lp_byte_clk);
>  			/* Shadow of DPHY reg */
> -			intel_de_write(dev_priv, MIPI_CLK_LANE_TIMING(port),
> +			intel_de_write(display, MIPI_CLK_LANE_TIMING(display, port),
>  				       intel_dsi->dphy_reg);
>  		}
>  
> @@ -1462,10 +1472,10 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  		 * this register in terms of byte clocks. based on dsi transfer
>  		 * rate and the number of lanes configured the time taken to
>  		 * transmit 16 long packets in a dsi stream varies. */
> -		intel_de_write(dev_priv, MIPI_DBI_BW_CTRL(port),
> +		intel_de_write(display, MIPI_DBI_BW_CTRL(display, port),
>  			       intel_dsi->bw_timer);
>  
> -		intel_de_write(dev_priv, MIPI_CLK_LANE_SWITCH_TIME_CNT(port),
> +		intel_de_write(display, MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port),
>  			       intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_SW_CNT_SHIFT);
>  
>  		if (is_vid_mode(intel_dsi)) {
> @@ -1493,13 +1503,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>  				break;
>  			}
>  
> -			intel_de_write(dev_priv, MIPI_VIDEO_MODE_FORMAT(port), fmt);
> +			intel_de_write(display, MIPI_VIDEO_MODE_FORMAT(display, port), fmt);
>  		}
>  	}
>  }
>  
>  static void intel_dsi_unprepare(struct intel_encoder *encoder)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>  	enum port port;
> @@ -1509,17 +1520,17 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
>  
>  	for_each_dsi_port(port, intel_dsi->ports) {
>  		/* Panel commands can be sent when clock is in LP11 */
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x0);
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x0);
>  
>  		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv))
>  			bxt_dsi_reset_clocks(encoder, port);
>  		else
>  			vlv_dsi_reset_clocks(encoder, port);
> -		intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
> +		intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
>  
> -		intel_de_rmw(dev_priv, MIPI_DSI_FUNC_PRG(port), VID_MODE_FORMAT_MASK, 0);
> +		intel_de_rmw(display, MIPI_DSI_FUNC_PRG(display, port), VID_MODE_FORMAT_MASK, 0);
>  
> -		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x1);
> +		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x1);
>  	}
>  }
>  
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> index ae0a0b11bae3..70c5a13a3c75 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> @@ -365,13 +365,13 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
>  
>  void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>  {
> -	u32 temp;
> -	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> +	struct intel_display *display = to_intel_display(encoder);
>  	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> +	u32 temp;
>  
> -	temp = intel_de_read(dev_priv, MIPI_CTRL(port));
> +	temp = intel_de_read(display, MIPI_CTRL(display, port));
>  	temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
> -	intel_de_write(dev_priv, MIPI_CTRL(port),
> +	intel_de_write(display, MIPI_CTRL(display, port),
>  		       temp | intel_dsi->escape_clk_div << ESCAPE_CLOCK_DIVIDER_SHIFT);
>  }
>  
> @@ -570,24 +570,24 @@ void bxt_dsi_pll_enable(struct intel_encoder *encoder,
>  
>  void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>  {
> +	struct intel_display *display = to_intel_display(encoder);
> +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>  	u32 tmp;
> -	struct drm_device *dev = encoder->base.dev;
> -	struct drm_i915_private *dev_priv = to_i915(dev);
>  
>  	/* Clear old configurations */
>  	if (IS_BROXTON(dev_priv)) {
> -		tmp = intel_de_read(dev_priv, BXT_MIPI_CLOCK_CTL);
> +		tmp = intel_de_read(display, BXT_MIPI_CLOCK_CTL);
>  		tmp &= ~(BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port));
>  		tmp &= ~(BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port));
>  		tmp &= ~(BXT_MIPI_8X_BY3_DIVIDER_MASK(port));
>  		tmp &= ~(BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port));
> -		intel_de_write(dev_priv, BXT_MIPI_CLOCK_CTL, tmp);
> +		intel_de_write(display, BXT_MIPI_CLOCK_CTL, tmp);
>  	} else {
> -		intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
> +		intel_de_rmw(display, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
>  
> -		intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
> +		intel_de_rmw(display, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
>  	}
> -	intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
> +	intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
>  }
>  
>  static void assert_dsi_pll(struct drm_i915_private *i915, bool state)
> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> index 12a608a73720..c1126d170ec6 100644
> --- a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> @@ -11,26 +11,23 @@
>  #define VLV_MIPI_BASE			VLV_DISPLAY_BASE
>  #define BXT_MIPI_BASE			0x60000
>  
> -#define _MIPI_MMIO_BASE(__i915) ((__i915)->display.dsi.mmio_base)
> +#define _MIPI_MMIO_BASE(display)	((display)->dsi.mmio_base)
>  
>  #define _MIPI_PORT(port, a, c)	(((port) == PORT_A) ? a : c)	/* ports A and C only */
> -#define _MMIO_MIPI(port, a, c)	_MMIO(_MIPI_PORT(port, a, c))
> +#define _MMIO_MIPI(base, port, a, c)	_MMIO((base) + _MIPI_PORT(port, a, c))
>  
>  /* BXT MIPI mode configure */
> -#define  _BXT_MIPIA_TRANS_HACTIVE			0x6B0F8
> -#define  _BXT_MIPIC_TRANS_HACTIVE			0x6B8F8
> -#define  BXT_MIPI_TRANS_HACTIVE(tc)	_MMIO_MIPI(tc, \
> -		_BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
> +#define  _BXT_MIPIA_TRANS_HACTIVE		0xb0f8
> +#define  _BXT_MIPIC_TRANS_HACTIVE		0xb8f8
> +#define  BXT_MIPI_TRANS_HACTIVE(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
>  
> -#define  _BXT_MIPIA_TRANS_VACTIVE			0x6B0FC
> -#define  _BXT_MIPIC_TRANS_VACTIVE			0x6B8FC
> -#define  BXT_MIPI_TRANS_VACTIVE(tc)	_MMIO_MIPI(tc, \
> -		_BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
> +#define  _BXT_MIPIA_TRANS_VACTIVE		0xb0fc
> +#define  _BXT_MIPIC_TRANS_VACTIVE		0xb8fc
> +#define  BXT_MIPI_TRANS_VACTIVE(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
>  
> -#define  _BXT_MIPIA_TRANS_VTOTAL			0x6B100
> -#define  _BXT_MIPIC_TRANS_VTOTAL			0x6B900
> -#define  BXT_MIPI_TRANS_VTOTAL(tc)	_MMIO_MIPI(tc, \
> -		_BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
> +#define  _BXT_MIPIA_TRANS_VTOTAL		0xb100
> +#define  _BXT_MIPIC_TRANS_VTOTAL		0xb900
> +#define  BXT_MIPI_TRANS_VTOTAL(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
>  
>  #define BXT_P_DSI_REGULATOR_CFG			_MMIO(0x160020)
>  #define  STAP_SELECT					(1 << 0)
> @@ -38,14 +35,14 @@
>  #define BXT_P_DSI_REGULATOR_TX_CTRL		_MMIO(0x160054)
>  #define  HS_IO_CTRL_SELECT				(1 << 0)
>  
> -#define _MIPIA_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61190)
> -#define _MIPIC_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61700)
> -#define VLV_MIPI_PORT_CTRL(port)	_MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
> +#define _MIPIA_PORT_CTRL			0x61190
> +#define _MIPIC_PORT_CTRL			0x61700
> +#define VLV_MIPI_PORT_CTRL(port)		_MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
>  
>   /* BXT port control */
> -#define _BXT_MIPIA_PORT_CTRL				0x6B0C0
> -#define _BXT_MIPIC_PORT_CTRL				0x6B8C0
> -#define BXT_MIPI_PORT_CTRL(tc)	_MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
> +#define _BXT_MIPIA_PORT_CTRL			0xb0c0
> +#define _BXT_MIPIC_PORT_CTRL			0xb8c0
> +#define BXT_MIPI_PORT_CTRL(tc)			_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
>  
>  #define  DPI_ENABLE					(1 << 31) /* A + C */
>  #define  MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT		27
> @@ -87,17 +84,17 @@
>  #define  LANE_CONFIGURATION_DUAL_LINK_A			(1 << 0)
>  #define  LANE_CONFIGURATION_DUAL_LINK_B			(2 << 0)
>  
> -#define _MIPIA_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61194)
> -#define _MIPIC_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61704)
> -#define VLV_MIPI_TEARING_CTRL(port)		_MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
> +#define _MIPIA_TEARING_CTRL			0x61194
> +#define _MIPIC_TEARING_CTRL			0x61704
> +#define VLV_MIPI_TEARING_CTRL(port)			_MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
>  #define  TEARING_EFFECT_DELAY_SHIFT			0
>  #define  TEARING_EFFECT_DELAY_MASK			(0xffff << 0)
>  
>  /* MIPI DSI Controller and D-PHY registers */
>  
> -#define _MIPIA_DEVICE_READY		(_MIPI_MMIO_BASE(dev_priv) + 0xb000)
> -#define _MIPIC_DEVICE_READY		(_MIPI_MMIO_BASE(dev_priv) + 0xb800)
> -#define MIPI_DEVICE_READY(port)		_MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
> +#define _MIPIA_DEVICE_READY			0xb000
> +#define _MIPIC_DEVICE_READY			0xb800
> +#define MIPI_DEVICE_READY(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
>  #define  BUS_POSSESSION					(1 << 3) /* set to give bus to receiver */
>  #define  ULPS_STATE_MASK				(3 << 1)
>  #define  ULPS_STATE_ENTER				(2 << 1)
> @@ -105,12 +102,12 @@
>  #define  ULPS_STATE_NORMAL_OPERATION			(0 << 1)
>  #define  DEVICE_READY					(1 << 0)
>  
> -#define _MIPIA_INTR_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb004)
> -#define _MIPIC_INTR_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb804)
> -#define MIPI_INTR_STAT(port)		_MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
> -#define _MIPIA_INTR_EN			(_MIPI_MMIO_BASE(dev_priv) + 0xb008)
> -#define _MIPIC_INTR_EN			(_MIPI_MMIO_BASE(dev_priv) + 0xb808)
> -#define MIPI_INTR_EN(port)		_MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
> +#define _MIPIA_INTR_STAT			0xb004
> +#define _MIPIC_INTR_STAT			0xb804
> +#define MIPI_INTR_STAT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
> +#define _MIPIA_INTR_EN				0xb008
> +#define _MIPIC_INTR_EN				0xb808
> +#define MIPI_INTR_EN(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
>  #define  TEARING_EFFECT					(1 << 31)
>  #define  SPL_PKT_SENT_INTERRUPT				(1 << 30)
>  #define  GEN_READ_DATA_AVAIL				(1 << 29)
> @@ -144,9 +141,9 @@
>  #define  RXSOT_SYNC_ERROR				(1 << 1)
>  #define  RXSOT_ERROR					(1 << 0)
>  
> -#define _MIPIA_DSI_FUNC_PRG		(_MIPI_MMIO_BASE(dev_priv) + 0xb00c)
> -#define _MIPIC_DSI_FUNC_PRG		(_MIPI_MMIO_BASE(dev_priv) + 0xb80c)
> -#define MIPI_DSI_FUNC_PRG(port)		_MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
> +#define _MIPIA_DSI_FUNC_PRG			0xb00c
> +#define _MIPIC_DSI_FUNC_PRG			0xb80c
> +#define MIPI_DSI_FUNC_PRG(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
>  #define  CMD_MODE_DATA_WIDTH_MASK			(7 << 13)
>  #define  CMD_MODE_NOT_SUPPORTED				(0 << 13)
>  #define  CMD_MODE_DATA_WIDTH_16_BIT			(1 << 13)
> @@ -167,77 +164,77 @@
>  #define  DATA_LANES_PRG_REG_SHIFT			0
>  #define  DATA_LANES_PRG_REG_MASK			(7 << 0)
>  
> -#define _MIPIA_HS_TX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb010)
> -#define _MIPIC_HS_TX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb810)
> -#define MIPI_HS_TX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
> +#define _MIPIA_HS_TX_TIMEOUT			0xb010
> +#define _MIPIC_HS_TX_TIMEOUT			0xb810
> +#define MIPI_HS_TX_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
>  #define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK		0xffffff
>  
> -#define _MIPIA_LP_RX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb014)
> -#define _MIPIC_LP_RX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb814)
> -#define MIPI_LP_RX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
> +#define _MIPIA_LP_RX_TIMEOUT			0xb014
> +#define _MIPIC_LP_RX_TIMEOUT			0xb814
> +#define MIPI_LP_RX_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
>  #define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK		0xffffff
>  
> -#define _MIPIA_TURN_AROUND_TIMEOUT	(_MIPI_MMIO_BASE(dev_priv) + 0xb018)
> -#define _MIPIC_TURN_AROUND_TIMEOUT	(_MIPI_MMIO_BASE(dev_priv) + 0xb818)
> -#define MIPI_TURN_AROUND_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
> +#define _MIPIA_TURN_AROUND_TIMEOUT		0xb018
> +#define _MIPIC_TURN_AROUND_TIMEOUT		0xb818
> +#define MIPI_TURN_AROUND_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
>  #define  TURN_AROUND_TIMEOUT_MASK			0x3f
>  
> -#define _MIPIA_DEVICE_RESET_TIMER	(_MIPI_MMIO_BASE(dev_priv) + 0xb01c)
> -#define _MIPIC_DEVICE_RESET_TIMER	(_MIPI_MMIO_BASE(dev_priv) + 0xb81c)
> -#define MIPI_DEVICE_RESET_TIMER(port)	_MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
> +#define _MIPIA_DEVICE_RESET_TIMER		0xb01c
> +#define _MIPIC_DEVICE_RESET_TIMER		0xb81c
> +#define MIPI_DEVICE_RESET_TIMER(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
>  #define  DEVICE_RESET_TIMER_MASK			0xffff
>  
> -#define _MIPIA_DPI_RESOLUTION		(_MIPI_MMIO_BASE(dev_priv) + 0xb020)
> -#define _MIPIC_DPI_RESOLUTION		(_MIPI_MMIO_BASE(dev_priv) + 0xb820)
> -#define MIPI_DPI_RESOLUTION(port)	_MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
> +#define _MIPIA_DPI_RESOLUTION			0xb020
> +#define _MIPIC_DPI_RESOLUTION			0xb820
> +#define MIPI_DPI_RESOLUTION(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
>  #define  VERTICAL_ADDRESS_SHIFT				16
>  #define  VERTICAL_ADDRESS_MASK				(0xffff << 16)
>  #define  HORIZONTAL_ADDRESS_SHIFT			0
>  #define  HORIZONTAL_ADDRESS_MASK			0xffff
>  
> -#define _MIPIA_DBI_FIFO_THROTTLE	(_MIPI_MMIO_BASE(dev_priv) + 0xb024)
> -#define _MIPIC_DBI_FIFO_THROTTLE	(_MIPI_MMIO_BASE(dev_priv) + 0xb824)
> -#define MIPI_DBI_FIFO_THROTTLE(port)	_MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
> +#define _MIPIA_DBI_FIFO_THROTTLE		0xb024
> +#define _MIPIC_DBI_FIFO_THROTTLE		0xb824
> +#define MIPI_DBI_FIFO_THROTTLE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
>  #define  DBI_FIFO_EMPTY_HALF				(0 << 0)
>  #define  DBI_FIFO_EMPTY_QUARTER				(1 << 0)
>  #define  DBI_FIFO_EMPTY_7_LOCATIONS			(2 << 0)
>  
>  /* regs below are bits 15:0 */
> -#define _MIPIA_HSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb028)
> -#define _MIPIC_HSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb828)
> -#define MIPI_HSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
> +#define _MIPIA_HSYNC_PADDING_COUNT		0xb028
> +#define _MIPIC_HSYNC_PADDING_COUNT		0xb828
> +#define MIPI_HSYNC_PADDING_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
>  
> -#define _MIPIA_HBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb02c)
> -#define _MIPIC_HBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb82c)
> -#define MIPI_HBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
> +#define _MIPIA_HBP_COUNT			0xb02c
> +#define _MIPIC_HBP_COUNT			0xb82c
> +#define MIPI_HBP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
>  
> -#define _MIPIA_HFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb030)
> -#define _MIPIC_HFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb830)
> -#define MIPI_HFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
> +#define _MIPIA_HFP_COUNT			0xb030
> +#define _MIPIC_HFP_COUNT			0xb830
> +#define MIPI_HFP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
>  
> -#define _MIPIA_HACTIVE_AREA_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb034)
> -#define _MIPIC_HACTIVE_AREA_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb834)
> -#define MIPI_HACTIVE_AREA_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
> +#define _MIPIA_HACTIVE_AREA_COUNT		0xb034
> +#define _MIPIC_HACTIVE_AREA_COUNT		0xb834
> +#define MIPI_HACTIVE_AREA_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
>  
> -#define _MIPIA_VSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb038)
> -#define _MIPIC_VSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb838)
> -#define MIPI_VSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
> +#define _MIPIA_VSYNC_PADDING_COUNT		0xb038
> +#define _MIPIC_VSYNC_PADDING_COUNT		0xb838
> +#define MIPI_VSYNC_PADDING_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
>  
> -#define _MIPIA_VBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb03c)
> -#define _MIPIC_VBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb83c)
> -#define MIPI_VBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
> +#define _MIPIA_VBP_COUNT			0xb03c
> +#define _MIPIC_VBP_COUNT			0xb83c
> +#define MIPI_VBP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
>  
> -#define _MIPIA_VFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb040)
> -#define _MIPIC_VFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb840)
> -#define MIPI_VFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
> +#define _MIPIA_VFP_COUNT			0xb040
> +#define _MIPIC_VFP_COUNT			0xb840
> +#define MIPI_VFP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
>  
> -#define _MIPIA_HIGH_LOW_SWITCH_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb044)
> -#define _MIPIC_HIGH_LOW_SWITCH_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb844)
> -#define MIPI_HIGH_LOW_SWITCH_COUNT(port)	_MMIO_MIPI(port,	_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
> +#define _MIPIA_HIGH_LOW_SWITCH_COUNT		0xb044
> +#define _MIPIC_HIGH_LOW_SWITCH_COUNT		0xb844
> +#define MIPI_HIGH_LOW_SWITCH_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port,	_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
>  
> -#define _MIPIA_DPI_CONTROL		(_MIPI_MMIO_BASE(dev_priv) + 0xb048)
> -#define _MIPIC_DPI_CONTROL		(_MIPI_MMIO_BASE(dev_priv) + 0xb848)
> -#define MIPI_DPI_CONTROL(port)		_MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
> +#define _MIPIA_DPI_CONTROL			0xb048
> +#define _MIPIC_DPI_CONTROL			0xb848
> +#define MIPI_DPI_CONTROL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
>  #define  DPI_LP_MODE					(1 << 6)
>  #define  BACKLIGHT_OFF					(1 << 5)
>  #define  BACKLIGHT_ON					(1 << 4)
> @@ -246,28 +243,27 @@
>  #define  TURN_ON					(1 << 1)
>  #define  SHUTDOWN					(1 << 0)
>  
> -#define _MIPIA_DPI_DATA			(_MIPI_MMIO_BASE(dev_priv) + 0xb04c)
> -#define _MIPIC_DPI_DATA			(_MIPI_MMIO_BASE(dev_priv) + 0xb84c)
> -#define MIPI_DPI_DATA(port)		_MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
> +#define _MIPIA_DPI_DATA				0xb04c
> +#define _MIPIC_DPI_DATA				0xb84c
> +#define MIPI_DPI_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
>  #define  COMMAND_BYTE_SHIFT				0
>  #define  COMMAND_BYTE_MASK				(0x3f << 0)
>  
> -#define _MIPIA_INIT_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb050)
> -#define _MIPIC_INIT_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb850)
> -#define MIPI_INIT_COUNT(port)		_MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
> +#define _MIPIA_INIT_COUNT			0xb050
> +#define _MIPIC_INIT_COUNT			0xb850
> +#define MIPI_INIT_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
>  #define  MASTER_INIT_TIMER_SHIFT			0
>  #define  MASTER_INIT_TIMER_MASK				(0xffff << 0)
>  
> -#define _MIPIA_MAX_RETURN_PKT_SIZE	(_MIPI_MMIO_BASE(dev_priv) + 0xb054)
> -#define _MIPIC_MAX_RETURN_PKT_SIZE	(_MIPI_MMIO_BASE(dev_priv) + 0xb854)
> -#define MIPI_MAX_RETURN_PKT_SIZE(port)	_MMIO_MIPI(port, \
> -			_MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
> +#define _MIPIA_MAX_RETURN_PKT_SIZE		0xb054
> +#define _MIPIC_MAX_RETURN_PKT_SIZE		0xb854
> +#define MIPI_MAX_RETURN_PKT_SIZE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
>  #define  MAX_RETURN_PKT_SIZE_SHIFT			0
>  #define  MAX_RETURN_PKT_SIZE_MASK			(0x3ff << 0)
>  
> -#define _MIPIA_VIDEO_MODE_FORMAT	(_MIPI_MMIO_BASE(dev_priv) + 0xb058)
> -#define _MIPIC_VIDEO_MODE_FORMAT	(_MIPI_MMIO_BASE(dev_priv) + 0xb858)
> -#define MIPI_VIDEO_MODE_FORMAT(port)	_MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
> +#define _MIPIA_VIDEO_MODE_FORMAT		0xb058
> +#define _MIPIC_VIDEO_MODE_FORMAT		0xb858
> +#define MIPI_VIDEO_MODE_FORMAT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
>  #define  RANDOM_DPI_DISPLAY_RESOLUTION			(1 << 4)
>  #define  DISABLE_VIDEO_BTA				(1 << 3)
>  #define  IP_TG_CONFIG					(1 << 2)
> @@ -275,9 +271,9 @@
>  #define  VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS		(2 << 0)
>  #define  VIDEO_MODE_BURST				(3 << 0)
>  
> -#define _MIPIA_EOT_DISABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb05c)
> -#define _MIPIC_EOT_DISABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb85c)
> -#define MIPI_EOT_DISABLE(port)		_MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
> +#define _MIPIA_EOT_DISABLE			0xb05c
> +#define _MIPIC_EOT_DISABLE			0xb85c
> +#define MIPI_EOT_DISABLE(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
>  #define  BXT_DEFEATURE_DPI_FIFO_CTR			(1 << 9)
>  #define  BXT_DPHY_DEFEATURE_EN				(1 << 8)
>  #define  LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE		(1 << 7)
> @@ -289,36 +285,36 @@
>  #define  CLOCKSTOP					(1 << 1)
>  #define  EOT_DISABLE					(1 << 0)
>  
> -#define _MIPIA_LP_BYTECLK		(_MIPI_MMIO_BASE(dev_priv) + 0xb060)
> -#define _MIPIC_LP_BYTECLK		(_MIPI_MMIO_BASE(dev_priv) + 0xb860)
> -#define MIPI_LP_BYTECLK(port)		_MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
> +#define _MIPIA_LP_BYTECLK			0xb060
> +#define _MIPIC_LP_BYTECLK			0xb860
> +#define MIPI_LP_BYTECLK(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
>  #define  LP_BYTECLK_SHIFT				0
>  #define  LP_BYTECLK_MASK				(0xffff << 0)
>  
> -#define _MIPIA_TLPX_TIME_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb0a4)
> -#define _MIPIC_TLPX_TIME_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb8a4)
> -#define MIPI_TLPX_TIME_COUNT(port)	 _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
> +#define _MIPIA_TLPX_TIME_COUNT			0xb0a4
> +#define _MIPIC_TLPX_TIME_COUNT			0xb8a4
> +#define MIPI_TLPX_TIME_COUNT(display, port)	 _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
>  
> -#define _MIPIA_CLK_LANE_TIMING		(_MIPI_MMIO_BASE(dev_priv) + 0xb098)
> -#define _MIPIC_CLK_LANE_TIMING		(_MIPI_MMIO_BASE(dev_priv) + 0xb898)
> -#define MIPI_CLK_LANE_TIMING(port)	 _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
> +#define _MIPIA_CLK_LANE_TIMING			0xb098
> +#define _MIPIC_CLK_LANE_TIMING			0xb898
> +#define MIPI_CLK_LANE_TIMING(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
>  
>  /* bits 31:0 */
> -#define _MIPIA_LP_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb064)
> -#define _MIPIC_LP_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb864)
> -#define MIPI_LP_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
> +#define _MIPIA_LP_GEN_DATA			0xb064
> +#define _MIPIC_LP_GEN_DATA			0xb864
> +#define MIPI_LP_GEN_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
>  
>  /* bits 31:0 */
> -#define _MIPIA_HS_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb068)
> -#define _MIPIC_HS_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb868)
> -#define MIPI_HS_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
> -
> -#define _MIPIA_LP_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb06c)
> -#define _MIPIC_LP_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb86c)
> -#define MIPI_LP_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
> -#define _MIPIA_HS_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb070)
> -#define _MIPIC_HS_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb870)
> -#define MIPI_HS_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
> +#define _MIPIA_HS_GEN_DATA			0xb068
> +#define _MIPIC_HS_GEN_DATA			0xb868
> +#define MIPI_HS_GEN_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
> +
> +#define _MIPIA_LP_GEN_CTRL			0xb06c
> +#define _MIPIC_LP_GEN_CTRL			0xb86c
> +#define MIPI_LP_GEN_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
> +#define _MIPIA_HS_GEN_CTRL			0xb070
> +#define _MIPIC_HS_GEN_CTRL			0xb870
> +#define MIPI_HS_GEN_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
>  #define  LONG_PACKET_WORD_COUNT_SHIFT			8
>  #define  LONG_PACKET_WORD_COUNT_MASK			(0xffff << 8)
>  #define  SHORT_PACKET_PARAM_SHIFT			8
> @@ -329,9 +325,9 @@
>  #define  DATA_TYPE_MASK					(0x3f << 0)
>  /* data type values, see include/video/mipi_display.h */
>  
> -#define _MIPIA_GEN_FIFO_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb074)
> -#define _MIPIC_GEN_FIFO_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb874)
> -#define MIPI_GEN_FIFO_STAT(port)	_MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
> +#define _MIPIA_GEN_FIFO_STAT			0xb074
> +#define _MIPIC_GEN_FIFO_STAT			0xb874
> +#define MIPI_GEN_FIFO_STAT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
>  #define  DPI_FIFO_EMPTY					(1 << 28)
>  #define  DBI_FIFO_EMPTY					(1 << 27)
>  #define  LP_CTRL_FIFO_EMPTY				(1 << 26)
> @@ -347,16 +343,16 @@
>  #define  HS_DATA_FIFO_HALF_EMPTY			(1 << 1)
>  #define  HS_DATA_FIFO_FULL				(1 << 0)
>  
> -#define _MIPIA_HS_LS_DBI_ENABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb078)
> -#define _MIPIC_HS_LS_DBI_ENABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb878)
> -#define MIPI_HS_LP_DBI_ENABLE(port)	_MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
> +#define _MIPIA_HS_LS_DBI_ENABLE			0xb078
> +#define _MIPIC_HS_LS_DBI_ENABLE			0xb878
> +#define MIPI_HS_LP_DBI_ENABLE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
>  #define  DBI_HS_LP_MODE_MASK				(1 << 0)
>  #define  DBI_LP_MODE					(1 << 0)
>  #define  DBI_HS_MODE					(0 << 0)
>  
> -#define _MIPIA_DPHY_PARAM		(_MIPI_MMIO_BASE(dev_priv) + 0xb080)
> -#define _MIPIC_DPHY_PARAM		(_MIPI_MMIO_BASE(dev_priv) + 0xb880)
> -#define MIPI_DPHY_PARAM(port)		_MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
> +#define _MIPIA_DPHY_PARAM			0xb080
> +#define _MIPIC_DPHY_PARAM			0xb880
> +#define MIPI_DPHY_PARAM(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
>  #define  EXIT_ZERO_COUNT_SHIFT				24
>  #define  EXIT_ZERO_COUNT_MASK				(0x3f << 24)
>  #define  TRAIL_COUNT_SHIFT				16
> @@ -366,34 +362,34 @@
>  #define  PREPARE_COUNT_SHIFT				0
>  #define  PREPARE_COUNT_MASK				(0x3f << 0)
>  
> -#define _MIPIA_DBI_BW_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb084)
> -#define _MIPIC_DBI_BW_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb884)
> -#define MIPI_DBI_BW_CTRL(port)		_MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
> +#define _MIPIA_DBI_BW_CTRL			0xb084
> +#define _MIPIC_DBI_BW_CTRL			0xb884
> +#define MIPI_DBI_BW_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
>  
> -#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb088)
> -#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb888)
> -#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)	_MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
> +#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		0xb088
> +#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		0xb888
> +#define MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
>  #define  LP_HS_SSW_CNT_SHIFT				16
>  #define  LP_HS_SSW_CNT_MASK				(0xffff << 16)
>  #define  HS_LP_PWR_SW_CNT_SHIFT				0
>  #define  HS_LP_PWR_SW_CNT_MASK				(0xffff << 0)
>  
> -#define _MIPIA_STOP_STATE_STALL		(_MIPI_MMIO_BASE(dev_priv) + 0xb08c)
> -#define _MIPIC_STOP_STATE_STALL		(_MIPI_MMIO_BASE(dev_priv) + 0xb88c)
> -#define MIPI_STOP_STATE_STALL(port)	_MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
> +#define _MIPIA_STOP_STATE_STALL			0xb08c
> +#define _MIPIC_STOP_STATE_STALL			0xb88c
> +#define MIPI_STOP_STATE_STALL(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
>  #define  STOP_STATE_STALL_COUNTER_SHIFT			0
>  #define  STOP_STATE_STALL_COUNTER_MASK			(0xff << 0)
>  
> -#define _MIPIA_INTR_STAT_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb090)
> -#define _MIPIC_INTR_STAT_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb890)
> -#define MIPI_INTR_STAT_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
> -#define _MIPIA_INTR_EN_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb094)
> -#define _MIPIC_INTR_EN_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb894)
> -#define MIPI_INTR_EN_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
> +#define _MIPIA_INTR_STAT_REG_1			0xb090
> +#define _MIPIC_INTR_STAT_REG_1			0xb890
> +#define MIPI_INTR_STAT_REG_1(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
> +#define _MIPIA_INTR_EN_REG_1			0xb094
> +#define _MIPIC_INTR_EN_REG_1			0xb894
> +#define MIPI_INTR_EN_REG_1(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
>  #define  RX_CONTENTION_DETECTED				(1 << 0)
>  
>  /* XXX: only pipe A ?!? */
> -#define MIPIA_DBI_TYPEC_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb100)
> +#define MIPIA_DBI_TYPEC_CTRL(display)		(_MIPI_MMIO_BASE(display) + 0xb100)
>  #define  DBI_TYPEC_ENABLE				(1 << 31)
>  #define  DBI_TYPEC_WIP					(1 << 30)
>  #define  DBI_TYPEC_OPTION_SHIFT				28
> @@ -406,9 +402,9 @@
>  
>  /* MIPI adapter registers */
>  
> -#define _MIPIA_CTRL			(_MIPI_MMIO_BASE(dev_priv) + 0xb104)
> -#define _MIPIC_CTRL			(_MIPI_MMIO_BASE(dev_priv) + 0xb904)
> -#define MIPI_CTRL(port)			_MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL)
> +#define _MIPIA_CTRL				0xb104
> +#define _MIPIC_CTRL				0xb904
> +#define MIPI_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CTRL, _MIPIC_CTRL)
>  #define  ESCAPE_CLOCK_DIVIDER_SHIFT			5 /* A only */
>  #define  ESCAPE_CLOCK_DIVIDER_MASK			(3 << 5)
>  #define  ESCAPE_CLOCK_DIVIDER_1				(0 << 5)
> @@ -439,41 +435,41 @@
>  #define  GLK_MIPIIO_PORT_POWERED			(1 << 1) /* RO */
>  #define  GLK_MIPIIO_ENABLE				(1 << 0)
>  
> -#define _MIPIA_DATA_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb108)
> -#define _MIPIC_DATA_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb908)
> -#define MIPI_DATA_ADDRESS(port)		_MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
> +#define _MIPIA_DATA_ADDRESS			0xb108
> +#define _MIPIC_DATA_ADDRESS			0xb908
> +#define MIPI_DATA_ADDRESS(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
>  #define  DATA_MEM_ADDRESS_SHIFT				5
>  #define  DATA_MEM_ADDRESS_MASK				(0x7ffffff << 5)
>  #define  DATA_VALID					(1 << 0)
>  
> -#define _MIPIA_DATA_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb10c)
> -#define _MIPIC_DATA_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb90c)
> -#define MIPI_DATA_LENGTH(port)		_MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
> +#define _MIPIA_DATA_LENGTH			0xb10c
> +#define _MIPIC_DATA_LENGTH			0xb90c
> +#define MIPI_DATA_LENGTH(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
>  #define  DATA_LENGTH_SHIFT				0
>  #define  DATA_LENGTH_MASK				(0xfffff << 0)
>  
> -#define _MIPIA_COMMAND_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb110)
> -#define _MIPIC_COMMAND_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb910)
> -#define MIPI_COMMAND_ADDRESS(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
> +#define _MIPIA_COMMAND_ADDRESS			0xb110
> +#define _MIPIC_COMMAND_ADDRESS			0xb910
> +#define MIPI_COMMAND_ADDRESS(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
>  #define  COMMAND_MEM_ADDRESS_SHIFT			5
>  #define  COMMAND_MEM_ADDRESS_MASK			(0x7ffffff << 5)
>  #define  AUTO_PWG_ENABLE				(1 << 2)
>  #define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING		(1 << 1)
>  #define  COMMAND_VALID					(1 << 0)
>  
> -#define _MIPIA_COMMAND_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb114)
> -#define _MIPIC_COMMAND_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb914)
> -#define MIPI_COMMAND_LENGTH(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
> +#define _MIPIA_COMMAND_LENGTH			0xb114
> +#define _MIPIC_COMMAND_LENGTH			0xb914
> +#define MIPI_COMMAND_LENGTH(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
>  #define  COMMAND_LENGTH_SHIFT(n)			(8 * (n)) /* n: 0...3 */
>  #define  COMMAND_LENGTH_MASK(n)				(0xff << (8 * (n)))
>  
> -#define _MIPIA_READ_DATA_RETURN0	(_MIPI_MMIO_BASE(dev_priv) + 0xb118)
> -#define _MIPIC_READ_DATA_RETURN0	(_MIPI_MMIO_BASE(dev_priv) + 0xb918)
> -#define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */
> +#define _MIPIA_READ_DATA_RETURN0		0xb118
> +#define _MIPIC_READ_DATA_RETURN0		0xb918
> +#define MIPI_READ_DATA_RETURN(display, port, n)	_MMIO_MIPI(_MIPI_MMIO_BASE(display) + 4 * (n), port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) /* n: 0...7 */
>  
> -#define _MIPIA_READ_DATA_VALID		(_MIPI_MMIO_BASE(dev_priv) + 0xb138)
> -#define _MIPIC_READ_DATA_VALID		(_MIPI_MMIO_BASE(dev_priv) + 0xb938)
> -#define MIPI_READ_DATA_VALID(port)	_MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
> +#define _MIPIA_READ_DATA_VALID			0xb138
> +#define _MIPIC_READ_DATA_VALID			0xb938
> +#define MIPI_READ_DATA_VALID(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
>  #define  READ_DATA_VALID(n)				(1 << (n))
>  
>  #endif /* __VLV_DSI_REGS_H__ */
> -- 
> 2.39.2
>
Gustavo Sousa April 22, 2024, 9:16 p.m. UTC | #2
Quoting Rodrigo Vivi (2024-04-22 18:10:50-03:00)
>On Fri, Apr 19, 2024 at 01:04:06PM +0300, Jani Nikula wrote:
>> Stop relying on the dev_priv local variable in the DSI register
>> macros. Pass struct intel_display pointer to the macros. Move the MIPI
>> DSI MMIO base selection to a different level, passing it to _MMIO_MIPI()
>> and doing the addition there.
>> 
>> Start using the local display variable for all intel_de_* usage, and
>> opportunistically use it for other things than display registers as
>> well.
>> 
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> ---
>> 
>> Tip: Applying the patch and using 'git show --color-words' is probably
>> the easiest way to review.
>
>wow! this is indeed a nice feature for this case. I had never tried it before.
>Thanks for showing that.
>
>But the registers changes were easier to review the old way. ;)

What about --word-diff for those? :-)

--
Gustavo Sousa

>
>Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
>
>> ---
>>  drivers/gpu/drm/i915/display/intel_display.c |   8 +-
>>  drivers/gpu/drm/i915/display/vlv_dsi.c       | 337 ++++++++++---------
>>  drivers/gpu/drm/i915/display/vlv_dsi_pll.c   |  22 +-
>>  drivers/gpu/drm/i915/display/vlv_dsi_regs.h  | 324 +++++++++---------
>>  4 files changed, 349 insertions(+), 342 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> index 96ed1490fec7..b9434465d3a7 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> @@ -3722,8 +3722,8 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>>                                           struct intel_crtc_state *pipe_config,
>>                                           struct intel_display_power_domain_set *power_domain_set)
>>  {
>> -        struct drm_device *dev = crtc->base.dev;
>> -        struct drm_i915_private *dev_priv = to_i915(dev);
>> +        struct intel_display *display = to_intel_display(crtc);
>> +        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>>          enum transcoder cpu_transcoder;
>>          enum port port;
>>          u32 tmp;
>> @@ -3749,11 +3749,11 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
>>                          break;
>>  
>>                  /* XXX: this works for video mode only */
>> -                tmp = intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port));
>> +                tmp = intel_de_read(display, BXT_MIPI_PORT_CTRL(port));
>>                  if (!(tmp & DPI_ENABLE))
>>                          continue;
>>  
>> -                tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
>> +                tmp = intel_de_read(display, MIPI_CTRL(display, port));
>>                  if ((tmp & BXT_PIPE_SELECT_MASK) != BXT_PIPE_SELECT(crtc->pipe))
>>                          continue;
>>  
>> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
>> index 9967ef58f1ec..ee9923c7b115 100644
>> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
>> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
>> @@ -85,18 +85,18 @@ enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
>>  
>>  void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
>> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
>>          u32 mask;
>>  
>>          mask = LP_CTRL_FIFO_EMPTY | HS_CTRL_FIFO_EMPTY |
>>                  LP_DATA_FIFO_EMPTY | HS_DATA_FIFO_EMPTY;
>>  
>> -        if (intel_de_wait_for_set(dev_priv, MIPI_GEN_FIFO_STAT(port),
>> +        if (intel_de_wait_for_set(display, MIPI_GEN_FIFO_STAT(display, port),
>>                                    mask, 100))
>> -                drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n");
>> +                drm_err(display->drm, "DPI FIFOs are not empty\n");
>>  }
>>  
>> -static void write_data(struct drm_i915_private *dev_priv,
>> +static void write_data(struct intel_display *display,
>>                         i915_reg_t reg,
>>                         const u8 *data, u32 len)
>>  {
>> @@ -108,18 +108,18 @@ static void write_data(struct drm_i915_private *dev_priv,
>>                  for (j = 0; j < min_t(u32, len - i, 4); j++)
>>                          val |= *data++ << 8 * j;
>>  
>> -                intel_de_write(dev_priv, reg, val);
>> +                intel_de_write(display, reg, val);
>>          }
>>  }
>>  
>> -static void read_data(struct drm_i915_private *dev_priv,
>> +static void read_data(struct intel_display *display,
>>                        i915_reg_t reg,
>>                        u8 *data, u32 len)
>>  {
>>          u32 i, j;
>>  
>>          for (i = 0; i < len; i += 4) {
>> -                u32 val = intel_de_read(dev_priv, reg);
>> +                u32 val = intel_de_read(display, reg);
>>  
>>                  for (j = 0; j < min_t(u32, len - i, 4); j++)
>>                          *data++ = val >> 8 * j;
>> @@ -131,7 +131,7 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
>>  {
>>          struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host);
>>          struct intel_dsi *intel_dsi = intel_dsi_host->intel_dsi;
>> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
>> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
>>          enum port port = intel_dsi_host->port;
>>          struct mipi_dsi_packet packet;
>>          ssize_t ret;
>> @@ -146,51 +146,51 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
>>          header = packet.header;
>>  
>>          if (msg->flags & MIPI_DSI_MSG_USE_LPM) {
>> -                data_reg = MIPI_LP_GEN_DATA(port);
>> +                data_reg = MIPI_LP_GEN_DATA(display, port);
>>                  data_mask = LP_DATA_FIFO_FULL;
>> -                ctrl_reg = MIPI_LP_GEN_CTRL(port);
>> +                ctrl_reg = MIPI_LP_GEN_CTRL(display, port);
>>                  ctrl_mask = LP_CTRL_FIFO_FULL;
>>          } else {
>> -                data_reg = MIPI_HS_GEN_DATA(port);
>> +                data_reg = MIPI_HS_GEN_DATA(display, port);
>>                  data_mask = HS_DATA_FIFO_FULL;
>> -                ctrl_reg = MIPI_HS_GEN_CTRL(port);
>> +                ctrl_reg = MIPI_HS_GEN_CTRL(display, port);
>>                  ctrl_mask = HS_CTRL_FIFO_FULL;
>>          }
>>  
>>          /* note: this is never true for reads */
>>          if (packet.payload_length) {
>> -                if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
>> +                if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
>>                                              data_mask, 50))
>> -                        drm_err(&dev_priv->drm,
>> +                        drm_err(display->drm,
>>                                  "Timeout waiting for HS/LP DATA FIFO !full\n");
>>  
>> -                write_data(dev_priv, data_reg, packet.payload,
>> +                write_data(display, data_reg, packet.payload,
>>                             packet.payload_length);
>>          }
>>  
>>          if (msg->rx_len) {
>> -                intel_de_write(dev_priv, MIPI_INTR_STAT(port),
>> +                intel_de_write(display, MIPI_INTR_STAT(display, port),
>>                                 GEN_READ_DATA_AVAIL);
>>          }
>>  
>> -        if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
>> +        if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
>>                                      ctrl_mask, 50)) {
>> -                drm_err(&dev_priv->drm,
>> +                drm_err(display->drm,
>>                          "Timeout waiting for HS/LP CTRL FIFO !full\n");
>>          }
>>  
>> -        intel_de_write(dev_priv, ctrl_reg,
>> +        intel_de_write(display, ctrl_reg,
>>                         header[2] << 16 | header[1] << 8 | header[0]);
>>  
>>          /* ->rx_len is set only for reads */
>>          if (msg->rx_len) {
>>                  data_mask = GEN_READ_DATA_AVAIL;
>> -                if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port),
>> +                if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port),
>>                                            data_mask, 50))
>> -                        drm_err(&dev_priv->drm,
>> +                        drm_err(display->drm,
>>                                  "Timeout waiting for read data.\n");
>>  
>> -                read_data(dev_priv, data_reg, msg->rx_buf, msg->rx_len);
>> +                read_data(display, data_reg, msg->rx_buf, msg->rx_len);
>>          }
>>  
>>          /* XXX: fix for reads and writes */
>> @@ -223,7 +223,7 @@ static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
>>  static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
>>                          enum port port)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
>> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
>>          u32 mask;
>>  
>>          /* XXX: pipe, hs */
>> @@ -233,18 +233,18 @@ static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
>>                  cmd |= DPI_LP_MODE;
>>  
>>          /* clear bit */
>> -        intel_de_write(dev_priv, MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);
>> +        intel_de_write(display, MIPI_INTR_STAT(display, port), SPL_PKT_SENT_INTERRUPT);
>>  
>>          /* XXX: old code skips write if control unchanged */
>> -        if (cmd == intel_de_read(dev_priv, MIPI_DPI_CONTROL(port)))
>> -                drm_dbg_kms(&dev_priv->drm,
>> +        if (cmd == intel_de_read(display, MIPI_DPI_CONTROL(display, port)))
>> +                drm_dbg_kms(display->drm,
>>                              "Same special packet %02x twice in a row.\n", cmd);
>>  
>> -        intel_de_write(dev_priv, MIPI_DPI_CONTROL(port), cmd);
>> +        intel_de_write(display, MIPI_DPI_CONTROL(display, port), cmd);
>>  
>>          mask = SPL_PKT_SENT_INTERRUPT;
>> -        if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port), mask, 100))
>> -                drm_err(&dev_priv->drm,
>> +        if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port), mask, 100))
>> +                drm_err(display->drm,
>>                          "Video mode command 0x%08x send failed.\n", cmd);
>>  
>>          return 0;
>> @@ -324,7 +324,7 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder,
>>  
>>  static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>          bool cold_boot = false;
>> @@ -334,29 +334,30 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>>           * Power ON MIPI IO first and then write into IO reset and LP wake bits
>>           */
>>          for_each_dsi_port(port, intel_dsi->ports)
>> -                intel_de_rmw(dev_priv, MIPI_CTRL(port), 0, GLK_MIPIIO_ENABLE);
>> +                intel_de_rmw(display, MIPI_CTRL(display, port), 0, GLK_MIPIIO_ENABLE);
>>  
>>          /* Put the IO into reset */
>> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>>  
>>          /* Program LP Wake */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                u32 tmp = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
>> -                intel_de_rmw(dev_priv, MIPI_CTRL(port),
>> +                u32 tmp = intel_de_read(display, MIPI_DEVICE_READY(display, port));
>> +
>> +                intel_de_rmw(display, MIPI_CTRL(display, port),
>>                               GLK_LP_WAKE, (tmp & DEVICE_READY) ? GLK_LP_WAKE : 0);
>>          }
>>  
>>          /* Wait for Pwr ACK */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>>                                            GLK_MIPIIO_PORT_POWERED, 20))
>> -                        drm_err(&dev_priv->drm, "MIPIO port is powergated\n");
>> +                        drm_err(display->drm, "MIPIO port is powergated\n");
>>          }
>>  
>>          /* Check for cold boot scenario */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>>                  cold_boot |=
>> -                        !(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY);
>> +                        !(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY);
>>          }
>>  
>>          return cold_boot;
>> @@ -364,99 +365,100 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
>>  
>>  static void glk_dsi_device_ready(struct intel_encoder *encoder)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>>          /* Wait for MIPI PHY status bit to set */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>>                                            GLK_PHY_STATUS_PORT_READY, 20))
>> -                        drm_err(&dev_priv->drm, "PHY is not ON\n");
>> +                        drm_err(display->drm, "PHY is not ON\n");
>>          }
>>  
>>          /* Get IO out of reset */
>> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
>> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
>>  
>>          /* Get IO out of Low power state*/
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY)) {
>> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
>> +                if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY)) {
>> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>>                                       ULPS_STATE_MASK, DEVICE_READY);
>>                          usleep_range(10, 15);
>>                  } else {
>>                          /* Enter ULPS */
>> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
>> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>>                                       ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
>>  
>>                          /* Wait for ULPS active */
>> -                        if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
>> +                        if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>>                                                      GLK_ULPS_NOT_ACTIVE, 20))
>> -                                drm_err(&dev_priv->drm, "ULPS not active\n");
>> +                                drm_err(display->drm, "ULPS not active\n");
>>  
>>                          /* Exit ULPS */
>> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
>> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>>                                       ULPS_STATE_MASK, ULPS_STATE_EXIT | DEVICE_READY);
>>  
>>                          /* Enter Normal Mode */
>> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
>> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>>                                       ULPS_STATE_MASK,
>>                                       ULPS_STATE_NORMAL_OPERATION | DEVICE_READY);
>>  
>> -                        intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_LP_WAKE, 0);
>> +                        intel_de_rmw(display, MIPI_CTRL(display, port), GLK_LP_WAKE, 0);
>>                  }
>>          }
>>  
>>          /* Wait for Stop state */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
>>                                            GLK_DATA_LANE_STOP_STATE, 20))
>> -                        drm_err(&dev_priv->drm,
>> +                        drm_err(display->drm,
>>                                  "Date lane not in STOP state\n");
>>          }
>>  
>>          /* Wait for AFE LATCH */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_set(dev_priv, BXT_MIPI_PORT_CTRL(port),
>> +                if (intel_de_wait_for_set(display, BXT_MIPI_PORT_CTRL(port),
>>                                            AFE_LATCHOUT, 20))
>> -                        drm_err(&dev_priv->drm,
>> +                        drm_err(display->drm,
>>                                  "D-PHY not entering LP-11 state\n");
>>          }
>>  }
>>  
>>  static void bxt_dsi_device_ready(struct intel_encoder *encoder)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>          u32 val;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>  
>>          /* Enable MIPI PHY transparent latch */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                intel_de_rmw(dev_priv, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
>> +                intel_de_rmw(display, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
>>                  usleep_range(2000, 2500);
>>          }
>>  
>>          /* Clear ULPS and set device ready */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                val = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
>> +                val = intel_de_read(display, MIPI_DEVICE_READY(display, port));
>>                  val &= ~ULPS_STATE_MASK;
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
>>                  usleep_range(2000, 2500);
>>                  val |= DEVICE_READY;
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
>>          }
>>  }
>>  
>>  static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>  
>>          vlv_flisdsi_get(dev_priv);
>>          /* program rcomp for compliance, reduce from 50 ohms to 45 ohms
>> @@ -469,7 +471,7 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>>  
>>          for_each_dsi_port(port, intel_dsi->ports) {
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 ULPS_STATE_ENTER);
>>                  usleep_range(2500, 3000);
>>  
>> @@ -477,14 +479,14 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
>>                   * Common bit for both MIPI Port A & MIPI Port C
>>                   * No similar bit in MIPI Port C reg
>>                   */
>> -                intel_de_rmw(dev_priv, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
>> +                intel_de_rmw(display, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
>>                  usleep_range(1000, 1500);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 ULPS_STATE_EXIT);
>>                  usleep_range(2500, 3000);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 DEVICE_READY);
>>                  usleep_range(2500, 3000);
>>          }
>> @@ -504,50 +506,50 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
>>  
>>  static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>>          /* Enter ULPS */
>>          for_each_dsi_port(port, intel_dsi->ports)
>> -                intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
>>                               ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
>>  
>>          /* Wait for MIPI PHY status bit to unset */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>>                                              GLK_PHY_STATUS_PORT_READY, 20))
>> -                        drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
>> +                        drm_err(display->drm, "PHY is not turning OFF\n");
>>          }
>>  
>>          /* Wait for Pwr ACK bit to unset */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>>                                              GLK_MIPIIO_PORT_POWERED, 20))
>> -                        drm_err(&dev_priv->drm,
>> +                        drm_err(display->drm,
>>                                  "MIPI IO Port is not powergated\n");
>>          }
>>  }
>>  
>>  static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>>          /* Put the IO into reset */
>> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
>>  
>>          /* Wait for MIPI PHY status bit to unset */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
>> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
>>                                              GLK_PHY_STATUS_PORT_READY, 20))
>> -                        drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
>> +                        drm_err(display->drm, "PHY is not turning OFF\n");
>>          }
>>  
>>          /* Clear MIPI mode */
>>          for_each_dsi_port(port, intel_dsi->ports)
>> -                intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_MIPIIO_ENABLE, 0);
>> +                intel_de_rmw(display, MIPI_CTRL(display, port), GLK_MIPIIO_ENABLE, 0);
>>  }
>>  
>>  static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
>> @@ -564,25 +566,26 @@ static i915_reg_t port_ctrl_reg(struct drm_i915_private *i915, enum port port)
>>  
>>  static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>          for_each_dsi_port(port, intel_dsi->ports) {
>>                  /* Common bit for both MIPI Port A & MIPI Port C on VLV/CHV */
>>                  i915_reg_t port_ctrl = IS_BROXTON(dev_priv) ?
>>                          BXT_MIPI_PORT_CTRL(port) : VLV_MIPI_PORT_CTRL(PORT_A);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 DEVICE_READY | ULPS_STATE_ENTER);
>>                  usleep_range(2000, 2500);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 DEVICE_READY | ULPS_STATE_EXIT);
>>                  usleep_range(2000, 2500);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
>>                                 DEVICE_READY | ULPS_STATE_ENTER);
>>                  usleep_range(2000, 2500);
>>  
>> @@ -591,15 +594,15 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>>                   * Port A only. MIPI Port C has no similar bit for checking.
>>                   */
>>                  if ((IS_BROXTON(dev_priv) || port == PORT_A) &&
>> -                    intel_de_wait_for_clear(dev_priv, port_ctrl,
>> +                    intel_de_wait_for_clear(display, port_ctrl,
>>                                              AFE_LATCHOUT, 30))
>> -                        drm_err(&dev_priv->drm, "DSI LP not going Low\n");
>> +                        drm_err(display->drm, "DSI LP not going Low\n");
>>  
>>                  /* Disable MIPI PHY transparent latch */
>> -                intel_de_rmw(dev_priv, port_ctrl, LP_OUTPUT_HOLD, 0);
>> +                intel_de_rmw(display, port_ctrl, LP_OUTPUT_HOLD, 0);
>>                  usleep_range(1000, 1500);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x00);
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x00);
>>                  usleep_range(2000, 2500);
>>          }
>>  }
>> @@ -607,6 +610,7 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
>>  static void intel_dsi_port_enable(struct intel_encoder *encoder,
>>                                    const struct intel_crtc_state *crtc_state)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>> @@ -617,11 +621,11 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>>  
>>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>>                          for_each_dsi_port(port, intel_dsi->ports)
>> -                                intel_de_rmw(dev_priv, MIPI_CTRL(port),
>> +                                intel_de_rmw(display, MIPI_CTRL(display, port),
>>                                               BXT_PIXEL_OVERLAP_CNT_MASK,
>>                                               temp << BXT_PIXEL_OVERLAP_CNT_SHIFT);
>>                  } else {
>> -                        intel_de_rmw(dev_priv, VLV_CHICKEN_3,
>> +                        intel_de_rmw(display, VLV_CHICKEN_3,
>>                                       PIXEL_OVERLAP_CNT_MASK,
>>                                       temp << PIXEL_OVERLAP_CNT_SHIFT);
>>                  }
>> @@ -631,7 +635,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
>>                  u32 temp;
>>  
>> -                temp = intel_de_read(dev_priv, port_ctrl);
>> +                temp = intel_de_read(display, port_ctrl);
>>  
>>                  temp &= ~LANE_CONFIGURATION_MASK;
>>                  temp &= ~DUAL_LINK_MODE_MASK;
>> @@ -651,13 +655,14 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
>>                          temp |= DITHERING_ENABLE;
>>  
>>                  /* assert ip_tg_enable signal */
>> -                intel_de_write(dev_priv, port_ctrl, temp | DPI_ENABLE);
>> -                intel_de_posting_read(dev_priv, port_ctrl);
>> +                intel_de_write(display, port_ctrl, temp | DPI_ENABLE);
>> +                intel_de_posting_read(display, port_ctrl);
>>          }
>>  }
>>  
>>  static void intel_dsi_port_disable(struct intel_encoder *encoder)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>> @@ -666,8 +671,8 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
>>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
>>  
>>                  /* de-assert ip_tg_enable signal */
>> -                intel_de_rmw(dev_priv, port_ctrl, DPI_ENABLE, 0);
>> -                intel_de_posting_read(dev_priv, port_ctrl);
>> +                intel_de_rmw(display, port_ctrl, DPI_ENABLE, 0);
>> +                intel_de_posting_read(display, port_ctrl);
>>          }
>>  }
>>  
>> @@ -721,6 +726,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>>                                   const struct intel_crtc_state *pipe_config,
>>                                   const struct drm_connector_state *conn_state)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>>          struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>> @@ -728,7 +734,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>>          enum port port;
>>          bool glk_cold_boot = false;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>  
>>          intel_dsi_wait_panel_power_cycle(intel_dsi);
>>  
>> @@ -748,16 +754,16 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>>  
>>          if (IS_BROXTON(dev_priv)) {
>>                  /* Add MIPI IO reset programming for modeset */
>> -                intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
>> +                intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
>>  
>>                  /* Power up DSI regulator */
>> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
>> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
>> +                intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
>> +                intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
>>          }
>>  
>>          if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
>>                  /* Disable DPOunit clock gating, can stall pipe */
>> -                intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
>> +                intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
>>                               0, DPOUNIT_CLOCK_GATE_DISABLE);
>>          }
>>  
>> @@ -793,8 +799,8 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
>>           */
>>          if (is_cmd_mode(intel_dsi)) {
>>                  for_each_dsi_port(port, intel_dsi->ports)
>> -                        intel_de_write(dev_priv,
>> -                                       MIPI_MAX_RETURN_PKT_SIZE(port), 8 * 4);
>> +                        intel_de_write(display,
>> +                                       MIPI_MAX_RETURN_PKT_SIZE(display, port), 8 * 4);
>>                  intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON);
>>                  intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON);
>>          } else {
>> @@ -866,11 +872,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>>                                     const struct intel_crtc_state *old_crtc_state,
>>                                     const struct drm_connector_state *old_conn_state)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>  
>>          if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>>                  intel_crtc_vblank_off(old_crtc_state);
>> @@ -901,12 +908,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>>  
>>          if (IS_BROXTON(dev_priv)) {
>>                  /* Power down DSI regulator to save power */
>> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
>> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL,
>> +                intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
>> +                intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL,
>>                                 HS_IO_CTRL_SELECT);
>>  
>>                  /* Add MIPI IO reset programming for modeset */
>> -                intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
>> +                intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
>>          }
>>  
>>          if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>> @@ -914,7 +921,7 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>>          } else {
>>                  vlv_dsi_pll_disable(encoder);
>>  
>> -                intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
>> +                intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
>>                               DPOUNIT_CLOCK_GATE_DISABLE, 0);
>>          }
>>  
>> @@ -930,13 +937,14 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
>>  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>>                                     enum pipe *pipe)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          intel_wakeref_t wakeref;
>>          enum port port;
>>          bool active = false;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "\n");
>> +        drm_dbg_kms(display->drm, "\n");
>>  
>>          wakeref = intel_display_power_get_if_enabled(dev_priv,
>>                                                       encoder->power_domain);
>> @@ -955,7 +963,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>>          /* XXX: this only works for one DSI output */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
>> -                bool enabled = intel_de_read(dev_priv, port_ctrl) & DPI_ENABLE;
>> +                bool enabled = intel_de_read(display, port_ctrl) & DPI_ENABLE;
>>  
>>                  /*
>>                   * Due to some hardware limitations on VLV/CHV, the DPI enable
>> @@ -964,27 +972,27 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>>                   */
>>                  if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
>>                      port == PORT_C)
>> -                        enabled = intel_de_read(dev_priv, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
>> +                        enabled = intel_de_read(display, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
>>  
>>                  /* Try command mode if video mode not enabled */
>>                  if (!enabled) {
>> -                        u32 tmp = intel_de_read(dev_priv,
>> -                                                MIPI_DSI_FUNC_PRG(port));
>> +                        u32 tmp = intel_de_read(display,
>> +                                                MIPI_DSI_FUNC_PRG(display, port));
>>                          enabled = tmp & CMD_MODE_DATA_WIDTH_MASK;
>>                  }
>>  
>>                  if (!enabled)
>>                          continue;
>>  
>> -                if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY))
>> +                if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY))
>>                          continue;
>>  
>>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>> -                        u32 tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
>> +                        u32 tmp = intel_de_read(display, MIPI_CTRL(display, port));
>>                          tmp &= BXT_PIPE_SELECT_MASK;
>>                          tmp >>= BXT_PIPE_SELECT_SHIFT;
>>  
>> -                        if (drm_WARN_ON(&dev_priv->drm, tmp > PIPE_C))
>> +                        if (drm_WARN_ON(display->drm, tmp > PIPE_C))
>>                                  continue;
>>  
>>                          *pipe = tmp;
>> @@ -1005,7 +1013,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
>>  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>>                                      struct intel_crtc_state *pipe_config)
>>  {
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_display_mode *adjusted_mode =
>>                                          &pipe_config->hw.adjusted_mode;
>>          struct drm_display_mode *adjusted_mode_sw;
>> @@ -1027,11 +1035,11 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>>           * encoder->get_hw_state() returns true.
>>           */
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                if (intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
>> +                if (intel_de_read(display, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
>>                          break;
>>          }
>>  
>> -        fmt = intel_de_read(dev_priv, MIPI_DSI_FUNC_PRG(port)) & VID_MODE_FORMAT_MASK;
>> +        fmt = intel_de_read(display, MIPI_DSI_FUNC_PRG(display, port)) & VID_MODE_FORMAT_MASK;
>>          bpp = mipi_dsi_pixel_format_to_bpp(
>>                          pixel_format_from_register_bits(fmt));
>>  
>> @@ -1043,24 +1051,24 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>>  
>>          /* In terms of pixels */
>>          adjusted_mode->crtc_hdisplay =
>> -                                intel_de_read(dev_priv,
>> +                                intel_de_read(display,
>>                                                BXT_MIPI_TRANS_HACTIVE(port));
>>          adjusted_mode->crtc_vdisplay =
>> -                                intel_de_read(dev_priv,
>> +                                intel_de_read(display,
>>                                                BXT_MIPI_TRANS_VACTIVE(port));
>>          adjusted_mode->crtc_vtotal =
>> -                                intel_de_read(dev_priv,
>> +                                intel_de_read(display,
>>                                                BXT_MIPI_TRANS_VTOTAL(port));
>>  
>>          hactive = adjusted_mode->crtc_hdisplay;
>> -        hfp = intel_de_read(dev_priv, MIPI_HFP_COUNT(port));
>> +        hfp = intel_de_read(display, MIPI_HFP_COUNT(display, port));
>>  
>>          /*
>>           * Meaningful for video mode non-burst sync pulse mode only,
>>           * can be zero for non-burst sync events and burst modes
>>           */
>> -        hsync = intel_de_read(dev_priv, MIPI_HSYNC_PADDING_COUNT(port));
>> -        hbp = intel_de_read(dev_priv, MIPI_HBP_COUNT(port));
>> +        hsync = intel_de_read(display, MIPI_HSYNC_PADDING_COUNT(display, port));
>> +        hbp = intel_de_read(display, MIPI_HBP_COUNT(display, port));
>>  
>>          /* harizontal values are in terms of high speed byte clock */
>>          hfp = pixels_from_txbyteclkhs(hfp, bpp, lane_count,
>> @@ -1077,8 +1085,8 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
>>          }
>>  
>>          /* vertical values are in terms of lines */
>> -        vfp = intel_de_read(dev_priv, MIPI_VFP_COUNT(port));
>> -        vsync = intel_de_read(dev_priv, MIPI_VSYNC_PADDING_COUNT(port));
>> +        vfp = intel_de_read(display, MIPI_VFP_COUNT(display, port));
>> +        vsync = intel_de_read(display, MIPI_VSYNC_PADDING_COUNT(display, port));
>>  
>>          adjusted_mode->crtc_htotal = hactive + hfp + hsync + hbp;
>>          adjusted_mode->crtc_hsync_start = hfp + adjusted_mode->crtc_hdisplay;
>> @@ -1207,6 +1215,7 @@ static u16 txclkesc(u32 divider, unsigned int us)
>>  static void set_dsi_timings(struct intel_encoder *encoder,
>>                              const struct drm_display_mode *adjusted_mode)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>> @@ -1249,29 +1258,29 @@ static void set_dsi_timings(struct intel_encoder *encoder,
>>                           * vactive, as they are calculated per channel basis,
>>                           * whereas these values should be based on resolution.
>>                           */
>> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_HACTIVE(port),
>> +                        intel_de_write(display, BXT_MIPI_TRANS_HACTIVE(port),
>>                                         adjusted_mode->crtc_hdisplay);
>> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_VACTIVE(port),
>> +                        intel_de_write(display, BXT_MIPI_TRANS_VACTIVE(port),
>>                                         adjusted_mode->crtc_vdisplay);
>> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_VTOTAL(port),
>> +                        intel_de_write(display, BXT_MIPI_TRANS_VTOTAL(port),
>>                                         adjusted_mode->crtc_vtotal);
>>                  }
>>  
>> -                intel_de_write(dev_priv, MIPI_HACTIVE_AREA_COUNT(port),
>> +                intel_de_write(display, MIPI_HACTIVE_AREA_COUNT(display, port),
>>                                 hactive);
>> -                intel_de_write(dev_priv, MIPI_HFP_COUNT(port), hfp);
>> +                intel_de_write(display, MIPI_HFP_COUNT(display, port), hfp);
>>  
>>                  /* meaningful for video mode non-burst sync pulse mode only,
>>                   * can be zero for non-burst sync events and burst modes */
>> -                intel_de_write(dev_priv, MIPI_HSYNC_PADDING_COUNT(port),
>> +                intel_de_write(display, MIPI_HSYNC_PADDING_COUNT(display, port),
>>                                 hsync);
>> -                intel_de_write(dev_priv, MIPI_HBP_COUNT(port), hbp);
>> +                intel_de_write(display, MIPI_HBP_COUNT(display, port), hbp);
>>  
>>                  /* vertical values are in terms of lines */
>> -                intel_de_write(dev_priv, MIPI_VFP_COUNT(port), vfp);
>> -                intel_de_write(dev_priv, MIPI_VSYNC_PADDING_COUNT(port),
>> +                intel_de_write(display, MIPI_VFP_COUNT(display, port), vfp);
>> +                intel_de_write(display, MIPI_VSYNC_PADDING_COUNT(display, port),
>>                                 vsync);
>> -                intel_de_write(dev_priv, MIPI_VBP_COUNT(port), vbp);
>> +                intel_de_write(display, MIPI_VBP_COUNT(display, port), vbp);
>>          }
>>  }
>>  
>> @@ -1295,6 +1304,7 @@ static u32 pixel_format_to_reg(enum mipi_dsi_pixel_format fmt)
>>  static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                                const struct intel_crtc_state *pipe_config)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>> @@ -1304,7 +1314,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>          u32 val, tmp;
>>          u16 mode_hdisplay;
>>  
>> -        drm_dbg_kms(&dev_priv->drm, "pipe %c\n", pipe_name(crtc->pipe));
>> +        drm_dbg_kms(display->drm, "pipe %c\n", pipe_name(crtc->pipe));
>>  
>>          mode_hdisplay = adjusted_mode->crtc_hdisplay;
>>  
>> @@ -1320,31 +1330,31 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                           * escape clock divider, 20MHz, shared for A and C.
>>                           * device ready must be off when doing this! txclkesc?
>>                           */
>> -                        tmp = intel_de_read(dev_priv, MIPI_CTRL(PORT_A));
>> +                        tmp = intel_de_read(display, MIPI_CTRL(display, PORT_A));
>>                          tmp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
>> -                        intel_de_write(dev_priv, MIPI_CTRL(PORT_A),
>> +                        intel_de_write(display, MIPI_CTRL(display, PORT_A),
>>                                         tmp | ESCAPE_CLOCK_DIVIDER_1);
>>  
>>                          /* read request priority is per pipe */
>> -                        tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
>> +                        tmp = intel_de_read(display, MIPI_CTRL(display, port));
>>                          tmp &= ~READ_REQUEST_PRIORITY_MASK;
>> -                        intel_de_write(dev_priv, MIPI_CTRL(port),
>> +                        intel_de_write(display, MIPI_CTRL(display, port),
>>                                         tmp | READ_REQUEST_PRIORITY_HIGH);
>>                  } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
>>                          enum pipe pipe = crtc->pipe;
>>  
>> -                        intel_de_rmw(dev_priv, MIPI_CTRL(port),
>> +                        intel_de_rmw(display, MIPI_CTRL(display, port),
>>                                       BXT_PIPE_SELECT_MASK, BXT_PIPE_SELECT(pipe));
>>                  }
>>  
>>                  /* XXX: why here, why like this? handling in irq handler?! */
>> -                intel_de_write(dev_priv, MIPI_INTR_STAT(port), 0xffffffff);
>> -                intel_de_write(dev_priv, MIPI_INTR_EN(port), 0xffffffff);
>> +                intel_de_write(display, MIPI_INTR_STAT(display, port), 0xffffffff);
>> +                intel_de_write(display, MIPI_INTR_EN(display, port), 0xffffffff);
>>  
>> -                intel_de_write(dev_priv, MIPI_DPHY_PARAM(port),
>> +                intel_de_write(display, MIPI_DPHY_PARAM(display, port),
>>                                 intel_dsi->dphy_reg);
>>  
>> -                intel_de_write(dev_priv, MIPI_DPI_RESOLUTION(port),
>> +                intel_de_write(display, MIPI_DPI_RESOLUTION(display, port),
>>                                 adjusted_mode->crtc_vdisplay << VERTICAL_ADDRESS_SHIFT | mode_hdisplay << HORIZONTAL_ADDRESS_SHIFT);
>>          }
>>  
>> @@ -1372,7 +1382,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>          }
>>  
>>          for_each_dsi_port(port, intel_dsi->ports) {
>> -                intel_de_write(dev_priv, MIPI_DSI_FUNC_PRG(port), val);
>> +                intel_de_write(display, MIPI_DSI_FUNC_PRG(display, port), val);
>>  
>>                  /* timeouts for recovery. one frame IIUC. if counter expires,
>>                   * EOT and stop state. */
>> @@ -1393,23 +1403,23 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>  
>>                  if (is_vid_mode(intel_dsi) &&
>>                          intel_dsi->video_mode == BURST_MODE) {
>> -                        intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
>> +                        intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
>>                                         txbyteclkhs(adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
>>                  } else {
>> -                        intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
>> +                        intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
>>                                         txbyteclkhs(adjusted_mode->crtc_vtotal * adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
>>                  }
>> -                intel_de_write(dev_priv, MIPI_LP_RX_TIMEOUT(port),
>> +                intel_de_write(display, MIPI_LP_RX_TIMEOUT(display, port),
>>                                 intel_dsi->lp_rx_timeout);
>> -                intel_de_write(dev_priv, MIPI_TURN_AROUND_TIMEOUT(port),
>> +                intel_de_write(display, MIPI_TURN_AROUND_TIMEOUT(display, port),
>>                                 intel_dsi->turn_arnd_val);
>> -                intel_de_write(dev_priv, MIPI_DEVICE_RESET_TIMER(port),
>> +                intel_de_write(display, MIPI_DEVICE_RESET_TIMER(display, port),
>>                                 intel_dsi->rst_timer_val);
>>  
>>                  /* dphy stuff */
>>  
>>                  /* in terms of low power clock */
>> -                intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
>> +                intel_de_write(display, MIPI_INIT_COUNT(display, port),
>>                                 txclkesc(intel_dsi->escape_clk_div, 100));
>>  
>>                  if ((IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) &&
>> @@ -1420,16 +1430,16 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                           * getting used. So write the other port
>>                           * if not in dual link mode.
>>                           */
>> -                        intel_de_write(dev_priv,
>> -                                       MIPI_INIT_COUNT(port == PORT_A ? PORT_C : PORT_A),
>> +                        intel_de_write(display,
>> +                                       MIPI_INIT_COUNT(display, port == PORT_A ? PORT_C : PORT_A),
>>                                         intel_dsi->init_count);
>>                  }
>>  
>>                  /* recovery disables */
>> -                intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), tmp);
>> +                intel_de_write(display, MIPI_EOT_DISABLE(display, port), tmp);
>>  
>>                  /* in terms of low power clock */
>> -                intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
>> +                intel_de_write(display, MIPI_INIT_COUNT(display, port),
>>                                 intel_dsi->init_count);
>>  
>>                  /* in terms of txbyteclkhs. actual high to low switch +
>> @@ -1437,7 +1447,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                   *
>>                   * XXX: write MIPI_STOP_STATE_STALL?
>>                   */
>> -                intel_de_write(dev_priv, MIPI_HIGH_LOW_SWITCH_COUNT(port),
>> +                intel_de_write(display, MIPI_HIGH_LOW_SWITCH_COUNT(display, port),
>>                                 intel_dsi->hs_to_lp_count);
>>  
>>                  /* XXX: low power clock equivalence in terms of byte clock.
>> @@ -1446,14 +1456,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                   * txclkesc time / txbyteclk time * (105 + MIPI_STOP_STATE_STALL
>>                   * ) / 105.???
>>                   */
>> -                intel_de_write(dev_priv, MIPI_LP_BYTECLK(port),
>> +                intel_de_write(display, MIPI_LP_BYTECLK(display, port),
>>                                 intel_dsi->lp_byte_clk);
>>  
>>                  if (IS_GEMINILAKE(dev_priv)) {
>> -                        intel_de_write(dev_priv, MIPI_TLPX_TIME_COUNT(port),
>> +                        intel_de_write(display, MIPI_TLPX_TIME_COUNT(display, port),
>>                                         intel_dsi->lp_byte_clk);
>>                          /* Shadow of DPHY reg */
>> -                        intel_de_write(dev_priv, MIPI_CLK_LANE_TIMING(port),
>> +                        intel_de_write(display, MIPI_CLK_LANE_TIMING(display, port),
>>                                         intel_dsi->dphy_reg);
>>                  }
>>  
>> @@ -1462,10 +1472,10 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                   * this register in terms of byte clocks. based on dsi transfer
>>                   * rate and the number of lanes configured the time taken to
>>                   * transmit 16 long packets in a dsi stream varies. */
>> -                intel_de_write(dev_priv, MIPI_DBI_BW_CTRL(port),
>> +                intel_de_write(display, MIPI_DBI_BW_CTRL(display, port),
>>                                 intel_dsi->bw_timer);
>>  
>> -                intel_de_write(dev_priv, MIPI_CLK_LANE_SWITCH_TIME_CNT(port),
>> +                intel_de_write(display, MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port),
>>                                 intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_SW_CNT_SHIFT);
>>  
>>                  if (is_vid_mode(intel_dsi)) {
>> @@ -1493,13 +1503,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
>>                                  break;
>>                          }
>>  
>> -                        intel_de_write(dev_priv, MIPI_VIDEO_MODE_FORMAT(port), fmt);
>> +                        intel_de_write(display, MIPI_VIDEO_MODE_FORMAT(display, port), fmt);
>>                  }
>>          }
>>  }
>>  
>>  static void intel_dsi_unprepare(struct intel_encoder *encoder)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>>          enum port port;
>> @@ -1509,17 +1520,17 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
>>  
>>          for_each_dsi_port(port, intel_dsi->ports) {
>>                  /* Panel commands can be sent when clock is in LP11 */
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x0);
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x0);
>>  
>>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv))
>>                          bxt_dsi_reset_clocks(encoder, port);
>>                  else
>>                          vlv_dsi_reset_clocks(encoder, port);
>> -                intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
>> +                intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
>>  
>> -                intel_de_rmw(dev_priv, MIPI_DSI_FUNC_PRG(port), VID_MODE_FORMAT_MASK, 0);
>> +                intel_de_rmw(display, MIPI_DSI_FUNC_PRG(display, port), VID_MODE_FORMAT_MASK, 0);
>>  
>> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x1);
>> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x1);
>>          }
>>  }
>>  
>> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
>> index ae0a0b11bae3..70c5a13a3c75 100644
>> --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
>> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
>> @@ -365,13 +365,13 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
>>  
>>  void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>>  {
>> -        u32 temp;
>> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>> +        struct intel_display *display = to_intel_display(encoder);
>>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
>> +        u32 temp;
>>  
>> -        temp = intel_de_read(dev_priv, MIPI_CTRL(port));
>> +        temp = intel_de_read(display, MIPI_CTRL(display, port));
>>          temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
>> -        intel_de_write(dev_priv, MIPI_CTRL(port),
>> +        intel_de_write(display, MIPI_CTRL(display, port),
>>                         temp | intel_dsi->escape_clk_div << ESCAPE_CLOCK_DIVIDER_SHIFT);
>>  }
>>  
>> @@ -570,24 +570,24 @@ void bxt_dsi_pll_enable(struct intel_encoder *encoder,
>>  
>>  void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
>>  {
>> +        struct intel_display *display = to_intel_display(encoder);
>> +        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
>>          u32 tmp;
>> -        struct drm_device *dev = encoder->base.dev;
>> -        struct drm_i915_private *dev_priv = to_i915(dev);
>>  
>>          /* Clear old configurations */
>>          if (IS_BROXTON(dev_priv)) {
>> -                tmp = intel_de_read(dev_priv, BXT_MIPI_CLOCK_CTL);
>> +                tmp = intel_de_read(display, BXT_MIPI_CLOCK_CTL);
>>                  tmp &= ~(BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port));
>>                  tmp &= ~(BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port));
>>                  tmp &= ~(BXT_MIPI_8X_BY3_DIVIDER_MASK(port));
>>                  tmp &= ~(BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port));
>> -                intel_de_write(dev_priv, BXT_MIPI_CLOCK_CTL, tmp);
>> +                intel_de_write(display, BXT_MIPI_CLOCK_CTL, tmp);
>>          } else {
>> -                intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
>> +                intel_de_rmw(display, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
>>  
>> -                intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
>> +                intel_de_rmw(display, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
>>          }
>> -        intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
>> +        intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
>>  }
>>  
>>  static void assert_dsi_pll(struct drm_i915_private *i915, bool state)
>> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
>> index 12a608a73720..c1126d170ec6 100644
>> --- a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
>> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
>> @@ -11,26 +11,23 @@
>>  #define VLV_MIPI_BASE                        VLV_DISPLAY_BASE
>>  #define BXT_MIPI_BASE                        0x60000
>>  
>> -#define _MIPI_MMIO_BASE(__i915) ((__i915)->display.dsi.mmio_base)
>> +#define _MIPI_MMIO_BASE(display)        ((display)->dsi.mmio_base)
>>  
>>  #define _MIPI_PORT(port, a, c)        (((port) == PORT_A) ? a : c)        /* ports A and C only */
>> -#define _MMIO_MIPI(port, a, c)        _MMIO(_MIPI_PORT(port, a, c))
>> +#define _MMIO_MIPI(base, port, a, c)        _MMIO((base) + _MIPI_PORT(port, a, c))
>>  
>>  /* BXT MIPI mode configure */
>> -#define  _BXT_MIPIA_TRANS_HACTIVE                        0x6B0F8
>> -#define  _BXT_MIPIC_TRANS_HACTIVE                        0x6B8F8
>> -#define  BXT_MIPI_TRANS_HACTIVE(tc)        _MMIO_MIPI(tc, \
>> -                _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
>> +#define  _BXT_MIPIA_TRANS_HACTIVE                0xb0f8
>> +#define  _BXT_MIPIC_TRANS_HACTIVE                0xb8f8
>> +#define  BXT_MIPI_TRANS_HACTIVE(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
>>  
>> -#define  _BXT_MIPIA_TRANS_VACTIVE                        0x6B0FC
>> -#define  _BXT_MIPIC_TRANS_VACTIVE                        0x6B8FC
>> -#define  BXT_MIPI_TRANS_VACTIVE(tc)        _MMIO_MIPI(tc, \
>> -                _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
>> +#define  _BXT_MIPIA_TRANS_VACTIVE                0xb0fc
>> +#define  _BXT_MIPIC_TRANS_VACTIVE                0xb8fc
>> +#define  BXT_MIPI_TRANS_VACTIVE(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
>>  
>> -#define  _BXT_MIPIA_TRANS_VTOTAL                        0x6B100
>> -#define  _BXT_MIPIC_TRANS_VTOTAL                        0x6B900
>> -#define  BXT_MIPI_TRANS_VTOTAL(tc)        _MMIO_MIPI(tc, \
>> -                _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
>> +#define  _BXT_MIPIA_TRANS_VTOTAL                0xb100
>> +#define  _BXT_MIPIC_TRANS_VTOTAL                0xb900
>> +#define  BXT_MIPI_TRANS_VTOTAL(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
>>  
>>  #define BXT_P_DSI_REGULATOR_CFG                        _MMIO(0x160020)
>>  #define  STAP_SELECT                                        (1 << 0)
>> @@ -38,14 +35,14 @@
>>  #define BXT_P_DSI_REGULATOR_TX_CTRL                _MMIO(0x160054)
>>  #define  HS_IO_CTRL_SELECT                                (1 << 0)
>>  
>> -#define _MIPIA_PORT_CTRL                        (VLV_DISPLAY_BASE + 0x61190)
>> -#define _MIPIC_PORT_CTRL                        (VLV_DISPLAY_BASE + 0x61700)
>> -#define VLV_MIPI_PORT_CTRL(port)        _MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
>> +#define _MIPIA_PORT_CTRL                        0x61190
>> +#define _MIPIC_PORT_CTRL                        0x61700
>> +#define VLV_MIPI_PORT_CTRL(port)                _MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
>>  
>>   /* BXT port control */
>> -#define _BXT_MIPIA_PORT_CTRL                                0x6B0C0
>> -#define _BXT_MIPIC_PORT_CTRL                                0x6B8C0
>> -#define BXT_MIPI_PORT_CTRL(tc)        _MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
>> +#define _BXT_MIPIA_PORT_CTRL                        0xb0c0
>> +#define _BXT_MIPIC_PORT_CTRL                        0xb8c0
>> +#define BXT_MIPI_PORT_CTRL(tc)                        _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
>>  
>>  #define  DPI_ENABLE                                        (1 << 31) /* A + C */
>>  #define  MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT                27
>> @@ -87,17 +84,17 @@
>>  #define  LANE_CONFIGURATION_DUAL_LINK_A                        (1 << 0)
>>  #define  LANE_CONFIGURATION_DUAL_LINK_B                        (2 << 0)
>>  
>> -#define _MIPIA_TEARING_CTRL                        (VLV_DISPLAY_BASE + 0x61194)
>> -#define _MIPIC_TEARING_CTRL                        (VLV_DISPLAY_BASE + 0x61704)
>> -#define VLV_MIPI_TEARING_CTRL(port)                _MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
>> +#define _MIPIA_TEARING_CTRL                        0x61194
>> +#define _MIPIC_TEARING_CTRL                        0x61704
>> +#define VLV_MIPI_TEARING_CTRL(port)                        _MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
>>  #define  TEARING_EFFECT_DELAY_SHIFT                        0
>>  #define  TEARING_EFFECT_DELAY_MASK                        (0xffff << 0)
>>  
>>  /* MIPI DSI Controller and D-PHY registers */
>>  
>> -#define _MIPIA_DEVICE_READY                (_MIPI_MMIO_BASE(dev_priv) + 0xb000)
>> -#define _MIPIC_DEVICE_READY                (_MIPI_MMIO_BASE(dev_priv) + 0xb800)
>> -#define MIPI_DEVICE_READY(port)                _MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
>> +#define _MIPIA_DEVICE_READY                        0xb000
>> +#define _MIPIC_DEVICE_READY                        0xb800
>> +#define MIPI_DEVICE_READY(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
>>  #define  BUS_POSSESSION                                        (1 << 3) /* set to give bus to receiver */
>>  #define  ULPS_STATE_MASK                                (3 << 1)
>>  #define  ULPS_STATE_ENTER                                (2 << 1)
>> @@ -105,12 +102,12 @@
>>  #define  ULPS_STATE_NORMAL_OPERATION                        (0 << 1)
>>  #define  DEVICE_READY                                        (1 << 0)
>>  
>> -#define _MIPIA_INTR_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb004)
>> -#define _MIPIC_INTR_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb804)
>> -#define MIPI_INTR_STAT(port)                _MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
>> -#define _MIPIA_INTR_EN                        (_MIPI_MMIO_BASE(dev_priv) + 0xb008)
>> -#define _MIPIC_INTR_EN                        (_MIPI_MMIO_BASE(dev_priv) + 0xb808)
>> -#define MIPI_INTR_EN(port)                _MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
>> +#define _MIPIA_INTR_STAT                        0xb004
>> +#define _MIPIC_INTR_STAT                        0xb804
>> +#define MIPI_INTR_STAT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
>> +#define _MIPIA_INTR_EN                                0xb008
>> +#define _MIPIC_INTR_EN                                0xb808
>> +#define MIPI_INTR_EN(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
>>  #define  TEARING_EFFECT                                        (1 << 31)
>>  #define  SPL_PKT_SENT_INTERRUPT                                (1 << 30)
>>  #define  GEN_READ_DATA_AVAIL                                (1 << 29)
>> @@ -144,9 +141,9 @@
>>  #define  RXSOT_SYNC_ERROR                                (1 << 1)
>>  #define  RXSOT_ERROR                                        (1 << 0)
>>  
>> -#define _MIPIA_DSI_FUNC_PRG                (_MIPI_MMIO_BASE(dev_priv) + 0xb00c)
>> -#define _MIPIC_DSI_FUNC_PRG                (_MIPI_MMIO_BASE(dev_priv) + 0xb80c)
>> -#define MIPI_DSI_FUNC_PRG(port)                _MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
>> +#define _MIPIA_DSI_FUNC_PRG                        0xb00c
>> +#define _MIPIC_DSI_FUNC_PRG                        0xb80c
>> +#define MIPI_DSI_FUNC_PRG(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
>>  #define  CMD_MODE_DATA_WIDTH_MASK                        (7 << 13)
>>  #define  CMD_MODE_NOT_SUPPORTED                                (0 << 13)
>>  #define  CMD_MODE_DATA_WIDTH_16_BIT                        (1 << 13)
>> @@ -167,77 +164,77 @@
>>  #define  DATA_LANES_PRG_REG_SHIFT                        0
>>  #define  DATA_LANES_PRG_REG_MASK                        (7 << 0)
>>  
>> -#define _MIPIA_HS_TX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb010)
>> -#define _MIPIC_HS_TX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb810)
>> -#define MIPI_HS_TX_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
>> +#define _MIPIA_HS_TX_TIMEOUT                        0xb010
>> +#define _MIPIC_HS_TX_TIMEOUT                        0xb810
>> +#define MIPI_HS_TX_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
>>  #define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK                0xffffff
>>  
>> -#define _MIPIA_LP_RX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb014)
>> -#define _MIPIC_LP_RX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb814)
>> -#define MIPI_LP_RX_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
>> +#define _MIPIA_LP_RX_TIMEOUT                        0xb014
>> +#define _MIPIC_LP_RX_TIMEOUT                        0xb814
>> +#define MIPI_LP_RX_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
>>  #define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK                0xffffff
>>  
>> -#define _MIPIA_TURN_AROUND_TIMEOUT        (_MIPI_MMIO_BASE(dev_priv) + 0xb018)
>> -#define _MIPIC_TURN_AROUND_TIMEOUT        (_MIPI_MMIO_BASE(dev_priv) + 0xb818)
>> -#define MIPI_TURN_AROUND_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
>> +#define _MIPIA_TURN_AROUND_TIMEOUT                0xb018
>> +#define _MIPIC_TURN_AROUND_TIMEOUT                0xb818
>> +#define MIPI_TURN_AROUND_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
>>  #define  TURN_AROUND_TIMEOUT_MASK                        0x3f
>>  
>> -#define _MIPIA_DEVICE_RESET_TIMER        (_MIPI_MMIO_BASE(dev_priv) + 0xb01c)
>> -#define _MIPIC_DEVICE_RESET_TIMER        (_MIPI_MMIO_BASE(dev_priv) + 0xb81c)
>> -#define MIPI_DEVICE_RESET_TIMER(port)        _MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
>> +#define _MIPIA_DEVICE_RESET_TIMER                0xb01c
>> +#define _MIPIC_DEVICE_RESET_TIMER                0xb81c
>> +#define MIPI_DEVICE_RESET_TIMER(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
>>  #define  DEVICE_RESET_TIMER_MASK                        0xffff
>>  
>> -#define _MIPIA_DPI_RESOLUTION                (_MIPI_MMIO_BASE(dev_priv) + 0xb020)
>> -#define _MIPIC_DPI_RESOLUTION                (_MIPI_MMIO_BASE(dev_priv) + 0xb820)
>> -#define MIPI_DPI_RESOLUTION(port)        _MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
>> +#define _MIPIA_DPI_RESOLUTION                        0xb020
>> +#define _MIPIC_DPI_RESOLUTION                        0xb820
>> +#define MIPI_DPI_RESOLUTION(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
>>  #define  VERTICAL_ADDRESS_SHIFT                                16
>>  #define  VERTICAL_ADDRESS_MASK                                (0xffff << 16)
>>  #define  HORIZONTAL_ADDRESS_SHIFT                        0
>>  #define  HORIZONTAL_ADDRESS_MASK                        0xffff
>>  
>> -#define _MIPIA_DBI_FIFO_THROTTLE        (_MIPI_MMIO_BASE(dev_priv) + 0xb024)
>> -#define _MIPIC_DBI_FIFO_THROTTLE        (_MIPI_MMIO_BASE(dev_priv) + 0xb824)
>> -#define MIPI_DBI_FIFO_THROTTLE(port)        _MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
>> +#define _MIPIA_DBI_FIFO_THROTTLE                0xb024
>> +#define _MIPIC_DBI_FIFO_THROTTLE                0xb824
>> +#define MIPI_DBI_FIFO_THROTTLE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
>>  #define  DBI_FIFO_EMPTY_HALF                                (0 << 0)
>>  #define  DBI_FIFO_EMPTY_QUARTER                                (1 << 0)
>>  #define  DBI_FIFO_EMPTY_7_LOCATIONS                        (2 << 0)
>>  
>>  /* regs below are bits 15:0 */
>> -#define _MIPIA_HSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb028)
>> -#define _MIPIC_HSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb828)
>> -#define MIPI_HSYNC_PADDING_COUNT(port)        _MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
>> +#define _MIPIA_HSYNC_PADDING_COUNT                0xb028
>> +#define _MIPIC_HSYNC_PADDING_COUNT                0xb828
>> +#define MIPI_HSYNC_PADDING_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
>>  
>> -#define _MIPIA_HBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb02c)
>> -#define _MIPIC_HBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb82c)
>> -#define MIPI_HBP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
>> +#define _MIPIA_HBP_COUNT                        0xb02c
>> +#define _MIPIC_HBP_COUNT                        0xb82c
>> +#define MIPI_HBP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
>>  
>> -#define _MIPIA_HFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb030)
>> -#define _MIPIC_HFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb830)
>> -#define MIPI_HFP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
>> +#define _MIPIA_HFP_COUNT                        0xb030
>> +#define _MIPIC_HFP_COUNT                        0xb830
>> +#define MIPI_HFP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
>>  
>> -#define _MIPIA_HACTIVE_AREA_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb034)
>> -#define _MIPIC_HACTIVE_AREA_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb834)
>> -#define MIPI_HACTIVE_AREA_COUNT(port)        _MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
>> +#define _MIPIA_HACTIVE_AREA_COUNT                0xb034
>> +#define _MIPIC_HACTIVE_AREA_COUNT                0xb834
>> +#define MIPI_HACTIVE_AREA_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
>>  
>> -#define _MIPIA_VSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb038)
>> -#define _MIPIC_VSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb838)
>> -#define MIPI_VSYNC_PADDING_COUNT(port)        _MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
>> +#define _MIPIA_VSYNC_PADDING_COUNT                0xb038
>> +#define _MIPIC_VSYNC_PADDING_COUNT                0xb838
>> +#define MIPI_VSYNC_PADDING_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
>>  
>> -#define _MIPIA_VBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb03c)
>> -#define _MIPIC_VBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb83c)
>> -#define MIPI_VBP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
>> +#define _MIPIA_VBP_COUNT                        0xb03c
>> +#define _MIPIC_VBP_COUNT                        0xb83c
>> +#define MIPI_VBP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
>>  
>> -#define _MIPIA_VFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb040)
>> -#define _MIPIC_VFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb840)
>> -#define MIPI_VFP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
>> +#define _MIPIA_VFP_COUNT                        0xb040
>> +#define _MIPIC_VFP_COUNT                        0xb840
>> +#define MIPI_VFP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
>>  
>> -#define _MIPIA_HIGH_LOW_SWITCH_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb044)
>> -#define _MIPIC_HIGH_LOW_SWITCH_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb844)
>> -#define MIPI_HIGH_LOW_SWITCH_COUNT(port)        _MMIO_MIPI(port,        _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
>> +#define _MIPIA_HIGH_LOW_SWITCH_COUNT                0xb044
>> +#define _MIPIC_HIGH_LOW_SWITCH_COUNT                0xb844
>> +#define MIPI_HIGH_LOW_SWITCH_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port,        _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
>>  
>> -#define _MIPIA_DPI_CONTROL                (_MIPI_MMIO_BASE(dev_priv) + 0xb048)
>> -#define _MIPIC_DPI_CONTROL                (_MIPI_MMIO_BASE(dev_priv) + 0xb848)
>> -#define MIPI_DPI_CONTROL(port)                _MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
>> +#define _MIPIA_DPI_CONTROL                        0xb048
>> +#define _MIPIC_DPI_CONTROL                        0xb848
>> +#define MIPI_DPI_CONTROL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
>>  #define  DPI_LP_MODE                                        (1 << 6)
>>  #define  BACKLIGHT_OFF                                        (1 << 5)
>>  #define  BACKLIGHT_ON                                        (1 << 4)
>> @@ -246,28 +243,27 @@
>>  #define  TURN_ON                                        (1 << 1)
>>  #define  SHUTDOWN                                        (1 << 0)
>>  
>> -#define _MIPIA_DPI_DATA                        (_MIPI_MMIO_BASE(dev_priv) + 0xb04c)
>> -#define _MIPIC_DPI_DATA                        (_MIPI_MMIO_BASE(dev_priv) + 0xb84c)
>> -#define MIPI_DPI_DATA(port)                _MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
>> +#define _MIPIA_DPI_DATA                                0xb04c
>> +#define _MIPIC_DPI_DATA                                0xb84c
>> +#define MIPI_DPI_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
>>  #define  COMMAND_BYTE_SHIFT                                0
>>  #define  COMMAND_BYTE_MASK                                (0x3f << 0)
>>  
>> -#define _MIPIA_INIT_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb050)
>> -#define _MIPIC_INIT_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb850)
>> -#define MIPI_INIT_COUNT(port)                _MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
>> +#define _MIPIA_INIT_COUNT                        0xb050
>> +#define _MIPIC_INIT_COUNT                        0xb850
>> +#define MIPI_INIT_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
>>  #define  MASTER_INIT_TIMER_SHIFT                        0
>>  #define  MASTER_INIT_TIMER_MASK                                (0xffff << 0)
>>  
>> -#define _MIPIA_MAX_RETURN_PKT_SIZE        (_MIPI_MMIO_BASE(dev_priv) + 0xb054)
>> -#define _MIPIC_MAX_RETURN_PKT_SIZE        (_MIPI_MMIO_BASE(dev_priv) + 0xb854)
>> -#define MIPI_MAX_RETURN_PKT_SIZE(port)        _MMIO_MIPI(port, \
>> -                        _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
>> +#define _MIPIA_MAX_RETURN_PKT_SIZE                0xb054
>> +#define _MIPIC_MAX_RETURN_PKT_SIZE                0xb854
>> +#define MIPI_MAX_RETURN_PKT_SIZE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
>>  #define  MAX_RETURN_PKT_SIZE_SHIFT                        0
>>  #define  MAX_RETURN_PKT_SIZE_MASK                        (0x3ff << 0)
>>  
>> -#define _MIPIA_VIDEO_MODE_FORMAT        (_MIPI_MMIO_BASE(dev_priv) + 0xb058)
>> -#define _MIPIC_VIDEO_MODE_FORMAT        (_MIPI_MMIO_BASE(dev_priv) + 0xb858)
>> -#define MIPI_VIDEO_MODE_FORMAT(port)        _MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
>> +#define _MIPIA_VIDEO_MODE_FORMAT                0xb058
>> +#define _MIPIC_VIDEO_MODE_FORMAT                0xb858
>> +#define MIPI_VIDEO_MODE_FORMAT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
>>  #define  RANDOM_DPI_DISPLAY_RESOLUTION                        (1 << 4)
>>  #define  DISABLE_VIDEO_BTA                                (1 << 3)
>>  #define  IP_TG_CONFIG                                        (1 << 2)
>> @@ -275,9 +271,9 @@
>>  #define  VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS                (2 << 0)
>>  #define  VIDEO_MODE_BURST                                (3 << 0)
>>  
>> -#define _MIPIA_EOT_DISABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb05c)
>> -#define _MIPIC_EOT_DISABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb85c)
>> -#define MIPI_EOT_DISABLE(port)                _MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
>> +#define _MIPIA_EOT_DISABLE                        0xb05c
>> +#define _MIPIC_EOT_DISABLE                        0xb85c
>> +#define MIPI_EOT_DISABLE(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
>>  #define  BXT_DEFEATURE_DPI_FIFO_CTR                        (1 << 9)
>>  #define  BXT_DPHY_DEFEATURE_EN                                (1 << 8)
>>  #define  LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE                (1 << 7)
>> @@ -289,36 +285,36 @@
>>  #define  CLOCKSTOP                                        (1 << 1)
>>  #define  EOT_DISABLE                                        (1 << 0)
>>  
>> -#define _MIPIA_LP_BYTECLK                (_MIPI_MMIO_BASE(dev_priv) + 0xb060)
>> -#define _MIPIC_LP_BYTECLK                (_MIPI_MMIO_BASE(dev_priv) + 0xb860)
>> -#define MIPI_LP_BYTECLK(port)                _MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
>> +#define _MIPIA_LP_BYTECLK                        0xb060
>> +#define _MIPIC_LP_BYTECLK                        0xb860
>> +#define MIPI_LP_BYTECLK(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
>>  #define  LP_BYTECLK_SHIFT                                0
>>  #define  LP_BYTECLK_MASK                                (0xffff << 0)
>>  
>> -#define _MIPIA_TLPX_TIME_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb0a4)
>> -#define _MIPIC_TLPX_TIME_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb8a4)
>> -#define MIPI_TLPX_TIME_COUNT(port)         _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
>> +#define _MIPIA_TLPX_TIME_COUNT                        0xb0a4
>> +#define _MIPIC_TLPX_TIME_COUNT                        0xb8a4
>> +#define MIPI_TLPX_TIME_COUNT(display, port)         _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
>>  
>> -#define _MIPIA_CLK_LANE_TIMING                (_MIPI_MMIO_BASE(dev_priv) + 0xb098)
>> -#define _MIPIC_CLK_LANE_TIMING                (_MIPI_MMIO_BASE(dev_priv) + 0xb898)
>> -#define MIPI_CLK_LANE_TIMING(port)         _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
>> +#define _MIPIA_CLK_LANE_TIMING                        0xb098
>> +#define _MIPIC_CLK_LANE_TIMING                        0xb898
>> +#define MIPI_CLK_LANE_TIMING(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
>>  
>>  /* bits 31:0 */
>> -#define _MIPIA_LP_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb064)
>> -#define _MIPIC_LP_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb864)
>> -#define MIPI_LP_GEN_DATA(port)                _MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
>> +#define _MIPIA_LP_GEN_DATA                        0xb064
>> +#define _MIPIC_LP_GEN_DATA                        0xb864
>> +#define MIPI_LP_GEN_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
>>  
>>  /* bits 31:0 */
>> -#define _MIPIA_HS_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb068)
>> -#define _MIPIC_HS_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb868)
>> -#define MIPI_HS_GEN_DATA(port)                _MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
>> -
>> -#define _MIPIA_LP_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb06c)
>> -#define _MIPIC_LP_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb86c)
>> -#define MIPI_LP_GEN_CTRL(port)                _MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
>> -#define _MIPIA_HS_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb070)
>> -#define _MIPIC_HS_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb870)
>> -#define MIPI_HS_GEN_CTRL(port)                _MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
>> +#define _MIPIA_HS_GEN_DATA                        0xb068
>> +#define _MIPIC_HS_GEN_DATA                        0xb868
>> +#define MIPI_HS_GEN_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
>> +
>> +#define _MIPIA_LP_GEN_CTRL                        0xb06c
>> +#define _MIPIC_LP_GEN_CTRL                        0xb86c
>> +#define MIPI_LP_GEN_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
>> +#define _MIPIA_HS_GEN_CTRL                        0xb070
>> +#define _MIPIC_HS_GEN_CTRL                        0xb870
>> +#define MIPI_HS_GEN_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
>>  #define  LONG_PACKET_WORD_COUNT_SHIFT                        8
>>  #define  LONG_PACKET_WORD_COUNT_MASK                        (0xffff << 8)
>>  #define  SHORT_PACKET_PARAM_SHIFT                        8
>> @@ -329,9 +325,9 @@
>>  #define  DATA_TYPE_MASK                                        (0x3f << 0)
>>  /* data type values, see include/video/mipi_display.h */
>>  
>> -#define _MIPIA_GEN_FIFO_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb074)
>> -#define _MIPIC_GEN_FIFO_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb874)
>> -#define MIPI_GEN_FIFO_STAT(port)        _MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
>> +#define _MIPIA_GEN_FIFO_STAT                        0xb074
>> +#define _MIPIC_GEN_FIFO_STAT                        0xb874
>> +#define MIPI_GEN_FIFO_STAT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
>>  #define  DPI_FIFO_EMPTY                                        (1 << 28)
>>  #define  DBI_FIFO_EMPTY                                        (1 << 27)
>>  #define  LP_CTRL_FIFO_EMPTY                                (1 << 26)
>> @@ -347,16 +343,16 @@
>>  #define  HS_DATA_FIFO_HALF_EMPTY                        (1 << 1)
>>  #define  HS_DATA_FIFO_FULL                                (1 << 0)
>>  
>> -#define _MIPIA_HS_LS_DBI_ENABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb078)
>> -#define _MIPIC_HS_LS_DBI_ENABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb878)
>> -#define MIPI_HS_LP_DBI_ENABLE(port)        _MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
>> +#define _MIPIA_HS_LS_DBI_ENABLE                        0xb078
>> +#define _MIPIC_HS_LS_DBI_ENABLE                        0xb878
>> +#define MIPI_HS_LP_DBI_ENABLE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
>>  #define  DBI_HS_LP_MODE_MASK                                (1 << 0)
>>  #define  DBI_LP_MODE                                        (1 << 0)
>>  #define  DBI_HS_MODE                                        (0 << 0)
>>  
>> -#define _MIPIA_DPHY_PARAM                (_MIPI_MMIO_BASE(dev_priv) + 0xb080)
>> -#define _MIPIC_DPHY_PARAM                (_MIPI_MMIO_BASE(dev_priv) + 0xb880)
>> -#define MIPI_DPHY_PARAM(port)                _MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
>> +#define _MIPIA_DPHY_PARAM                        0xb080
>> +#define _MIPIC_DPHY_PARAM                        0xb880
>> +#define MIPI_DPHY_PARAM(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
>>  #define  EXIT_ZERO_COUNT_SHIFT                                24
>>  #define  EXIT_ZERO_COUNT_MASK                                (0x3f << 24)
>>  #define  TRAIL_COUNT_SHIFT                                16
>> @@ -366,34 +362,34 @@
>>  #define  PREPARE_COUNT_SHIFT                                0
>>  #define  PREPARE_COUNT_MASK                                (0x3f << 0)
>>  
>> -#define _MIPIA_DBI_BW_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb084)
>> -#define _MIPIC_DBI_BW_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb884)
>> -#define MIPI_DBI_BW_CTRL(port)                _MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
>> +#define _MIPIA_DBI_BW_CTRL                        0xb084
>> +#define _MIPIC_DBI_BW_CTRL                        0xb884
>> +#define MIPI_DBI_BW_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
>>  
>> -#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb088)
>> -#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb888)
>> -#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)        _MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
>> +#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT                0xb088
>> +#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT                0xb888
>> +#define MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
>>  #define  LP_HS_SSW_CNT_SHIFT                                16
>>  #define  LP_HS_SSW_CNT_MASK                                (0xffff << 16)
>>  #define  HS_LP_PWR_SW_CNT_SHIFT                                0
>>  #define  HS_LP_PWR_SW_CNT_MASK                                (0xffff << 0)
>>  
>> -#define _MIPIA_STOP_STATE_STALL                (_MIPI_MMIO_BASE(dev_priv) + 0xb08c)
>> -#define _MIPIC_STOP_STATE_STALL                (_MIPI_MMIO_BASE(dev_priv) + 0xb88c)
>> -#define MIPI_STOP_STATE_STALL(port)        _MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
>> +#define _MIPIA_STOP_STATE_STALL                        0xb08c
>> +#define _MIPIC_STOP_STATE_STALL                        0xb88c
>> +#define MIPI_STOP_STATE_STALL(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
>>  #define  STOP_STATE_STALL_COUNTER_SHIFT                        0
>>  #define  STOP_STATE_STALL_COUNTER_MASK                        (0xff << 0)
>>  
>> -#define _MIPIA_INTR_STAT_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb090)
>> -#define _MIPIC_INTR_STAT_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb890)
>> -#define MIPI_INTR_STAT_REG_1(port)        _MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
>> -#define _MIPIA_INTR_EN_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb094)
>> -#define _MIPIC_INTR_EN_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb894)
>> -#define MIPI_INTR_EN_REG_1(port)        _MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
>> +#define _MIPIA_INTR_STAT_REG_1                        0xb090
>> +#define _MIPIC_INTR_STAT_REG_1                        0xb890
>> +#define MIPI_INTR_STAT_REG_1(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
>> +#define _MIPIA_INTR_EN_REG_1                        0xb094
>> +#define _MIPIC_INTR_EN_REG_1                        0xb894
>> +#define MIPI_INTR_EN_REG_1(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
>>  #define  RX_CONTENTION_DETECTED                                (1 << 0)
>>  
>>  /* XXX: only pipe A ?!? */
>> -#define MIPIA_DBI_TYPEC_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb100)
>> +#define MIPIA_DBI_TYPEC_CTRL(display)                (_MIPI_MMIO_BASE(display) + 0xb100)
>>  #define  DBI_TYPEC_ENABLE                                (1 << 31)
>>  #define  DBI_TYPEC_WIP                                        (1 << 30)
>>  #define  DBI_TYPEC_OPTION_SHIFT                                28
>> @@ -406,9 +402,9 @@
>>  
>>  /* MIPI adapter registers */
>>  
>> -#define _MIPIA_CTRL                        (_MIPI_MMIO_BASE(dev_priv) + 0xb104)
>> -#define _MIPIC_CTRL                        (_MIPI_MMIO_BASE(dev_priv) + 0xb904)
>> -#define MIPI_CTRL(port)                        _MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL)
>> +#define _MIPIA_CTRL                                0xb104
>> +#define _MIPIC_CTRL                                0xb904
>> +#define MIPI_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CTRL, _MIPIC_CTRL)
>>  #define  ESCAPE_CLOCK_DIVIDER_SHIFT                        5 /* A only */
>>  #define  ESCAPE_CLOCK_DIVIDER_MASK                        (3 << 5)
>>  #define  ESCAPE_CLOCK_DIVIDER_1                                (0 << 5)
>> @@ -439,41 +435,41 @@
>>  #define  GLK_MIPIIO_PORT_POWERED                        (1 << 1) /* RO */
>>  #define  GLK_MIPIIO_ENABLE                                (1 << 0)
>>  
>> -#define _MIPIA_DATA_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb108)
>> -#define _MIPIC_DATA_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb908)
>> -#define MIPI_DATA_ADDRESS(port)                _MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
>> +#define _MIPIA_DATA_ADDRESS                        0xb108
>> +#define _MIPIC_DATA_ADDRESS                        0xb908
>> +#define MIPI_DATA_ADDRESS(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
>>  #define  DATA_MEM_ADDRESS_SHIFT                                5
>>  #define  DATA_MEM_ADDRESS_MASK                                (0x7ffffff << 5)
>>  #define  DATA_VALID                                        (1 << 0)
>>  
>> -#define _MIPIA_DATA_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb10c)
>> -#define _MIPIC_DATA_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb90c)
>> -#define MIPI_DATA_LENGTH(port)                _MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
>> +#define _MIPIA_DATA_LENGTH                        0xb10c
>> +#define _MIPIC_DATA_LENGTH                        0xb90c
>> +#define MIPI_DATA_LENGTH(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
>>  #define  DATA_LENGTH_SHIFT                                0
>>  #define  DATA_LENGTH_MASK                                (0xfffff << 0)
>>  
>> -#define _MIPIA_COMMAND_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb110)
>> -#define _MIPIC_COMMAND_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb910)
>> -#define MIPI_COMMAND_ADDRESS(port)        _MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
>> +#define _MIPIA_COMMAND_ADDRESS                        0xb110
>> +#define _MIPIC_COMMAND_ADDRESS                        0xb910
>> +#define MIPI_COMMAND_ADDRESS(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
>>  #define  COMMAND_MEM_ADDRESS_SHIFT                        5
>>  #define  COMMAND_MEM_ADDRESS_MASK                        (0x7ffffff << 5)
>>  #define  AUTO_PWG_ENABLE                                (1 << 2)
>>  #define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING                (1 << 1)
>>  #define  COMMAND_VALID                                        (1 << 0)
>>  
>> -#define _MIPIA_COMMAND_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb114)
>> -#define _MIPIC_COMMAND_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb914)
>> -#define MIPI_COMMAND_LENGTH(port)        _MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
>> +#define _MIPIA_COMMAND_LENGTH                        0xb114
>> +#define _MIPIC_COMMAND_LENGTH                        0xb914
>> +#define MIPI_COMMAND_LENGTH(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
>>  #define  COMMAND_LENGTH_SHIFT(n)                        (8 * (n)) /* n: 0...3 */
>>  #define  COMMAND_LENGTH_MASK(n)                                (0xff << (8 * (n)))
>>  
>> -#define _MIPIA_READ_DATA_RETURN0        (_MIPI_MMIO_BASE(dev_priv) + 0xb118)
>> -#define _MIPIC_READ_DATA_RETURN0        (_MIPI_MMIO_BASE(dev_priv) + 0xb918)
>> -#define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */
>> +#define _MIPIA_READ_DATA_RETURN0                0xb118
>> +#define _MIPIC_READ_DATA_RETURN0                0xb918
>> +#define MIPI_READ_DATA_RETURN(display, port, n)        _MMIO_MIPI(_MIPI_MMIO_BASE(display) + 4 * (n), port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) /* n: 0...7 */
>>  
>> -#define _MIPIA_READ_DATA_VALID                (_MIPI_MMIO_BASE(dev_priv) + 0xb138)
>> -#define _MIPIC_READ_DATA_VALID                (_MIPI_MMIO_BASE(dev_priv) + 0xb938)
>> -#define MIPI_READ_DATA_VALID(port)        _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
>> +#define _MIPIA_READ_DATA_VALID                        0xb138
>> +#define _MIPIC_READ_DATA_VALID                        0xb938
>> +#define MIPI_READ_DATA_VALID(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
>>  #define  READ_DATA_VALID(n)                                (1 << (n))
>>  
>>  #endif /* __VLV_DSI_REGS_H__ */
>> -- 
>> 2.39.2
>>
Vivi, Rodrigo April 22, 2024, 9:21 p.m. UTC | #3
On Mon, Apr 22, 2024 at 06:16:59PM -0300, Gustavo Sousa wrote:
> Quoting Rodrigo Vivi (2024-04-22 18:10:50-03:00)
> >On Fri, Apr 19, 2024 at 01:04:06PM +0300, Jani Nikula wrote:
> >> Stop relying on the dev_priv local variable in the DSI register
> >> macros. Pass struct intel_display pointer to the macros. Move the MIPI
> >> DSI MMIO base selection to a different level, passing it to _MMIO_MIPI()
> >> and doing the addition there.
> >> 
> >> Start using the local display variable for all intel_de_* usage, and
> >> opportunistically use it for other things than display registers as
> >> well.
> >> 
> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> >> 
> >> ---
> >> 
> >> Tip: Applying the patch and using 'git show --color-words' is probably
> >> the easiest way to review.
> >
> >wow! this is indeed a nice feature for this case. I had never tried it before.
> >Thanks for showing that.
> >
> >But the registers changes were easier to review the old way. ;)
> 
> What about --word-diff for those? :-)

this is overall better indeed! Thanks

although for the registers the full context was more clear... but maybe
it is just a matter of getting used to it...
nowadays with the b4 in place these small/smart diffs might help the
reviews

Thank you so much

> 
> --
> Gustavo Sousa
> 
> >
> >Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> >
> >> ---
> >>  drivers/gpu/drm/i915/display/intel_display.c |   8 +-
> >>  drivers/gpu/drm/i915/display/vlv_dsi.c       | 337 ++++++++++---------
> >>  drivers/gpu/drm/i915/display/vlv_dsi_pll.c   |  22 +-
> >>  drivers/gpu/drm/i915/display/vlv_dsi_regs.h  | 324 +++++++++---------
> >>  4 files changed, 349 insertions(+), 342 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> >> index 96ed1490fec7..b9434465d3a7 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> >> @@ -3722,8 +3722,8 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
> >>                                           struct intel_crtc_state *pipe_config,
> >>                                           struct intel_display_power_domain_set *power_domain_set)
> >>  {
> >> -        struct drm_device *dev = crtc->base.dev;
> >> -        struct drm_i915_private *dev_priv = to_i915(dev);
> >> +        struct intel_display *display = to_intel_display(crtc);
> >> +        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> >>          enum transcoder cpu_transcoder;
> >>          enum port port;
> >>          u32 tmp;
> >> @@ -3749,11 +3749,11 @@ static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
> >>                          break;
> >>  
> >>                  /* XXX: this works for video mode only */
> >> -                tmp = intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port));
> >> +                tmp = intel_de_read(display, BXT_MIPI_PORT_CTRL(port));
> >>                  if (!(tmp & DPI_ENABLE))
> >>                          continue;
> >>  
> >> -                tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> >> +                tmp = intel_de_read(display, MIPI_CTRL(display, port));
> >>                  if ((tmp & BXT_PIPE_SELECT_MASK) != BXT_PIPE_SELECT(crtc->pipe))
> >>                          continue;
> >>  
> >> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
> >> index 9967ef58f1ec..ee9923c7b115 100644
> >> --- a/drivers/gpu/drm/i915/display/vlv_dsi.c
> >> +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
> >> @@ -85,18 +85,18 @@ enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
> >>  
> >>  void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> >> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
> >>          u32 mask;
> >>  
> >>          mask = LP_CTRL_FIFO_EMPTY | HS_CTRL_FIFO_EMPTY |
> >>                  LP_DATA_FIFO_EMPTY | HS_DATA_FIFO_EMPTY;
> >>  
> >> -        if (intel_de_wait_for_set(dev_priv, MIPI_GEN_FIFO_STAT(port),
> >> +        if (intel_de_wait_for_set(display, MIPI_GEN_FIFO_STAT(display, port),
> >>                                    mask, 100))
> >> -                drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n");
> >> +                drm_err(display->drm, "DPI FIFOs are not empty\n");
> >>  }
> >>  
> >> -static void write_data(struct drm_i915_private *dev_priv,
> >> +static void write_data(struct intel_display *display,
> >>                         i915_reg_t reg,
> >>                         const u8 *data, u32 len)
> >>  {
> >> @@ -108,18 +108,18 @@ static void write_data(struct drm_i915_private *dev_priv,
> >>                  for (j = 0; j < min_t(u32, len - i, 4); j++)
> >>                          val |= *data++ << 8 * j;
> >>  
> >> -                intel_de_write(dev_priv, reg, val);
> >> +                intel_de_write(display, reg, val);
> >>          }
> >>  }
> >>  
> >> -static void read_data(struct drm_i915_private *dev_priv,
> >> +static void read_data(struct intel_display *display,
> >>                        i915_reg_t reg,
> >>                        u8 *data, u32 len)
> >>  {
> >>          u32 i, j;
> >>  
> >>          for (i = 0; i < len; i += 4) {
> >> -                u32 val = intel_de_read(dev_priv, reg);
> >> +                u32 val = intel_de_read(display, reg);
> >>  
> >>                  for (j = 0; j < min_t(u32, len - i, 4); j++)
> >>                          *data++ = val >> 8 * j;
> >> @@ -131,7 +131,7 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
> >>  {
> >>          struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host);
> >>          struct intel_dsi *intel_dsi = intel_dsi_host->intel_dsi;
> >> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> >> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
> >>          enum port port = intel_dsi_host->port;
> >>          struct mipi_dsi_packet packet;
> >>          ssize_t ret;
> >> @@ -146,51 +146,51 @@ static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
> >>          header = packet.header;
> >>  
> >>          if (msg->flags & MIPI_DSI_MSG_USE_LPM) {
> >> -                data_reg = MIPI_LP_GEN_DATA(port);
> >> +                data_reg = MIPI_LP_GEN_DATA(display, port);
> >>                  data_mask = LP_DATA_FIFO_FULL;
> >> -                ctrl_reg = MIPI_LP_GEN_CTRL(port);
> >> +                ctrl_reg = MIPI_LP_GEN_CTRL(display, port);
> >>                  ctrl_mask = LP_CTRL_FIFO_FULL;
> >>          } else {
> >> -                data_reg = MIPI_HS_GEN_DATA(port);
> >> +                data_reg = MIPI_HS_GEN_DATA(display, port);
> >>                  data_mask = HS_DATA_FIFO_FULL;
> >> -                ctrl_reg = MIPI_HS_GEN_CTRL(port);
> >> +                ctrl_reg = MIPI_HS_GEN_CTRL(display, port);
> >>                  ctrl_mask = HS_CTRL_FIFO_FULL;
> >>          }
> >>  
> >>          /* note: this is never true for reads */
> >>          if (packet.payload_length) {
> >> -                if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
> >> +                if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
> >>                                              data_mask, 50))
> >> -                        drm_err(&dev_priv->drm,
> >> +                        drm_err(display->drm,
> >>                                  "Timeout waiting for HS/LP DATA FIFO !full\n");
> >>  
> >> -                write_data(dev_priv, data_reg, packet.payload,
> >> +                write_data(display, data_reg, packet.payload,
> >>                             packet.payload_length);
> >>          }
> >>  
> >>          if (msg->rx_len) {
> >> -                intel_de_write(dev_priv, MIPI_INTR_STAT(port),
> >> +                intel_de_write(display, MIPI_INTR_STAT(display, port),
> >>                                 GEN_READ_DATA_AVAIL);
> >>          }
> >>  
> >> -        if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
> >> +        if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
> >>                                      ctrl_mask, 50)) {
> >> -                drm_err(&dev_priv->drm,
> >> +                drm_err(display->drm,
> >>                          "Timeout waiting for HS/LP CTRL FIFO !full\n");
> >>          }
> >>  
> >> -        intel_de_write(dev_priv, ctrl_reg,
> >> +        intel_de_write(display, ctrl_reg,
> >>                         header[2] << 16 | header[1] << 8 | header[0]);
> >>  
> >>          /* ->rx_len is set only for reads */
> >>          if (msg->rx_len) {
> >>                  data_mask = GEN_READ_DATA_AVAIL;
> >> -                if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port),
> >> +                if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port),
> >>                                            data_mask, 50))
> >> -                        drm_err(&dev_priv->drm,
> >> +                        drm_err(display->drm,
> >>                                  "Timeout waiting for read data.\n");
> >>  
> >> -                read_data(dev_priv, data_reg, msg->rx_buf, msg->rx_len);
> >> +                read_data(display, data_reg, msg->rx_buf, msg->rx_len);
> >>          }
> >>  
> >>          /* XXX: fix for reads and writes */
> >> @@ -223,7 +223,7 @@ static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
> >>  static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
> >>                          enum port port)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
> >> +        struct intel_display *display = to_intel_display(&intel_dsi->base);
> >>          u32 mask;
> >>  
> >>          /* XXX: pipe, hs */
> >> @@ -233,18 +233,18 @@ static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
> >>                  cmd |= DPI_LP_MODE;
> >>  
> >>          /* clear bit */
> >> -        intel_de_write(dev_priv, MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);
> >> +        intel_de_write(display, MIPI_INTR_STAT(display, port), SPL_PKT_SENT_INTERRUPT);
> >>  
> >>          /* XXX: old code skips write if control unchanged */
> >> -        if (cmd == intel_de_read(dev_priv, MIPI_DPI_CONTROL(port)))
> >> -                drm_dbg_kms(&dev_priv->drm,
> >> +        if (cmd == intel_de_read(display, MIPI_DPI_CONTROL(display, port)))
> >> +                drm_dbg_kms(display->drm,
> >>                              "Same special packet %02x twice in a row.\n", cmd);
> >>  
> >> -        intel_de_write(dev_priv, MIPI_DPI_CONTROL(port), cmd);
> >> +        intel_de_write(display, MIPI_DPI_CONTROL(display, port), cmd);
> >>  
> >>          mask = SPL_PKT_SENT_INTERRUPT;
> >> -        if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port), mask, 100))
> >> -                drm_err(&dev_priv->drm,
> >> +        if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port), mask, 100))
> >> +                drm_err(display->drm,
> >>                          "Video mode command 0x%08x send failed.\n", cmd);
> >>  
> >>          return 0;
> >> @@ -324,7 +324,7 @@ static int intel_dsi_compute_config(struct intel_encoder *encoder,
> >>  
> >>  static bool glk_dsi_enable_io(struct intel_encoder *encoder)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>          bool cold_boot = false;
> >> @@ -334,29 +334,30 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
> >>           * Power ON MIPI IO first and then write into IO reset and LP wake bits
> >>           */
> >>          for_each_dsi_port(port, intel_dsi->ports)
> >> -                intel_de_rmw(dev_priv, MIPI_CTRL(port), 0, GLK_MIPIIO_ENABLE);
> >> +                intel_de_rmw(display, MIPI_CTRL(display, port), 0, GLK_MIPIIO_ENABLE);
> >>  
> >>          /* Put the IO into reset */
> >> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> >> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> >>  
> >>          /* Program LP Wake */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                u32 tmp = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
> >> -                intel_de_rmw(dev_priv, MIPI_CTRL(port),
> >> +                u32 tmp = intel_de_read(display, MIPI_DEVICE_READY(display, port));
> >> +
> >> +                intel_de_rmw(display, MIPI_CTRL(display, port),
> >>                               GLK_LP_WAKE, (tmp & DEVICE_READY) ? GLK_LP_WAKE : 0);
> >>          }
> >>  
> >>          /* Wait for Pwr ACK */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
> >>                                            GLK_MIPIIO_PORT_POWERED, 20))
> >> -                        drm_err(&dev_priv->drm, "MIPIO port is powergated\n");
> >> +                        drm_err(display->drm, "MIPIO port is powergated\n");
> >>          }
> >>  
> >>          /* Check for cold boot scenario */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >>                  cold_boot |=
> >> -                        !(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY);
> >> +                        !(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY);
> >>          }
> >>  
> >>          return cold_boot;
> >> @@ -364,99 +365,100 @@ static bool glk_dsi_enable_io(struct intel_encoder *encoder)
> >>  
> >>  static void glk_dsi_device_ready(struct intel_encoder *encoder)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >>          /* Wait for MIPI PHY status bit to set */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
> >>                                            GLK_PHY_STATUS_PORT_READY, 20))
> >> -                        drm_err(&dev_priv->drm, "PHY is not ON\n");
> >> +                        drm_err(display->drm, "PHY is not ON\n");
> >>          }
> >>  
> >>          /* Get IO out of reset */
> >> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
> >> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
> >>  
> >>          /* Get IO out of Low power state*/
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY)) {
> >> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> >> +                if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY)) {
> >> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
> >>                                       ULPS_STATE_MASK, DEVICE_READY);
> >>                          usleep_range(10, 15);
> >>                  } else {
> >>                          /* Enter ULPS */
> >> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> >> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
> >>                                       ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
> >>  
> >>                          /* Wait for ULPS active */
> >> -                        if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> >> +                        if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
> >>                                                      GLK_ULPS_NOT_ACTIVE, 20))
> >> -                                drm_err(&dev_priv->drm, "ULPS not active\n");
> >> +                                drm_err(display->drm, "ULPS not active\n");
> >>  
> >>                          /* Exit ULPS */
> >> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> >> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
> >>                                       ULPS_STATE_MASK, ULPS_STATE_EXIT | DEVICE_READY);
> >>  
> >>                          /* Enter Normal Mode */
> >> -                        intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> >> +                        intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
> >>                                       ULPS_STATE_MASK,
> >>                                       ULPS_STATE_NORMAL_OPERATION | DEVICE_READY);
> >>  
> >> -                        intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_LP_WAKE, 0);
> >> +                        intel_de_rmw(display, MIPI_CTRL(display, port), GLK_LP_WAKE, 0);
> >>                  }
> >>          }
> >>  
> >>          /* Wait for Stop state */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
> >>                                            GLK_DATA_LANE_STOP_STATE, 20))
> >> -                        drm_err(&dev_priv->drm,
> >> +                        drm_err(display->drm,
> >>                                  "Date lane not in STOP state\n");
> >>          }
> >>  
> >>          /* Wait for AFE LATCH */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_set(dev_priv, BXT_MIPI_PORT_CTRL(port),
> >> +                if (intel_de_wait_for_set(display, BXT_MIPI_PORT_CTRL(port),
> >>                                            AFE_LATCHOUT, 20))
> >> -                        drm_err(&dev_priv->drm,
> >> +                        drm_err(display->drm,
> >>                                  "D-PHY not entering LP-11 state\n");
> >>          }
> >>  }
> >>  
> >>  static void bxt_dsi_device_ready(struct intel_encoder *encoder)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>          u32 val;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>  
> >>          /* Enable MIPI PHY transparent latch */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                intel_de_rmw(dev_priv, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
> >> +                intel_de_rmw(display, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
> >>                  usleep_range(2000, 2500);
> >>          }
> >>  
> >>          /* Clear ULPS and set device ready */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                val = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
> >> +                val = intel_de_read(display, MIPI_DEVICE_READY(display, port));
> >>                  val &= ~ULPS_STATE_MASK;
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
> >>                  usleep_range(2000, 2500);
> >>                  val |= DEVICE_READY;
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
> >>          }
> >>  }
> >>  
> >>  static void vlv_dsi_device_ready(struct intel_encoder *encoder)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>  
> >>          vlv_flisdsi_get(dev_priv);
> >>          /* program rcomp for compliance, reduce from 50 ohms to 45 ohms
> >> @@ -469,7 +471,7 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
> >>  
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 ULPS_STATE_ENTER);
> >>                  usleep_range(2500, 3000);
> >>  
> >> @@ -477,14 +479,14 @@ static void vlv_dsi_device_ready(struct intel_encoder *encoder)
> >>                   * Common bit for both MIPI Port A & MIPI Port C
> >>                   * No similar bit in MIPI Port C reg
> >>                   */
> >> -                intel_de_rmw(dev_priv, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
> >> +                intel_de_rmw(display, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
> >>                  usleep_range(1000, 1500);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 ULPS_STATE_EXIT);
> >>                  usleep_range(2500, 3000);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 DEVICE_READY);
> >>                  usleep_range(2500, 3000);
> >>          }
> >> @@ -504,50 +506,50 @@ static void intel_dsi_device_ready(struct intel_encoder *encoder)
> >>  
> >>  static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >>          /* Enter ULPS */
> >>          for_each_dsi_port(port, intel_dsi->ports)
> >> -                intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
> >>                               ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
> >>  
> >>          /* Wait for MIPI PHY status bit to unset */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
> >>                                              GLK_PHY_STATUS_PORT_READY, 20))
> >> -                        drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
> >> +                        drm_err(display->drm, "PHY is not turning OFF\n");
> >>          }
> >>  
> >>          /* Wait for Pwr ACK bit to unset */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
> >>                                              GLK_MIPIIO_PORT_POWERED, 20))
> >> -                        drm_err(&dev_priv->drm,
> >> +                        drm_err(display->drm,
> >>                                  "MIPI IO Port is not powergated\n");
> >>          }
> >>  }
> >>  
> >>  static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >>          /* Put the IO into reset */
> >> -        intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> >> +        intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
> >>  
> >>          /* Wait for MIPI PHY status bit to unset */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
> >> +                if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
> >>                                              GLK_PHY_STATUS_PORT_READY, 20))
> >> -                        drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
> >> +                        drm_err(display->drm, "PHY is not turning OFF\n");
> >>          }
> >>  
> >>          /* Clear MIPI mode */
> >>          for_each_dsi_port(port, intel_dsi->ports)
> >> -                intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_MIPIIO_ENABLE, 0);
> >> +                intel_de_rmw(display, MIPI_CTRL(display, port), GLK_MIPIIO_ENABLE, 0);
> >>  }
> >>  
> >>  static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
> >> @@ -564,25 +566,26 @@ static i915_reg_t port_ctrl_reg(struct drm_i915_private *i915, enum port port)
> >>  
> >>  static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >>                  /* Common bit for both MIPI Port A & MIPI Port C on VLV/CHV */
> >>                  i915_reg_t port_ctrl = IS_BROXTON(dev_priv) ?
> >>                          BXT_MIPI_PORT_CTRL(port) : VLV_MIPI_PORT_CTRL(PORT_A);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 DEVICE_READY | ULPS_STATE_ENTER);
> >>                  usleep_range(2000, 2500);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 DEVICE_READY | ULPS_STATE_EXIT);
> >>                  usleep_range(2000, 2500);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port),
> >>                                 DEVICE_READY | ULPS_STATE_ENTER);
> >>                  usleep_range(2000, 2500);
> >>  
> >> @@ -591,15 +594,15 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
> >>                   * Port A only. MIPI Port C has no similar bit for checking.
> >>                   */
> >>                  if ((IS_BROXTON(dev_priv) || port == PORT_A) &&
> >> -                    intel_de_wait_for_clear(dev_priv, port_ctrl,
> >> +                    intel_de_wait_for_clear(display, port_ctrl,
> >>                                              AFE_LATCHOUT, 30))
> >> -                        drm_err(&dev_priv->drm, "DSI LP not going Low\n");
> >> +                        drm_err(display->drm, "DSI LP not going Low\n");
> >>  
> >>                  /* Disable MIPI PHY transparent latch */
> >> -                intel_de_rmw(dev_priv, port_ctrl, LP_OUTPUT_HOLD, 0);
> >> +                intel_de_rmw(display, port_ctrl, LP_OUTPUT_HOLD, 0);
> >>                  usleep_range(1000, 1500);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x00);
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x00);
> >>                  usleep_range(2000, 2500);
> >>          }
> >>  }
> >> @@ -607,6 +610,7 @@ static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
> >>  static void intel_dsi_port_enable(struct intel_encoder *encoder,
> >>                                    const struct intel_crtc_state *crtc_state)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >> @@ -617,11 +621,11 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
> >>  
> >>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> >>                          for_each_dsi_port(port, intel_dsi->ports)
> >> -                                intel_de_rmw(dev_priv, MIPI_CTRL(port),
> >> +                                intel_de_rmw(display, MIPI_CTRL(display, port),
> >>                                               BXT_PIXEL_OVERLAP_CNT_MASK,
> >>                                               temp << BXT_PIXEL_OVERLAP_CNT_SHIFT);
> >>                  } else {
> >> -                        intel_de_rmw(dev_priv, VLV_CHICKEN_3,
> >> +                        intel_de_rmw(display, VLV_CHICKEN_3,
> >>                                       PIXEL_OVERLAP_CNT_MASK,
> >>                                       temp << PIXEL_OVERLAP_CNT_SHIFT);
> >>                  }
> >> @@ -631,7 +635,7 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
> >>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
> >>                  u32 temp;
> >>  
> >> -                temp = intel_de_read(dev_priv, port_ctrl);
> >> +                temp = intel_de_read(display, port_ctrl);
> >>  
> >>                  temp &= ~LANE_CONFIGURATION_MASK;
> >>                  temp &= ~DUAL_LINK_MODE_MASK;
> >> @@ -651,13 +655,14 @@ static void intel_dsi_port_enable(struct intel_encoder *encoder,
> >>                          temp |= DITHERING_ENABLE;
> >>  
> >>                  /* assert ip_tg_enable signal */
> >> -                intel_de_write(dev_priv, port_ctrl, temp | DPI_ENABLE);
> >> -                intel_de_posting_read(dev_priv, port_ctrl);
> >> +                intel_de_write(display, port_ctrl, temp | DPI_ENABLE);
> >> +                intel_de_posting_read(display, port_ctrl);
> >>          }
> >>  }
> >>  
> >>  static void intel_dsi_port_disable(struct intel_encoder *encoder)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >> @@ -666,8 +671,8 @@ static void intel_dsi_port_disable(struct intel_encoder *encoder)
> >>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
> >>  
> >>                  /* de-assert ip_tg_enable signal */
> >> -                intel_de_rmw(dev_priv, port_ctrl, DPI_ENABLE, 0);
> >> -                intel_de_posting_read(dev_priv, port_ctrl);
> >> +                intel_de_rmw(display, port_ctrl, DPI_ENABLE, 0);
> >> +                intel_de_posting_read(display, port_ctrl);
> >>          }
> >>  }
> >>  
> >> @@ -721,6 +726,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
> >>                                   const struct intel_crtc_state *pipe_config,
> >>                                   const struct drm_connector_state *conn_state)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> >>          struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
> >> @@ -728,7 +734,7 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
> >>          enum port port;
> >>          bool glk_cold_boot = false;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>  
> >>          intel_dsi_wait_panel_power_cycle(intel_dsi);
> >>  
> >> @@ -748,16 +754,16 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
> >>  
> >>          if (IS_BROXTON(dev_priv)) {
> >>                  /* Add MIPI IO reset programming for modeset */
> >> -                intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
> >> +                intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
> >>  
> >>                  /* Power up DSI regulator */
> >> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> >> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
> >> +                intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> >> +                intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
> >>          }
> >>  
> >>          if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
> >>                  /* Disable DPOunit clock gating, can stall pipe */
> >> -                intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
> >> +                intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
> >>                               0, DPOUNIT_CLOCK_GATE_DISABLE);
> >>          }
> >>  
> >> @@ -793,8 +799,8 @@ static void intel_dsi_pre_enable(struct intel_atomic_state *state,
> >>           */
> >>          if (is_cmd_mode(intel_dsi)) {
> >>                  for_each_dsi_port(port, intel_dsi->ports)
> >> -                        intel_de_write(dev_priv,
> >> -                                       MIPI_MAX_RETURN_PKT_SIZE(port), 8 * 4);
> >> +                        intel_de_write(display,
> >> +                                       MIPI_MAX_RETURN_PKT_SIZE(display, port), 8 * 4);
> >>                  intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON);
> >>                  intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON);
> >>          } else {
> >> @@ -866,11 +872,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
> >>                                     const struct intel_crtc_state *old_crtc_state,
> >>                                     const struct drm_connector_state *old_conn_state)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>  
> >>          if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> >>                  intel_crtc_vblank_off(old_crtc_state);
> >> @@ -901,12 +908,12 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
> >>  
> >>          if (IS_BROXTON(dev_priv)) {
> >>                  /* Power down DSI regulator to save power */
> >> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> >> -                intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL,
> >> +                intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
> >> +                intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL,
> >>                                 HS_IO_CTRL_SELECT);
> >>  
> >>                  /* Add MIPI IO reset programming for modeset */
> >> -                intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
> >> +                intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
> >>          }
> >>  
> >>          if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> >> @@ -914,7 +921,7 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
> >>          } else {
> >>                  vlv_dsi_pll_disable(encoder);
> >>  
> >> -                intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
> >> +                intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
> >>                               DPOUNIT_CLOCK_GATE_DISABLE, 0);
> >>          }
> >>  
> >> @@ -930,13 +937,14 @@ static void intel_dsi_post_disable(struct intel_atomic_state *state,
> >>  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
> >>                                     enum pipe *pipe)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          intel_wakeref_t wakeref;
> >>          enum port port;
> >>          bool active = false;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "\n");
> >> +        drm_dbg_kms(display->drm, "\n");
> >>  
> >>          wakeref = intel_display_power_get_if_enabled(dev_priv,
> >>                                                       encoder->power_domain);
> >> @@ -955,7 +963,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
> >>          /* XXX: this only works for one DSI output */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >>                  i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
> >> -                bool enabled = intel_de_read(dev_priv, port_ctrl) & DPI_ENABLE;
> >> +                bool enabled = intel_de_read(display, port_ctrl) & DPI_ENABLE;
> >>  
> >>                  /*
> >>                   * Due to some hardware limitations on VLV/CHV, the DPI enable
> >> @@ -964,27 +972,27 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
> >>                   */
> >>                  if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
> >>                      port == PORT_C)
> >> -                        enabled = intel_de_read(dev_priv, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
> >> +                        enabled = intel_de_read(display, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
> >>  
> >>                  /* Try command mode if video mode not enabled */
> >>                  if (!enabled) {
> >> -                        u32 tmp = intel_de_read(dev_priv,
> >> -                                                MIPI_DSI_FUNC_PRG(port));
> >> +                        u32 tmp = intel_de_read(display,
> >> +                                                MIPI_DSI_FUNC_PRG(display, port));
> >>                          enabled = tmp & CMD_MODE_DATA_WIDTH_MASK;
> >>                  }
> >>  
> >>                  if (!enabled)
> >>                          continue;
> >>  
> >> -                if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY))
> >> +                if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY))
> >>                          continue;
> >>  
> >>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> >> -                        u32 tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> >> +                        u32 tmp = intel_de_read(display, MIPI_CTRL(display, port));
> >>                          tmp &= BXT_PIPE_SELECT_MASK;
> >>                          tmp >>= BXT_PIPE_SELECT_SHIFT;
> >>  
> >> -                        if (drm_WARN_ON(&dev_priv->drm, tmp > PIPE_C))
> >> +                        if (drm_WARN_ON(display->drm, tmp > PIPE_C))
> >>                                  continue;
> >>  
> >>                          *pipe = tmp;
> >> @@ -1005,7 +1013,7 @@ static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
> >>  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
> >>                                      struct intel_crtc_state *pipe_config)
> >>  {
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_display_mode *adjusted_mode =
> >>                                          &pipe_config->hw.adjusted_mode;
> >>          struct drm_display_mode *adjusted_mode_sw;
> >> @@ -1027,11 +1035,11 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
> >>           * encoder->get_hw_state() returns true.
> >>           */
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                if (intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
> >> +                if (intel_de_read(display, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
> >>                          break;
> >>          }
> >>  
> >> -        fmt = intel_de_read(dev_priv, MIPI_DSI_FUNC_PRG(port)) & VID_MODE_FORMAT_MASK;
> >> +        fmt = intel_de_read(display, MIPI_DSI_FUNC_PRG(display, port)) & VID_MODE_FORMAT_MASK;
> >>          bpp = mipi_dsi_pixel_format_to_bpp(
> >>                          pixel_format_from_register_bits(fmt));
> >>  
> >> @@ -1043,24 +1051,24 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
> >>  
> >>          /* In terms of pixels */
> >>          adjusted_mode->crtc_hdisplay =
> >> -                                intel_de_read(dev_priv,
> >> +                                intel_de_read(display,
> >>                                                BXT_MIPI_TRANS_HACTIVE(port));
> >>          adjusted_mode->crtc_vdisplay =
> >> -                                intel_de_read(dev_priv,
> >> +                                intel_de_read(display,
> >>                                                BXT_MIPI_TRANS_VACTIVE(port));
> >>          adjusted_mode->crtc_vtotal =
> >> -                                intel_de_read(dev_priv,
> >> +                                intel_de_read(display,
> >>                                                BXT_MIPI_TRANS_VTOTAL(port));
> >>  
> >>          hactive = adjusted_mode->crtc_hdisplay;
> >> -        hfp = intel_de_read(dev_priv, MIPI_HFP_COUNT(port));
> >> +        hfp = intel_de_read(display, MIPI_HFP_COUNT(display, port));
> >>  
> >>          /*
> >>           * Meaningful for video mode non-burst sync pulse mode only,
> >>           * can be zero for non-burst sync events and burst modes
> >>           */
> >> -        hsync = intel_de_read(dev_priv, MIPI_HSYNC_PADDING_COUNT(port));
> >> -        hbp = intel_de_read(dev_priv, MIPI_HBP_COUNT(port));
> >> +        hsync = intel_de_read(display, MIPI_HSYNC_PADDING_COUNT(display, port));
> >> +        hbp = intel_de_read(display, MIPI_HBP_COUNT(display, port));
> >>  
> >>          /* harizontal values are in terms of high speed byte clock */
> >>          hfp = pixels_from_txbyteclkhs(hfp, bpp, lane_count,
> >> @@ -1077,8 +1085,8 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
> >>          }
> >>  
> >>          /* vertical values are in terms of lines */
> >> -        vfp = intel_de_read(dev_priv, MIPI_VFP_COUNT(port));
> >> -        vsync = intel_de_read(dev_priv, MIPI_VSYNC_PADDING_COUNT(port));
> >> +        vfp = intel_de_read(display, MIPI_VFP_COUNT(display, port));
> >> +        vsync = intel_de_read(display, MIPI_VSYNC_PADDING_COUNT(display, port));
> >>  
> >>          adjusted_mode->crtc_htotal = hactive + hfp + hsync + hbp;
> >>          adjusted_mode->crtc_hsync_start = hfp + adjusted_mode->crtc_hdisplay;
> >> @@ -1207,6 +1215,7 @@ static u16 txclkesc(u32 divider, unsigned int us)
> >>  static void set_dsi_timings(struct intel_encoder *encoder,
> >>                              const struct drm_display_mode *adjusted_mode)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >> @@ -1249,29 +1258,29 @@ static void set_dsi_timings(struct intel_encoder *encoder,
> >>                           * vactive, as they are calculated per channel basis,
> >>                           * whereas these values should be based on resolution.
> >>                           */
> >> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_HACTIVE(port),
> >> +                        intel_de_write(display, BXT_MIPI_TRANS_HACTIVE(port),
> >>                                         adjusted_mode->crtc_hdisplay);
> >> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_VACTIVE(port),
> >> +                        intel_de_write(display, BXT_MIPI_TRANS_VACTIVE(port),
> >>                                         adjusted_mode->crtc_vdisplay);
> >> -                        intel_de_write(dev_priv, BXT_MIPI_TRANS_VTOTAL(port),
> >> +                        intel_de_write(display, BXT_MIPI_TRANS_VTOTAL(port),
> >>                                         adjusted_mode->crtc_vtotal);
> >>                  }
> >>  
> >> -                intel_de_write(dev_priv, MIPI_HACTIVE_AREA_COUNT(port),
> >> +                intel_de_write(display, MIPI_HACTIVE_AREA_COUNT(display, port),
> >>                                 hactive);
> >> -                intel_de_write(dev_priv, MIPI_HFP_COUNT(port), hfp);
> >> +                intel_de_write(display, MIPI_HFP_COUNT(display, port), hfp);
> >>  
> >>                  /* meaningful for video mode non-burst sync pulse mode only,
> >>                   * can be zero for non-burst sync events and burst modes */
> >> -                intel_de_write(dev_priv, MIPI_HSYNC_PADDING_COUNT(port),
> >> +                intel_de_write(display, MIPI_HSYNC_PADDING_COUNT(display, port),
> >>                                 hsync);
> >> -                intel_de_write(dev_priv, MIPI_HBP_COUNT(port), hbp);
> >> +                intel_de_write(display, MIPI_HBP_COUNT(display, port), hbp);
> >>  
> >>                  /* vertical values are in terms of lines */
> >> -                intel_de_write(dev_priv, MIPI_VFP_COUNT(port), vfp);
> >> -                intel_de_write(dev_priv, MIPI_VSYNC_PADDING_COUNT(port),
> >> +                intel_de_write(display, MIPI_VFP_COUNT(display, port), vfp);
> >> +                intel_de_write(display, MIPI_VSYNC_PADDING_COUNT(display, port),
> >>                                 vsync);
> >> -                intel_de_write(dev_priv, MIPI_VBP_COUNT(port), vbp);
> >> +                intel_de_write(display, MIPI_VBP_COUNT(display, port), vbp);
> >>          }
> >>  }
> >>  
> >> @@ -1295,6 +1304,7 @@ static u32 pixel_format_to_reg(enum mipi_dsi_pixel_format fmt)
> >>  static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                                const struct intel_crtc_state *pipe_config)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >> @@ -1304,7 +1314,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>          u32 val, tmp;
> >>          u16 mode_hdisplay;
> >>  
> >> -        drm_dbg_kms(&dev_priv->drm, "pipe %c\n", pipe_name(crtc->pipe));
> >> +        drm_dbg_kms(display->drm, "pipe %c\n", pipe_name(crtc->pipe));
> >>  
> >>          mode_hdisplay = adjusted_mode->crtc_hdisplay;
> >>  
> >> @@ -1320,31 +1330,31 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                           * escape clock divider, 20MHz, shared for A and C.
> >>                           * device ready must be off when doing this! txclkesc?
> >>                           */
> >> -                        tmp = intel_de_read(dev_priv, MIPI_CTRL(PORT_A));
> >> +                        tmp = intel_de_read(display, MIPI_CTRL(display, PORT_A));
> >>                          tmp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
> >> -                        intel_de_write(dev_priv, MIPI_CTRL(PORT_A),
> >> +                        intel_de_write(display, MIPI_CTRL(display, PORT_A),
> >>                                         tmp | ESCAPE_CLOCK_DIVIDER_1);
> >>  
> >>                          /* read request priority is per pipe */
> >> -                        tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
> >> +                        tmp = intel_de_read(display, MIPI_CTRL(display, port));
> >>                          tmp &= ~READ_REQUEST_PRIORITY_MASK;
> >> -                        intel_de_write(dev_priv, MIPI_CTRL(port),
> >> +                        intel_de_write(display, MIPI_CTRL(display, port),
> >>                                         tmp | READ_REQUEST_PRIORITY_HIGH);
> >>                  } else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
> >>                          enum pipe pipe = crtc->pipe;
> >>  
> >> -                        intel_de_rmw(dev_priv, MIPI_CTRL(port),
> >> +                        intel_de_rmw(display, MIPI_CTRL(display, port),
> >>                                       BXT_PIPE_SELECT_MASK, BXT_PIPE_SELECT(pipe));
> >>                  }
> >>  
> >>                  /* XXX: why here, why like this? handling in irq handler?! */
> >> -                intel_de_write(dev_priv, MIPI_INTR_STAT(port), 0xffffffff);
> >> -                intel_de_write(dev_priv, MIPI_INTR_EN(port), 0xffffffff);
> >> +                intel_de_write(display, MIPI_INTR_STAT(display, port), 0xffffffff);
> >> +                intel_de_write(display, MIPI_INTR_EN(display, port), 0xffffffff);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DPHY_PARAM(port),
> >> +                intel_de_write(display, MIPI_DPHY_PARAM(display, port),
> >>                                 intel_dsi->dphy_reg);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DPI_RESOLUTION(port),
> >> +                intel_de_write(display, MIPI_DPI_RESOLUTION(display, port),
> >>                                 adjusted_mode->crtc_vdisplay << VERTICAL_ADDRESS_SHIFT | mode_hdisplay << HORIZONTAL_ADDRESS_SHIFT);
> >>          }
> >>  
> >> @@ -1372,7 +1382,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>          }
> >>  
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >> -                intel_de_write(dev_priv, MIPI_DSI_FUNC_PRG(port), val);
> >> +                intel_de_write(display, MIPI_DSI_FUNC_PRG(display, port), val);
> >>  
> >>                  /* timeouts for recovery. one frame IIUC. if counter expires,
> >>                   * EOT and stop state. */
> >> @@ -1393,23 +1403,23 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>  
> >>                  if (is_vid_mode(intel_dsi) &&
> >>                          intel_dsi->video_mode == BURST_MODE) {
> >> -                        intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
> >> +                        intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
> >>                                         txbyteclkhs(adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
> >>                  } else {
> >> -                        intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
> >> +                        intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
> >>                                         txbyteclkhs(adjusted_mode->crtc_vtotal * adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
> >>                  }
> >> -                intel_de_write(dev_priv, MIPI_LP_RX_TIMEOUT(port),
> >> +                intel_de_write(display, MIPI_LP_RX_TIMEOUT(display, port),
> >>                                 intel_dsi->lp_rx_timeout);
> >> -                intel_de_write(dev_priv, MIPI_TURN_AROUND_TIMEOUT(port),
> >> +                intel_de_write(display, MIPI_TURN_AROUND_TIMEOUT(display, port),
> >>                                 intel_dsi->turn_arnd_val);
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_RESET_TIMER(port),
> >> +                intel_de_write(display, MIPI_DEVICE_RESET_TIMER(display, port),
> >>                                 intel_dsi->rst_timer_val);
> >>  
> >>                  /* dphy stuff */
> >>  
> >>                  /* in terms of low power clock */
> >> -                intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
> >> +                intel_de_write(display, MIPI_INIT_COUNT(display, port),
> >>                                 txclkesc(intel_dsi->escape_clk_div, 100));
> >>  
> >>                  if ((IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) &&
> >> @@ -1420,16 +1430,16 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                           * getting used. So write the other port
> >>                           * if not in dual link mode.
> >>                           */
> >> -                        intel_de_write(dev_priv,
> >> -                                       MIPI_INIT_COUNT(port == PORT_A ? PORT_C : PORT_A),
> >> +                        intel_de_write(display,
> >> +                                       MIPI_INIT_COUNT(display, port == PORT_A ? PORT_C : PORT_A),
> >>                                         intel_dsi->init_count);
> >>                  }
> >>  
> >>                  /* recovery disables */
> >> -                intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), tmp);
> >> +                intel_de_write(display, MIPI_EOT_DISABLE(display, port), tmp);
> >>  
> >>                  /* in terms of low power clock */
> >> -                intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
> >> +                intel_de_write(display, MIPI_INIT_COUNT(display, port),
> >>                                 intel_dsi->init_count);
> >>  
> >>                  /* in terms of txbyteclkhs. actual high to low switch +
> >> @@ -1437,7 +1447,7 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                   *
> >>                   * XXX: write MIPI_STOP_STATE_STALL?
> >>                   */
> >> -                intel_de_write(dev_priv, MIPI_HIGH_LOW_SWITCH_COUNT(port),
> >> +                intel_de_write(display, MIPI_HIGH_LOW_SWITCH_COUNT(display, port),
> >>                                 intel_dsi->hs_to_lp_count);
> >>  
> >>                  /* XXX: low power clock equivalence in terms of byte clock.
> >> @@ -1446,14 +1456,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                   * txclkesc time / txbyteclk time * (105 + MIPI_STOP_STATE_STALL
> >>                   * ) / 105.???
> >>                   */
> >> -                intel_de_write(dev_priv, MIPI_LP_BYTECLK(port),
> >> +                intel_de_write(display, MIPI_LP_BYTECLK(display, port),
> >>                                 intel_dsi->lp_byte_clk);
> >>  
> >>                  if (IS_GEMINILAKE(dev_priv)) {
> >> -                        intel_de_write(dev_priv, MIPI_TLPX_TIME_COUNT(port),
> >> +                        intel_de_write(display, MIPI_TLPX_TIME_COUNT(display, port),
> >>                                         intel_dsi->lp_byte_clk);
> >>                          /* Shadow of DPHY reg */
> >> -                        intel_de_write(dev_priv, MIPI_CLK_LANE_TIMING(port),
> >> +                        intel_de_write(display, MIPI_CLK_LANE_TIMING(display, port),
> >>                                         intel_dsi->dphy_reg);
> >>                  }
> >>  
> >> @@ -1462,10 +1472,10 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                   * this register in terms of byte clocks. based on dsi transfer
> >>                   * rate and the number of lanes configured the time taken to
> >>                   * transmit 16 long packets in a dsi stream varies. */
> >> -                intel_de_write(dev_priv, MIPI_DBI_BW_CTRL(port),
> >> +                intel_de_write(display, MIPI_DBI_BW_CTRL(display, port),
> >>                                 intel_dsi->bw_timer);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_CLK_LANE_SWITCH_TIME_CNT(port),
> >> +                intel_de_write(display, MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port),
> >>                                 intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_SW_CNT_SHIFT);
> >>  
> >>                  if (is_vid_mode(intel_dsi)) {
> >> @@ -1493,13 +1503,14 @@ static void intel_dsi_prepare(struct intel_encoder *encoder,
> >>                                  break;
> >>                          }
> >>  
> >> -                        intel_de_write(dev_priv, MIPI_VIDEO_MODE_FORMAT(port), fmt);
> >> +                        intel_de_write(display, MIPI_VIDEO_MODE_FORMAT(display, port), fmt);
> >>                  }
> >>          }
> >>  }
> >>  
> >>  static void intel_dsi_unprepare(struct intel_encoder *encoder)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >>          enum port port;
> >> @@ -1509,17 +1520,17 @@ static void intel_dsi_unprepare(struct intel_encoder *encoder)
> >>  
> >>          for_each_dsi_port(port, intel_dsi->ports) {
> >>                  /* Panel commands can be sent when clock is in LP11 */
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x0);
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x0);
> >>  
> >>                  if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv))
> >>                          bxt_dsi_reset_clocks(encoder, port);
> >>                  else
> >>                          vlv_dsi_reset_clocks(encoder, port);
> >> -                intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
> >> +                intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
> >>  
> >> -                intel_de_rmw(dev_priv, MIPI_DSI_FUNC_PRG(port), VID_MODE_FORMAT_MASK, 0);
> >> +                intel_de_rmw(display, MIPI_DSI_FUNC_PRG(display, port), VID_MODE_FORMAT_MASK, 0);
> >>  
> >> -                intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x1);
> >> +                intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x1);
> >>          }
> >>  }
> >>  
> >> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> >> index ae0a0b11bae3..70c5a13a3c75 100644
> >> --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> >> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
> >> @@ -365,13 +365,13 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
> >>  
> >>  void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
> >>  {
> >> -        u32 temp;
> >> -        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >> +        struct intel_display *display = to_intel_display(encoder);
> >>          struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
> >> +        u32 temp;
> >>  
> >> -        temp = intel_de_read(dev_priv, MIPI_CTRL(port));
> >> +        temp = intel_de_read(display, MIPI_CTRL(display, port));
> >>          temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
> >> -        intel_de_write(dev_priv, MIPI_CTRL(port),
> >> +        intel_de_write(display, MIPI_CTRL(display, port),
> >>                         temp | intel_dsi->escape_clk_div << ESCAPE_CLOCK_DIVIDER_SHIFT);
> >>  }
> >>  
> >> @@ -570,24 +570,24 @@ void bxt_dsi_pll_enable(struct intel_encoder *encoder,
> >>  
> >>  void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
> >>  {
> >> +        struct intel_display *display = to_intel_display(encoder);
> >> +        struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> >>          u32 tmp;
> >> -        struct drm_device *dev = encoder->base.dev;
> >> -        struct drm_i915_private *dev_priv = to_i915(dev);
> >>  
> >>          /* Clear old configurations */
> >>          if (IS_BROXTON(dev_priv)) {
> >> -                tmp = intel_de_read(dev_priv, BXT_MIPI_CLOCK_CTL);
> >> +                tmp = intel_de_read(display, BXT_MIPI_CLOCK_CTL);
> >>                  tmp &= ~(BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port));
> >>                  tmp &= ~(BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port));
> >>                  tmp &= ~(BXT_MIPI_8X_BY3_DIVIDER_MASK(port));
> >>                  tmp &= ~(BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port));
> >> -                intel_de_write(dev_priv, BXT_MIPI_CLOCK_CTL, tmp);
> >> +                intel_de_write(display, BXT_MIPI_CLOCK_CTL, tmp);
> >>          } else {
> >> -                intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
> >> +                intel_de_rmw(display, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
> >>  
> >> -                intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
> >> +                intel_de_rmw(display, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
> >>          }
> >> -        intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
> >> +        intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
> >>  }
> >>  
> >>  static void assert_dsi_pll(struct drm_i915_private *i915, bool state)
> >> diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> >> index 12a608a73720..c1126d170ec6 100644
> >> --- a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> >> +++ b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
> >> @@ -11,26 +11,23 @@
> >>  #define VLV_MIPI_BASE                        VLV_DISPLAY_BASE
> >>  #define BXT_MIPI_BASE                        0x60000
> >>  
> >> -#define _MIPI_MMIO_BASE(__i915) ((__i915)->display.dsi.mmio_base)
> >> +#define _MIPI_MMIO_BASE(display)        ((display)->dsi.mmio_base)
> >>  
> >>  #define _MIPI_PORT(port, a, c)        (((port) == PORT_A) ? a : c)        /* ports A and C only */
> >> -#define _MMIO_MIPI(port, a, c)        _MMIO(_MIPI_PORT(port, a, c))
> >> +#define _MMIO_MIPI(base, port, a, c)        _MMIO((base) + _MIPI_PORT(port, a, c))
> >>  
> >>  /* BXT MIPI mode configure */
> >> -#define  _BXT_MIPIA_TRANS_HACTIVE                        0x6B0F8
> >> -#define  _BXT_MIPIC_TRANS_HACTIVE                        0x6B8F8
> >> -#define  BXT_MIPI_TRANS_HACTIVE(tc)        _MMIO_MIPI(tc, \
> >> -                _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
> >> +#define  _BXT_MIPIA_TRANS_HACTIVE                0xb0f8
> >> +#define  _BXT_MIPIC_TRANS_HACTIVE                0xb8f8
> >> +#define  BXT_MIPI_TRANS_HACTIVE(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
> >>  
> >> -#define  _BXT_MIPIA_TRANS_VACTIVE                        0x6B0FC
> >> -#define  _BXT_MIPIC_TRANS_VACTIVE                        0x6B8FC
> >> -#define  BXT_MIPI_TRANS_VACTIVE(tc)        _MMIO_MIPI(tc, \
> >> -                _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
> >> +#define  _BXT_MIPIA_TRANS_VACTIVE                0xb0fc
> >> +#define  _BXT_MIPIC_TRANS_VACTIVE                0xb8fc
> >> +#define  BXT_MIPI_TRANS_VACTIVE(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
> >>  
> >> -#define  _BXT_MIPIA_TRANS_VTOTAL                        0x6B100
> >> -#define  _BXT_MIPIC_TRANS_VTOTAL                        0x6B900
> >> -#define  BXT_MIPI_TRANS_VTOTAL(tc)        _MMIO_MIPI(tc, \
> >> -                _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
> >> +#define  _BXT_MIPIA_TRANS_VTOTAL                0xb100
> >> +#define  _BXT_MIPIC_TRANS_VTOTAL                0xb900
> >> +#define  BXT_MIPI_TRANS_VTOTAL(tc)                _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
> >>  
> >>  #define BXT_P_DSI_REGULATOR_CFG                        _MMIO(0x160020)
> >>  #define  STAP_SELECT                                        (1 << 0)
> >> @@ -38,14 +35,14 @@
> >>  #define BXT_P_DSI_REGULATOR_TX_CTRL                _MMIO(0x160054)
> >>  #define  HS_IO_CTRL_SELECT                                (1 << 0)
> >>  
> >> -#define _MIPIA_PORT_CTRL                        (VLV_DISPLAY_BASE + 0x61190)
> >> -#define _MIPIC_PORT_CTRL                        (VLV_DISPLAY_BASE + 0x61700)
> >> -#define VLV_MIPI_PORT_CTRL(port)        _MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
> >> +#define _MIPIA_PORT_CTRL                        0x61190
> >> +#define _MIPIC_PORT_CTRL                        0x61700
> >> +#define VLV_MIPI_PORT_CTRL(port)                _MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
> >>  
> >>   /* BXT port control */
> >> -#define _BXT_MIPIA_PORT_CTRL                                0x6B0C0
> >> -#define _BXT_MIPIC_PORT_CTRL                                0x6B8C0
> >> -#define BXT_MIPI_PORT_CTRL(tc)        _MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
> >> +#define _BXT_MIPIA_PORT_CTRL                        0xb0c0
> >> +#define _BXT_MIPIC_PORT_CTRL                        0xb8c0
> >> +#define BXT_MIPI_PORT_CTRL(tc)                        _MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
> >>  
> >>  #define  DPI_ENABLE                                        (1 << 31) /* A + C */
> >>  #define  MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT                27
> >> @@ -87,17 +84,17 @@
> >>  #define  LANE_CONFIGURATION_DUAL_LINK_A                        (1 << 0)
> >>  #define  LANE_CONFIGURATION_DUAL_LINK_B                        (2 << 0)
> >>  
> >> -#define _MIPIA_TEARING_CTRL                        (VLV_DISPLAY_BASE + 0x61194)
> >> -#define _MIPIC_TEARING_CTRL                        (VLV_DISPLAY_BASE + 0x61704)
> >> -#define VLV_MIPI_TEARING_CTRL(port)                _MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
> >> +#define _MIPIA_TEARING_CTRL                        0x61194
> >> +#define _MIPIC_TEARING_CTRL                        0x61704
> >> +#define VLV_MIPI_TEARING_CTRL(port)                        _MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
> >>  #define  TEARING_EFFECT_DELAY_SHIFT                        0
> >>  #define  TEARING_EFFECT_DELAY_MASK                        (0xffff << 0)
> >>  
> >>  /* MIPI DSI Controller and D-PHY registers */
> >>  
> >> -#define _MIPIA_DEVICE_READY                (_MIPI_MMIO_BASE(dev_priv) + 0xb000)
> >> -#define _MIPIC_DEVICE_READY                (_MIPI_MMIO_BASE(dev_priv) + 0xb800)
> >> -#define MIPI_DEVICE_READY(port)                _MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
> >> +#define _MIPIA_DEVICE_READY                        0xb000
> >> +#define _MIPIC_DEVICE_READY                        0xb800
> >> +#define MIPI_DEVICE_READY(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
> >>  #define  BUS_POSSESSION                                        (1 << 3) /* set to give bus to receiver */
> >>  #define  ULPS_STATE_MASK                                (3 << 1)
> >>  #define  ULPS_STATE_ENTER                                (2 << 1)
> >> @@ -105,12 +102,12 @@
> >>  #define  ULPS_STATE_NORMAL_OPERATION                        (0 << 1)
> >>  #define  DEVICE_READY                                        (1 << 0)
> >>  
> >> -#define _MIPIA_INTR_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb004)
> >> -#define _MIPIC_INTR_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb804)
> >> -#define MIPI_INTR_STAT(port)                _MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
> >> -#define _MIPIA_INTR_EN                        (_MIPI_MMIO_BASE(dev_priv) + 0xb008)
> >> -#define _MIPIC_INTR_EN                        (_MIPI_MMIO_BASE(dev_priv) + 0xb808)
> >> -#define MIPI_INTR_EN(port)                _MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
> >> +#define _MIPIA_INTR_STAT                        0xb004
> >> +#define _MIPIC_INTR_STAT                        0xb804
> >> +#define MIPI_INTR_STAT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
> >> +#define _MIPIA_INTR_EN                                0xb008
> >> +#define _MIPIC_INTR_EN                                0xb808
> >> +#define MIPI_INTR_EN(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
> >>  #define  TEARING_EFFECT                                        (1 << 31)
> >>  #define  SPL_PKT_SENT_INTERRUPT                                (1 << 30)
> >>  #define  GEN_READ_DATA_AVAIL                                (1 << 29)
> >> @@ -144,9 +141,9 @@
> >>  #define  RXSOT_SYNC_ERROR                                (1 << 1)
> >>  #define  RXSOT_ERROR                                        (1 << 0)
> >>  
> >> -#define _MIPIA_DSI_FUNC_PRG                (_MIPI_MMIO_BASE(dev_priv) + 0xb00c)
> >> -#define _MIPIC_DSI_FUNC_PRG                (_MIPI_MMIO_BASE(dev_priv) + 0xb80c)
> >> -#define MIPI_DSI_FUNC_PRG(port)                _MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
> >> +#define _MIPIA_DSI_FUNC_PRG                        0xb00c
> >> +#define _MIPIC_DSI_FUNC_PRG                        0xb80c
> >> +#define MIPI_DSI_FUNC_PRG(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
> >>  #define  CMD_MODE_DATA_WIDTH_MASK                        (7 << 13)
> >>  #define  CMD_MODE_NOT_SUPPORTED                                (0 << 13)
> >>  #define  CMD_MODE_DATA_WIDTH_16_BIT                        (1 << 13)
> >> @@ -167,77 +164,77 @@
> >>  #define  DATA_LANES_PRG_REG_SHIFT                        0
> >>  #define  DATA_LANES_PRG_REG_MASK                        (7 << 0)
> >>  
> >> -#define _MIPIA_HS_TX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb010)
> >> -#define _MIPIC_HS_TX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb810)
> >> -#define MIPI_HS_TX_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
> >> +#define _MIPIA_HS_TX_TIMEOUT                        0xb010
> >> +#define _MIPIC_HS_TX_TIMEOUT                        0xb810
> >> +#define MIPI_HS_TX_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
> >>  #define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK                0xffffff
> >>  
> >> -#define _MIPIA_LP_RX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb014)
> >> -#define _MIPIC_LP_RX_TIMEOUT                (_MIPI_MMIO_BASE(dev_priv) + 0xb814)
> >> -#define MIPI_LP_RX_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
> >> +#define _MIPIA_LP_RX_TIMEOUT                        0xb014
> >> +#define _MIPIC_LP_RX_TIMEOUT                        0xb814
> >> +#define MIPI_LP_RX_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
> >>  #define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK                0xffffff
> >>  
> >> -#define _MIPIA_TURN_AROUND_TIMEOUT        (_MIPI_MMIO_BASE(dev_priv) + 0xb018)
> >> -#define _MIPIC_TURN_AROUND_TIMEOUT        (_MIPI_MMIO_BASE(dev_priv) + 0xb818)
> >> -#define MIPI_TURN_AROUND_TIMEOUT(port)        _MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
> >> +#define _MIPIA_TURN_AROUND_TIMEOUT                0xb018
> >> +#define _MIPIC_TURN_AROUND_TIMEOUT                0xb818
> >> +#define MIPI_TURN_AROUND_TIMEOUT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
> >>  #define  TURN_AROUND_TIMEOUT_MASK                        0x3f
> >>  
> >> -#define _MIPIA_DEVICE_RESET_TIMER        (_MIPI_MMIO_BASE(dev_priv) + 0xb01c)
> >> -#define _MIPIC_DEVICE_RESET_TIMER        (_MIPI_MMIO_BASE(dev_priv) + 0xb81c)
> >> -#define MIPI_DEVICE_RESET_TIMER(port)        _MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
> >> +#define _MIPIA_DEVICE_RESET_TIMER                0xb01c
> >> +#define _MIPIC_DEVICE_RESET_TIMER                0xb81c
> >> +#define MIPI_DEVICE_RESET_TIMER(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
> >>  #define  DEVICE_RESET_TIMER_MASK                        0xffff
> >>  
> >> -#define _MIPIA_DPI_RESOLUTION                (_MIPI_MMIO_BASE(dev_priv) + 0xb020)
> >> -#define _MIPIC_DPI_RESOLUTION                (_MIPI_MMIO_BASE(dev_priv) + 0xb820)
> >> -#define MIPI_DPI_RESOLUTION(port)        _MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
> >> +#define _MIPIA_DPI_RESOLUTION                        0xb020
> >> +#define _MIPIC_DPI_RESOLUTION                        0xb820
> >> +#define MIPI_DPI_RESOLUTION(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
> >>  #define  VERTICAL_ADDRESS_SHIFT                                16
> >>  #define  VERTICAL_ADDRESS_MASK                                (0xffff << 16)
> >>  #define  HORIZONTAL_ADDRESS_SHIFT                        0
> >>  #define  HORIZONTAL_ADDRESS_MASK                        0xffff
> >>  
> >> -#define _MIPIA_DBI_FIFO_THROTTLE        (_MIPI_MMIO_BASE(dev_priv) + 0xb024)
> >> -#define _MIPIC_DBI_FIFO_THROTTLE        (_MIPI_MMIO_BASE(dev_priv) + 0xb824)
> >> -#define MIPI_DBI_FIFO_THROTTLE(port)        _MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
> >> +#define _MIPIA_DBI_FIFO_THROTTLE                0xb024
> >> +#define _MIPIC_DBI_FIFO_THROTTLE                0xb824
> >> +#define MIPI_DBI_FIFO_THROTTLE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
> >>  #define  DBI_FIFO_EMPTY_HALF                                (0 << 0)
> >>  #define  DBI_FIFO_EMPTY_QUARTER                                (1 << 0)
> >>  #define  DBI_FIFO_EMPTY_7_LOCATIONS                        (2 << 0)
> >>  
> >>  /* regs below are bits 15:0 */
> >> -#define _MIPIA_HSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb028)
> >> -#define _MIPIC_HSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb828)
> >> -#define MIPI_HSYNC_PADDING_COUNT(port)        _MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
> >> +#define _MIPIA_HSYNC_PADDING_COUNT                0xb028
> >> +#define _MIPIC_HSYNC_PADDING_COUNT                0xb828
> >> +#define MIPI_HSYNC_PADDING_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
> >>  
> >> -#define _MIPIA_HBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb02c)
> >> -#define _MIPIC_HBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb82c)
> >> -#define MIPI_HBP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
> >> +#define _MIPIA_HBP_COUNT                        0xb02c
> >> +#define _MIPIC_HBP_COUNT                        0xb82c
> >> +#define MIPI_HBP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
> >>  
> >> -#define _MIPIA_HFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb030)
> >> -#define _MIPIC_HFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb830)
> >> -#define MIPI_HFP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
> >> +#define _MIPIA_HFP_COUNT                        0xb030
> >> +#define _MIPIC_HFP_COUNT                        0xb830
> >> +#define MIPI_HFP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
> >>  
> >> -#define _MIPIA_HACTIVE_AREA_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb034)
> >> -#define _MIPIC_HACTIVE_AREA_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb834)
> >> -#define MIPI_HACTIVE_AREA_COUNT(port)        _MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
> >> +#define _MIPIA_HACTIVE_AREA_COUNT                0xb034
> >> +#define _MIPIC_HACTIVE_AREA_COUNT                0xb834
> >> +#define MIPI_HACTIVE_AREA_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
> >>  
> >> -#define _MIPIA_VSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb038)
> >> -#define _MIPIC_VSYNC_PADDING_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb838)
> >> -#define MIPI_VSYNC_PADDING_COUNT(port)        _MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
> >> +#define _MIPIA_VSYNC_PADDING_COUNT                0xb038
> >> +#define _MIPIC_VSYNC_PADDING_COUNT                0xb838
> >> +#define MIPI_VSYNC_PADDING_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
> >>  
> >> -#define _MIPIA_VBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb03c)
> >> -#define _MIPIC_VBP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb83c)
> >> -#define MIPI_VBP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
> >> +#define _MIPIA_VBP_COUNT                        0xb03c
> >> +#define _MIPIC_VBP_COUNT                        0xb83c
> >> +#define MIPI_VBP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
> >>  
> >> -#define _MIPIA_VFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb040)
> >> -#define _MIPIC_VFP_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb840)
> >> -#define MIPI_VFP_COUNT(port)                _MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
> >> +#define _MIPIA_VFP_COUNT                        0xb040
> >> +#define _MIPIC_VFP_COUNT                        0xb840
> >> +#define MIPI_VFP_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
> >>  
> >> -#define _MIPIA_HIGH_LOW_SWITCH_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb044)
> >> -#define _MIPIC_HIGH_LOW_SWITCH_COUNT        (_MIPI_MMIO_BASE(dev_priv) + 0xb844)
> >> -#define MIPI_HIGH_LOW_SWITCH_COUNT(port)        _MMIO_MIPI(port,        _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
> >> +#define _MIPIA_HIGH_LOW_SWITCH_COUNT                0xb044
> >> +#define _MIPIC_HIGH_LOW_SWITCH_COUNT                0xb844
> >> +#define MIPI_HIGH_LOW_SWITCH_COUNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port,        _MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
> >>  
> >> -#define _MIPIA_DPI_CONTROL                (_MIPI_MMIO_BASE(dev_priv) + 0xb048)
> >> -#define _MIPIC_DPI_CONTROL                (_MIPI_MMIO_BASE(dev_priv) + 0xb848)
> >> -#define MIPI_DPI_CONTROL(port)                _MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
> >> +#define _MIPIA_DPI_CONTROL                        0xb048
> >> +#define _MIPIC_DPI_CONTROL                        0xb848
> >> +#define MIPI_DPI_CONTROL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
> >>  #define  DPI_LP_MODE                                        (1 << 6)
> >>  #define  BACKLIGHT_OFF                                        (1 << 5)
> >>  #define  BACKLIGHT_ON                                        (1 << 4)
> >> @@ -246,28 +243,27 @@
> >>  #define  TURN_ON                                        (1 << 1)
> >>  #define  SHUTDOWN                                        (1 << 0)
> >>  
> >> -#define _MIPIA_DPI_DATA                        (_MIPI_MMIO_BASE(dev_priv) + 0xb04c)
> >> -#define _MIPIC_DPI_DATA                        (_MIPI_MMIO_BASE(dev_priv) + 0xb84c)
> >> -#define MIPI_DPI_DATA(port)                _MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
> >> +#define _MIPIA_DPI_DATA                                0xb04c
> >> +#define _MIPIC_DPI_DATA                                0xb84c
> >> +#define MIPI_DPI_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
> >>  #define  COMMAND_BYTE_SHIFT                                0
> >>  #define  COMMAND_BYTE_MASK                                (0x3f << 0)
> >>  
> >> -#define _MIPIA_INIT_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb050)
> >> -#define _MIPIC_INIT_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb850)
> >> -#define MIPI_INIT_COUNT(port)                _MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
> >> +#define _MIPIA_INIT_COUNT                        0xb050
> >> +#define _MIPIC_INIT_COUNT                        0xb850
> >> +#define MIPI_INIT_COUNT(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
> >>  #define  MASTER_INIT_TIMER_SHIFT                        0
> >>  #define  MASTER_INIT_TIMER_MASK                                (0xffff << 0)
> >>  
> >> -#define _MIPIA_MAX_RETURN_PKT_SIZE        (_MIPI_MMIO_BASE(dev_priv) + 0xb054)
> >> -#define _MIPIC_MAX_RETURN_PKT_SIZE        (_MIPI_MMIO_BASE(dev_priv) + 0xb854)
> >> -#define MIPI_MAX_RETURN_PKT_SIZE(port)        _MMIO_MIPI(port, \
> >> -                        _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
> >> +#define _MIPIA_MAX_RETURN_PKT_SIZE                0xb054
> >> +#define _MIPIC_MAX_RETURN_PKT_SIZE                0xb854
> >> +#define MIPI_MAX_RETURN_PKT_SIZE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
> >>  #define  MAX_RETURN_PKT_SIZE_SHIFT                        0
> >>  #define  MAX_RETURN_PKT_SIZE_MASK                        (0x3ff << 0)
> >>  
> >> -#define _MIPIA_VIDEO_MODE_FORMAT        (_MIPI_MMIO_BASE(dev_priv) + 0xb058)
> >> -#define _MIPIC_VIDEO_MODE_FORMAT        (_MIPI_MMIO_BASE(dev_priv) + 0xb858)
> >> -#define MIPI_VIDEO_MODE_FORMAT(port)        _MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
> >> +#define _MIPIA_VIDEO_MODE_FORMAT                0xb058
> >> +#define _MIPIC_VIDEO_MODE_FORMAT                0xb858
> >> +#define MIPI_VIDEO_MODE_FORMAT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
> >>  #define  RANDOM_DPI_DISPLAY_RESOLUTION                        (1 << 4)
> >>  #define  DISABLE_VIDEO_BTA                                (1 << 3)
> >>  #define  IP_TG_CONFIG                                        (1 << 2)
> >> @@ -275,9 +271,9 @@
> >>  #define  VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS                (2 << 0)
> >>  #define  VIDEO_MODE_BURST                                (3 << 0)
> >>  
> >> -#define _MIPIA_EOT_DISABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb05c)
> >> -#define _MIPIC_EOT_DISABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb85c)
> >> -#define MIPI_EOT_DISABLE(port)                _MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
> >> +#define _MIPIA_EOT_DISABLE                        0xb05c
> >> +#define _MIPIC_EOT_DISABLE                        0xb85c
> >> +#define MIPI_EOT_DISABLE(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
> >>  #define  BXT_DEFEATURE_DPI_FIFO_CTR                        (1 << 9)
> >>  #define  BXT_DPHY_DEFEATURE_EN                                (1 << 8)
> >>  #define  LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE                (1 << 7)
> >> @@ -289,36 +285,36 @@
> >>  #define  CLOCKSTOP                                        (1 << 1)
> >>  #define  EOT_DISABLE                                        (1 << 0)
> >>  
> >> -#define _MIPIA_LP_BYTECLK                (_MIPI_MMIO_BASE(dev_priv) + 0xb060)
> >> -#define _MIPIC_LP_BYTECLK                (_MIPI_MMIO_BASE(dev_priv) + 0xb860)
> >> -#define MIPI_LP_BYTECLK(port)                _MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
> >> +#define _MIPIA_LP_BYTECLK                        0xb060
> >> +#define _MIPIC_LP_BYTECLK                        0xb860
> >> +#define MIPI_LP_BYTECLK(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
> >>  #define  LP_BYTECLK_SHIFT                                0
> >>  #define  LP_BYTECLK_MASK                                (0xffff << 0)
> >>  
> >> -#define _MIPIA_TLPX_TIME_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb0a4)
> >> -#define _MIPIC_TLPX_TIME_COUNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb8a4)
> >> -#define MIPI_TLPX_TIME_COUNT(port)         _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
> >> +#define _MIPIA_TLPX_TIME_COUNT                        0xb0a4
> >> +#define _MIPIC_TLPX_TIME_COUNT                        0xb8a4
> >> +#define MIPI_TLPX_TIME_COUNT(display, port)         _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
> >>  
> >> -#define _MIPIA_CLK_LANE_TIMING                (_MIPI_MMIO_BASE(dev_priv) + 0xb098)
> >> -#define _MIPIC_CLK_LANE_TIMING                (_MIPI_MMIO_BASE(dev_priv) + 0xb898)
> >> -#define MIPI_CLK_LANE_TIMING(port)         _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
> >> +#define _MIPIA_CLK_LANE_TIMING                        0xb098
> >> +#define _MIPIC_CLK_LANE_TIMING                        0xb898
> >> +#define MIPI_CLK_LANE_TIMING(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
> >>  
> >>  /* bits 31:0 */
> >> -#define _MIPIA_LP_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb064)
> >> -#define _MIPIC_LP_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb864)
> >> -#define MIPI_LP_GEN_DATA(port)                _MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
> >> +#define _MIPIA_LP_GEN_DATA                        0xb064
> >> +#define _MIPIC_LP_GEN_DATA                        0xb864
> >> +#define MIPI_LP_GEN_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
> >>  
> >>  /* bits 31:0 */
> >> -#define _MIPIA_HS_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb068)
> >> -#define _MIPIC_HS_GEN_DATA                (_MIPI_MMIO_BASE(dev_priv) + 0xb868)
> >> -#define MIPI_HS_GEN_DATA(port)                _MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
> >> -
> >> -#define _MIPIA_LP_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb06c)
> >> -#define _MIPIC_LP_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb86c)
> >> -#define MIPI_LP_GEN_CTRL(port)                _MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
> >> -#define _MIPIA_HS_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb070)
> >> -#define _MIPIC_HS_GEN_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb870)
> >> -#define MIPI_HS_GEN_CTRL(port)                _MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
> >> +#define _MIPIA_HS_GEN_DATA                        0xb068
> >> +#define _MIPIC_HS_GEN_DATA                        0xb868
> >> +#define MIPI_HS_GEN_DATA(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
> >> +
> >> +#define _MIPIA_LP_GEN_CTRL                        0xb06c
> >> +#define _MIPIC_LP_GEN_CTRL                        0xb86c
> >> +#define MIPI_LP_GEN_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
> >> +#define _MIPIA_HS_GEN_CTRL                        0xb070
> >> +#define _MIPIC_HS_GEN_CTRL                        0xb870
> >> +#define MIPI_HS_GEN_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
> >>  #define  LONG_PACKET_WORD_COUNT_SHIFT                        8
> >>  #define  LONG_PACKET_WORD_COUNT_MASK                        (0xffff << 8)
> >>  #define  SHORT_PACKET_PARAM_SHIFT                        8
> >> @@ -329,9 +325,9 @@
> >>  #define  DATA_TYPE_MASK                                        (0x3f << 0)
> >>  /* data type values, see include/video/mipi_display.h */
> >>  
> >> -#define _MIPIA_GEN_FIFO_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb074)
> >> -#define _MIPIC_GEN_FIFO_STAT                (_MIPI_MMIO_BASE(dev_priv) + 0xb874)
> >> -#define MIPI_GEN_FIFO_STAT(port)        _MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
> >> +#define _MIPIA_GEN_FIFO_STAT                        0xb074
> >> +#define _MIPIC_GEN_FIFO_STAT                        0xb874
> >> +#define MIPI_GEN_FIFO_STAT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
> >>  #define  DPI_FIFO_EMPTY                                        (1 << 28)
> >>  #define  DBI_FIFO_EMPTY                                        (1 << 27)
> >>  #define  LP_CTRL_FIFO_EMPTY                                (1 << 26)
> >> @@ -347,16 +343,16 @@
> >>  #define  HS_DATA_FIFO_HALF_EMPTY                        (1 << 1)
> >>  #define  HS_DATA_FIFO_FULL                                (1 << 0)
> >>  
> >> -#define _MIPIA_HS_LS_DBI_ENABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb078)
> >> -#define _MIPIC_HS_LS_DBI_ENABLE                (_MIPI_MMIO_BASE(dev_priv) + 0xb878)
> >> -#define MIPI_HS_LP_DBI_ENABLE(port)        _MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
> >> +#define _MIPIA_HS_LS_DBI_ENABLE                        0xb078
> >> +#define _MIPIC_HS_LS_DBI_ENABLE                        0xb878
> >> +#define MIPI_HS_LP_DBI_ENABLE(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
> >>  #define  DBI_HS_LP_MODE_MASK                                (1 << 0)
> >>  #define  DBI_LP_MODE                                        (1 << 0)
> >>  #define  DBI_HS_MODE                                        (0 << 0)
> >>  
> >> -#define _MIPIA_DPHY_PARAM                (_MIPI_MMIO_BASE(dev_priv) + 0xb080)
> >> -#define _MIPIC_DPHY_PARAM                (_MIPI_MMIO_BASE(dev_priv) + 0xb880)
> >> -#define MIPI_DPHY_PARAM(port)                _MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
> >> +#define _MIPIA_DPHY_PARAM                        0xb080
> >> +#define _MIPIC_DPHY_PARAM                        0xb880
> >> +#define MIPI_DPHY_PARAM(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
> >>  #define  EXIT_ZERO_COUNT_SHIFT                                24
> >>  #define  EXIT_ZERO_COUNT_MASK                                (0x3f << 24)
> >>  #define  TRAIL_COUNT_SHIFT                                16
> >> @@ -366,34 +362,34 @@
> >>  #define  PREPARE_COUNT_SHIFT                                0
> >>  #define  PREPARE_COUNT_MASK                                (0x3f << 0)
> >>  
> >> -#define _MIPIA_DBI_BW_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb084)
> >> -#define _MIPIC_DBI_BW_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb884)
> >> -#define MIPI_DBI_BW_CTRL(port)                _MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
> >> +#define _MIPIA_DBI_BW_CTRL                        0xb084
> >> +#define _MIPIC_DBI_BW_CTRL                        0xb884
> >> +#define MIPI_DBI_BW_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
> >>  
> >> -#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb088)
> >> -#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT                (_MIPI_MMIO_BASE(dev_priv) + 0xb888)
> >> -#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)        _MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
> >> +#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT                0xb088
> >> +#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT                0xb888
> >> +#define MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
> >>  #define  LP_HS_SSW_CNT_SHIFT                                16
> >>  #define  LP_HS_SSW_CNT_MASK                                (0xffff << 16)
> >>  #define  HS_LP_PWR_SW_CNT_SHIFT                                0
> >>  #define  HS_LP_PWR_SW_CNT_MASK                                (0xffff << 0)
> >>  
> >> -#define _MIPIA_STOP_STATE_STALL                (_MIPI_MMIO_BASE(dev_priv) + 0xb08c)
> >> -#define _MIPIC_STOP_STATE_STALL                (_MIPI_MMIO_BASE(dev_priv) + 0xb88c)
> >> -#define MIPI_STOP_STATE_STALL(port)        _MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
> >> +#define _MIPIA_STOP_STATE_STALL                        0xb08c
> >> +#define _MIPIC_STOP_STATE_STALL                        0xb88c
> >> +#define MIPI_STOP_STATE_STALL(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
> >>  #define  STOP_STATE_STALL_COUNTER_SHIFT                        0
> >>  #define  STOP_STATE_STALL_COUNTER_MASK                        (0xff << 0)
> >>  
> >> -#define _MIPIA_INTR_STAT_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb090)
> >> -#define _MIPIC_INTR_STAT_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb890)
> >> -#define MIPI_INTR_STAT_REG_1(port)        _MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
> >> -#define _MIPIA_INTR_EN_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb094)
> >> -#define _MIPIC_INTR_EN_REG_1                (_MIPI_MMIO_BASE(dev_priv) + 0xb894)
> >> -#define MIPI_INTR_EN_REG_1(port)        _MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
> >> +#define _MIPIA_INTR_STAT_REG_1                        0xb090
> >> +#define _MIPIC_INTR_STAT_REG_1                        0xb890
> >> +#define MIPI_INTR_STAT_REG_1(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
> >> +#define _MIPIA_INTR_EN_REG_1                        0xb094
> >> +#define _MIPIC_INTR_EN_REG_1                        0xb894
> >> +#define MIPI_INTR_EN_REG_1(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
> >>  #define  RX_CONTENTION_DETECTED                                (1 << 0)
> >>  
> >>  /* XXX: only pipe A ?!? */
> >> -#define MIPIA_DBI_TYPEC_CTRL                (_MIPI_MMIO_BASE(dev_priv) + 0xb100)
> >> +#define MIPIA_DBI_TYPEC_CTRL(display)                (_MIPI_MMIO_BASE(display) + 0xb100)
> >>  #define  DBI_TYPEC_ENABLE                                (1 << 31)
> >>  #define  DBI_TYPEC_WIP                                        (1 << 30)
> >>  #define  DBI_TYPEC_OPTION_SHIFT                                28
> >> @@ -406,9 +402,9 @@
> >>  
> >>  /* MIPI adapter registers */
> >>  
> >> -#define _MIPIA_CTRL                        (_MIPI_MMIO_BASE(dev_priv) + 0xb104)
> >> -#define _MIPIC_CTRL                        (_MIPI_MMIO_BASE(dev_priv) + 0xb904)
> >> -#define MIPI_CTRL(port)                        _MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL)
> >> +#define _MIPIA_CTRL                                0xb104
> >> +#define _MIPIC_CTRL                                0xb904
> >> +#define MIPI_CTRL(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CTRL, _MIPIC_CTRL)
> >>  #define  ESCAPE_CLOCK_DIVIDER_SHIFT                        5 /* A only */
> >>  #define  ESCAPE_CLOCK_DIVIDER_MASK                        (3 << 5)
> >>  #define  ESCAPE_CLOCK_DIVIDER_1                                (0 << 5)
> >> @@ -439,41 +435,41 @@
> >>  #define  GLK_MIPIIO_PORT_POWERED                        (1 << 1) /* RO */
> >>  #define  GLK_MIPIIO_ENABLE                                (1 << 0)
> >>  
> >> -#define _MIPIA_DATA_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb108)
> >> -#define _MIPIC_DATA_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb908)
> >> -#define MIPI_DATA_ADDRESS(port)                _MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
> >> +#define _MIPIA_DATA_ADDRESS                        0xb108
> >> +#define _MIPIC_DATA_ADDRESS                        0xb908
> >> +#define MIPI_DATA_ADDRESS(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
> >>  #define  DATA_MEM_ADDRESS_SHIFT                                5
> >>  #define  DATA_MEM_ADDRESS_MASK                                (0x7ffffff << 5)
> >>  #define  DATA_VALID                                        (1 << 0)
> >>  
> >> -#define _MIPIA_DATA_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb10c)
> >> -#define _MIPIC_DATA_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb90c)
> >> -#define MIPI_DATA_LENGTH(port)                _MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
> >> +#define _MIPIA_DATA_LENGTH                        0xb10c
> >> +#define _MIPIC_DATA_LENGTH                        0xb90c
> >> +#define MIPI_DATA_LENGTH(display, port)                _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
> >>  #define  DATA_LENGTH_SHIFT                                0
> >>  #define  DATA_LENGTH_MASK                                (0xfffff << 0)
> >>  
> >> -#define _MIPIA_COMMAND_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb110)
> >> -#define _MIPIC_COMMAND_ADDRESS                (_MIPI_MMIO_BASE(dev_priv) + 0xb910)
> >> -#define MIPI_COMMAND_ADDRESS(port)        _MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
> >> +#define _MIPIA_COMMAND_ADDRESS                        0xb110
> >> +#define _MIPIC_COMMAND_ADDRESS                        0xb910
> >> +#define MIPI_COMMAND_ADDRESS(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
> >>  #define  COMMAND_MEM_ADDRESS_SHIFT                        5
> >>  #define  COMMAND_MEM_ADDRESS_MASK                        (0x7ffffff << 5)
> >>  #define  AUTO_PWG_ENABLE                                (1 << 2)
> >>  #define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING                (1 << 1)
> >>  #define  COMMAND_VALID                                        (1 << 0)
> >>  
> >> -#define _MIPIA_COMMAND_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb114)
> >> -#define _MIPIC_COMMAND_LENGTH                (_MIPI_MMIO_BASE(dev_priv) + 0xb914)
> >> -#define MIPI_COMMAND_LENGTH(port)        _MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
> >> +#define _MIPIA_COMMAND_LENGTH                        0xb114
> >> +#define _MIPIC_COMMAND_LENGTH                        0xb914
> >> +#define MIPI_COMMAND_LENGTH(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
> >>  #define  COMMAND_LENGTH_SHIFT(n)                        (8 * (n)) /* n: 0...3 */
> >>  #define  COMMAND_LENGTH_MASK(n)                                (0xff << (8 * (n)))
> >>  
> >> -#define _MIPIA_READ_DATA_RETURN0        (_MIPI_MMIO_BASE(dev_priv) + 0xb118)
> >> -#define _MIPIC_READ_DATA_RETURN0        (_MIPI_MMIO_BASE(dev_priv) + 0xb918)
> >> -#define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */
> >> +#define _MIPIA_READ_DATA_RETURN0                0xb118
> >> +#define _MIPIC_READ_DATA_RETURN0                0xb918
> >> +#define MIPI_READ_DATA_RETURN(display, port, n)        _MMIO_MIPI(_MIPI_MMIO_BASE(display) + 4 * (n), port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) /* n: 0...7 */
> >>  
> >> -#define _MIPIA_READ_DATA_VALID                (_MIPI_MMIO_BASE(dev_priv) + 0xb138)
> >> -#define _MIPIC_READ_DATA_VALID                (_MIPI_MMIO_BASE(dev_priv) + 0xb938)
> >> -#define MIPI_READ_DATA_VALID(port)        _MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
> >> +#define _MIPIA_READ_DATA_VALID                        0xb138
> >> +#define _MIPIC_READ_DATA_VALID                        0xb938
> >> +#define MIPI_READ_DATA_VALID(display, port)        _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
> >>  #define  READ_DATA_VALID(n)                                (1 << (n))
> >>  
> >>  #endif /* __VLV_DSI_REGS_H__ */
> >> -- 
> >> 2.39.2
> >>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 96ed1490fec7..b9434465d3a7 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -3722,8 +3722,8 @@  static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
 					 struct intel_crtc_state *pipe_config,
 					 struct intel_display_power_domain_set *power_domain_set)
 {
-	struct drm_device *dev = crtc->base.dev;
-	struct drm_i915_private *dev_priv = to_i915(dev);
+	struct intel_display *display = to_intel_display(crtc);
+	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
 	enum transcoder cpu_transcoder;
 	enum port port;
 	u32 tmp;
@@ -3749,11 +3749,11 @@  static bool bxt_get_dsi_transcoder_state(struct intel_crtc *crtc,
 			break;
 
 		/* XXX: this works for video mode only */
-		tmp = intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port));
+		tmp = intel_de_read(display, BXT_MIPI_PORT_CTRL(port));
 		if (!(tmp & DPI_ENABLE))
 			continue;
 
-		tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
+		tmp = intel_de_read(display, MIPI_CTRL(display, port));
 		if ((tmp & BXT_PIPE_SELECT_MASK) != BXT_PIPE_SELECT(crtc->pipe))
 			continue;
 
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c
index 9967ef58f1ec..ee9923c7b115 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi.c
@@ -85,18 +85,18 @@  enum mipi_dsi_pixel_format pixel_format_from_register_bits(u32 fmt)
 
 void vlv_dsi_wait_for_fifo_empty(struct intel_dsi *intel_dsi, enum port port)
 {
-	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
+	struct intel_display *display = to_intel_display(&intel_dsi->base);
 	u32 mask;
 
 	mask = LP_CTRL_FIFO_EMPTY | HS_CTRL_FIFO_EMPTY |
 		LP_DATA_FIFO_EMPTY | HS_DATA_FIFO_EMPTY;
 
-	if (intel_de_wait_for_set(dev_priv, MIPI_GEN_FIFO_STAT(port),
+	if (intel_de_wait_for_set(display, MIPI_GEN_FIFO_STAT(display, port),
 				  mask, 100))
-		drm_err(&dev_priv->drm, "DPI FIFOs are not empty\n");
+		drm_err(display->drm, "DPI FIFOs are not empty\n");
 }
 
-static void write_data(struct drm_i915_private *dev_priv,
+static void write_data(struct intel_display *display,
 		       i915_reg_t reg,
 		       const u8 *data, u32 len)
 {
@@ -108,18 +108,18 @@  static void write_data(struct drm_i915_private *dev_priv,
 		for (j = 0; j < min_t(u32, len - i, 4); j++)
 			val |= *data++ << 8 * j;
 
-		intel_de_write(dev_priv, reg, val);
+		intel_de_write(display, reg, val);
 	}
 }
 
-static void read_data(struct drm_i915_private *dev_priv,
+static void read_data(struct intel_display *display,
 		      i915_reg_t reg,
 		      u8 *data, u32 len)
 {
 	u32 i, j;
 
 	for (i = 0; i < len; i += 4) {
-		u32 val = intel_de_read(dev_priv, reg);
+		u32 val = intel_de_read(display, reg);
 
 		for (j = 0; j < min_t(u32, len - i, 4); j++)
 			*data++ = val >> 8 * j;
@@ -131,7 +131,7 @@  static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
 {
 	struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host);
 	struct intel_dsi *intel_dsi = intel_dsi_host->intel_dsi;
-	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
+	struct intel_display *display = to_intel_display(&intel_dsi->base);
 	enum port port = intel_dsi_host->port;
 	struct mipi_dsi_packet packet;
 	ssize_t ret;
@@ -146,51 +146,51 @@  static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host,
 	header = packet.header;
 
 	if (msg->flags & MIPI_DSI_MSG_USE_LPM) {
-		data_reg = MIPI_LP_GEN_DATA(port);
+		data_reg = MIPI_LP_GEN_DATA(display, port);
 		data_mask = LP_DATA_FIFO_FULL;
-		ctrl_reg = MIPI_LP_GEN_CTRL(port);
+		ctrl_reg = MIPI_LP_GEN_CTRL(display, port);
 		ctrl_mask = LP_CTRL_FIFO_FULL;
 	} else {
-		data_reg = MIPI_HS_GEN_DATA(port);
+		data_reg = MIPI_HS_GEN_DATA(display, port);
 		data_mask = HS_DATA_FIFO_FULL;
-		ctrl_reg = MIPI_HS_GEN_CTRL(port);
+		ctrl_reg = MIPI_HS_GEN_CTRL(display, port);
 		ctrl_mask = HS_CTRL_FIFO_FULL;
 	}
 
 	/* note: this is never true for reads */
 	if (packet.payload_length) {
-		if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
+		if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
 					    data_mask, 50))
-			drm_err(&dev_priv->drm,
+			drm_err(display->drm,
 				"Timeout waiting for HS/LP DATA FIFO !full\n");
 
-		write_data(dev_priv, data_reg, packet.payload,
+		write_data(display, data_reg, packet.payload,
 			   packet.payload_length);
 	}
 
 	if (msg->rx_len) {
-		intel_de_write(dev_priv, MIPI_INTR_STAT(port),
+		intel_de_write(display, MIPI_INTR_STAT(display, port),
 			       GEN_READ_DATA_AVAIL);
 	}
 
-	if (intel_de_wait_for_clear(dev_priv, MIPI_GEN_FIFO_STAT(port),
+	if (intel_de_wait_for_clear(display, MIPI_GEN_FIFO_STAT(display, port),
 				    ctrl_mask, 50)) {
-		drm_err(&dev_priv->drm,
+		drm_err(display->drm,
 			"Timeout waiting for HS/LP CTRL FIFO !full\n");
 	}
 
-	intel_de_write(dev_priv, ctrl_reg,
+	intel_de_write(display, ctrl_reg,
 		       header[2] << 16 | header[1] << 8 | header[0]);
 
 	/* ->rx_len is set only for reads */
 	if (msg->rx_len) {
 		data_mask = GEN_READ_DATA_AVAIL;
-		if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port),
+		if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port),
 					  data_mask, 50))
-			drm_err(&dev_priv->drm,
+			drm_err(display->drm,
 				"Timeout waiting for read data.\n");
 
-		read_data(dev_priv, data_reg, msg->rx_buf, msg->rx_len);
+		read_data(display, data_reg, msg->rx_buf, msg->rx_len);
 	}
 
 	/* XXX: fix for reads and writes */
@@ -223,7 +223,7 @@  static const struct mipi_dsi_host_ops intel_dsi_host_ops = {
 static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
 			enum port port)
 {
-	struct drm_i915_private *dev_priv = to_i915(intel_dsi->base.base.dev);
+	struct intel_display *display = to_intel_display(&intel_dsi->base);
 	u32 mask;
 
 	/* XXX: pipe, hs */
@@ -233,18 +233,18 @@  static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
 		cmd |= DPI_LP_MODE;
 
 	/* clear bit */
-	intel_de_write(dev_priv, MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);
+	intel_de_write(display, MIPI_INTR_STAT(display, port), SPL_PKT_SENT_INTERRUPT);
 
 	/* XXX: old code skips write if control unchanged */
-	if (cmd == intel_de_read(dev_priv, MIPI_DPI_CONTROL(port)))
-		drm_dbg_kms(&dev_priv->drm,
+	if (cmd == intel_de_read(display, MIPI_DPI_CONTROL(display, port)))
+		drm_dbg_kms(display->drm,
 			    "Same special packet %02x twice in a row.\n", cmd);
 
-	intel_de_write(dev_priv, MIPI_DPI_CONTROL(port), cmd);
+	intel_de_write(display, MIPI_DPI_CONTROL(display, port), cmd);
 
 	mask = SPL_PKT_SENT_INTERRUPT;
-	if (intel_de_wait_for_set(dev_priv, MIPI_INTR_STAT(port), mask, 100))
-		drm_err(&dev_priv->drm,
+	if (intel_de_wait_for_set(display, MIPI_INTR_STAT(display, port), mask, 100))
+		drm_err(display->drm,
 			"Video mode command 0x%08x send failed.\n", cmd);
 
 	return 0;
@@ -324,7 +324,7 @@  static int intel_dsi_compute_config(struct intel_encoder *encoder,
 
 static bool glk_dsi_enable_io(struct intel_encoder *encoder)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	bool cold_boot = false;
@@ -334,29 +334,30 @@  static bool glk_dsi_enable_io(struct intel_encoder *encoder)
 	 * Power ON MIPI IO first and then write into IO reset and LP wake bits
 	 */
 	for_each_dsi_port(port, intel_dsi->ports)
-		intel_de_rmw(dev_priv, MIPI_CTRL(port), 0, GLK_MIPIIO_ENABLE);
+		intel_de_rmw(display, MIPI_CTRL(display, port), 0, GLK_MIPIIO_ENABLE);
 
 	/* Put the IO into reset */
-	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
+	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
 
 	/* Program LP Wake */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		u32 tmp = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
-		intel_de_rmw(dev_priv, MIPI_CTRL(port),
+		u32 tmp = intel_de_read(display, MIPI_DEVICE_READY(display, port));
+
+		intel_de_rmw(display, MIPI_CTRL(display, port),
 			     GLK_LP_WAKE, (tmp & DEVICE_READY) ? GLK_LP_WAKE : 0);
 	}
 
 	/* Wait for Pwr ACK */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
 					  GLK_MIPIIO_PORT_POWERED, 20))
-			drm_err(&dev_priv->drm, "MIPIO port is powergated\n");
+			drm_err(display->drm, "MIPIO port is powergated\n");
 	}
 
 	/* Check for cold boot scenario */
 	for_each_dsi_port(port, intel_dsi->ports) {
 		cold_boot |=
-			!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY);
+			!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY);
 	}
 
 	return cold_boot;
@@ -364,99 +365,100 @@  static bool glk_dsi_enable_io(struct intel_encoder *encoder)
 
 static void glk_dsi_device_ready(struct intel_encoder *encoder)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	/* Wait for MIPI PHY status bit to set */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
 					  GLK_PHY_STATUS_PORT_READY, 20))
-			drm_err(&dev_priv->drm, "PHY is not ON\n");
+			drm_err(display->drm, "PHY is not ON\n");
 	}
 
 	/* Get IO out of reset */
-	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
+	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), 0, GLK_MIPIIO_RESET_RELEASED);
 
 	/* Get IO out of Low power state*/
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY)) {
-			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
+		if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY)) {
+			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
 				     ULPS_STATE_MASK, DEVICE_READY);
 			usleep_range(10, 15);
 		} else {
 			/* Enter ULPS */
-			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
+			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
 				     ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
 
 			/* Wait for ULPS active */
-			if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
+			if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
 						    GLK_ULPS_NOT_ACTIVE, 20))
-				drm_err(&dev_priv->drm, "ULPS not active\n");
+				drm_err(display->drm, "ULPS not active\n");
 
 			/* Exit ULPS */
-			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
+			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
 				     ULPS_STATE_MASK, ULPS_STATE_EXIT | DEVICE_READY);
 
 			/* Enter Normal Mode */
-			intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
+			intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
 				     ULPS_STATE_MASK,
 				     ULPS_STATE_NORMAL_OPERATION | DEVICE_READY);
 
-			intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_LP_WAKE, 0);
+			intel_de_rmw(display, MIPI_CTRL(display, port), GLK_LP_WAKE, 0);
 		}
 	}
 
 	/* Wait for Stop state */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_set(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_set(display, MIPI_CTRL(display, port),
 					  GLK_DATA_LANE_STOP_STATE, 20))
-			drm_err(&dev_priv->drm,
+			drm_err(display->drm,
 				"Date lane not in STOP state\n");
 	}
 
 	/* Wait for AFE LATCH */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_set(dev_priv, BXT_MIPI_PORT_CTRL(port),
+		if (intel_de_wait_for_set(display, BXT_MIPI_PORT_CTRL(port),
 					  AFE_LATCHOUT, 20))
-			drm_err(&dev_priv->drm,
+			drm_err(display->drm,
 				"D-PHY not entering LP-11 state\n");
 	}
 }
 
 static void bxt_dsi_device_ready(struct intel_encoder *encoder)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 	u32 val;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 
 	/* Enable MIPI PHY transparent latch */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		intel_de_rmw(dev_priv, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
+		intel_de_rmw(display, BXT_MIPI_PORT_CTRL(port), 0, LP_OUTPUT_HOLD);
 		usleep_range(2000, 2500);
 	}
 
 	/* Clear ULPS and set device ready */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		val = intel_de_read(dev_priv, MIPI_DEVICE_READY(port));
+		val = intel_de_read(display, MIPI_DEVICE_READY(display, port));
 		val &= ~ULPS_STATE_MASK;
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
+		intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
 		usleep_range(2000, 2500);
 		val |= DEVICE_READY;
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), val);
+		intel_de_write(display, MIPI_DEVICE_READY(display, port), val);
 	}
 }
 
 static void vlv_dsi_device_ready(struct intel_encoder *encoder)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 
 	vlv_flisdsi_get(dev_priv);
 	/* program rcomp for compliance, reduce from 50 ohms to 45 ohms
@@ -469,7 +471,7 @@  static void vlv_dsi_device_ready(struct intel_encoder *encoder)
 
 	for_each_dsi_port(port, intel_dsi->ports) {
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       ULPS_STATE_ENTER);
 		usleep_range(2500, 3000);
 
@@ -477,14 +479,14 @@  static void vlv_dsi_device_ready(struct intel_encoder *encoder)
 		 * Common bit for both MIPI Port A & MIPI Port C
 		 * No similar bit in MIPI Port C reg
 		 */
-		intel_de_rmw(dev_priv, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
+		intel_de_rmw(display, VLV_MIPI_PORT_CTRL(PORT_A), 0, LP_OUTPUT_HOLD);
 		usleep_range(1000, 1500);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       ULPS_STATE_EXIT);
 		usleep_range(2500, 3000);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       DEVICE_READY);
 		usleep_range(2500, 3000);
 	}
@@ -504,50 +506,50 @@  static void intel_dsi_device_ready(struct intel_encoder *encoder)
 
 static void glk_dsi_enter_low_power_mode(struct intel_encoder *encoder)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	/* Enter ULPS */
 	for_each_dsi_port(port, intel_dsi->ports)
-		intel_de_rmw(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_rmw(display, MIPI_DEVICE_READY(display, port),
 			     ULPS_STATE_MASK, ULPS_STATE_ENTER | DEVICE_READY);
 
 	/* Wait for MIPI PHY status bit to unset */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
 					    GLK_PHY_STATUS_PORT_READY, 20))
-			drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
+			drm_err(display->drm, "PHY is not turning OFF\n");
 	}
 
 	/* Wait for Pwr ACK bit to unset */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
 					    GLK_MIPIIO_PORT_POWERED, 20))
-			drm_err(&dev_priv->drm,
+			drm_err(display->drm,
 				"MIPI IO Port is not powergated\n");
 	}
 }
 
 static void glk_dsi_disable_mipi_io(struct intel_encoder *encoder)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
 	/* Put the IO into reset */
-	intel_de_rmw(dev_priv, MIPI_CTRL(PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
+	intel_de_rmw(display, MIPI_CTRL(display, PORT_A), GLK_MIPIIO_RESET_RELEASED, 0);
 
 	/* Wait for MIPI PHY status bit to unset */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_wait_for_clear(dev_priv, MIPI_CTRL(port),
+		if (intel_de_wait_for_clear(display, MIPI_CTRL(display, port),
 					    GLK_PHY_STATUS_PORT_READY, 20))
-			drm_err(&dev_priv->drm, "PHY is not turning OFF\n");
+			drm_err(display->drm, "PHY is not turning OFF\n");
 	}
 
 	/* Clear MIPI mode */
 	for_each_dsi_port(port, intel_dsi->ports)
-		intel_de_rmw(dev_priv, MIPI_CTRL(port), GLK_MIPIIO_ENABLE, 0);
+		intel_de_rmw(display, MIPI_CTRL(display, port), GLK_MIPIIO_ENABLE, 0);
 }
 
 static void glk_dsi_clear_device_ready(struct intel_encoder *encoder)
@@ -564,25 +566,26 @@  static i915_reg_t port_ctrl_reg(struct drm_i915_private *i915, enum port port)
 
 static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 	for_each_dsi_port(port, intel_dsi->ports) {
 		/* Common bit for both MIPI Port A & MIPI Port C on VLV/CHV */
 		i915_reg_t port_ctrl = IS_BROXTON(dev_priv) ?
 			BXT_MIPI_PORT_CTRL(port) : VLV_MIPI_PORT_CTRL(PORT_A);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       DEVICE_READY | ULPS_STATE_ENTER);
 		usleep_range(2000, 2500);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       DEVICE_READY | ULPS_STATE_EXIT);
 		usleep_range(2000, 2500);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port),
+		intel_de_write(display, MIPI_DEVICE_READY(display, port),
 			       DEVICE_READY | ULPS_STATE_ENTER);
 		usleep_range(2000, 2500);
 
@@ -591,15 +594,15 @@  static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
 		 * Port A only. MIPI Port C has no similar bit for checking.
 		 */
 		if ((IS_BROXTON(dev_priv) || port == PORT_A) &&
-		    intel_de_wait_for_clear(dev_priv, port_ctrl,
+		    intel_de_wait_for_clear(display, port_ctrl,
 					    AFE_LATCHOUT, 30))
-			drm_err(&dev_priv->drm, "DSI LP not going Low\n");
+			drm_err(display->drm, "DSI LP not going Low\n");
 
 		/* Disable MIPI PHY transparent latch */
-		intel_de_rmw(dev_priv, port_ctrl, LP_OUTPUT_HOLD, 0);
+		intel_de_rmw(display, port_ctrl, LP_OUTPUT_HOLD, 0);
 		usleep_range(1000, 1500);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x00);
+		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x00);
 		usleep_range(2000, 2500);
 	}
 }
@@ -607,6 +610,7 @@  static void vlv_dsi_clear_device_ready(struct intel_encoder *encoder)
 static void intel_dsi_port_enable(struct intel_encoder *encoder,
 				  const struct intel_crtc_state *crtc_state)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
@@ -617,11 +621,11 @@  static void intel_dsi_port_enable(struct intel_encoder *encoder,
 
 		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
 			for_each_dsi_port(port, intel_dsi->ports)
-				intel_de_rmw(dev_priv, MIPI_CTRL(port),
+				intel_de_rmw(display, MIPI_CTRL(display, port),
 					     BXT_PIXEL_OVERLAP_CNT_MASK,
 					     temp << BXT_PIXEL_OVERLAP_CNT_SHIFT);
 		} else {
-			intel_de_rmw(dev_priv, VLV_CHICKEN_3,
+			intel_de_rmw(display, VLV_CHICKEN_3,
 				     PIXEL_OVERLAP_CNT_MASK,
 				     temp << PIXEL_OVERLAP_CNT_SHIFT);
 		}
@@ -631,7 +635,7 @@  static void intel_dsi_port_enable(struct intel_encoder *encoder,
 		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
 		u32 temp;
 
-		temp = intel_de_read(dev_priv, port_ctrl);
+		temp = intel_de_read(display, port_ctrl);
 
 		temp &= ~LANE_CONFIGURATION_MASK;
 		temp &= ~DUAL_LINK_MODE_MASK;
@@ -651,13 +655,14 @@  static void intel_dsi_port_enable(struct intel_encoder *encoder,
 			temp |= DITHERING_ENABLE;
 
 		/* assert ip_tg_enable signal */
-		intel_de_write(dev_priv, port_ctrl, temp | DPI_ENABLE);
-		intel_de_posting_read(dev_priv, port_ctrl);
+		intel_de_write(display, port_ctrl, temp | DPI_ENABLE);
+		intel_de_posting_read(display, port_ctrl);
 	}
 }
 
 static void intel_dsi_port_disable(struct intel_encoder *encoder)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
@@ -666,8 +671,8 @@  static void intel_dsi_port_disable(struct intel_encoder *encoder)
 		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
 
 		/* de-assert ip_tg_enable signal */
-		intel_de_rmw(dev_priv, port_ctrl, DPI_ENABLE, 0);
-		intel_de_posting_read(dev_priv, port_ctrl);
+		intel_de_rmw(display, port_ctrl, DPI_ENABLE, 0);
+		intel_de_posting_read(display, port_ctrl);
 	}
 }
 
@@ -721,6 +726,7 @@  static void intel_dsi_pre_enable(struct intel_atomic_state *state,
 				 const struct intel_crtc_state *pipe_config,
 				 const struct drm_connector_state *conn_state)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
@@ -728,7 +734,7 @@  static void intel_dsi_pre_enable(struct intel_atomic_state *state,
 	enum port port;
 	bool glk_cold_boot = false;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 
 	intel_dsi_wait_panel_power_cycle(intel_dsi);
 
@@ -748,16 +754,16 @@  static void intel_dsi_pre_enable(struct intel_atomic_state *state,
 
 	if (IS_BROXTON(dev_priv)) {
 		/* Add MIPI IO reset programming for modeset */
-		intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
+		intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, 0, MIPIO_RST_CTRL);
 
 		/* Power up DSI regulator */
-		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
-		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
+		intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
+		intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL, 0);
 	}
 
 	if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
 		/* Disable DPOunit clock gating, can stall pipe */
-		intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
+		intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
 			     0, DPOUNIT_CLOCK_GATE_DISABLE);
 	}
 
@@ -793,8 +799,8 @@  static void intel_dsi_pre_enable(struct intel_atomic_state *state,
 	 */
 	if (is_cmd_mode(intel_dsi)) {
 		for_each_dsi_port(port, intel_dsi->ports)
-			intel_de_write(dev_priv,
-				       MIPI_MAX_RETURN_PKT_SIZE(port), 8 * 4);
+			intel_de_write(display,
+				       MIPI_MAX_RETURN_PKT_SIZE(display, port), 8 * 4);
 		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_TEAR_ON);
 		intel_dsi_vbt_exec_sequence(intel_dsi, MIPI_SEQ_DISPLAY_ON);
 	} else {
@@ -866,11 +872,12 @@  static void intel_dsi_post_disable(struct intel_atomic_state *state,
 				   const struct intel_crtc_state *old_crtc_state,
 				   const struct drm_connector_state *old_conn_state)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 
 	if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
 		intel_crtc_vblank_off(old_crtc_state);
@@ -901,12 +908,12 @@  static void intel_dsi_post_disable(struct intel_atomic_state *state,
 
 	if (IS_BROXTON(dev_priv)) {
 		/* Power down DSI regulator to save power */
-		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
-		intel_de_write(dev_priv, BXT_P_DSI_REGULATOR_TX_CTRL,
+		intel_de_write(display, BXT_P_DSI_REGULATOR_CFG, STAP_SELECT);
+		intel_de_write(display, BXT_P_DSI_REGULATOR_TX_CTRL,
 			       HS_IO_CTRL_SELECT);
 
 		/* Add MIPI IO reset programming for modeset */
-		intel_de_rmw(dev_priv, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
+		intel_de_rmw(display, BXT_P_CR_GT_DISP_PWRON, MIPIO_RST_CTRL, 0);
 	}
 
 	if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
@@ -914,7 +921,7 @@  static void intel_dsi_post_disable(struct intel_atomic_state *state,
 	} else {
 		vlv_dsi_pll_disable(encoder);
 
-		intel_de_rmw(dev_priv, DSPCLK_GATE_D(dev_priv),
+		intel_de_rmw(display, DSPCLK_GATE_D(dev_priv),
 			     DPOUNIT_CLOCK_GATE_DISABLE, 0);
 	}
 
@@ -930,13 +937,14 @@  static void intel_dsi_post_disable(struct intel_atomic_state *state,
 static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 				   enum pipe *pipe)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	intel_wakeref_t wakeref;
 	enum port port;
 	bool active = false;
 
-	drm_dbg_kms(&dev_priv->drm, "\n");
+	drm_dbg_kms(display->drm, "\n");
 
 	wakeref = intel_display_power_get_if_enabled(dev_priv,
 						     encoder->power_domain);
@@ -955,7 +963,7 @@  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 	/* XXX: this only works for one DSI output */
 	for_each_dsi_port(port, intel_dsi->ports) {
 		i915_reg_t port_ctrl = port_ctrl_reg(dev_priv, port);
-		bool enabled = intel_de_read(dev_priv, port_ctrl) & DPI_ENABLE;
+		bool enabled = intel_de_read(display, port_ctrl) & DPI_ENABLE;
 
 		/*
 		 * Due to some hardware limitations on VLV/CHV, the DPI enable
@@ -964,27 +972,27 @@  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 		 */
 		if ((IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) &&
 		    port == PORT_C)
-			enabled = intel_de_read(dev_priv, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
+			enabled = intel_de_read(display, TRANSCONF(PIPE_B)) & TRANSCONF_ENABLE;
 
 		/* Try command mode if video mode not enabled */
 		if (!enabled) {
-			u32 tmp = intel_de_read(dev_priv,
-						MIPI_DSI_FUNC_PRG(port));
+			u32 tmp = intel_de_read(display,
+						MIPI_DSI_FUNC_PRG(display, port));
 			enabled = tmp & CMD_MODE_DATA_WIDTH_MASK;
 		}
 
 		if (!enabled)
 			continue;
 
-		if (!(intel_de_read(dev_priv, MIPI_DEVICE_READY(port)) & DEVICE_READY))
+		if (!(intel_de_read(display, MIPI_DEVICE_READY(display, port)) & DEVICE_READY))
 			continue;
 
 		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
-			u32 tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
+			u32 tmp = intel_de_read(display, MIPI_CTRL(display, port));
 			tmp &= BXT_PIPE_SELECT_MASK;
 			tmp >>= BXT_PIPE_SELECT_SHIFT;
 
-			if (drm_WARN_ON(&dev_priv->drm, tmp > PIPE_C))
+			if (drm_WARN_ON(display->drm, tmp > PIPE_C))
 				continue;
 
 			*pipe = tmp;
@@ -1005,7 +1013,7 @@  static bool intel_dsi_get_hw_state(struct intel_encoder *encoder,
 static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
 				    struct intel_crtc_state *pipe_config)
 {
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_display_mode *adjusted_mode =
 					&pipe_config->hw.adjusted_mode;
 	struct drm_display_mode *adjusted_mode_sw;
@@ -1027,11 +1035,11 @@  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
 	 * encoder->get_hw_state() returns true.
 	 */
 	for_each_dsi_port(port, intel_dsi->ports) {
-		if (intel_de_read(dev_priv, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
+		if (intel_de_read(display, BXT_MIPI_PORT_CTRL(port)) & DPI_ENABLE)
 			break;
 	}
 
-	fmt = intel_de_read(dev_priv, MIPI_DSI_FUNC_PRG(port)) & VID_MODE_FORMAT_MASK;
+	fmt = intel_de_read(display, MIPI_DSI_FUNC_PRG(display, port)) & VID_MODE_FORMAT_MASK;
 	bpp = mipi_dsi_pixel_format_to_bpp(
 			pixel_format_from_register_bits(fmt));
 
@@ -1043,24 +1051,24 @@  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
 
 	/* In terms of pixels */
 	adjusted_mode->crtc_hdisplay =
-				intel_de_read(dev_priv,
+				intel_de_read(display,
 				              BXT_MIPI_TRANS_HACTIVE(port));
 	adjusted_mode->crtc_vdisplay =
-				intel_de_read(dev_priv,
+				intel_de_read(display,
 				              BXT_MIPI_TRANS_VACTIVE(port));
 	adjusted_mode->crtc_vtotal =
-				intel_de_read(dev_priv,
+				intel_de_read(display,
 				              BXT_MIPI_TRANS_VTOTAL(port));
 
 	hactive = adjusted_mode->crtc_hdisplay;
-	hfp = intel_de_read(dev_priv, MIPI_HFP_COUNT(port));
+	hfp = intel_de_read(display, MIPI_HFP_COUNT(display, port));
 
 	/*
 	 * Meaningful for video mode non-burst sync pulse mode only,
 	 * can be zero for non-burst sync events and burst modes
 	 */
-	hsync = intel_de_read(dev_priv, MIPI_HSYNC_PADDING_COUNT(port));
-	hbp = intel_de_read(dev_priv, MIPI_HBP_COUNT(port));
+	hsync = intel_de_read(display, MIPI_HSYNC_PADDING_COUNT(display, port));
+	hbp = intel_de_read(display, MIPI_HBP_COUNT(display, port));
 
 	/* harizontal values are in terms of high speed byte clock */
 	hfp = pixels_from_txbyteclkhs(hfp, bpp, lane_count,
@@ -1077,8 +1085,8 @@  static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
 	}
 
 	/* vertical values are in terms of lines */
-	vfp = intel_de_read(dev_priv, MIPI_VFP_COUNT(port));
-	vsync = intel_de_read(dev_priv, MIPI_VSYNC_PADDING_COUNT(port));
+	vfp = intel_de_read(display, MIPI_VFP_COUNT(display, port));
+	vsync = intel_de_read(display, MIPI_VSYNC_PADDING_COUNT(display, port));
 
 	adjusted_mode->crtc_htotal = hactive + hfp + hsync + hbp;
 	adjusted_mode->crtc_hsync_start = hfp + adjusted_mode->crtc_hdisplay;
@@ -1207,6 +1215,7 @@  static u16 txclkesc(u32 divider, unsigned int us)
 static void set_dsi_timings(struct intel_encoder *encoder,
 			    const struct drm_display_mode *adjusted_mode)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
@@ -1249,29 +1258,29 @@  static void set_dsi_timings(struct intel_encoder *encoder,
 			 * vactive, as they are calculated per channel basis,
 			 * whereas these values should be based on resolution.
 			 */
-			intel_de_write(dev_priv, BXT_MIPI_TRANS_HACTIVE(port),
+			intel_de_write(display, BXT_MIPI_TRANS_HACTIVE(port),
 				       adjusted_mode->crtc_hdisplay);
-			intel_de_write(dev_priv, BXT_MIPI_TRANS_VACTIVE(port),
+			intel_de_write(display, BXT_MIPI_TRANS_VACTIVE(port),
 				       adjusted_mode->crtc_vdisplay);
-			intel_de_write(dev_priv, BXT_MIPI_TRANS_VTOTAL(port),
+			intel_de_write(display, BXT_MIPI_TRANS_VTOTAL(port),
 				       adjusted_mode->crtc_vtotal);
 		}
 
-		intel_de_write(dev_priv, MIPI_HACTIVE_AREA_COUNT(port),
+		intel_de_write(display, MIPI_HACTIVE_AREA_COUNT(display, port),
 			       hactive);
-		intel_de_write(dev_priv, MIPI_HFP_COUNT(port), hfp);
+		intel_de_write(display, MIPI_HFP_COUNT(display, port), hfp);
 
 		/* meaningful for video mode non-burst sync pulse mode only,
 		 * can be zero for non-burst sync events and burst modes */
-		intel_de_write(dev_priv, MIPI_HSYNC_PADDING_COUNT(port),
+		intel_de_write(display, MIPI_HSYNC_PADDING_COUNT(display, port),
 			       hsync);
-		intel_de_write(dev_priv, MIPI_HBP_COUNT(port), hbp);
+		intel_de_write(display, MIPI_HBP_COUNT(display, port), hbp);
 
 		/* vertical values are in terms of lines */
-		intel_de_write(dev_priv, MIPI_VFP_COUNT(port), vfp);
-		intel_de_write(dev_priv, MIPI_VSYNC_PADDING_COUNT(port),
+		intel_de_write(display, MIPI_VFP_COUNT(display, port), vfp);
+		intel_de_write(display, MIPI_VSYNC_PADDING_COUNT(display, port),
 			       vsync);
-		intel_de_write(dev_priv, MIPI_VBP_COUNT(port), vbp);
+		intel_de_write(display, MIPI_VBP_COUNT(display, port), vbp);
 	}
 }
 
@@ -1295,6 +1304,7 @@  static u32 pixel_format_to_reg(enum mipi_dsi_pixel_format fmt)
 static void intel_dsi_prepare(struct intel_encoder *encoder,
 			      const struct intel_crtc_state *pipe_config)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_crtc *crtc = to_intel_crtc(pipe_config->uapi.crtc);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
@@ -1304,7 +1314,7 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 	u32 val, tmp;
 	u16 mode_hdisplay;
 
-	drm_dbg_kms(&dev_priv->drm, "pipe %c\n", pipe_name(crtc->pipe));
+	drm_dbg_kms(display->drm, "pipe %c\n", pipe_name(crtc->pipe));
 
 	mode_hdisplay = adjusted_mode->crtc_hdisplay;
 
@@ -1320,31 +1330,31 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 			 * escape clock divider, 20MHz, shared for A and C.
 			 * device ready must be off when doing this! txclkesc?
 			 */
-			tmp = intel_de_read(dev_priv, MIPI_CTRL(PORT_A));
+			tmp = intel_de_read(display, MIPI_CTRL(display, PORT_A));
 			tmp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
-			intel_de_write(dev_priv, MIPI_CTRL(PORT_A),
+			intel_de_write(display, MIPI_CTRL(display, PORT_A),
 				       tmp | ESCAPE_CLOCK_DIVIDER_1);
 
 			/* read request priority is per pipe */
-			tmp = intel_de_read(dev_priv, MIPI_CTRL(port));
+			tmp = intel_de_read(display, MIPI_CTRL(display, port));
 			tmp &= ~READ_REQUEST_PRIORITY_MASK;
-			intel_de_write(dev_priv, MIPI_CTRL(port),
+			intel_de_write(display, MIPI_CTRL(display, port),
 				       tmp | READ_REQUEST_PRIORITY_HIGH);
 		} else if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) {
 			enum pipe pipe = crtc->pipe;
 
-			intel_de_rmw(dev_priv, MIPI_CTRL(port),
+			intel_de_rmw(display, MIPI_CTRL(display, port),
 				     BXT_PIPE_SELECT_MASK, BXT_PIPE_SELECT(pipe));
 		}
 
 		/* XXX: why here, why like this? handling in irq handler?! */
-		intel_de_write(dev_priv, MIPI_INTR_STAT(port), 0xffffffff);
-		intel_de_write(dev_priv, MIPI_INTR_EN(port), 0xffffffff);
+		intel_de_write(display, MIPI_INTR_STAT(display, port), 0xffffffff);
+		intel_de_write(display, MIPI_INTR_EN(display, port), 0xffffffff);
 
-		intel_de_write(dev_priv, MIPI_DPHY_PARAM(port),
+		intel_de_write(display, MIPI_DPHY_PARAM(display, port),
 			       intel_dsi->dphy_reg);
 
-		intel_de_write(dev_priv, MIPI_DPI_RESOLUTION(port),
+		intel_de_write(display, MIPI_DPI_RESOLUTION(display, port),
 			       adjusted_mode->crtc_vdisplay << VERTICAL_ADDRESS_SHIFT | mode_hdisplay << HORIZONTAL_ADDRESS_SHIFT);
 	}
 
@@ -1372,7 +1382,7 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 	}
 
 	for_each_dsi_port(port, intel_dsi->ports) {
-		intel_de_write(dev_priv, MIPI_DSI_FUNC_PRG(port), val);
+		intel_de_write(display, MIPI_DSI_FUNC_PRG(display, port), val);
 
 		/* timeouts for recovery. one frame IIUC. if counter expires,
 		 * EOT and stop state. */
@@ -1393,23 +1403,23 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 
 		if (is_vid_mode(intel_dsi) &&
 			intel_dsi->video_mode == BURST_MODE) {
-			intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
+			intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
 				       txbyteclkhs(adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
 		} else {
-			intel_de_write(dev_priv, MIPI_HS_TX_TIMEOUT(port),
+			intel_de_write(display, MIPI_HS_TX_TIMEOUT(display, port),
 				       txbyteclkhs(adjusted_mode->crtc_vtotal * adjusted_mode->crtc_htotal, bpp, intel_dsi->lane_count, intel_dsi->burst_mode_ratio) + 1);
 		}
-		intel_de_write(dev_priv, MIPI_LP_RX_TIMEOUT(port),
+		intel_de_write(display, MIPI_LP_RX_TIMEOUT(display, port),
 			       intel_dsi->lp_rx_timeout);
-		intel_de_write(dev_priv, MIPI_TURN_AROUND_TIMEOUT(port),
+		intel_de_write(display, MIPI_TURN_AROUND_TIMEOUT(display, port),
 			       intel_dsi->turn_arnd_val);
-		intel_de_write(dev_priv, MIPI_DEVICE_RESET_TIMER(port),
+		intel_de_write(display, MIPI_DEVICE_RESET_TIMER(display, port),
 			       intel_dsi->rst_timer_val);
 
 		/* dphy stuff */
 
 		/* in terms of low power clock */
-		intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
+		intel_de_write(display, MIPI_INIT_COUNT(display, port),
 			       txclkesc(intel_dsi->escape_clk_div, 100));
 
 		if ((IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv)) &&
@@ -1420,16 +1430,16 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 			 * getting used. So write the other port
 			 * if not in dual link mode.
 			 */
-			intel_de_write(dev_priv,
-				       MIPI_INIT_COUNT(port == PORT_A ? PORT_C : PORT_A),
+			intel_de_write(display,
+				       MIPI_INIT_COUNT(display, port == PORT_A ? PORT_C : PORT_A),
 				       intel_dsi->init_count);
 		}
 
 		/* recovery disables */
-		intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), tmp);
+		intel_de_write(display, MIPI_EOT_DISABLE(display, port), tmp);
 
 		/* in terms of low power clock */
-		intel_de_write(dev_priv, MIPI_INIT_COUNT(port),
+		intel_de_write(display, MIPI_INIT_COUNT(display, port),
 			       intel_dsi->init_count);
 
 		/* in terms of txbyteclkhs. actual high to low switch +
@@ -1437,7 +1447,7 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 		 *
 		 * XXX: write MIPI_STOP_STATE_STALL?
 		 */
-		intel_de_write(dev_priv, MIPI_HIGH_LOW_SWITCH_COUNT(port),
+		intel_de_write(display, MIPI_HIGH_LOW_SWITCH_COUNT(display, port),
 			       intel_dsi->hs_to_lp_count);
 
 		/* XXX: low power clock equivalence in terms of byte clock.
@@ -1446,14 +1456,14 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 		 * txclkesc time / txbyteclk time * (105 + MIPI_STOP_STATE_STALL
 		 * ) / 105.???
 		 */
-		intel_de_write(dev_priv, MIPI_LP_BYTECLK(port),
+		intel_de_write(display, MIPI_LP_BYTECLK(display, port),
 			       intel_dsi->lp_byte_clk);
 
 		if (IS_GEMINILAKE(dev_priv)) {
-			intel_de_write(dev_priv, MIPI_TLPX_TIME_COUNT(port),
+			intel_de_write(display, MIPI_TLPX_TIME_COUNT(display, port),
 				       intel_dsi->lp_byte_clk);
 			/* Shadow of DPHY reg */
-			intel_de_write(dev_priv, MIPI_CLK_LANE_TIMING(port),
+			intel_de_write(display, MIPI_CLK_LANE_TIMING(display, port),
 				       intel_dsi->dphy_reg);
 		}
 
@@ -1462,10 +1472,10 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 		 * this register in terms of byte clocks. based on dsi transfer
 		 * rate and the number of lanes configured the time taken to
 		 * transmit 16 long packets in a dsi stream varies. */
-		intel_de_write(dev_priv, MIPI_DBI_BW_CTRL(port),
+		intel_de_write(display, MIPI_DBI_BW_CTRL(display, port),
 			       intel_dsi->bw_timer);
 
-		intel_de_write(dev_priv, MIPI_CLK_LANE_SWITCH_TIME_CNT(port),
+		intel_de_write(display, MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port),
 			       intel_dsi->clk_lp_to_hs_count << LP_HS_SSW_CNT_SHIFT | intel_dsi->clk_hs_to_lp_count << HS_LP_PWR_SW_CNT_SHIFT);
 
 		if (is_vid_mode(intel_dsi)) {
@@ -1493,13 +1503,14 @@  static void intel_dsi_prepare(struct intel_encoder *encoder,
 				break;
 			}
 
-			intel_de_write(dev_priv, MIPI_VIDEO_MODE_FORMAT(port), fmt);
+			intel_de_write(display, MIPI_VIDEO_MODE_FORMAT(display, port), fmt);
 		}
 	}
 }
 
 static void intel_dsi_unprepare(struct intel_encoder *encoder)
 {
+	struct intel_display *display = to_intel_display(encoder);
 	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
 	enum port port;
@@ -1509,17 +1520,17 @@  static void intel_dsi_unprepare(struct intel_encoder *encoder)
 
 	for_each_dsi_port(port, intel_dsi->ports) {
 		/* Panel commands can be sent when clock is in LP11 */
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x0);
+		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x0);
 
 		if (IS_GEMINILAKE(dev_priv) || IS_BROXTON(dev_priv))
 			bxt_dsi_reset_clocks(encoder, port);
 		else
 			vlv_dsi_reset_clocks(encoder, port);
-		intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
+		intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
 
-		intel_de_rmw(dev_priv, MIPI_DSI_FUNC_PRG(port), VID_MODE_FORMAT_MASK, 0);
+		intel_de_rmw(display, MIPI_DSI_FUNC_PRG(display, port), VID_MODE_FORMAT_MASK, 0);
 
-		intel_de_write(dev_priv, MIPI_DEVICE_READY(port), 0x1);
+		intel_de_write(display, MIPI_DEVICE_READY(display, port), 0x1);
 	}
 }
 
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
index ae0a0b11bae3..70c5a13a3c75 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
+++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c
@@ -365,13 +365,13 @@  u32 bxt_dsi_get_pclk(struct intel_encoder *encoder,
 
 void vlv_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
 {
-	u32 temp;
-	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
+	struct intel_display *display = to_intel_display(encoder);
 	struct intel_dsi *intel_dsi = enc_to_intel_dsi(encoder);
+	u32 temp;
 
-	temp = intel_de_read(dev_priv, MIPI_CTRL(port));
+	temp = intel_de_read(display, MIPI_CTRL(display, port));
 	temp &= ~ESCAPE_CLOCK_DIVIDER_MASK;
-	intel_de_write(dev_priv, MIPI_CTRL(port),
+	intel_de_write(display, MIPI_CTRL(display, port),
 		       temp | intel_dsi->escape_clk_div << ESCAPE_CLOCK_DIVIDER_SHIFT);
 }
 
@@ -570,24 +570,24 @@  void bxt_dsi_pll_enable(struct intel_encoder *encoder,
 
 void bxt_dsi_reset_clocks(struct intel_encoder *encoder, enum port port)
 {
+	struct intel_display *display = to_intel_display(encoder);
+	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 	u32 tmp;
-	struct drm_device *dev = encoder->base.dev;
-	struct drm_i915_private *dev_priv = to_i915(dev);
 
 	/* Clear old configurations */
 	if (IS_BROXTON(dev_priv)) {
-		tmp = intel_de_read(dev_priv, BXT_MIPI_CLOCK_CTL);
+		tmp = intel_de_read(display, BXT_MIPI_CLOCK_CTL);
 		tmp &= ~(BXT_MIPI_TX_ESCLK_FIXDIV_MASK(port));
 		tmp &= ~(BXT_MIPI_RX_ESCLK_UPPER_FIXDIV_MASK(port));
 		tmp &= ~(BXT_MIPI_8X_BY3_DIVIDER_MASK(port));
 		tmp &= ~(BXT_MIPI_RX_ESCLK_LOWER_FIXDIV_MASK(port));
-		intel_de_write(dev_priv, BXT_MIPI_CLOCK_CTL, tmp);
+		intel_de_write(display, BXT_MIPI_CLOCK_CTL, tmp);
 	} else {
-		intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
+		intel_de_rmw(display, MIPIO_TXESC_CLK_DIV1, GLK_TX_ESC_CLK_DIV1_MASK, 0);
 
-		intel_de_rmw(dev_priv, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
+		intel_de_rmw(display, MIPIO_TXESC_CLK_DIV2, GLK_TX_ESC_CLK_DIV2_MASK, 0);
 	}
-	intel_de_write(dev_priv, MIPI_EOT_DISABLE(port), CLOCKSTOP);
+	intel_de_write(display, MIPI_EOT_DISABLE(display, port), CLOCKSTOP);
 }
 
 static void assert_dsi_pll(struct drm_i915_private *i915, bool state)
diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
index 12a608a73720..c1126d170ec6 100644
--- a/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
+++ b/drivers/gpu/drm/i915/display/vlv_dsi_regs.h
@@ -11,26 +11,23 @@ 
 #define VLV_MIPI_BASE			VLV_DISPLAY_BASE
 #define BXT_MIPI_BASE			0x60000
 
-#define _MIPI_MMIO_BASE(__i915) ((__i915)->display.dsi.mmio_base)
+#define _MIPI_MMIO_BASE(display)	((display)->dsi.mmio_base)
 
 #define _MIPI_PORT(port, a, c)	(((port) == PORT_A) ? a : c)	/* ports A and C only */
-#define _MMIO_MIPI(port, a, c)	_MMIO(_MIPI_PORT(port, a, c))
+#define _MMIO_MIPI(base, port, a, c)	_MMIO((base) + _MIPI_PORT(port, a, c))
 
 /* BXT MIPI mode configure */
-#define  _BXT_MIPIA_TRANS_HACTIVE			0x6B0F8
-#define  _BXT_MIPIC_TRANS_HACTIVE			0x6B8F8
-#define  BXT_MIPI_TRANS_HACTIVE(tc)	_MMIO_MIPI(tc, \
-		_BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
+#define  _BXT_MIPIA_TRANS_HACTIVE		0xb0f8
+#define  _BXT_MIPIC_TRANS_HACTIVE		0xb8f8
+#define  BXT_MIPI_TRANS_HACTIVE(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_HACTIVE, _BXT_MIPIC_TRANS_HACTIVE)
 
-#define  _BXT_MIPIA_TRANS_VACTIVE			0x6B0FC
-#define  _BXT_MIPIC_TRANS_VACTIVE			0x6B8FC
-#define  BXT_MIPI_TRANS_VACTIVE(tc)	_MMIO_MIPI(tc, \
-		_BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
+#define  _BXT_MIPIA_TRANS_VACTIVE		0xb0fc
+#define  _BXT_MIPIC_TRANS_VACTIVE		0xb8fc
+#define  BXT_MIPI_TRANS_VACTIVE(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VACTIVE, _BXT_MIPIC_TRANS_VACTIVE)
 
-#define  _BXT_MIPIA_TRANS_VTOTAL			0x6B100
-#define  _BXT_MIPIC_TRANS_VTOTAL			0x6B900
-#define  BXT_MIPI_TRANS_VTOTAL(tc)	_MMIO_MIPI(tc, \
-		_BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
+#define  _BXT_MIPIA_TRANS_VTOTAL		0xb100
+#define  _BXT_MIPIC_TRANS_VTOTAL		0xb900
+#define  BXT_MIPI_TRANS_VTOTAL(tc)		_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_TRANS_VTOTAL, _BXT_MIPIC_TRANS_VTOTAL)
 
 #define BXT_P_DSI_REGULATOR_CFG			_MMIO(0x160020)
 #define  STAP_SELECT					(1 << 0)
@@ -38,14 +35,14 @@ 
 #define BXT_P_DSI_REGULATOR_TX_CTRL		_MMIO(0x160054)
 #define  HS_IO_CTRL_SELECT				(1 << 0)
 
-#define _MIPIA_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61190)
-#define _MIPIC_PORT_CTRL			(VLV_DISPLAY_BASE + 0x61700)
-#define VLV_MIPI_PORT_CTRL(port)	_MMIO_MIPI(port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
+#define _MIPIA_PORT_CTRL			0x61190
+#define _MIPIC_PORT_CTRL			0x61700
+#define VLV_MIPI_PORT_CTRL(port)		_MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_PORT_CTRL, _MIPIC_PORT_CTRL)
 
  /* BXT port control */
-#define _BXT_MIPIA_PORT_CTRL				0x6B0C0
-#define _BXT_MIPIC_PORT_CTRL				0x6B8C0
-#define BXT_MIPI_PORT_CTRL(tc)	_MMIO_MIPI(tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
+#define _BXT_MIPIA_PORT_CTRL			0xb0c0
+#define _BXT_MIPIC_PORT_CTRL			0xb8c0
+#define BXT_MIPI_PORT_CTRL(tc)			_MMIO_MIPI(BXT_MIPI_BASE, tc, _BXT_MIPIA_PORT_CTRL, _BXT_MIPIC_PORT_CTRL)
 
 #define  DPI_ENABLE					(1 << 31) /* A + C */
 #define  MIPIA_MIPI4DPHY_DELAY_COUNT_SHIFT		27
@@ -87,17 +84,17 @@ 
 #define  LANE_CONFIGURATION_DUAL_LINK_A			(1 << 0)
 #define  LANE_CONFIGURATION_DUAL_LINK_B			(2 << 0)
 
-#define _MIPIA_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61194)
-#define _MIPIC_TEARING_CTRL			(VLV_DISPLAY_BASE + 0x61704)
-#define VLV_MIPI_TEARING_CTRL(port)		_MMIO_MIPI(port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
+#define _MIPIA_TEARING_CTRL			0x61194
+#define _MIPIC_TEARING_CTRL			0x61704
+#define VLV_MIPI_TEARING_CTRL(port)			_MMIO_MIPI(VLV_MIPI_BASE, port, _MIPIA_TEARING_CTRL, _MIPIC_TEARING_CTRL)
 #define  TEARING_EFFECT_DELAY_SHIFT			0
 #define  TEARING_EFFECT_DELAY_MASK			(0xffff << 0)
 
 /* MIPI DSI Controller and D-PHY registers */
 
-#define _MIPIA_DEVICE_READY		(_MIPI_MMIO_BASE(dev_priv) + 0xb000)
-#define _MIPIC_DEVICE_READY		(_MIPI_MMIO_BASE(dev_priv) + 0xb800)
-#define MIPI_DEVICE_READY(port)		_MMIO_MIPI(port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
+#define _MIPIA_DEVICE_READY			0xb000
+#define _MIPIC_DEVICE_READY			0xb800
+#define MIPI_DEVICE_READY(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_READY, _MIPIC_DEVICE_READY)
 #define  BUS_POSSESSION					(1 << 3) /* set to give bus to receiver */
 #define  ULPS_STATE_MASK				(3 << 1)
 #define  ULPS_STATE_ENTER				(2 << 1)
@@ -105,12 +102,12 @@ 
 #define  ULPS_STATE_NORMAL_OPERATION			(0 << 1)
 #define  DEVICE_READY					(1 << 0)
 
-#define _MIPIA_INTR_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb004)
-#define _MIPIC_INTR_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb804)
-#define MIPI_INTR_STAT(port)		_MMIO_MIPI(port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
-#define _MIPIA_INTR_EN			(_MIPI_MMIO_BASE(dev_priv) + 0xb008)
-#define _MIPIC_INTR_EN			(_MIPI_MMIO_BASE(dev_priv) + 0xb808)
-#define MIPI_INTR_EN(port)		_MMIO_MIPI(port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
+#define _MIPIA_INTR_STAT			0xb004
+#define _MIPIC_INTR_STAT			0xb804
+#define MIPI_INTR_STAT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT, _MIPIC_INTR_STAT)
+#define _MIPIA_INTR_EN				0xb008
+#define _MIPIC_INTR_EN				0xb808
+#define MIPI_INTR_EN(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN, _MIPIC_INTR_EN)
 #define  TEARING_EFFECT					(1 << 31)
 #define  SPL_PKT_SENT_INTERRUPT				(1 << 30)
 #define  GEN_READ_DATA_AVAIL				(1 << 29)
@@ -144,9 +141,9 @@ 
 #define  RXSOT_SYNC_ERROR				(1 << 1)
 #define  RXSOT_ERROR					(1 << 0)
 
-#define _MIPIA_DSI_FUNC_PRG		(_MIPI_MMIO_BASE(dev_priv) + 0xb00c)
-#define _MIPIC_DSI_FUNC_PRG		(_MIPI_MMIO_BASE(dev_priv) + 0xb80c)
-#define MIPI_DSI_FUNC_PRG(port)		_MMIO_MIPI(port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
+#define _MIPIA_DSI_FUNC_PRG			0xb00c
+#define _MIPIC_DSI_FUNC_PRG			0xb80c
+#define MIPI_DSI_FUNC_PRG(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DSI_FUNC_PRG, _MIPIC_DSI_FUNC_PRG)
 #define  CMD_MODE_DATA_WIDTH_MASK			(7 << 13)
 #define  CMD_MODE_NOT_SUPPORTED				(0 << 13)
 #define  CMD_MODE_DATA_WIDTH_16_BIT			(1 << 13)
@@ -167,77 +164,77 @@ 
 #define  DATA_LANES_PRG_REG_SHIFT			0
 #define  DATA_LANES_PRG_REG_MASK			(7 << 0)
 
-#define _MIPIA_HS_TX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb010)
-#define _MIPIC_HS_TX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb810)
-#define MIPI_HS_TX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
+#define _MIPIA_HS_TX_TIMEOUT			0xb010
+#define _MIPIC_HS_TX_TIMEOUT			0xb810
+#define MIPI_HS_TX_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_TX_TIMEOUT, _MIPIC_HS_TX_TIMEOUT)
 #define  HIGH_SPEED_TX_TIMEOUT_COUNTER_MASK		0xffffff
 
-#define _MIPIA_LP_RX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb014)
-#define _MIPIC_LP_RX_TIMEOUT		(_MIPI_MMIO_BASE(dev_priv) + 0xb814)
-#define MIPI_LP_RX_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
+#define _MIPIA_LP_RX_TIMEOUT			0xb014
+#define _MIPIC_LP_RX_TIMEOUT			0xb814
+#define MIPI_LP_RX_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_RX_TIMEOUT, _MIPIC_LP_RX_TIMEOUT)
 #define  LOW_POWER_RX_TIMEOUT_COUNTER_MASK		0xffffff
 
-#define _MIPIA_TURN_AROUND_TIMEOUT	(_MIPI_MMIO_BASE(dev_priv) + 0xb018)
-#define _MIPIC_TURN_AROUND_TIMEOUT	(_MIPI_MMIO_BASE(dev_priv) + 0xb818)
-#define MIPI_TURN_AROUND_TIMEOUT(port)	_MMIO_MIPI(port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
+#define _MIPIA_TURN_AROUND_TIMEOUT		0xb018
+#define _MIPIC_TURN_AROUND_TIMEOUT		0xb818
+#define MIPI_TURN_AROUND_TIMEOUT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TURN_AROUND_TIMEOUT, _MIPIC_TURN_AROUND_TIMEOUT)
 #define  TURN_AROUND_TIMEOUT_MASK			0x3f
 
-#define _MIPIA_DEVICE_RESET_TIMER	(_MIPI_MMIO_BASE(dev_priv) + 0xb01c)
-#define _MIPIC_DEVICE_RESET_TIMER	(_MIPI_MMIO_BASE(dev_priv) + 0xb81c)
-#define MIPI_DEVICE_RESET_TIMER(port)	_MMIO_MIPI(port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
+#define _MIPIA_DEVICE_RESET_TIMER		0xb01c
+#define _MIPIC_DEVICE_RESET_TIMER		0xb81c
+#define MIPI_DEVICE_RESET_TIMER(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DEVICE_RESET_TIMER, _MIPIC_DEVICE_RESET_TIMER)
 #define  DEVICE_RESET_TIMER_MASK			0xffff
 
-#define _MIPIA_DPI_RESOLUTION		(_MIPI_MMIO_BASE(dev_priv) + 0xb020)
-#define _MIPIC_DPI_RESOLUTION		(_MIPI_MMIO_BASE(dev_priv) + 0xb820)
-#define MIPI_DPI_RESOLUTION(port)	_MMIO_MIPI(port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
+#define _MIPIA_DPI_RESOLUTION			0xb020
+#define _MIPIC_DPI_RESOLUTION			0xb820
+#define MIPI_DPI_RESOLUTION(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_RESOLUTION, _MIPIC_DPI_RESOLUTION)
 #define  VERTICAL_ADDRESS_SHIFT				16
 #define  VERTICAL_ADDRESS_MASK				(0xffff << 16)
 #define  HORIZONTAL_ADDRESS_SHIFT			0
 #define  HORIZONTAL_ADDRESS_MASK			0xffff
 
-#define _MIPIA_DBI_FIFO_THROTTLE	(_MIPI_MMIO_BASE(dev_priv) + 0xb024)
-#define _MIPIC_DBI_FIFO_THROTTLE	(_MIPI_MMIO_BASE(dev_priv) + 0xb824)
-#define MIPI_DBI_FIFO_THROTTLE(port)	_MMIO_MIPI(port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
+#define _MIPIA_DBI_FIFO_THROTTLE		0xb024
+#define _MIPIC_DBI_FIFO_THROTTLE		0xb824
+#define MIPI_DBI_FIFO_THROTTLE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_FIFO_THROTTLE, _MIPIC_DBI_FIFO_THROTTLE)
 #define  DBI_FIFO_EMPTY_HALF				(0 << 0)
 #define  DBI_FIFO_EMPTY_QUARTER				(1 << 0)
 #define  DBI_FIFO_EMPTY_7_LOCATIONS			(2 << 0)
 
 /* regs below are bits 15:0 */
-#define _MIPIA_HSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb028)
-#define _MIPIC_HSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb828)
-#define MIPI_HSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
+#define _MIPIA_HSYNC_PADDING_COUNT		0xb028
+#define _MIPIC_HSYNC_PADDING_COUNT		0xb828
+#define MIPI_HSYNC_PADDING_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT)
 
-#define _MIPIA_HBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb02c)
-#define _MIPIC_HBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb82c)
-#define MIPI_HBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
+#define _MIPIA_HBP_COUNT			0xb02c
+#define _MIPIC_HBP_COUNT			0xb82c
+#define MIPI_HBP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HBP_COUNT, _MIPIC_HBP_COUNT)
 
-#define _MIPIA_HFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb030)
-#define _MIPIC_HFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb830)
-#define MIPI_HFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
+#define _MIPIA_HFP_COUNT			0xb030
+#define _MIPIC_HFP_COUNT			0xb830
+#define MIPI_HFP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HFP_COUNT, _MIPIC_HFP_COUNT)
 
-#define _MIPIA_HACTIVE_AREA_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb034)
-#define _MIPIC_HACTIVE_AREA_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb834)
-#define MIPI_HACTIVE_AREA_COUNT(port)	_MMIO_MIPI(port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
+#define _MIPIA_HACTIVE_AREA_COUNT		0xb034
+#define _MIPIC_HACTIVE_AREA_COUNT		0xb834
+#define MIPI_HACTIVE_AREA_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HACTIVE_AREA_COUNT, _MIPIC_HACTIVE_AREA_COUNT)
 
-#define _MIPIA_VSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb038)
-#define _MIPIC_VSYNC_PADDING_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb838)
-#define MIPI_VSYNC_PADDING_COUNT(port)	_MMIO_MIPI(port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
+#define _MIPIA_VSYNC_PADDING_COUNT		0xb038
+#define _MIPIC_VSYNC_PADDING_COUNT		0xb838
+#define MIPI_VSYNC_PADDING_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VSYNC_PADDING_COUNT, _MIPIC_VSYNC_PADDING_COUNT)
 
-#define _MIPIA_VBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb03c)
-#define _MIPIC_VBP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb83c)
-#define MIPI_VBP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
+#define _MIPIA_VBP_COUNT			0xb03c
+#define _MIPIC_VBP_COUNT			0xb83c
+#define MIPI_VBP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VBP_COUNT, _MIPIC_VBP_COUNT)
 
-#define _MIPIA_VFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb040)
-#define _MIPIC_VFP_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb840)
-#define MIPI_VFP_COUNT(port)		_MMIO_MIPI(port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
+#define _MIPIA_VFP_COUNT			0xb040
+#define _MIPIC_VFP_COUNT			0xb840
+#define MIPI_VFP_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VFP_COUNT, _MIPIC_VFP_COUNT)
 
-#define _MIPIA_HIGH_LOW_SWITCH_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb044)
-#define _MIPIC_HIGH_LOW_SWITCH_COUNT	(_MIPI_MMIO_BASE(dev_priv) + 0xb844)
-#define MIPI_HIGH_LOW_SWITCH_COUNT(port)	_MMIO_MIPI(port,	_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
+#define _MIPIA_HIGH_LOW_SWITCH_COUNT		0xb044
+#define _MIPIC_HIGH_LOW_SWITCH_COUNT		0xb844
+#define MIPI_HIGH_LOW_SWITCH_COUNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port,	_MIPIA_HIGH_LOW_SWITCH_COUNT, _MIPIC_HIGH_LOW_SWITCH_COUNT)
 
-#define _MIPIA_DPI_CONTROL		(_MIPI_MMIO_BASE(dev_priv) + 0xb048)
-#define _MIPIC_DPI_CONTROL		(_MIPI_MMIO_BASE(dev_priv) + 0xb848)
-#define MIPI_DPI_CONTROL(port)		_MMIO_MIPI(port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
+#define _MIPIA_DPI_CONTROL			0xb048
+#define _MIPIC_DPI_CONTROL			0xb848
+#define MIPI_DPI_CONTROL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_CONTROL, _MIPIC_DPI_CONTROL)
 #define  DPI_LP_MODE					(1 << 6)
 #define  BACKLIGHT_OFF					(1 << 5)
 #define  BACKLIGHT_ON					(1 << 4)
@@ -246,28 +243,27 @@ 
 #define  TURN_ON					(1 << 1)
 #define  SHUTDOWN					(1 << 0)
 
-#define _MIPIA_DPI_DATA			(_MIPI_MMIO_BASE(dev_priv) + 0xb04c)
-#define _MIPIC_DPI_DATA			(_MIPI_MMIO_BASE(dev_priv) + 0xb84c)
-#define MIPI_DPI_DATA(port)		_MMIO_MIPI(port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
+#define _MIPIA_DPI_DATA				0xb04c
+#define _MIPIC_DPI_DATA				0xb84c
+#define MIPI_DPI_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPI_DATA, _MIPIC_DPI_DATA)
 #define  COMMAND_BYTE_SHIFT				0
 #define  COMMAND_BYTE_MASK				(0x3f << 0)
 
-#define _MIPIA_INIT_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb050)
-#define _MIPIC_INIT_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb850)
-#define MIPI_INIT_COUNT(port)		_MMIO_MIPI(port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
+#define _MIPIA_INIT_COUNT			0xb050
+#define _MIPIC_INIT_COUNT			0xb850
+#define MIPI_INIT_COUNT(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INIT_COUNT, _MIPIC_INIT_COUNT)
 #define  MASTER_INIT_TIMER_SHIFT			0
 #define  MASTER_INIT_TIMER_MASK				(0xffff << 0)
 
-#define _MIPIA_MAX_RETURN_PKT_SIZE	(_MIPI_MMIO_BASE(dev_priv) + 0xb054)
-#define _MIPIC_MAX_RETURN_PKT_SIZE	(_MIPI_MMIO_BASE(dev_priv) + 0xb854)
-#define MIPI_MAX_RETURN_PKT_SIZE(port)	_MMIO_MIPI(port, \
-			_MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
+#define _MIPIA_MAX_RETURN_PKT_SIZE		0xb054
+#define _MIPIC_MAX_RETURN_PKT_SIZE		0xb854
+#define MIPI_MAX_RETURN_PKT_SIZE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_MAX_RETURN_PKT_SIZE, _MIPIC_MAX_RETURN_PKT_SIZE)
 #define  MAX_RETURN_PKT_SIZE_SHIFT			0
 #define  MAX_RETURN_PKT_SIZE_MASK			(0x3ff << 0)
 
-#define _MIPIA_VIDEO_MODE_FORMAT	(_MIPI_MMIO_BASE(dev_priv) + 0xb058)
-#define _MIPIC_VIDEO_MODE_FORMAT	(_MIPI_MMIO_BASE(dev_priv) + 0xb858)
-#define MIPI_VIDEO_MODE_FORMAT(port)	_MMIO_MIPI(port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
+#define _MIPIA_VIDEO_MODE_FORMAT		0xb058
+#define _MIPIC_VIDEO_MODE_FORMAT		0xb858
+#define MIPI_VIDEO_MODE_FORMAT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_VIDEO_MODE_FORMAT, _MIPIC_VIDEO_MODE_FORMAT)
 #define  RANDOM_DPI_DISPLAY_RESOLUTION			(1 << 4)
 #define  DISABLE_VIDEO_BTA				(1 << 3)
 #define  IP_TG_CONFIG					(1 << 2)
@@ -275,9 +271,9 @@ 
 #define  VIDEO_MODE_NON_BURST_WITH_SYNC_EVENTS		(2 << 0)
 #define  VIDEO_MODE_BURST				(3 << 0)
 
-#define _MIPIA_EOT_DISABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb05c)
-#define _MIPIC_EOT_DISABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb85c)
-#define MIPI_EOT_DISABLE(port)		_MMIO_MIPI(port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
+#define _MIPIA_EOT_DISABLE			0xb05c
+#define _MIPIC_EOT_DISABLE			0xb85c
+#define MIPI_EOT_DISABLE(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_EOT_DISABLE, _MIPIC_EOT_DISABLE)
 #define  BXT_DEFEATURE_DPI_FIFO_CTR			(1 << 9)
 #define  BXT_DPHY_DEFEATURE_EN				(1 << 8)
 #define  LP_RX_TIMEOUT_ERROR_RECOVERY_DISABLE		(1 << 7)
@@ -289,36 +285,36 @@ 
 #define  CLOCKSTOP					(1 << 1)
 #define  EOT_DISABLE					(1 << 0)
 
-#define _MIPIA_LP_BYTECLK		(_MIPI_MMIO_BASE(dev_priv) + 0xb060)
-#define _MIPIC_LP_BYTECLK		(_MIPI_MMIO_BASE(dev_priv) + 0xb860)
-#define MIPI_LP_BYTECLK(port)		_MMIO_MIPI(port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
+#define _MIPIA_LP_BYTECLK			0xb060
+#define _MIPIC_LP_BYTECLK			0xb860
+#define MIPI_LP_BYTECLK(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_BYTECLK, _MIPIC_LP_BYTECLK)
 #define  LP_BYTECLK_SHIFT				0
 #define  LP_BYTECLK_MASK				(0xffff << 0)
 
-#define _MIPIA_TLPX_TIME_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb0a4)
-#define _MIPIC_TLPX_TIME_COUNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb8a4)
-#define MIPI_TLPX_TIME_COUNT(port)	 _MMIO_MIPI(port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
+#define _MIPIA_TLPX_TIME_COUNT			0xb0a4
+#define _MIPIC_TLPX_TIME_COUNT			0xb8a4
+#define MIPI_TLPX_TIME_COUNT(display, port)	 _MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_TLPX_TIME_COUNT, _MIPIC_TLPX_TIME_COUNT)
 
-#define _MIPIA_CLK_LANE_TIMING		(_MIPI_MMIO_BASE(dev_priv) + 0xb098)
-#define _MIPIC_CLK_LANE_TIMING		(_MIPI_MMIO_BASE(dev_priv) + 0xb898)
-#define MIPI_CLK_LANE_TIMING(port)	 _MMIO_MIPI(port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
+#define _MIPIA_CLK_LANE_TIMING			0xb098
+#define _MIPIC_CLK_LANE_TIMING			0xb898
+#define MIPI_CLK_LANE_TIMING(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_TIMING, _MIPIC_CLK_LANE_TIMING)
 
 /* bits 31:0 */
-#define _MIPIA_LP_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb064)
-#define _MIPIC_LP_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb864)
-#define MIPI_LP_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
+#define _MIPIA_LP_GEN_DATA			0xb064
+#define _MIPIC_LP_GEN_DATA			0xb864
+#define MIPI_LP_GEN_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_DATA, _MIPIC_LP_GEN_DATA)
 
 /* bits 31:0 */
-#define _MIPIA_HS_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb068)
-#define _MIPIC_HS_GEN_DATA		(_MIPI_MMIO_BASE(dev_priv) + 0xb868)
-#define MIPI_HS_GEN_DATA(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
-
-#define _MIPIA_LP_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb06c)
-#define _MIPIC_LP_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb86c)
-#define MIPI_LP_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
-#define _MIPIA_HS_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb070)
-#define _MIPIC_HS_GEN_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb870)
-#define MIPI_HS_GEN_CTRL(port)		_MMIO_MIPI(port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
+#define _MIPIA_HS_GEN_DATA			0xb068
+#define _MIPIC_HS_GEN_DATA			0xb868
+#define MIPI_HS_GEN_DATA(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_DATA, _MIPIC_HS_GEN_DATA)
+
+#define _MIPIA_LP_GEN_CTRL			0xb06c
+#define _MIPIC_LP_GEN_CTRL			0xb86c
+#define MIPI_LP_GEN_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_LP_GEN_CTRL, _MIPIC_LP_GEN_CTRL)
+#define _MIPIA_HS_GEN_CTRL			0xb070
+#define _MIPIC_HS_GEN_CTRL			0xb870
+#define MIPI_HS_GEN_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_GEN_CTRL, _MIPIC_HS_GEN_CTRL)
 #define  LONG_PACKET_WORD_COUNT_SHIFT			8
 #define  LONG_PACKET_WORD_COUNT_MASK			(0xffff << 8)
 #define  SHORT_PACKET_PARAM_SHIFT			8
@@ -329,9 +325,9 @@ 
 #define  DATA_TYPE_MASK					(0x3f << 0)
 /* data type values, see include/video/mipi_display.h */
 
-#define _MIPIA_GEN_FIFO_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb074)
-#define _MIPIC_GEN_FIFO_STAT		(_MIPI_MMIO_BASE(dev_priv) + 0xb874)
-#define MIPI_GEN_FIFO_STAT(port)	_MMIO_MIPI(port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
+#define _MIPIA_GEN_FIFO_STAT			0xb074
+#define _MIPIC_GEN_FIFO_STAT			0xb874
+#define MIPI_GEN_FIFO_STAT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_GEN_FIFO_STAT, _MIPIC_GEN_FIFO_STAT)
 #define  DPI_FIFO_EMPTY					(1 << 28)
 #define  DBI_FIFO_EMPTY					(1 << 27)
 #define  LP_CTRL_FIFO_EMPTY				(1 << 26)
@@ -347,16 +343,16 @@ 
 #define  HS_DATA_FIFO_HALF_EMPTY			(1 << 1)
 #define  HS_DATA_FIFO_FULL				(1 << 0)
 
-#define _MIPIA_HS_LS_DBI_ENABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb078)
-#define _MIPIC_HS_LS_DBI_ENABLE		(_MIPI_MMIO_BASE(dev_priv) + 0xb878)
-#define MIPI_HS_LP_DBI_ENABLE(port)	_MMIO_MIPI(port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
+#define _MIPIA_HS_LS_DBI_ENABLE			0xb078
+#define _MIPIC_HS_LS_DBI_ENABLE			0xb878
+#define MIPI_HS_LP_DBI_ENABLE(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_HS_LS_DBI_ENABLE, _MIPIC_HS_LS_DBI_ENABLE)
 #define  DBI_HS_LP_MODE_MASK				(1 << 0)
 #define  DBI_LP_MODE					(1 << 0)
 #define  DBI_HS_MODE					(0 << 0)
 
-#define _MIPIA_DPHY_PARAM		(_MIPI_MMIO_BASE(dev_priv) + 0xb080)
-#define _MIPIC_DPHY_PARAM		(_MIPI_MMIO_BASE(dev_priv) + 0xb880)
-#define MIPI_DPHY_PARAM(port)		_MMIO_MIPI(port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
+#define _MIPIA_DPHY_PARAM			0xb080
+#define _MIPIC_DPHY_PARAM			0xb880
+#define MIPI_DPHY_PARAM(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DPHY_PARAM, _MIPIC_DPHY_PARAM)
 #define  EXIT_ZERO_COUNT_SHIFT				24
 #define  EXIT_ZERO_COUNT_MASK				(0x3f << 24)
 #define  TRAIL_COUNT_SHIFT				16
@@ -366,34 +362,34 @@ 
 #define  PREPARE_COUNT_SHIFT				0
 #define  PREPARE_COUNT_MASK				(0x3f << 0)
 
-#define _MIPIA_DBI_BW_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb084)
-#define _MIPIC_DBI_BW_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb884)
-#define MIPI_DBI_BW_CTRL(port)		_MMIO_MIPI(port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
+#define _MIPIA_DBI_BW_CTRL			0xb084
+#define _MIPIC_DBI_BW_CTRL			0xb884
+#define MIPI_DBI_BW_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DBI_BW_CTRL, _MIPIC_DBI_BW_CTRL)
 
-#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb088)
-#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		(_MIPI_MMIO_BASE(dev_priv) + 0xb888)
-#define MIPI_CLK_LANE_SWITCH_TIME_CNT(port)	_MMIO_MIPI(port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
+#define _MIPIA_CLK_LANE_SWITCH_TIME_CNT		0xb088
+#define _MIPIC_CLK_LANE_SWITCH_TIME_CNT		0xb888
+#define MIPI_CLK_LANE_SWITCH_TIME_CNT(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CLK_LANE_SWITCH_TIME_CNT, _MIPIC_CLK_LANE_SWITCH_TIME_CNT)
 #define  LP_HS_SSW_CNT_SHIFT				16
 #define  LP_HS_SSW_CNT_MASK				(0xffff << 16)
 #define  HS_LP_PWR_SW_CNT_SHIFT				0
 #define  HS_LP_PWR_SW_CNT_MASK				(0xffff << 0)
 
-#define _MIPIA_STOP_STATE_STALL		(_MIPI_MMIO_BASE(dev_priv) + 0xb08c)
-#define _MIPIC_STOP_STATE_STALL		(_MIPI_MMIO_BASE(dev_priv) + 0xb88c)
-#define MIPI_STOP_STATE_STALL(port)	_MMIO_MIPI(port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
+#define _MIPIA_STOP_STATE_STALL			0xb08c
+#define _MIPIC_STOP_STATE_STALL			0xb88c
+#define MIPI_STOP_STATE_STALL(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_STOP_STATE_STALL, _MIPIC_STOP_STATE_STALL)
 #define  STOP_STATE_STALL_COUNTER_SHIFT			0
 #define  STOP_STATE_STALL_COUNTER_MASK			(0xff << 0)
 
-#define _MIPIA_INTR_STAT_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb090)
-#define _MIPIC_INTR_STAT_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb890)
-#define MIPI_INTR_STAT_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
-#define _MIPIA_INTR_EN_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb094)
-#define _MIPIC_INTR_EN_REG_1		(_MIPI_MMIO_BASE(dev_priv) + 0xb894)
-#define MIPI_INTR_EN_REG_1(port)	_MMIO_MIPI(port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
+#define _MIPIA_INTR_STAT_REG_1			0xb090
+#define _MIPIC_INTR_STAT_REG_1			0xb890
+#define MIPI_INTR_STAT_REG_1(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_STAT_REG_1, _MIPIC_INTR_STAT_REG_1)
+#define _MIPIA_INTR_EN_REG_1			0xb094
+#define _MIPIC_INTR_EN_REG_1			0xb894
+#define MIPI_INTR_EN_REG_1(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_INTR_EN_REG_1, _MIPIC_INTR_EN_REG_1)
 #define  RX_CONTENTION_DETECTED				(1 << 0)
 
 /* XXX: only pipe A ?!? */
-#define MIPIA_DBI_TYPEC_CTRL		(_MIPI_MMIO_BASE(dev_priv) + 0xb100)
+#define MIPIA_DBI_TYPEC_CTRL(display)		(_MIPI_MMIO_BASE(display) + 0xb100)
 #define  DBI_TYPEC_ENABLE				(1 << 31)
 #define  DBI_TYPEC_WIP					(1 << 30)
 #define  DBI_TYPEC_OPTION_SHIFT				28
@@ -406,9 +402,9 @@ 
 
 /* MIPI adapter registers */
 
-#define _MIPIA_CTRL			(_MIPI_MMIO_BASE(dev_priv) + 0xb104)
-#define _MIPIC_CTRL			(_MIPI_MMIO_BASE(dev_priv) + 0xb904)
-#define MIPI_CTRL(port)			_MMIO_MIPI(port, _MIPIA_CTRL, _MIPIC_CTRL)
+#define _MIPIA_CTRL				0xb104
+#define _MIPIC_CTRL				0xb904
+#define MIPI_CTRL(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_CTRL, _MIPIC_CTRL)
 #define  ESCAPE_CLOCK_DIVIDER_SHIFT			5 /* A only */
 #define  ESCAPE_CLOCK_DIVIDER_MASK			(3 << 5)
 #define  ESCAPE_CLOCK_DIVIDER_1				(0 << 5)
@@ -439,41 +435,41 @@ 
 #define  GLK_MIPIIO_PORT_POWERED			(1 << 1) /* RO */
 #define  GLK_MIPIIO_ENABLE				(1 << 0)
 
-#define _MIPIA_DATA_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb108)
-#define _MIPIC_DATA_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb908)
-#define MIPI_DATA_ADDRESS(port)		_MMIO_MIPI(port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
+#define _MIPIA_DATA_ADDRESS			0xb108
+#define _MIPIC_DATA_ADDRESS			0xb908
+#define MIPI_DATA_ADDRESS(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_ADDRESS, _MIPIC_DATA_ADDRESS)
 #define  DATA_MEM_ADDRESS_SHIFT				5
 #define  DATA_MEM_ADDRESS_MASK				(0x7ffffff << 5)
 #define  DATA_VALID					(1 << 0)
 
-#define _MIPIA_DATA_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb10c)
-#define _MIPIC_DATA_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb90c)
-#define MIPI_DATA_LENGTH(port)		_MMIO_MIPI(port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
+#define _MIPIA_DATA_LENGTH			0xb10c
+#define _MIPIC_DATA_LENGTH			0xb90c
+#define MIPI_DATA_LENGTH(display, port)		_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_DATA_LENGTH, _MIPIC_DATA_LENGTH)
 #define  DATA_LENGTH_SHIFT				0
 #define  DATA_LENGTH_MASK				(0xfffff << 0)
 
-#define _MIPIA_COMMAND_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb110)
-#define _MIPIC_COMMAND_ADDRESS		(_MIPI_MMIO_BASE(dev_priv) + 0xb910)
-#define MIPI_COMMAND_ADDRESS(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
+#define _MIPIA_COMMAND_ADDRESS			0xb110
+#define _MIPIC_COMMAND_ADDRESS			0xb910
+#define MIPI_COMMAND_ADDRESS(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_ADDRESS, _MIPIC_COMMAND_ADDRESS)
 #define  COMMAND_MEM_ADDRESS_SHIFT			5
 #define  COMMAND_MEM_ADDRESS_MASK			(0x7ffffff << 5)
 #define  AUTO_PWG_ENABLE				(1 << 2)
 #define  MEMORY_WRITE_DATA_FROM_PIPE_RENDERING		(1 << 1)
 #define  COMMAND_VALID					(1 << 0)
 
-#define _MIPIA_COMMAND_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb114)
-#define _MIPIC_COMMAND_LENGTH		(_MIPI_MMIO_BASE(dev_priv) + 0xb914)
-#define MIPI_COMMAND_LENGTH(port)	_MMIO_MIPI(port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
+#define _MIPIA_COMMAND_LENGTH			0xb114
+#define _MIPIC_COMMAND_LENGTH			0xb914
+#define MIPI_COMMAND_LENGTH(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_COMMAND_LENGTH, _MIPIC_COMMAND_LENGTH)
 #define  COMMAND_LENGTH_SHIFT(n)			(8 * (n)) /* n: 0...3 */
 #define  COMMAND_LENGTH_MASK(n)				(0xff << (8 * (n)))
 
-#define _MIPIA_READ_DATA_RETURN0	(_MIPI_MMIO_BASE(dev_priv) + 0xb118)
-#define _MIPIC_READ_DATA_RETURN0	(_MIPI_MMIO_BASE(dev_priv) + 0xb918)
-#define MIPI_READ_DATA_RETURN(port, n) _MMIO(_MIPI(port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) + 4 * (n)) /* n: 0...7 */
+#define _MIPIA_READ_DATA_RETURN0		0xb118
+#define _MIPIC_READ_DATA_RETURN0		0xb918
+#define MIPI_READ_DATA_RETURN(display, port, n)	_MMIO_MIPI(_MIPI_MMIO_BASE(display) + 4 * (n), port, _MIPIA_READ_DATA_RETURN0, _MIPIC_READ_DATA_RETURN0) /* n: 0...7 */
 
-#define _MIPIA_READ_DATA_VALID		(_MIPI_MMIO_BASE(dev_priv) + 0xb138)
-#define _MIPIC_READ_DATA_VALID		(_MIPI_MMIO_BASE(dev_priv) + 0xb938)
-#define MIPI_READ_DATA_VALID(port)	_MMIO_MIPI(port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
+#define _MIPIA_READ_DATA_VALID			0xb138
+#define _MIPIC_READ_DATA_VALID			0xb938
+#define MIPI_READ_DATA_VALID(display, port)	_MMIO_MIPI(_MIPI_MMIO_BASE(display), port, _MIPIA_READ_DATA_VALID, _MIPIC_READ_DATA_VALID)
 #define  READ_DATA_VALID(n)				(1 << (n))
 
 #endif /* __VLV_DSI_REGS_H__ */