Tue, Jun 13, 2023 at 06:38:01PM CEST, kuba@xxxxxxxxxx wrote: >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"? Yeah, that is my understanding. Arkadiusz, could you please clarify? >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. How the the internal kernel api related to the uapi? I mean, it's quite common to have 1:N relationsip between cmd and op. I have to be missing your point. Could you be more specific please? Current code presents PIN_SET command with accepts structured set of attribute to be set. The core-driver api is pretty clear. Squashing to a single op would be disaster. Having one command per attr looks like an overkill without any real benefit. How exactly do you propose to change this?