1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>drm_dev_alloc</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux GPU Driver Developer's Guide"><link rel="up" href="drmInternals.html#id-1.3.4.5.5" title="Device Instance and Driver Handling"><link rel="prev" href="API-drm-put-dev.html" title="drm_put_dev"><link rel="next" href="API-drm-dev-ref.html" title="drm_dev_ref"></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_dev_alloc</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-drm-put-dev.html">Prev</a> </td><th width="60%" align="center">Device Instance and Driver Handling</th><td width="20%" align="right"> <a accesskey="n" href="API-drm-dev-ref.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-drm-dev-alloc"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>drm_dev_alloc — 2 Allocate new DRM device 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">struct drm_device * <b class="fsfunc">drm_dev_alloc </b>(</code></td><td>struct drm_driver * <var class="pdparam">driver</var>, </td></tr><tr><td> </td><td>struct device * <var class="pdparam">parent</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="id-1.3.4.5.5.9.5"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>driver</code></em></span></dt><dd><p> 4 DRM driver to allocate device for 5 </p></dd><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p> 6 Parent device object 7 </p></dd></dl></div></div><div class="refsect1"><a name="id-1.3.4.5.5.9.6"></a><h2>Description</h2><p> 8 Allocate and initialize a new DRM device. No device registration is done. 9 Call <code class="function"><a class="link" href="API-drm-dev-register.html" title="drm_dev_register">drm_dev_register</a></code> to advertice the device to user space and register it 10 with other core subsystems. This should be done last in the device 11 initialization sequence to make sure userspace can't access an inconsistent 12 state. 13 </p><p> 14 15 The initial ref-count of the object is 1. Use <code class="function"><a class="link" href="API-drm-dev-ref.html" title="drm_dev_ref">drm_dev_ref</a></code> and 16 <code class="function"><a class="link" href="API-drm-dev-unref.html" title="drm_dev_unref">drm_dev_unref</a></code> to take and drop further ref-counts. 17 </p><p> 18 19 Note that for purely virtual devices <em class="parameter"><code>parent</code></em> can be NULL. 20</p></div><div class="refsect1"><a name="id-1.3.4.5.5.9.7"></a><h2>RETURNS</h2><p> 21 Pointer to new DRM device, or NULL if out of memory. 22</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-put-dev.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="drmInternals.html#id-1.3.4.5.5">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-drm-dev-ref.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">drm_put_dev</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_dev_ref</span></td></tr></table></div></body></html> 23