<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/phy, branch linux-4.8.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>net: phy: Trigger state machine on state change and not polling.</title>
<updated>2016-11-15T06:48:51+00:00</updated>
<author>
<name>Andrew Lunn</name>
<email>andrew@lunn.ch</email>
</author>
<published>2016-10-12T20:14:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a148a818df84f90e6dcb09d36ded7a3ee56e1ebd'/>
<id>a148a818df84f90e6dcb09d36ded7a3ee56e1ebd</id>
<content type='text'>
[ Upstream commit 3c293f4e08b58ad5b78f78d89ca1fd41f87f8729 ]

The phy_start() is used to indicate the PHY is now ready to do its
work. The state is changed, normally to PHY_UP which means that both
the MAC and the PHY are ready.

If the phy driver is using polling, when the next poll happens, the
state machine notices the PHY is now in PHY_UP, and kicks off
auto-negotiation, if needed.

If however, the PHY is using interrupts, there is no polling. The phy
is stuck in PHY_UP until the next interrupt comes along. And there is
no reason for the PHY to interrupt.

Have phy_start() schedule the state machine to run, which both speeds
up the polling use case, and makes the interrupt use case actually
work.

This problems exists whenever there is a state change which will not
cause an interrupt. Trigger the state machine in these cases,
e.g. phy_error().

Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Cc: Kyle Roeschley &lt;kyle.roeschley@ni.com&gt;
Tested-by: Kyle Roeschley &lt;kyle.roeschley@ni.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 3c293f4e08b58ad5b78f78d89ca1fd41f87f8729 ]

The phy_start() is used to indicate the PHY is now ready to do its
work. The state is changed, normally to PHY_UP which means that both
the MAC and the PHY are ready.

If the phy driver is using polling, when the next poll happens, the
state machine notices the PHY is now in PHY_UP, and kicks off
auto-negotiation, if needed.

If however, the PHY is using interrupts, there is no polling. The phy
is stuck in PHY_UP until the next interrupt comes along. And there is
no reason for the PHY to interrupt.

Have phy_start() schedule the state machine to run, which both speeds
up the polling use case, and makes the interrupt use case actually
work.

This problems exists whenever there is a state change which will not
cause an interrupt. Trigger the state machine in these cases,
e.g. phy_error().

Signed-off-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Cc: Kyle Roeschley &lt;kyle.roeschley@ni.com&gt;
Tested-by: Kyle Roeschley &lt;kyle.roeschley@ni.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: net: phy: xgene: Fix 'remove' function</title>
<updated>2016-09-13T16:04:11+00:00</updated>
<author>
<name>Christophe Jaillet</name>
<email>christophe.jaillet@wanadoo.fr</email>
</author>
<published>2016-09-11T19:43:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=440f895aa97f81a2bdc02993da5360a1f6da2fb5'/>
<id>440f895aa97f81a2bdc02993da5360a1f6da2fb5</id>
<content type='text'>
If 'IS_ERR(pdata-&gt;clk)' is true, then 'clk_disable_unprepare(pdata-&gt;clk)'
will do nothing.

It is likely that 'if (!IS_ERR(pdata-&gt;clk))' was expected here.
In fact, the test can even be removed because 'clk_disable_unprepare'
already handles such cases.

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&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>
If 'IS_ERR(pdata-&gt;clk)' is true, then 'clk_disable_unprepare(pdata-&gt;clk)'
will do nothing.

It is likely that 'if (!IS_ERR(pdata-&gt;clk))' was expected here.
In fact, the test can even be removed because 'clk_disable_unprepare'
already handles such cases.

Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: net: phy: mdio-xgene: Add hardware dependency</title>
<updated>2016-09-10T02:29:40+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>jdelvare@suse.de</email>
</author>
<published>2016-09-08T14:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c2f57fb97da5730509a50e316f353d3da17f6c25'/>
<id>c2f57fb97da5730509a50e316f353d3da17f6c25</id>
<content type='text'>
The mdio-xgene driver is only useful on X-Gene SoC.

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Cc: Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by:  Iyappan Subramanian &lt;isubramanian@apm.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 mdio-xgene driver is only useful on X-Gene SoC.

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Cc: Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Cc: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by:  Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "phy: IRQ cannot be shared"</title>
<updated>2016-08-25T23:53:47+00:00</updated>
<author>
<name>Xander Huff</name>
<email>xander.huff@ni.com</email>
</author>
<published>2016-08-24T21:47:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c3e70edd7c2eed6acd234627a6007627f5c76e8e'/>
<id>c3e70edd7c2eed6acd234627a6007627f5c76e8e</id>
<content type='text'>
This reverts:
  commit 33c133cc7598 ("phy: IRQ cannot be shared")

On hardware with multiple PHY devices hooked up to the same IRQ line, allow
them to share it.

Sergei Shtylyov says:
  "I'm not sure now what was the reason I concluded that the IRQ sharing
  was impossible... most probably I thought that the kernel IRQ handling
  code exited the loop over the IRQ actions once IRQ_HANDLED was returned
  -- which is obviously not so in reality..."

Signed-off-by: Xander Huff &lt;xander.huff@ni.com&gt;
Signed-off-by: Nathan Sullivan &lt;nathan.sullivan@ni.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 reverts:
  commit 33c133cc7598 ("phy: IRQ cannot be shared")

On hardware with multiple PHY devices hooked up to the same IRQ line, allow
them to share it.

Sergei Shtylyov says:
  "I'm not sure now what was the reason I concluded that the IRQ sharing
  was impossible... most probably I thought that the kernel IRQ handling
  code exited the loop over the IRQ actions once IRQ_HANDLED was returned
  -- which is obviously not so in reality..."

Signed-off-by: Xander Huff &lt;xander.huff@ni.com&gt;
Signed-off-by: Nathan Sullivan &lt;nathan.sullivan@ni.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>phy: micrel: Reenable interrupts during resume for ksz9031</title>
<updated>2016-08-23T23:56:54+00:00</updated>
<author>
<name>Xander Huff</name>
<email>xander.huff@ni.com</email>
</author>
<published>2016-08-22T20:57:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f64f14820e2deb5db056a05d7672ee2b1c6290e5'/>
<id>f64f14820e2deb5db056a05d7672ee2b1c6290e5</id>
<content type='text'>
Like the ksz8081, the ksz9031 has the behavior where it will clear the
interrupt enable bits when leaving power down. This takes advantage of the
solution provided by f5aba91.

Signed-off-by: Xander Huff &lt;xander.huff@ni.com&gt;
Signed-off-by: Nathan Sullivan &lt;nathan.sullivan@ni.com&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.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>
Like the ksz8081, the ksz9031 has the behavior where it will clear the
interrupt enable bits when leaving power down. This takes advantage of the
solution provided by f5aba91.

Signed-off-by: Xander Huff &lt;xander.huff@ni.com&gt;
Signed-off-by: Nathan Sullivan &lt;nathan.sullivan@ni.com&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: phy: micrel: Add specific suspend</title>
<updated>2016-08-09T23:19:15+00:00</updated>
<author>
<name>Wenyou Yang</name>
<email>wenyou.yang@atmel.com</email>
</author>
<published>2016-08-05T06:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=836384d2501dee87b1c437f3e268871980c857bf'/>
<id>836384d2501dee87b1c437f3e268871980c857bf</id>
<content type='text'>
Disable all interrupts when suspend, they will be enabled
when resume. Otherwise, the suspend/resume process will be
blocked occasionally.

Signed-off-by: Wenyou Yang &lt;wenyou.yang@atmel.com&gt;
Acked-by: Nicolas Ferre &lt;nicolas.ferre@atmel.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>
Disable all interrupts when suspend, they will be enabled
when resume. Otherwise, the suspend/resume process will be
blocked occasionally.

Signed-off-by: Wenyou Yang &lt;wenyou.yang@atmel.com&gt;
Acked-by: Nicolas Ferre &lt;nicolas.ferre@atmel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>phy/micrel: Change phy_id_mask for KSZ8721</title>
<updated>2016-08-01T03:37:12+00:00</updated>
<author>
<name>Alexander Stein</name>
<email>alexanders83@web.de</email>
</author>
<published>2016-07-29T10:12:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ecd5a32318280133e8ae93f10ea693293a04a786'/>
<id>ecd5a32318280133e8ae93f10ea693293a04a786</id>
<content type='text'>
There are KSZ8721 PHYs with phy_id 0x00221619. In order to detect them
as PHY_ID_KSZ8001 compatible while staying different to PHY_ID_KSZ9021
ignore the last two bits when matching PHY_ID

Signed-off-by: Alexander Stein &lt;alexanders83@web.de&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>
There are KSZ8721 PHYs with phy_id 0x00221619. In order to detect them
as PHY_ID_KSZ8001 compatible while staying different to PHY_ID_KSZ9021
ignore the last two bits when matching PHY_ID

Signed-off-by: Alexander Stein &lt;alexanders83@web.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: net: phy: xgene: Remove redundant dev_err call in xgene_mdio_probe()</title>
<updated>2016-07-31T03:39:12+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>weiyj.lk@gmail.com</email>
</author>
<published>2016-07-28T02:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b2df430b52cf9ed2c01649aba7fde79ff57d2b98'/>
<id>b2df430b52cf9ed2c01649aba7fde79ff57d2b98</id>
<content type='text'>
There is a error message within devm_ioremap_resource
already, so remove the dev_err call to avoid redundant
error message.

Signed-off-by: Wei Yongjun &lt;weiyj.lk@gmail.com&gt;
Acked-By: Iyappan Subramanian &lt;isubramanian@apm.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>
There is a error message within devm_ioremap_resource
already, so remove the dev_err call to avoid redundant
error message.

Signed-off-by: Wei Yongjun &lt;weiyj.lk@gmail.com&gt;
Acked-By: Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers: net: phy: xgene: Add MDIO driver</title>
<updated>2016-07-26T04:51:43+00:00</updated>
<author>
<name>Iyappan Subramanian</name>
<email>isubramanian@apm.com</email>
</author>
<published>2016-07-26T00:12:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=43b3cf6634a4ae2eac3b6f08019db8f19a114811'/>
<id>43b3cf6634a4ae2eac3b6f08019db8f19a114811</id>
<content type='text'>
Currently, SGMII based 1G rely on the hardware registers for link state
and sometimes it's not reliable.  To get most accurate link state, this
interface has to use the MDIO bus to poll the PHY.

In X-Gene SoC, MDIO bus is shared across RGMII and SGMII based 1G
interfaces, so adding this driver to manage MDIO bus.  This driver
registers the mdio bus and registers the PHYs connected to it.

Signed-off-by: Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Tested-by: Fushen Chen &lt;fchen@apm.com&gt;
Tested-by: Toan Le &lt;toanle@apm.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>
Currently, SGMII based 1G rely on the hardware registers for link state
and sometimes it's not reliable.  To get most accurate link state, this
interface has to use the MDIO bus to poll the PHY.

In X-Gene SoC, MDIO bus is shared across RGMII and SGMII based 1G
interfaces, so adding this driver to manage MDIO bus.  This driver
registers the mdio bus and registers the PHYs connected to it.

Signed-off-by: Iyappan Subramanian &lt;isubramanian@apm.com&gt;
Tested-by: Fushen Chen &lt;fchen@apm.com&gt;
Tested-by: Toan Le &lt;toanle@apm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Marvell phy: add functions to suspend and resume both interfaces: fiber and copper links.</title>
<updated>2016-07-19T23:05:56+00:00</updated>
<author>
<name>Charles-Antoine Couret</name>
<email>charles-antoine.couret@nexvision.fr</email>
</author>
<published>2016-07-19T09:13:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3758be3dc162b56eaafaa914b98845f914106ef2'/>
<id>3758be3dc162b56eaafaa914b98845f914106ef2</id>
<content type='text'>
These functions used standards registers in a different page
for both interfaces: copper and fiber.

Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Charles-Antoine Couret &lt;charles-antoine.couret@nexvision.fr&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 functions used standards registers in a different page
for both interfaces: copper and fiber.

Reviewed-by: Andrew Lunn &lt;andrew@lunn.ch&gt;
Signed-off-by: Charles-Antoine Couret &lt;charles-antoine.couret@nexvision.fr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
