Commit 30cc5389 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Linus Walleij

pinctrl: thunderbay: comment process of building functions a bit

This should make code a bit easier to follow. While at it use some "for"
loops to simplify array iteration loops.

Ref: 5d067499 ("pinctrl: keembay: comment process of building functions a bit")
Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20220111172919.6567-1-zajec5@gmail.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent e783362e
......@@ -839,27 +839,30 @@ static int thunderbay_build_functions(struct thunderbay_pinctrl *tpc)
void *ptr;
int pin;
/* Total number of functions is unknown at this point. Allocate first. */
/*
* Allocate maximum possible number of functions. Assume every pin
* being part of 8 (hw maximum) globally unique muxes.
*/
tpc->nfuncs = 0;
thunderbay_funcs = kcalloc(tpc->soc->npins * 8,
sizeof(*thunderbay_funcs), GFP_KERNEL);
if (!thunderbay_funcs)
return -ENOMEM;
/* Find total number of functions and each's properties */
/* Setup 1 function for each unique mux */
for (pin = 0; pin < tpc->soc->npins; pin++) {
const struct pinctrl_pin_desc *pin_info = thunderbay_pins + pin;
struct thunderbay_mux_desc *pin_mux = pin_info->drv_data;
struct thunderbay_mux_desc *pin_mux;
while (pin_mux->name) {
struct function_desc *func = thunderbay_funcs;
for (pin_mux = pin_info->drv_data; pin_mux->name; pin_mux++) {
struct function_desc *func;
while (func->name) {
/* Check if we already have function for this mux */
for (func = thunderbay_funcs; func->name; func++) {
if (!strcmp(pin_mux->name, func->name)) {
func->num_group_names++;
break;
}
func++;
}
if (!func->name) {
......@@ -868,8 +871,6 @@ static int thunderbay_build_functions(struct thunderbay_pinctrl *tpc)
func->data = (int *)&pin_mux->mode;
tpc->nfuncs++;
}
pin_mux++;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment