* [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically
@ 2007-06-11 7:53 Mark Zhan
2007-06-11 18:57 ` Andy Fleming
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Mark Zhan @ 2007-06-11 7:53 UTC (permalink / raw)
To: netdev; +Cc: linuxppc-dev@ozlabs.org, Vitaly Bordug
Current MII bitbang bus driver hard-codes the phy mask of mii_bus to
~0x09, which is actually specific to the FSL boards. This patch will
make the bitbang driver to generate MII bus phy_mask dynamically, by the
PHY irq info provided by the platform.
Signed-off-by: Mark Zhan <rongkai.zhan@windriver.com>
---
b/drivers/net/fs_enet/mii-bitbang.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/fs_enet/mii-bitbang.c
b/drivers/net/fs_enet/mii-bitbang.c
index d384010..3732d69 100644
--- a/drivers/net/fs_enet/mii-bitbang.c
+++ b/drivers/net/fs_enet/mii-bitbang.c
@@ -315,7 +315,7 @@ static int __devinit fs_enet_mdio_probe(
struct fs_mii_bb_platform_info *pdata;
struct mii_bus *new_bus;
struct bb_info *bitbang;
- int err = 0;
+ int i, err = 0;
if (NULL == dev)
return -EINVAL;
@@ -336,14 +336,17 @@ static int __devinit fs_enet_mdio_probe(
new_bus->reset = &fs_enet_mii_bb_reset,
new_bus->id = pdev->id;
- new_bus->phy_mask = ~0x9;
pdata = (struct fs_mii_bb_platform_info *)pdev->dev.platform_data;
-
if (NULL == pdata) {
printk(KERN_ERR "gfar mdio %d: Missing platform data!\n", pdev->id);
return -ENODEV;
}
+ new_bus->phy_mask = 0xFFFFFFFF;
+ for (i = 0; i < PHY_MAX_ADDR; i++)
+ if (pdata->irq[i] != -1)
+ new_bus->phy_mask &= ~(1 << i);
+
/*set up workspace*/
fs_mii_bitbang_init(bitbang, pdata);
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically
2007-06-11 7:53 [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically Mark Zhan
@ 2007-06-11 18:57 ` Andy Fleming
2007-06-11 18:58 ` Vitaly Bordug
2007-06-11 19:03 ` Vitaly Bordug
2 siblings, 0 replies; 4+ messages in thread
From: Andy Fleming @ 2007-06-11 18:57 UTC (permalink / raw)
To: Mark Zhan; +Cc: netdev, linuxppc-dev@ozlabs.org, Vitaly Bordug
On Jun 11, 2007, at 02:53, Mark Zhan wrote:
> Current MII bitbang bus driver hard-codes the phy mask of mii_bus to
> ~0x09, which is actually specific to the FSL boards. This patch will
> make the bitbang driver to generate MII bus phy_mask dynamically,
> by the
> PHY irq info provided by the platform.
>
> Signed-off-by: Mark Zhan <rongkai.zhan@windriver.com>
[...]
>
> + new_bus->phy_mask = 0xFFFFFFFF;
> + for (i = 0; i < PHY_MAX_ADDR; i++)
> + if (pdata->irq[i] != -1)
> + new_bus->phy_mask &= ~(1 << i);
> +
This doesn't work. There are a couple of things wrong:
1) Don't use -1, use PHY_POLL
2) As you can tell from #1, the absence of a set interrupt for a
particular PHY does not indicate it doesn't exist. Rather, it
indicates it doesn't have an interrupt.
I think you need to add a phy_mask to the platform data, and then set
it appropriately. We also need to look into adding that for the mdio
nodes in the device tree, so it will get passed in properly.
Andy
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically
2007-06-11 7:53 [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically Mark Zhan
2007-06-11 18:57 ` Andy Fleming
@ 2007-06-11 18:58 ` Vitaly Bordug
2007-06-11 19:03 ` Vitaly Bordug
2 siblings, 0 replies; 4+ messages in thread
From: Vitaly Bordug @ 2007-06-11 18:58 UTC (permalink / raw)
To: Mark Zhan; +Cc: netdev, linuxppc-dev@ozlabs.org, Vitaly Bordug
On Mon, Jun 11, 2007 at 03:53:37PM +0800, Mark Zhan wrote:
> Current MII bitbang bus driver hard-codes the phy mask of mii_bus to
> ~0x09, which is actually specific to the FSL boards. This patch will
> make the bitbang driver to generate MII bus phy_mask dynamically, by the
> PHY irq info provided by the platform.
>
> Signed-off-by: Mark Zhan <rongkai.zhan@windriver.com>
Acked-by: Vitaly Bordug <vitb@kernel.crashing.org>
> ---
> b/drivers/net/fs_enet/mii-bitbang.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/fs_enet/mii-bitbang.c
> b/drivers/net/fs_enet/mii-bitbang.c
> index d384010..3732d69 100644
> --- a/drivers/net/fs_enet/mii-bitbang.c
> +++ b/drivers/net/fs_enet/mii-bitbang.c
> @@ -315,7 +315,7 @@ static int __devinit fs_enet_mdio_probe(
> struct fs_mii_bb_platform_info *pdata;
> struct mii_bus *new_bus;
> struct bb_info *bitbang;
> - int err = 0;
> + int i, err = 0;
>
> if (NULL == dev)
> return -EINVAL;
> @@ -336,14 +336,17 @@ static int __devinit fs_enet_mdio_probe(
> new_bus->reset = &fs_enet_mii_bb_reset,
> new_bus->id = pdev->id;
>
> - new_bus->phy_mask = ~0x9;
> pdata = (struct fs_mii_bb_platform_info *)pdev->dev.platform_data;
> -
> if (NULL == pdata) {
> printk(KERN_ERR "gfar mdio %d: Missing platform data!\n", pdev->id);
> return -ENODEV;
> }
>
> + new_bus->phy_mask = 0xFFFFFFFF;
> + for (i = 0; i < PHY_MAX_ADDR; i++)
> + if (pdata->irq[i] != -1)
> + new_bus->phy_mask &= ~(1 << i);
> +
> /*set up workspace*/
> fs_mii_bitbang_init(bitbang, pdata);
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically
2007-06-11 7:53 [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically Mark Zhan
2007-06-11 18:57 ` Andy Fleming
2007-06-11 18:58 ` Vitaly Bordug
@ 2007-06-11 19:03 ` Vitaly Bordug
2 siblings, 0 replies; 4+ messages in thread
From: Vitaly Bordug @ 2007-06-11 19:03 UTC (permalink / raw)
To: Mark Zhan; +Cc: netdev, linuxppc-dev@ozlabs.org, Vitaly Bordug
On Mon, Jun 11, 2007 at 03:53:37PM +0800, Mark Zhan wrote:
> Current MII bitbang bus driver hard-codes the phy mask of mii_bus to
> ~0x09, which is actually specific to the FSL boards. This patch will
> make the bitbang driver to generate MII bus phy_mask dynamically, by the
> PHY irq info provided by the platform.
just realized that haven't mentioned that it's OK from me,
assuming Andy's comment taken into account...
>
> Signed-off-by: Mark Zhan <rongkai.zhan@windriver.com>
> ---
> b/drivers/net/fs_enet/mii-bitbang.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/fs_enet/mii-bitbang.c
> b/drivers/net/fs_enet/mii-bitbang.c
> index d384010..3732d69 100644
> --- a/drivers/net/fs_enet/mii-bitbang.c
> +++ b/drivers/net/fs_enet/mii-bitbang.c
> @@ -315,7 +315,7 @@ static int __devinit fs_enet_mdio_probe(
> struct fs_mii_bb_platform_info *pdata;
> struct mii_bus *new_bus;
> struct bb_info *bitbang;
> - int err = 0;
> + int i, err = 0;
>
> if (NULL == dev)
> return -EINVAL;
> @@ -336,14 +336,17 @@ static int __devinit fs_enet_mdio_probe(
> new_bus->reset = &fs_enet_mii_bb_reset,
> new_bus->id = pdev->id;
>
> - new_bus->phy_mask = ~0x9;
> pdata = (struct fs_mii_bb_platform_info *)pdev->dev.platform_data;
> -
> if (NULL == pdata) {
> printk(KERN_ERR "gfar mdio %d: Missing platform data!\n", pdev->id);
> return -ENODEV;
> }
>
> + new_bus->phy_mask = 0xFFFFFFFF;
> + for (i = 0; i < PHY_MAX_ADDR; i++)
> + if (pdata->irq[i] != -1)
> + new_bus->phy_mask &= ~(1 << i);
> +
> /*set up workspace*/
> fs_mii_bitbang_init(bitbang, pdata);
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-06-11 19:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-11 7:53 [PATCH] MII bitbang driver should generate MII bus phy_mask dynamically Mark Zhan
2007-06-11 18:57 ` Andy Fleming
2007-06-11 18:58 ` Vitaly Bordug
2007-06-11 19:03 ` Vitaly Bordug
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).