[MLX4] some fixes to support the mixed IB/Eth mode. (mlnx: 2947,2949)
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 14 Aug 2008 18:45:08 +0000 (18:45 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 14 Aug 2008 18:45:08 +0000 (18:45 +0000)
The only mixed configuration, supported now, is port1-IB, port2-Eth.
To work with it one has to burn FW with parameter 'dpdp_en=true' in INI file, for example MHGH28-XSC_A4-A5.ini.

ib_query_ca returns now the number of IB- and not physical ports. So VSTAT will show only one port and IBBUS will create only one IPoIB adapter.

git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@1482 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

hw/mlx4/kernel/bus/ib/main.c
hw/mlx4/kernel/bus/net/fw.c
hw/mlx4/kernel/bus/net/main.c
hw/mlx4/kernel/bus/net/mlx4.h
hw/mlx4/kernel/hca/ca.c

index 923134c..fa46eb7 100644 (file)
@@ -36,8 +36,7 @@
 #include "cmd.h"
 #include "user.h"
 #include "ib_cache.h"
-
-#define DRV_NAME       "mlx4_ib"
+#include "net\mlx4.h"
 
 static void init_query_mad(struct ib_smp *mad)
 {
@@ -510,7 +509,7 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)
 
        strlcpy(ibdev->ib_dev.name, "mlx4_%d", IB_DEVICE_NAME_MAX);
        ibdev->ib_dev.node_type         = RDMA_NODE_IB_CA;
-       ibdev->ib_dev.phys_port_cnt     = (u8)dev->caps.num_ports;
+       ibdev->ib_dev.phys_port_cnt     = (u8)mlx4_count_ib_ports();
        ibdev->ib_dev.num_comp_vectors  = 1;
        ibdev->ib_dev.dma_device        = dev->pdev->dev;
 
index b945ab3..0e792b1 100644 (file)
@@ -87,6 +87,11 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u32 flags)
                fname[8] = "P_Key violation counter";
                fname[9] = "Q_Key violation counter";
                fname[10] = "VMM";
+               fname[11] = "Unknown capability flag (11)";
+               fname[12] = "DPDP (different port interfaces)";
+               fname[13] = "Unknown capability flag (13)";
+               fname[14] = "Unknown capability flag (14)";
+               fname[15] = "Unknown capability flag (15)";
                fname[16] = "MW support";
                fname[17] = "APM support";
                fname[18] = "Atomic ops support";
index dbd377c..fbaf260 100644 (file)
@@ -165,7 +165,7 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
        int num_eth_ports = 0;
        enum mlx4_port_type port_type[MLX4_MAX_PORTS];
 
-               for (i = 0; i < MLX4_MAX_PORTS; i++) 
+       for (i = 0; i < MLX4_MAX_PORTS; i++) 
                port_type[i] = g.mod_port_type[i];
 
        err = mlx4_QUERY_DEV_CAP(dev, dev_cap);
index 0027c70..855bce0 100644 (file)
 #include "eq.h"
 
 
-#define DRV_NAME       "mlx4_net"
-#define PFX            DRV_NAME ": "
-
-
 //
 // Structure for reporting data to WMI
 //
index 3b77659..cfb53b6 100644 (file)
@@ -182,7 +182,7 @@ mlnx_query_ca (
                goto err_query_device;\r
        }\r
        \r
-       // alocate arrary for port properties\r
+       // allocate array for port properties\r
        num_ports = p_ibdev->phys_port_cnt;   /* Number of physical ports of the HCA */\r
        if ( num_ports )\r
                if (NULL == (hca_ports = cl_zalloc( num_ports * sizeof *hca_ports))) {\r