diff options
author | Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> | 2018-11-28 09:23:36 +0000 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2018-12-03 14:24:02 +0100 |
commit | 807596491d33d016e420d217cf1350aef2d2b3f7 (patch) | |
tree | 6dab39610cf9d15ae7870f9039e35f5fc16672dd /drivers | |
parent | b7ee92c6ff0e023a473b2500d771f6bf504fcc1a (diff) | |
download | linux-807596491d33d016e420d217cf1350aef2d2b3f7.tar.gz linux-807596491d33d016e420d217cf1350aef2d2b3f7.tar.bz2 linux-807596491d33d016e420d217cf1350aef2d2b3f7.zip |
iommu/ipmmu-vmsa: Add an array of slave devices whitelist
To avoid adding copy and pasted strcmp codes in the future,
this patch adds an array "rcar_gen3_slave_whitelist" to check
whether the device can work with the IPMMU or not.
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/iommu/ipmmu-vmsa.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c index 46906a763d69..331e86839a8c 100644 --- a/drivers/iommu/ipmmu-vmsa.c +++ b/drivers/iommu/ipmmu-vmsa.c @@ -770,8 +770,13 @@ static const struct soc_device_attribute soc_rcar_gen3_whitelist[] = { { /* sentinel */ } }; +static const char * const rcar_gen3_slave_whitelist[] = { +}; + static bool ipmmu_slave_whitelist(struct device *dev) { + unsigned int i; + /* * For R-Car Gen3 use a white list to opt-in slave devices. * For Other SoCs, this returns true anyway. @@ -783,7 +788,13 @@ static bool ipmmu_slave_whitelist(struct device *dev) if (!soc_device_match(soc_rcar_gen3_whitelist)) return false; - /* By default, do not allow use of IPMMU */ + /* Check whether this slave device can work with the IPMMU */ + for (i = 0; i < ARRAY_SIZE(rcar_gen3_slave_whitelist); i++) { + if (!strcmp(dev_name(dev), rcar_gen3_slave_whitelist[i])) + return true; + } + + /* Otherwise, do not allow use of IPMMU */ return false; } |