Re: [RFC PATCH v8 01/10] dpll: documentation on DPLL subsystem interface
From: Jiri Pirko <jiri@resnulli.us>
Date: 2023-06-14 09:27:45
Also in:
intel-wired-lan, linux-clk, linux-doc, linux-rdma, lkml
Tue, Jun 13, 2023 at 06:38:01PM CEST, kuba@kernel.org wrote:
On Tue, 13 Jun 2023 11:55:11 +0200 Jiri Pirko wrote:quoted
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"?
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.quoted
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.
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?