Commit e67f6037 authored by Neil Armstrong's avatar Neil Armstrong

drm/meson: split out encoder from meson_dw_hdmi

This moves all the non-DW-HDMI code where it should be:
an encoder in the drm/meson core driver.

The bridge functions are copied as-is, except:
- the encoder init uses the simple kms helper
- the mode_set has been moved to atomic_enable()
- debug prints are converted to dev_debg()

For now the bridge attach flags is 0, DRM_BRIDGE_ATTACH_NO_CONNECTOR
will be handled later.

The meson dw-hdmi glue is slightly fixed to live without the
encoder in the same driver.
Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
Acked-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
[narmstrong: fixed warning because missing meson_encoder_hdmi.h include]
Link: https://patchwork.freedesktop.org/patch/msgid/20211020123947.2585572-4-narmstrong@baylibre.com
parent d235a7c4
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
meson-drm-y := meson_drv.o meson_plane.o meson_crtc.o meson_venc_cvbs.o meson-drm-y := meson_drv.o meson_plane.o meson_crtc.o meson_venc_cvbs.o
meson-drm-y += meson_viu.o meson_vpp.o meson_venc.o meson_vclk.o meson_overlay.o meson-drm-y += meson_viu.o meson_vpp.o meson_venc.o meson_vclk.o meson_overlay.o
meson-drm-y += meson_rdma.o meson_osd_afbcd.o meson-drm-y += meson_rdma.o meson_osd_afbcd.o
meson-drm-y += meson_encoder_hdmi.o
obj-$(CONFIG_DRM_MESON) += meson-drm.o obj-$(CONFIG_DRM_MESON) += meson-drm.o
obj-$(CONFIG_DRM_MESON_DW_HDMI) += meson_dw_hdmi.o obj-$(CONFIG_DRM_MESON_DW_HDMI) += meson_dw_hdmi.o
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include "meson_osd_afbcd.h" #include "meson_osd_afbcd.h"
#include "meson_registers.h" #include "meson_registers.h"
#include "meson_venc_cvbs.h" #include "meson_venc_cvbs.h"
#include "meson_encoder_hdmi.h"
#include "meson_viu.h" #include "meson_viu.h"
#include "meson_vpp.h" #include "meson_vpp.h"
#include "meson_rdma.h" #include "meson_rdma.h"
...@@ -318,6 +319,10 @@ static int meson_drv_bind_master(struct device *dev, bool has_components) ...@@ -318,6 +319,10 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
} }
} }
ret = meson_encoder_hdmi_init(priv);
if (ret)
goto free_drm;
ret = meson_plane_create(priv); ret = meson_plane_create(priv);
if (ret) if (ret)
goto free_drm; goto free_drm;
......
This diff is collapsed.
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2021 BayLibre, SAS
* Author: Neil Armstrong <narmstrong@baylibre.com>
*/
#ifndef __MESON_ENCODER_HDMI_H
#define __MESON_ENCODER_HDMI_H
int meson_encoder_hdmi_init(struct meson_drm *priv);
#endif /* __MESON_ENCODER_HDMI_H */
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