Re: [PATCH 1/2] add fixed_phy_update_state() - update state of fixed_phy
From: Stas Sergeev
Date: Fri Apr 03 2015 - 17:26:08 EST
03.04.2015 22:25, Florian Fainelli ÐÐÑÐÑ:
On 01/04/15 10:30, Stas Sergeev wrote:
In fact, this can't even be done: registering it before of_phy_connect()
- The callback needs to be registered before of_phy_connect() to
avoid running with outdated state, but of_phy_connect() returns the
phy_device pointer, which is needed to register the callback. Registering
it before of_phy_connect() will therefore require a hack to get the
is an asking for troubles with NULL deref.
In fact, there is still a bit of a problem.
Overall, this addition makes the subsequent patch that implements
Agreed, now that we have that, we should probably just remove the
SGMII link status for mvneta, much cleaner.
ability to have a fixed link update callback since it suffers from all
the deficiencies you outlined above, and is creating some overhead by
polling the hardware.
You certainly want to set the initial state, so that on of_phy_connect()
time it is already valid. For this I still use of_phy_find_device()...
This, however, differs from registering the callback:
- initial state is set only once; callback should be registered before
_every_ of_phy_connect() (but it can't be registered before because
of the NULL, so only after)
- initial state can be set anywhere anytime, not necessary any near
So the problem is mostly solved, but of_phy_find_device() is still
there. To get rid of this, I guess some addition to of_mdio may be
needed as well. Maybe optionally passing the status directly to
of_phy_connect()? Not sure.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/