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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
>> 
>> ---
>> 
>> 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@xxxxxxxxx>
>
>> ---
>>  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
>>




[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux