[PATCH v3 05/32] drm/exynos: hdmi: Implement initialize op for hdmi

Sean Paul seanpaul at chromium.org
Fri Nov 1 20:54:31 CET 2013


On Thu, Oct 31, 2013 at 7:53 PM, Tomasz Figa <tomasz.figa at gmail.com> wrote:
> Hi Sean,
>
> On Tuesday 29 of October 2013 12:12:51 Sean Paul wrote:
>> This patch implements the initialize callback in the hdmi and mixer
>> manager. This allows us to get rid of drm_dev in the drm_hdmi level and
>> track it in the mixer and hdmi drivers. This is one of the things
>> holding back the complete removal of the drm_hdmi layer.
>>
>> Signed-off-by: Sean Paul <seanpaul at chromium.org>
>> ---
>>
>> Changes in v2: None
>> Changes in v3: None
>>
>>  drivers/gpu/drm/exynos/exynos_drm_hdmi.c | 35
>> ++++++++++++++++++++++++++------
>> drivers/gpu/drm/exynos/exynos_drm_hdmi.h |  3 ++-
>>  drivers/gpu/drm/exynos/exynos_hdmi.c     | 18 ++++++++++++----
>>  drivers/gpu/drm/exynos/exynos_mixer.c    | 35
>> +++++++++++++++++++------------- 4 files changed, 66 insertions(+), 25
>> deletions(-)
> [snip]
>> @@ -985,8 +991,7 @@ static struct exynos_mixer_ops mixer_ops = {
>>
>>  static irqreturn_t mixer_irq_handler(int irq, void *arg)
>>  {
>> -     struct exynos_drm_hdmi_context *drm_hdmi_ctx = arg;
>> -     struct mixer_context *ctx = drm_hdmi_ctx->ctx;
>> +     struct mixer_context *ctx = arg;
>>       struct mixer_resources *res = &ctx->mixer_res;
>>       u32 val, base, shadow;
>>
>> @@ -995,6 +1000,9 @@ static irqreturn_t mixer_irq_handler(int irq, void
>> *arg) /* read interrupt status for handling and clearing flags for
>> VSYNC */ val = mixer_reg_read(res, MXR_INT_STATUS);
>>
>> +     if (!ctx->drm_dev)
>> +             goto out;
>
> The patch looks fine, but I'd like you to explain me in what conditions
> can this condition evaluate to true.
>

This can happen if there's a mixer interrupt before the intialize()
hook is called.

Sean


> Best regards,
> Tomasz
>


More information about the dri-devel mailing list