Hi Andrew, Andrew Lunn <and...@lunn.ch> writes:
>> The mv88e6xxx_ops actually implements the *features*. They can be >> prefixed for clarity (e.g. .ppu_*, port_*, .atu_*, etc.). They don't >> describe the register layout. >> >> But we can discuss two ways of seeing this structure implementation: > > or > > 3) We have a prefix for us humans to help us find the code. Now we > have ops, i cannot simply do M-. and emacs will take me to the > implementation. I have to search for it a bit. Having the hint g1_ > tells me to go look in global1.c. Having the hint g2_ tells me to go > look in global2.c. Having the port_ tells me to go look in port.c. > Having no prefix tells me the code is scattered around and grep is my > friend. Just to be clear: I totally agree for an implementation (e.g. mv88e6095_g1_set_cpu_port), that's why I've been doing it since I started splitting the code around in device-specific files. But I disagree for an mv88e6xxx_ops member. You can have several implementations in the same file (e.g. global1.c), so again the only value is the function name, not the struct member. Thanks, Vivien