[U-Boot] [PATCH v2 05/18] net: macb: Prepare for driver-model conversion
Simon Glass
sjg at chromium.org
Mon Jun 20 03:30:09 CEST 2016
Hi Andreas,
On 28 May 2016 at 16:32, Andreas Bießmann <andreas at biessmann.org> wrote:
> Hi Simon,
>
> On 05.05.16 15:28, Simon Glass wrote:
>> Adjust this driver to avoid using struct netdev in functions that driver
>> model will call. Also refactor the receive function to be compatible with
>> driver model.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> Reviewed-by: Heiko Schocher <hs at denx.de>
>> Tested-on: smartweb, corvus, taurus, axm
>> Tested-by: Heiko Schocher <hs at denx.de>
>> Reviewed-by: Joe Hershberger <joe.hershberger at ni.com>
>> ---
>>
>> Changes in v2: None
>>
>> drivers/net/macb.c | 199 +++++++++++++++++++++++++++++++++--------------------
>> 1 file changed, 124 insertions(+), 75 deletions(-)
>
> <snip>
>
>> -static int macb_phy_init(struct macb_device *macb)
>> +static int macb_phy_init(struct macb_device *macb, const char *name)
>> {
>> - struct eth_device *netdev = &macb->netdev;
>> #ifdef CONFIG_PHYLIB
>> struct phy_device *phydev;
>> #endif
>> @@ -452,7 +450,7 @@ static int macb_phy_init(struct macb_device *macb)
>> int media, speed, duplex;
>> int i;
>>
>> - arch_get_mdio_control(netdev->name);
>> + arch_get_mdio_control(name);
>> #ifdef CONFIG_MACB_SEARCH_PHY
>> /* Auto-detect phy_addr */
>> if (!macb_phy_find(macb))
>> @@ -462,13 +460,13 @@ static int macb_phy_init(struct macb_device *macb)
>> /* Check if the PHY is up to snuff... */
>> phy_id = macb_mdio_read(macb, MII_PHYSID1);
>> if (phy_id == 0xffff) {
>> - printf("%s: No PHY present\n", netdev->name);
>> + printf("%s: No PHY present\n", name);
>> return 0;
>> }
>>
>> #ifdef CONFIG_PHYLIB
>> /* need to consider other phy interface mode */
>> - phydev = phy_connect(macb->bus, macb->phy_addr, netdev,
>> + phydev = phy_connect(macb->bus, macb->phy_addr, &macb->netdev,
>
> is this intentional? You removed every reference to netdev but retained
> this one.
> Well, it's clear to me that you have to provide an eth_device to
> phy_connect() but why change the function then and add the *name to
> function parameters?
>
>> PHY_INTERFACE_MODE_RGMII);
>> if (!phydev) {
>> printf("phy_connect failed\n");
>
> No more questions ...
>
> Reviewed-by: Andreas Bießmann <andreas at biessmann.org>
Sorry for missing this. Actually this will need tweaking - I think Joe
pointed out that CONFIG_PHYLIB should not be used in modern code. But
in any case it is closer to converted (to driver model) than it was. I
think when something tries this out on a board that uses that they can
fix it and test. It will need to call phy_connect_dev() instead.
Regards,
Simon
More information about the U-Boot
mailing list