Commit cb634d3c authored by Ville Syrjälä's avatar Ville Syrjälä

drm/i915: Switch to intel_ types in debugfs display_info

Switch to using intel_ types in the  debugfs display_info code.
Should make it easier to handle bigjoiner etc. in the future.
Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191129185434.25549-3-ville.syrjala@linux.intel.comReviewed-by: default avatarRamalingam C <ramalingam.c@intel.com>
parent 6d37bc73
...@@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused) ...@@ -2367,7 +2367,7 @@ static int i915_dmc_info(struct seq_file *m, void *unused)
} }
static void intel_seq_print_mode(struct seq_file *m, int tabs, static void intel_seq_print_mode(struct seq_file *m, int tabs,
struct drm_display_mode *mode) const struct drm_display_mode *mode)
{ {
int i; int i;
...@@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs, ...@@ -2378,51 +2378,52 @@ static void intel_seq_print_mode(struct seq_file *m, int tabs,
} }
static void intel_encoder_info(struct seq_file *m, static void intel_encoder_info(struct seq_file *m,
struct intel_crtc *intel_crtc, struct intel_crtc *crtc,
struct intel_encoder *intel_encoder) struct intel_encoder *encoder)
{ {
struct drm_i915_private *dev_priv = node_to_i915(m->private); struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct drm_device *dev = &dev_priv->drm; struct drm_device *dev = &dev_priv->drm;
struct drm_crtc *crtc = &intel_crtc->base; struct intel_connector *connector;
struct intel_connector *intel_connector;
struct drm_encoder *encoder;
encoder = &intel_encoder->base;
seq_printf(m, "\tencoder %d: type: %s, connectors:\n", seq_printf(m, "\tencoder %d: type: %s, connectors:\n",
encoder->base.id, encoder->name); encoder->base.base.id, encoder->base.name);
for_each_connector_on_encoder(dev, encoder, intel_connector) {
struct drm_connector *connector = &intel_connector->base; for_each_connector_on_encoder(dev, &encoder->base, connector) {
seq_printf(m, "\t\tconnector %d: type: %s, status: %s", seq_printf(m, "\t\tconnector %d: type: %s, status: %s",
connector->base.id, connector->base.base.id, connector->base.name,
connector->name, drm_get_connector_status_name(connector->base.status));
drm_get_connector_status_name(connector->status));
if (connector->status == connector_status_connected) { if (connector->base.status == connector_status_connected) {
struct drm_display_mode *mode = &crtc->mode; const struct intel_crtc_state *crtc_state =
to_intel_crtc_state(crtc->base.state);
seq_printf(m, ", mode:\n"); seq_printf(m, ", mode:\n");
intel_seq_print_mode(m, 2, mode); intel_seq_print_mode(m, 2, &crtc_state->hw.mode);
} else { } else {
seq_putc(m, '\n'); seq_putc(m, '\n');
} }
} }
} }
static void intel_crtc_info(struct seq_file *m, struct intel_crtc *intel_crtc) static void intel_crtc_info(struct seq_file *m, struct intel_crtc *crtc)
{ {
struct drm_i915_private *dev_priv = node_to_i915(m->private); struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct drm_device *dev = &dev_priv->drm; struct drm_device *dev = &dev_priv->drm;
struct drm_crtc *crtc = &intel_crtc->base; struct intel_encoder *encoder;
struct intel_encoder *intel_encoder; struct intel_plane *plane = to_intel_plane(crtc->base.primary);
struct drm_plane_state *plane_state = crtc->primary->state; const struct intel_plane_state *plane_state =
struct drm_framebuffer *fb = plane_state->fb; to_intel_plane_state(plane->base.state);
const struct drm_framebuffer *fb = plane_state->uapi.fb;
if (fb) if (fb)
seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n", seq_printf(m, "\tfb: %d, pos: %dx%d, size: %dx%d\n",
fb->base.id, plane_state->src_x >> 16, fb->base.id, plane_state->uapi.src_x >> 16,
plane_state->src_y >> 16, fb->width, fb->height); plane_state->uapi.src_y >> 16,
fb->width, fb->height);
else else
seq_puts(m, "\tprimary plane disabled\n"); seq_puts(m, "\tprimary plane disabled\n");
for_each_encoder_on_crtc(dev, crtc, intel_encoder) for_each_encoder_on_crtc(dev, &crtc->base, encoder)
intel_encoder_info(m, intel_crtc, intel_encoder); intel_encoder_info(m, crtc, encoder);
} }
static void intel_panel_info(struct seq_file *m, struct intel_panel *panel) static void intel_panel_info(struct seq_file *m, struct intel_panel *panel)
...@@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation) ...@@ -2589,66 +2590,63 @@ static void plane_rotation(char *buf, size_t bufsize, unsigned int rotation)
rotation); rotation);
} }
static void intel_plane_info(struct seq_file *m, struct intel_crtc *intel_crtc) static void intel_plane_info(struct seq_file *m, struct intel_crtc *crtc)
{ {
struct drm_i915_private *dev_priv = node_to_i915(m->private); struct drm_i915_private *dev_priv = node_to_i915(m->private);
struct drm_device *dev = &dev_priv->drm; struct drm_device *dev = &dev_priv->drm;
struct intel_plane *intel_plane; struct intel_plane *plane;
for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) { for_each_intel_plane_on_crtc(dev, crtc, plane) {
struct drm_plane_state *state; const struct intel_plane_state *plane_state =
struct drm_plane *plane = &intel_plane->base; to_intel_plane_state(plane->base.state);
const struct drm_framebuffer *fb;
struct drm_format_name_buf format_name; struct drm_format_name_buf format_name;
struct drm_rect src, dst; struct drm_rect src, dst;
char rot_str[48]; char rot_str[48];
if (!plane->state) { if (!plane_state) {
seq_puts(m, "plane->state is NULL!\n"); seq_puts(m, "plane->state is NULL!\n");
continue; continue;
} }
state = plane->state; src = drm_plane_state_src(&plane_state->uapi);
dst = drm_plane_state_dest(&plane_state->uapi);
src = drm_plane_state_src(state); fb = plane_state->uapi.fb;
dst = drm_plane_state_dest(state);
if (state->fb) { if (fb)
drm_get_format_name(state->fb->format->format, drm_get_format_name(fb->format->format, &format_name);
&format_name); else
} else {
sprintf(format_name.str, "N/A"); sprintf(format_name.str, "N/A");
}
plane_rotation(rot_str, sizeof(rot_str), state->rotation); plane_rotation(rot_str, sizeof(rot_str),
plane_state->uapi.rotation);
seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n", seq_printf(m, "\t--Plane id %d: type=%s, dst=" DRM_RECT_FMT ", src=" DRM_RECT_FP_FMT ", format=%s, rotation=%s\n",
plane->base.id, plane->base.base.id,
plane_type(intel_plane->base.type), plane_type(plane->base.type),
DRM_RECT_ARG(&dst), DRM_RECT_ARG(&dst),
DRM_RECT_FP_ARG(&src), DRM_RECT_FP_ARG(&src),
format_name.str, format_name.str, rot_str);
rot_str);
} }
} }
static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc) static void intel_scaler_info(struct seq_file *m, struct intel_crtc *crtc)
{ {
struct intel_crtc_state *pipe_config; const struct intel_crtc_state *crtc_state =
int num_scalers = intel_crtc->num_scalers; to_intel_crtc_state(crtc->base.state);
int num_scalers = crtc->num_scalers;
int i; int i;
pipe_config = to_intel_crtc_state(intel_crtc->base.state);
/* Not all platformas have a scaler */ /* Not all platformas have a scaler */
if (num_scalers) { if (num_scalers) {
seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d", seq_printf(m, "\tnum_scalers=%d, scaler_users=%x scaler_id=%d",
num_scalers, num_scalers,
pipe_config->scaler_state.scaler_users, crtc_state->scaler_state.scaler_users,
pipe_config->scaler_state.scaler_id); crtc_state->scaler_state.scaler_id);
for (i = 0; i < num_scalers; i++) { for (i = 0; i < num_scalers; i++) {
struct intel_scaler *sc = const struct intel_scaler *sc =
&pipe_config->scaler_state.scalers[i]; &crtc_state->scaler_state.scalers[i];
seq_printf(m, ", scalers[%d]: use=%s, mode=%x", seq_printf(m, ", scalers[%d]: use=%s, mode=%x",
i, yesno(sc->in_use), sc->mode); i, yesno(sc->in_use), sc->mode);
...@@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused) ...@@ -2673,18 +2671,19 @@ static int i915_display_info(struct seq_file *m, void *unused)
seq_printf(m, "CRTC info\n"); seq_printf(m, "CRTC info\n");
seq_printf(m, "---------\n"); seq_printf(m, "---------\n");
for_each_intel_crtc(dev, crtc) { for_each_intel_crtc(dev, crtc) {
struct intel_crtc_state *pipe_config; const struct intel_crtc_state *crtc_state;
drm_modeset_lock(&crtc->base.mutex, NULL); drm_modeset_lock(&crtc->base.mutex, NULL);
pipe_config = to_intel_crtc_state(crtc->base.state);
crtc_state = to_intel_crtc_state(crtc->base.state);
seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n", seq_printf(m, "CRTC %d: pipe: %c, active=%s, (size=%dx%d), dither=%s, bpp=%d\n",
crtc->base.base.id, pipe_name(crtc->pipe), crtc->base.base.id, pipe_name(crtc->pipe),
yesno(pipe_config->hw.active), yesno(crtc_state->hw.active),
pipe_config->pipe_src_w, pipe_config->pipe_src_h, crtc_state->pipe_src_w, crtc_state->pipe_src_h,
yesno(pipe_config->dither), pipe_config->pipe_bpp); yesno(crtc_state->dither), crtc_state->pipe_bpp);
if (pipe_config->hw.active) { if (crtc_state->hw.active) {
struct intel_plane *cursor = struct intel_plane *cursor =
to_intel_plane(crtc->base.cursor); to_intel_plane(crtc->base.cursor);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment