[PATCH] fsi: core: Fix legacy minor numbering
Eddie James
eajames at linux.ibm.com
Fri Jun 9 02:44:19 AEST 2023
On 5/30/23 20:54, Joel Stanley wrote:
> 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?
Its a way to number the devices based on the "chip id", which came from
the device tree anyway. Now with the aliasing patch we could do away
with it I believe, but we would need to update older system device trees
(and scom devices on p10) to not break stuff.
>
>> 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?
Sure thing.
Thanks,
Eddie
>
>> - 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