Modify RIO enumeration to apply RX/TX enable operations only to active
switch ports. This will leave inactive ports in condition consistent with
their state.

This patch is applicable to kernel versions starting from v2.6.35.

Signed-off-by: Alexandre Bounine <alexandre.boun...@idt.com>
Cc: Matt Porter <mpor...@kernel.crashing.org>
---
 drivers/rapidio/rio-scan.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/rapidio/rio-scan.c b/drivers/rapidio/rio-scan.c
index 2bebd79..02e686b 100644
--- a/drivers/rapidio/rio-scan.c
+++ b/drivers/rapidio/rio-scan.c
@@ -839,12 +839,10 @@ static int __devinit rio_enum_peer(struct rio_net *net, 
struct rio_mport *port,
                for (port_num = 0;
                     port_num < RIO_GET_TOTAL_PORTS(rdev->swpinfo);
                     port_num++) {
-                       /*Enable Input Output Port (transmitter reviever)*/
-                       rio_enable_rx_tx_port(port, 0,
+                       if (sw_inport == port_num) {
+                               rio_enable_rx_tx_port(port, 0,
                                              RIO_ANY_DESTID(port->sys_size),
                                              hopcount, port_num);
-
-                       if (sw_inport == port_num) {
                                rdev->rswitch->port_ok |= (1 << port_num);
                                continue;
                        }
@@ -857,6 +855,9 @@ static int __devinit rio_enum_peer(struct rio_net *net, 
struct rio_mport *port,
                                pr_debug(
                                    "RIO: scanning device on port %d\n",
                                    port_num);
+                               rio_enable_rx_tx_port(port, 0,
+                                             RIO_ANY_DESTID(port->sys_size),
+                                             hopcount, port_num);
                                rdev->rswitch->port_ok |= (1 << port_num);
                                rio_route_add_entry(rdev, RIO_GLOBAL_TABLE,
                                                RIO_ANY_DESTID(port->sys_size),
-- 
1.7.8.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to