For ATI GPU the crtc_base could be the base pointer to the memory buffer: ./drivers/gpu/drm/radeon/rv770.c: u32 rv770_page_flip(struct radeon_device *rdev, int crtc_id, u64 crtc_base) ./drivers/gpu/drm/radeon/rs600.c: void rs600_pre_page_flip(struct radeon_device *rdev, int crtc) void rs600_post_page_flip(struct radeon_device *rdev, int crtc) u32 rs600_page_flip(struct radeon_device *rdev, int crtc_id, u64 crtc_base) As to the internals of these buffer area, well, u may need the datasheet from the vendor. Just grep for "CRTC" inside the gpu/drm/radeon directory and you can understand why. On Thu, Jan 16, 2014 at 3:44 PM, Peter Teoh <htmldeveloper@gmail.com> wrote:
In general how it worked is explained here:
https://www.kernel.org/doc/htmldocs/drm/drm-kms-init.html
Not sure which is the name of your video card, but I think in general all the page flip API should have access to the scan buffer (see link above). For Intel these are possible APIs :
static void do_intel_finish_page_flip(struct drm_device *dev, void intel_finish_page_flip(struct drm_device *dev, int pipe) do_intel_finish_page_flip(dev, crtc); void intel_finish_page_flip_plane(struct drm_device *dev, int plane) do_intel_finish_page_flip(dev, crtc); void intel_prepare_page_flip(struct drm_device *dev, int plane) * is also accompanied by a spurious intel_prepare_page_flip(). inline static void intel_mark_page_flip_active(struct intel_crtc *intel_crtc)
On Sat, Jan 11, 2014 at 9:27 PM, Sannu K <sannumail4foss@gmail.com> wrote:
Hi,
I would like to access a monitor's content in kernel mode. I tried but could not find a generic way to access CRTC's scan out buffer in kernel mode. I prefer to do it in kernel mode as an experiment. Any pointers will greatly help.
Thanks and Regards, Sannu K
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
-- Regards, Peter Teoh