<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/net/tg3.c, branch v2.6.36-rc4</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>tg3: Update version to 3.113</title>
<updated>2010-08-02T22:46:33+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9ed6eda4fad9ea95e99f1e3cc546bcde049695cf'/>
<id>9ed6eda4fad9ea95e99f1e3cc546bcde049695cf</id>
<content type='text'>
This patch updates the tg3 version to 3.113.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch updates the tg3 version to 3.113.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Migrate tg3_flags to phy_flags</title>
<updated>2010-08-02T22:46:33+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f07e9af31e6e1bf2a499e1f52cbf0982619fa611'/>
<id>f07e9af31e6e1bf2a499e1f52cbf0982619fa611</id>
<content type='text'>
This patch moves most of the phy related flag definitions over to the
phyflags member and changes the code accordingly.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch moves most of the phy related flag definitions over to the
phyflags member and changes the code accordingly.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Create phy_flags and migrate phy_is_low_power</title>
<updated>2010-08-02T22:46:32+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=80096068bc21420ba4d690341a3c70c49017d167'/>
<id>80096068bc21420ba4d690341a3c70c49017d167</id>
<content type='text'>
This patch deletes the link_config.phy_is_low_power flag and creates a
new phy_flags device member to store all phy related settings.  All the
code is converted accordingly.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch deletes the link_config.phy_is_low_power flag and creates a
new phy_flags device member to store all phy related settings.  All the
code is converted accordingly.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Add phy-related preprocessor constants</title>
<updated>2010-08-02T22:46:32+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f08aa1a8b8ff0738d42936c3ac8c5516848bca02'/>
<id>f08aa1a8b8ff0738d42936c3ac8c5516848bca02</id>
<content type='text'>
This patch replaces some instances of hardcoded phy register values with
preprocessor equivalents.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch replaces some instances of hardcoded phy register values with
preprocessor equivalents.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Add error reporting to tg3_phydsp_write()</title>
<updated>2010-08-02T22:46:31+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6ee7c0a0a5003abd4afd724f5c2f654fe7328c0a'/>
<id>6ee7c0a0a5003abd4afd724f5c2f654fe7328c0a</id>
<content type='text'>
This patch adds error reporting to the tg3_phydsp_write() function and
converts a few more locations to use this function over the inlined
equivalent.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds error reporting to the tg3_phydsp_write() function and
converts a few more locations to use this function over the inlined
equivalent.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Improve small packet performance</title>
<updated>2010-08-02T22:46:31+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f65aac166fe10b96e64c233980a3522fc50fbecf'/>
<id>f65aac166fe10b96e64c233980a3522fc50fbecf</id>
<content type='text'>
smp_mb() inside tg3_tx_avail() is used twice in the normal
tg3_start_xmit() path (see illustration below).  The full memory
barrier is only necessary during race conditions with tx completion.
We can speed up the tx path by replacing smp_mb() in tg3_tx_avail()
with a compiler barrier.  The compiler barrier is to force the
compiler to fetch the tx_prod and tx_cons from memory.

In the race condition between tg3_start_xmit() and tg3_tx(),
we have the following situation:

tg3_start_xmit()                       tg3_tx()
    if (!tg3_tx_avail())
        BUG();

    ...

    if (!tg3_tx_avail())
        netif_tx_stop_queue();         update_tx_index();
        smp_mb();                      smp_mb();
        if (tg3_tx_avail())            if (netif_tx_queue_stopped() &amp;&amp;
            netif_tx_wake_queue();         tg3_tx_avail())

With smp_mb() removed from tg3_tx_avail(), we need to add smp_mb() to
tg3_start_xmit() as shown above to properly order netif_tx_stop_queue()
and tg3_tx_avail() to check the ring index.  If it is not strictly
ordered, the tx queue can be stopped forever.

This improves performance by about 3% with 2 ports running
bi-directional 64-byte packets.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
smp_mb() inside tg3_tx_avail() is used twice in the normal
tg3_start_xmit() path (see illustration below).  The full memory
barrier is only necessary during race conditions with tx completion.
We can speed up the tx path by replacing smp_mb() in tg3_tx_avail()
with a compiler barrier.  The compiler barrier is to force the
compiler to fetch the tx_prod and tx_cons from memory.

In the race condition between tg3_start_xmit() and tg3_tx(),
we have the following situation:

tg3_start_xmit()                       tg3_tx()
    if (!tg3_tx_avail())
        BUG();

    ...

    if (!tg3_tx_avail())
        netif_tx_stop_queue();         update_tx_index();
        smp_mb();                      smp_mb();
        if (tg3_tx_avail())            if (netif_tx_queue_stopped() &amp;&amp;
            netif_tx_wake_queue();         tg3_tx_avail())

With smp_mb() removed from tg3_tx_avail(), we need to add smp_mb() to
tg3_start_xmit() as shown above to properly order netif_tx_stop_queue()
and tg3_tx_avail() to check the ring index.  If it is not strictly
ordered, the tx queue can be stopped forever.

This improves performance by about 3% with 2 ports running
bi-directional 64-byte packets.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Signed-off-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Remove 5720, 5750, and 5750M</title>
<updated>2010-08-02T22:46:30+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=67b284d476bcb3d100e946da23d6cf9acfd0465c'/>
<id>67b284d476bcb3d100e946da23d6cf9acfd0465c</id>
<content type='text'>
These devices were never released to the public.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These devices were never released to the public.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Detect APE firmware types</title>
<updated>2010-08-02T22:46:29+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ecc796486f0a7f4958f8dc7550267570dcacb608'/>
<id>ecc796486f0a7f4958f8dc7550267570dcacb608</id>
<content type='text'>
This patch adds code to determine the APE firmware type and report this
along with the firmware version.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds code to determine the APE firmware type and report this
along with the firmware version.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Restrict ASPM workaround devlist</title>
<updated>2010-08-02T22:46:29+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:26:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8c69b1e702527e39c0b4fbda79d2738d186a3908'/>
<id>8c69b1e702527e39c0b4fbda79d2738d186a3908</id>
<content type='text'>
The ASPM workaround setting obtained from NVRAM only works with devices
older than 5717.  This patch enforces the restriction.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The ASPM workaround setting obtained from NVRAM only works with devices
older than 5717.  This patch enforces the restriction.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tg3: Manage gphy power for CPMU-less devs only</title>
<updated>2010-08-02T22:46:28+00:00</updated>
<author>
<name>Matt Carlson</name>
<email>mcarlson@broadcom.com</email>
</author>
<published>2010-08-02T11:25:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f37500d3f66ba82888315838278d56fc27308327'/>
<id>f37500d3f66ba82888315838278d56fc27308327</id>
<content type='text'>
This patch changes the code to only manage the PCIe gphy power for
CPMU-less devices only.  The CPMU takes over management for newer
chips.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch changes the code to only manage the PCIe gphy power for
CPMU-less devices only.  The CPMU takes over management for newer
chips.

Reviewed-by: Benjamin Li &lt;benli@broadcom.com&gt;
Reviewed-by: Michael Chan &lt;mchan@broadcom.com&gt;
Signed-off-by: Matt Carlson &lt;mcarlson@broadcom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
