€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ"/translations/zh_CN/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/zh_TW/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/it_IT/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ja_JP/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/ko_KR/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/pt_BR/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ"/translations/sp_SP/gpu/drm-client”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒKernel clients”h]”hŒKernel clients”…”�”}”(hh¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hºhh·h²hh³Œ`. Protected by :c:type:`drm_device.clientlist_mutex `. ``funcs`` DRM client functions (optional) ``file`` DRM file ``modeset_mutex`` Protects **modesets**. ``modesets`` CRTC configurations ``suspended`` The client has been suspended. ``hotplug_pending`` A hotplug event has been received while the client was suspended. Try again on resume. ``hotplug_failed`` Set by client hotplug helpers if the hotplugging failed before. It is usually not tried again.”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(j—)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj$ubhŒ:”…”�”}”(hj$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kuhj ubj²)�”}”(hX6struct drm_client_dev { struct drm_device *dev; const char *name; struct list_head list; const struct drm_client_funcs *funcs; struct drm_file *file; struct mutex modeset_mutex; struct drm_mode_set *modesets; bool suspended; bool hotplug_pending; bool hotplug_failed; };”h]”hX6struct drm_client_dev { struct drm_device *dev; const char *name; struct list_head list; const struct drm_client_funcs *funcs; struct drm_file *file; struct mutex modeset_mutex; struct drm_mode_set *modesets; bool suspended; bool hotplug_pending; bool hotplug_failed; };”…”�”}”hjAsbah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1j±h³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kwhj ubhÌ)�”}”(hŒ **Members**”h]”j—)�”}”(hjRh]”hŒMembers”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjPubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K„hj ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ``dev`` DRM device ”h]”(jæ)�”}”(hŒ``dev``”h]”jì)�”}”(hjqh]”hŒdev”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kvhjkubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j†h´Kvhj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjkubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j†h´Kvhjhubjà)�”}”(hŒ``name`` Name of the client. ”h]”(jæ)�”}”(hŒ``name``”h]”jì)�”}”(hjªh]”hŒname”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K{hj¤ubj)�”}”(hhh]”hÌ)�”}”(hŒName of the client.”h]”hŒName of the client.”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¿h´K{hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j¿h´K{hjhubjà)�”}”(hŒ©``list`` List of all clients of a DRM device, linked into :c:type:`drm_device.clientlist `. Protected by :c:type:`drm_device.clientlist_mutex `. ”h]”(jæ)�”}”(hŒ``list``”h]”jì)�”}”(hjãh]”hŒlist”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjáubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K�hjÝubj)�”}”(hhh]”hÌ)�”}”(hŒŸList of all clients of a DRM device, linked into :c:type:`drm_device.clientlist `. Protected by :c:type:`drm_device.clientlist_mutex `.”h]”(hŒ1List of all clients of a DRM device, linked into ”…”�”}”(hjüh²hh³Nh´Nubh)�”}”(hŒ,:c:type:`drm_device.clientlist `”h]”jì)�”}”(hjh]”hŒdrm_device.clientlist”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œ drm_device”uh1hh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K€hjüubhŒ. Protected by ”…”�”}”(hjüh²hh³Nh´Nubh)�”}”(hŒ2:c:type:`drm_device.clientlist_mutex `”h]”jì)�”}”(hj*h]”hŒdrm_device.clientlist_mutex”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhj(ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œ drm_device”uh1hh³j#h´K€hjüubhŒ.”…”�”}”(hjüh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j#h´K€hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jøh´K�hjhubjà)�”}”(hŒ*``funcs`` DRM client functions (optional) ”h]”(jæ)�”}”(hŒ ``funcs``”h]”jì)�”}”(hjch]”hŒfuncs”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjaubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kˆhj]ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client functions (optional)”h]”hŒDRM client functions (optional)”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jxh´Kˆhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jxh´Kˆhjhubjà)�”}”(hŒ``file`` DRM file ”h]”(jæ)�”}”(hŒ``file``”h]”jì)�”}”(hjœh]”hŒfile”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K�hj–ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM file”h]”hŒDRM file”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j±h´K�hj²ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj–ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j±h´K�hjhubjà)�”}”(hŒ)``modeset_mutex`` Protects **modesets**. ”h]”(jæ)�”}”(hŒ``modeset_mutex``”h]”jì)�”}”(hjÕh]”hŒ modeset_mutex”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K’hjÏubj)�”}”(hhh]”hÌ)�”}”(hŒProtects **modesets**.”h]”(hŒ Protects ”…”�”}”(hjîh²hh³Nh´Nubj—)�”}”(hŒ **modesets**”h]”hŒmodesets”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjîubhŒ.”…”�”}”(hjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jêh´K’hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jêh´K’hjhubjà)�”}”(hŒ!``modesets`` CRTC configurations ”h]”(jæ)�”}”(hŒ ``modesets``”h]”jì)�”}”(hj h]”hŒmodesets”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K—hjubj)�”}”(hhh]”hÌ)�”}”(hŒCRTC configurations”h]”hŒCRTC configurations”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j5h´K—hj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j5h´K—hjhubjà)�”}”(hŒ-``suspended`` The client has been suspended. ”h]”(jæ)�”}”(hŒ ``suspended``”h]”jì)�”}”(hjYh]”hŒ suspended”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KœhjSubj)�”}”(hhh]”hÌ)�”}”(hŒThe client has been suspended.”h]”hŒThe client has been suspended.”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jnh´Kœhjoubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jnh´Kœhjhubjà)�”}”(hŒk``hotplug_pending`` A hotplug event has been received while the client was suspended. Try again on resume. ”h]”(jæ)�”}”(hŒ``hotplug_pending``”h]”jì)�”}”(hj’h]”hŒhotplug_pending”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K¤hjŒubj)�”}”(hhh]”hÌ)�”}”(hŒVA hotplug event has been received while the client was suspended. Try again on resume.”h]”hŒVA hotplug event has been received while the client was suspended. Try again on resume.”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K£hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjŒubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j§h´K¤hjhubjà)�”}”(hŒq``hotplug_failed`` Set by client hotplug helpers if the hotplugging failed before. It is usually not tried again.”h]”(jæ)�”}”(hŒ``hotplug_failed``”h]”jì)�”}”(hjÌh]”hŒhotplug_failed”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K«hjÆubj)�”}”(hhh]”hÌ)�”}”(hŒ^Set by client hotplug helpers if the hotplugging failed before. It is usually not tried again.”h]”hŒ^Set by client hotplug helpers if the hotplugging failed before. It is usually not tried again.”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jáh´K«hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jáh´K«hjhubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒdrm_client_buffer (C struct)”Œc.drm_client_buffer”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒdrm_client_buffer”h]”j)�”}”(hŒstruct drm_client_buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj!h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K²ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj!h²hh³j2h´K²ubj1)�”}”(hŒdrm_client_buffer”h]”j7)�”}”(hjh]”hŒdrm_client_buffer”…”�”}”(hjEh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjAubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj!h²hh³j2h´K²ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjh²hh³j2h´K²ubah}”(h]”jah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j2h´K²hjh²hubje)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K¸hjdh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjh²hh³j2h´K²ubeh}”(h]”h ]”(j�Œstruct”eh"]”h$]”h&]”j†j�j‡jjˆjj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hXØ**Definition**:: struct drm_client_buffer { struct drm_client_dev *client; struct drm_gem_object *gem; struct iosys_map map; struct drm_framebuffer *fb; }; **Members** ``client`` DRM client ``gem`` GEM object backing this buffer FIXME: The DRM framebuffer holds a reference on its GEM buffer objects. Do not use this field in new code and update existing users. ``map`` Virtual address for the buffer ``fb`` DRM framebuffer”h]”(hÌ)�”}”(hŒ**Definition**::”h]”(j—)�”}”(hŒ**Definition**”h]”hŒ Definition”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj‡ubhŒ:”…”�”}”(hj‡h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K¼hjƒubj²)�”}”(hŒšstruct drm_client_buffer { struct drm_client_dev *client; struct drm_gem_object *gem; struct iosys_map map; struct drm_framebuffer *fb; };”h]”hŒšstruct drm_client_buffer { struct drm_client_dev *client; struct drm_gem_object *gem; struct iosys_map map; struct drm_framebuffer *fb; };”…”�”}”hj¤sbah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1j±h³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K¾hjƒubhÌ)�”}”(hŒ **Members**”h]”j—)�”}”(hjµh]”hŒMembers”…”�”}”(hj·h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj³ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÅhjƒubjÛ)�”}”(hhh]”(jà)�”}”(hŒ``client`` DRM client ”h]”(jæ)�”}”(hŒ ``client``”h]”jì)�”}”(hjÔh]”hŒclient”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÒubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K½hjÎubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jéh´K½hjêubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÎubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jéh´K½hjËubjà)�”}”(hŒ­``gem`` GEM object backing this buffer FIXME: The DRM framebuffer holds a reference on its GEM buffer objects. Do not use this field in new code and update existing users. ”h]”(jæ)�”}”(hŒ``gem``”h]”jì)�”}”(hj h]”hŒgem”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÆhj ubj)�”}”(hhh]”(hÌ)�”}”(hŒGEM object backing this buffer”h]”hŒGEM object backing this buffer”…”�”}”(hj& h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÂhj# ubhÌ)�”}”(hŒ„FIXME: The DRM framebuffer holds a reference on its GEM buffer objects. Do not use this field in new code and update existing users.”h]”hŒ„FIXME: The DRM framebuffer holds a reference on its GEM buffer objects. Do not use this field in new code and update existing users.”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÄhj# ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j" h´KÆhjËubjà)�”}”(hŒ'``map`` Virtual address for the buffer ”h]”(jæ)�”}”(hŒ``map``”h]”jì)�”}”(hjV h]”hŒmap”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjT ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KËhjP ubj)�”}”(hhh]”hÌ)�”}”(hŒVirtual address for the buffer”h]”hŒVirtual address for the buffer”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jk h´KËhjl ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjP ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jk h´KËhjËubjà)�”}”(hŒ``fb`` DRM framebuffer”h]”(jæ)�”}”(hŒ``fb``”h]”jì)�”}”(hj� h]”hŒfb”…”�”}”(hj‘ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÏhj‰ ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM framebuffer”h]”hŒDRM framebuffer”…”�”}”(hj¨ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KÐhj¥ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‰ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j¤ h´KÏhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjƒubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ%drm_client_for_each_modeset (C macro)”Œc.drm_client_for_each_modeset”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒdrm_client_for_each_modeset”h]”j)�”}”(hŒdrm_client_for_each_modeset”h]”j1)�”}”(hŒdrm_client_for_each_modeset”h]”j7)�”}”(hjã h]”hŒdrm_client_for_each_modeset”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjé ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjå h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kíubah}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjá h²hh³j h´Kíubah}”(h]”jÜ ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j h´KíhjÞ h²hubje)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÞ h²hh³j h´Kíubeh}”(h]”h ]”(j�Œmacro”eh"]”h$]”h&]”j†j�j‡j jˆj j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´NubhÌ)�”}”(hŒ1``drm_client_for_each_modeset (modeset, client)``”h]”jì)�”}”(hj h]”hŒ-drm_client_for_each_modeset (modeset, client)”…”�”}”(hj! h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kïhh·h²hubhŒ block_quote”“”)�”}”(hŒIterate over client modesets ”h]”hÌ)�”}”(hŒIterate over client modesets”h]”hŒIterate over client modesets”…”�”}”(hj; h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kíhj7 ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5 h³jI h´Kíhh·h²hubj�)�”}”(hŒY**Parameters** ``modeset`` :c:type:`drm_mode_set` loop cursor ``client`` DRM client”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjV h]”hŒ Parameters”…”�”}”(hjX h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjT ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KñhjP ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ/``modeset`` :c:type:`drm_mode_set` loop cursor ”h]”(jæ)�”}”(hŒ ``modeset``”h]”jì)�”}”(hju h]”hŒmodeset”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kîhjo ubj)�”}”(hhh]”hÌ)�”}”(hŒ":c:type:`drm_mode_set` loop cursor”h]”(h)�”}”(hŒ:c:type:`drm_mode_set`”h]”jì)�”}”(hj” h]”hŒ drm_mode_set”…”�”}”(hj– h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhj’ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œ drm_mode_set”uh1hh³jŠ h´KîhjŽ ubhŒ loop cursor”…”�”}”(hjŽ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŠ h´Kîhj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jŠ h´Kîhjl ubjà)�”}”(hŒ``client`` DRM client”h]”(jæ)�”}”(hŒ ``client``”h]”jì)�”}”(hjÍ h]”hŒclient”…”�”}”(hjÏ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjË ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KðhjÇ ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hjæ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Kïhjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÇ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jâ h´Kðhjl ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjP ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ,drm_client_for_each_connector_iter (C macro)”Œ$c.drm_client_for_each_connector_iter”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ"drm_client_for_each_connector_iter”h]”j)�”}”(hŒ"drm_client_for_each_connector_iter”h]”j1)�”}”(hŒ"drm_client_for_each_connector_iter”h]”j7)�”}”(hj! h]”hŒ"drm_client_for_each_connector_iter”…”�”}”(hj+ h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj' ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj# h²hh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Köubah}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj h²hh³j> h´Köubah}”(h]”j ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j> h´Köhj h²hubje)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jdhj h²hh³j> h´Köubeh}”(h]”h ]”(j�Œmacro”eh"]”h$]”h&]”j†j�j‡jW jˆjW j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´NubhÌ)�”}”(hŒ8``drm_client_for_each_connector_iter (connector, iter)``”h]”jì)�”}”(hj] h]”hŒ4drm_client_for_each_connector_iter (connector, iter)”…”�”}”(hj_ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj[ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Køhh·h²hubj6 )�”}”(hŒconnector_list iterator macro ”h]”hÌ)�”}”(hŒconnector_list iterator macro”h]”hŒconnector_list iterator macro”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Köhjs ubah}”(h]”h ]”h"]”h$]”h&]”uh1j5 h³j… h´Köhh·h²hubj�)�”}”(hX\**Parameters** ``connector`` :c:type:`struct drm_connector ` pointer used as cursor ``iter`` :c:type:`struct drm_connector_list_iter ` **Description** This iterates the connectors that are useable for internal clients (excludes writeback connectors). For more info see drm_for_each_connector_iter().”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj’ h]”hŒ Parameters”…”�”}”(hj” h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj� ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KúhjŒ ubjÛ)�”}”(hhh]”(jà)�”}”(hŒT``connector`` :c:type:`struct drm_connector ` pointer used as cursor ”h]”(jæ)�”}”(hŒ ``connector``”h]”jì)�”}”(hj± h]”hŒ connector”…”�”}”(hj³ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj¯ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´K÷hj« ubj)�”}”(hhh]”hÌ)�”}”(hŒE:c:type:`struct drm_connector ` pointer used as cursor”h]”(h)�”}”(hŒ.:c:type:`struct drm_connector `”h]”jì)�”}”(hjÐ h]”hŒstruct drm_connector”…”�”}”(hjÒ h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjÎ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œ drm_connector”uh1hh³jÆ h´K÷hjÊ ubhŒ pointer used as cursor”…”�”}”(hjÊ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÆ h´K÷hjÇ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj« ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jÆ h´K÷hj¨ ubjà)�”}”(hŒL``iter`` :c:type:`struct drm_connector_list_iter ` ”h]”(jæ)�”}”(hŒ``iter``”h]”jì)�”}”(hj h]”hŒiter”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´Køhj ubj)�”}”(hhh]”hÌ)�”}”(hŒB:c:type:`struct drm_connector_list_iter `”h]”h)�”}”(hj$ h]”jì)�”}”(hj$ h]”hŒstruct drm_connector_list_iter”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhj& ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œdrm_connector_list_iter”uh1hh³j h´Køhj" ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´Køhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j h´Køhj¨ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjŒ ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj^ h]”hŒ Description”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj\ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KúhjŒ ubhÌ)�”}”(hŒcThis iterates the connectors that are useable for internal clients (excludes writeback connectors).”h]”hŒcThis iterates the connectors that are useable for internal clients (excludes writeback connectors).”…”�”}”(hjt h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KùhjŒ ubhÌ)�”}”(hŒ0For more info see drm_for_each_connector_iter().”h]”hŒ0For more info see drm_for_each_connector_iter().”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³ŒV/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:8: ./include/drm/drm_client.h”h´KühjŒ ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒdrm_client_init (C function)”Œc.drm_client_init”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒƒint drm_client_init (struct drm_device *dev, struct drm_client_dev *client, const char *name, const struct drm_client_funcs *funcs)”h]”j)�”}”(hŒ‚int drm_client_init(struct drm_device *dev, struct drm_client_dev *client, const char *name, const struct drm_client_funcs *funcs)”h]”(hŒdesc_sig_keyword_type”“”)�”}”(hŒint”h]”hŒint”…”�”}”(hj´ h²hh³Nh´Nubah}”(h]”h ]”Œkt”ah"]”h$]”h&]”uh1j² hj® h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KBubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÄ h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj® h²hh³jà h´KBubj1)�”}”(hŒdrm_client_init”h]”j7)�”}”(hŒdrm_client_init”h]”hŒdrm_client_init”…”�”}”(hjÖ h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÒ ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj® h²hh³jà h´KBubhŒdesc_parameterlist”“”)�”}”(hŒo(struct drm_device *dev, struct drm_client_dev *client, const char *name, const struct drm_client_funcs *funcs)”h]”(hŒdesc_parameter”“”)�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjö h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjò ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjò ubh)�”}”(hhh]”j7)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”Œ identifier”Œ reftarget”j Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j°Œ ASTIdentifier”“”)�”}”j* jØ sbŒc.drm_client_init”†”asbuh1hhjò ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj7 h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjò ubhŒdesc_sig_punctuation”“”)�”}”(hŒ*”h]”hŒ*”…”�”}”(hjG h²hh³Nh´Nubah}”(h]”h ]”Œp”ah"]”h$]”h&]”uh1jE hjò ubj7)�”}”(hŒdev”h]”hŒdev”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjò ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjì ubjñ )�”}”(hŒstruct drm_client_dev *client”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjo h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjk ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj| h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjk ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_dev”h]”hŒdrm_client_dev”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j� Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j3 Œc.drm_client_init”†”asbuh1hhjk ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj« h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjk ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjk ubj7)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjk ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjì ubjñ )�”}”(hŒconst char *name”h]”(j)�”}”(hŒconst”h]”hŒconst”…”�”}”(hjß h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÛ ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjí h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÛ ubj³ )�”}”(hŒchar”h]”hŒchar”…”�”}”(hjû h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÛ ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÛ ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjÛ ubj7)�”}”(hŒname”h]”hŒname”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÛ ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjì ubjñ )�”}”(hŒ$const struct drm_client_funcs *funcs”h]”(j)�”}”(hjá h]”hŒconst”…”�”}”(hj=h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj9ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj9ubj)�”}”(hjh]”hŒstruct”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj9ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj9ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_funcs”h]”hŒdrm_client_funcs”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjsubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jxŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j3 Œc.drm_client_init”†”asbuh1hhj9ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj9ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj9ubj7)�”}”(hŒfuncs”h]”hŒfuncs”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj9ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjì ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj® h²hh³jà h´KBubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjª h²hh³jà h´KBubah}”(h]”j¥ ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jà h´KBhj§ h²hubje)�”}”(hhh]”hÌ)�”}”(hŒInitialise a DRM client”h]”hŒInitialise a DRM client”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KBhjÖh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj§ h²hh³jà h´KBubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jñjˆjñj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hXC**Parameters** ``struct drm_device *dev`` DRM device ``struct drm_client_dev *client`` DRM client ``const char *name`` Client name ``const struct drm_client_funcs *funcs`` DRM client functions (optional) **Description** This initialises the client and opens a :c:type:`drm_file`. Use drm_client_register() to complete the process. The caller needs to hold a reference on **dev** before calling this function. The client is freed when the :c:type:`drm_device` is unregistered. See drm_client_release(). **Return** Zero on success or negative error code on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjûh]”hŒ Parameters”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KFhjõubjÛ)�”}”(hhh]”(jà)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jæ)�”}”(hŒ``struct drm_device *dev``”h]”jì)�”}”(hjh]”hŒstruct drm_device *dev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KChjubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j/h´KChj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j/h´KChjubjà)�”}”(hŒ-``struct drm_client_dev *client`` DRM client ”h]”(jæ)�”}”(hŒ!``struct drm_client_dev *client``”h]”jì)�”}”(hjSh]”hŒstruct drm_client_dev *client”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KDhjMubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jhh´KDhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjMubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jhh´KDhjubjà)�”}”(hŒ!``const char *name`` Client name ”h]”(jæ)�”}”(hŒ``const char *name``”h]”jì)�”}”(hjŒh]”hŒconst char *name”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KEhj†ubj)�”}”(hhh]”hÌ)�”}”(hŒ Client name”h]”hŒ Client name”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j¡h´KEhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj†ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j¡h´KEhjubjà)�”}”(hŒI``const struct drm_client_funcs *funcs`` DRM client functions (optional) ”h]”(jæ)�”}”(hŒ(``const struct drm_client_funcs *funcs``”h]”jì)�”}”(hjÅh]”hŒ$const struct drm_client_funcs *funcs”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KFhj¿ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client functions (optional)”h]”hŒDRM client functions (optional)”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÚh´KFhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jÚh´KFhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjõubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KHhjõubhÌ)�”}”(hXThis initialises the client and opens a :c:type:`drm_file`. Use drm_client_register() to complete the process. The caller needs to hold a reference on **dev** before calling this function. The client is freed when the :c:type:`drm_device` is unregistered. See drm_client_release().”h]”(hŒ(This initialises the client and opens a ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_file`”h]”jì)�”}”(hj h]”hŒdrm_file”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œdrm_file”uh1hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KGhjubhŒ]. Use drm_client_register() to complete the process. The caller needs to hold a reference on ”…”�”}”(hjh²hh³Nh´Nubj—)�”}”(hŒ**dev**”h]”hŒdev”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjubhŒ< before calling this function. The client is freed when the ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_device`”h]”jì)�”}”(hjVh]”hŒ drm_device”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjTubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œ drm_device”uh1hh³j=h´KGhjubhŒ+ is unregistered. See drm_client_release().”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j=h´KGhjõubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hjh]”hŒReturn”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KLhjõubhÌ)�”}”(hŒ2Zero on success or negative error code on failure.”h]”hŒ2Zero on success or negative error code on failure.”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KMhjõubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ drm_client_register (C function)”Œc.drm_client_register”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ8void drm_client_register (struct drm_client_dev *client)”h]”j)�”}”(hŒ7void drm_client_register(struct drm_client_dev *client)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÀh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Koubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÀh²hh³jÒh´Koubj1)�”}”(hŒdrm_client_register”h]”j7)�”}”(hŒdrm_client_register”h]”hŒdrm_client_register”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjáubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjÀh²hh³jÒh´Koubjë )�”}”(hŒ(struct drm_client_dev *client)”h]”jñ )�”}”(hŒstruct drm_client_dev *client”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjýubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjýubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_dev”h]”hŒdrm_client_dev”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j!Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jçsbŒc.drm_client_register”†”asbuh1hhjýubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjýubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjýubj7)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjýubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjùubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hjÀh²hh³jÒh´Koubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj¼h²hh³jÒh´Koubah}”(h]”j·ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÒh´Kohj¹h²hubje)�”}”(hhh]”hÌ)�”}”(hŒRegister client”h]”hŒRegister client”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Kohj�h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj¹h²hh³jÒh´Koubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jœjˆjœj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hXs**Parameters** ``struct drm_client_dev *client`` DRM client **Description** Add the client to the :c:type:`drm_device` client list to activate its callbacks. **client** must be initialized by a call to drm_client_init(). After drm_client_register() it is no longer permissible to call drm_client_release() directly (outside the unregister callback), instead cleanup will happen automatically on driver unload. Registering a client generates a hotplug event that allows the client to set up its display from pre-existing outputs. The client must have initialized its state to able to handle the hotplug event successfully.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj¦h]”hŒ Parameters”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Kshj ubjÛ)�”}”(hhh]”jà)�”}”(hŒ-``struct drm_client_dev *client`` DRM client ”h]”(jæ)�”}”(hŒ!``struct drm_client_dev *client``”h]”jì)�”}”(hjÅh]”hŒstruct drm_client_dev *client”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Kphj¿ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÚh´KphjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jÚh´Kphj¼ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjh]”hŒ Description”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Krhj ubhÌ)�”}”(hXMAdd the client to the :c:type:`drm_device` client list to activate its callbacks. **client** must be initialized by a call to drm_client_init(). After drm_client_register() it is no longer permissible to call drm_client_release() directly (outside the unregister callback), instead cleanup will happen automatically on driver unload.”h]”(hŒAdd the client to the ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_device`”h]”jì)�”}”(hj h]”hŒ drm_device”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œ drm_device”uh1hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KqhjubhŒ( client list to activate its callbacks. ”…”�”}”(hjh²hh³Nh´Nubj—)�”}”(hŒ **client**”h]”hŒclient”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjubhŒñ must be initialized by a call to drm_client_init(). After drm_client_register() it is no longer permissible to call drm_client_release() directly (outside the unregister callback), instead cleanup will happen automatically on driver unload.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j=h´Kqhj ubhÌ)�”}”(hŒÓRegistering a client generates a hotplug event that allows the client to set up its display from pre-existing outputs. The client must have initialized its state to able to handle the hotplug event successfully.”h]”hŒÓRegistering a client generates a hotplug event that allows the client to set up its display from pre-existing outputs. The client must have initialized its state to able to handle the hotplug event successfully.”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Kwhj ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒdrm_client_release (C function)”Œc.drm_client_release”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ7void drm_client_release (struct drm_client_dev *client)”h]”j)�”}”(hŒ6void drm_client_release(struct drm_client_dev *client)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hj…h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K˜ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj…h²hh³j—h´K˜ubj1)�”}”(hŒdrm_client_release”h]”j7)�”}”(hŒdrm_client_release”h]”hŒdrm_client_release”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”jBa•h"]”h$]”h&]”uh1j6hj¦ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj…h²hh³j—h´K˜ubjë )�”}”(hŒ(struct drm_client_dev *client)”h]”jñ )�”}”(hŒstruct drm_client_dev *client”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÂubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÂubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_dev”h]”hŒdrm_client_dev”…”�”}”(hjäh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjáubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jæŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* j¬sbŒc.drm_client_release”†”asbuh1hhjÂubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÂubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjÂubj7)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÂubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj¾ubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj…h²hh³j—h´K˜ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj�h²hh³j—h´K˜ubah}”(h]”j|ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j—h´K˜hj~h²hubje)�”}”(hhh]”hÌ)�”}”(hŒRelease DRM client resources”h]”hŒRelease DRM client resources”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K˜hjFh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj~h²hh³j—h´K˜ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jajˆjaj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX^**Parameters** ``struct drm_client_dev *client`` DRM client **Description** Releases resources by closing the :c:type:`drm_file` that was opened by drm_client_init(). It is called automatically if the :c:type:`drm_client_funcs.unregister ` callback is _not_ set. This function should only be called from the unregister callback. An exception is fbdev which cannot free the buffer if userspace has open file descriptors. **Note** Clients cannot initiate a release by themselves. This is done to keep the code simple. The driver has to be unloaded before the client can be unloaded.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjkh]”hŒ Parameters”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjiubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KœhjeubjÛ)�”}”(hhh]”jà)�”}”(hŒ-``struct drm_client_dev *client`` DRM client ”h]”(jæ)�”}”(hŒ!``struct drm_client_dev *client``”h]”jì)�”}”(hjŠh]”hŒstruct drm_client_dev *client”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K™hj„ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jŸh´K™hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj„ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jŸh´K™hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjeubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjÅh]”hŒ Description”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÃubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K›hjeubhÌ)�”}”(hŒÌReleases resources by closing the :c:type:`drm_file` that was opened by drm_client_init(). It is called automatically if the :c:type:`drm_client_funcs.unregister ` callback is _not_ set.”h]”(hŒ"Releases resources by closing the ”…”�”}”(hjÛh²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_file`”h]”jì)�”}”(hjåh]”hŒdrm_file”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjãubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œdrm_file”uh1hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KšhjÛubhŒI that was opened by drm_client_init(). It is called automatically if the ”…”�”}”(hjÛh²hh³Nh´Nubh)�”}”(hŒ8:c:type:`drm_client_funcs.unregister `”h]”jì)�”}”(hj h]”hŒdrm_client_funcs.unregister”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œdrm_client_funcs”uh1hh³jh´KšhjÛubhŒ callback is _not_ set.”…”�”}”(hjÛh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jh´KšhjeubhÌ)�”}”(hŒœThis function should only be called from the unregister callback. An exception is fbdev which cannot free the buffer if userspace has open file descriptors.”h]”hŒœThis function should only be called from the unregister callback. An exception is fbdev which cannot free the buffer if userspace has open file descriptors.”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K�hjeubhÌ)�”}”(hŒ**Note**”h]”j—)�”}”(hjAh]”hŒNote”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K hjeubhÌ)�”}”(hŒ—Clients cannot initiate a release by themselves. This is done to keep the code simple. The driver has to be unloaded before the client can be unloaded.”h]”hŒ—Clients cannot initiate a release by themselves. This is done to keep the code simple. The driver has to be unloaded before the client can be unloaded.”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K¡hjeubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ%drm_client_buffer_delete (C function)”Œc.drm_client_buffer_delete”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ@void drm_client_buffer_delete (struct drm_client_buffer *buffer)”h]”j)�”}”(hŒ?void drm_client_buffer_delete(struct drm_client_buffer *buffer)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hj‚h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K¶ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj‚h²hh³j”h´K¶ubj1)�”}”(hŒdrm_client_buffer_delete”h]”j7)�”}”(hŒdrm_client_buffer_delete”h]”hŒdrm_client_buffer_delete”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj£ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj‚h²hh³j”h´K¶ubjë )�”}”(hŒ"(struct drm_client_buffer *buffer)”h]”jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¿ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj¿ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÞubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jãŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* j©sbŒc.drm_client_buffer_delete”†”asbuh1hhj¿ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj¿ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj¿ubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj¿ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj»ubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj‚h²hh³j”h´K¶ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj~h²hh³j”h´K¶ubah}”(h]”jyah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j”h´K¶hj{h²hubje)�”}”(hhh]”hÌ)�”}”(hŒDelete a client buffer”h]”hŒDelete a client buffer”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K¶hjCh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj{h²hh³j”h´K¶ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j^jˆj^j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hŒH**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjhh]”hŒ Parameters”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjfubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´KºhjbubjÛ)�”}”(hhh]”jà)�”}”(hŒ6``struct drm_client_buffer *buffer`` DRM client buffer”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hj‡h]”hŒ struct drm_client_buffer *buffer”…”�”}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj…ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K¼hj�ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´K·hj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jœh´K¼hj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjbubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ)drm_client_buffer_vmap_local (C function)”Œc.drm_client_buffer_vmap_local”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ_int drm_client_buffer_vmap_local (struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”j)�”}”(hŒ^int drm_client_buffer_vmap_local(struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”(j³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÝh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjðh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÝh²hh³jïh´Mubj1)�”}”(hŒdrm_client_buffer_vmap_local”h]”j7)�”}”(hŒdrm_client_buffer_vmap_local”h]”hŒdrm_client_buffer_vmap_local”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjþubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjÝh²hh³jïh´Mubjë )�”}”(hŒ>(struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”(jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj9ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j>Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jsbŒc.drm_client_buffer_vmap_local”†”asbuh1hhjubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjubjñ )�”}”(hŒstruct iosys_map *map_copy”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjŒubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjŒubh)�”}”(hhh]”j7)�”}”(hŒ iosys_map”h]”hŒ iosys_map”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j°Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jXŒc.drm_client_buffer_vmap_local”†”asbuh1hhjŒubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjŒubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjŒubj7)�”}”(hŒmap_copy”h]”hŒmap_copy”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjŒubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hjÝh²hh³jïh´Mubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjÙh²hh³jïh´Mubah}”(h]”jÔah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jïh´MhjÖh²hubje)�”}”(hhh]”hÌ)�”}”(hŒ(Map DRM client buffer into address space”h]”hŒ(Map DRM client buffer into address space”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhjh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÖh²hh³jïh´Mubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j)jˆj)j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer ``struct iosys_map *map_copy`` Returns the mapped memory's address **Description** This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping's address. Client buffer mappings are not ref'counted. Each call to drm_client_buffer_vmap_local() should be closely followed by a call to drm_client_buffer_vunmap_local(). See drm_client_buffer_vmap() for long-term mappings. The returned address is a copy of the internal value. In contrast to other vmap interfaces, you don't need it for the client's vunmap function. So you can modify it at will during blit and draw operations. **Return** 0 on success, or a negative errno code otherwise.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj3h]”hŒ Parameters”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj1ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ7``struct drm_client_buffer *buffer`` DRM client buffer ”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hjRh]”hŒ struct drm_client_buffer *buffer”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjPubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MhjLubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jgh´Mhjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jgh´MhjIubjà)�”}”(hŒC``struct iosys_map *map_copy`` Returns the mapped memory's address ”h]”(jæ)�”}”(hŒ``struct iosys_map *map_copy``”h]”jì)�”}”(hj‹h]”hŒstruct iosys_map *map_copy”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj…ubj)�”}”(hhh]”hÌ)�”}”(hŒ#Returns the mapped memory's address”h]”hŒ%Returns the mapped memory’s address”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j h´Mhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj…ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j h´MhjIubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj-ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjÆh]”hŒ Description”…”�”}”(hjÈh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubhÌ)�”}”(hŒ‰This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping's address.”h]”hŒ‹This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping’s address.”…”�”}”(hjÜh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubhÌ)�”}”(hŒÖClient buffer mappings are not ref'counted. Each call to drm_client_buffer_vmap_local() should be closely followed by a call to drm_client_buffer_vunmap_local(). See drm_client_buffer_vmap() for long-term mappings.”h]”hŒØClient buffer mappings are not ref’counted. Each call to drm_client_buffer_vmap_local() should be closely followed by a call to drm_client_buffer_vunmap_local(). See drm_client_buffer_vmap() for long-term mappings.”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubhÌ)�”}”(hŒÍThe returned address is a copy of the internal value. In contrast to other vmap interfaces, you don't need it for the client's vunmap function. So you can modify it at will during blit and draw operations.”h]”hŒÑThe returned address is a copy of the internal value. In contrast to other vmap interfaces, you don’t need it for the client’s vunmap function. So you can modify it at will during blit and draw operations.”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hj h]”hŒReturn”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubhÌ)�”}”(hŒ10 on success, or a negative errno code otherwise.”h]”hŒ10 on success, or a negative errno code otherwise.”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mhj-ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ+drm_client_buffer_vunmap_local (C function)”Œ c.drm_client_buffer_vunmap_local”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒFvoid drm_client_buffer_vunmap_local (struct drm_client_buffer *buffer)”h]”j)�”}”(hŒEvoid drm_client_buffer_vunmap_local(struct drm_client_buffer *buffer)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjLh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M9ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjLh²hh³j^h´M9ubj1)�”}”(hŒdrm_client_buffer_vunmap_local”h]”j7)�”}”(hŒdrm_client_buffer_vunmap_local”h]”hŒdrm_client_buffer_vunmap_local”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjmubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjLh²hh³j^h´M9ubjë )�”}”(hŒ"(struct drm_client_buffer *buffer)”h]”jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj‰ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj‰ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hj«h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj¨ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j­Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jssbŒ c.drm_client_buffer_vunmap_local”†”asbuh1hhj‰ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj‰ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj‰ubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj‰ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj…ubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hjLh²hh³j^h´M9ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjHh²hh³j^h´M9ubah}”(h]”jCah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j^h´M9hjEh²hubje)�”}”(hhh]”hÌ)�”}”(hŒUnmap DRM client buffer”h]”hŒUnmap DRM client buffer”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M9hj h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjEh²hh³j^h´M9ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j(jˆj(j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX'**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer **Description** This function removes a client buffer's memory mapping established with drm_client_buffer_vunmap_local(). Calling this function is only required by clients that manage their buffer mappings by themselves.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj2h]”hŒ Parameters”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M=hj,ubjÛ)�”}”(hhh]”jà)�”}”(hŒ7``struct drm_client_buffer *buffer`` DRM client buffer ”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hjQh]”hŒ struct drm_client_buffer *buffer”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjOubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M:hjKubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jfh´M:hjgubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jfh´M:hjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj,ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjŒh]”hŒ Description”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M<hj,ubhÌ)�”}”(hŒÌThis function removes a client buffer's memory mapping established with drm_client_buffer_vunmap_local(). Calling this function is only required by clients that manage their buffer mappings by themselves.”h]”hŒÎThis function removes a client buffer’s memory mapping established with drm_client_buffer_vunmap_local(). Calling this function is only required by clients that manage their buffer mappings by themselves.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M;hj,ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ#drm_client_buffer_vmap (C function)”Œc.drm_client_buffer_vmap”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒYint drm_client_buffer_vmap (struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”j)�”}”(hŒXint drm_client_buffer_vmap(struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”(j³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÍh²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MKubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÍh²hh³jßh´MKubj1)�”}”(hŒdrm_client_buffer_vmap”h]”j7)�”}”(hŒdrm_client_buffer_vmap”h]”hŒdrm_client_buffer_vmap”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjîubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjÍh²hh³jßh´MKubjë )�”}”(hŒ>(struct drm_client_buffer *buffer, struct iosys_map *map_copy)”h]”(jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj)ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j.Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jôsbŒc.drm_client_buffer_vmap”†”asbuh1hhj ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj ubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hjgh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjubjñ )�”}”(hŒstruct iosys_map *map_copy”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj€h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj|ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj|ubh)�”}”(hhh]”j7)�”}”(hŒ iosys_map”h]”hŒ iosys_map”…”�”}”(hjžh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj›ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jHŒc.drm_client_buffer_vmap”†”asbuh1hhj|ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj|ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj|ubj7)�”}”(hŒmap_copy”h]”hŒmap_copy”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj|ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hjÍh²hh³jßh´MKubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjÉh²hh³jßh´MKubah}”(h]”jÄah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jßh´MKhjÆh²hubje)�”}”(hhh]”hÌ)�”}”(hŒ(Map DRM client buffer into address space”h]”hŒ(Map DRM client buffer into address space”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MKhjþh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÆh²hh³jßh´MKubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jjˆjj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer ``struct iosys_map *map_copy`` Returns the mapped memory's address **Description** This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping's address. Client buffer mappings are not ref'counted. Each call to drm_client_buffer_vmap() should be followed by a call to drm_client_buffer_vunmap(); or the client buffer should be mapped throughout its lifetime. The returned address is a copy of the internal value. In contrast to other vmap interfaces, you don't need it for the client's vunmap function. So you can modify it at will during blit and draw operations. **Return** 0 on success, or a negative errno code otherwise.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj#h]”hŒ Parameters”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MOhjubjÛ)�”}”(hhh]”(jà)�”}”(hŒ7``struct drm_client_buffer *buffer`` DRM client buffer ”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hjBh]”hŒ struct drm_client_buffer *buffer”…”�”}”(hjDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MLhj<ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hj[h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jWh´MLhjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jWh´MLhj9ubjà)�”}”(hŒC``struct iosys_map *map_copy`` Returns the mapped memory's address ”h]”(jæ)�”}”(hŒ``struct iosys_map *map_copy``”h]”jì)�”}”(hj{h]”hŒstruct iosys_map *map_copy”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjyubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MMhjuubj)�”}”(hhh]”hÌ)�”}”(hŒ#Returns the mapped memory's address”h]”hŒ%Returns the mapped memory’s address”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j�h´MMhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j�h´MMhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj¶h]”hŒ Description”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MOhjubhÌ)�”}”(hŒ‰This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping's address.”h]”hŒ‹This function maps a client buffer into kernel address space. If the buffer is already mapped, it returns the existing mapping’s address.”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MNhjubhÌ)�”}”(hŒÌClient buffer mappings are not ref'counted. Each call to drm_client_buffer_vmap() should be followed by a call to drm_client_buffer_vunmap(); or the client buffer should be mapped throughout its lifetime.”h]”hŒÎClient buffer mappings are not ref’counted. Each call to drm_client_buffer_vmap() should be followed by a call to drm_client_buffer_vunmap(); or the client buffer should be mapped throughout its lifetime.”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MQhjubhÌ)�”}”(hŒÍThe returned address is a copy of the internal value. In contrast to other vmap interfaces, you don't need it for the client's vunmap function. So you can modify it at will during blit and draw operations.”h]”hŒÑThe returned address is a copy of the internal value. In contrast to other vmap interfaces, you don’t need it for the client’s vunmap function. So you can modify it at will during blit and draw operations.”…”�”}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MVhjubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hjûh]”hŒReturn”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MZhjubhÌ)�”}”(hŒ10 on success, or a negative errno code otherwise.”h]”hŒ10 on success, or a negative errno code otherwise.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M[hjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ%drm_client_buffer_vunmap (C function)”Œc.drm_client_buffer_vunmap”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ@void drm_client_buffer_vunmap (struct drm_client_buffer *buffer)”h]”j)�”}”(hŒ?void drm_client_buffer_vunmap(struct drm_client_buffer *buffer)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hj<h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mnubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjOh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj<h²hh³jNh´Mnubj1)�”}”(hŒdrm_client_buffer_vunmap”h]”j7)�”}”(hŒdrm_client_buffer_vunmap”h]”hŒdrm_client_buffer_vunmap”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj]ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj<h²hh³jNh´Mnubjë )�”}”(hŒ"(struct drm_client_buffer *buffer)”h]”jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjyubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjyubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj˜ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j�Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jcsbŒc.drm_client_buffer_vunmap”†”asbuh1hhjyubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjyubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjyubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjyubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjuubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj<h²hh³jNh´Mnubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj8h²hh³jNh´Mnubah}”(h]”j3ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jNh´Mnhj5h²hubje)�”}”(hhh]”hÌ)�”}”(hŒUnmap DRM client buffer”h]”hŒUnmap DRM client buffer”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mnhjýh²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj5h²hh³jNh´Mnubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jjˆjj‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hŒõ**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer **Description** This function removes a client buffer's memory mapping. Calling this function is only required by clients that manage their buffer mappings by themselves.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj"h]”hŒ Parameters”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MrhjubjÛ)�”}”(hhh]”jà)�”}”(hŒ7``struct drm_client_buffer *buffer`` DRM client buffer ”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hjAh]”hŒ struct drm_client_buffer *buffer”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mohj;ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jVh´MohjWubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jVh´Mohj8ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj|h]”hŒ Description”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjzubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MqhjubhÌ)�”}”(hŒšThis function removes a client buffer's memory mapping. Calling this function is only required by clients that manage their buffer mappings by themselves.”h]”hŒœThis function removes a client buffer’s memory mapping. Calling this function is only required by clients that manage their buffer mappings by themselves.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mphjubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ*drm_client_buffer_create_dumb (C function)”Œc.drm_client_buffer_create_dumb”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ{struct drm_client_buffer * drm_client_buffer_create_dumb (struct drm_client_dev *client, u32 width, u32 height, u32 format)”h]”j)�”}”(hŒystruct drm_client_buffer *drm_client_buffer_create_dumb(struct drm_client_dev *client, u32 width, u32 height, u32 format)”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÁh²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj½h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M~ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj½h²hh³jÎh´M~ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hjàh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÝubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jâŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* Œdrm_client_buffer_create_dumb”sbŒc.drm_client_buffer_create_dumb”†”asbuh1hhj½h²hh³jÎh´M~ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj½h²hh³jÎh´M~ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj½h²hh³jÎh´M~ubj1)�”}”(hŒdrm_client_buffer_create_dumb”h]”j7)�”}”(hjþh]”hŒdrm_client_buffer_create_dumb”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj½h²hh³jÎh´M~ubjë )�”}”(hŒB(struct drm_client_dev *client, u32 width, u32 height, u32 format)”h]”(jñ )�”}”(hŒstruct drm_client_dev *client”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj7ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj7ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_dev”h]”hŒdrm_client_dev”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjVubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j[Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüŒc.drm_client_buffer_create_dumb”†”asbuh1hhj7ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj7ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj7ubj7)�”}”(hŒclient”h]”hŒclient”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj3ubjñ )�”}”(hŒ u32 width”h]”(h)�”}”(hhh]”j7)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj«ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j°Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüŒc.drm_client_buffer_create_dumb”†”asbuh1hhj§ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj§ubj7)�”}”(hŒwidth”h]”hŒwidth”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj§ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj3ubjñ )�”}”(hŒ u32 height”h]”(h)�”}”(hhh]”j7)�”}”(hŒu32”h]”hŒu32”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjóubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jøŒmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüŒc.drm_client_buffer_create_dumb”†”asbuh1hhjïubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjïubj7)�”}”(hŒheight”h]”hŒheight”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjïubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj3ubjñ )�”}”(hŒ u32 format”h]”(h)�”}”(hhh]”j7)�”}”(hŒu32”h]”hŒu32”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj;ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j@Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jüŒc.drm_client_buffer_create_dumb”†”asbuh1hhj7ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj7ubj7)�”}”(hŒformat”h]”hŒformat”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj7ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj3ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj½h²hh³jÎh´M~ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj¹h²hh³jÎh´M~ubah}”(h]”j´ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jÎh´M~hj¶h²hubje)�”}”(hhh]”hÌ)�”}”(hŒ.Create a client buffer backed by a dumb buffer”h]”hŒ.Create a client buffer backed by a dumb buffer”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M~hj‘h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj¶h²hh³jÎh´M~ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j¬jˆj¬j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX¯**Parameters** ``struct drm_client_dev *client`` DRM client ``u32 width`` Framebuffer width ``u32 height`` Framebuffer height ``u32 format`` Buffer format **Description** This function creates a :c:type:`drm_client_buffer` which consists of a :c:type:`drm_framebuffer` backed by a dumb buffer. Call drm_client_buffer_delete() to free the buffer. **Return** Pointer to a client buffer or an error pointer on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj¶h]”hŒ Parameters”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj´ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M‚hj°ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ-``struct drm_client_dev *client`` DRM client ”h]”(jæ)�”}”(hŒ!``struct drm_client_dev *client``”h]”jì)�”}”(hjÕh]”hŒstruct drm_client_dev *client”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MhjÏubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jêh´Mhjëubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jêh´MhjÌubjà)�”}”(hŒ ``u32 width`` Framebuffer width ”h]”(jæ)�”}”(hŒ ``u32 width``”h]”jì)�”}”(hj h]”hŒ u32 width”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M€hj ubj)�”}”(hhh]”hÌ)�”}”(hŒFramebuffer width”h]”hŒFramebuffer width”…”�”}”(hj' h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j# h´M€hj$ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j# h´M€hjÌubjà)�”}”(hŒ"``u32 height`` Framebuffer height ”h]”(jæ)�”}”(hŒ``u32 height``”h]”jì)�”}”(hjG h]”hŒ u32 height”…”�”}”(hjI h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjE ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M�hjA ubj)�”}”(hhh]”hÌ)�”}”(hŒFramebuffer height”h]”hŒFramebuffer height”…”�”}”(hj` h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j\ h´M�hj] ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjA ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j\ h´M�hjÌubjà)�”}”(hŒ``u32 format`` Buffer format ”h]”(jæ)�”}”(hŒ``u32 format``”h]”jì)�”}”(hj€ h]”hŒ u32 format”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj~ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M‚hjz ubj)�”}”(hhh]”hÌ)�”}”(hŒ Buffer format”h]”hŒ Buffer format”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j• h´M‚hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j• h´M‚hjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj°ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj» h]”hŒ Description”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj¹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M„hj°ubhÌ)�”}”(hŒ®This function creates a :c:type:`drm_client_buffer` which consists of a :c:type:`drm_framebuffer` backed by a dumb buffer. Call drm_client_buffer_delete() to free the buffer.”h]”(hŒThis function creates a ”…”�”}”(hjÑ h²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_client_buffer`”h]”jì)�”}”(hjÛ h]”hŒdrm_client_buffer”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œdrm_client_buffer”uh1hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´MƒhjÑ ubhŒ which consists of a ”…”�”}”(hjÑ h²hh³Nh´Nubh)�”}”(hŒ:c:type:`drm_framebuffer`”h]”jì)�”}”(hjÿ h]”hŒdrm_framebuffer”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjý ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰j¯j³j·Œdrm_framebuffer”uh1hh³jø h´MƒhjÑ ubhŒM backed by a dumb buffer. Call drm_client_buffer_delete() to free the buffer.”…”�”}”(hjÑ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jø h´Mƒhj°ubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hj(!h]”hŒReturn”…”�”}”(hj*!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj&!ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M‡hj°ubhÌ)�”}”(hŒ:Pointer to a client buffer or an error pointer on failure.”h]”hŒ:Pointer to a client buffer or an error pointer on failure.”…”�”}”(hj>!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mˆhj°ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ$drm_client_buffer_flush (C function)”Œc.drm_client_buffer_flush”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒUint drm_client_buffer_flush (struct drm_client_buffer *buffer, struct drm_rect *rect)”h]”j)�”}”(hŒTint drm_client_buffer_flush(struct drm_client_buffer *buffer, struct drm_rect *rect)”h]”(j³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjm!h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hji!h²hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M³ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj|!h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhji!h²hh³j{!h´M³ubj1)�”}”(hŒdrm_client_buffer_flush”h]”j7)�”}”(hŒdrm_client_buffer_flush”h]”hŒdrm_client_buffer_flush”…”�”}”(hjŽ!h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjŠ!ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hji!h²hh³j{!h´M³ubjë )�”}”(hŒ9(struct drm_client_buffer *buffer, struct drm_rect *rect)”h]”(jñ )�”}”(hŒ struct drm_client_buffer *buffer”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjª!h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj¦!ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj·!h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj¦!ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_buffer”h]”hŒdrm_client_buffer”…”�”}”(hjÈ!h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÅ!ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jÊ!Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* j�!sbŒc.drm_client_buffer_flush”†”asbuh1hhj¦!ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjè!h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj¦!ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjö!h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj¦!ubj7)�”}”(hŒbuffer”h]”hŒbuffer”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj¦!ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj¢!ubjñ )�”}”(hŒstruct drm_rect *rect”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj"ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)"h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj"ubh)�”}”(hhh]”j7)�”}”(hŒdrm_rect”h]”hŒdrm_rect”…”�”}”(hj:"h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj7"ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j<"Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”jä!Œc.drm_client_buffer_flush”†”asbuh1hhj"ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjX"h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj"ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjf"h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj"ubj7)�”}”(hŒrect”h]”hŒrect”…”�”}”(hjs"h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj¢!ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hji!h²hh³j{!h´M³ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhje!h²hh³j{!h´M³ubah}”(h]”j`!ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j{!h´M³hjb!h²hubje)�”}”(hhh]”hÌ)�”}”(hŒManually flush client buffer”h]”hŒManually flush client buffer”…”�”}”(hj�"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M³hjš"h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjb!h²hh³j{!h´M³ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jµ"jˆjµ"j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hXg**Parameters** ``struct drm_client_buffer *buffer`` DRM client buffer ``struct drm_rect *rect`` Damage rectangle (if NULL flushes all) **Description** This calls :c:type:`drm_framebuffer_funcs->dirty ` (if present) to flush buffer changes for drivers that need it. **Return** Zero on success or negative error code on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hj¿"h]”hŒ Parameters”…”�”}”(hjÁ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj½"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M·hj¹"ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ7``struct drm_client_buffer *buffer`` DRM client buffer ”h]”(jæ)�”}”(hŒ$``struct drm_client_buffer *buffer``”h]”jì)�”}”(hjÞ"h]”hŒ struct drm_client_buffer *buffer”…”�”}”(hjà"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjÜ"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M´hjØ"ubj)�”}”(hhh]”hÌ)�”}”(hŒDRM client buffer”h]”hŒDRM client buffer”…”�”}”(hj÷"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jó"h´M´hjô"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjØ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jó"h´M´hjÕ"ubjà)�”}”(hŒA``struct drm_rect *rect`` Damage rectangle (if NULL flushes all) ”h]”(jæ)�”}”(hŒ``struct drm_rect *rect``”h]”jì)�”}”(hj#h]”hŒstruct drm_rect *rect”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mµhj#ubj)�”}”(hhh]”hÌ)�”}”(hŒ&Damage rectangle (if NULL flushes all)”h]”hŒ&Damage rectangle (if NULL flushes all)”…”�”}”(hj0#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j,#h´Mµhj-#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j,#h´MµhjÕ"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj¹"ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjR#h]”hŒ Description”…”�”}”(hjT#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjP#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M·hj¹"ubhÌ)�”}”(hŒˆThis calls :c:type:`drm_framebuffer_funcs->dirty ` (if present) to flush buffer changes for drivers that need it.”h]”(hŒ This calls ”…”�”}”(hjh#h²hh³Nh´Nubh)�”}”(hŒ>:c:type:`drm_framebuffer_funcs->dirty `”h]”jì)�”}”(hjr#h]”hŒdrm_framebuffer_funcs->dirty”…”�”}”(hjt#h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjp#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œdrm_framebuffer_funcs”uh1hh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M¶hjh#ubhŒ? (if present) to flush buffer changes for drivers that need it.”…”�”}”(hjh#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j�#h´M¶hj¹"ubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hjœ#h]”hŒReturn”…”�”}”(hjž#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjš#ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´M¹hj¹"ubhÌ)�”}”(hŒ2Zero on success or negative error code on failure.”h]”hŒ2Zero on success or negative error code on failure.”…”�”}”(hj²#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œ[/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:11: ./drivers/gpu/drm/drm_client.c”h´Mºhj¹"ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ%drm_client_modeset_probe (C function)”Œc.drm_client_modeset_probe”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒeint drm_client_modeset_probe (struct drm_client_dev *client, unsigned int width, unsigned int height)”h]”j)�”}”(hŒdint drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int height)”h]”(j³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjá#h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÝ#h²hh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M&ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjð#h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÝ#h²hh³jï#h´M&ubj1)�”}”(hŒdrm_client_modeset_probe”h]”j7)�”}”(hŒdrm_client_modeset_probe”h]”hŒdrm_client_modeset_probe”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjþ#ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hjÝ#h²hh³jï#h´M&ubjë )�”}”(hŒH(struct drm_client_dev *client, unsigned int width, unsigned int height)”h]”(jñ )�”}”(hŒstruct drm_client_dev *client”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hj$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj+$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj$ubh)�”}”(hhh]”j7)�”}”(hŒdrm_client_dev”h]”hŒdrm_client_dev”…”�”}”(hj<$h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj9$ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”j>$Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* j$sbŒc.drm_client_modeset_probe”†”asbuh1hhj$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj\$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj$ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hjj$h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hj$ubj7)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjw$h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj$ubjñ )�”}”(hŒunsigned int width”h]”(j³ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hj�$h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjŒ$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjž$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjŒ$ubj³ )�”}”(hŒint”h]”hŒint”…”�”}”(hj¬$h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjŒ$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjº$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjŒ$ubj7)�”}”(hŒwidth”h]”hŒwidth”…”�”}”(hjÈ$h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjŒ$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj$ubjñ )�”}”(hŒunsigned int height”h]”(j³ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjá$h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÝ$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjï$h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÝ$ubj³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjý$h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjÝ$ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj %h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÝ$ubj7)�”}”(hŒheight”h]”hŒheight”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÝ$ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hj$ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hjÝ#h²hh³jï#h´M&ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhjÙ#h²hh³jï#h´M&ubah}”(h]”jÔ#ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³jï#h´M&hjÖ#h²hubje)�”}”(hhh]”hÌ)�”}”(hŒProbe for displays”h]”hŒProbe for displays”…”�”}”(hjC%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M&hj@%h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhjÖ#h²hh³jï#h´M&ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡j[%jˆj[%j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX†**Parameters** ``struct drm_client_dev *client`` DRM client ``unsigned int width`` Maximum display mode width (optional) ``unsigned int height`` Maximum display mode height (optional) **Description** This function sets up display pipelines for enabled connectors and stores the config in the client's modeset array. **Return** Zero on success or negative error code on failure.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hje%h]”hŒ Parameters”…”�”}”(hjg%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjc%ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M*hj_%ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ-``struct drm_client_dev *client`` DRM client ”h]”(jæ)�”}”(hŒ!``struct drm_client_dev *client``”h]”jì)�”}”(hj„%h]”hŒstruct drm_client_dev *client”…”�”}”(hj†%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj‚%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M'hj~%ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM client”h]”hŒ DRM client”…”�”}”(hj�%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j™%h´M'hjš%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj~%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j™%h´M'hj{%ubjà)�”}”(hŒ=``unsigned int width`` Maximum display mode width (optional) ”h]”(jæ)�”}”(hŒ``unsigned int width``”h]”jì)�”}”(hj½%h]”hŒunsigned int width”…”�”}”(hj¿%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj»%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M(hj·%ubj)�”}”(hhh]”hÌ)�”}”(hŒ%Maximum display mode width (optional)”h]”hŒ%Maximum display mode width (optional)”…”�”}”(hjÖ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jÒ%h´M(hjÓ%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj·%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jÒ%h´M(hj{%ubjà)�”}”(hŒ?``unsigned int height`` Maximum display mode height (optional) ”h]”(jæ)�”}”(hŒ``unsigned int height``”h]”jì)�”}”(hjö%h]”hŒunsigned int height”…”�”}”(hjø%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjô%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M)hjð%ubj)�”}”(hhh]”hÌ)�”}”(hŒ&Maximum display mode height (optional)”h]”hŒ&Maximum display mode height (optional)”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j &h´M)hj &ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjð%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j &h´M)hj{%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj_%ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj1&h]”hŒ Description”…”�”}”(hj3&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj/&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M+hj_%ubhÌ)�”}”(hŒsThis function sets up display pipelines for enabled connectors and stores the config in the client's modeset array.”h]”hŒuThis function sets up display pipelines for enabled connectors and stores the config in the client’s modeset array.”…”�”}”(hjG&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M*hj_%ubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hjX&h]”hŒReturn”…”�”}”(hjZ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjV&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M-hj_%ubhÌ)�”}”(hŒ2Zero on success or negative error code on failure.”h]”hŒ2Zero on success or negative error code on failure.”…”�”}”(hjn&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M.hj_%ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ drm_client_rotation (C function)”Œc.drm_client_rotation”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒObool drm_client_rotation (struct drm_mode_set *modeset, unsigned int *rotation)”h]”j)�”}”(hŒNbool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation)”h]”(j³ )�”}”(hŒbool”h]”hŒbool”…”�”}”(hj�&h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hj™&h²hh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M´ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj¬&h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj™&h²hh³j«&h´M´ubj1)�”}”(hŒdrm_client_rotation”h]”j7)�”}”(hŒdrm_client_rotation”h]”hŒdrm_client_rotation”…”�”}”(hj¾&h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjº&ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj™&h²hh³j«&h´M´ubjë )�”}”(hŒ6(struct drm_mode_set *modeset, unsigned int *rotation)”h]”(jñ )�”}”(hŒstruct drm_mode_set *modeset”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjÚ&h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjÖ&ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjç&h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÖ&ubh)�”}”(hhh]”j7)�”}”(hŒ drm_mode_set”h]”hŒ drm_mode_set”…”�”}”(hjø&h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjõ&ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jú&Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* jÀ&sbŒc.drm_client_rotation”†”asbuh1hhjÖ&ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjÖ&ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj&'h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjÖ&ub•¯»j7)�”}”(hŒmodeset”h]”hŒmodeset”…”�”}”(hj3'h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjÖ&ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjÒ&ubjñ )�”}”(hŒunsigned int *rotation”h]”(j³ )�”}”(hŒunsigned”h]”hŒunsigned”…”�”}”(hjL'h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjH'ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjZ'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjH'ubj³ )�”}”(hŒint”h]”hŒint”…”�”}”(hjh'h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hjH'ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjv'h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjH'ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj„'h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjH'ubj7)�”}”(hŒrotation”h]”hŒrotation”…”�”}”(hj‘'h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjH'ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjÒ&ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj™&h²hh³j«&h´M´ubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj•&h²hh³j«&h´M´ubah}”(h]”j�&ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j«&h´M´hj’&h²hubje)�”}”(hhh]”hÌ)�”}”(hŒ Check the initial rotation value”h]”hŒ Check the initial rotation value”…”�”}”(hj»'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M´hj¸'h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj’&h²hh³j«&h´M´ubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jÓ'jˆjÓ'j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX|**Parameters** ``struct drm_mode_set *modeset`` DRM modeset ``unsigned int *rotation`` Returned rotation value **Description** This function checks if the primary plane in **modeset** can hw rotate to match the rotation needed on its connector. **Note** Currently only 0 and 180 degrees are supported. **Return** True if the plane can do the rotation, false otherwise.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjÝ'h]”hŒ Parameters”…”�”}”(hjß'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÛ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M¸hj×'ubjÛ)�”}”(hhh]”(jà)�”}”(hŒ-``struct drm_mode_set *modeset`` DRM modeset ”h]”(jæ)�”}”(hŒ ``struct drm_mode_set *modeset``”h]”jì)�”}”(hjü'h]”hŒstruct drm_mode_set *modeset”…”�”}”(hjþ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjú'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´Mµhjö'ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM modeset”h]”hŒ DRM modeset”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j(h´Mµhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjö'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j(h´Mµhjó'ubjà)�”}”(hŒ3``unsigned int *rotation`` Returned rotation value ”h]”(jæ)�”}”(hŒ``unsigned int *rotation``”h]”jì)�”}”(hj5(h]”hŒunsigned int *rotation”…”�”}”(hj7(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj3(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M¶hj/(ubj)�”}”(hhh]”hÌ)�”}”(hŒReturned rotation value”h]”hŒReturned rotation value”…”�”}”(hjN(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jJ(h´M¶hjK(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj/(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³jJ(h´M¶hjó'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÚhj×'ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjp(h]”hŒ Description”…”�”}”(hjr(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjn(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M¸hj×'ubhÌ)�”}”(hŒuThis function checks if the primary plane in **modeset** can hw rotate to match the rotation needed on its connector.”h]”(hŒ-This function checks if the primary plane in ”…”�”}”(hj†(h²hh³Nh´Nubj—)�”}”(hŒ **modeset**”h]”hŒmodeset”…”�”}”(hjŽ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj†(ubhŒ= can hw rotate to match the rotation needed on its connector.”…”�”}”(hj†(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M·hj×'ubhÌ)�”}”(hŒ**Note**”h]”j—)�”}”(hj©(h]”hŒNote”…”�”}”(hj«(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj§(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´Mºhj×'ubhÌ)�”}”(hŒ/Currently only 0 and 180 degrees are supported.”h]”hŒ/Currently only 0 and 180 degrees are supported.”…”�”}”(hj¿(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M»hj×'ubhÌ)�”}”(hŒ **Return**”h]”j—)�”}”(hjÐ(h]”hŒReturn”…”�”}”(hjÒ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÎ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M½hj×'ubhÌ)�”}”(hŒ7True if the plane can do the rotation, false otherwise.”h]”hŒ7True if the plane can do the rotation, false otherwise.”…”�”}”(hjæ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œc/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:14: ./drivers/gpu/drm/drm_client_modeset.c”h´M½hj×'ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ%drm_client_modeset_check (C function)”Œc.drm_client_modeset_check”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ` callback. The callback function is responsibe for releaseing all resources including the client itself. The helper drm_dev_unregister() calls this function. Drivers that use it don't need to call this function themselves.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjI3h]”hŒ Parameters”…”�”}”(hjK3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjG3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KhjC3ubjÛ)�”}”(hhh]”jà)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jæ)�”}”(hŒ``struct drm_device *dev``”h]”jì)�”}”(hjh3h]”hŒstruct drm_device *dev”…”�”}”(hjj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhjf3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´Khjb3ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hj�3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j}3h´Khj~3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjb3ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j}3h´Khj_3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjC3ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hj£3h]”hŒ Description”…”�”}”(hj¥3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj¡3ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KhjC3ubhÌ)�”}”(hŒÜThis function releases all clients by calling each client's :c:type:`drm_client_funcs.unregister ` callback. The callback function is responsibe for releaseing all resources including the client itself.”h]”(hŒ>This function releases all clients by calling each client’s ”…”�”}”(hj¹3h²hh³Nh´Nubh)�”}”(hŒ8:c:type:`drm_client_funcs.unregister `”h]”jì)�”}”(hjÃ3h]”hŒdrm_client_funcs.unregister”…”�”}”(hjÅ3h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjÁ3ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œdrm_client_funcs”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´Khj¹3ubhŒh callback. The callback function is responsibe for releaseing all resources including the client itself.”…”�”}”(hj¹3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³jà3h´KhjC3ubhÌ)�”}”(hŒuThe helper drm_dev_unregister() calls this function. Drivers that use it don't need to call this function themselves.”h]”hŒwThe helper drm_dev_unregister() calls this function. Drivers that use it don’t need to call this function themselves.”…”�”}”(hjë3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KhjC3ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubhì)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(høŒ#drm_client_dev_hotplug (C function)”Œc.drm_client_dev_hotplug”hNt”auh1hëhh·h²hh³Nh´Nubhý)�”}”(hhh]”(j)�”}”(hŒ4void drm_client_dev_hotplug (struct drm_device *dev)”h]”j)�”}”(hŒ3void drm_client_dev_hotplug(struct drm_device *dev)”h]”(j³ )�”}”(hŒvoid”h]”hŒvoid”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”j¿ ah"]”h$]”h&]”uh1j² hj4h²hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KNubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj)4h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhj4h²hh³j(4h´KNubj1)�”}”(hŒdrm_client_dev_hotplug”h]”j7)�”}”(hŒdrm_client_dev_hotplug”h]”hŒdrm_client_dev_hotplug”…”�”}”(hj;4h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hj74ubah}”(h]”h ]”(jIjJeh"]”h$]”h&]”jNjOuh1j0hj4h²hh³j(4h´KNubjë )�”}”(hŒ(struct drm_device *dev)”h]”jñ )�”}”(hŒstruct drm_device *dev”h]”(j)�”}”(hjh]”hŒstruct”…”�”}”(hjW4h²hh³Nh´Nubah}”(h]”h ]”jah"]”h$]”h&]”uh1j hjS4ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hjd4h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjS4ubh)�”}”(hhh]”j7)�”}”(hŒ drm_device”h]”hŒ drm_device”…”�”}”(hju4h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjr4ubah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”j�Œreftype”j* Œ reftarget”jw4Œmodname”NŒ classname”Nj¯j²)�”}”jµ]”j2 )�”}”j* j=4sbŒc.drm_client_dev_hotplug”†”asbuh1hhjS4ubj )�”}”(hŒ ”h]”hŒ ”…”�”}”(hj•4h²hh³Nh´Nubah}”(h]”h ]”j,ah"]”h$]”h&]”uh1jhjS4ubjF )�”}”(hjI h]”hŒ*”…”�”}”(hj£4h²hh³Nh´Nubah}”(h]”h ]”jR ah"]”h$]”h&]”uh1jE hjS4ubj7)�”}”(hŒdev”h]”hŒdev”…”�”}”(hj°4h²hh³Nh´Nubah}”(h]”h ]”jBah"]”h$]”h&]”uh1j6hjS4ubeh}”(h]”h ]”h"]”h$]”h&]”Œnoemph”ˆjNjOuh1jð hjO4ubah}”(h]”h ]”h"]”h$]”h&]”jNjOuh1jê hj4h²hh³j(4h´KNubeh}”(h]”h ]”h"]”h$]”h&]”jNjOjVˆuh1jjWjXhj4h²hh³j(4h´KNubah}”(h]”j 4ah ]”(j\j]eh"]”h$]”h&]”jaˆjb)jchuh1jh³j(4h´KNhj4h²hubje)�”}”(hhh]”hÌ)�”}”(hŒSend hotplug event to clients”h]”hŒSend hotplug event to clients”…”�”}”(hjÚ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KNhj×4h²hubah}”(h]”h ]”h"]”h$]”h&]”uh1jdhj4h²hh³j(4h´KNubeh}”(h]”h ]”(j�Œfunction”eh"]”h$]”h&]”j†j�j‡jò4jˆjò4j‰‰jЉj‹‰uh1hüh²hhh·h³Nh´Nubj�)�”}”(hX2**Parameters** ``struct drm_device *dev`` DRM device **Description** This function calls the :c:type:`drm_client_funcs.hotplug ` callback on the attached clients. drm_kms_helper_hotplug_event() calls this function, so drivers that use it don't need to call this function themselves.”h]”(hÌ)�”}”(hŒ**Parameters**”h]”j—)�”}”(hjü4h]”hŒ Parameters”…”�”}”(hjþ4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjú4ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KRhjö4ubjÛ)�”}”(hhh]”jà)�”}”(hŒ&``struct drm_device *dev`` DRM device ”h]”(jæ)�”}”(hŒ``struct drm_device *dev``”h]”jì)�”}”(hj5h]”hŒstruct drm_device *dev”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jëhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jåh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KOhj5ubj)�”}”(hhh]”hÌ)�”}”(hŒ DRM device”h]”hŒ DRM device”…”�”}”(hj45h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j05h´KOhj15ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jßh³j05h´KOhj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÚhjö4ubhÌ)�”}”(hŒ**Description**”h]”j—)�”}”(hjV5h]”hŒ Description”…”�”}”(hjX5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjT5ubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KQhjö4ubhÌ)�”}”(hŒoThis function calls the :c:type:`drm_client_funcs.hotplug ` callback on the attached clients.”h]”(hŒThis function calls the ”…”�”}”(hjl5h²hh³Nh´Nubh)�”}”(hŒ5:c:type:`drm_client_funcs.hotplug `”h]”jì)�”}”(hjv5h]”hŒdrm_client_funcs.hotplug”…”�”}”(hjx5h²hh³Nh´Nubah}”(h]”h ]”(j�j�Œc-type”eh"]”h$]”h&]”uh1jëhjt5ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j©Œ refdomain”j�Œreftype”Œtype”Œ refexplicit”ˆŒrefwarn”‰j¯j³j·Œdrm_client_funcs”uh1hh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KPhjl5ubhŒ" callback on the attached clients.”…”�”}”(hjl5h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hËh³j“5h´KPhjö4ubhÌ)�”}”(hŒwdrm_kms_helper_hotplug_event() calls this function, so drivers that use it don't need to call this function themselves.”h]”hŒydrm_kms_helper_hotplug_event() calls this function, so drivers that use it don’t need to call this function themselves.”…”�”}”(hjž5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hËh³Œa/var/lib/git/docbuild/linux/Documentation/gpu/drm-client:17: ./drivers/gpu/drm/drm_client_event.c”h´KRhjö4ubeh}”(h]”h ]”Œ kernelindent”ah"]”h$]”h&]”uh1jŒhh·h²hh³Nh´Nubeh}”(h]”Œkernel-clients”ah ]”h"]”Œkernel clients”ah$]”h&]”uh1hµhhh²hh³hÊh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÊuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hºNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jß5Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÊŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”j¹5j¶5sŒ nametypes”}”j¹5‰sh}”(j¶5h·hújjµjºjjjÜ já j j j¥ jª j·j¼j|j�jyj~jÔjÙjCjHjÄjÉj3j8j´j¹j`!je!jÔ#jÙ#j�&j•&j)j )j°*jµ*jX,j],j.j.j(0j-0jZ2j_2j 4j4uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.