D0
  1   #ˆl–Ým_Jµ2ÛB‚ € ƒp¸ÓjbÑ¿Èƒm?_�uÐb&=LyZof¯ÁË     #‹     �WÛrâF}×WtÈ»�½—ÊV¹6[ÁcmÙ@�œ�+ÊÃ 0Y!©fFÆü}N�ö:•[u÷œ>}Å�:t5¥É4¤»éUpý@áM° ëàvôQ`i'­e&µ°2¡åž62-ÞoEFïü�Ÿü_}Ïoèn1M¨ó®C�¯eº§÷çïÏñ<žÜCÙZùdû6ÏSã>œ:ÿˆ�÷Fjæ[ØJLÇó74Ü�¼­Á}õ)Ö—Ò([§Êlh+�kI±°"Í×Nañ0™ÎÁÂó/ÉéyE« êMga0�DgÑjþ7¹“`2»Ù-wè”¯F‹á<p’žIB"Û“HeUž‰”ib­
~ƒãZzþlæ.Ù#6«EfRáäj|>Q¸‘¤²¢´´R)Yœ¤ÂX¯ò-9˜M�L�rM‚ßB¹-Rvß©¾©B�‚Úƒærï=ÕÜ¾Å]÷Ù¾I¼(F¨%	cÔ:Ã¡8Ai7Â‘§«¾ÚÜÁ�*ñ�£wˆŒ°¹%z]n!hX*Í³5åŽ”êŠíQnøf“k{üŽ°ÃØbA� a"Íc‡âagÞ16^ÅÜ‡�r’¥�H´ºŒúWˆ\�ÜcÔO”–1_ŠÃß\ˆ¯‚ùhNçUˆF:9ÜÊX‡°‰‰!#…Ž7ÎÝ`õ,ZQ¿GÆ²s:©?áü'µKÓÒ¾æ“C™·çN8ê³ôs“‘;­íJˆÑšBÆj¥¸Š ä|ÒÒ”©­xg‹ZaéÌÚ€ZQ–^þMzL¼µ•—/dö™OmWfmW
�R[¤XÔw¼°§Ü©Œ¾ŠGA~#[[mlF}ƒ<ÍÖV,AÉXšÈ?Cceq††ÂÿÉ¯“­h$Ò
•š6ø¨ŸŠl}$}8·Ó1w›Š{#-uo!R¢Átq³L9à®67—Ô¾m1ÎÓ\³riÐ“ø…; %M\–$,P.K×+Ò�Ø›éW�¾ÝŒªvõÿÌ!x¬á{üõ·§¥¤nuI·GÝL>JÍ¢´y×u•îÆnÓ®Êþ¾•Š‹ðávÔäc•,{‚Z'HºLëvÄEôœ†£]ÙÎ”,Ç�‰EÁ§^’#+-±‹CªŽ]|ë<}“È•@v¿mŒ�ÚÆC¯XèqÒƒ*™%¨›x#ô	å€#ÏŠ¼©·ºïøÊ˜Ut]Û
³j_¯2î•U‚ò“<V›ã§}»}hŽÌ²(P¹†º?_¸3±•©Ê�mü·3k_‰vjˆ­Hý(_5ô#«:‹ôê	ãB��rûŠÅkÕ^7±v¿Â`yQé§}ûY�ÿØÆë5~jl×†¶S‰Ý3xrw9š7%]ûVðÖà$Ÿ‡h§EÑÊË%Zû÷j¼–ÇiÏ�qnDæqSxa¹‡$ä6Ìu‡Yú,¦¦�Ù`<¶I8lWÄŽ9Õ(_¿T^î�cÄ3nÚVx°ž�Ì¢C_G¨·8x< o÷ÆMÛ</wŽe°}ìá00º^$ŸT×mE¸mê­±Ô'à¥¾Ï�¬_ƒûðf:÷¾ÕCØ/u‰ú½
iâ;™Î|4›ÎÃ`2¦Ëûñ¢ãÍeÁþ.Ëµ94h<ófG€°Ó|ÞX[˜‹³3ƒ¤Ì2±ñ×Yéçz}†üü+ƒ9«×¦/<q­Üb^ðýSQ¿þú{­ö¥B2œÎæÁø&ô†y±×j½±½‰sl´çï¢>ïµt­¥¤E¾²;žÎ×yÉküîQ�Å¾w«b™¡q�g·�~¹ ÞŽñ|dê·i^àtãÄ{Zé{‘úÜÉ¿xþRc#à‰á›M}óíóÒ-îŽ¡"ýZ"¶õÁàóR¡Ýœ�LéÛ`>LÂ‡Þat½y.õ–£ä~ ¤bWg1Ñàv1í¸ÍdU¦X˜óØ-ŠU¼ùf3Ç Ÿ”ÛF1Þ°ä>qzðYŠ[,V0\Ë:|îp£�ð­µØV«OÕk°««Oš²EË~cÿDOé9ôqõãÂóƒÙÁdm‹·)ì©%ÆüšËÂÇÜ¡kÏ¡[¤ÒÊ6ï_“yÛË*       %�ÅÁË      %File not found.
  +   'ˆl–Ü4ý( ©³( 	Å€fàB¦-ÿÊ„i·o_†I|¥�+ÃÍ ?÷     '/*
 * Copyright Â© 2006 Keith Packard
 * Copyright Â© 2007-2008 Dave Airlie
 * Copyright Â© 2007-2008 Intel Corporation
 *   Jesse Barnes <jesse.barnes@intel.com>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
#ifndef __DRM_CRTC_H__
#define __DRM_CRTC_H__

#include <linux/spinlock.h>
#include <linux/types.h>
#include <drm/drm_modeset_lock.h>
#include <drm/drm_mode_object.h>
#include <drm/drm_modes.h>
#include <drm/drm_device.h>
#include <drm/drm_plane.h>
#include <drm/drm_debugfs_crc.h>
#include <drm/drm_mode_config.h>

struct drm_connector;
struct drm_device;
struct drm_framebuffer;
struct drm_mode_set;
struct drm_file;
struct drm_printer;
struct drm_self_refresh_data;
struct device_node;
struct edid;

static inline int64_t U642I64(uint64_t val)
{
	return (int64_t)*((int64_t *)&val);
}
static inline uint64_t I642U64(int64_t val)
{
	return (uint64_t)*((uint64_t *)&val);
}

struct drm_crtc;
struct drm_pending_vblank_event;
struct drm_plane;
struct drm_bridge;
struct drm_atomic_state;

struct drm_crtc_helper_funcs;
struct drm_plane_helper_funcs;

/**
 * struct drm_crtc_state - mutable CRTC state
 *
 * Note that the distinction between @enable and @active is rather subtle:
 * Flipping @active while @enable is set without changing anything else may
 * never return in a failure from the &drm_mode_config_funcs.atomic_check
 *