diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-27 22:54:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-07-27 22:54:53 -0400 |
commit | 0b5477d9dabd96ded4c5ef7a5f08b00188fc1dec (patch) | |
tree | 7e0aa2af04b529bbad9a63aed76be78d5aacc9ff /drivers/gpu/host1x/dev.c | |
parent | 0ce2f385119344dc620ec635e355008a9d6f8401 (diff) | |
parent | 20806588f015921ef0704de36a4750f828f399ea (diff) |
Merge tag 'drm-fixes-for-v4.13-rc3' of git://people.freedesktop.org/~airlied/linux
Pull drm fixes from Dave Airlie:
"These iare the fixes for 4.13-rc3: vmwgfx, exynos, i915, amdgpu,
nouveau, host1x and displayport fixes.
As expected people woke up this week, i915 didn't do an -rc2 pull so
got a bumper -rc3 pull, and Ben resurfaced on nouveau and fixed a
bunch of major crashers seen on Fedora 26, and there are a few vmwgfx
fixes as well.
Otherwise exynos had some regression fixes/cleanups, and amdgpu has an
rcu locking regression fix and a couple of minor fixes"
* tag 'drm-fixes-for-v4.13-rc3' of git://people.freedesktop.org/~airlied/linux: (44 commits)
drm/i915: Fix bad comparison in skl_compute_plane_wm.
drm/i915: Force CPU synchronisation even if userspace requests ASYNC
drm/i915: Only skip updating execobject.offset after error
drm/i915: Only mark the execobject as pinned on success
drm/i915: Remove assertion from raw __i915_vma_unpin()
drm/i915/cnl: Fix loadgen select programming on ddi vswing sequence
drm/i915: Fix scaler init during CRTC HW state readout
drm/i915/selftests: Fix an error handling path in 'mock_gem_device()'
drm/i915: Unbreak gpu reset vs. modeset locking
gpu: host1x: Free the IOMMU domain when there is no device to attach
drm/i915: Fix cursor updates on some platforms
drm/i915: Fix user ptr check size in eb_relocate_vma()
drm: exynos: mark pm functions as __maybe_unused
drm/exynos: select CEC_CORE if CEC_NOTIFIER
drm/exynos/hdmi: fix disable sequence
drm/exynos: mic: add a bridge at probe
drm/exynos/dsi: Remove error handling for bridge_node DT parsing
drm/exynos: dsi: do not try to find bridge
drm: exynos: hdmi: make of_device_ids const.
drm: exynos: constify mixer_match_types and *_mxr_drv_data.
...
Diffstat (limited to 'drivers/gpu/host1x/dev.c')
-rw-r--r-- | drivers/gpu/host1x/dev.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c index 2c58a390123a..778272514164 100644 --- a/drivers/gpu/host1x/dev.c +++ b/drivers/gpu/host1x/dev.c | |||
@@ -186,8 +186,13 @@ static int host1x_probe(struct platform_device *pdev) | |||
186 | return -ENOMEM; | 186 | return -ENOMEM; |
187 | 187 | ||
188 | err = iommu_attach_device(host->domain, &pdev->dev); | 188 | err = iommu_attach_device(host->domain, &pdev->dev); |
189 | if (err) | 189 | if (err == -ENODEV) { |
190 | iommu_domain_free(host->domain); | ||
191 | host->domain = NULL; | ||
192 | goto skip_iommu; | ||
193 | } else if (err) { | ||
190 | goto fail_free_domain; | 194 | goto fail_free_domain; |
195 | } | ||
191 | 196 | ||
192 | geometry = &host->domain->geometry; | 197 | geometry = &host->domain->geometry; |
193 | 198 | ||
@@ -198,6 +203,7 @@ static int host1x_probe(struct platform_device *pdev) | |||
198 | host->iova_end = geometry->aperture_end; | 203 | host->iova_end = geometry->aperture_end; |
199 | } | 204 | } |
200 | 205 | ||
206 | skip_iommu: | ||
201 | err = host1x_channel_list_init(&host->channel_list, | 207 | err = host1x_channel_list_init(&host->channel_list, |
202 | host->info->nb_channels); | 208 | host->info->nb_channels); |
203 | if (err) { | 209 | if (err) { |