Re: [PATCH] pinctrl: copy per-pin driver private data to struct pin_desc

From: Linus Walleij
Date: Tue May 31 2016 - 04:28:32 EST


On Wed, May 25, 2016 at 7:09 AM, Masahiro Yamada
<yamada.masahiro@xxxxxxxxxxxxx> wrote:

> Currently, struct pinctrl_pin_desc can have per-pin driver private
> data, but it is not copied to struct pin_desc.
>
> For a driver with sparse pin space, for-loop search like below would
> be necessary in order to get the driver-specific data for a desired
> pin number.
>
> for (i = 0; i < pctldev->desc->npins; i++)
> if (pin_number == pctldev->desc->pins[i].number)
> return pctldev->desc->pins[i].drv_data;
>
> This is not efficient for a driver with a large number of pins.
> So, copy the data to struct pin_desc when each pin is registered
> for the faster radix tree lookup.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>

Looks useful. I was a bit hesitant since the patch does not make
use of the new member, but I guess you need this for future
patches so applied it anyways. The refactoring looks nice in
all ways.

Yours,
Linus Walleij