The patch replaces accesses to display->ctx pointer by container_of
construct. It will allow to remove ctx field in the future.

Signed-off-by: Andrzej Hajda <a.hajda at samsung.com>
---
 drivers/gpu/drm/exynos/exynos_hdmi.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index f8ed123..37bb423 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -213,6 +213,11 @@ struct hdmi_context {
        enum hdmi_type                  type;
 };

+static inline struct hdmi_context *display_to_hdmi(struct exynos_drm_display 
*d)
+{
+       return container_of(d, struct hdmi_context, display);
+}
+
 struct hdmiphy_config {
        int pixel_clock;
        u8 conf[32];
@@ -1128,7 +1133,7 @@ static struct drm_connector_helper_funcs 
hdmi_connector_helper_funcs = {
 static int hdmi_create_connector(struct exynos_drm_display *display,
                        struct drm_encoder *encoder)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);
        struct drm_connector *connector = &hdata->connector;
        int ret;

@@ -2005,7 +2010,7 @@ static void hdmi_v14_mode_set(struct hdmi_context *hdata,
 static void hdmi_mode_set(struct exynos_drm_display *display,
                        struct drm_display_mode *mode)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);
        struct drm_display_mode *m = mode;

        DRM_DEBUG_KMS("xres=%d, yres=%d, refresh=%d, intl=%s\n",
@@ -2024,7 +2029,7 @@ static void hdmi_mode_set(struct exynos_drm_display 
*display,

 static void hdmi_commit(struct exynos_drm_display *display)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);

        mutex_lock(&hdata->hdmi_mutex);
        if (!hdata->powered) {
@@ -2038,7 +2043,7 @@ static void hdmi_commit(struct exynos_drm_display 
*display)

 static void hdmi_poweron(struct exynos_drm_display *display)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);
        struct hdmi_resources *res = &hdata->res;

        mutex_lock(&hdata->hdmi_mutex);
@@ -2069,7 +2074,7 @@ static void hdmi_poweron(struct exynos_drm_display 
*display)

 static void hdmi_poweroff(struct exynos_drm_display *display)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);
        struct hdmi_resources *res = &hdata->res;

        mutex_lock(&hdata->hdmi_mutex);
@@ -2104,7 +2109,7 @@ out:

 static void hdmi_dpms(struct exynos_drm_display *display, int mode)
 {
-       struct hdmi_context *hdata = display->ctx;
+       struct hdmi_context *hdata = display_to_hdmi(display);
        struct drm_encoder *encoder = hdata->encoder;
        struct drm_crtc *crtc = encoder->crtc;
        struct drm_crtc_helper_funcs *funcs = NULL;
@@ -2481,7 +2486,6 @@ out_get_phy_port:
        }

        pm_runtime_enable(dev);
-       hdata->display.ctx = hdata;

        ret = component_add(&pdev->dev, &hdmi_component_ops);
        if (ret)
-- 
1.9.1

Reply via email to