Lines Matching defs:func
158 static int vexpress_syscfg_exec(struct vexpress_syscfg_func *func,
161 struct vexpress_syscfg *syscfg = func->syscfg;
166 if (WARN_ON(index >= func->num_templates))
173 command = func->template[index];
181 dev_dbg(syscfg->dev, "func %p, command %x, data %x\n",
182 func, command, *data);
213 dev_dbg(syscfg->dev, "func %p, read data %x\n", func, *data);
222 struct vexpress_syscfg_func *func = context;
224 return vexpress_syscfg_exec(func, index, false, val);
230 struct vexpress_syscfg_func *func = context;
232 return vexpress_syscfg_exec(func, index, true, &val);
252 struct vexpress_syscfg_func *func;
266 "arm,vexpress-sysreg,func", NULL);
287 func = kzalloc(struct_size(func, template, num), GFP_KERNEL);
288 if (!func)
291 func->syscfg = syscfg;
292 func->num_templates = num;
300 dev_dbg(dev, "func %p: %u/%u/%u/%u/%u\n",
301 func, site, position, dcc,
304 func->template[i] = SYS_CFGCTRL_DCC(dcc);
305 func->template[i] |= SYS_CFGCTRL_SITE(site);
306 func->template[i] |= SYS_CFGCTRL_POSITION(position);
307 func->template[i] |= SYS_CFGCTRL_FUNC(function);
308 func->template[i] |= SYS_CFGCTRL_DEVICE(device);
313 func->regmap = regmap_init(dev, NULL, func,
316 if (IS_ERR(func->regmap)) {
317 void *err = func->regmap;
319 kfree(func);
323 list_add(&func->list, &syscfg->funcs);
325 return func->regmap;
331 struct vexpress_syscfg_func *func, *tmp;
335 list_for_each_entry_safe(func, tmp, &syscfg->funcs, list) {
336 if (func->regmap == regmap) {
338 kfree(func);