Lines Matching +full:ipa +full:- +full:reg

1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2024 Linaro Ltd.
10 #include "ipa.h"
13 /* Is this register ID valid for the current IPA version? */
14 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_id_valid() argument
16 enum ipa_version version = ipa->version; in ipa_reg_id_valid()
102 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument
104 if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) in ipa_reg()
107 return reg(ipa->regs, reg_id); in ipa_reg()
136 int ipa_reg_init(struct ipa *ipa, struct platform_device *pdev) in ipa_reg_init() argument
138 struct device *dev = &pdev->dev; in ipa_reg_init()
142 regs = ipa_regs(ipa->version); in ipa_reg_init()
144 return -EINVAL; in ipa_reg_init()
146 if (WARN_ON(regs->reg_count > IPA_REG_ID_COUNT)) in ipa_reg_init()
147 return -EINVAL; in ipa_reg_init()
149 /* Setup IPA register memory */ in ipa_reg_init()
150 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ipa-reg"); in ipa_reg_init()
152 dev_err(dev, "DT error getting \"ipa-reg\" memory property\n"); in ipa_reg_init()
153 return -ENODEV; in ipa_reg_init()
156 ipa->reg_virt = ioremap(res->start, resource_size(res)); in ipa_reg_init()
157 if (!ipa->reg_virt) { in ipa_reg_init()
158 dev_err(dev, "unable to remap \"ipa-reg\" memory\n"); in ipa_reg_init()
159 return -ENOMEM; in ipa_reg_init()
161 ipa->regs = regs; in ipa_reg_init()
166 void ipa_reg_exit(struct ipa *ipa) in ipa_reg_exit() argument
168 iounmap(ipa->reg_virt); in ipa_reg_exit()