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:
Dave Airlie 2014-08-28 11:48:05 +10:00
Родитель 00e7208997 0d9509d211
Коммит 5fa9be63a4
4 изменённых файлов: 6 добавлений и 5 удалений

Просмотреть файл

@ -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)