From: Inki Dae <inki.dae@samsung.com>
To: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: sw0312.kim@samsung.com, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/exynos: use driver internal struct
Date: Wed, 04 Feb 2015 16:17:20 +0900 [thread overview]
Message-ID: <54D1C780.3020302@samsung.com> (raw)
In-Reply-To: <1422603782-29989-2-git-send-email-jy0922.shim@samsung.com>
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@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);
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-02-04 7:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-30 7:43 [PATCH] drm/exynos: fix wrong pipe calculation for crtc Joonyoung Shim
2015-01-30 7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
2015-01-30 14:58 ` Gustavo Padovan
2015-02-04 7:17 ` Inki Dae [this message]
2015-01-30 14:56 ` [PATCH] drm/exynos: fix wrong pipe calculation for crtc Gustavo Padovan
2015-02-04 7:13 ` Inki Dae
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54D1C780.3020302@samsung.com \
--to=inki.dae@samsung.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=jy0922.shim@samsung.com \
--cc=sw0312.kim@samsung.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.