Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: ui/ozone/platform/drm/gpu/drm_util.cc

Issue 1133053003: [Ozone-Drm] Move DRM utilities from gpu/ to common/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_util.h ('k') | ui/ozone/platform/drm/gpu/hardware_display_plane.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/ozone/platform/drm/gpu/drm_util.cc
diff --git a/ui/ozone/platform/drm/gpu/drm_util.cc b/ui/ozone/platform/drm/gpu/drm_util.cc
deleted file mode 100644
index ca7d5108d3d311e26f4a36f394eddc5783a9f464..0000000000000000000000000000000000000000
--- a/ui/ozone/platform/drm/gpu/drm_util.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ui/ozone/platform/drm/gpu/drm_util.h"
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <sys/mman.h>
-#include <xf86drmMode.h>
-
-#include "ui/ozone/platform/drm/gpu/drm_device.h"
-#include "ui/ozone/platform/drm/gpu/screen_manager.h"
-
-namespace ui {
-
-namespace {
-
-bool IsCrtcInUse(uint32_t crtc,
- const ScopedVector<HardwareDisplayControllerInfo>& displays) {
- for (size_t i = 0; i < displays.size(); ++i) {
- if (crtc == displays[i]->crtc()->crtc_id)
- return true;
- }
-
- return false;
-}
-
-uint32_t GetCrtc(int fd,
- drmModeConnector* connector,
- drmModeRes* resources,
- const ScopedVector<HardwareDisplayControllerInfo>& displays) {
- // If the connector already has an encoder try to re-use.
- if (connector->encoder_id) {
- ScopedDrmEncoderPtr encoder(drmModeGetEncoder(fd, connector->encoder_id));
- if (encoder && encoder->crtc_id && !IsCrtcInUse(encoder->crtc_id, displays))
- return encoder->crtc_id;
- }
-
- // Try to find an encoder for the connector.
- for (int i = 0; i < connector->count_encoders; ++i) {
- ScopedDrmEncoderPtr encoder(drmModeGetEncoder(fd, connector->encoders[i]));
- if (!encoder)
- continue;
-
- for (int j = 0; j < resources->count_crtcs; ++j) {
- // Check if the encoder is compatible with this CRTC
- if (!(encoder->possible_crtcs & (1 << j)) ||
- IsCrtcInUse(resources->crtcs[j], displays))
- continue;
-
- return resources->crtcs[j];
- }
- }
-
- return 0;
-}
-
-} // namespace
-
-HardwareDisplayControllerInfo::HardwareDisplayControllerInfo(
- ScopedDrmConnectorPtr connector,
- ScopedDrmCrtcPtr crtc)
- : connector_(connector.Pass()), crtc_(crtc.Pass()) {
-}
-
-HardwareDisplayControllerInfo::~HardwareDisplayControllerInfo() {
-}
-
-ScopedVector<HardwareDisplayControllerInfo> GetAvailableDisplayControllerInfos(
- int fd) {
- ScopedDrmResourcesPtr resources(drmModeGetResources(fd));
- DCHECK(resources) << "Failed to get DRM resources";
- ScopedVector<HardwareDisplayControllerInfo> displays;
-
- for (int i = 0; i < resources->count_connectors; ++i) {
- ScopedDrmConnectorPtr connector(
- drmModeGetConnector(fd, resources->connectors[i]));
-
- if (!connector || connector->connection != DRM_MODE_CONNECTED ||
- connector->count_modes == 0)
- continue;
-
- uint32_t crtc_id = GetCrtc(fd, connector.get(), resources.get(), displays);
- if (!crtc_id)
- continue;
-
- ScopedDrmCrtcPtr crtc(drmModeGetCrtc(fd, crtc_id));
- displays.push_back(
- new HardwareDisplayControllerInfo(connector.Pass(), crtc.Pass()));
- }
-
- return displays.Pass();
-}
-
-bool SameMode(const drmModeModeInfo& lhs, const drmModeModeInfo& rhs) {
- return lhs.clock == rhs.clock && lhs.hdisplay == rhs.hdisplay &&
- lhs.vdisplay == rhs.vdisplay && lhs.vrefresh == rhs.vrefresh &&
- lhs.hsync_start == rhs.hsync_start && lhs.hsync_end == rhs.hsync_end &&
- lhs.htotal == rhs.htotal && lhs.hskew == rhs.hskew &&
- lhs.vsync_start == rhs.vsync_start && lhs.vsync_end == rhs.vsync_end &&
- lhs.vtotal == rhs.vtotal && lhs.vscan == rhs.vscan &&
- lhs.flags == rhs.flags && strcmp(lhs.name, rhs.name) == 0;
-}
-
-void ForceInitializationOfPrimaryDisplay(const scoped_refptr<DrmDevice>& drm,
- ScreenManager* screen_manager) {
- VLOG(2) << "Forcing initialization of primary display.";
- ScopedVector<HardwareDisplayControllerInfo> displays =
- GetAvailableDisplayControllerInfos(drm->get_fd());
-
- if (displays.empty())
- return;
-
- screen_manager->AddDisplayController(drm, displays[0]->crtc()->crtc_id,
- displays[0]->connector()->connector_id);
- screen_manager->ConfigureDisplayController(
- drm, displays[0]->crtc()->crtc_id, displays[0]->connector()->connector_id,
- gfx::Point(), displays[0]->connector()->modes[0]);
-}
-
-} // namespace ui
« no previous file with comments | « ui/ozone/platform/drm/gpu/drm_util.h ('k') | ui/ozone/platform/drm/gpu/hardware_display_plane.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698