From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 03:29:01 +0000 Subject: [PATCH] add lvds1024*800 --- kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c | 42 +++++++++++++++--------------------------- 1 files changed, 15 insertions(+), 27 deletions(-) diff --git a/kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c index 2f0babb..741323a 100644 --- a/kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c +++ b/kernel/drivers/gpu/drm/exynos/exynos_drm_dpi.c @@ -1,22 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-only /* * Exynos DRM Parallel output support. * * Copyright (c) 2014 Samsung Electronics Co., Ltd * * Contacts: Andrzej Hajda <a.hajda@samsung.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. */ - -#include <drm/drmP.h> -#include <drm/drm_crtc_helper.h> -#include <drm/drm_panel.h> -#include <drm/drm_atomic_helper.h> #include <linux/of_graph.h> #include <linux/regulator/consumer.h> + +#include <drm/drm_atomic_helper.h> +#include <drm/drm_panel.h> +#include <drm/drm_print.h> +#include <drm/drm_probe_helper.h> +#include <drm/drm_simple_kms_helper.h> #include <video/of_videomode.h> #include <video/videomode.h> @@ -44,11 +42,6 @@ static enum drm_connector_status exynos_dpi_detect(struct drm_connector *connector, bool force) { - struct exynos_dpi *ctx = connector_to_dpi(connector); - - if (ctx->panel && !ctx->panel->connector) - drm_panel_attach(ctx->panel, &ctx->connector); - return connector_status_connected; } @@ -77,7 +70,8 @@ mode = drm_mode_create(connector->dev); if (!mode) { - DRM_ERROR("failed to create a new display mode\n"); + DRM_DEV_ERROR(ctx->dev, + "failed to create a new display mode\n"); return 0; } drm_display_mode_from_videomode(ctx->vm, mode); @@ -87,7 +81,7 @@ } if (ctx->panel) - return ctx->panel->funcs->get_modes(ctx->panel); + return drm_panel_get_modes(ctx->panel, connector); return 0; } @@ -108,7 +102,8 @@ &exynos_dpi_connector_funcs, DRM_MODE_CONNECTOR_VGA); if (ret) { - DRM_ERROR("failed to initialize connector with drm\n"); + DRM_DEV_ERROR(ctx->dev, + "failed to initialize connector with drm\n"); return ret; } @@ -148,10 +143,6 @@ .mode_set = exynos_dpi_mode_set, .enable = exynos_dpi_enable, .disable = exynos_dpi_disable, -}; - -static const struct drm_encoder_funcs exynos_dpi_encoder_funcs = { - .destroy = drm_encoder_cleanup, }; enum { @@ -202,8 +193,7 @@ { int ret; - drm_encoder_init(dev, encoder, &exynos_dpi_encoder_funcs, - DRM_MODE_ENCODER_TMDS, NULL); + drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); drm_encoder_helper_add(encoder, &exynos_dpi_encoder_helper_funcs); @@ -213,7 +203,8 @@ ret = exynos_dpi_create_connector(encoder); if (ret) { - DRM_ERROR("failed to create connector ret = %d\n", ret); + DRM_DEV_ERROR(encoder_to_dpi(encoder)->dev, + "failed to create connector ret = %d\n", ret); drm_encoder_cleanup(encoder); return ret; } @@ -252,9 +243,6 @@ struct exynos_dpi *ctx = encoder_to_dpi(encoder); exynos_dpi_disable(&ctx->encoder); - - if (ctx->panel) - drm_panel_detach(ctx->panel); return 0; } -- Gitblit v1.6.2