On Tue, Aug 21, 2012 at 11:57:45AM +0300, Tomi Valkeinen wrote: > On Tue, 2012-08-21 at 10:33 +0200, Thierry Reding wrote: > > > I suppose power sequences aren't needed if you have a specific driver > > for every panel out there. However that also means that you'd have to > > write drivers for literally every panel that requires support. In the > > end this will just result in discussion down the road how the common > > functionality can be refactored and we may end up with power sequences > > again. > > > > Also as you mentioned, power sequences are useful for a number of other > > use-cases. Without power sequences you'll have to potentially create > > extra frameworks tha reimplement parts of the power sequence code for > > their specific hardware needs. > > Right. I think my main concern is the use of DT data, not power > sequences as such. I've been going back and forth in my mind with this > issue with OMAP also. > > The question is: what stuff belongs to DT data and what belongs to the > kernel? I've been trying to go to the direction where DT is used to > describe the HW connections of different IP blocks and to pass board > specific configuration. Everything else is in the driver. > > This doesn't mean that we'd have a separate driver for each device. For > example, we have a generic panel driver in OMAP, which contains a kind > of small panel database. The panel database contains the name of the > panel as a key, and panel specific configuration as a value. This > configuration could also contain some kind of generic power sequence. I see. I do like the idea of it, because it is more straightforward than representing the whole sequence in DT. Matching could be done using the standard compatible property. However this also means we'll essentially just be moving the board code. Being in a central location it would be easier to refactor commonalities though. > I'd like to require the board developer to only fill in to the DT data > what panel he is using, and how it's connected on his board. Not panel's > internal functionality. The amount of work required by the board developer would largely depend on whether support for the panel is already present or not. For new panels this would mean that a new driver needs to be written, while representing the power sequence in DT might be easier to do, and readily available from some datasheet. > The one benefit I see with DT based approach is that if we have, say, > 10000 panels, we'd have quite a big database in kernel memory and a > board may only need one or two of those. But perhaps that could be > helped with the use of __initdata. I haven't worked with many different panels, so maybe I can't judge this too well, but if panel drivers were kept in a central location, then the number can be reduced by generalizing parts of existing drivers. Thierry
Attachment:
pgpc_BiUvxHGT.pgp
Description: PGP signature