rapidio: change endpoint device name format
Change endpoint device name format to use a component tag value instead of device destination ID. RapidIO specification defines a component tag to be a unique identifier for devices in a network. RapidIO switches already use component tag as part of their device name and also use it for device identification when processing error management event notifications. Forming an endpoint's device name using its component tag instead of destination ID allows to keep sysfs device directories unchanged in case if a routing process dynamically changes endpoint's destination ID as a result of route optimization. This change should not affect any existing users because a valid device destination ID always should be obtained by reading "destid" attribute and not by parsing device name. This patch also removes switchid member from struct rio_switch because it simply duplicates the component tag and does not have other use than in device name generation. Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Cc: Andre van Herk <andre.van.herk@Prodrive.nl> Cc: Micha Nelissen <micha.nelissen@Prodrive.nl> Cc: Stef van Os <stef.van.os@Prodrive.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
ed5edee2f8
commit
6ca40c2565
@ -433,7 +433,6 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
|
|||||||
/* If a PE has both switch and other functions, show it as a switch */
|
/* If a PE has both switch and other functions, show it as a switch */
|
||||||
if (rio_is_switch(rdev)) {
|
if (rio_is_switch(rdev)) {
|
||||||
rswitch = rdev->rswitch;
|
rswitch = rdev->rswitch;
|
||||||
rswitch->switchid = rdev->comp_tag & RIO_CTAG_UDEVID;
|
|
||||||
rswitch->port_ok = 0;
|
rswitch->port_ok = 0;
|
||||||
spin_lock_init(&rswitch->lock);
|
spin_lock_init(&rswitch->lock);
|
||||||
rswitch->route_table = kzalloc(sizeof(u8)*
|
rswitch->route_table = kzalloc(sizeof(u8)*
|
||||||
@ -446,7 +445,7 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
|
|||||||
rdid++)
|
rdid++)
|
||||||
rswitch->route_table[rdid] = RIO_INVALID_ROUTE;
|
rswitch->route_table[rdid] = RIO_INVALID_ROUTE;
|
||||||
dev_set_name(&rdev->dev, "%02x:s:%04x", rdev->net->id,
|
dev_set_name(&rdev->dev, "%02x:s:%04x", rdev->net->id,
|
||||||
rswitch->switchid);
|
rdev->comp_tag & RIO_CTAG_UDEVID);
|
||||||
|
|
||||||
if (do_enum)
|
if (do_enum)
|
||||||
rio_route_clr_table(rdev, RIO_GLOBAL_TABLE, 0);
|
rio_route_clr_table(rdev, RIO_GLOBAL_TABLE, 0);
|
||||||
@ -459,7 +458,7 @@ static struct rio_dev *rio_setup_device(struct rio_net *net,
|
|||||||
rio_enable_rx_tx_port(port, 0, destid, hopcount, 0);
|
rio_enable_rx_tx_port(port, 0, destid, hopcount, 0);
|
||||||
|
|
||||||
dev_set_name(&rdev->dev, "%02x:e:%04x", rdev->net->id,
|
dev_set_name(&rdev->dev, "%02x:e:%04x", rdev->net->id,
|
||||||
rdev->destid);
|
rdev->comp_tag & RIO_CTAG_UDEVID);
|
||||||
}
|
}
|
||||||
|
|
||||||
rio_attach_device(rdev);
|
rio_attach_device(rdev);
|
||||||
|
@ -92,7 +92,6 @@ union rio_pw_msg;
|
|||||||
/**
|
/**
|
||||||
* struct rio_switch - RIO switch info
|
* struct rio_switch - RIO switch info
|
||||||
* @node: Node in global list of switches
|
* @node: Node in global list of switches
|
||||||
* @switchid: Switch ID that is unique across a network
|
|
||||||
* @route_table: Copy of switch routing table
|
* @route_table: Copy of switch routing table
|
||||||
* @port_ok: Status of each port (one bit per port) - OK=1 or UNINIT=0
|
* @port_ok: Status of each port (one bit per port) - OK=1 or UNINIT=0
|
||||||
* @ops: pointer to switch-specific operations
|
* @ops: pointer to switch-specific operations
|
||||||
@ -101,7 +100,6 @@ union rio_pw_msg;
|
|||||||
*/
|
*/
|
||||||
struct rio_switch {
|
struct rio_switch {
|
||||||
struct list_head node;
|
struct list_head node;
|
||||||
u16 switchid;
|
|
||||||
u8 *route_table;
|
u8 *route_table;
|
||||||
u32 port_ok;
|
u32 port_ok;
|
||||||
struct rio_switch_ops *ops;
|
struct rio_switch_ops *ops;
|
||||||
|
Loading…
Reference in New Issue
Block a user