Merge branch 'msm-fixes-3.17' of git://people.freedesktop.org/~robclark/linux into drm-fixes
misc msm fixes from Rob. * 'msm-fixes-3.17' of git://people.freedesktop.org/~robclark/linux: drm/msm: Fix missing unlock on error in msm_fbdev_create() drm/msm: fix compile error for non-dt builds drm/msm/mdp4: request vblank during modeset drm/msm: avoid flood of kernel logs on faults
This commit is contained in:
Коммит
5fa9be63a4
|
@ -397,6 +397,7 @@ static void mdp4_crtc_prepare(struct drm_crtc *crtc)
|
||||||
struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc);
|
struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc);
|
||||||
DBG("%s", mdp4_crtc->name);
|
DBG("%s", mdp4_crtc->name);
|
||||||
/* make sure we hold a ref to mdp clks while setting up mode: */
|
/* make sure we hold a ref to mdp clks while setting up mode: */
|
||||||
|
drm_crtc_vblank_get(crtc);
|
||||||
mdp4_enable(get_kms(crtc));
|
mdp4_enable(get_kms(crtc));
|
||||||
mdp4_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
|
mdp4_crtc_dpms(crtc, DRM_MODE_DPMS_OFF);
|
||||||
}
|
}
|
||||||
|
@ -407,6 +408,7 @@ static void mdp4_crtc_commit(struct drm_crtc *crtc)
|
||||||
crtc_flush(crtc);
|
crtc_flush(crtc);
|
||||||
/* drop the ref to mdp clk's that we got in prepare: */
|
/* drop the ref to mdp clk's that we got in prepare: */
|
||||||
mdp4_disable(get_kms(crtc));
|
mdp4_disable(get_kms(crtc));
|
||||||
|
drm_crtc_vblank_put(crtc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mdp4_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
|
static int mdp4_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
|
||||||
|
|
|
@ -974,12 +974,11 @@ static int msm_pdev_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(devnames); i++) {
|
for (i = 0; i < ARRAY_SIZE(devnames); i++) {
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
int ret;
|
|
||||||
|
|
||||||
dev = bus_find_device_by_name(&platform_bus_type,
|
dev = bus_find_device_by_name(&platform_bus_type,
|
||||||
NULL, devnames[i]);
|
NULL, devnames[i]);
|
||||||
if (!dev) {
|
if (!dev) {
|
||||||
dev_info(master, "still waiting for %s\n", devnames[i]);
|
dev_info(&pdev->dev, "still waiting for %s\n", devnames[i]);
|
||||||
return -EPROBE_DEFER;
|
return -EPROBE_DEFER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ static int msm_fbdev_create(struct drm_fb_helper *helper,
|
||||||
ret = msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
|
ret = msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
dev_err(dev->dev, "failed to get buffer obj iova: %d\n", ret);
|
dev_err(dev->dev, "failed to get buffer obj iova: %d\n", ret);
|
||||||
goto fail;
|
goto fail_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
fbi = framebuffer_alloc(0, dev->dev);
|
fbi = framebuffer_alloc(0, dev->dev);
|
||||||
|
|
|
@ -27,8 +27,8 @@ struct msm_iommu {
|
||||||
static int msm_fault_handler(struct iommu_domain *iommu, struct device *dev,
|
static int msm_fault_handler(struct iommu_domain *iommu, struct device *dev,
|
||||||
unsigned long iova, int flags, void *arg)
|
unsigned long iova, int flags, void *arg)
|
||||||
{
|
{
|
||||||
DBG("*** fault: iova=%08lx, flags=%d", iova, flags);
|
pr_warn_ratelimited("*** fault: iova=%08lx, flags=%d\n", iova, flags);
|
||||||
return -ENOSYS;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int msm_iommu_attach(struct msm_mmu *mmu, const char **names, int cnt)
|
static int msm_iommu_attach(struct msm_mmu *mmu, const char **names, int cnt)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче