Subject: Re: [RFC PATCH v8 01/10] dpll: documentation on DPLL subsystem interface

From: Jakub Kicinski <[email-masked]>
Date: Tue, 13 Jun 2023 09:38:01 -0700

On Tue, 13 Jun 2023 11:55:11 +0200 Jiri Pirko wrote:
> >> +``'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.

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