
Hi,
On Wed, Dec 14, 2016 at 11:11:19PM +0100, Jernej Škrabec wrote:
While I took Rockchip HDMI code for reference, it can't be easily reused. First of, it uses DT nodes. I guess I could write DT binding or modify existing driver to work without it.
Like we discussed in the other part of the thread, I think the latter would be easier to deal with.
I forgot to mention that it also uses driver model. The way I would go with this is to split out common code to dwc_hdmi.c and have platform dependant drivers for Rockchip, Allwinner, etc. Basically the same way as it is done in Linux.
That sounds reasonable.
Thirdly, and in my opinion most annoying, Rockchip driver uses 32 bit aligned registers, but H3 does not. This also means a lot of work to make it more generic.
How does Linux deal with that? Would just using some kind of accessors that would abstract that away from the driver help, or is it more complicated?
Yes, Linux driver checks "reg-io-width" property and selects accessors accordingly. I suppose I could do similar, save function pointer in a driver private data. I suppose it is ok that platform specific code initializes this private data?
Something like passing a flag stored in the platform data (and/or read from DT for the relevant cases) to a generic accessor would also be a solution, without the need for everyone to implement its accessors.
Actually, H3 is more similar to i.MX6 HDMI in this regard, but driver's code is scattered throughout multiple files (search for mxc_hdmi.h inclusion). It is certainly doable, but it will take much more time. Basically, U-Boot already has two drivers for DWC HDMI and with this patch it will get third. Merging all three implementations into one would be very tedious, but very desirable goal. I must state that I didn't really try to understand i.MX6 HDMI code at all, so I don't now how hard it would be to pull it out.
I'm not sure that merging a third and saying that it would be up to the fourth to do the work is reasonable. It's just hiding an issue under the carpet, but I don't see how it will be easier for the next person to work on that. Quite the opposite actually.
True. I wonder if Renesas already prepared U-Boot DWC HDMI driver...
Do you think it makes sense to put all files related to Allwinner video drivers to sunxi subfolder? There will be at least 4 .c files according to my plan and even more in the future (at least for TV out driver).
On principle, I don't see anything wrong with that.
Thanks! Maxime