Re: [PATCH 1/4] netdev/phy: Handle IEEE802.3 clause 45 Ethernet PHYs

From: David Daney
Date: Mon Jun 25 2012 - 19:48:39 EST


On 06/25/2012 04:33 PM, David Miller wrote:
From: David Daney<ddaney.cavm@xxxxxxxxx>
Date: Mon, 25 Jun 2012 16:11:23 -0700

Do you realize that at the time get_phy_device() is called, there is
no PHY device? So there can be no attribute, nor are we passing a
register address. Neither of these suggestions apply to this
situation.

We need to know a priori if it is c22 or c45. So we need to
communicate the type somehow to get_phy_device(). I chose an unused
bit in the addr parameter to do this, another option would be to add a
separate parameter to get_phy_device() specifying the type.

Then pass it in to the get() routine and store the attribute there
in the device we end up with.

OK.

addr has only 5 significant bits, and the patch *does* pass the information (c22 vs. c45) in one of the high order bits. So it is essentially as you say, but you don't like the idea of multiplexing the arguments into a single int.

Therefore, I am going to propose that we add a 'flags' parameter to get_phy_device() and change the (two) callers.

Does that seem better (or at least acceptable)?

Or do you really want to pass the address of a (one bit) structure instead?

David Daney


There are many parameters that go into a PHY register access, so
we'll probably some day end up with a descriptor struct that the
caller prepares on-stack to pass into the actual read/write ops
via reference.

--
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/