On Fri, Aug 15, 2025 at 05:59:10AM +0200, Andrew Lunn wrote: > On Fri, Aug 15, 2025 at 10:43:02AM +0800, Yibo Dong wrote: > > On Fri, Aug 15, 2025 at 04:13:52AM +0200, Andrew Lunn wrote: > > > > +const struct mucse_mbx_operations mucse_mbx_ops_generic = { > > > > + .init_params = mucse_init_mbx_params_pf, > > > > + .read = mucse_read_mbx_pf, > > > > + .write = mucse_write_mbx_pf, > > > > + .read_posted = mucse_read_posted_mbx, > > > > + .write_posted = mucse_write_posted_mbx, > > > > + .check_for_msg = mucse_check_for_msg_pf, > > > > + .check_for_ack = mucse_check_for_ack_pf, > > > > + .configure = mucse_mbx_configure_pf, > > > > +}; > > > > > > As far as i can see, this is the only instance of > > > mucse_mbx_operations. Will there be other instances of this structure? > > > > > > Andrew > > > > > > > Yes, It is the only instance. Not other instances at all. > > Is there any improvement? > > So throw away the abstraction and call the functions directly. Only > add abstractions if you have some differences to abstract over. Only > make the driver more complex and harder to understand, if you need to > make the driver more complex and harder to understand.... KISS. > > Andrew > Ok, I will try to call the functions directly. Thanks for your feedback.