From e8b0af3d8361134a087c3307751da09d32151cd2 Mon Sep 17 00:00:00 2001 From: Joerg Roedel Date: Tue, 12 Jun 2012 16:30:06 +0200 Subject: [PATCH] --- yaml --- r: 316573 b: refs/heads/master c: 11ee5ac47b78d7e117c84147596a124ce6421a3a h: refs/heads/master i: 316571: 10b6753c575c76662c4f86a43c8cf2b1891b1b6d v: v3 --- [refs] | 2 +- trunk/drivers/iommu/amd_iommu_init.c | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 0a5da93519b3..d5cfb5ce01e7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 643511b37eb72d831646bacafaeace1eeadf5a54 +refs/heads/master: 11ee5ac47b78d7e117c84147596a124ce6421a3a diff --git a/trunk/drivers/iommu/amd_iommu_init.c b/trunk/drivers/iommu/amd_iommu_init.c index a5dbefb8e260..b82cf447724e 100644 --- a/trunk/drivers/iommu/amd_iommu_init.c +++ b/trunk/drivers/iommu/amd_iommu_init.c @@ -1379,7 +1379,7 @@ static void iommu_apply_resume_quirks(struct amd_iommu *iommu) * This function finally enables all IOMMUs found in the system after * they have been initialized */ -static void enable_iommus(void) +static void early_enable_iommus(void) { struct amd_iommu *iommu; @@ -1389,14 +1389,29 @@ static void enable_iommus(void) iommu_set_device_table(iommu); iommu_enable_command_buffer(iommu); iommu_enable_event_buffer(iommu); - iommu_enable_ppr_log(iommu); - iommu_enable_gt(iommu); iommu_set_exclusion_range(iommu); iommu_enable(iommu); iommu_flush_all_caches(iommu); } } +static void enable_iommus_v2(void) +{ + struct amd_iommu *iommu; + + for_each_iommu(iommu) { + iommu_enable_ppr_log(iommu); + iommu_enable_gt(iommu); + } +} + +static void enable_iommus(void) +{ + early_enable_iommus(); + + enable_iommus_v2(); +} + static void disable_iommus(void) { struct amd_iommu *iommu;