[PATCH] drm/exynos: use driver internal struct
Inki Dae
inki.dae at samsung.com
Tue Feb 3 23:17:20 PST 2015
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 at samsung.com>
> ---
> 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);
>
More information about the dri-devel
mailing list