<div dir="ltr">For ATI GPU the crtc_base could be the base pointer to the memory buffer:<div><br></div><div><div>./drivers/gpu/drm/radeon/rv770.c:</div><div>u32 rv770_page_flip(struct radeon_device *rdev, int crtc_id, u64 crtc_base)</div>
<div><br></div><div>./drivers/gpu/drm/radeon/rs600.c:</div><div>void rs600_pre_page_flip(struct radeon_device *rdev, int crtc)</div><div>void rs600_post_page_flip(struct radeon_device *rdev, int crtc)</div><div>u32 rs600_page_flip(struct radeon_device *rdev, int crtc_id, u64 crtc_base)</div>
<div><br></div><div style>As to the internals of these buffer area, well, u may need the datasheet from the vendor.   Just grep for &quot;CRTC&quot; inside the gpu/drm/radeon directory and you can understand why.</div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Jan 16, 2014 at 3:44 PM, Peter Teoh <span dir="ltr">&lt;<a href="mailto:htmldeveloper@gmail.com" target="_blank">htmldeveloper@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">In general how it worked is explained here:<div><br></div><div><a href="https://www.kernel.org/doc/htmldocs/drm/drm-kms-init.html" target="_blank">https://www.kernel.org/doc/htmldocs/drm/drm-kms-init.html</a><br>

</div><div><div><br></div><div>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</div>
<div>
:<br></div><div><br></div><div><br></div><div><div>static void do_intel_finish_page_flip(struct drm_device *dev,<br></div><div>void intel_finish_page_flip(struct drm_device *dev, int pipe)</div><div><span style="white-space:pre-wrap">        </span>do_intel_finish_page_flip(dev, crtc);</div>


<div>void intel_finish_page_flip_plane(struct drm_device *dev, int plane)</div><div><span style="white-space:pre-wrap">        </span>do_intel_finish_page_flip(dev, crtc);</div><div>void intel_prepare_page_flip(struct drm_device *dev, int plane)</div>


<div><span style="white-space:pre-wrap">        </span> * is also accompanied by a spurious intel_prepare_page_flip().</div><div>inline static void intel_mark_page_flip_active(struct intel_crtc *intel_crtc)</div><div><br></div>

</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Sat, Jan 11, 2014 at 9:27 PM, Sannu K <span dir="ltr">&lt;<a href="mailto:sannumail4foss@gmail.com" target="_blank">sannumail4foss@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div>
Hi,<br><br>I would like to access a monitor&#39;s content in kernel mode. I tried but could not find a generic way to access CRTC&#39;s scan out buffer in kernel mode. I prefer to do it in kernel mode as an experiment. Any pointers will greatly help.<br>


<br></div>Thanks and Regards,<br></div>Sannu K<br></div>
<br></div></div>_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org" target="_blank">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br></blockquote></div><span class=""><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Peter Teoh
</div></div></div>