* [PATCH RESEND] igb: Reset TXPBSIZE to default value
@ 2015-01-16 18:59 Xander Huff
2015-01-16 19:41 ` Vick, Matthew
0 siblings, 1 reply; 3+ messages in thread
From: Xander Huff @ 2015-01-16 18:59 UTC (permalink / raw)
To: jeffrey.t.kirsher, jesse.brandeburg, bruce.w.allan,
carolyn.wyborny, donald.c.skidmore, gregory.v.rose, matthew.vick,
john.ronciak, mitch.a.williams
Cc: linux.nics, e1000-devel, netdev, linux-kernel, jeff.westfahl,
Xander Huff
From: Jeff Westfahl <jeff.westfahl@ni.com>
The TXPBSIZE register of the i210 resets to its default value only
at power-on. It doesn't reset if you reboot the system, only if you
pull power. If something (another driver, another OS, etc.) modifies
this register from its default value, the igb driver doesn't function
correctly. It detects a hang of the transmitter and continuously resets
the adapter. Here we set this value to its default when resetting the
i210 to resolve this issue.
Signed-off-by: Jeff Westfahl <jeff.westfahl@ni.com>
Signed-off-by: Xander Huff <xander.huff@ni.com>
---
drivers/net/ethernet/intel/igb/e1000_82575.c | 4 ++++
drivers/net/ethernet/intel/igb/e1000_defines.h | 3 +++
drivers/net/ethernet/intel/igb/e1000_regs.h | 1 +
3 files changed, 8 insertions(+)
diff --git a/drivers/net/ethernet/intel/igb/e1000_82575.c b/drivers/net/ethernet/intel/igb/e1000_82575.c
index 0f69ef8..855a39e 100644
--- a/drivers/net/ethernet/intel/igb/e1000_82575.c
+++ b/drivers/net/ethernet/intel/igb/e1000_82575.c
@@ -2238,6 +2238,10 @@ static s32 igb_reset_hw_82580(struct e1000_hw *hw)
wr32(E1000_TCTL, E1000_TCTL_PSP);
wrfl();
+ if (hw->mac.type == e1000_i210)
+ /* TXPBSIZE resets only on power-up. */
+ wr32(E1000_TXPBSIZE, E1000_TXPBSIZE_RESET);
+
usleep_range(10000, 11000);
/* Determine whether or not a global dev reset is requested */
diff --git a/drivers/net/ethernet/intel/igb/e1000_defines.h b/drivers/net/ethernet/intel/igb/e1000_defines.h
index 217f813..d8e3c59 100644
--- a/drivers/net/ethernet/intel/igb/e1000_defines.h
+++ b/drivers/net/ethernet/intel/igb/e1000_defines.h
@@ -305,6 +305,9 @@
#define E1000_TCTL_COLD 0x003ff000 /* collision distance */
#define E1000_TCTL_RTLC 0x01000000 /* Re-transmit on late collision */
+/* Transmit Packet Buffer Size */
+#define E1000_TXPBSIZE_RESET 0x04000014
+
/* DMA Coalescing register fields */
#define E1000_DMACR_DMACWT_MASK 0x00003FFF /* DMA Coal Watchdog Timer */
#define E1000_DMACR_DMACTHR_MASK 0x00FF0000 /* DMA Coal Rx Threshold */
diff --git a/drivers/net/ethernet/intel/igb/e1000_regs.h b/drivers/net/ethernet/intel/igb/e1000_regs.h
index 6f0490d..7e2325b 100644
--- a/drivers/net/ethernet/intel/igb/e1000_regs.h
+++ b/drivers/net/ethernet/intel/igb/e1000_regs.h
@@ -60,6 +60,7 @@
#define E1000_TCTL 0x00400 /* TX Control - RW */
#define E1000_TCTL_EXT 0x00404 /* Extended TX Control - RW */
#define E1000_TIPG 0x00410 /* TX Inter-packet gap -RW */
+#define E1000_TXPBSIZE 0x03404 /* Transmit Packet Buffer Size - RW */
#define E1000_AIT 0x00458 /* Adaptive Interframe Spacing Throttle - RW */
#define E1000_LEDCTL 0x00E00 /* LED Control - RW */
#define E1000_LEDMUX 0x08130 /* LED MUX Control */
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH RESEND] igb: Reset TXPBSIZE to default value
2015-01-16 18:59 [PATCH RESEND] igb: Reset TXPBSIZE to default value Xander Huff
@ 2015-01-16 19:41 ` Vick, Matthew
2015-01-16 20:09 ` Xander Huff
0 siblings, 1 reply; 3+ messages in thread
From: Vick, Matthew @ 2015-01-16 19:41 UTC (permalink / raw)
To: Xander Huff, Kirsher, Jeffrey T, Brandeburg, Jesse,
Allan, Bruce W, Wyborny, Carolyn, Skidmore, Donald C,
Rose, Gregory V, Ronciak, John, Williams, Mitch A
Cc: Linux NICS, e1000-devel@lists.sourceforge.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
jeff.westfahl@ni.com, Fujinaka, Todd
On 1/16/15, 10:59 AM, "Xander Huff" <xander.huff@ni.com> wrote:
>From: Jeff Westfahl <jeff.westfahl@ni.com>
>
>The TXPBSIZE register of the i210 resets to its default value only
>at power-on. It doesn't reset if you reboot the system, only if you
>pull power. If something (another driver, another OS, etc.) modifies
>this register from its default value, the igb driver doesn't function
>correctly. It detects a hang of the transmitter and continuously resets
>the adapter. Here we set this value to its default when resetting the
>i210 to resolve this issue.
This should have already been resolved last May in commit
27dff8b2f680ce966b5d959be9d69dd0edd92e3b ("igb: add defaults for i210
TX/RX PBSIZE"). Are you running the latest upstream kernel?
Cheers,
Matthew
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH RESEND] igb: Reset TXPBSIZE to default value
2015-01-16 19:41 ` Vick, Matthew
@ 2015-01-16 20:09 ` Xander Huff
0 siblings, 0 replies; 3+ messages in thread
From: Xander Huff @ 2015-01-16 20:09 UTC (permalink / raw)
To: Vick, Matthew, Kirsher, Jeffrey T, Brandeburg, Jesse,
Allan, Bruce W, Wyborny, Carolyn, Skidmore, Donald C,
Rose, Gregory V, Ronciak, John, Williams, Mitch A
Cc: jeff.westfahl@ni.com, e1000-devel@lists.sourceforge.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Linux NICS
On 1/16/2015 1:41 PM, Vick, Matthew wrote:
> On 1/16/15, 10:59 AM, "Xander Huff" <xander.huff@ni.com> wrote:
>
>> From: Jeff Westfahl <jeff.westfahl@ni.com>
>>
>> The TXPBSIZE register of the i210 resets to its default value only
>> at power-on. It doesn't reset if you reboot the system, only if you
>> pull power. If something (another driver, another OS, etc.) modifies
>> this register from its default value, the igb driver doesn't function
>> correctly. It detects a hang of the transmitter and continuously resets
>> the adapter. Here we set this value to its default when resetting the
>> i210 to resolve this issue.
>
> This should have already been resolved last May in commit
> 27dff8b2f680ce966b5d959be9d69dd0edd92e3b ("igb: add defaults for i210
> TX/RX PBSIZE"). Are you running the latest upstream kernel?
>
> Cheers,
> Matthew
>
Looks like you're correct. Please disregard this patch.
--
Xander Huff
Staff Software Engineer
National Instruments
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-01-16 20:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-16 18:59 [PATCH RESEND] igb: Reset TXPBSIZE to default value Xander Huff
2015-01-16 19:41 ` Vick, Matthew
2015-01-16 20:09 ` Xander Huff
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).