From: Leigh Brown <leigh@solinno.co.uk>
To: linux-arm-kernel@lists.infradead.org
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
netdev@vger.kernel.org, Leigh Brown <leigh@solinno.co.uk>
Subject: [PATCH RFC 0/4] MDIO bus timeout issues on Dreamplug
Date: Sat, 19 Oct 2013 17:23:50 +0100 [thread overview]
Message-ID: <cover.1382199042.git.leigh@solinno.co.uk> (raw)
Hello,
I just upgraded my Dreamplug to kernel 3.12-rc4 and began encountering
timeout errors in the log, like the following :-
orion-mdio f1072004.mdio-bus: Timeout when reading PHY
I discovered that the mv643xx_eth driver had been converted to use the
mvmdio driver to talk to the PHY rather than the old code that was
embedded in the driver. The new code had some inconsistent timeouts
and always polled for a response rather than using the interrupt, where
available. The timeout was 1ms when polling but the Dreamplug can
take up to 4.9ms to respond.
So, making reference to the old 3.9 driver I changed the mvmdio driver
to have more consistent timeouts and use interrupts to poll, where
available. I set the timeout to 10ms. Patches 1 and 2 do this.
I got carried away checking the size of the code and patch 3 is a
simple optimisation to reduce the code size. The final patch updates
the documentation in mvmdio to make it reflect the current situation.
I have tested the patches on my Dreamplug and Mirabox and have not
encountered any issues.
One final thing I noticed when testing: you can unload the mvmdio
driver and the machine will crash shortly after. I tried to understand
how the module reference counting would apply to these kinds of drivers
and got a bit stuck. I think these modules should not be unloadable
while there is an ethernet driver that uses them.
Regards,
Leigh.
Leigh Brown (4):
net: mvmdio: make orion_mdio_wait_ready consistent
net: mvmdio: orion_mdio_ready: remove manual poll
net: mvmdio: slight optimisation of orion_mdio_write
net: mvmdio: doc: mvmdio now used by mv643xx_eth
drivers/net/ethernet/marvell/mvmdio.c | 93 +++++++++++++++------------------
1 file changed, 42 insertions(+), 51 deletions(-)
--
1.7.10.4
next reply other threads:[~2013-10-19 16:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-19 16:23 Leigh Brown [this message]
2013-10-19 16:23 ` [PATCH RFC 1/4] net: mvmdio: make orion_mdio_wait_ready consistent Leigh Brown
2013-10-21 7:13 ` Sebastian Hesselbarth
2013-10-19 16:23 ` [PATCH RFC 2/4] net: mvmdio: orion_mdio_ready: remove manual poll Leigh Brown
2013-10-19 16:23 ` [PATCH RFC 3/4] net: mvmdio: slight optimisation of orion_mdio_write Leigh Brown
2013-10-19 16:23 ` [PATCH RFC 4/4] net: mvmdio: doc: mvmdio now used by mv643xx_eth Leigh Brown
2013-10-24 18:09 ` [PATCH RFC v2 0/4] MDIO bus timeout issues on Dreamplug Leigh Brown
2013-10-24 21:25 ` Jason Cooper
2013-10-29 9:33 ` [PATCH v3 0/4] Fix " Leigh Brown
2013-10-29 22:54 ` David Miller
2013-10-29 9:33 ` [PATCH v3 1/4] net: mvmdio: make orion_mdio_wait_ready consistent Leigh Brown
2013-10-29 9:33 ` [PATCH v3 2/4] net: mvmdio: orion_mdio_ready: remove manual poll Leigh Brown
2013-10-29 9:33 ` [PATCH v3 3/4] net: mvmdio: slight optimisation of orion_mdio_write Leigh Brown
2013-10-29 9:33 ` [PATCH v3 4/4] net: mvmdio: doc: mvmdio now used by mv643xx_eth Leigh Brown
2013-10-24 18:09 ` [PATCH RFC v2 1/4] net: mvmdio: make orion_mdio_wait_ready consistent Leigh Brown
2013-10-26 5:44 ` David Miller
2013-10-24 18:09 ` [PATCH RFC v2 2/4] net: mvmdio: orion_mdio_ready: remove manual poll Leigh Brown
2013-10-24 18:09 ` [PATCH RFC v2 3/4] net: mvmdio: slight optimisation of orion_mdio_write Leigh Brown
2013-10-26 5:45 ` David Miller
2013-10-24 18:09 ` [PATCH RFC v2 4/4] net: mvmdio: doc: mvmdio now used by mv643xx_eth Leigh Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1382199042.git.leigh@solinno.co.uk \
--to=leigh@solinno.co.uk \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=netdev@vger.kernel.org \
--cc=thomas.petazzoni@free-electrons.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).