Lines Matching refs:func

56 static int vexpress_syscfg_exec(struct vexpress_syscfg_func *func,  in vexpress_syscfg_exec()  argument
59 struct vexpress_syscfg *syscfg = func->syscfg; in vexpress_syscfg_exec()
64 if (WARN_ON(index > func->num_templates)) in vexpress_syscfg_exec()
71 command = func->template[index]; in vexpress_syscfg_exec()
80 func, command, *data); in vexpress_syscfg_exec()
111 dev_dbg(syscfg->dev, "func %p, read data %x\n", func, *data); in vexpress_syscfg_exec()
120 struct vexpress_syscfg_func *func = context; in vexpress_syscfg_read() local
122 return vexpress_syscfg_exec(func, index, false, val); in vexpress_syscfg_read()
128 struct vexpress_syscfg_func *func = context; in vexpress_syscfg_write() local
130 return vexpress_syscfg_exec(func, index, true, &val); in vexpress_syscfg_write()
150 struct vexpress_syscfg_func *func; in vexpress_syscfg_regmap_init() local
185 func = kzalloc(sizeof(*func) + sizeof(*func->template) * num, in vexpress_syscfg_regmap_init()
187 if (!func) in vexpress_syscfg_regmap_init()
190 func->syscfg = syscfg; in vexpress_syscfg_regmap_init()
191 func->num_templates = num; in vexpress_syscfg_regmap_init()
200 func, site, position, dcc, in vexpress_syscfg_regmap_init()
203 func->template[i] = SYS_CFGCTRL_DCC(dcc); in vexpress_syscfg_regmap_init()
204 func->template[i] |= SYS_CFGCTRL_SITE(site); in vexpress_syscfg_regmap_init()
205 func->template[i] |= SYS_CFGCTRL_POSITION(position); in vexpress_syscfg_regmap_init()
206 func->template[i] |= SYS_CFGCTRL_FUNC(function); in vexpress_syscfg_regmap_init()
207 func->template[i] |= SYS_CFGCTRL_DEVICE(device); in vexpress_syscfg_regmap_init()
212 func->regmap = regmap_init(dev, NULL, func, in vexpress_syscfg_regmap_init()
215 if (IS_ERR(func->regmap)) { in vexpress_syscfg_regmap_init()
216 void *err = func->regmap; in vexpress_syscfg_regmap_init()
218 kfree(func); in vexpress_syscfg_regmap_init()
222 list_add(&func->list, &syscfg->funcs); in vexpress_syscfg_regmap_init()
224 return func->regmap; in vexpress_syscfg_regmap_init()
230 struct vexpress_syscfg_func *func, *tmp; in vexpress_syscfg_regmap_exit() local
234 list_for_each_entry_safe(func, tmp, &syscfg->funcs, list) { in vexpress_syscfg_regmap_exit()
235 if (func->regmap == regmap) { in vexpress_syscfg_regmap_exit()
237 kfree(func); in vexpress_syscfg_regmap_exit()