I hit the send button to early, sorry about that. Let me comment on the other proposals from Dust Li as well. On 16.01.25 10:32, Dust Li wrote: > Abstraction of ISM Device Details: I propose we abstract the ISM device > details by providing SMC with helper functions. These functions could > encapsulate ism->ops, making the implementation cleaner and more > intuitive. Maybe I misunderstand what you mean by helper functions.. Why would you encapsulate ism->ops functions in another set of wrappers? I was happy to remove the helper functions in 2/7 and 7/7. This way, the struct ism_device would mainly serve its > implementers, while the upper helper functions offer a streamlined > interface for SMC. I was actually also wondering, whether the clients should access ism_device at all. Or whether they should only use the ism_ops. I can give that a try in the next version. I think this RFC almost there already. The clients would still need to pass a poitner to ism_dev as a parameter. > Structuring and Naming: I recommend embedding the structure of ism_ops > directly within ism_dev rather than using a pointer. I think it is a common method to have the const struct xy_ops in the device driver code and then use pointer to register the device with an upper layer. What would be the benefit of duplicating that struct in every ism_dev? Additionally, > renaming it to ism_device_ops could enhance clarity and consistency. Yes, that would help to distinguish them from the ism_client functions. I' rename them to ism_dev_ops in the next version.