2015-11-12 17:40:31

by Måns Rullgård

[permalink] [raw]
Subject: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
added interrupt support for the 8031 PHY but left out the other two
chips supported by this driver.

This patch sets the .ack_interrupt and .config_intr functions for the
8030 and 8035 drivers as well.

Signed-off-by: Mans Rullgard <[email protected]>
---
I have only tested this with an 8035. I can't find a datasheet for
the 8030, but since 8031, 8032, and 8035 all have the same register
layout, there's a good chance 8030 does as well.
---
drivers/net/phy/at803x.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
index fabf11d..2d020a3 100644
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
.flags = PHY_HAS_INTERRUPT,
.config_aneg = genphy_config_aneg,
.read_status = genphy_read_status,
+ .ack_interrupt = at803x_ack_interrupt,
+ .config_intr = at803x_config_intr,
.driver = {
.owner = THIS_MODULE,
},
@@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
.flags = PHY_HAS_INTERRUPT,
.config_aneg = genphy_config_aneg,
.read_status = genphy_read_status,
+ .ack_interrupt = at803x_ack_interrupt,
+ .config_intr = at803x_config_intr,
.driver = {
.owner = THIS_MODULE,
},
--
2.6.3


2015-11-12 19:06:33

by Mason

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

On 12/11/2015 18:40, Mans Rullgard wrote:
> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
> added interrupt support for the 8031 PHY but left out the other two
> chips supported by this driver.
>
> This patch sets the .ack_interrupt and .config_intr functions for the
> 8030 and 8035 drivers as well.
>
> Signed-off-by: Mans Rullgard <[email protected]>
> ---
> I have only tested this with an 8035. I can't find a datasheet for
> the 8030, but since 8031, 8032, and 8035 all have the same register
> layout, there's a good chance 8030 does as well.
> ---
> drivers/net/phy/at803x.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
> index fabf11d..2d020a3 100644
> --- a/drivers/net/phy/at803x.c
> +++ b/drivers/net/phy/at803x.c
> @@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
> .flags = PHY_HAS_INTERRUPT,
> .config_aneg = genphy_config_aneg,
> .read_status = genphy_read_status,
> + .ack_interrupt = at803x_ack_interrupt,
> + .config_intr = at803x_config_intr,
> .driver = {
> .owner = THIS_MODULE,
> },
> @@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
> .flags = PHY_HAS_INTERRUPT,
> .config_aneg = genphy_config_aneg,
> .read_status = genphy_read_status,
> + .ack_interrupt = at803x_ack_interrupt,
> + .config_intr = at803x_config_intr,
> .driver = {
> .owner = THIS_MODULE,
> },

Shouldn't we take the opportunity to clean up the duplicated register
definitions? (I'll send an informal patch to spur discussion.)

Regards.

2015-11-12 19:09:12

by Måns Rullgård

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

On 12 November 2015 19:06:23 GMT+00:00, Mason <[email protected]> wrote:
>On 12/11/2015 18:40, Mans Rullgard wrote:
>> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt
>mode"
>> added interrupt support for the 8031 PHY but left out the other two
>> chips supported by this driver.
>>
>> This patch sets the .ack_interrupt and .config_intr functions for the
>> 8030 and 8035 drivers as well.
>>
>> Signed-off-by: Mans Rullgard <[email protected]>
>> ---
>> I have only tested this with an 8035. I can't find a datasheet for
>> the 8030, but since 8031, 8032, and 8035 all have the same register
>> layout, there's a good chance 8030 does as well.
>> ---
>> drivers/net/phy/at803x.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
>> index fabf11d..2d020a3 100644
>> --- a/drivers/net/phy/at803x.c
>> +++ b/drivers/net/phy/at803x.c
>> @@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
>> .flags = PHY_HAS_INTERRUPT,
>> .config_aneg = genphy_config_aneg,
>> .read_status = genphy_read_status,
>> + .ack_interrupt = at803x_ack_interrupt,
>> + .config_intr = at803x_config_intr,
>> .driver = {
>> .owner = THIS_MODULE,
>> },
>> @@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
>> .flags = PHY_HAS_INTERRUPT,
>> .config_aneg = genphy_config_aneg,
>> .read_status = genphy_read_status,
>> + .ack_interrupt = at803x_ack_interrupt,
>> + .config_intr = at803x_config_intr,
>> .driver = {
>> .owner = THIS_MODULE,
>> },
>
>Shouldn't we take the opportunity to clean up the duplicated register
>definitions? (I'll send an informal patch to spur discussion.)
>
>Regards.

That can be done independently. Feel free to send a patch.
--
Måns Rullgård

2015-11-12 19:15:54

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

On 12/11/15 11:09, Måns Rullgård wrote:
> On 12 November 2015 19:06:23 GMT+00:00, Mason <[email protected]> wrote:
>> On 12/11/2015 18:40, Mans Rullgard wrote:
>>> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt
>> mode"
>>> added interrupt support for the 8031 PHY but left out the other two
>>> chips supported by this driver.
>>>
>>> This patch sets the .ack_interrupt and .config_intr functions for the
>>> 8030 and 8035 drivers as well.
>>>
>>> Signed-off-by: Mans Rullgard <[email protected]>
>>> ---
>>> I have only tested this with an 8035. I can't find a datasheet for
>>> the 8030, but since 8031, 8032, and 8035 all have the same register
>>> layout, there's a good chance 8030 does as well.
>>> ---
>>> drivers/net/phy/at803x.c | 4 ++++
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
>>> index fabf11d..2d020a3 100644
>>> --- a/drivers/net/phy/at803x.c
>>> +++ b/drivers/net/phy/at803x.c
>>> @@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
>>> .flags = PHY_HAS_INTERRUPT,
>>> .config_aneg = genphy_config_aneg,
>>> .read_status = genphy_read_status,
>>> + .ack_interrupt = at803x_ack_interrupt,
>>> + .config_intr = at803x_config_intr,
>>> .driver = {
>>> .owner = THIS_MODULE,
>>> },
>>> @@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
>>> .flags = PHY_HAS_INTERRUPT,
>>> .config_aneg = genphy_config_aneg,
>>> .read_status = genphy_read_status,
>>> + .ack_interrupt = at803x_ack_interrupt,
>>> + .config_intr = at803x_config_intr,
>>> .driver = {
>>> .owner = THIS_MODULE,
>>> },
>>
>> Shouldn't we take the opportunity to clean up the duplicated register
>> definitions? (I'll send an informal patch to spur discussion.)
>>
>> Regards.
>
> That can be done independently. Feel free to send a patch.

Agreed, that deserve a separate patch.
--
Florian

2015-11-12 19:16:10

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

On 12/11/15 09:40, Mans Rullgard wrote:
> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
> added interrupt support for the 8031 PHY but left out the other two
> chips supported by this driver.
>
> This patch sets the .ack_interrupt and .config_intr functions for the
> 8030 and 8035 drivers as well.
>
> Signed-off-by: Mans Rullgard <[email protected]>

Reviewed-by: Florian Fainelli <[email protected]>
--
Florian

2015-11-12 22:14:21

by Mason

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

On 12/11/2015 20:14, Florian Fainelli wrote:
> On 12/11/15 11:09, M?ns Rullg?rd wrote:
>> On 12 November 2015 19:06:23 GMT+00:00, Mason wrote:
>>> On 12/11/2015 18:40, Mans Rullgard wrote:
>>>> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
>>>> added interrupt support for the 8031 PHY but left out the other two
>>>> chips supported by this driver.
>>>>
>>>> This patch sets the .ack_interrupt and .config_intr functions for the
>>>> 8030 and 8035 drivers as well.
>>>>
>>>> Signed-off-by: Mans Rullgard <[email protected]>
>>>> ---
>>>> I have only tested this with an 8035. I can't find a datasheet for
>>>> the 8030, but since 8031, 8032, and 8035 all have the same register
>>>> layout, there's a good chance 8030 does as well.
>>>> ---
>>>> drivers/net/phy/at803x.c | 4 ++++
>>>> 1 file changed, 4 insertions(+)
>>>>
>>>> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
>>>> index fabf11d..2d020a3 100644
>>>> --- a/drivers/net/phy/at803x.c
>>>> +++ b/drivers/net/phy/at803x.c
>>>> @@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
>>>> .flags = PHY_HAS_INTERRUPT,
>>>> .config_aneg = genphy_config_aneg,
>>>> .read_status = genphy_read_status,
>>>> + .ack_interrupt = at803x_ack_interrupt,
>>>> + .config_intr = at803x_config_intr,
>>>> .driver = {
>>>> .owner = THIS_MODULE,
>>>> },
>>>> @@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
>>>> .flags = PHY_HAS_INTERRUPT,
>>>> .config_aneg = genphy_config_aneg,
>>>> .read_status = genphy_read_status,
>>>> + .ack_interrupt = at803x_ack_interrupt,
>>>> + .config_intr = at803x_config_intr,
>>>> .driver = {
>>>> .owner = THIS_MODULE,
>>>> },
>>>
>>> Shouldn't we take the opportunity to clean up the duplicated register
>>> definitions? (I'll send an informal patch to spur discussion.)
>>>
>>> Regards.
>>
>> That can be done independently. Feel free to send a patch.
>
> Agreed, that deserve a separate patch.

Isn't there a problem when at803x_set_wol() sets the AT803X_WOL_ENABLE
bit, but a DISABLE/ENABLE cycle through at803x_config_intr() will
discard that bit?

Regards.

2015-11-12 22:28:46

by Måns Rullgård

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

Mason <[email protected]> writes:

> On 12/11/2015 20:14, Florian Fainelli wrote:
>> On 12/11/15 11:09, M?ns Rullg?rd wrote:
>>> On 12 November 2015 19:06:23 GMT+00:00, Mason wrote:
>>>> On 12/11/2015 18:40, Mans Rullgard wrote:
>>>>> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
>>>>> added interrupt support for the 8031 PHY but left out the other two
>>>>> chips supported by this driver.
>>>>>
>>>>> This patch sets the .ack_interrupt and .config_intr functions for the
>>>>> 8030 and 8035 drivers as well.
>>>>>
>>>>> Signed-off-by: Mans Rullgard <[email protected]>
>>>>> ---
>>>>> I have only tested this with an 8035. I can't find a datasheet for
>>>>> the 8030, but since 8031, 8032, and 8035 all have the same register
>>>>> layout, there's a good chance 8030 does as well.
>>>>> ---
>>>>> drivers/net/phy/at803x.c | 4 ++++
>>>>> 1 file changed, 4 insertions(+)
>>>>>
>>>>> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
>>>>> index fabf11d..2d020a3 100644
>>>>> --- a/drivers/net/phy/at803x.c
>>>>> +++ b/drivers/net/phy/at803x.c
>>>>> @@ -308,6 +308,8 @@ static struct phy_driver at803x_driver[] = {
>>>>> .flags = PHY_HAS_INTERRUPT,
>>>>> .config_aneg = genphy_config_aneg,
>>>>> .read_status = genphy_read_status,
>>>>> + .ack_interrupt = at803x_ack_interrupt,
>>>>> + .config_intr = at803x_config_intr,
>>>>> .driver = {
>>>>> .owner = THIS_MODULE,
>>>>> },
>>>>> @@ -327,6 +329,8 @@ static struct phy_driver at803x_driver[] = {
>>>>> .flags = PHY_HAS_INTERRUPT,
>>>>> .config_aneg = genphy_config_aneg,
>>>>> .read_status = genphy_read_status,
>>>>> + .ack_interrupt = at803x_ack_interrupt,
>>>>> + .config_intr = at803x_config_intr,
>>>>> .driver = {
>>>>> .owner = THIS_MODULE,
>>>>> },
>>>>
>>>> Shouldn't we take the opportunity to clean up the duplicated register
>>>> definitions? (I'll send an informal patch to spur discussion.)
>>>>
>>>> Regards.
>>>
>>> That can be done independently. Feel free to send a patch.
>>
>> Agreed, that deserve a separate patch.
>
> Isn't there a problem when at803x_set_wol() sets the AT803X_WOL_ENABLE
> bit, but a DISABLE/ENABLE cycle through at803x_config_intr() will
> discard that bit?

Possibly, but fixing that should be yet another patch.

--
M?ns Rullg?rd
[email protected]

2015-11-16 19:19:07

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] net: phy: at803x: support interrupt on 8030 and 8035

From: Mans Rullgard <[email protected]>
Date: Thu, 12 Nov 2015 17:40:20 +0000

> Commit 77a993942 "phy/at8031: enable at8031 to work on interrupt mode"
> added interrupt support for the 8031 PHY but left out the other two
> chips supported by this driver.
>
> This patch sets the .ack_interrupt and .config_intr functions for the
> 8030 and 8035 drivers as well.
>
> Signed-off-by: Mans Rullgard <[email protected]>

Applied.