forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
crypto: ccp - Add a module parameter to control registration for DMA
The CCP driver is able to act as a DMA engine. Add a module parameter that allows this feature to be enabled/disabled. Signed-off-by: Gary R Hook <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
- Loading branch information
Showing
1 changed file
with
11 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
/* | ||
* AMD Cryptographic Coprocessor (CCP) driver | ||
* | ||
* Copyright (C) 2016,2017 Advanced Micro Devices, Inc. | ||
* Copyright (C) 2016,2019 Advanced Micro Devices, Inc. | ||
* | ||
* Author: Gary R Hook <[email protected]> | ||
*/ | ||
|
@@ -35,6 +35,10 @@ static unsigned int dma_chan_attr = CCP_DMA_DFLT; | |
module_param(dma_chan_attr, uint, 0444); | ||
MODULE_PARM_DESC(dma_chan_attr, "Set DMA channel visibility: 0 (default) = device defaults, 1 = make private, 2 = make public"); | ||
|
||
static unsigned int dmaengine = 1; | ||
module_param(dmaengine, uint, 0444); | ||
MODULE_PARM_DESC(dmaengine, "Register services with the DMA subsystem (any non-zero value, default: 1)"); | ||
|
||
static unsigned int ccp_get_dma_chan_attr(struct ccp_device *ccp) | ||
{ | ||
switch (dma_chan_attr) { | ||
|
@@ -637,6 +641,9 @@ int ccp_dmaengine_register(struct ccp_device *ccp) | |
unsigned int i; | ||
int ret; | ||
|
||
if (!dmaengine) | ||
return 0; | ||
|
||
ccp->ccp_dma_chan = devm_kcalloc(ccp->dev, ccp->cmd_q_count, | ||
sizeof(*(ccp->ccp_dma_chan)), | ||
GFP_KERNEL); | ||
|
@@ -740,6 +747,9 @@ void ccp_dmaengine_unregister(struct ccp_device *ccp) | |
{ | ||
struct dma_device *dma_dev = &ccp->dma_dev; | ||
|
||
if (!dmaengine) | ||
return; | ||
|
||
dma_async_device_unregister(dma_dev); | ||
|
||
kmem_cache_destroy(ccp->dma_desc_cache); | ||
|