diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-20 18:40:10 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-20 18:40:10 -0400 |
| commit | 646da63172f660ba84f195c1165360a9b73583ee (patch) | |
| tree | b4abb491c2f95407845e9fbb7021c83e7b4368f7 /drivers | |
| parent | 8f49309a261dbe9b5217908e0e8ee8da7f148695 (diff) | |
| parent | 315491e5d6ee66838a18a8ca0c14e6ffb376e48c (diff) | |
Merge tag 'remoteproc-4.1-next' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc
Pull remoteproc update from Ohad Ben-Cohen:
"Suman Anna is adding remoteproc support for processors not behind
IOMMUs"
* tag 'remoteproc-4.1-next' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc:
remoteproc: add IOMMU hardware capability flag
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/remoteproc/da8xx_remoteproc.c | 1 | ||||
| -rw-r--r-- | drivers/remoteproc/omap_remoteproc.c | 2 | ||||
| -rw-r--r-- | drivers/remoteproc/remoteproc_core.c | 15 | ||||
| -rw-r--r-- | drivers/remoteproc/ste_modem_rproc.c | 1 |
4 files changed, 6 insertions, 13 deletions
diff --git a/drivers/remoteproc/da8xx_remoteproc.c b/drivers/remoteproc/da8xx_remoteproc.c index 89fd057e5f1d..f8d6a0661c14 100644 --- a/drivers/remoteproc/da8xx_remoteproc.c +++ b/drivers/remoteproc/da8xx_remoteproc.c | |||
| @@ -224,6 +224,7 @@ static int da8xx_rproc_probe(struct platform_device *pdev) | |||
| 224 | 224 | ||
| 225 | drproc = rproc->priv; | 225 | drproc = rproc->priv; |
| 226 | drproc->rproc = rproc; | 226 | drproc->rproc = rproc; |
| 227 | rproc->has_iommu = false; | ||
| 227 | 228 | ||
| 228 | platform_set_drvdata(pdev, rproc); | 229 | platform_set_drvdata(pdev, rproc); |
| 229 | 230 | ||
diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index e85f30370760..b74368a91235 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c | |||
| @@ -202,6 +202,8 @@ static int omap_rproc_probe(struct platform_device *pdev) | |||
| 202 | 202 | ||
| 203 | oproc = rproc->priv; | 203 | oproc = rproc->priv; |
| 204 | oproc->rproc = rproc; | 204 | oproc->rproc = rproc; |
| 205 | /* All existing OMAP IPU and DSP processors have an MMU */ | ||
| 206 | rproc->has_iommu = true; | ||
| 205 | 207 | ||
| 206 | platform_set_drvdata(pdev, rproc); | 208 | platform_set_drvdata(pdev, rproc); |
| 207 | 209 | ||
diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 3cd85a638afa..11cdb119e4f3 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c | |||
| @@ -94,19 +94,8 @@ static int rproc_enable_iommu(struct rproc *rproc) | |||
| 94 | struct device *dev = rproc->dev.parent; | 94 | struct device *dev = rproc->dev.parent; |
| 95 | int ret; | 95 | int ret; |
| 96 | 96 | ||
| 97 | /* | 97 | if (!rproc->has_iommu) { |
| 98 | * We currently use iommu_present() to decide if an IOMMU | 98 | dev_dbg(dev, "iommu not present\n"); |
| 99 | * setup is needed. | ||
| 100 | * | ||
| 101 | * This works for simple cases, but will easily fail with | ||
| 102 | * platforms that do have an IOMMU, but not for this specific | ||
| 103 | * rproc. | ||
| 104 | * | ||
| 105 | * This will be easily solved by introducing hw capabilities | ||
| 106 | * that will be set by the remoteproc driver. | ||
| 107 | */ | ||
| 108 | if (!iommu_present(dev->bus)) { | ||
| 109 | dev_dbg(dev, "iommu not found\n"); | ||
| 110 | return 0; | 99 | return 0; |
| 111 | } | 100 | } |
| 112 | 101 | ||
diff --git a/drivers/remoteproc/ste_modem_rproc.c b/drivers/remoteproc/ste_modem_rproc.c index 16b7b7bd805b..dd193f35a1ff 100644 --- a/drivers/remoteproc/ste_modem_rproc.c +++ b/drivers/remoteproc/ste_modem_rproc.c | |||
| @@ -289,6 +289,7 @@ static int sproc_probe(struct platform_device *pdev) | |||
| 289 | sproc = rproc->priv; | 289 | sproc = rproc->priv; |
| 290 | sproc->mdev = mdev; | 290 | sproc->mdev = mdev; |
| 291 | sproc->rproc = rproc; | 291 | sproc->rproc = rproc; |
| 292 | rproc->has_iommu = false; | ||
| 292 | mdev->drv_data = sproc; | 293 | mdev->drv_data = sproc; |
| 293 | 294 | ||
| 294 | /* Provide callback functions to modem device */ | 295 | /* Provide callback functions to modem device */ |
