<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/ti/davinci_emac.c, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-08-25T20:37:31Z</updated>
<entry>
<title>net: davinci_emac: fix error return code</title>
<updated>2015-08-25T20:37:31Z</updated>
<author>
<name>Julia Lawall</name>
<email>julia.lawall@lip6.fr</email>
</author>
<published>2015-08-23T00:11:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1ef53ebfa9ff5b205604fc781868765e00ae875f'/>
<id>urn:sha1:1ef53ebfa9ff5b205604fc781868765e00ae875f</id>
<content type='text'>
Propagate error code on failure.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret &lt; 0\|ret != 0\))
 { ... return ret; }
|
ret = 0
)
... when != ret = e1
    when != &amp;ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;Julia.Lawall@lip6.fr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Get device MAC on 3517</title>
<updated>2015-01-31T01:42:01Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-28T19:33:06Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f276c0ce5d9256bb87e65f88ddea28a6a5eafdb2'/>
<id>urn:sha1:f276c0ce5d9256bb87e65f88ddea28a6a5eafdb2</id>
<content type='text'>
Looks like on 3517 davinci_emac MAC address registers have a
different layout compared to dm816x and am33xx.

Let's add a function to get the 3517 MAC address.

Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Get device dm816x MAC address using the cpsw code</title>
<updated>2015-01-31T01:42:01Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-28T19:33:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9120bd6e9f779d921450ec53cea02eff07003eae'/>
<id>urn:sha1:9120bd6e9f779d921450ec53cea02eff07003eae</id>
<content type='text'>
At least on dm81xx, we can get the davinci_emac MAC address the same
way as on am33xx cpsw.

Let's also use ether_addr_copy() for davinci_emac while at it.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Add support for emac on dm816x</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:14Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=de3900833ee635d5658415fea9c8c4e13507d777'/>
<id>urn:sha1:de3900833ee635d5658415fea9c8c4e13507d777</id>
<content type='text'>
On dm816x we have two emac controllers with separate memory
areas.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Fix ioremap for devices with MDIO within the EMAC address space</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:13Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a1594321a9bc55ad44e02b27773cb0ed05837531'/>
<id>urn:sha1:a1594321a9bc55ad44e02b27773cb0ed05837531</id>
<content type='text'>
Some devices like dm816x have the MDIO registers within the first EMAC
instance address space. Let's fix the issue by allowing to pass an
optional second IO range for the EMAC control register area.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Fix incomplete code for getting the phy from device tree</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1d82ffa6ba0f645d449c1b0489bb698a9a7301ea'/>
<id>urn:sha1:1d82ffa6ba0f645d449c1b0489bb698a9a7301ea</id>
<content type='text'>
Looks like the phy_id is never set up beyond getting the phandle.
Note that we can remove the ifdef for phy_node as there is a stub
for of_phy_connec() if CONFIG_OF is not set.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Free clock after checking the frequency</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:11Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0f5372731dc13655da9edd282437a290eaa7c258'/>
<id>urn:sha1:0f5372731dc13655da9edd282437a290eaa7c258</id>
<content type='text'>
We only use clk_get() to get the frequency, the rest is done by
the runtime PM calls. Let's free the clock too.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Fix runtime pm calls for davinci_emac</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b5133e7a988b2cf8e1cd2b23231f36aff35ceffc'/>
<id>urn:sha1:b5133e7a988b2cf8e1cd2b23231f36aff35ceffc</id>
<content type='text'>
Commit 3ba97381343b ("net: ethernet: davinci_emac: add pm_runtime support")
added support for runtime PM, but it causes issues on omap3 related devices
that actually gate the clocks:

Unhandled fault: external abort on non-linefetch (0x1008)
...
[&lt;c04160f0&gt;] (emac_dev_getnetstats) from [&lt;c04d6a3c&gt;] (dev_get_stats+0x78/0xc8)
[&lt;c04d6a3c&gt;] (dev_get_stats) from [&lt;c04e9ccc&gt;] (rtnl_fill_ifinfo+0x3b8/0x938)
[&lt;c04e9ccc&gt;] (rtnl_fill_ifinfo) from [&lt;c04eade4&gt;] (rtmsg_ifinfo+0x68/0xd8)
[&lt;c04eade4&gt;] (rtmsg_ifinfo) from [&lt;c04dd35c&gt;] (register_netdevice+0x3a0/0x4ec)
[&lt;c04dd35c&gt;] (register_netdevice) from [&lt;c04dd4bc&gt;] (register_netdev+0x14/0x24)
[&lt;c04dd4bc&gt;] (register_netdev) from [&lt;c041755c&gt;] (davinci_emac_probe+0x408/0x5c8)
[&lt;c041755c&gt;] (davinci_emac_probe) from [&lt;c0396d78&gt;] (platform_drv_probe+0x48/0xa4)

Let's fix it by moving the pm_runtime_get() call earlier, and also add it to
the emac_dev_getnetstats(). Also note that we want to use pm_runtime_get_sync()
as we don't want to have deferred_resume happen. And let's also check the
return value for pm_runtime_get_sync() as noted by Felipe Balbi &lt;balbi@ti.com&gt;.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Acked-by: Mark A. Greer &lt;mgreer@animalcreek.com&gt;
Reviewed-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: davinci_emac: Fix hangs with interrupts</title>
<updated>2015-01-16T06:00:03Z</updated>
<author>
<name>Tony Lindgren</name>
<email>tony@atomide.com</email>
</author>
<published>2015-01-15T22:45:09Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=cd2d6d33e2c5be653d10cdc8fcd7dcf0be28de50'/>
<id>urn:sha1:cd2d6d33e2c5be653d10cdc8fcd7dcf0be28de50</id>
<content type='text'>
On davinci_emac, we have pulse interrupts. This means that we need to
clear the EOI bits when disabling interrupts as otherwise the interrupts
keep happening. And we also need to not clear the EOI bits again when
enabling the interrupts as otherwise we will get tons of:

unexpected IRQ trap at vector 00

These errors almost certainly mean that the omap-intc.c is signaling
a spurious interrupt with the reserved irq 127 as we've seen earlier
on omap3.

Let's fix the issue by clearing the EOI bits when disabling the
interrupts. Let's also keep the comment for "Rx Threshold and Misc
interrupts are not enabled" for both enable and disable so people
are aware of this when potentially adding more support.

Note that eventually we should handle the RX and TX interrupts
separately like cpsw is now doing. However, so far I have not seen
any issues with this based on my testing, so it seems to behave a
little different compared to the cpsw that had a similar issue.

Cc: Brian Hutchinson &lt;b.hutchman@gmail.com&gt;
Reviewed-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Tony Lindgren &lt;tony@atomide.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ethernet: ti: remove unwanted THIS_MODULE macro</title>
<updated>2014-09-09T18:59:14Z</updated>
<author>
<name>Varka Bhadram</name>
<email>varkabhadram@gmail.com</email>
</author>
<published>2014-09-08T03:58:19Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c9104b04fe708ec4ac7452eef7ccdedfd22eff25'/>
<id>urn:sha1:c9104b04fe708ec4ac7452eef7ccdedfd22eff25</id>
<content type='text'>
It removes the owner field updation of driver structure.
It will be automatically updated by module_platform_driver()

Signed-off-by: Varka Bhadram &lt;varkab@cdac.in&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
