netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/7] qlcnic: Driver updates
@ 2013-04-24 22:42 Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 1/7] qlcnic: Enhance channel configuration logs Jitendra Kalsaria
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Jitendra Kalsaria

From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>

This set of patches has following updates:
* Enhanced channel configuration logs by adding logs for various cases.
* Take EPORT out of reset before disabling pause frame generation in the
  adapter.
* Add eSwitch statistics support in ethtool stats.
* Enable interrupt coalescing for 83xx adapter.
* Rename IRQ description.
* Added PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_834X and PCI_DEVICE_ID_QLOGIC_824X
  for the patch "qlcnic: Add identifying string for 83xx adapter" as per Francois comment.  

Please apply to net-next.

Thanks,
    Jiten

Himanshu Madhani (3):
  qlcnic: Enable Interrupt Coalescing for 83xx adapter
  qlcnic: Rename the IRQ description.
  qlcnic: Add identifying string for 83xx adapter

Manish Chopra (2):
  qlcnic: Enhance channel configuration logs
  qlcnic: Take EPORT out of reset sequence before disabling PAUSE

Shahed Shaikh (2):
  qlcnic: Add eSwitch statistics support
  qlcnic: Update version to 5.2.42

 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |   22 ++-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |   19 ++-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h    |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c  |   25 +++
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |   77 +++++++--
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |  193 ++++++++++++++++----
 6 files changed, 277 insertions(+), 61 deletions(-)

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH net-next 1/7] qlcnic: Enhance channel configuration logs
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 2/7] qlcnic: Take EPORT out of reset sequence before disabling PAUSE Jitendra Kalsaria
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

o Add logs for various failure conditions during channel configuration.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |    2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |   32 ++++++++++++++++----
 3 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index 8d02dd7..f699cce 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -1474,7 +1474,7 @@ void qlcnic_diag_free_res(struct net_device *netdev, int max_sds_rings);
 int qlcnic_diag_alloc_res(struct net_device *netdev, int test);
 netdev_tx_t qlcnic_xmit_frame(struct sk_buff *skb, struct net_device *netdev);
 int qlcnic_set_max_rss(struct qlcnic_adapter *, u8, size_t);
-int qlcnic_validate_max_rss(u8, u8);
+int qlcnic_validate_max_rss(struct qlcnic_adapter *, __u32);
 void qlcnic_alloc_lb_filters_mem(struct qlcnic_adapter *adapter);
 int qlcnic_enable_msix(struct qlcnic_adapter *, u32);
 
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
index 9f7aade..59350c2 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
@@ -635,7 +635,7 @@ static int qlcnic_set_channels(struct net_device *dev,
 	    channel->tx_count != channel->max_tx)
 		return -EINVAL;
 
-	err = qlcnic_validate_max_rss(channel->max_rx, channel->rx_count);
+	err = qlcnic_validate_max_rss(adapter, channel->rx_count);
 	if (err)
 		return err;
 
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 247a9f9..0052953 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -3273,20 +3273,40 @@ qlcnicvf_start_firmware(struct qlcnic_adapter *adapter)
 	return err;
 }
 
-int qlcnic_validate_max_rss(u8 max_hw, u8 val)
+int qlcnic_validate_max_rss(struct qlcnic_adapter *adapter,
+			    __u32 val)
 {
+	struct net_device *netdev = adapter->netdev;
+	u8 max_hw = adapter->ahw->max_rx_ques;
 	u32 max_allowed;
 
-	if (max_hw > QLC_MAX_SDS_RINGS) {
-		max_hw = QLC_MAX_SDS_RINGS;
-		pr_info("max rss reset to %d\n", QLC_MAX_SDS_RINGS);
+	if (val > QLC_MAX_SDS_RINGS) {
+		netdev_err(netdev, "RSS value should not be higher than %u\n",
+			   QLC_MAX_SDS_RINGS);
+		return -EINVAL;
 	}
 
 	max_allowed = rounddown_pow_of_two(min_t(int, max_hw,
 						 num_online_cpus()));
 	if ((val > max_allowed) || (val < 2) || !is_power_of_2(val)) {
-		pr_info("rss_ring valid range [2 - %x] in powers of 2\n",
-			max_allowed);
+		if (!is_power_of_2(val))
+			netdev_err(netdev, "RSS value should be a power of 2\n");
+
+		if (val < 2)
+			netdev_err(netdev, "RSS value should not be lower than 2\n");
+
+		if (val > max_hw)
+			netdev_err(netdev,
+				   "RSS value should not be higher than[%u], the max RSS rings supported by the adapter\n",
+				   max_hw);
+
+		if (val > num_online_cpus())
+			netdev_err(netdev,
+				   "RSS value should not be higher than[%u], number of online CPUs in the system\n",
+				   num_online_cpus());
+
+		netdev_err(netdev, "Unable to configure %u RSS rings\n", val);
+
 		return -EINVAL;
 	}
 	return 0;
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 2/7] qlcnic: Take EPORT out of reset sequence before disabling PAUSE
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 1/7] qlcnic: Enhance channel configuration logs Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 3/7] qlcnic: Add eSwitch statistics support Jitendra Kalsaria
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Manish Chopra

From: Manish Chopra <manish.chopra@qlogic.com>

o Disabling PAUSE requires access to EPORT registers,
  which may cause a wedge, if EPORT is in reset.

Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c  |   25 ++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
index 6ea3a09..ab1d8d9 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
@@ -25,6 +25,17 @@
 #define QLC_83XX_OPCODE_TMPL_END		0x0080
 #define QLC_83XX_OPCODE_POLL_READ_LIST		0x0100
 
+/* EPORT control registers */
+#define QLC_83XX_RESET_CONTROL			0x28084E50
+#define QLC_83XX_RESET_REG			0x28084E60
+#define QLC_83XX_RESET_PORT0			0x28084E70
+#define QLC_83XX_RESET_PORT1			0x28084E80
+#define QLC_83XX_RESET_PORT2			0x28084E90
+#define QLC_83XX_RESET_PORT3			0x28084EA0
+#define QLC_83XX_RESET_SRESHIM			0x28084EB0
+#define QLC_83XX_RESET_EPGSHIM			0x28084EC0
+#define QLC_83XX_RESET_ETHERPCS			0x28084ED0
+
 static int qlcnic_83xx_init_default_driver(struct qlcnic_adapter *adapter);
 static int qlcnic_83xx_check_heartbeat(struct qlcnic_adapter *p_dev);
 static int qlcnic_83xx_restart_hw(struct qlcnic_adapter *adapter);
@@ -1374,6 +1385,19 @@ static void qlcnic_83xx_disable_pause_frames(struct qlcnic_adapter *adapter)
 	qlcnic_83xx_unlock_driver(adapter);
 }
 
+static void qlcnic_83xx_take_eport_out_of_reset(struct qlcnic_adapter *adapter)
+{
+	QLCWR32(adapter, QLC_83XX_RESET_REG, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_PORT0, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_PORT1, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_PORT2, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_PORT3, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_SRESHIM, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_EPGSHIM, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_ETHERPCS, 0);
+	QLCWR32(adapter, QLC_83XX_RESET_CONTROL, 1);
+}
+
 static int qlcnic_83xx_check_heartbeat(struct qlcnic_adapter *p_dev)
 {
 	u32 heartbeat, peg_status;
@@ -1395,6 +1419,7 @@ static int qlcnic_83xx_check_heartbeat(struct qlcnic_adapter *p_dev)
 
 	if (ret) {
 		dev_err(&p_dev->pdev->dev, "firmware hang detected\n");
+		qlcnic_83xx_take_eport_out_of_reset(p_dev);
 		qlcnic_83xx_disable_pause_frames(p_dev);
 		peg_status = QLC_SHARED_REG_RD32(p_dev,
 						 QLCNIC_PEG_HALT_STATUS1);
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 3/7] qlcnic: Add eSwitch statistics support
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 1/7] qlcnic: Enhance channel configuration logs Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 2/7] qlcnic: Take EPORT out of reset sequence before disabling PAUSE Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 4/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Jitendra Kalsaria
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem; +Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver

From: Shahed Shaikh <shahed.shaikh@qlogic.com>

o Read eSwitch statistics from adapter and display them as part
  of ethtool statistics.

Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |    3 +++
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h    |    2 +-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |    7 +++++++
 3 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index fd0829c..c40b077 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -2922,6 +2922,9 @@ static u64 *qlcnic_83xx_fill_stats(struct qlcnic_adapter *adapter,
 		/* fill in MAC rx frame stats */
 		for (k += 6; k < 80; k += 2)
 			data = qlcnic_83xx_copy_stats(cmd, data, k);
+		/* fill in eSwitch stats */
+		for (; k < total_regs; k += 2)
+			data = qlcnic_83xx_copy_stats(cmd, data, k);
 		break;
 	case QLC_83XX_STAT_RX:
 		for (k = 2; k < 8; k += 2)
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h
index 4be411c..1f1d85e 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h
@@ -381,7 +381,7 @@ enum qlcnic_83xx_states {
 #define QLC_83XX_STAT_MAC	1
 #define QLC_83XX_TX_STAT_REGS	14
 #define QLC_83XX_RX_STAT_REGS	40
-#define QLC_83XX_MAC_STAT_REGS	80
+#define QLC_83XX_MAC_STAT_REGS	94
 
 #define QLC_83XX_GET_FUNC_PRIVILEGE(VAL, FN)	(0x3 & ((VAL) >> (FN * 2)))
 #define QLC_83XX_SET_FUNC_OPMODE(VAL, FN)	((VAL) << (FN * 2))
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
index 59350c2..629d901 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
@@ -115,6 +115,13 @@ static const char qlcnic_83xx_mac_stats_strings[][ETH_GSTRING_LEN] = {
 	"mac_rx_dropped",
 	"mac_crc_error",
 	"mac_align_error",
+	"eswitch_frames",
+	"eswitch_bytes",
+	"eswitch_multicast_frames",
+	"eswitch_broadcast_frames",
+	"eswitch_unicast_frames",
+	"eswitch_error_free_frames",
+	"eswitch_error_free_bytes",
 };
 
 #define QLCNIC_STATS_LEN	ARRAY_SIZE(qlcnic_gstrings_stats)
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 4/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
                   ` (2 preceding siblings ...)
  2013-04-24 22:42 ` [PATCH net-next 3/7] qlcnic: Add eSwitch statistics support Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 5/7] qlcnic: Rename the IRQ description Jitendra Kalsaria
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Himanshu Madhani

From: Himanshu Madhani <himanshu.madhani@qlogic.com>

Enable Interrupt coalescing through ethtool on 83xx adapter.

Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h        |   12 +++-
 .../net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c    |   16 ++++-
 .../net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c    |   68 ++++++++++++++++----
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |   13 +++-
 4 files changed, 87 insertions(+), 22 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index f699cce..767c683 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -347,8 +347,14 @@ struct qlcnic_rx_buffer {
  * Interrupt coalescing defaults. The defaults are for 1500 MTU. It is
  * adjusted based on configured MTU.
  */
-#define QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US	3
-#define QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS	256
+#define QLCNIC_INTR_COAL_TYPE_RX		1
+#define QLCNIC_INTR_COAL_TYPE_TX		2
+
+#define QLCNIC_DEF_INTR_COALESCE_RX_TIME_US	3
+#define QLCNIC_DEF_INTR_COALESCE_RX_PACKETS	256
+
+#define QLCNIC_DEF_INTR_COALESCE_TX_TIME_US	64
+#define QLCNIC_DEF_INTR_COALESCE_TX_PACKETS	64
 
 #define QLCNIC_INTR_DEFAULT			0x04
 #define QLCNIC_CONFIG_INTR_COALESCE		3
@@ -359,6 +365,8 @@ struct qlcnic_nic_intr_coalesce {
 	u8	sts_ring_mask;
 	u16	rx_packets;
 	u16	rx_time_us;
+	u16	tx_packets;
+	u16	tx_time_us;
 	u16	flag;
 	u32	timer_out;
 };
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index c40b077..ea790a9 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -1937,7 +1937,7 @@ int qlcnic_83xx_get_mac_address(struct qlcnic_adapter *adapter, u8 *mac)
 void qlcnic_83xx_config_intr_coal(struct qlcnic_adapter *adapter)
 {
 	int err;
-	u32 temp;
+	u16 temp;
 	struct qlcnic_cmd_args cmd;
 	struct qlcnic_nic_intr_coalesce *coal = &adapter->ahw->coal;
 
@@ -1945,10 +1945,18 @@ void qlcnic_83xx_config_intr_coal(struct qlcnic_adapter *adapter)
 		return;
 
 	qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_INTR_COAL);
-	cmd.req.arg[1] = 1 | (adapter->recv_ctx->context_id << 16);
+	if (coal->type == QLCNIC_INTR_COAL_TYPE_RX) {
+		temp = adapter->recv_ctx->context_id;
+		cmd.req.arg[1] = QLCNIC_INTR_COAL_TYPE_RX | temp << 16;
+		temp = coal->rx_time_us;
+		cmd.req.arg[2] = coal->rx_packets | temp << 16;
+	} else if (coal->type == QLCNIC_INTR_COAL_TYPE_TX) {
+		temp = adapter->tx_ring->ctx_id;
+		cmd.req.arg[1] = QLCNIC_INTR_COAL_TYPE_TX | temp << 16;
+		temp = coal->tx_time_us;
+		cmd.req.arg[2] = coal->tx_packets | temp << 16;
+	}
 	cmd.req.arg[3] = coal->flag;
-	temp = coal->rx_time_us << 16;
-	cmd.req.arg[2] = coal->rx_packets | temp;
 	err = qlcnic_issue_cmd(adapter, &cmd);
 	if (err != QLCNIC_RCODE_SUCCESS)
 		dev_info(&adapter->pdev->dev,
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
index 629d901..08efb46 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c
@@ -1303,6 +1303,9 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev,
 			struct ethtool_coalesce *ethcoal)
 {
 	struct qlcnic_adapter *adapter = netdev_priv(netdev);
+	struct qlcnic_nic_intr_coalesce *coal;
+	u32 rx_coalesce_usecs, rx_max_frames;
+	u32 tx_coalesce_usecs, tx_max_frames;
 
 	if (!test_bit(__QLCNIC_DEV_UP, &adapter->state))
 		return -EINVAL;
@@ -1313,8 +1316,8 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev,
 	*/
 	if (ethcoal->rx_coalesce_usecs > 0xffff ||
 		ethcoal->rx_max_coalesced_frames > 0xffff ||
-		ethcoal->tx_coalesce_usecs ||
-		ethcoal->tx_max_coalesced_frames ||
+		ethcoal->tx_coalesce_usecs > 0xffff ||
+		ethcoal->tx_max_coalesced_frames > 0xffff ||
 		ethcoal->rx_coalesce_usecs_irq ||
 		ethcoal->rx_max_coalesced_frames_irq ||
 		ethcoal->tx_coalesce_usecs_irq ||
@@ -1334,18 +1337,55 @@ static int qlcnic_set_intr_coalesce(struct net_device *netdev,
 		ethcoal->tx_max_coalesced_frames_high)
 		return -EINVAL;
 
-	if (!ethcoal->rx_coalesce_usecs ||
-		!ethcoal->rx_max_coalesced_frames) {
-		adapter->ahw->coal.flag = QLCNIC_INTR_DEFAULT;
-		adapter->ahw->coal.rx_time_us =
-			QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US;
-		adapter->ahw->coal.rx_packets =
-			QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS;
+	coal = &adapter->ahw->coal;
+
+	if (qlcnic_83xx_check(adapter)) {
+		if (!ethcoal->tx_coalesce_usecs ||
+		    !ethcoal->tx_max_coalesced_frames ||
+		    !ethcoal->rx_coalesce_usecs ||
+		    !ethcoal->rx_max_coalesced_frames) {
+			coal->flag = QLCNIC_INTR_DEFAULT;
+			coal->type = QLCNIC_INTR_COAL_TYPE_RX;
+			coal->rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US;
+			coal->rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS;
+			coal->tx_time_us = QLCNIC_DEF_INTR_COALESCE_TX_TIME_US;
+			coal->tx_packets = QLCNIC_DEF_INTR_COALESCE_TX_PACKETS;
+		} else {
+			tx_coalesce_usecs = ethcoal->tx_coalesce_usecs;
+			tx_max_frames = ethcoal->tx_max_coalesced_frames;
+			rx_coalesce_usecs = ethcoal->rx_coalesce_usecs;
+			rx_max_frames = ethcoal->rx_max_coalesced_frames;
+			coal->flag = 0;
+
+			if ((coal->rx_time_us == rx_coalesce_usecs) &&
+			    (coal->rx_packets == rx_max_frames)) {
+				coal->type = QLCNIC_INTR_COAL_TYPE_TX;
+				coal->tx_time_us = tx_coalesce_usecs;
+				coal->tx_packets = tx_max_frames;
+			} else if ((coal->tx_time_us == tx_coalesce_usecs) &&
+				   (coal->tx_packets == tx_max_frames)) {
+				coal->type = QLCNIC_INTR_COAL_TYPE_RX;
+				coal->rx_time_us = rx_coalesce_usecs;
+				coal->rx_packets = rx_max_frames;
+			} else {
+				coal->type = QLCNIC_INTR_COAL_TYPE_RX;
+				coal->rx_time_us = rx_coalesce_usecs;
+				coal->rx_packets = rx_max_frames;
+				coal->tx_time_us = tx_coalesce_usecs;
+				coal->tx_packets = tx_max_frames;
+			}
+		}
 	} else {
-		adapter->ahw->coal.flag = 0;
-		adapter->ahw->coal.rx_time_us = ethcoal->rx_coalesce_usecs;
-		adapter->ahw->coal.rx_packets =
-			ethcoal->rx_max_coalesced_frames;
+		if (!ethcoal->rx_coalesce_usecs ||
+		    !ethcoal->rx_max_coalesced_frames) {
+			coal->flag = QLCNIC_INTR_DEFAULT;
+			coal->rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US;
+			coal->rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS;
+		} else {
+			coal->flag = 0;
+			coal->rx_time_us = ethcoal->rx_coalesce_usecs;
+			coal->rx_packets = ethcoal->rx_max_coalesced_frames;
+		}
 	}
 
 	qlcnic_config_intr_coalesce(adapter);
@@ -1363,6 +1403,8 @@ static int qlcnic_get_intr_coalesce(struct net_device *netdev,
 
 	ethcoal->rx_coalesce_usecs = adapter->ahw->coal.rx_time_us;
 	ethcoal->rx_max_coalesced_frames = adapter->ahw->coal.rx_packets;
+	ethcoal->tx_coalesce_usecs = adapter->ahw->coal.tx_time_us;
+	ethcoal->tx_max_coalesced_frames = adapter->ahw->coal.tx_packets;
 
 	return 0;
 }
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 0052953..4e0bcb1 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1587,7 +1587,9 @@ out:
 
 static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter)
 {
+	struct qlcnic_hardware_context *ahw = adapter->ahw;
 	int err = 0;
+
 	adapter->recv_ctx = kzalloc(sizeof(struct qlcnic_recv_context),
 				GFP_KERNEL);
 	if (!adapter->recv_ctx) {
@@ -1595,9 +1597,14 @@ static int qlcnic_alloc_adapter_resources(struct qlcnic_adapter *adapter)
 		goto err_out;
 	}
 	/* Initialize interrupt coalesce parameters */
-	adapter->ahw->coal.flag = QLCNIC_INTR_DEFAULT;
-	adapter->ahw->coal.rx_time_us = QLCNIC_DEFAULT_INTR_COALESCE_RX_TIME_US;
-	adapter->ahw->coal.rx_packets = QLCNIC_DEFAULT_INTR_COALESCE_RX_PACKETS;
+	ahw->coal.flag = QLCNIC_INTR_DEFAULT;
+	ahw->coal.type = QLCNIC_INTR_COAL_TYPE_RX;
+	ahw->coal.rx_time_us = QLCNIC_DEF_INTR_COALESCE_RX_TIME_US;
+	ahw->coal.rx_packets = QLCNIC_DEF_INTR_COALESCE_RX_PACKETS;
+	if (qlcnic_83xx_check(adapter)) {
+		ahw->coal.tx_time_us = QLCNIC_DEF_INTR_COALESCE_TX_TIME_US;
+		ahw->coal.tx_packets = QLCNIC_DEF_INTR_COALESCE_TX_PACKETS;
+	}
 	/* clear stats */
 	memset(&adapter->stats, 0, sizeof(adapter->stats));
 err_out:
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 5/7] qlcnic: Rename the IRQ description.
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
                   ` (3 preceding siblings ...)
  2013-04-24 22:42 ` [PATCH net-next 4/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-25  0:05   ` Ben Hutchings
  2013-04-24 22:42 ` [PATCH net-next 6/7] qlcnic: Add identifying string for 83xx adapter Jitendra Kalsaria
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Himanshu Madhani

From: Himanshu Madhani <himanshu.madhani@qlogic.com>

Here's what modified vectors will look like
in the /proc/interrupts

        MSIx             	INTx
-----------------------------------------
83xx    qlcnic[MB]
	qlcnic-ethX[Rx0]
	qlcnic-ethX[Rx1]
	..
	qlcnic-ethX[RxN]
	qlcnic-ethx[Tx0]        qlcnic[MB+Tx0+Rx0]

82xx    qlcnic-ethX[Rx0]
	qlcnic-ethX[Rx1]
	..
	qlcnic-ethX[Tx0+RxN]    qlcnic-ethX[Tx0+Rx0]

Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h      |    4 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |   23 +++++++++++++++------
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index 767c683..b2206db 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -519,13 +519,13 @@ struct qlcnic_host_sds_ring {
 	int irq;
 
 	dma_addr_t phys_addr;
-	char name[IFNAMSIZ+4];
+	char name[IFNAMSIZ + 12];
 } ____cacheline_internodealigned_in_smp;
 
 struct qlcnic_host_tx_ring {
 	int irq;
 	void __iomem *crb_intr_mask;
-	char name[IFNAMSIZ+4];
+	char name[IFNAMSIZ + 12];
 	u16 ctx_id;
 	u32 producer;
 	u32 sw_consumer;
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 4e0bcb1..1310b7b 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -1287,7 +1287,7 @@ qlcnic_request_irq(struct qlcnic_adapter *adapter)
 	irq_handler_t handler;
 	struct qlcnic_host_sds_ring *sds_ring;
 	struct qlcnic_host_tx_ring *tx_ring;
-	int err, ring;
+	int err, ring, num_sds_rings;
 
 	unsigned long flags = 0;
 	struct net_device *netdev = adapter->netdev;
@@ -1318,10 +1318,20 @@ qlcnic_request_irq(struct qlcnic_adapter *adapter)
 		if (qlcnic_82xx_check(adapter) ||
 		    (qlcnic_83xx_check(adapter) &&
 		     (adapter->flags & QLCNIC_MSIX_ENABLED))) {
-			for (ring = 0; ring < adapter->max_sds_rings; ring++) {
+			num_sds_rings = adapter->max_sds_rings;
+			for (ring = 0; ring < num_sds_rings; ring++) {
 				sds_ring = &recv_ctx->sds_rings[ring];
-				snprintf(sds_ring->name, sizeof(int) + IFNAMSIZ,
-					 "%s[%d]", netdev->name, ring);
+				if (qlcnic_82xx_check(adapter) &&
+				    (ring == (num_sds_rings - 1)))
+					snprintf(sds_ring->name,
+						 sizeof(sds_ring->name),
+						 "qlcnic-%s[Tx0+Rx%d]",
+						 netdev->name, ring);
+				else
+					snprintf(sds_ring->name,
+						 sizeof(sds_ring->name),
+						 "qlcnic-%s[Rx%d]",
+						 netdev->name, ring);
 				err = request_irq(sds_ring->irq, handler, flags,
 						  sds_ring->name, sds_ring);
 				if (err)
@@ -1335,9 +1345,8 @@ qlcnic_request_irq(struct qlcnic_adapter *adapter)
 			for (ring = 0; ring < adapter->max_drv_tx_rings;
 			     ring++) {
 				tx_ring = &adapter->tx_ring[ring];
-				snprintf(tx_ring->name, sizeof(int) + IFNAMSIZ,
-					 "%s[%d]", netdev->name,
-					 adapter->max_sds_rings + ring);
+				snprintf(tx_ring->name, sizeof(tx_ring->name),
+					 "qlcnic-%s[Tx%d]", netdev->name, ring);
 				err = request_irq(tx_ring->irq, handler, flags,
 						  tx_ring->name, tx_ring);
 				if (err)
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 6/7] qlcnic: Add identifying string for 83xx adapter
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
                   ` (4 preceding siblings ...)
  2013-04-24 22:42 ` [PATCH net-next 5/7] qlcnic: Rename the IRQ description Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 22:42 ` [PATCH net-next 7/7] qlcnic: Update version to 5.2.42 Jitendra Kalsaria
  2013-04-24 23:36 ` [PATCH net-next 0/7] qlcnic: Driver updates David Miller
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver,
	Himanshu Madhani

From: Himanshu Madhani <himanshu.madhani@qlogic.com>

o Added identifying strings for 8300 Series of adapters.
o updated PCI_VENDOR_ID_QLOGIC and PCI_DEVICE_ID_824X for 8200
  Series adapter.

Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |  125 ++++++++++++++++++----
 1 files changed, 106 insertions(+), 19 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 1310b7b..264d5a4 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -156,25 +156,112 @@ static const u32 qlcnic_reg_tbl[] = {
 };
 
 static const struct qlcnic_board_info qlcnic_boards[] = {
-	{0x1077, 0x8020, 0x1077, 0x203,
-	 "8200 Series Single Port 10GbE Converged Network Adapter"
-	 "(TCP/IP Networking)"},
-	{0x1077, 0x8020, 0x1077, 0x207,
-	 "8200 Series Dual Port 10GbE Converged Network Adapter"
-	 "(TCP/IP Networking)"},
-	{0x1077, 0x8020, 0x1077, 0x20b,
-	 "3200 Series Dual Port 10Gb Intelligent Ethernet Adapter"},
-	{0x1077, 0x8020, 0x1077, 0x20c,
-	 "3200 Series Quad Port 1Gb Intelligent Ethernet Adapter"},
-	{0x1077, 0x8020, 0x1077, 0x20f,
-	 "3200 Series Single Port 10Gb Intelligent Ethernet Adapter"},
-	{0x1077, 0x8020, 0x103c, 0x3733,
-	 "NC523SFP 10Gb 2-port Server Adapter"},
-	{0x1077, 0x8020, 0x103c, 0x3346,
-	 "CN1000Q Dual Port Converged Network Adapter"},
-	{0x1077, 0x8020, 0x1077, 0x210,
-	 "QME8242-k 10GbE Dual Port Mezzanine Card"},
-	{0x1077, 0x8020, 0x0, 0x0, "cLOM8214 1/10GbE Controller"},
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x24e,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x243,
+	  "8300 Series Single Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x24a,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x246,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x252,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x26e,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x260,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x266,
+	  "8300 Series Single Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x269,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x271,
+	  "8300 Series Dual Port 10GbE Converged Network Adapter "
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE834X,
+	  0x0, 0x0, "8300 Series 1/10GbE Controller" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x203,
+	  "8200 Series Single Port 10GbE Converged Network Adapter"
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x207,
+	  "8200 Series Dual Port 10GbE Converged Network Adapter"
+	  "(TCP/IP Networking)" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x20b,
+	  "3200 Series Dual Port 10Gb Intelligent Ethernet Adapter" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x20c,
+	  "3200 Series Quad Port 1Gb Intelligent Ethernet Adapter" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x20f,
+	  "3200 Series Single Port 10Gb Intelligent Ethernet Adapter" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  0x103c, 0x3733,
+	  "NC523SFP 10Gb 2-port Server Adapter" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  0x103c, 0x3346,
+	  "CN1000Q Dual Port Converged Network Adapter" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  PCI_VENDOR_ID_QLOGIC,
+	  0x210,
+	  "QME8242-k 10GbE Dual Port Mezzanine Card" },
+	{ PCI_VENDOR_ID_QLOGIC,
+	  PCI_DEVICE_ID_QLOGIC_QLE824X,
+	  0x0, 0x0, "cLOM8214 1/10GbE Controller" },
 };
 
 #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(qlcnic_boards)
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH net-next 7/7] qlcnic: Update version to 5.2.42
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
                   ` (5 preceding siblings ...)
  2013-04-24 22:42 ` [PATCH net-next 6/7] qlcnic: Add identifying string for 83xx adapter Jitendra Kalsaria
@ 2013-04-24 22:42 ` Jitendra Kalsaria
  2013-04-24 23:36 ` [PATCH net-next 0/7] qlcnic: Driver updates David Miller
  7 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-24 22:42 UTC (permalink / raw)
  To: davem; +Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver

From: Shahed Shaikh <shahed.shaikh@qlogic.com>

Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index b2206db..90c253b 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -38,8 +38,8 @@
 
 #define _QLCNIC_LINUX_MAJOR 5
 #define _QLCNIC_LINUX_MINOR 2
-#define _QLCNIC_LINUX_SUBVERSION 41
-#define QLCNIC_LINUX_VERSIONID  "5.2.41"
+#define _QLCNIC_LINUX_SUBVERSION 42
+#define QLCNIC_LINUX_VERSIONID  "5.2.42"
 #define QLCNIC_DRV_IDC_VER  0x01
 #define QLCNIC_DRIVER_VERSION  ((_QLCNIC_LINUX_MAJOR << 16) |\
 		 (_QLCNIC_LINUX_MINOR << 8) | (_QLCNIC_LINUX_SUBVERSION))
-- 
1.7.6.rc1.1.g2c162b

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH net-next 0/7] qlcnic: Driver updates
  2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
                   ` (6 preceding siblings ...)
  2013-04-24 22:42 ` [PATCH net-next 7/7] qlcnic: Update version to 5.2.42 Jitendra Kalsaria
@ 2013-04-24 23:36 ` David Miller
  7 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2013-04-24 23:36 UTC (permalink / raw)
  To: jitendra.kalsaria
  Cc: netdev, sony.chacko, shahed.shaikh, Dept_NX_Linux_NIC_Driver

From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Date: Wed, 24 Apr 2013 18:42:38 -0400

> From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
> 
> This set of patches has following updates:
> * Enhanced channel configuration logs by adding logs for various cases.
> * Take EPORT out of reset before disabling pause frame generation in the
>   adapter.
> * Add eSwitch statistics support in ethtool stats.
> * Enable interrupt coalescing for 83xx adapter.
> * Rename IRQ description.
> * Added PCI_VENDOR_ID_QLOGIC, PCI_DEVICE_ID_QLOGIC_834X and PCI_DEVICE_ID_QLOGIC_824X
>   for the patch "qlcnic: Add identifying string for 83xx adapter" as per Francois comment.  
> 
> Please apply to net-next.

Series applied, thanks.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH net-next 5/7] qlcnic: Rename the IRQ description.
  2013-04-24 22:42 ` [PATCH net-next 5/7] qlcnic: Rename the IRQ description Jitendra Kalsaria
@ 2013-04-25  0:05   ` Ben Hutchings
  2013-04-25 23:11     ` Jitendra Kalsaria
  0 siblings, 1 reply; 13+ messages in thread
From: Ben Hutchings @ 2013-04-25  0:05 UTC (permalink / raw)
  To: Jitendra Kalsaria
  Cc: davem, netdev, sony.chacko, shahed.shaikh,
	Dept_NX_Linux_NIC_Driver, Himanshu Madhani

On Wed, 2013-04-24 at 18:42 -0400, Jitendra Kalsaria wrote:
> From: Himanshu Madhani <himanshu.madhani@qlogic.com>
> 
> Here's what modified vectors will look like
> in the /proc/interrupts
> 
>         MSIx             	INTx
> -----------------------------------------
> 83xx    qlcnic[MB]
> 	qlcnic-ethX[Rx0]
> 	qlcnic-ethX[Rx1]
> 	..
> 	qlcnic-ethX[RxN]
> 	qlcnic-ethx[Tx0]        qlcnic[MB+Tx0+Rx0]
> 
> 82xx    qlcnic-ethX[Rx0]
> 	qlcnic-ethX[Rx1]
> 	..
> 	qlcnic-ethX[Tx0+RxN]    qlcnic-ethX[Tx0+Rx0]
[...]

Many other multiqueue drivers (including your own qlge) use these
formats for IRQ handler names:

RX queue:   <device>-rx-<index>
TX queue:   <device>-tx-<index>
Queue pair: <device>-<index>

Please use similar formats.

Ben.

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH net-next 5/7] qlcnic: Rename the IRQ description.
  2013-04-25  0:05   ` Ben Hutchings
@ 2013-04-25 23:11     ` Jitendra Kalsaria
  2013-04-25 23:21       ` David Miller
  0 siblings, 1 reply; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-25 23:11 UTC (permalink / raw)
  To: Ben Hutchings
  Cc: David Miller, netdev, Sony Chacko, Shahed Shaikh,
	Dept-NX Linux NIC Driver, Himanshu Madhani



On 4/24/13 5:05 PM, "Ben Hutchings" <bhutchings@solarflare.com> wrote:

>On Wed, 2013-04-24 at 18:42 -0400, Jitendra Kalsaria wrote:
>> From: Himanshu Madhani <himanshu.madhani@qlogic.com>
>> 
>> Here's what modified vectors will look like
>> in the /proc/interrupts
>> 
>>         MSIx             	INTx
>> -----------------------------------------
>> 83xx    qlcnic[MB]
>> 	qlcnic-ethX[Rx0]
>> 	qlcnic-ethX[Rx1]
>> 	..
>> 	qlcnic-ethX[RxN]
>> 	qlcnic-ethx[Tx0]        qlcnic[MB+Tx0+Rx0]
>> 
>> 82xx    qlcnic-ethX[Rx0]
>> 	qlcnic-ethX[Rx1]
>> 	..
>> 	qlcnic-ethX[Tx0+RxN]    qlcnic-ethX[Tx0+Rx0]
>[...]
>
>Many other multiqueue drivers (including your own qlge) use these
>formats for IRQ handler names:

Thanks for the review. We will change the format in a future submission
according to your suggestion and similar to what other multiqueue drivers
are using.
>
>RX queue:   <device>-rx-<index>
>TX queue:   <device>-tx-<index>
>Queue pair: <device>-<index>

We will like to add the qlcnic prefix to the above format, as it makes it
easier for an end user to identify which driver these entries belongs to,
without having to run addition command.
This is how the format will look like:

       MSIx                    INTx
               -----------------------------------------
83xx   qlcnic-MB
       qlcnic-ethX-rx-0
       qlcnic-ethX-rx-1
       ..
       qlcnic-ethX-rx-N
       qlcnic-ethx-tx-0        qlcnic-MB-tx-0-rx-0
 
82xx   qlcnic-ethX-rx-0
       qlcnic-ethX-rx-1
       ..
       qlcnic-ethX-tx-0-rx-N   qlcnic-ethX-tx-0-rx-0

Thanks,

   Jiten
>
>Please use similar formats.
>
>Ben.
>
>-- 
>Ben Hutchings, Staff Engineer, Solarflare
>Not speaking for my employer; that's the marketing department's job.
>They asked us to note that Solarflare product names are trademarked.
>
>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH net-next 5/7] qlcnic: Rename the IRQ description.
  2013-04-25 23:11     ` Jitendra Kalsaria
@ 2013-04-25 23:21       ` David Miller
  2013-04-26  0:35         ` Jitendra Kalsaria
  0 siblings, 1 reply; 13+ messages in thread
From: David Miller @ 2013-04-25 23:21 UTC (permalink / raw)
  To: jitendra.kalsaria
  Cc: bhutchings, netdev, sony.chacko, shahed.shaikh,
	Dept_NX_Linux_NIC_Driver, himanshu.madhani

From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Date: Thu, 25 Apr 2013 23:11:05 +0000

> We will like to add the qlcnic prefix to the above format, as it makes it
> easier for an end user to identify which driver these entries belongs to,
> without having to run addition command.

This is illogical, and wrong.

By being different, you are making it MORE DIFFICULT for users because
they have to specially accomodate your unique conventions.

Please follow what other drivers do.

If you disagree with what the convention is, start a discussion about
changing it, rather than doing whatever you feel like doing in your
drivers.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH net-next 5/7] qlcnic: Rename the IRQ description.
  2013-04-25 23:21       ` David Miller
@ 2013-04-26  0:35         ` Jitendra Kalsaria
  0 siblings, 0 replies; 13+ messages in thread
From: Jitendra Kalsaria @ 2013-04-26  0:35 UTC (permalink / raw)
  To: David Miller
  Cc: bhutchings@solarflare.com, netdev, Sony Chacko, Shahed Shaikh,
	Dept-NX Linux NIC Driver, Himanshu Madhani



On 4/25/13 4:21 PM, "David Miller" <davem@davemloft.net> wrote:

>From: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
>Date: Thu, 25 Apr 2013 23:11:05 +0000
>
>> We will like to add the qlcnic prefix to the above format, as it makes
>>it
>> easier for an end user to identify which driver these entries belongs
>>to,
>> without having to run addition command.
>
>This is illogical, and wrong.
>
>By being different, you are making it MORE DIFFICULT for users because
>they have to specially accomodate your unique conventions.
>
>Please follow what other drivers do.
>
>If you disagree with what the convention is, start a discussion about
>changing it, rather than doing whatever you feel like doing in your
>drivers.

We will follow the convention and make the changes in a future submission.


Thanks,
    Jiten

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2013-04-26  0:35 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-24 22:42 [PATCH net-next 0/7] qlcnic: Driver updates Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 1/7] qlcnic: Enhance channel configuration logs Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 2/7] qlcnic: Take EPORT out of reset sequence before disabling PAUSE Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 3/7] qlcnic: Add eSwitch statistics support Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 4/7] qlcnic: Enable Interrupt Coalescing for 83xx adapter Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 5/7] qlcnic: Rename the IRQ description Jitendra Kalsaria
2013-04-25  0:05   ` Ben Hutchings
2013-04-25 23:11     ` Jitendra Kalsaria
2013-04-25 23:21       ` David Miller
2013-04-26  0:35         ` Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 6/7] qlcnic: Add identifying string for 83xx adapter Jitendra Kalsaria
2013-04-24 22:42 ` [PATCH net-next 7/7] qlcnic: Update version to 5.2.42 Jitendra Kalsaria
2013-04-24 23:36 ` [PATCH net-next 0/7] qlcnic: Driver updates David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).