mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-07 13:53:24 +00:00
fsi: Add aliased device numbering
The I2C and SPI subsystems can use an aliased name to number the device. Add similar support to the FSI subsystem for any device type. Signed-off-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20230612195657.245125-3-eajames@linux.ibm.com Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
parent
d5d8dfb01e
commit
21930d80ed
@ -934,9 +934,34 @@ static int __fsi_get_new_minor(struct fsi_slave *slave, enum fsi_dev_type type,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *const fsi_dev_type_names[] = {
|
||||||
|
"cfam",
|
||||||
|
"sbefifo",
|
||||||
|
"scom",
|
||||||
|
"occ",
|
||||||
|
};
|
||||||
|
|
||||||
int fsi_get_new_minor(struct fsi_device *fdev, enum fsi_dev_type type,
|
int fsi_get_new_minor(struct fsi_device *fdev, enum fsi_dev_type type,
|
||||||
dev_t *out_dev, int *out_index)
|
dev_t *out_dev, int *out_index)
|
||||||
{
|
{
|
||||||
|
if (fdev->dev.of_node) {
|
||||||
|
int aid = of_alias_get_id(fdev->dev.of_node, fsi_dev_type_names[type]);
|
||||||
|
|
||||||
|
if (aid >= 0) {
|
||||||
|
int id = (aid << 4) | type;
|
||||||
|
|
||||||
|
id = ida_simple_get(&fsi_minor_ida, id, id + 1, GFP_KERNEL);
|
||||||
|
if (id >= 0) {
|
||||||
|
*out_index = aid;
|
||||||
|
*out_dev = fsi_base_dev + id;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id != -ENOSPC)
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return __fsi_get_new_minor(fdev->slave, type, out_dev, out_index);
|
return __fsi_get_new_minor(fdev->slave, type, out_dev, out_index);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(fsi_get_new_minor);
|
EXPORT_SYMBOL_GPL(fsi_get_new_minor);
|
||||||
|
Loading…
Reference in New Issue
Block a user