1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>drm_primary_helper_update</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux DRM Developer's Guide"><link rel="up" href="ch02s05.html#idp1126989620" title="Plane Helper Reference"><link rel="prev" href="API-drm-plane-helper-check-update.html" title="drm_plane_helper_check_update"><link rel="next" href="API-drm-primary-helper-disable.html" title="drm_primary_helper_disable"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">drm_primary_helper_update</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-drm-plane-helper-check-update.html">Prev</a> </td><th width="60%" align="center">Plane Helper Reference</th><td width="20%" align="right"> <a accesskey="n" href="API-drm-primary-helper-disable.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-drm-primary-helper-update"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>drm_primary_helper_update — 2 Helper for primary plane update 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">drm_primary_helper_update </b>(</code></td><td>struct drm_plane * <var class="pdparam">plane</var>, </td></tr><tr><td> </td><td>struct drm_crtc * <var class="pdparam">crtc</var>, </td></tr><tr><td> </td><td>struct drm_framebuffer * <var class="pdparam">fb</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">crtc_x</var>, </td></tr><tr><td> </td><td>int <var class="pdparam">crtc_y</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">crtc_w</var>, </td></tr><tr><td> </td><td>unsigned int <var class="pdparam">crtc_h</var>, </td></tr><tr><td> </td><td>uint32_t <var class="pdparam">src_x</var>, </td></tr><tr><td> </td><td>uint32_t <var class="pdparam">src_y</var>, </td></tr><tr><td> </td><td>uint32_t <var class="pdparam">src_w</var>, </td></tr><tr><td> </td><td>uint32_t <var class="pdparam">src_h</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1127024764"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>plane</code></em></span></dt><dd><p> 4 plane object to update 5 </p></dd><dt><span class="term"><em class="parameter"><code>crtc</code></em></span></dt><dd><p> 6 owning CRTC of owning plane 7 </p></dd><dt><span class="term"><em class="parameter"><code>fb</code></em></span></dt><dd><p> 8 framebuffer to flip onto plane 9 </p></dd><dt><span class="term"><em class="parameter"><code>crtc_x</code></em></span></dt><dd><p> 10 x offset of primary plane on crtc 11 </p></dd><dt><span class="term"><em class="parameter"><code>crtc_y</code></em></span></dt><dd><p> 12 y offset of primary plane on crtc 13 </p></dd><dt><span class="term"><em class="parameter"><code>crtc_w</code></em></span></dt><dd><p> 14 width of primary plane rectangle on crtc 15 </p></dd><dt><span class="term"><em class="parameter"><code>crtc_h</code></em></span></dt><dd><p> 16 height of primary plane rectangle on crtc 17 </p></dd><dt><span class="term"><em class="parameter"><code>src_x</code></em></span></dt><dd><p> 18 x offset of <em class="parameter"><code>fb</code></em> for panning 19 </p></dd><dt><span class="term"><em class="parameter"><code>src_y</code></em></span></dt><dd><p> 20 y offset of <em class="parameter"><code>fb</code></em> for panning 21 </p></dd><dt><span class="term"><em class="parameter"><code>src_w</code></em></span></dt><dd><p> 22 width of source rectangle in <em class="parameter"><code>fb</code></em> 23 </p></dd><dt><span class="term"><em class="parameter"><code>src_h</code></em></span></dt><dd><p> 24 height of source rectangle in <em class="parameter"><code>fb</code></em> 25 </p></dd></dl></div></div><div class="refsect1"><a name="idp1127037988"></a><h2>Description</h2><p> 26 Provides a default plane update handler for primary planes. This is handler 27 is called in response to a userspace SetPlane operation on the plane with a 28 non-NULL framebuffer. We call the driver's modeset handler to update the 29 framebuffer. 30 </p><p> 31 32 <code class="function">SetPlane</code> on a primary plane of a disabled CRTC is not supported, and will 33 return an error. 34 </p><p> 35 36 Note that we make some assumptions about hardware limitations that may not be 37 true for all hardware -- 38 1) Primary plane cannot be repositioned. 39 2) Primary plane cannot be scaled. 40 3) Primary plane must cover the entire CRTC. 41 4) Subpixel positioning is not supported. 42 Drivers for hardware that don't have these restrictions can provide their 43 own implementation rather than using this helper. 44</p></div><div class="refsect1"><a name="idp1127039964"></a><h2>RETURNS</h2><p> 45 Zero on success, error code on failure 46</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-drm-plane-helper-check-update.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02s05.html#idp1126989620">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-drm-primary-helper-disable.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">drm_plane_helper_check_update</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">drm_primary_helper_disable</span></td></tr></table></div></body></html> 47