On Tue, 13 Jun 2023 11:55:11 +0200 Jiri Pirko wrote:
quoted
quoted
+``'pin': [{
+ {'clock-id': 282574471561216,
+ 'module-name': 'ice',
+ 'pin-dpll-caps': 4,
+ 'pin-id': 13,
+ 'pin-parent': [{'pin-id': 2, 'pin-state': 'connected'},
+ {'pin-id': 3, 'pin-state': 'disconnected'},
+ {'id': 0, 'pin-direction': 'input'},
+ {'id': 1, 'pin-direction': 'input'}],
+ 'pin-type': 'synce-eth-port'}
+}]``
It seems like pin-parent is overloaded, can we split it into two
different nests?
Yeah, we had it as two and converged to this one. The thing is, the rest
of the attrs are the same for both parent pin and parent device. I link
it this way a bit better. No strong feeling.
Do you mean the same attribute enum / "space" / "set"?
In the example above the attributes present don't seem to overlap.
For user space its an extra if to sift thru the objects under
pin-parent.
quoted
Also sounds like setting pin attrs and pin-parent attrs should be
different commands.
Could be, but what't the benefit? Also, you are not configuring
pin-parent. You are configuring pin:pin-parent tuple. Basically the pin
configuration as a child. So this is mainly config of the pin itsest
Therefore does not really make sense to me to split to two comments.
Clarity of the API. If muxing everything thru few calls was the goal
we should also have very few members in struct dpll_pin_ops, and we
don't.