Skip to content

Commit

Permalink
drm/i915/dsi: move dpi_send_cmd() to intel_dsi.c and make it static
Browse files Browse the repository at this point in the history
No functional changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-By: Shobhit Kumar <shobhit.kumar@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Jani Nikula authored and Daniel Vetter committed Jan 29, 2015
1 parent 55a194d commit a2581a9
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 41 deletions.
39 changes: 37 additions & 2 deletions drivers/gpu/drm/i915/intel_dsi.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,41 @@ static struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi,
return host;
}

/*
* send a video mode command
*
* XXX: commands with data in MIPI_DPI_DATA?
*/
static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
enum port port)
{
struct drm_encoder *encoder = &intel_dsi->base.base;
struct drm_device *dev = encoder->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
u32 mask;

/* XXX: pipe, hs */
if (hs)
cmd &= ~DPI_LP_MODE;
else
cmd |= DPI_LP_MODE;

/* clear bit */
I915_WRITE(MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);

/* XXX: old code skips write if control unchanged */
if (cmd == I915_READ(MIPI_DPI_CONTROL(port)))
DRM_ERROR("Same special packet %02x twice in a row.\n", cmd);

I915_WRITE(MIPI_DPI_CONTROL(port), cmd);

mask = SPL_PKT_SENT_INTERRUPT;
if (wait_for((I915_READ(MIPI_INTR_STAT(port)) & mask) == mask, 100))
DRM_ERROR("Video mode command 0x%08x send failed.\n", cmd);

return 0;
}

static void band_gap_reset(struct drm_i915_private *dev_priv)
{
mutex_lock(&dev_priv->dpio_lock);
Expand Down Expand Up @@ -358,7 +393,7 @@ static void intel_dsi_enable(struct intel_encoder *encoder)
} else {
msleep(20); /* XXX */
for_each_dsi_port(port, intel_dsi->ports)
dpi_send_cmd(intel_dsi, TURN_ON, DPI_LP_MODE_EN, port);
dpi_send_cmd(intel_dsi, TURN_ON, false, port);
msleep(100);

drm_panel_enable(intel_dsi->panel);
Expand Down Expand Up @@ -431,7 +466,7 @@ static void intel_dsi_pre_disable(struct intel_encoder *encoder)
if (is_vid_mode(intel_dsi)) {
/* Send Shutdown command to the panel in LP mode */
for_each_dsi_port(port, intel_dsi->ports)
dpi_send_cmd(intel_dsi, SHUTDOWN, DPI_LP_MODE_EN, port);
dpi_send_cmd(intel_dsi, SHUTDOWN, false, port);
msleep(10);
}
}
Expand Down
34 changes: 0 additions & 34 deletions drivers/gpu/drm/i915/intel_dsi_cmd.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,37 +115,3 @@ void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable,

intel_dsi->hs = enable;
}

/*
* send a video mode command
*
* XXX: commands with data in MIPI_DPI_DATA?
*/
int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs, enum port port)
{
struct drm_encoder *encoder = &intel_dsi->base.base;
struct drm_device *dev = encoder->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
u32 mask;

/* XXX: pipe, hs */
if (hs)
cmd &= ~DPI_LP_MODE;
else
cmd |= DPI_LP_MODE;

/* clear bit */
I915_WRITE(MIPI_INTR_STAT(port), SPL_PKT_SENT_INTERRUPT);

/* XXX: old code skips write if control unchanged */
if (cmd == I915_READ(MIPI_DPI_CONTROL(port)))
DRM_ERROR("Same special packet %02x twice in a row.\n", cmd);

I915_WRITE(MIPI_DPI_CONTROL(port), cmd);

mask = SPL_PKT_SENT_INTERRUPT;
if (wait_for((I915_READ(MIPI_INTR_STAT(port)) & mask) == mask, 100))
DRM_ERROR("Video mode command 0x%08x send failed.\n", cmd);

return 0;
}
5 changes: 0 additions & 5 deletions drivers/gpu/drm/i915/intel_dsi_cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,7 @@
#include "intel_drv.h"
#include "intel_dsi.h"

#define DPI_LP_MODE_EN false
#define DPI_HS_MODE_EN true

void dsi_hs_mode_enable(struct intel_dsi *intel_dsi, bool enable,
enum port port);

int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs, enum port port);

#endif /* _INTEL_DSI_DSI_H */

0 comments on commit a2581a9

Please sign in to comment.