On Tue, Feb 16, 2021 at 6:10 PM Min Li <min.li...@renesas.com> wrote: > > > If I come up with a new file and move all the abstraction code there, > > > does that work? > > > > I think so, but it's more important to figure out a good user space > > interface > > first. The ioctl interfaces should be written on a higher-level > > abstraction, to > > ensure they can work with any hardware implementation and are not > > specific to Renesas devices. > > > > Can you describe on an abstract level how a user would use the character > > device, and what they achieve by that? > > This driver is meant to be used by Renesas PTP Clock Manager for > Linux (pcm4l) software for Renesas device only. > > About how pcm4l uses the char device, pcm4l will open the device > and do the supported ioctl cmds on the device, simple like that. > > At the same time, pcm4l will also open ptp hardware clock device, > which is /dev/ptp[x], to do clock adjustments.
I can't help but think you are evading my question I asked. If there is no specific action that this pcm4l tool needs to perform, then I'd think we should better not provide any interface for it at all. I also found a reference to only closed source software at https://www.renesas.com/us/en/software-tool/ptp-clock-manager-linux We don't add low-level interfaces to the kernel that are only usable by closed-source software. Once you are able to describe the requirements for what pcm4l actually needs from the hardware, we can start discussing what a high-level interface would look like that can be used to replace the your current interface, in a way that would work across vendors and with both pcm4l and open-source tools that do the same job. Arnd