mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
crypto: hisilicon/sec - use devm_platform_ioremap_resource in sec_map_io
Replace the open-coded platform_get_resource() plus devm_ioremap() sequence in the SEC_NUM_ADDR_REGIONS loop with devm_platform_ioremap_resource(), which fetches the resource, requests the region and maps it in one call. Switch the error check to IS_ERR()/PTR_ERR() and drop the now-unused struct resource pointer. The driver only maps indices 0 and 1 (SEC_COMMON, SEC_SAA). On hip07 the corresponding reg regions (0xd0000000, 0xd2000000) are 0x10000 each and disjoint, so the region reservation added by devm_ioremap_resource() is exclusive and does not introduce overlap failures. Built for arm64 (drivers/crypto/hisilicon/sec/sec_drv.o) with LLVM=1. Assisted-by: opencode:hy3-free Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
0a94091e29
commit
83418a2c5b
|
|
@ -1010,25 +1010,12 @@ static void sec_queue_base_init(struct sec_dev_info *info,
|
|||
|
||||
static int sec_map_io(struct sec_dev_info *info, struct platform_device *pdev)
|
||||
{
|
||||
struct resource *res;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < SEC_NUM_ADDR_REGIONS; i++) {
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, i);
|
||||
|
||||
if (!res) {
|
||||
dev_err(info->dev, "Memory resource %d not found\n", i);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
info->regs[i] = devm_ioremap(info->dev, res->start,
|
||||
resource_size(res));
|
||||
if (!info->regs[i]) {
|
||||
dev_err(info->dev,
|
||||
"Memory resource %d could not be remapped\n",
|
||||
i);
|
||||
return -EINVAL;
|
||||
}
|
||||
info->regs[i] = devm_platform_ioremap_resource(pdev, i);
|
||||
if (IS_ERR(info->regs[i]))
|
||||
return PTR_ERR(info->regs[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user