Re: [PATCH net-next 5/6] net: dsa: mv88e6xxx: add helper for switch ready

From
Vivien Didelot <hidden>
Date
2016-12-01 20:31:13
Also in
lkml
Reply to
Andrew Lunn, 2016-11-30
Hi Andrew,

Andrew Lunn [off-list ref] writes:
As we have seen in the past, this sort of loop is broken if we end up
sleeping for a long time. Please take the opportunity to replace it
with one of our _wait() helpers, e.g. mv88e6xxx_g1_wait()
That won't work. the _wait() helpers are made to wait on self-clear (SC)
bits, i.e. looping until they are cleared to zero.

Here we want the opposite.

I will keep this existing wait loop for the moment and work soon on a
new patchset to rework the wait routines. We need a generic access to
test a given value against a given mask and wrappers for busy bits, etc.
quoted
+int mv88e6xxx_g1_init_ready(struct mv88e6xxx_chip *chip, bool *ready)
+{
+	u16 val;
+	int err;
+
+	/* Check the value of the InitReady bit 11 */
+	err = mv88e6xxx_g1_read(chip, GLOBAL_STATUS, &val);
+	if (err)
+		return err;
+
+	*ready = !!(val & GLOBAL_STATUS_INIT_READY);
I would actually do the wait here.
That is better indeed.

Thanks,

        Vivien
Thread (16 messages) 16 messages, 3 authors, last reply 2016-12-02
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help