Merge tag 'trace-v4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[cascardo/linux.git] / drivers / gpu / drm / exynos / exynos_drm_drv.c
index 2dd820e..877d2ef 100644 (file)
@@ -159,12 +159,7 @@ static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
        DRM_INFO("Exynos DRM: using %s device for DMA mapping operations\n",
                 dev_name(private->dma_dev));
 
-       /*
-        * create mapping to manage iommu table and set a pointer to iommu
-        * mapping structure to iommu_mapping of private data.
-        * also this iommu_mapping can be used to check if iommu is supported
-        * or not.
-        */
+       /* create common IOMMU mapping for all devices attached to Exynos DRM */
        ret = drm_create_iommu_mapping(dev);
        if (ret < 0) {
                DRM_ERROR("failed to create iommu mapping.\n");
@@ -267,6 +262,8 @@ int exynos_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state,
 {
        struct exynos_drm_private *priv = dev->dev_private;
        struct exynos_atomic_commit *commit;
+       struct drm_crtc *crtc;
+       struct drm_crtc_state *crtc_state;
        int i, ret;
 
        commit = kzalloc(sizeof(*commit), GFP_KERNEL);
@@ -288,10 +285,8 @@ int exynos_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state,
        /* Wait until all affected CRTCs have completed previous commits and
         * mark them as pending.
         */
-       for (i = 0; i < dev->mode_config.num_crtc; ++i) {
-               if (state->crtcs[i])
-                       commit->crtcs |= 1 << drm_crtc_index(state->crtcs[i]);
-       }
+       for_each_crtc_in_state(state, crtc, crtc_state, i)
+               commit->crtcs |= drm_crtc_mask(crtc);
 
        wait_event(priv->wait, !commit_is_pending(priv, commit->crtcs));
 
@@ -299,7 +294,7 @@ int exynos_atomic_commit(struct drm_device *dev, struct drm_atomic_state *state,
        priv->pending |= commit->crtcs;
        spin_unlock(&priv->lock);
 
-       drm_atomic_helper_swap_state(dev, state);
+       drm_atomic_helper_swap_state(state, true);
 
        if (nonblock)
                schedule_work(&commit->work);
@@ -407,7 +402,6 @@ static struct drm_driver exynos_drm_driver = {
        .preclose               = exynos_drm_preclose,
        .lastclose              = exynos_drm_lastclose,
        .postclose              = exynos_drm_postclose,
-       .set_busid              = drm_platform_set_busid,
        .get_vblank_counter     = drm_vblank_no_hw_counter,
        .enable_vblank          = exynos_drm_crtc_enable_vblank,
        .disable_vblank         = exynos_drm_crtc_disable_vblank,