forked from Minki/linux
drm/exynos: Remove the exynos_drm_connector shim
This path removes the exynos_drm_connector code since it was just passing hooks through display_ops. The individual device drivers are now responsible for implementing drm_connector directly. Signed-off-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
1634ba256d
commit
90672f92ca
@ -3,7 +3,7 @@
|
||||
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
|
||||
|
||||
ccflags-y := -Iinclude/drm -Idrivers/gpu/drm/exynos
|
||||
exynosdrm-y := exynos_drm_drv.o exynos_drm_encoder.o exynos_drm_connector.o \
|
||||
exynosdrm-y := exynos_drm_drv.o exynos_drm_encoder.o \
|
||||
exynos_drm_crtc.o exynos_drm_fbdev.o exynos_drm_fb.o \
|
||||
exynos_drm_buf.o exynos_drm_gem.o exynos_drm_core.o \
|
||||
exynos_drm_plane.o
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include "exynos_drm_drv.h"
|
||||
#include "exynos_drm_crtc.h"
|
||||
#include "exynos_drm_encoder.h"
|
||||
#include "exynos_drm_connector.h"
|
||||
#include "exynos_drm_fbdev.h"
|
||||
|
||||
static LIST_HEAD(exynos_drm_subdrv_list);
|
||||
@ -27,7 +26,6 @@ static int exynos_drm_create_enc_conn(struct drm_device *dev,
|
||||
struct exynos_drm_display *display)
|
||||
{
|
||||
struct drm_encoder *encoder;
|
||||
struct drm_connector *connector;
|
||||
struct exynos_drm_manager *manager;
|
||||
int ret;
|
||||
unsigned long possible_crtcs = 0;
|
||||
@ -44,23 +42,14 @@ static int exynos_drm_create_enc_conn(struct drm_device *dev,
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
if (display->ops->create_connector)
|
||||
return display->ops->create_connector(display, encoder);
|
||||
display->encoder = encoder;
|
||||
|
||||
/*
|
||||
* create and initialize a connector for this sub driver and
|
||||
* attach the encoder created above to the connector.
|
||||
*/
|
||||
connector = exynos_drm_connector_create(dev, encoder);
|
||||
if (!connector) {
|
||||
DRM_ERROR("failed to create connector\n");
|
||||
ret = -EFAULT;
|
||||
ret = display->ops->create_connector(display, encoder);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to create connector ret = %d\n", ret);
|
||||
goto err_destroy_encoder;
|
||||
}
|
||||
|
||||
display->encoder = encoder;
|
||||
display->connector = connector;
|
||||
|
||||
return 0;
|
||||
|
||||
err_destroy_encoder:
|
||||
|
@ -124,10 +124,6 @@ struct exynos_drm_overlay {
|
||||
*
|
||||
* @initialize: initializes the display with drm_dev
|
||||
* @remove: cleans up the display for removal
|
||||
* @is_connected: check for that display is connected or not.
|
||||
* @get_max_resol: get maximum resolution to specific hardware.
|
||||
* @get_edid: get edid modes from display driver.
|
||||
* @get_panel: get panel object from display driver.
|
||||
* @mode_fixup: fix mode data comparing to hw specific display mode.
|
||||
* @mode_set: convert drm_display_mode to hw specific display mode and
|
||||
* would be called by encoder->mode_set().
|
||||
@ -142,13 +138,6 @@ struct exynos_drm_display_ops {
|
||||
int (*create_connector)(struct exynos_drm_display *display,
|
||||
struct drm_encoder *encoder);
|
||||
void (*remove)(struct exynos_drm_display *display);
|
||||
bool (*is_connected)(struct exynos_drm_display *display);
|
||||
void (*get_max_resol)(struct exynos_drm_display *display,
|
||||
unsigned int *width,
|
||||
unsigned int *height);
|
||||
struct edid *(*get_edid)(struct exynos_drm_display *display,
|
||||
struct drm_connector *connector);
|
||||
void *(*get_panel)(struct exynos_drm_display *display);
|
||||
void (*mode_fixup)(struct exynos_drm_display *display,
|
||||
struct drm_connector *connector,
|
||||
const struct drm_display_mode *mode,
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
#include "exynos_drm_drv.h"
|
||||
#include "exynos_drm_encoder.h"
|
||||
#include "exynos_drm_connector.h"
|
||||
|
||||
#define to_exynos_encoder(x) container_of(x, struct exynos_drm_encoder,\
|
||||
drm_encoder)
|
||||
|
Loading…
Reference in New Issue
Block a user