diff options
Diffstat (limited to 'drivers/crypto/ccp/ccp-platform.c')
-rw-r--r-- | drivers/crypto/ccp/ccp-platform.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/crypto/ccp/ccp-platform.c b/drivers/crypto/ccp/ccp-platform.c index 8b923b7e9389..01b50cb4c982 100644 --- a/drivers/crypto/ccp/ccp-platform.c +++ b/drivers/crypto/ccp/ccp-platform.c | |||
@@ -94,6 +94,7 @@ static int ccp_platform_probe(struct platform_device *pdev) | |||
94 | struct ccp_device *ccp; | 94 | struct ccp_device *ccp; |
95 | struct ccp_platform *ccp_platform; | 95 | struct ccp_platform *ccp_platform; |
96 | struct device *dev = &pdev->dev; | 96 | struct device *dev = &pdev->dev; |
97 | enum dev_dma_attr attr; | ||
97 | struct resource *ior; | 98 | struct resource *ior; |
98 | int ret; | 99 | int ret; |
99 | 100 | ||
@@ -118,18 +119,24 @@ static int ccp_platform_probe(struct platform_device *pdev) | |||
118 | } | 119 | } |
119 | ccp->io_regs = ccp->io_map; | 120 | ccp->io_regs = ccp->io_map; |
120 | 121 | ||
121 | ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(48)); | 122 | attr = device_get_dma_attr(dev); |
122 | if (ret) { | 123 | if (attr == DEV_DMA_NOT_SUPPORTED) { |
123 | dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n", ret); | 124 | dev_err(dev, "DMA is not supported"); |
124 | goto e_err; | 125 | goto e_err; |
125 | } | 126 | } |
126 | 127 | ||
127 | ccp_platform->coherent = device_dma_is_coherent(ccp->dev); | 128 | ccp_platform->coherent = (attr == DEV_DMA_COHERENT); |
128 | if (ccp_platform->coherent) | 129 | if (ccp_platform->coherent) |
129 | ccp->axcache = CACHE_WB_NO_ALLOC; | 130 | ccp->axcache = CACHE_WB_NO_ALLOC; |
130 | else | 131 | else |
131 | ccp->axcache = CACHE_NONE; | 132 | ccp->axcache = CACHE_NONE; |
132 | 133 | ||
134 | ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(48)); | ||
135 | if (ret) { | ||
136 | dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n", ret); | ||
137 | goto e_err; | ||
138 | } | ||
139 | |||
133 | dev_set_drvdata(dev, ccp); | 140 | dev_set_drvdata(dev, ccp); |
134 | 141 | ||
135 | ret = ccp_init(ccp); | 142 | ret = ccp_init(ccp); |