On 2015년 01월 30일 16:43, Joonyoung Shim wrote: > Use driver internal struct as argument instead of struct exynos_drm_crtc > except functions of exynos_drm_crtc_ops and instead of struct > exynos_drm_display except functions of exynos_drm_display_ops. Agree. Reasonable to use a driver context as an argument in case of internal functions. Applied. Thanks, Inki Dae > > It can reduce unnecessary variable declaration. > > Signed-off-by: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> > --- > drivers/gpu/drm/exynos/exynos_dp_core.c | 14 ++++------- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 43 +++++++++++++------------------- > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 19 ++++++-------- > drivers/gpu/drm/exynos/exynos_hdmi.c | 12 ++++----- > drivers/gpu/drm/exynos/exynos_mixer.c | 26 ++++++++----------- > 5 files changed, 47 insertions(+), 67 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c > index 34d46aa..11fd893 100644 > --- a/drivers/gpu/drm/exynos/exynos_dp_core.c > +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c > @@ -1067,10 +1067,8 @@ static void exynos_dp_phy_exit(struct exynos_dp_device *dp) > phy_power_off(dp->phy); > } > > -static void exynos_dp_poweron(struct exynos_drm_display *display) > +static void exynos_dp_poweron(struct exynos_dp_device *dp) > { > - struct exynos_dp_device *dp = display_to_dp(display); > - > if (dp->dpms_mode == DRM_MODE_DPMS_ON) > return; > > @@ -1085,13 +1083,11 @@ static void exynos_dp_poweron(struct exynos_drm_display *display) > exynos_dp_phy_init(dp); > exynos_dp_init_dp(dp); > enable_irq(dp->irq); > - exynos_dp_commit(display); > + exynos_dp_commit(&dp->display); > } > > -static void exynos_dp_poweroff(struct exynos_drm_display *display) > +static void exynos_dp_poweroff(struct exynos_dp_device *dp) > { > - struct exynos_dp_device *dp = display_to_dp(display); > - > if (dp->dpms_mode != DRM_MODE_DPMS_ON) > return; > > @@ -1119,12 +1115,12 @@ static void exynos_dp_dpms(struct exynos_drm_display *display, int mode) > > switch (mode) { > case DRM_MODE_DPMS_ON: > - exynos_dp_poweron(display); > + exynos_dp_poweron(dp); > break; > case DRM_MODE_DPMS_STANDBY: > case DRM_MODE_DPMS_SUSPEND: > case DRM_MODE_DPMS_OFF: > - exynos_dp_poweroff(display); > + exynos_dp_poweroff(dp); > break; > default: > break; > diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > index 39f7fa7..925fc69 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c > @@ -253,9 +253,8 @@ static void fimd_enable_shadow_channel_path(struct fimd_context *ctx, int win, > writel(val, ctx->regs + SHADOWCON); > } > > -static void fimd_clear_channel(struct exynos_drm_crtc *crtc) > +static void fimd_clear_channel(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > int win, ch_enabled = 0; > > DRM_DEBUG_KMS("%s\n", __FILE__); > @@ -280,7 +279,7 @@ static void fimd_clear_channel(struct exynos_drm_crtc *crtc) > unsigned int state = ctx->suspended; > > ctx->suspended = 0; > - fimd_wait_for_vblank(crtc); > + fimd_wait_for_vblank(ctx->crtc); > ctx->suspended = state; > } > } > @@ -302,7 +301,7 @@ static int fimd_ctx_initialize(struct fimd_context *ctx, > * If any channel is already active, iommu will throw > * a PAGE FAULT when enabled. So clear any channel if enabled. > */ > - fimd_clear_channel(ctx->crtc); > + fimd_clear_channel(ctx); > ret = drm_iommu_attach_device(ctx->drm_dev, ctx->dev); > if (ret) { > DRM_ERROR("drm_iommu_attach failed.\n"); > @@ -823,9 +822,8 @@ static void fimd_win_disable(struct exynos_drm_crtc *crtc, int zpos) > win_data->enabled = false; > } > > -static void fimd_window_suspend(struct exynos_drm_crtc *crtc) > +static void fimd_window_suspend(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > struct fimd_win_data *win_data; > int i; > > @@ -833,13 +831,12 @@ static void fimd_window_suspend(struct exynos_drm_crtc *crtc) > win_data = &ctx->win_data[i]; > win_data->resume = win_data->enabled; > if (win_data->enabled) > - fimd_win_disable(crtc, i); > + fimd_win_disable(ctx->crtc, i); > } > } > > -static void fimd_window_resume(struct exynos_drm_crtc *crtc) > +static void fimd_window_resume(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > struct fimd_win_data *win_data; > int i; > > @@ -850,26 +847,24 @@ static void fimd_window_resume(struct exynos_drm_crtc *crtc) > } > } > > -static void fimd_apply(struct exynos_drm_crtc *crtc) > +static void fimd_apply(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > struct fimd_win_data *win_data; > int i; > > for (i = 0; i < WINDOWS_NR; i++) { > win_data = &ctx->win_data[i]; > if (win_data->enabled) > - fimd_win_commit(crtc, i); > + fimd_win_commit(ctx->crtc, i); > else > - fimd_win_disable(crtc, i); > + fimd_win_disable(ctx->crtc, i); > } > > - fimd_commit(crtc); > + fimd_commit(ctx->crtc); > } > > -static int fimd_poweron(struct exynos_drm_crtc *crtc) > +static int fimd_poweron(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > int ret; > > if (!ctx->suspended) > @@ -893,16 +888,16 @@ static int fimd_poweron(struct exynos_drm_crtc *crtc) > > /* if vblank was enabled status, enable it again. */ > if (test_and_clear_bit(0, &ctx->irq_flags)) { > - ret = fimd_enable_vblank(crtc); > + ret = fimd_enable_vblank(ctx->crtc); > if (ret) { > DRM_ERROR("Failed to re-enable vblank [%d]\n", ret); > goto enable_vblank_err; > } > } > > - fimd_window_resume(crtc); > + fimd_window_resume(ctx); > > - fimd_apply(crtc); > + fimd_apply(ctx); > > return 0; > > @@ -915,10 +910,8 @@ bus_clk_err: > return ret; > } > > -static int fimd_poweroff(struct exynos_drm_crtc *crtc) > +static int fimd_poweroff(struct fimd_context *ctx) > { > - struct fimd_context *ctx = crtc->ctx; > - > if (ctx->suspended) > return 0; > > @@ -927,7 +920,7 @@ static int fimd_poweroff(struct exynos_drm_crtc *crtc) > * suspend that connector. Otherwise we might try to scan from > * a destroyed buffer later. > */ > - fimd_window_suspend(crtc); > + fimd_window_suspend(ctx); > > clk_disable_unprepare(ctx->lcd_clk); > clk_disable_unprepare(ctx->bus_clk); > @@ -944,12 +937,12 @@ static void fimd_dpms(struct exynos_drm_crtc *crtc, int mode) > > switch (mode) { > case DRM_MODE_DPMS_ON: > - fimd_poweron(crtc); > + fimd_poweron(crtc->ctx); > break; > case DRM_MODE_DPMS_STANDBY: > case DRM_MODE_DPMS_SUSPEND: > case DRM_MODE_DPMS_OFF: > - fimd_poweroff(crtc); > + fimd_poweroff(crtc->ctx); > break; > default: > DRM_DEBUG_KMS("unspecified mode %d\n", mode); > diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > index fb68d3c..b886972 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c > @@ -97,17 +97,16 @@ static const char fake_edid_info[] = { > 0x00, 0x00, 0x00, 0x06 > }; > > -static void vidi_apply(struct exynos_drm_crtc *crtc) > +static void vidi_apply(struct vidi_context *ctx) > { > - struct vidi_context *ctx = crtc->ctx; > - struct exynos_drm_crtc_ops *crtc_ops = crtc->ops; > + struct exynos_drm_crtc_ops *crtc_ops = ctx->crtc->ops; > struct vidi_win_data *win_data; > int i; > > for (i = 0; i < WINDOWS_NR; i++) { > win_data = &ctx->win_data[i]; > if (win_data->enabled && (crtc_ops && crtc_ops->win_commit)) > - crtc_ops->win_commit(crtc, i); > + crtc_ops->win_commit(ctx->crtc, i); > } > } > > @@ -240,10 +239,8 @@ static void vidi_win_disable(struct exynos_drm_crtc *crtc, int zpos) > /* TODO. */ > } > > -static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable) > +static int vidi_power_on(struct vidi_context *ctx, bool enable) > { > - struct vidi_context *ctx = crtc->ctx; > - > DRM_DEBUG_KMS("%s\n", __FILE__); > > if (enable != false && enable != true) > @@ -254,9 +251,9 @@ static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable) > > /* if vblank was enabled status, enable it again. */ > if (test_and_clear_bit(0, &ctx->irq_flags)) > - vidi_enable_vblank(crtc); > + vidi_enable_vblank(ctx->crtc); > > - vidi_apply(crtc); > + vidi_apply(ctx); > } else { > ctx->suspended = true; > } > @@ -274,12 +271,12 @@ static void vidi_dpms(struct exynos_drm_crtc *crtc, int mode) > > switch (mode) { > case DRM_MODE_DPMS_ON: > - vidi_power_on(crtc, true); > + vidi_power_on(ctx, true); > break; > case DRM_MODE_DPMS_STANDBY: > case DRM_MODE_DPMS_SUSPEND: > case DRM_MODE_DPMS_OFF: > - vidi_power_on(crtc, false); > + vidi_power_on(ctx, false); > break; > default: > DRM_DEBUG_KMS("unspecified mode %d\n", mode); > diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c > index 98051e8..229b361 100644 > --- a/drivers/gpu/drm/exynos/exynos_hdmi.c > +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c > @@ -2032,9 +2032,8 @@ static void hdmi_commit(struct exynos_drm_display *display) > hdmi_conf_apply(hdata); > } > > -static void hdmi_poweron(struct exynos_drm_display *display) > +static void hdmi_poweron(struct hdmi_context *hdata) > { > - struct hdmi_context *hdata = display_to_hdmi(display); > struct hdmi_resources *res = &hdata->res; > > mutex_lock(&hdata->hdmi_mutex); > @@ -2060,12 +2059,11 @@ static void hdmi_poweron(struct exynos_drm_display *display) > clk_prepare_enable(res->sclk_hdmi); > > hdmiphy_poweron(hdata); > - hdmi_commit(display); > + hdmi_commit(&hdata->display); > } > > -static void hdmi_poweroff(struct exynos_drm_display *display) > +static void hdmi_poweroff(struct hdmi_context *hdata) > { > - struct hdmi_context *hdata = display_to_hdmi(display); > struct hdmi_resources *res = &hdata->res; > > mutex_lock(&hdata->hdmi_mutex); > @@ -2109,7 +2107,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode) > > switch (mode) { > case DRM_MODE_DPMS_ON: > - hdmi_poweron(display); > + hdmi_poweron(hdata); > break; > case DRM_MODE_DPMS_STANDBY: > case DRM_MODE_DPMS_SUSPEND: > @@ -2128,7 +2126,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode) > if (funcs && funcs->dpms) > (*funcs->dpms)(crtc, mode); > > - hdmi_poweroff(display); > + hdmi_poweroff(hdata); > break; > default: > DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode); > diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c > index a3a5db3..39d37d6 100644 > --- a/drivers/gpu/drm/exynos/exynos_mixer.c > +++ b/drivers/gpu/drm/exynos/exynos_mixer.c > @@ -1054,23 +1054,21 @@ static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc) > drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe); > } > > -static void mixer_window_suspend(struct exynos_drm_crtc *crtc) > +static void mixer_window_suspend(struct mixer_context *ctx) > { > - struct mixer_context *ctx = crtc->ctx; > struct hdmi_win_data *win_data; > int i; > > for (i = 0; i < MIXER_WIN_NR; i++) { > win_data = &ctx->win_data[i]; > win_data->resume = win_data->enabled; > - mixer_win_disable(crtc, i); > + mixer_win_disable(ctx->crtc, i); > } > - mixer_wait_for_vblank(crtc); > + mixer_wait_for_vblank(ctx->crtc); > } > > -static void mixer_window_resume(struct exynos_drm_crtc *crtc) > +static void mixer_window_resume(struct mixer_context *ctx) > { > - struct mixer_context *ctx = crtc->ctx; > struct hdmi_win_data *win_data; > int i; > > @@ -1079,13 +1077,12 @@ static void mixer_window_resume(struct exynos_drm_crtc *crtc) > win_data->enabled = win_data->resume; > win_data->resume = false; > if (win_data->enabled) > - mixer_win_commit(crtc, i); > + mixer_win_commit(ctx->crtc, i); > } > } > > -static void mixer_poweron(struct exynos_drm_crtc *crtc) > +static void mixer_poweron(struct mixer_context *ctx) > { > - struct mixer_context *ctx = crtc->ctx; > struct mixer_resources *res = &ctx->mixer_res; > > mutex_lock(&ctx->mixer_mutex); > @@ -1115,12 +1112,11 @@ static void mixer_poweron(struct exynos_drm_crtc *crtc) > mixer_reg_write(res, MXR_INT_EN, ctx->int_en); > mixer_win_reset(ctx); > > - mixer_window_resume(crtc); > + mixer_window_resume(ctx); > } > > -static void mixer_poweroff(struct exynos_drm_crtc *crtc) > +static void mixer_poweroff(struct mixer_context *ctx) > { > - struct mixer_context *ctx = crtc->ctx; > struct mixer_resources *res = &ctx->mixer_res; > > mutex_lock(&ctx->mixer_mutex); > @@ -1131,7 +1127,7 @@ static void mixer_poweroff(struct exynos_drm_crtc *crtc) > mutex_unlock(&ctx->mixer_mutex); > > mixer_stop(ctx); > - mixer_window_suspend(crtc); > + mixer_window_suspend(ctx); > > ctx->int_en = mixer_reg_read(res, MXR_INT_EN); > > @@ -1154,12 +1150,12 @@ static void mixer_dpms(struct exynos_drm_crtc *crtc, int mode) > { > switch (mode) { > case DRM_MODE_DPMS_ON: > - mixer_poweron(crtc); > + mixer_poweron(crtc->ctx); > break; > case DRM_MODE_DPMS_STANDBY: > case DRM_MODE_DPMS_SUSPEND: > case DRM_MODE_DPMS_OFF: > - mixer_poweroff(crtc); > + mixer_poweroff(crtc->ctx); > break; > default: > DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode); > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel