Lines Matching defs:gsi
8 #include "gsi.h"
13 static bool gsi_reg_id_valid(struct gsi *gsi, enum gsi_reg_id reg_id)
18 return gsi->version >= IPA_VERSION_3_5;
21 return gsi->version >= IPA_VERSION_3_5_1;
24 return gsi->version >= IPA_VERSION_5_0;
82 const struct reg *gsi_reg(struct gsi *gsi, enum gsi_reg_id reg_id)
84 if (WARN(!gsi_reg_id_valid(gsi, reg_id), "invalid reg %u\n", reg_id))
87 return reg(gsi->regs, reg_id);
90 static const struct regs *gsi_regs(struct gsi *gsi)
92 switch (gsi->version) {
120 /* Sets gsi->virt and I/O maps the "gsi" memory range for registers */
121 int gsi_reg_init(struct gsi *gsi, struct platform_device *pdev)
128 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gsi");
130 dev_err(dev, "DT error getting \"gsi\" memory property\n");
136 dev_err(dev, "DT memory resource \"gsi\" out of range\n");
140 gsi->regs = gsi_regs(gsi);
141 if (!gsi->regs) {
142 dev_err(dev, "unsupported IPA version %u (?)\n", gsi->version);
146 gsi->virt = ioremap(res->start, size);
147 if (!gsi->virt) {
148 dev_err(dev, "unable to remap \"gsi\" memory\n");
156 void gsi_reg_exit(struct gsi *gsi)
158 iounmap(gsi->virt);
159 gsi->virt = NULL;
160 gsi->regs = NULL;