| The U-Boot Driver Model Project |
| =============================== |
| Video output analysis |
| ===================== |
| Marek Vasut <marek.vasut@gmail.com> |
| 2012-02-20 |
| |
| I) Overview |
| ----------- |
| |
| The video drivers are most often registered with video subsystem. This subsystem |
| often expects to be allowed access to framebuffer of certain parameters. This |
| subsystem also provides calls for STDIO subsystem to allow it to output |
| characters on the screen. For this part, see [ UDM-stdio.txt ]. |
| |
| Therefore the API has two parts, the video driver part and the part where the |
| video driver core registers with STDIO API. |
| |
| The video driver part will follow the current cfb_console approach, though |
| allowing it to be more dynamic. |
| |
| II) Approach |
| ------------ |
| |
| Registering the video driver into the video driver core is done by calling the |
| following function from the driver probe() function: |
| |
| video_device_register(struct instance *i, GraphicDevice *gd); |
| |
| Because the video driver core is in charge or rendering characters as well as |
| bitmaps on the screen, it will in turn call stdio_device_register(i, so), where |
| "i" is the same instance as the video driver's one. But "so" will be special |
| static struct stdio_device_ops handling the character output. |
| |
| |
| III) Analysis of in-tree drivers |
| -------------------------------- |
| |
| 1) arch/powerpc/cpu/mpc8xx/video.c |
| ---------------------------------- |
| This driver copies the cfb_console [ see drivers/video/cfb_console.c ] |
| approach and acts only as a STDIO device. Therefore there are currently two |
| possible approaches, first being the conversion of this driver to usual STDIO |
| device and second, long-term one, being conversion of this driver to video |
| driver that provides console. |
| |
| 2) arch/x86/lib/video.c |
| ----------------------- |
| This driver registers two separate STDIO devices and should be therefore |
| converted as such. |
| |
| 3) board/bf527-ezkit/video.c |
| ---------------------------- |
| This driver seems bogus as it behaves as STDIO device, but provides no input |
| or output capabilities. It relies on DEV_EXT_VIDEO, which is no longer in use |
| or present otherwise than as a dead code/define. |
| |
| 4) board/bf533-stamp/video.c |
| ---------------------------- |
| This driver seems bogus as it behaves as STDIO device, but provides no input |
| or output capabilities. It relies on DEV_EXT_VIDEO, which is no longer in use |
| or present otherwise than as a dead code/define. |
| |
| 5) board/bf548-ezkit/video.c |
| ---------------------------- |
| This driver seems bogus as it behaves as STDIO device, but provides no input |
| or output capabilities. It relies on DEV_EXT_VIDEO, which is no longer in use |
| or present otherwise than as a dead code/define. |
| |
| 6) board/cm-bf548/video.c |
| ---------------------------- |
| This driver seems bogus as it behaves as STDIO device, but provides no input |
| or output capabilities. It relies on DEV_EXT_VIDEO, which is no longer in use |
| or present otherwise than as a dead code/define. |