Browse Source

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
Dave Airlie 11 years ago
parent
commit
5fa9be63a4

+ 2 - 0
drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c

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

+ 1 - 2
drivers/gpu/drm/msm/msm_drv.c

@@ -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;
 		}
 		}
 
 

+ 1 - 1
drivers/gpu/drm/msm/msm_fbdev.c

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

+ 2 - 2
drivers/gpu/drm/msm/msm_iommu.c

@@ -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);
-	return -ENOSYS;
+	pr_warn_ratelimited("*** fault: iova=%08lx, flags=%d\n", iova, flags);
+	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)