TODO . check error handling/cleanup paths . add drm_plane / overlay support . add video decode/encode support (via syslink3 + codec-engine) . still some rough edges with flipping.. event back to userspace should really come after VSYNC interrupt . where should we do eviction (detatch_pages())? We aren't necessarily accessing the pages via a GART, so maybe we need some other threshold to put a cap on the # of pages that can be pin'd. (It is mostly only of interest in case you have a swap partition/file.. which a lot of these devices do not.. but it doesn't hurt for the driver to do the right thing anyways.) . Use mm_shrinker to trigger unpinning pages. Need to figure out how to handle next issue first (I think?) . Note TTM already has some mm_shrinker stuff.. maybe an argument to move to TTM? Or maybe something that could be factored out in common? . GEM/shmem backed pages can have existing mappings (kernel linear map, etc..), which isn't really ideal. . Revisit GEM sync object infrastructure.. TTM has some framework for this already. Possibly this could be refactored out and made more common? There should be some way to do this with less wheel-reinvention. . Review DSS vs KMS mismatches. The omap_dss_device is sort of part encoder, part connector. Which results in a bit of duct tape to fwd calls from encoder to connector. Possibly this could be done a bit better. . Solve PM sequencing on resume. DMM/TILER must be reloaded before any access is made from any component in the system. Which means on suspend CRTC's should be disabled, and on resume the LUT should be reprogrammed before CRTC's are re-enabled, to prevent DSS from trying to DMA from a buffer mapped in DMM/TILER before LUT is reloaded. . Add debugfs information for DMM/TILER Userspace: . git://github.com/robclark/xf86-video-omap.git Currently tested on . OMAP3530 beagleboard . OMAP4430 pandaboard . OMAP4460 pandaboard