[PATCH] fsi: core: Fix legacy minor numbering

Joel Stanley joel at jms.id.au
Wed May 31 11:54:01 AEST 2023


On Thu, 13 Apr 2023 at 16:24, Eddie James <eajames at linux.ibm.com> wrote:
>
> FSI reserves the first 64 minor numbers for the legacy numbering
> based on the chip id. However the legacy number shifts the chip
> id too much, resulting in overlap between legacy and non-legacy
> numbers. Reduce the chip id bit shift since the type field only
> takes 2 bits.

I don't know much about the legacy numbering. Was that something we
used before the device tree descriptions were in place? Do we still
need it if we have updated device trees?

>
> Signed-off-by: Eddie James <eajames at linux.ibm.com>
> ---
>  drivers/fsi/fsi-core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
> index 0b927c9f4267..b9f410170655 100644
> --- a/drivers/fsi/fsi-core.c
> +++ b/drivers/fsi/fsi-core.c
> @@ -950,7 +950,7 @@ static int __fsi_get_new_minor(struct fsi_slave *slave, enum fsi_dev_type type,
>         /* Check if we qualify for legacy numbering */
>         if (cid >= 0 && cid < 16 && type < 4) {
>                 /* Try reserving the legacy number */

Would it help to put some of your commit message info in this comment,
so we know what the magic shift is doing?

> -               id = (cid << 4) | type;
> +               id = (cid << 2) | type;
>                 id = ida_simple_get(&fsi_minor_ida, id, id + 1, GFP_KERNEL);
>                 if (id >= 0) {
>                         *out_index = fsi_adjust_index(cid);
> --
> 2.31.1
>


More information about the linux-fsi mailing list