2017년 08월 24일 22:33에 Andrzej Hajda 이(가) 쓴 글: > All encoders share the same code to set encoders possible_crtcs field. > The patch creates helper to abstract out this code. > > Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> > --- > drivers/gpu/drm/exynos/exynos_dp.c | 15 +++++---------- > drivers/gpu/drm/exynos/exynos_drm_core.c | 1 + > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 21 ++++++++++++++++++--- > drivers/gpu/drm/exynos/exynos_drm_crtc.h | 10 +++++++--- > drivers/gpu/drm/exynos/exynos_drm_dpi.c | 12 ++++-------- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 13 ++++--------- > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 15 +++++---------- > drivers/gpu/drm/exynos/exynos_hdmi.c | 25 +++++++++---------------- > 8 files changed, 53 insertions(+), 59 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_dp.c b/drivers/gpu/drm/exynos/exynos_dp.c > index 385537b..39629e7 100644 > --- a/drivers/gpu/drm/exynos/exynos_dp.c > +++ b/drivers/gpu/drm/exynos/exynos_dp.c > @@ -155,7 +155,7 @@ static int exynos_dp_bind(struct device *dev, struct device *master, void *data) > struct exynos_dp_device *dp = dev_get_drvdata(dev); > struct drm_encoder *encoder = &dp->encoder; > struct drm_device *drm_dev = data; > - int pipe, ret; > + int ret; > > /* > * Just like the probe function said, we don't need the > @@ -179,20 +179,15 @@ static int exynos_dp_bind(struct device *dev, struct device *master, void *data) > return ret; > } > > - pipe = exynos_drm_crtc_get_pipe_from_type(drm_dev, > - EXYNOS_DISPLAY_TYPE_LCD); > - if (pipe < 0) > - return pipe; > - > - encoder->possible_crtcs = 1 << pipe; > - > - DRM_DEBUG_KMS("possible_crtcs = 0x%x\n", encoder->possible_crtcs); > - > drm_encoder_init(drm_dev, encoder, &exynos_dp_encoder_funcs, > DRM_MODE_ENCODER_TMDS, NULL); > > drm_encoder_helper_add(encoder, &exynos_dp_encoder_helper_funcs); > > + ret = exynos_drm_set_possible_crtcs(encoder, EXYNOS_DISPLAY_TYPE_LCD); > + if (ret < 0) > + return ret; > + > dp->plat_data.encoder = encoder; > > return analogix_dp_bind(dev, dp->drm_dev, &dp->plat_data); > diff --git a/drivers/gpu/drm/exynos/exynos_drm_core.c b/drivers/gpu/drm/exynos/exynos_drm_core.c > index edbd98f..b0c0621 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_core.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_core.c > @@ -13,6 +13,7 @@ > */ > > #include <drm/drmP.h> > + > #include "exynos_drm_drv.h" > #include "exynos_drm_crtc.h" > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > index c37078f..ac544de 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c > @@ -16,6 +16,7 @@ > #include <drm/drm_crtc_helper.h> > #include <drm/drm_atomic.h> > #include <drm/drm_atomic_helper.h> > +#include <drm/drm_encoder.h> > > #include "exynos_drm_crtc.h" > #include "exynos_drm_drv.h" > @@ -191,16 +192,30 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev, > return ERR_PTR(ret); > } > > -int exynos_drm_crtc_get_pipe_from_type(struct drm_device *drm_dev, > +struct exynos_drm_crtc *exynos_drm_crtc_get_by_type(struct drm_device *drm_dev, You don't have to modify this function because no user to use this function here. Moving this change to actual user, patch 4, would be better. Anyway trivial thing so I will merge it as-is. Thanks, Inki Dae -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html