#include "meson_registers.h"
#include "meson_vclk.h"
-#include "meson_venc_cvbs.h"
+#include "meson_encoder_cvbs.h"
/* HHI VDAC Registers */
#define HHI_VDAC_CNTL0 0x2F4 /* 0xbd offset in data sheet */
#define HHI_VDAC_CNTL1 0x2F8 /* 0xbe offset in data sheet */
#define HHI_VDAC_CNTL1_G12A 0x2F0 /* 0xbe offset in data sheet */
-struct meson_venc_cvbs {
+struct meson_encoder_cvbs {
struct drm_encoder encoder;
struct drm_connector connector;
struct meson_drm *priv;
};
-#define encoder_to_meson_venc_cvbs(x) \
- container_of(x, struct meson_venc_cvbs, encoder)
+#define encoder_to_meson_encoder_cvbs(x) \
+ container_of(x, struct meson_encoder_cvbs, encoder)
-#define connector_to_meson_venc_cvbs(x) \
- container_of(x, struct meson_venc_cvbs, connector)
+#define connector_to_meson_encoder_cvbs(x) \
+ container_of(x, struct meson_encoder_cvbs, connector)
/* Supported Modes */
/* Encoder */
-static void meson_venc_cvbs_encoder_destroy(struct drm_encoder *encoder)
+static void meson_encoder_cvbs_encoder_destroy(struct drm_encoder *encoder)
{
drm_encoder_cleanup(encoder);
}
-static const struct drm_encoder_funcs meson_venc_cvbs_encoder_funcs = {
- .destroy = meson_venc_cvbs_encoder_destroy,
+static const struct drm_encoder_funcs meson_encoder_cvbs_encoder_funcs = {
+ .destroy = meson_encoder_cvbs_encoder_destroy,
};
-static int meson_venc_cvbs_encoder_atomic_check(struct drm_encoder *encoder,
+static int meson_encoder_cvbs_encoder_atomic_check(struct drm_encoder *encoder,
struct drm_crtc_state *crtc_state,
struct drm_connector_state *conn_state)
{
return -EINVAL;
}
-static void meson_venc_cvbs_encoder_disable(struct drm_encoder *encoder)
+static void meson_encoder_cvbs_encoder_disable(struct drm_encoder *encoder)
{
- struct meson_venc_cvbs *meson_venc_cvbs =
- encoder_to_meson_venc_cvbs(encoder);
- struct meson_drm *priv = meson_venc_cvbs->priv;
+ struct meson_encoder_cvbs *meson_encoder_cvbs =
+ encoder_to_meson_encoder_cvbs(encoder);
+ struct meson_drm *priv = meson_encoder_cvbs->priv;
/* Disable CVBS VDAC */
if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) {
}
}
-static void meson_venc_cvbs_encoder_enable(struct drm_encoder *encoder)
+static void meson_encoder_cvbs_encoder_enable(struct drm_encoder *encoder)
{
- struct meson_venc_cvbs *meson_venc_cvbs =
- encoder_to_meson_venc_cvbs(encoder);
- struct meson_drm *priv = meson_venc_cvbs->priv;
+ struct meson_encoder_cvbs *meson_encoder_cvbs =
+ encoder_to_meson_encoder_cvbs(encoder);
+ struct meson_drm *priv = meson_encoder_cvbs->priv;
/* VDAC0 source is not from ATV */
writel_bits_relaxed(VENC_VDAC_SEL_ATV_DMD, 0,
}
}
-static void meson_venc_cvbs_encoder_mode_set(struct drm_encoder *encoder,
+static void meson_encoder_cvbs_encoder_mode_set(struct drm_encoder *encoder,
struct drm_display_mode *mode,
struct drm_display_mode *adjusted_mode)
{
const struct meson_cvbs_mode *meson_mode = meson_cvbs_get_mode(mode);
- struct meson_venc_cvbs *meson_venc_cvbs =
- encoder_to_meson_venc_cvbs(encoder);
- struct meson_drm *priv = meson_venc_cvbs->priv;
+ struct meson_encoder_cvbs *meson_encoder_cvbs =
+ encoder_to_meson_encoder_cvbs(encoder);
+ struct meson_drm *priv = meson_encoder_cvbs->priv;
if (meson_mode) {
meson_venci_cvbs_mode_set(priv, meson_mode->enci);
}
static const struct drm_encoder_helper_funcs
- meson_venc_cvbs_encoder_helper_funcs = {
- .atomic_check = meson_venc_cvbs_encoder_atomic_check,
- .disable = meson_venc_cvbs_encoder_disable,
- .enable = meson_venc_cvbs_encoder_enable,
- .mode_set = meson_venc_cvbs_encoder_mode_set,
+ meson_encoder_cvbs_encoder_helper_funcs = {
+ .atomic_check = meson_encoder_cvbs_encoder_atomic_check,
+ .disable = meson_encoder_cvbs_encoder_disable,
+ .enable = meson_encoder_cvbs_encoder_enable,
+ .mode_set = meson_encoder_cvbs_encoder_mode_set,
};
-static bool meson_venc_cvbs_connector_is_available(struct meson_drm *priv)
+static bool meson_encoder_cvbs_connector_is_available(struct meson_drm *priv)
{
struct device_node *remote;
return true;
}
-int meson_venc_cvbs_create(struct meson_drm *priv)
+int meson_encoder_cvbs_init(struct meson_drm *priv)
{
struct drm_device *drm = priv->drm;
- struct meson_venc_cvbs *meson_venc_cvbs;
+ struct meson_encoder_cvbs *meson_encoder_cvbs;
struct drm_connector *connector;
struct drm_encoder *encoder;
int ret;
- if (!meson_venc_cvbs_connector_is_available(priv)) {
+ if (!meson_encoder_cvbs_connector_is_available(priv)) {
dev_info(drm->dev, "CVBS Output connector not available\n");
return 0;
}
- meson_venc_cvbs = devm_kzalloc(priv->dev, sizeof(*meson_venc_cvbs),
+ meson_encoder_cvbs = devm_kzalloc(priv->dev, sizeof(*meson_encoder_cvbs),
GFP_KERNEL);
- if (!meson_venc_cvbs)
+ if (!meson_encoder_cvbs)
return -ENOMEM;
- meson_venc_cvbs->priv = priv;
- encoder = &meson_venc_cvbs->encoder;
- connector = &meson_venc_cvbs->connector;
+ meson_encoder_cvbs->priv = priv;
+ encoder = &meson_encoder_cvbs->encoder;
+ connector = &meson_encoder_cvbs->connector;
/* Connector */
/* Encoder */
- drm_encoder_helper_add(encoder, &meson_venc_cvbs_encoder_helper_funcs);
+ drm_encoder_helper_add(encoder, &meson_encoder_cvbs_encoder_helper_funcs);
- ret = drm_encoder_init(drm, encoder, &meson_venc_cvbs_encoder_funcs,
- DRM_MODE_ENCODER_TVDAC, "meson_venc_cvbs");
+ ret = drm_encoder_init(drm, encoder, &meson_encoder_cvbs_encoder_funcs,
+ DRM_MODE_ENCODER_TVDAC, "meson_encoder_cvbs");
if (ret) {
dev_err(priv->dev, "Failed to init CVBS encoder\n");
return ret;