diff options
author | Jani Nikula <jani.nikula@intel.com> | 2019-06-13 11:44:15 +0300 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2019-06-17 11:25:06 +0300 |
commit | 379bc100232acd45b19421bd0748f9f549da8a8a (patch) | |
tree | 86834fab64b369d73ec634e48c588a9a7237264c /drivers/gpu/drm/i915/intel_dsi.c | |
parent | drm/i915: make intel_sdvo_regs.h self-contained (diff) | |
download | linux-dev-379bc100232acd45b19421bd0748f9f549da8a8a.tar.xz linux-dev-379bc100232acd45b19421bd0748f9f549da8a8a.zip |
drm/i915: move modesetting output/encoder code under display/
Add a new subdirectory for display code, and start off by moving
modesetting output/encoder code. Judging by the include changes, this is
a surprisingly clean operation.
v2:
- move intel_sdvo_regs.h too
- use tabs for Makefile file lists and sort them
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Acked-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190613084416.6794-2-jani.nikula@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dsi.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dsi.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c deleted file mode 100644 index 5fec02aceaed..000000000000 --- a/drivers/gpu/drm/i915/intel_dsi.c +++ /dev/null @@ -1,128 +0,0 @@ -// SPDX-License-Identifier: MIT -/* - * Copyright © 2018 Intel Corporation - */ - -#include <drm/drm_mipi_dsi.h> -#include "intel_dsi.h" - -int intel_dsi_bitrate(const struct intel_dsi *intel_dsi) -{ - int bpp = mipi_dsi_pixel_format_to_bpp(intel_dsi->pixel_format); - - if (WARN_ON(bpp < 0)) - bpp = 16; - - return intel_dsi->pclk * bpp / intel_dsi->lane_count; -} - -int intel_dsi_tlpx_ns(const struct intel_dsi *intel_dsi) -{ - switch (intel_dsi->escape_clk_div) { - default: - case 0: - return 50; - case 1: - return 100; - case 2: - return 200; - } -} - -int intel_dsi_get_modes(struct drm_connector *connector) -{ - struct intel_connector *intel_connector = to_intel_connector(connector); - struct drm_display_mode *mode; - - DRM_DEBUG_KMS("\n"); - - if (!intel_connector->panel.fixed_mode) { - DRM_DEBUG_KMS("no fixed mode\n"); - return 0; - } - - mode = drm_mode_duplicate(connector->dev, - intel_connector->panel.fixed_mode); - if (!mode) { - DRM_DEBUG_KMS("drm_mode_duplicate failed\n"); - return 0; - } - - drm_mode_probed_add(connector, mode); - return 1; -} - -enum drm_mode_status intel_dsi_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) -{ - struct intel_connector *intel_connector = to_intel_connector(connector); - const struct drm_display_mode *fixed_mode = intel_connector->panel.fixed_mode; - int max_dotclk = to_i915(connector->dev)->max_dotclk_freq; - - DRM_DEBUG_KMS("\n"); - - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - - if (fixed_mode) { - if (mode->hdisplay > fixed_mode->hdisplay) - return MODE_PANEL; - if (mode->vdisplay > fixed_mode->vdisplay) - return MODE_PANEL; - if (fixed_mode->clock > max_dotclk) - return MODE_CLOCK_HIGH; - } - - return MODE_OK; -} - -struct intel_dsi_host *intel_dsi_host_init(struct intel_dsi *intel_dsi, - const struct mipi_dsi_host_ops *funcs, - enum port port) -{ - struct intel_dsi_host *host; - struct mipi_dsi_device *device; - - host = kzalloc(sizeof(*host), GFP_KERNEL); - if (!host) - return NULL; - - host->base.ops = funcs; - host->intel_dsi = intel_dsi; - host->port = port; - - /* - * We should call mipi_dsi_host_register(&host->base) here, but we don't - * have a host->dev, and we don't have OF stuff either. So just use the - * dsi framework as a library and hope for the best. Create the dsi - * devices by ourselves here too. Need to be careful though, because we - * don't initialize any of the driver model devices here. - */ - device = kzalloc(sizeof(*device), GFP_KERNEL); - if (!device) { - kfree(host); - return NULL; - } - - device->host = &host->base; - host->device = device; - - return host; -} - -enum drm_panel_orientation -intel_dsi_get_panel_orientation(struct intel_connector *connector) -{ - struct drm_i915_private *dev_priv = to_i915(connector->base.dev); - enum drm_panel_orientation orientation; - - orientation = dev_priv->vbt.dsi.orientation; - if (orientation != DRM_MODE_PANEL_ORIENTATION_UNKNOWN) - return orientation; - - orientation = dev_priv->vbt.orientation; - if (orientation != DRM_MODE_PANEL_ORIENTATION_UNKNOWN) - return orientation; - - return DRM_MODE_PANEL_ORIENTATION_NORMAL; -} |