Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos
Inki writes: This pull request fixes minor issues and includes code cleanup. * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: Fix potential NULL pointer dereference in exynos_drm_encoder.c drm/exynos: Make exynos4/5_fimd_driver_data static drm/exynos: fix overlay updating issue drm/exynos: remove unnecessary code. drm/exynos: fix linux framebuffer address setting.
This commit is contained in:
commit
64b1e1bad7
4 changed files with 11 additions and 5 deletions
|
@ -226,6 +226,12 @@ static void exynos_drm_encoder_commit(struct drm_encoder *encoder)
|
||||||
* already updated or not by exynos_drm_encoder_dpms function.
|
* already updated or not by exynos_drm_encoder_dpms function.
|
||||||
*/
|
*/
|
||||||
exynos_encoder->updated = true;
|
exynos_encoder->updated = true;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In case of setcrtc, there is no way to update encoder's dpms
|
||||||
|
* so update it here.
|
||||||
|
*/
|
||||||
|
exynos_encoder->dpms = DRM_MODE_DPMS_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void exynos_drm_encoder_disable(struct drm_encoder *encoder)
|
static void exynos_drm_encoder_disable(struct drm_encoder *encoder)
|
||||||
|
@ -507,6 +513,6 @@ void exynos_drm_encoder_plane_disable(struct drm_encoder *encoder, void *data)
|
||||||
* because the setting for disabling the overlay will be updated
|
* because the setting for disabling the overlay will be updated
|
||||||
* at vsync.
|
* at vsync.
|
||||||
*/
|
*/
|
||||||
if (overlay_ops->wait_for_vblank)
|
if (overlay_ops && overlay_ops->wait_for_vblank)
|
||||||
overlay_ops->wait_for_vblank(manager->dev);
|
overlay_ops->wait_for_vblank(manager->dev);
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,8 @@ static int exynos_drm_fbdev_update(struct drm_fb_helper *helper,
|
||||||
|
|
||||||
dev->mode_config.fb_base = (resource_size_t)buffer->dma_addr;
|
dev->mode_config.fb_base = (resource_size_t)buffer->dma_addr;
|
||||||
fbi->screen_base = buffer->kvaddr + offset;
|
fbi->screen_base = buffer->kvaddr + offset;
|
||||||
fbi->fix.smem_start = (unsigned long)(buffer->dma_addr + offset);
|
fbi->fix.smem_start = (unsigned long)(page_to_phys(buffer->pages[0]) +
|
||||||
|
offset);
|
||||||
fbi->screen_size = size;
|
fbi->screen_size = size;
|
||||||
fbi->fix.smem_len = size;
|
fbi->fix.smem_len = size;
|
||||||
|
|
||||||
|
|
|
@ -61,11 +61,11 @@ struct fimd_driver_data {
|
||||||
unsigned int timing_base;
|
unsigned int timing_base;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct fimd_driver_data exynos4_fimd_driver_data = {
|
static struct fimd_driver_data exynos4_fimd_driver_data = {
|
||||||
.timing_base = 0x0,
|
.timing_base = 0x0,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct fimd_driver_data exynos5_fimd_driver_data = {
|
static struct fimd_driver_data exynos5_fimd_driver_data = {
|
||||||
.timing_base = 0x20000,
|
.timing_base = 0x20000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -204,7 +204,6 @@ exynos_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
plane->crtc = crtc;
|
plane->crtc = crtc;
|
||||||
plane->fb = crtc->fb;
|
|
||||||
|
|
||||||
exynos_plane_commit(plane);
|
exynos_plane_commit(plane);
|
||||||
exynos_plane_dpms(plane, DRM_MODE_DPMS_ON);
|
exynos_plane_dpms(plane, DRM_MODE_DPMS_ON);
|
||||||
|
|
Loading…
Reference in a new issue