Re: [PATCH RFC] firmware: arm_scmi: Allow for better protocol extensibility
From: Sudeep Holla <hidden>
Date: 2019-05-24 14:19:28
Also in:
linux-clk, linux-hwmon, linux-pm, lkml
On Thu, May 23, 2019 at 10:17:50AM -0700, Florian Fainelli wrote:
On 5/21/19 1:01 PM, Florian Fainelli wrote:quoted
The SCMI specific allows implementors to define their custom protocols in the 0x80-0xFF space. The current scmi_handle structure requires us to extend the structure with a set of operations and associated private data in a way that is not quite scaling well. Create a 255 bytes structure that contains an opaque pointer to a set of operations and private data and create two helper functions to retrieve those based on the protocol identifier. Several options were considered, like using a linked list but since we could be performance sensitive in some paths, using an array was faster and simpler. Convert all call sites to use either scmi_protocol_get_ops() or scmi_protocol_get_info(). Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>On second thought, what I really need is private storage to the scmi_dev (the consumer side), and not so much the protocol (provider) side. Therefore using dev_{set,get}_drvadata() against scmi_device::dev should be working just fine, and if we are concerned about another part of the SCMI stack making use of that storage, we can always extend struct scmi_device with a private cookie.
Sorry, I haven't looked into the original patch in detail yet. But I always have rejected to add support for just infrastructure to add vendor specific protocols both internally @ARM and to some private emails I have received. I prefer to merge it with the first reference vendor specific protocol so that the users of this infrastructure gets a fair idea on how to use the same. I will look at the RFC next week. -- Regards, Sudeep _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel