Hey, On 2015-05-21 16:06, Gustavo Padovan wrote: > Hi Tobias, > > 2015-05-21 Tobias Jakobi <tjakobi at math.uni-bielefeld.de>: > >> Gustavo Padovan wrote: >> > From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> >> > >> > When mode's vrefresh is zero we should ask DRM core to calculate vrefresh >> > for us so we can get the correct value instead of relying on fixed value >> > defined in a macro. But if vrefresh is still zero we should fail the >> > update. >> This works better for me: >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> b/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> index dc834b8..26e8ae4 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c >> @@ -346,11 +346,16 @@ static bool fimd_mode_fixup(struct >> exynos_drm_crtc >> *crtc, >> static void fimd_commit(struct exynos_drm_crtc *crtc) >> { >> struct fimd_context *ctx = crtc->ctx; >> - struct drm_display_mode *mode = &crtc->base.mode; >> + struct drm_display_mode *mode; >> struct fimd_driver_data *driver_data = ctx->driver_data; >> void *timing_base = ctx->regs + driver_data->timing_base; >> u32 val, clkdiv; >> >> + if (crtc->base.state) >> + mode = &crtc->base.state->adjusted_mode; >> + else >> + mode = &crtc->base.mode; >> + >> if (ctx->suspended) >> return; >> >> Otherwise I get an oops (nullptr deref) on boot, so 'state' is >> probably >> not initialized yet at this point. > > Would you like to send a proper git patch of this? You can move the > drm_mode_vrefresh() part to your patch. I'll try to send out something later this day.
With best wishes, Tobias > > Gustavo