* Re: DFP support for kernel radeonfb.c added
@ 2001-11-15 18:23 ghannon
2001-11-15 18:44 ` Kevin Hendricks
0 siblings, 1 reply; 20+ messages in thread
From: ghannon @ 2001-11-15 18:23 UTC (permalink / raw)
To: linuxppc-dev
How do I get OF to produce the EDID file?
I don't have a Radeon directory under /proc/device-tree.
I'm following the thread and trying to solve the same issue with Radeon -
Mac Edition on YDL2.1.
I've replaced the NVidia card with Radeon and am using the DVIator cable,
still no dice.
I'm also trying to get info on patching XFree86 4.1.0 which came with the
distribution, with Ani Joshi's patch,
but I'll do that on the Yellow Dog list.
Thanks,
G. Hannon
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-15 18:23 DFP support for kernel radeonfb.c added ghannon
@ 2001-11-15 18:44 ` Kevin Hendricks
0 siblings, 0 replies; 20+ messages in thread
From: Kevin Hendricks @ 2001-11-15 18:44 UTC (permalink / raw)
To: ghannon; +Cc: linuxppc-dev
Hi,
We have the same setup. You must have the card installed and the
monitor plugged when your reboot into linux otherwise OF will not be
able to query the card and monitor and create the file.
Then go to /proc/device-tree/pci/ and start looking for an ATY,RADEONp
directory.
Mine was behind a pci bridge so my path looks like the following:
/proc/device-tree/pci/pci-bridge/ATY,RADEONp@4/
In this directory is a file called DFP,EDID and one called LCD,EDID
If either of those exist for you (or something similar with a EDID in
the name) you should be good to go.
If that file exists and is called any of the following:
LCD,EDID or DFP,EDID, or EDID1, or EDID then my version of the driver
should work for you with the added kernel parameters:
video=radeon:of_edid,dfp
If it is called something else, please let me know so that I can add it
to the list.
Hope this helps.
Kevin
ps. I am starting work to fix the XF86 CVS radeon_driver.c code to work
as well.
I'll let you know when I have something working.
> How do I get OF to produce the EDID file?
> I don't have a Radeon directory under /proc/device-tree.
>
> I'm also trying to get info on patching XFree86 4.1.0 which came with
> the
> distribution, with Ani Joshi's patch,
> but I'll do that on the Yellow Dog list.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* DFP support for kernel radeonfb.c added
@ 2001-11-14 17:52 Kevin B. Hendricks
2001-11-14 18:20 ` Daniel Berlin
0 siblings, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-14 17:52 UTC (permalink / raw)
To: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 2055 bytes --]
Hi,
Okay, with lots of help from Ani and Ben and starting with Ani's most
recent radeon code which worked for LCDs and with a lot of testing on my
Apple Flat Panel 17 connected to a Radeon Mac Edition card on the dvi port
with a dviAtor adapter, I now have the DFP support for radeon frame buffer
working well including parsing of the EDID block from OF.
To control all of this, I have added two additional options to the kernel
parameters passed to radeonfb.c
of_edid - which means look in the OF device tree in /proc
and grab the detailed timings from the EDID block
dfp - overrides the monitor detection and set MT_DFP
lcd - overrides the monitor detection and set MT_LCD
So my kernel line in yaboot.conf looks like the following:
append="video=radeon:of_edid,dfp"
The panel x and y resolution are taken from the EDID block and a
default_var structure is built up from the detailed timings so no change
to the deault block or passing of panel_yres is needed.
I have also fixed the setting of fp_XXX registers including stretch to
properly intialize their values so that if OF does not set them in some
correct "initial state" things will still work. (I need this to get my
panel working).
All of this depends on their being an EDID block in /proc under the Radeon
device tree (it exists on my machine). You can simply look in /proc in
the device_tree to see if one exists on your machine (need to have the
monitor connected for it to be created).
Since there are a lot of changes and since other people have submitted
radeon patches recently, I have attached my complete files (radeonfb.c and
radeon.h) in the form of a tar archive to this e-mail so that others may
more easily understand the changes.
I hope this helps others with flat panels but be warned I have only tested
them on my own machine. So don't come back to me if your FP goes up in
smoke. Use at your own RISK!
BTW: Using a dviAtor, and an Apple 17 inch flat panel is a real blast and
now all of my eye strain is gone!
Have fun!
Kevin
[-- Attachment #2: dfp_radeon.tar.gz --]
[-- Type: application/x-gzip, Size: 24026 bytes --]
\x1f\b\0\x0fªò;\0\x03Ü<iwÚȲó\x15ÿ\x1e¿s3àà\x04°c;fû0`7,\x1e ÎvsthÆBÒHÂËd|\x7fû«êEjm,̹ç=f¥ªêªîêêêª^ðô)uìÙä
ñÃßö©T+££Ã\x1f*ð9NüÔj\x15x>>8>|U;¬\x1d¾\x02úÚAåø\aRùûª\x14}~ {üp;S{O·\x0eÿ\x7fôóroì\x15¦yG=ÿå ÖðÒ\vm\x02q3O_ÐÉr6£\x1eátdæx¤1î!#$ÆÜt}\x1a\x10VL\x1cÝúP\x12\v7\x1d÷Ñ3oæ\x01©A_\x17\x1a¶IþÇñç&ùYÿ\rÿþ÷Ò6\x1f&ÎÃ\vÃY¼áeX±¹nßЮssoXt¿r²_9(¶\x19ºE°¶&®¼¨¼¨F4¯÷«ÂÂñ(,oÈÌ| ~¸Ëe\x1aÄ£\x16Õ}ʼ\x12EªûÚ~õ5\x14Æ ÍqDs¼_yU@ÔøçXiß\x10Ó÷HKí^[Ó¦DÔÌüC\x0f be,\(èö,L^[ÔÅ$\x04÷T¿
²\ÀëHÀkQ\x10Ú¼n\x13\x7féº\x17Iß4nÉ/KÏÓ;Îqbé6gáê¶65}×Ò\x1fË\x04\x05\x19\vÝe\rx@þÕ\x17\x7fµz\x11ü_U*þ\x04\x1fBQ\b¡\x0f.õÌ\x05µ\x03Ýââf\x1e $jEÈ»*:jäR\x03û#\x0e»õIà0»hÑ»!\b¨¾`¶\x12Ì©é9ØÅ½\x0e}3ul¦$ÿ\x05çòrgg翦tj\x1c6ZíA_»n\x0fGA¿°Ëí"i^[Ö\x12ø3h\x7fùðÒ\0\v5o^Ìߤ0 ê¥E³0·Ôda¨çÙN\x16Â\x0f<Ðv¦E\x164\b\x1e3ÙXú$\v>¥Ð}YY&94Úw²Ûæy^[¨Õ,¤é`×ebÀl³à®a"Xëþ\x02øpÚ\x19áÝ5-jëÜSÏ54 v=«\bü¦9SYq73\x18¬¶$^[³oÌ&'ñª%°Õ£èÚáJôA-ÞÀ]îö^Ìw\x15slµÏß]\x16ª;¬Íì%²Ôñ°Ñl\x17
.\x18Hp\v´|B³b¥DB\x12®\x1dj/\x17ËÓ÷$_w
Âô\x7fm£ç¶ò|¡<_*Ï\x1fçOÊsWy~\x1f=wÕg¥l÷ÓÎS=Q·
c\a.ÝÚõÆZ\x7fÐÇúÀSs8.\x17
/÷\b<àøEX·Ùâ0x°ÖÅ\x15µ®;\x12Ö\x1c_s\x18¸|×ñÍñµDÆ×\f7Ú¿f³\f\x10Å*\x06\x13u\0~\x1cFäÒ\0§dÚÞ\x06ÕÌ)Sà@Xôó\x17¢1\x020ð©\x1eèä\fuü\5;à]úÁPë´4ðVe\x06jµ¯;Í6¢n`Fÿ#@ãÏ\x15ö\x7fHøTÞq{SÆí-\x19_lÊøbKÆ2¾ÜñÇM\x19\x7fÜñ§M\x19\x7fÚqwSÆÝ-\x19¿ßñûí\x18w7eÜÝñ¦×ݲóºv^Wt\x1e@ÐEô\x06wݶd8nwÛEð\aå\fïPB®\rüµô(à\x1eÕ#\x13oêðtP#wºUßyBÆ\x1ewvÀ3A,\x03A$ø.ðò 4\x06Ä\x1e\x13:ÃèE{\x10\x12\a\x18(ú\x0e\x16z°ØN\0ñ\x0eÄ\x01õ ¦äÞ\fæ\x10z=\x06s d¡&$h(\x01\p^ë¡Öì\x0eA ä©\÷ »nûb¬\r;oÇ\x1c©âÆ+í|0\x1e\x0fz*®¢\rPW³?îFðÑ»ó«N3\x01¼î\½Õþx8P \x1a§Óª\x11ì²Ý×:ýq¢|³qUÑÆP;\x15>]NÍA¯\a\x1d:l_´QçS^[Ú[ôÍ?¨3+*z(½LÃ>W¾J\x19]IÄgy\x02}ã\x18·lÕ¬®â8½|cpÝ0 òôÀñ4\b½Ç\x18öú²å YæÌfÐûqìÕ`4^þÐìþ\x12ôâ\x13\x02\x13³vÕíj\x13l\x1fo\a4 ^[\x11(k¦Í<ú{\x0ejjbxä)X\x18\0\f\vùK²`Ò\x1f2xöòÅõVëåëåû/îÃJq\x1fòÅ}{PB\x0f \x13,\x03ªi¤XtuãNK%:?ï\x0e¿ð\b
&¥öÌÁ1\vC¸\b\0nuõÕ´ÅëaÝGQUåá\x14ÞÇx/,A½À3¦á£+î=ñdX!²v/\x1e-Çq5Èô¨m<Já\bKf1!óy G\x7fMî\x031|CÅ\x19^`hs-p dÙi=\x06÷\x1fmC\x03vvoNUÔ]N»ü"®\x19\x18s\x15pC!¶\x03K
Ñ@
MuC¼òwHoo|sÍ\a¹
Ù/\x1ef÷ð-\0\x13×År\x18Ͷ\x1añfO§ºÆ\x13Òz\x04\0]Á@\x17EÀNâE\x15@gk\au\x05\x10Z\0+t\x11eß±²3WËS´De(\x14P \x15\x01$»O\x10áx\x7f FZ\x06(«LEv\x1f!\x02$κúÉZ0\x186^\x05\v\x19\x11\x1f\f\x1axºíË^§¢ç0Ã@ÑiôK¿ôf:d\bZä_iÈ@)\x01\x10üÂÎÈ\x18\x02À¤
ÂC\x13ø1×=bë\vú¹zü¥.Þq\x1cãlô¹Zû"q±0\x1dm¢ûTsçÒ,¡&
(A\x18§Q**²#²ç·\x02\x17\vFD\x05s\bKÏ\x03Û§hö\x04F®2)l¾â\x03ñNÜxÚe2±\x14¤¦uò\x04\x7f,\b}èçÚ«#Ö6&
¯\x11
,\x15×@\aØ\0ä$}\x1e^[Ôe\x1cjeèW7§\x06c\x19\aª\x18§\x1c7×}tD5Ù\x1e/hA
Å\Ï@Ó;S\x01
&\x05#lJ\x03Ý´ p\vÌ\x05[ÔÃNÇ%«há\v\x1d ˰J²AÀ«Ä¹PiTO2\x1fÀH\0\v_\x02ý|c\x05I\0ͳÕ<©\x13
êN¥º\x13T*û»\x06D-só\x06D,®´Àà§qj\x1cA,Lß&4\x05g°4aVò¡Hè\x13\x13\x18<È\x01\x10$ãî2`s"4Üñ\x03tUe´>á²s\x14ëàØ\bë\x18Å=s6>åUbcýâ\x1cÂQímc¤5/ΫG%òçÙ¸Z)\x12`ãñ×Bâ°\x104%¨\x1eiÐ¥¸âô¹6-<I.£Úa\x0e£\x1agT;T\x19\x11ÏJm@&«Z¤z"8xqUXAf¬¤@ÿÝéæ^[8E¿ ¯\b5ÒVxHÖGs\x1dÀWôÄÿ?Áïî+R\0䩼â±Â\x1eÃ2\x1c²_åÿàñàõq\rPPí\x10^keR
÷×À¢\x16+vq®]C\x0eØÆ
*HBÚÃn£Ùnñ&³}\x0eÒ\x19
nxÏWeúÑéCæqRÔ§S¯T(xTNE\x0fU±ÿ&ôµ¥ç\f\x1f\x16\x1a¼^[¥Ê±
÷\x19ÐI\x11Ëdmq&S\x15im*2)ÑZ#Q-\x0eaR\6¡\x01,Ïå:ýVû\x030C"òT\x1eØ&]¥:!\x16¾TJuò¯\x02|D\x14\x0eƸQÆÜ¹\x10|\x15J.Û¹-\x11\f
À\a2ã¯\x05ñA¶KÛ7o`$0ç¥\x05\v\x17¯Óu/Õ\x05\x19Ã<T±«Gå\x19âO@`-\x14¸ª\0ÆW \x01÷Dîç0\x11b%®0hÜ_wØÏ\x7f¥Þa¿¯ª·\x1cØ\x1aø\a\v\x1a\0©
:Uë.3äÙcVSftÜ\ \bÊ·´YÀü\0\x01ÞÒ³I75a
% xRZØÐ^þ&ª°Ö«a§×\x18~Ôz0Ç!§*\x15ÂQ¢NêäÇ3"\x16¨KäÙ³\x02·M²t4¾Þ²ÿYt§\x12ª\x1e¥°7X¼·wÙ\x1ecS´~£×.²ü\x11}\x15ñà\vZ\x04sé¿ëvÙTz\x10)2*\fL\v\x06n^FbeD]ÛÙãû\x04¼\b\x06\x13!%DE1BxÏ¡l]\Å(á=²ÛlÅ(á=Oúø:.}|C9JP`?ÒÈ\x19ðèµÜõ <¿Âµ§GÂ\x13î\x13h¼6`\vt¼b`°\x0eÂÞ2EJÆ·y\x03JxYÌȤ\x18×ZZk4n6oÛÐüîhÜ\x18 \a7µî»Ñ[ÑÅm\x199iý;
Ä
É\x02\x06 Eó¬R'&ùíÃ\a^?ç¦\03yñG1Ü2¥irÏß>Jqu>eú
¦!M¨hfÎ\x1cí^7úa1'Áµ0úqe)ø9Ö\x04Ѱþç=\rëünTbå\x18¦7g\x11ÏBAô}}j5§è\x13·éXjC²HÉEçb@LÐ
^[<Êå\T\x03f\aØ$Æ\x19»=CQB%GÉ^ü9»\x0fstpù®£5ãÎu»T"gg¤ÂK\x142·¦®ª©\0=,:Y:Ó´vè\x7f3ÀB;a#²_Òí\x17Í\x0f;.\x1c£sj¹Ô[;@q
\x12<o(ä\x16~\0i`\x11×ñX&ÈzLºE\x0eüâÉi¤\0\x02£A;9¿º
}LõU\x12]}\x15Ã\x1f¥ðG*þ Ä\x1fÔ\x04^DÈ*¾\x1cbY\x06
#\rÖ\x1a([ÇâË×*\x01z;\x16Å\x01eâM&\vÍwf\x01gf·ÒJ`¶I°\vCäd6\x15J
\x030¶\x10D\b¨B \x04Q?Q'àä.\x06Ã&n× U#\x13z~̤ýIÛk¦@N³Ä"¸z¶ò\x017À-ö¨=mÉ@¥TÌe\x15"
y½í¤a£v\x1a6Ì]eðk×2ÊgÈm]a»óZ¹q#â\x123OdÿïbVc Éjn\f\x1a68\x06\x1dfB¯2ùÍs8Ϭ\x034}UÛ³¬54VE7é 79d¶P$«L_Ùþ;´Cæpá\x0e2]æê1å61\x03È X)aèNdÔ!hS2{ùá~ñ4\x05\x1féë \x11¨g\x17®\rJWsJ\x1flTú0§ôá&\x15¯å\x14>Ú¤ðQNáM
\x1fä\x14®Ö6)}.\x1dÎBëK+æTY±\r giOÑ:\x19ÙË\x05\x0fõ¦ÔVMI¦~xfè9NË6yIj\x10¶¼DÊú*\x01¸ó\x06êÿÎd°%¯±
K\aÇaf\x11é¥Ì<VJ)L2¬-ÅLäÓXqbÞ¼Éä$å<\x7f®¨XrOiLRòÂZ¶°Ð\x1f¤nª¼\x03à©\x16S\x13o{\x15cfKÖKHD¢¨bì´Z>e\r7=s\x14\x15Æu73Ñ-\x1eÏ
X5é9vÀ6>\x0e+_XÓøQ¬z<3ÆÃ\x12ãâÙÅ\"Ûa;ò
J³ô©6¸ÐÚNk%\x1d¤¬x°m%\r$À«h¢]\0\ùOQáj.F-ä$]Å®&¼1;(üÿI=:+ÈUízNààZ@<zf\x03U\x068\x05ÌÌ0í\x01\x10¼ªëº{ðÎÈ`GW}\x12^[a{"Ì\x13+ÄÅÜ\x05å=xÿ^[\x04ûÿ)ÁØbvÜZÌÞ÷ð\v¼õ]cSÑÛ6ú?%[9sþ¾e\x05LÇÌB6m<gµÇþC6è¾÷ð»Lb\v²Æbº²2!±å@®¯{7Q^[¶ê\x1f\x11]}KÙ¥\vN2Þ°¸²ª
»À¸SÈ˲ÇÍ
&Y0\x17ñ y¿A=ÇÅp,Þ@þ Õ o¶£ôÅ\x1eÛ8^ù\x16òj3¨ùNsôÎ\x03¸ßihãàZ[ÿxõ·ª}¢ò¢îw1^[ü8\0ýû5Ërɽ||Èa©ßQ~Xa5Ëuã8ã\x1cÄ\x1eòÎ*ì5\vÙ¥-Gjü\x10\x01;jù*°¤©£ìZ°Ý·ïP,ÍÅ¥²XPfWma6a6Ó`&\x17vV\x05c\v&É¢±IxÓââ8.4×Ä3\baùØÑ\r:/æªâ·\x02ö¨\x1d$ºµ>Z,íÕõ(%bÖpí\x13r$ÏYloÁ,_Çd3gõ@æò&¦ãCßä3huKSP×Zgî&
óoþÐ\aP\x1dz\x1dÞ\x03|vVº$p0@GpJÉ1\x1d+µÃq(´}³0\rÐfÐ7Ûvu\x0fÒ\b:5!÷egüh"à]A\ÄÉj2~O\x1dµp\?\Tçoìlw\x14¿Ê
þ\bT\x0eñ0Ðx\f¶\x18ÞOã}\x15/gø$\x03\x166\x1c\x14~B \0U"õ."£cqJÁ\0åÜ<ü^itî¿3Í`\x02 v%r\x17$@ï°Ô§
Ø(f0@C¶4¡±ú)¦\vr\vç.E\x10ù\0QOî/\x15gÉz\x19',\x1c|l^îJBq~íP\x10<K4EdùÂ\x05Åý\x0f{XÆ«"UÇ1«ÐeKpçÜ\ybí«K\x06\x1c\x11ÌM\x1fÓnå\x16ÛW\x14\x05ðDÕQé¤×ö:¢\x13¶á%ÙBçáÙ-\aÂQÁ¤LvË»¥:\x04Ç8f\x14ÄÍp^*k)Õ\x16HmcáFr\x1e\x1dNwËäUf±¸\x16Üü\x15!±;(_séðGXùçäU>GuG_e E¹FR"û¤*6HóÊÇZ¾çb\x17Á÷Ù\x19ù þ^Ê?g!?bO8\x0f½ \vÃ}\f+Y5\x14ò£Rºè\x13[[õÚ9b%\aºç¸$ö5åâNæªÚ\x1avÎ9kº\x0eô-,-\x03Ù\x1dHvr¹è[XÁ¼ª²«JU¡°¦p´ÀÆ\J.ÊÂ\x13\f\x15sáZ\x1dtV1,ÿ\x1cèË\x0f Jn/!;uùí,cp*/*|\x0f/nñÛV;Û+Ƽ$\b\x158tpÅ»S&Hyk«ñnüv0,î?\x11\0®"ºÑ5j\x0e;WãÎ _ÜÝø÷\b\x14\x06ÝN³Ý\x1fµ»W]\x04\x7fs4ÊwÖ
;_\x13ÇÂãáAxÆ]\x1eÁ6Ëä7y0<\fõÃ@ü6qq7»ªçíËNÿ_ö.ßkbrÎÈíB·,Çר²# °K0É_ÚÃ~^[7tùÁ\x12\x1eÂ0[ã\x17I$ù\x14Ú¾´¦x0\x016p¼G^p\x17|¿Ý\x1f´Ú×âô\x0eà¶¢<!Q)õ²ÿ\x06\x15\x0f\r\aÙÙQ\rçEÉÎb°\x03\x15x\x10Åó\x1f®\x17,\aªâ\x05D/\x15Y<\x1f\x0e&ÖÂX\x03u^[[\x17\x13"ÛV¸AbqèBi.?|Á*MÆìh^[¿¾!\x1a¥ê\x17ñì,=åâ\x1e¨\x19\x1c^[»²Pü~ÀÊbµÐG\x7f_R0Ö`Îú \x173Øìuá½Í 4@j\x1c\x19\x1eS+)L?&Ñ¢vXË2\x02´R¾ñpÝ⾦wGÉŹ¨ÔoJ½Æ´®Þq=®yíÛjÞëu\x06ºß\x17ÙPðÉÕå\x16ª\x1eÆ¥_ì]µgÀû¸OL\ab_\;^¥*'\ñ[ܳÅkOí¸P\x0f\x1a¯Q\x1a
D
m ©¼úäöÞ\x7fNõò̧øñ^[î¡ößp!FDb»î
r)çG\bØÁ"ð\x18
<\x10Û\x15ݯ-"|Sü\eÎo\x0f¬ç×ÞßÅz~\x17Ûð»\Ïïr^[~\x1f×óû¿¸#X
y£H\x06j^[ú´^Ô§ï$êýZQìG~~}ÿ=u×
c?$ôk÷;\bë®oYït¿G»ºëM£wDº\x1f¿¨õ¦¢>m,*ãÐajZPÃdµ\x0fR¯$4\aýÎ¥Ök÷sç³ Ä\bÜôÙ\x06ò¹vrZùR&xW8³kü@hÂû|Aàå\x06\x12ç®õ\x1a£_dD\x02TìØ|²B@«ZÃFOcx\0ên¡\x17ÚøãU^[\x04à-\bòæ\r9¨(N´ÂT¿\x1fÓ\x1aÑ%ð"ÅÚiµÄd%{@^Á^\bÉã=\0\x14/\x16\x1e¦ ,(^½\x0e{+\x06ÇVÖRà{/Ú°²Õ;ÚXê(IÀnlKLÚ2«R5P5kÒú®J9ÈVJ\x1aÌj>SJ\x06Ú}
·RVîÐ\x02e\x1d\x1dîÃ(PÌiSC[©í仨-Û¾Ymǹj;«\r}·&wGÂH*cóCdÊ\x06G:ß=%lEwJþá\x7fLoùõa¨\x0f\x04ѽ7Ù\v¥\b\x14º¥ÕJíPd©-¨z,m̺ásv&nɰ¦+HºÍ\x16ð^[\x1eN½\x16¤°Rîr¤·bD¥Dj:K
ílx¯ÀE*ºU\½A`½]d½Ah½M\x02\x1dÂdEøø/i\x03ÉôEÛ$y¹8©ËF\x1dñÿ#¿\x01ï÷áÃ\aÂ08ïó5Z\j³{¼ñ\x1f°>²\x7f
ȽãáoR\x12þKè"cKºáZnY,|¸3\x03Ý"~\0Ñ "Ò^[ÚÑ
\x05,«CÊ¿F@ñÜ(î*²Mry;Ê\x13ÍÐì·MïcS\x18{øóK@\x01½É¢\x16,kdé²ã}¸\x1adJ-ó\x10Â9=\x13Ê~ס¤\\a¿wÀ¨Kü0¹D÷}~\x03]\x18Îÿ¶÷åÝM$ɾó¯ù\x145ýÎp,ZÐ*m\x16CÃ<¶\x1eÚF\rÌ=}ê\bY\x06u^[ËW\x16jûN3ýeD.\x15¹V\x19è¾^[uï4VUürÜ"###.7[áný\x13r^è¸ÇõOOÀÔsiÐË\x1añüß~öP¢å ¡}·½òÒá !e?9)4´Ø¢*5\x11FBOÉG:¢2å!±ÿâºÍB$4?Ê^[KAõ¡Ò_T3\x1c²ÿËF"ÎZbDqƪ ªC\x17 Q<qب,°Åív\x01õ9¬®°ÀFÃ\x16®¬ÚNÅuX>ö2{\bëì#¾Ø\x16T÷Ñ·3´kÐ\x12HðR
e\rUP´_»Õ9\axªÝ¢u,Ãvâà§ò³\x12×®ô"ÿø¡Í?ÓKvn_I¦Ò¿;ê(?=yðU¬]èe\x11ÿ9FªóJç\x0ez\x1eLN\x13<çÇ@͵Ô|fÞ°\x15d}
kÃO¨Þ6¹
MÎi!ÈQz¾é+tÏ {ÎÉ Mg°èÁ=g§ÌÉé>sSÖÔdUÝ©hO»¿EÔ\x7fÊäu¢u¥Q\ak"Õv2ël©£gý\x02öp¯GÖ{Ýû\rt¦w+ãݺøó3³_ìî üÉÍú\x1dú]üî¨\x1eÖjåÒwVNB`\x10ÔÔà»éqý»¢ö\x02uAߥǪþCwßC\r-\x0e%[£/%¿],_þ//ôßsRðÆ_
\x19FX\x1f\x7fîóo{\V\x01qs© \x04vUbÖÅn±\fÄòD>¸\x03{&òÑÖjà©\x01nK?:T_¾à<\x1cî_\ðKÒ·EÁo÷ ëà¸ôåÄ8KÆ\x13ù3K%Ä?1ôUY\x1d3|Øê°[_}\9ÎçïÙ;\\r\x01r5HÂ(.¾â-\x16ø÷Ç(.7¢Ç°\bÀ\x04AÆF·âH¥ d]_\x11tt~vÆÎgñ"M$H\x1aE¨`>\x03_ú8«ã¾<æO÷'ÇU>ù°¤éU0ùØ-«uÊ\x7fB×òõìîQËFG¨;\x02L]?c\x02?3¸ðçN¤©W>w<û9»Oiøç>»Wi©|F¿\x12}JK¸o¸ORiïrÜo\r?\x19æ\®Ç=ÓønÿÁsï\x1eïÃi\x1d¿úûw|_9|Ööø¤<©YXá6;(\x1f}M»o"crüËûÕBskË?ñ·Éõ:¼ë\x11\b\x17ÄEåêÏòI¬\x1cÛr'|+§C÷?$YÖe\x1aø{¶$W^[\x03âÁAZ®H\x12\x15P\x7f\x1cØ
)ýþõ0M\aÄÞÌbØ)=sf\x13}\x0fRD¥ä*\r)º§ä\a\x06'Ý¥\r$È\vëm\x14Êm2Ѷ}½9|È\x10Å(M®\x18ÕJ.\x01^)
./Ëa©O
ߺïiJ)|\x10Sb7i\x13u¾Þ;Q+f
®ag)A¶f^[±¸Õ\x10Êq³S\x17 êôü/çEéq\x19ÿ¾å/#`lÔêgrËnóC©CHmµw¦-ðÞà'\0úm\a]ù¯]bÜ}¸.F£Ûb4T
/
\x17Ò@K}å\r\x19\fâi·ôZI§\x7f&õí²q8ÙD\x12\x01\x05JÔ\x15îµøà`\x04l=ä\aº hþáÅ\vqV5Ô¿ñÄeÏbO9zÄ
Êþc³¯\0¾\x02à%\0õdH:ä\x1a#àSìÛ\x7fx\x14½ý¸Æ½è|³ºA5"\f5~$Í\x18Ìû\x16\x16]¯¶wc¨s\x03Ð^[ªMp¤ËÒ\x02\x1fü\x10Âè|¹@¼¢%h\x1aÖ;©ö¯õ#\x19ÓHÚ\x0e\x17ËÄ»çk´¯]²$ÁÁÀò=+÷êÃ\r/ýIÙ¬¨ËÍv»ZîX±Ãw\x02ÌJÌ*\viÞÀåwH\x05JFGàÍ&ú°¸{»ÊH²\x1fݼWÙ^[\x11Ó QW¾@Õý(zõ~\x13ýÂøpó7q\x10Jô{Ê\x10ê¹Ï©à\x1cÄöÍú2\x11ÖG èaÂkº589:u¤~à^bðÈåþI¥ß\x1f8MDsÍ ã?¾`\x02I\x0fÈøÁb öX¥"Öäø/´Ý\x05xí(bo\x10º~n\x10¨Ì(ôÆ\x123L¦©QIN\x02Ë&,W\\x1fÓFËÎ\x02|$±êè>Ûé÷©\x06ØZýAÕàæö}\x06{\x16xÔ\fâó¹æbàZ\¯Çµ\0×êG÷ãÚ§Ï[ëå ù\x1aK½åòí¾·3ÿÀZíu\x7få`sÿk$nklö«ív\rq\x05Ñgùr¥®{Kû*¼Ù|XY\v§F¯VMp0"0Á^[0Rè\a\x13"{±hBÔ/yè\x01É£¼(r9G¤±F¡ÛS(
m}\x10§\x06âù¤S\¯ \x11Ý·\fQN¤\b3\x02¿9µ\x18o0s'ÕdÖ6çíðÙ\x0fà\afýa±½K\x0fËpr\aÄJ\x02éÈ¢\x1e\x1c¨G\x12W\rÃx[Ù063¬üN`
y2\fãfã̺Y-7WçÀ.uüg±«LS³ÞWú^m_q°9\vèc4jÌÃeõr,\v<#'~îóad/íÊlØAÜ'å\x150}b_æÃÎ,7»r´6Õ~ÎUvôiM´é+&\r³Î²(FoCޱ䶡T`qߣDt¾\aæ^[½©}:hÒ2ëÏïÄVÇ\bZqÃåM¼ïÈ\x16^ãùͨ\x1d\x1cÙ\x19¿óv|zðÉÎòâhDvi\x10\x1dì'@ÄÜúP\x1d\x1cSbµzüâ_KT\x16(2RÆ3Bs§Ñh!4ôýz»û\bݲ\x13ôÑZé*õLIKÂý\x1a½´]fe}æL\rúUF"\x01y¦$è\aµ\x10 üruÁ$Åö\x1dGjçN{\x1eKX\x1a-¼Kã\x14hhp&i¥@i?^C=¬ì÷Fö{Gö{Oö0\x16¬ì÷Îìßc8Ë\x15-g,¥ÜÛ{Jiõ-l\x1eGW+\x18\x11^[¶m¿\x02\x17ÍÝ×óîtÔ\x1c\x14!¸Üd<ëÏ»ÅhöfÔNت{<ívGÑ\x1dÞÌÑ\x19\0
\x10Y.\aɺ\x01U`§ë:¡ë·ÍR ÿö\x1c"U`QNÆÓä¤\x7f|\x02î-}5IgÎYw:÷$ô)'¿:ãÓÖ ;k7%_h ÁE!$ôLbx\x19yT4$\a,\x12-¯³©\rePL\x13q§×ÿ±úkôóÛ¿H^[\x1ak.(ÚCÞ<\ LYÛ\x0f\x18~:º\x01\x13ÏÚ®ó9\r\x03èýK
®\x04Ò\ÙÒú[j(~
bïüØ;?O4&\fßz\x10bb1!üµ\a³wcö!\f°¬¼Ô'_~~ì>\vK¦\x0f;cmÆræ\x1c@ï3Ñ|\x020qøÖàK\x16\0^új'¼]75\x19xjæEî3é ¶ d|ËÑ+\x0e¼b2ÒÒÉ&½ßR\x12éÞTÀÔ\\x19hë5\x11F\rQ\x13çºÙ|Úåû%þýástE|\x01:êÒ3O\x06º|W@\x19õÅ\v@.A%\x1d\vË;CWf{\x18nð»FÖÐ\aÝEk'ô\v8õ\x1fÑ(¹\x10Gõ\x17\x016\x0e\b¼öcÊ\rW6q©æ/Y\u\x16\r4b~LÝÄPu=é÷4»\x11Ó¿1ù«Ë÷\x7fý\a¾êêaö;Ø''É|<o\x0eN\x7fÖ\x17é!I\x02WÞ WA3½¥g%¥\x18{)?KIQd2;é÷`£Ë\f¼`+ö[´zbû£x'\\x12`\x03c\x0eA\x7fÛ\02?Ûc :LOh4§¢
/^ ªÍEÅ-`Ñ\x1eãð±³|Äef{^ÎW\x18_ì)\x06|â\x05p§/rv5ãYv3\x19Í\x18ëÍa»É"ïöÜËöäÍɤ±ï£r\x15PGy[t\x1fnQUB\x02\x109(:\x12I.w£ù^[åÌn\x14e\x1cs\bïFú3ݾ\x117+ǹsm/\x0f©>ºÝa\0ïsà°Û#\x04¸'º\x03@hÜÀt
\x11\x1ap ¦twwx~]¾kÎß\x14§«öàåwº¿\x0e]ie`»Ã¸$|ø¦ZýC\b\rnÓý%Þíò1º¶RÇ3ùÙ%¦·<\x17ÃØì\
|§»&BsqL§\x02Æ}\x1c´;_;IGrÒÛí#Pø\x04\x14\x1aê¡Ó'óþ°?:NfÝ6ø0b<ìͺó¨VÕ=\x11}\x1dßÂRÈB£
Àó
\x11ÞPonÀ%Nz\x0eN¾¼¥ç¤t^[\x02|e °Àûÿ\x15ÿ\x14ýøcÔ\x06å.Y\x13\x11\x7fV\x7fÂE²ÇG\x1aØtA\x04Ú\x05+õ
þ,¥\x18\bôµ\x14z\x14Ìq¯åX·`$ÇH+©6G\x03 bãÛ<ϲYK}B\x06ÄS^[\ñ\x14XË#X°µ©Z°Ò(µ\x050V\x04¬°LÅY\x14²P©\b¶5¸øs¤\x03^Å ^[ü¦¿N^[*´TGÒØà§Ú\x11)\x1d¹#J¿àÁ\x01^[ þò(ÃLý\x0f!ÀÂ=\x04;qG\x11`·iã«PÂæo¬å\x14wX\aîCÇÜþe©Ýê\fo~¾¾AßW\x0e½V¦"ÞT:"zN^¨¦!k¢Cú
\x04Hv ©u \x1cK§Äµ\x04FÆv\x16/pâx^ÂH`lYm\x14Ðâ°rQÀ\x1eP\x0f\x14\0ªª\x04N·×<\x1dÌIí'ÅÜFKéø\\x04h%¤ù¥ÐûB|Tuë/½ûÍÏÆ\x06ëÆõB!/ÃÎ\x04\x03g\vôö¯ñlNb³\x7fò°W\x14|ÖNZãù|<L¦ýã\x13(;ù¯(÷Z\x04T:l\x18ûÊ-ØFÏZx6Ú\x12Dü±CLc3b28c2\x1d\x0fÛI{0MÚÃ\b\x19Ú\x11G\x01¾ºM\x12ÇDÐyw*\x03ùsýMµ\vd×B¨ÅÙxÀ$¨öx0\x1aßgÓ¶â?'ðµÚì²ËË\x15[c!nKt¾]üW¡Ñ÷\x0f´·'þ¨\vaþ¦s!'ßXûÞã¶\x10¾\rï\rÛIND]zÓã\x0ep±xüѹÅéZ/S:y\A3ãWÁü¹\x01g²ó\x02ªPNB\x17\x10áU>îVFÏæÕ´?g³Âì¥9Õð\x18Æe´/òNdeÍ\x17?4\x17\x1eÓÛü5÷\x04\x02!\x17p*g±v]\x16=»Ò«gøkÓ\x1fÇæËÅ;Xµ{þ¨7Nzæq"\x06¤Eú»~¨ù6©dÔ¤$À{\x0fiÉS\x0f¯é_ÒE£NQ°ê£Âüx\0 ^[øI?>\x10bãûÅÕ»\x15\x0f.®N,³¨Kè4uooMÚ4t\x06!U/Mj)Ô)J|a¸B¶=äón\x17Ü}w\x06X«FxO¥\x1cÝ4§+~ûr®ÑY¯Z\f\bZEW\x1f±\x18éG\x0e\x1f5*&¯èLwf§É0R£ dÊØ\x16m1\x12Q+¸¸$oÀ§&ÿ<ûåvsy)¨fíéx0HÞL»ióUº¡vº\fýå~æãv\vá$ë¬"sO1F³ñ0\b¼2;#ooOqgeJ&üô\x12MV|Ãp!=ù¿Ñý#Èql}±\0&wøMØ\x1a@~yAÚÎOBÝ禷ê#'ø1á\x13ãÃçÑ¿z¤Ùnw\a½dÞ}=\x17ÇÆ¢³ðü0Rë¿ú6\x18\x1eeq\vܼ"n)'\ae»Å1
×Õ¹¸³þÐ(_Q^[~Å$uýLøvN^[dZF~\x7fYy¾«Wá\x16OéqãÿÖKßݳH%ÇÐ=¸w\x03KØç6lÀ=câ¹\x7fP\aFÌB,سÐ-3é\x1aGÍ:\x13ìºø\x12â ð¢KÏ-ú:jr+$í¶éà\x01\x11¶W¬L(\x10OíÝ\x0eÛ\x0e½î\x0ef.ÚdññV\ù·»ëÅ\x15\x13ɯ#í\x1e¹øöëvq->ZÀåâ\aTk¶\x05__íWÛ^[1¥S9ß\x1fRfë6=d¹±¥=\x05~Ç\x11ØÏl ¬H ´Ý`å±ÿ\x17o^[þk¢Të^[nã\x04V\x15ýÙisLfÝÓÎ\x187*Yh,yÉÄg#ÔÖÊ8Í\x13ó\x13qÝÍ8\x10RÕËØ\x11bÕ\x05\x1d_N\\bÿ°¸~+\r\aC;ýi·=ÿj\f\x1e¹\x0e8Ê\x1dbXl\x05/\x18ø¸¹[\x0eD»õr·\x1c¸Z»Ùiü!Ü\r"»ËVÊn¦V\x02¡x½L\x04\x1a:/S³Óø¯ÁÔ(µñ°2ÊFìð?ÅÖà\x1dèM8/Ï?~øpÇVn&qm¥W°<M[\x03Sp]\x14!\x1ftàËÁ\x1aÎ7L*`/./±Ñ2"5æv¥ä\x11=
P5ÈT@\x1dñ^[»%_Ý!-\x10͹@óo,`G¼\¹EY\x19\rêð¡\vVâ¢\x15I±\x18C10ì1S\a6¢çáç¶½\x16î½\x11ý-*×êÑ_#ס
%»\x0fü\rÙ\x14ò\x15ög3\x06Inà&Ôú\x03KìËâ\x0f\x03©~ <^[Á½7îàÞz.wq\x03\x1an´¥xÛ^[Ë)\x12\x7fþ æAE4Fúdïð¾vLίì}\x11\f£\\x1f^[.KÜõíc`´åúöuÇq:þk&#\x06|Ô\v±_Ã\x1ap}½¹¹YÃÑHÁ¿ÖåG´6%;eÙm¸B\x10\©ìM{vøàòaÛ?}¼)\x14®ç-öõåâ« îÙ4õ[ÉÛný\x13®\b0Ë<s¹öÑqp=õ\x03\x02ÏþVßð\böÇ`¯`Ê¥8\x04ÏìÇ\x1eÇ'ng;zQ½\f#Fº,\r{iWkïÞ/àãî;%ÅÚ@9\x7f\x0e¯gÊ\x05d\x7ftÖ\x1cä©Õô6tíEN¦7Q Çûâà¸Þ\x0e=rsA¬ð|u7jR4ËI'æ4xs(¹\x1aÔfåÂ\x12nç°.û«Êæs\b]üÅËGpζñÿk¾âæ^[à⯾â\x17Á»oÆXµõV5¢.\x1fíp¬\x0f¶Ñç\x05³/ü£Â(yh¼æ\x1fA\x01±0«ð/\0\x12?u:³Û\r(UÏ4\x1eGtkj9&
âG_½ì«¹îîÝg¥ëÍ*ß¼Ä\x0f\x1eüðè\x01cÏÅÛhs}ó\0ï\x1f»\x04.\x11\rFg?5\a¥æ<ÿ»JëF"ú\x11«¡ÅÉ\bJöè?ùo\x11QÄ>ÁÏ\x7fL©l\vd5ä\x1d_Íâ\x15º\f§ì\x13ËèÜwl©þ@º^[p0Ê£©\x19
:\x18}æ ×osÉAL¤B×*\x13Ùß
~QW8\x1atjL7Ìff·N
$~rë*ù'·ªR'rí±É;ªFzôöjpT÷\0ûÌ\x01à<Õct=ó\x1d!L*¥Y\ç*v¦ZzF¬q¬zf\x1dV¥Ái\x17tíoþ+\rWõÇ#~xå\x18êh믮mêg\x1cë¥aÿ;qÊ}¶l\x17Á¨Ç^ßZáÎEqj¢>\x12ëÕw¼)¨jÿ'KÙÉYÒ¢Ç{\x0f_,½Ë\vGGUÒÃC]«\x06{(Ì\b×l\x0eâo;\x02½£Ð»{A5qæ®äè{ÂJêî³24821ó%\x1cø¾hÏ\x0fÓd·+¶n=ĤðO¹ðÉ7
û'\x15d¢â,¾û!\fLÿ%\v¯
\x05MûD×w\ª\x1fî\x11N\x06
Y w]å!Öþw;¼ºBg±ç+ODdù¸´Íû'M¹Îºüû³=ô'êBÿ·'}\x01~Boü"\x15àI\x17ú\x1d8ÀÛ?ÙmXqMË!Þ(x $úQê«\x1dËñV\x0eE|y\a\b}ÙaÑ\aâ@Aþ\x11àþù]'¨Ñ«\x02§f\v&û\x15:ÿG>Î.W®º»\è¬w¹ÐâWér\x01Ý_·Ë\x05[ÑèrÁyãóg+½¯Xýì¾ÖÁë\x1fÔC~·cíÿá=$d\x0f`÷@ÒáµîsÑÚ\rõÏìÿÙìg¼'^\x14¶îÜFh}µ_\®Ã
jU\x1d)Q\x17S¸ègï¯èÿä²B6Î^[
A\x1a·Øc\x12¡ÜHe¬BÆi¨\x19|"½$9SK?ë6ݼ\v#ï½Ôû\vsl>\x16/Âeòø\x15uOcE¸#E¸3Ss+Iiå< £\b\x0fR(\fË\x0f7o\x13\x1eB/\x1dú;\x1cäU æÀó iþyűÿX,wë=\¢\x13{êyÿ¬9ï{ãí3LþpÞÍýcÜ6Õõ&4z=\x1fOº#;-rüÊ£ç1s6ò\x0fsù½ÇS;F>ºµ
BÅ\x04*\x1f\x18_õOª\f¦¡«i`o\x024%¢¯f9ÌïM\bj\x1aï£}eEåÒÃæ½\x12\x7fÙ\rBÐì\x14\mCôxÅyÂ5Øz\x18²}(ri3öBÊÔä¾ZÕ%F\x16Kløû\x11·À\x01â_n®yµ
ÿ\x15Ô
6»>SÁg%$vÏ-c)=ËvÉíR6s¶r¦w\x1f=æBFCnÎ\x13`aØ\x1c2´Zn®ïD\x01\x1e¦äL`Q¥a<)1&M»ÿpb)ºä$ë§
d\x02*\x14²úO°Dæs~ó?°§kÞD$¿\x7f Pª]Ýu¶µ.Ëé½\x14ôµ\x12ä^[<«í\x1epS½ôu_HA÷«AseiøgmÑk\x186W\x7fùp¿ \rw¿u Q.{¸gFÆ!2b×jO\x06´o\x1c]/Òl_ç ?d0c\x02\x19©èVþqgƱxn\x05¸^]þþ>:Bc£\x14KDvÜÇe¦7ÿÒ\x04ÕF\x10v
®cèP¤ù½Ú(:Ì\ìc/0îHk/ó\x06S^[UÐï%\x7f
òµyTÀý'Ø ;ÚèàJºB\x10Ie\x1e|ºzæz³Ü]ª¾°æðÔz}¹\x02³KöÊ<ϽT\x11_n®ÞEí»´s{ûîÉb_Áå.ç1ý6\x12É<sM\x17Iý´ß¦vÙ.|©Ôe%H£ÃðyØ\x7fz
e~\x1e=4èeN|vô,\x19ð ¼+;$)ù8$º88÷)ÊR8Îz\x12ëÐq¾+È'¼\ùN!òU\bf\x1fºjÞ:lÑN⺥1û$«%\x06¨÷\x0e '㢵IN¯J
µÂssëî(¬ÊͲ´ [l}3æB\x06î¦[%\rîôø£ìý¸O¼ú \fn\x16oo>nÏ£÷\vÖÜ`ý\x1ahelàÍæRsì\x0e»þ\a\aÊ\fÎÏÝ×sá\x19Ez b©%Ëín¬nwè\x18\x05#pï軯ÓE¿EÜ}¡ù\x02¼\x19\x0eo\x7f\x16³Òta0Ü\x16:òß'èáMX;ð1¥í»åukÅÿì}Bêù!ÿ|Ìe¿ÀÔ
! ÅÀ&@·`e]ÉuwÃû¸ºÉ\x14¨À'×féÏ3\x04ÿü(\x10Øöx4½+i]1Ͼ\ag\x12ËzG{8¤ ·Ã\x0fÍÎ(û'éÁv&z\x0eéiäÂÎý]ûÔgÝYÍ8IkÐ\x1c½ìï4LSá¥Î&ÝQÇ\x0eÔÿ7Ö
¾ê*»,'_§,'_£,ñ«î´3~åPÛÞ'àË|>·ä\x0e-.\fÓYx·\x17<=ô\x1d9Ìð»ð0{.ãç´¤8\x167+tæ&Ýy¸9ÒÞµ\x19ð
\x10\x16¦\\vn~¶.\x1dR\x0eÝõ¶|<s¨§Q¸XHÜ
²_W^[²\x13y&géOn,\x16îm)57\x01K\x7fó3ÿLóÎ\x03á\x10ªÉv´åZM÷O+xx\0õ&×g®\x17«Ýnõoû \x0e³~ü\x11ý»y¿\vó\x03Î1\x7fRø9\x18R<\x13©\x01GýÁ×`Z@ â!,O\x0füj\x17½{9{ÒM¤w¤{õ#£^[^ô;w\x14Xé¯×Wç«[\x15³Ì×i{çÑ\x17Ü\x1f7opù\v^[Lþðö\x16Ð]²>ã£}Ht\x05\x0fè^[¼©À>¸Þ->|X ´ý~Í\x02\vºÃÉ\x17à¿\x10\x02ßóZcw1tT>éýËõ7.Å"3i\x0eºó9ÄVét_31°p\x19\bpqXdY+Ƹ\x0eCÿ£ÃóÖ\x14e£c
á\x1d\x04[qÉ!ÉÊ\rÏ\x12t^wÑÛkÖqy\x1aýº;çXf''E2Sî.ß$ÊLÚæ¼ã<·\x1f\g\x1en»úæ\x0feÞËeSxÛð÷tÙLÞĸ!±]$9P|82Âq=Îb\+<9ß\x7fd\vµsH\x18]&[°ö=æzÞ°Å2;¿UàÞ1Ú°F¤Bf \x10®Rñ\x18ZÇõ\a\aê6e~KbÞiîkÄÜ
K\x1a/\x03«sÌÛ^þ®\x15\aSÇsÀþO\fÀ\bõ\x040ÛJÏaÇ©Õ!dÏ)\x1f§ç\x18gÅêzÅøBÏ\x1c¾'Á¡ªø454º'D[gëÚ\x1aåè\aü\x7f]\a\ak¸¾â¹Û²R&U&³îú\x19é\x17\aüª
|¦\x13°|ùÙb¿»e»UعY\x165l½ÃBÚ¨7gÓ8lwR§±ð\x05ã7.\x18}%ÿ\x12\0 \x18I¥jÊ«@\x10Äç¥N×i¶M\x1d\x03Iö}²Ûì\x16Ðp¤.N¬¦2áf\x0eG
{oîg¹ïC¹;"\x10¨ôM\0èÅé8R×Ò\x05ÀÍÇíÅb¹Òy<;öí®ä³TÕAë÷&fÛ_\'~ÖûÂéèP'ß|!\\x14ÔêozxÒÐ×°î`:)l³ý\x0f\0(w\x013þÆ¥R\0_\x13ºC¼¤°\x15£wäcÆ¿âËýù]õÁYgæ¨<\x12C nx2\x18\x18Ä»\x0fx;oN\aÑ\Y^[´\x0e¸ûÐ\x13FÀ|Ú\x1cÍý¹ôؾ!eà1gg!Èüý
i&±ÏNbïOBqÐBÊ/\x06ÀìD\x16î½¥ìÖàíjd^[Kº\x014;
µì\x1av.^[K¾R ÞÉtöÍ\x02ÉÎVt¡äGR½N§¯-RÒí\x1cô+tÚ\aÞÅÒ2îû"¿NdÙthñ \x03êq®¬W«_á3ÜæfûÇ÷sè®Åh/þÅð 3¸..þî^\x17¹p?'^[ &D{IÄÿÂïKø\vöñf]ÿì\x16o¹×¦\x124T\.FOñÿëŨö\x12_|<\x7f·J.®95£+£Ó\x01öÿ5IÊä¨óÍ®mÆÇ
\0¹P·ôøR\x14\x1dÒeõáÝö\x1a« þ\x16¸Ø®þ\x1d\be²\x18L 7·¶e\x04ßTËË_\x12À°¤Ò?ñ-è7±S¿ëíj¹¦nP!¥7+P¢à7Ún..à¿W:åõU\x02\x1aTð£\x0eqF¹þ7£\x18¼ÝR6\x16£·w;Ø÷òw¿\x1f½üS`EÜw\boÏRLûÃæôM2\x1cúóñTÅoV\x0f\x11\óYDK&çÌêÓö3Ö[\bRN;pô½øAC\x11?\x13ä¬Ë1bÄ*\x180Pb¯t\0T$^2`oàF#~&Èy öv ö¤\x04{Y½Y\x02\x1a3Yª¹\x0eµ¶ÑËùÎ×þ4hw
<l$Ñ4\bH?\x12^Ò\x10éV\vFî\x18Øv²w4Ù;#Y«õÍdy`\bÕ,Z[˳\á.ÿ Ð-$)\x06íí\x16Æyfä{½\x10wZÊ{U\b\x7fϤZ!|=C\x12ka©1 (\aÍS¾áóf:Q±/HðÐ\x19ÖYÚòA?\v@´\bÎ)&]åÞËúý
M\x0fïyéñOÉ"\x15àÒ¹<\b:ºnîiû4Ž¢g-)2fÈé
6·ª\x1f6.@\x1eà\x01¡Ü§i\x0e I\x11T«P-ò"ô\x05\x0f\0\x04^[\x12p9\x06\x11\r\x06_2س\x01Þÿ±rßûrßk¹ÇFî{-÷øB֣ͤͥrô\f·\aáJïCApt:y /\x06Æs\x0f©ââ`ûlPÄåjÕ\a\x11m\x1aÉG
ÕM°Í#[·qÝD\x1dH\x11çVC«&²â@Â\rS\x13Y)H=ºî§ÏüU\x1fÄÅ\x1e&>]âåx\x1cÿ:âqÑKñËq'=\a\x19õqÔ`\x13\x1aI\a¨
TùÄTË(\x1d\v,íä\x01:ü
ÅCÁ+Tz}é:¨è{ÎIsÞÇHHÍ)+Ãëö\x14Õ>¬\x1cÏL*=1
i\r\x12\b_\x16^[ÄJü¤"ÏóÐY4¸ôçF&iÃëñHt\x11\x1aQO±ÙÀÐP±Ä\x1eý\x10ÁO¸\v4\a\x03ö\x06~b©Ê\x15\x1f^7Z}Î\x03£\x05\rÍÊ!{ÄbÑÐ\x1eCD9\x13xq¡i\x19\x1dY¨SZ®,8ò1õ\x17´ãa¾4\x032#§Z]²^BÀÁ#£½Y!±\x12©\\èU\x15W+e\x1d\x1c)ÛU8ÜÓáæ ªAçö´\x1ed\x11÷VDŬ#|\x16\x01\f]`Äâxê\x12R×I¡°\x03U\x1dW¹\f\x18´\ríg¹gs1+;Óf
\x1dG~sRJf¯&tÂ6§è\x03cÒÍ$Õ\f¬ôVd@ÂæGê§aù¡³i@Hü!<DÌÀ\x1f¢zU·ôÎ\bJ\x05Ø_ýH*^[Ì©ÂQh<i"3Ó}ÞL÷þLmuPÚw\»Eùͱ]T\rð\x16\x17J\x17· mvÊ0ÎY÷\x03c\x0fÜPäÒz\x17jcsyùä\x1atLL*V\x17Z\x04Ç×g)üQ\f(f}\x15Ja\rî=ã2\x14\x03ÆrÍz\x1aº×^jiûLþf<Û/Ð\x1aá-I®77`d¼/âü%Ýh3Ì?ÁfÉuüWýÕ¯*ûUV¿\x1aìWEýª°_Uõ+\x06uúÅ~Dõô^[KôHý*¥ù}Â\r\x19)È¢½~ZÌÒOÏT¡ÁM\x1e¯kôý÷ò%`Hpìdóqwýq\bvZ`p Ê>q~m®|ánèáCyÖé\x01þèì\x04<HºÉ`YWeN+n×4%CK` Ún>^Ãߤè\x18\x11½zä.TQJ.\x06byùKJAXZÞ\x15ÅK½K*\x11õØ ÐßÒæÄA\x1dR-=X{99\x01]ij\x13Pd0FÓ2K.Äü\x03%ÕʧÈíÒË\x10N\x13·WJ«\x17â5D_\x7f¤ç]L\x0fÁmƥĴV·4«\x14\x03¯¡Pº\x12Q+N|\x04Nï.R8Fw¸\fyp õ0Á?Ysÿû¡\x11ÌÒM\x12\b¬zvñ¤S+¦YN¥\x0eãÉFV\x0e\x05ÕKóUf
:¬¦¬Ý.><ùð\x15¯ÂÞÁ¨;$\x1fvÛ%è\x04@¥ÌVkuj_Öá»íuª³Á\x17¿nõ\x17ËK`[þ¤g°2T_X6\x17\x17¬\x12\x1eN2±£RfЪv¬Åë\r:\x15æ\x1a\x15Ð\x1aóWÚÚOz\x18@X&)«¿%H·e©Vííåfs]Ài\x12²ÄYØöÞ¾Ún!ê+\x03³Ù\b¼µoÁ5\x02wU/ùÌ]Îù\x02bs^¬!ºè¡3¿¥cíÐîªÊâÉ
¬JRv©@egÈxspb
|\x0eU\x04ù\v¶¨ªh÷\rßO\x17»5¸ÜÁ\x7f¥T2 º\x06j©iqEÉÒä:Ò»s¤'\x15º8S¦^[(¿\x1f¯1#-F\v\b^°ÚîÖK¶ÍÇÛÕ»5\x04O¾Øná}ÉñÈ,üàê\a²²Øçá\x0e-·¶ÉÄòIsÔeûõ~o^é)\x1a'ß\x0eýöc\x14꼬¤\x04 ÿÿìh\0\x1c\x16&·¹6MFÚ^ù'SØiA¸ì¢#ùgt÷cqkYàÑ®\x16x\x01`kêÌiö² w«¾´\x1fòÏéý\x7ftÙHÁ7½I2\x18'2e\x18~jÎÇ"§þ¨nI\x03U=¬VÆÖíQåV\x1a9«}î¢À%,\x7f² Þ1Jr¨1HÌ\x16½óµèÞÛ¢w¼E©u
·Eï\-ª÷Z_îU:sò´¨¶hQÚ÷yê)vgÝéY·ãh8-5h8\rh7öÙßpz!YÃ!t#®Ã¢\x10¢\x1cÜ¢½Fð\x1e`Iì\x1cÿ\x05Ö03V}ÐÃÖ½\x0e_''gB¿=OÇ\x03ª\x14d\x04\x1d@¢åMw@ß2Ïó¾Í\x06JûeÒèçôËé¬Ë¦fgüÊÈ\x02!äë\x19áªUs0ç*$'c ydj\x1dV\x17ܤ)\x03×\x1f¸¾°ìôTM\v!ß\x1aÅ3\x13Jì
<PIA¡ÄzÈFɶy§\x06×L<©¤4\x0eoV`ã\x7fÃV=öÍ/;4¶g«ýߢ¨\x1f³\x15íj³{\x04¯~n\x05N×\@¯Ö´¾b*r\v\x13|¿ëæ?´+\x1a\AÝ\x7fµ\x06ã5VuE7kéÞ\x04\x11ì/4«â
mªÑÆ\rRo«áíS+©(p}Àß"ܾkÚ\x1c±ÙhLgl|DýöI!ô¶Á¿O\x06\x03ö©@]sò\x18÷à\x0f°^ ¸°ìÖ\x1f ÐU*¨\x1c\x03ß ¥Èúú~±_9o\0\x02äfña%l5Ðú¿²T\x16W*
6+#O\x157Æ,ÕÖéÀl·\x01)q½¸\x049I\x14ó5\mà8V|j¢µKïÕ!>s`÷\x01ìÞµõù!õ¤)Ý[!÷ïÙÙ8[ïþ½RX:ýº]ïV\x135X!½r¥9á ¶Z\x14þµ\rm¸¾s/^[\x1cVY~û[{Q«$Ï\rý<7Xõ\vªÅÐVÿ-i\x7f| ¢·ò;H\x0f¤_ÃåæÃ\aÁ!\x13þ2w{a\x0f@¯ÀJóÓ¢\x10´´ó;\x0f<L!ÔÔaÁgù+PyÈC8¼<¨+âI^[ùy³8\x17¼Ó$l«q¤¦uª\x0e2\x1c#h8ëL@÷©àÉÏ4e\r:bÐpÁü¤sû`¡õ\x15Í˵|ð&lp.\x12 Æå2 zJD\rÎ\x7f}\x0f^\x0e\x0f
e;
fãw`Ñ\x1ds§\x7fò!w9úççj;àøúÏ\aÄ\x7f`Ñ\x06\x14åi¤P0(#\x1cN¤ý´À\x14>'Ä´ììû¡ êAâªÜâ·]n±åÑt¿.ªNZ&ñ]r&Qþe'!êå(-TTY{JvY¹j×
p\x14Ó×ÊpYJ\r·ñl~ßr\x1aûÔH@ë)'|@§\x03ÉÙJiÛ°~D§ÖN§ {^ÿXMeJ^[G%G0l)\x19×}±%ÈÃuCææ³Ú7±® Îg®O°)ÕmvOp©Ñm6Oó#*\fa§Os"{gaaO\x10æziÜ=ò\x16$#ñ¦<@\x11æ5"AkVò9v6~t÷!½£c^;\ax@ôнñ)°ä¥\x16XI}ÇäÃqíb¹äu;AmBÔÎIfÎÄ7VÅ_{¿¸¸àóèb»ùÀÀÕ~½ùxÃ=Ês\x1ea©F*_±9\v\x0f>¯.\x17w`\x1eÏ÷~÷¬ÆV{áõ[£Æ\x16ô+\x15\fþøÄUE¸xÉW¦t,Rnè\x12 ]É©n\x05D°È\x1d\x13
/,tT½ÚjíÇÔv\f<$¼ðß~ØìUÀnåKOø½Ù.ïÔ_·äÇǾٯì/\x11hòý
\fßùßh3lßéÈí[áð\x1aO(ÅN_¡¸Ûl0S\x1c4Ù\x7f&Ý\x01Zf²\x02F³½ëÕ\x0e3>ÄÙ\x11j _ó²ñ÷Pb\a9TÉE$\x0ezNã@ð¥\x04sÿ\x11\x19Å{8¾øþ¹`\x13÷\x7f\x7fÀs5ß
©ìëµÒS@¥ß°µaÂþ´ÆóùxH²ºåYݪ¬n!Q^ô4'ë¥/£×É ÛCNÓþñÉ\x1c;\x1eï3\x17ëMòëb½;¬ÓÅMÖ§}XÝÕlÞ\x05g³öÇuòa\x01*\bs¸\x1d\x0fÙÖbz:;Á\0ÆÙ´Üço&L\x1a"`:T\x19yÁÊ\0ÙøtÊçaw8¾)èe|5íßýThkJÂË.ØA>AÒo\x12&\0§lÀj\x02¶\x12aÃ*2l^[ì¤\v¬
EwÎÖÃCÑ\x01\x14 Çmfm\b//W\x1cDûer¾Ø-¢G õzB\x06¶1!þG\fâåå\x16\r±/áDw±Ûm·ïËdµ<¼F÷8´à3¨æà_aik¾\x13¶÷\x1cú1\x7fï~?^[\x0fú\x1d«wçëþ\x13£\x7fó\x14{Ócà`Z\x04n\x7fæ\08tÌ\x02 °'¡³÷g\x0e\x12ìöb\f0zÞ0
À[@ö~O¸>1(ôn.\x1dÒÒQÒàfc7lé¼þ+ã\x1fÿ¶¼xÛHð\x1d^[\x17¸\x14¦ßè\x02Y¾ÇFõ\x15ß²¯×\x1fwK#Yx%¾Ü8>Ý\x14a!ß(x%s\x13W\0M(´OEÐRnÌzÙ/´7\x1eͳÕÂoé\x06ý\x11µ_õÂOJ¡ð§ÿÅ\x0foÕ'ï\x7fÏ<JL¬×«\x7fÛGÆ¿¥8.×Êå?*GÕZ©\Ö\x18}|ttô§¨ô{\x16J>\x1fÁ=þôËÛ÷¬7øé²¾ÿ7}Ø$s\x05³L"âH<ø?\OGÞÈ-¹hÒîGëstô Ù«¤Ó=ë3ùÍé\x02õ÷ÎÁAé¶\x16W«\x19t]AWË ë ºz\x06ݱ ;Ê {ÃéjO3èþ!è\x16aºÁ+ «.k\x19ù\x0eÞ\bº|\aÿ\x10t\x19ùþ} ê»Ì {%êqô@\x11ê¡Ã\x0f0C6"\x1f¤\x14Ã!×úÏ\x1að)ÝâÅîâ`\rÏq\àZ§3¾÷ËÆUh~'ýdÆD<ùUÛüâ\x1cù¥\x1d¹_æ\bIJ@òV
+ç2k\x03¸nÉÆ1I\x1e:B¸^ÃÆ5'L$+%æÌe¸¸äÈ\x0fqq\x06ÎQ?Ä\x05J8G9Y§\veÇqm7.'àbZ¿I³4'ýÑätÎÅ ùÆ_½jàÚóÁ\x14w£ãù¿õ\vw:aCÀÛk+\x14+aÎ\x1f\x1f¥\x1d±5Än\x7f:ËFÕK)'áÍ|*:§Ö
ÖR²³þäDÏhDí*!ê:ã)g2KÐÓzràÊZ/\x18\x0e£\fÀÑÖÌÃ&«\x13Üs\x06÷§Â%E\CÃ\x1dO¦ãc6{ö2qOi9O[l\x13Óe·h¯Ô¤\x13\x19^[H¬±:þ #ŵ(?í.^rÌÆÑÑ8`]{Ôv\x0f%\x13ס\x13u9Ó,\x18Çuiýú³ÌÙ]âzz;ÀT\x1ah\x14N5\0×\x1fgÁ8®jàà\x7fyòk¤£¿ÓÀV:c8\0ªÜ&<\x19Ïéx\x18ÄpTE^[ýÍV\x7fÐ÷»³d2÷µ\x05¢hÍð\x0eíôt2\x0f÷\x16ĵ86\agöa\x7f\x1cO£fG\x1cí)Ã&ÛÀg÷NÄѶAò*\x03§\x10a?a<ÍÓvµ^[ªaýÍÀq±\fÛÐË2ó+k¸¼kE¯V5òË!Ë!îò\x13V´|i\x18¸\x1c\x05E\ÛÌ/{u\0\¶C³Ï¹ù4ÏÊÛ)i¨\x1c\x12'¢ª\x1a\r\x1c³JÜih¨Á8iv:Á\x13Qm£fL0Îë\x1c\x0fZY@ÄU\x1d¸Þ8ÚâÒ&'TH+i=E³.ÊÀi\x13¶\x1e䵪\x14\a\aS9°£|a\x15:ç`ÜÆ«ØA\Û('[p§Ñ,\x05ó;j¸Q\x7f.§ÁdÞ\x1f:Ö\Ài#\x1dp³Î´9LLðN03GlVå4ÛAÕÏ¿\x03C/0_\x1a%7*[£JÛ®Óm\x06§ZjPT^¹Üê¬ãn¸anm½õZ\x1d÷0Úr'c8NlÎO²ó«å\x04g\x15¯Ðþ>+UÌ ¸i\x0e\x1cßIg§\x19°4¿Ù+ϰ99\x19O3¤±XËÚ¢
q-mW#p%Ö\x14¯(Ñ\x1a:\x17#ÄUm\\x03\x17;på\x1c¸²\x03WÉ«8pÕ\x1c¸ª\x03WË«UMT=\aªn¡r ,TíÚ'Y-×pµ\6.vàÊ9pe\a®\x03Wqàª9pU\a®\x03Wsàê9pu\aî(\aîÈ+Á{ì\0\x10\É1Òã\x1c¸Ø+çÀ\x1d¸J\x0ekFªæÀU\x1d¸Z\x0e\Í«çÀ\x11-j½lÔ
Jívw6Kzæ±ká\x04T¯áCµ\anY\x15Q´f 0²=i¹½¤I\x7f\x12±°#NÓj6MA\x1cû¦JÇRÏÅmO¼j2\x19ït4ï%Y;*ÓôùŸ, \x18qn£Õ\x1aÂÁ\x7f&ç\x18®mâ²å!Æ®ÆqK\x16»Ä#´A~6.[ÀGÍ»UN\x0f\x03¹rZ|{sn¥^[ʯg×Oá|¹b~t®^[ý=WË\x03®få-F\x01iÎa§×ï
ö :*¹Q°!t\x14QU?ÊtGTÃj9óoË\x11×6Çf®YÒfÇã ÒAíÀ;Ót\rëõóàª&\x0e.\x1aeêRJÆY\x04 ±\x12ƵJ\x0e\öN-7\x0e\¥\x14"ÎÚÉSóq/®¬]9®ÕøpÖ|/?«gùò³úÙ\x19èMö!gn\x15*àb«~è±myè,©\x1cWu\x14\x18há\x19'/jè¨\³C9në(q)KyQe«f\x1c[Ùj9r )³Z\x0e¯'eÖN[»ÆgS¯haà´\x1d2àXçà¦d~Æ ®êÀ±\x19·4óã4\x1d¸îç@ÁYº¬Ë£ædv2f]\x12ÎúØâ\b\x01§±
×ã°\0_´µrõÃ\x14×p3\bG\x1cën\a§®{)>Ñ?\x1c³\x12â\x1a6*<· ½Ói!(zúËPx
û\x18ÏÜú"Di5Óp,ß@n\r\x03ÇF_OGpm^[a¸#£åÒbbxpïìwdÍ\x10Ãñ4[÷VÖd\bÐ^g÷k\x18åÌÖ]\v\Õªô×\x12B\x19ãÞD
áÜÌ\ï8®]5òËÓtɧ¯\x19ñ\b=X@==ì\x01\ÇÃzpZë©ktCyUÒHø\x15:$mãéä$iözÂ\x1c:ÀÝ\x1e±`\x02d6£ªd
(µ1ÓÀÀg¨j©d¡º§cÕ¾\x1eز9érÙÅ[JÄ5\f\x1c\x0fÆÍN\x06..\x19¸Y£°Z6qgà§(T;³ê\x173h³Ý>åÇ&^Y¿I¹\x05D\ÛÎ\x0fïãAú,iùÄÆUÌúA~\x19@ÄõË \x14Î,ç\x19CXÿT LmÙ\0pU«\x1d8.ÎÂå\x14¸r\x16Îl\a«dá<õ«fàj%\x17ª
ªºP\\x04e?SsY\x02TÝ\x17GÅ~ÉIô¹Ô^[ôѦÌ}´\r¸#³å:ÝÔSú¤ wD-á\0qf~³ÓÖ°\x0fÁ\afóñÔk_W=2[î$ßmX3ļËÄã,ûjÃ1ÒOrôk¤g\0\x11ç\x18éb¢öN¼{j³\x0fg³\x0fg³×\x1f̳W¡jÓlÞ ió&\x18^t{SÄ\x03\+sx3ù¢ãÊ^\#ªxQí\0ªêCµõ\x11\vÊkÿ S¨Ù\x02³A?ë¼\x11p]×\û²û\x06$e8ðòâ\sÄAô\x0f\x1fÎìa(é3DY?\rçÎ\x10p=³~\bɬ«=³~ón¦½ âô3¤Ö¤\x18g¸¾\x17æ¸N·×\x1e\x0fÚÞówÄUm\0¸¶^[\x17\x12ç\0Ws3KLB£Y5â\x1cüD\x11"°OE\Û³Pdµ\x14¨A;\x15GUmT0+rÔ,K8G˵æ£ädÐO|Ý\x05pG8_A£å(ÎÕc\x10çª_ú\x18qúe©\x01×pÔ/ÇÚ\k8êCz¯5LmY2ìÏ2\x06;Ãut«uÙÒsàªf~WS\x06\x0eÀrUNʸb6°«íh»(ļÊRç"®jÔ¯\r·ÉûÇ!½\vâ\x1a.sI¦(}eû\x18î$ \x15tÊ%\x0fª\x15DkBóNc3×¼\x14çl\x11g®y).¤¹ïXû¼\x14ç½;8³~ÇÍá°ü(³ök\x1c\x178µ_ã¸r)©q\f¸j)9
ã,\x19\x02q\x06˰å×>vjîúUÚPÐ\x10Î\x1a±Ãîô8,\x01®n<pätu>Ñ©[ù¥\râcL\0®aågà\x1c£\x02qÕ Ê1&\x10Õ\b¢\x1c#\x02Qí Ê}öÕyU3Gë!.ÀI\x10t]\v⬹Vǹ¦\x17ĵÃ8×ô\x02¸f ~ó%v\x19õóÜë43êç\x1a\fÓ¬"À2º
çÄÜ\x13Ù8mgââ\0®\x1aÀ\x03¸\v79 Ù"#ÎÒß\x0f[ÝN§ÛIü1k²@k
êÍÉéÀ!âÌ5vö²ûí^\x06¬\x0e\x10§¯±LüÎ:DT[CºÇ¼ZîÇæ\x16Pän\x03 &ãY.Y3¡ô$N;y1Ü-úq¥\aem ÆOi+ýSéH·\x1a@\¦¥;âJ\x16n:OZXÄÙå\x06.\a)\lç÷*\x17ή\x1fà\x02÷d\x05®¡ãú9ùRqàN{³\x7fdâ´]F{Úä\x1eîC§¥Û¸¦éKÀ$"\aÖÂ\x11LX*f¸ª??\x1fÖÂ\x11LXf¸/7\x1fÒ@\x11S1FQm_^>$G¹kæT¨\x11\/Ðr>¬
#ZV~óa-Ä\x0eg/ù\å̾qu¤íï-çGÞrVõ3kk½ÌÄ5hÆï~f\x1c=2T<*Tøè\x11Q\x1a/§y\f°\r4y\x05pÙ>k4Ô¼?ȾÃ\x14³5ÁÎ+\Ràc¹¡¡²<j\bTlr$óƵÀ5\fÜël$pDÀ
ó·<ùi{Qá\x0fë@3]®VôD=aQºÚSúÓÓ[j\x05m\x0fØ\vÆO×{w\x1e\x1a¯aV\x10qa;GÄ\r¡pÉÔ×\x11g]·\x02LØ\x18\x06p¨©pac\x18ÄU]¸Ð2"pÎr\x04k»p¡Éã:Îú
&isÖ¯sÖï(^[×¶Qè
3êèT\vÝ
{;\x0fæU#\x17
\x05*<\vTCØ\x01\x17Ö\x05N_ÑR1È\x0e«ëG\x1fíÕ§Ó\x17JÛæÁkè¸U¤3\x17
\x1ce\x05\Í\x1cé9òD±Àæ¸a8}SÉqÉëN\x7f¼Áÿ\fÿol6$à:\x06NúLÌÌÏ\x10 ýìµ\bqF?SN\x15³p\x06_^çk÷#ݹÑ`´\x13<=dm\x12ÀÕÚU'ªã\x1f²jبÌk.5rø+QapT[_,¹\x0faÐy\vpDWñK\{>\b8"@ÖâÝ^ót0Ï\x12[ å´MÄ©Ñà\x1eL3zá+ÔWÎj½mÍ\x10³\x12æ×vÍ\x10áÁ\x0e¸)\väÀ"N¿üSî$fc\x10A¥R%\x1e[4×Ùº5áyI§1\0\fª´sKÿï:Á¢¤\x13îÞ]5b¨ªå\x14N9\x14¢É_ÞZtà¦$wK;´¸ä$ÝÄU'qÙMÜp\x12WÜÄK'qÕI\v¹æ&v¹î&vùÈM¼$NøÚà;'¯R¬*D\x06L"Ë:R\x04\x04ɬèH\bzeñ-U^[eó-5^[\x19\x16t\x15²n#â®B¦Þ\x1dÏ Yºí<\v=×\¦d\x1aú#W©§Èa2íÒk
\x06©ïHðѳ3 2\x1dç³{ö!²-\x03\x0eÝ\x03yÖóy®RäýòË_CÂCú|=!®pªiQß®y$Ýâj§yVí§m)´)öÓ±p\x18í¤J¬\0lÀ^[H6\x05Èÿ\x10PÃ\ròçòÔU,Ê\x01\x03P.Ùf¿\x1d\0Ä\x05Î>å*ÔË= è´0vÎ\f3SlÑ6w\x02z8OÃzutYC÷\x06¨b;\rz\0$èªø3íþ\x1då@74ôM1à\v&',ÕXo.
±)ºZ2ò\x1e²Ý\x01 æB7t4Ë4S;è$\x1a\x1a|ßN»Í\x0eûÏ|úÆ[\x04.h\x03\x18\x16ÌÙ{ìstÕ7Ô;µ@7L4ïkdȤìzÇÈ7':Ã#\x17q,ôìt6ɸ\x19"ÑU\x1d=hθCÉÑ\r;oVhÖäí&û7ÔaJ·¢Ú\x16ºÙ\x1agv¶Ò¨¶k¯2ÝnEµönN!6`Ö0aè/o¨ùx4ê¶½\x15`^[\x03\rý¬u:Í2r-Ý]h\x1c!Ùpî\x0eÚÁó7<
Î ¤T.Ý6$\x1a'lë×;qÃúj5\x7fLÔ$y\x10§ËÞäÛ½cî
ª9Ì9GÅ%¼æËÃ\x01$Îf_\x1cÍÌCXsú\x06t\n¼\x04¿ÍcÖÁ²Ñéô}ðºÍo¿±i\x02\x03\x17ô\b\x1aUà :sR=5¨H¬MMF)\x19t< ¯.ÇÔÄrné3¼Üå;î6_^eb\x15Hä§\x11%ÍØGn/,\x12Ö¥ßheªH\x11Cw0èïOÈ\x03&h°Yl\x14îQ\x0e9sæ4Owç»;m<":½´2×à?ô\4\x03YQârÕ¤\x1e\x1dhl)CSI®\b§\x19a¡5H®Zq`òêVsÑqWÙ|\a÷ý
8bÐö¬\x12DödÕ\x04¤rãN9DwÝ\v¨\\8¹I!¥/.´Æ4/[ _8\x12>s$|a'Loñ¶OS\x01Pi³²4\x1côà@/FÅJ^ôÍ*ò/ÙØÍ
ÉãÙI¿7×\x12vS#/\x1cıËù>Ë´Åg ©W<ÎLr:³ØgY ó~c\x13¡âõénÜT\0y}ÂÐ(X.@¤Q\x1ci\x14î\x1c\x04¡Yw4ëúV¥\x1ezÄ&)ë\vI¥`µYg\fþºNxIkƺ\x13"?3Èë\x19©3é\x1fÙä§³®J\x1c©=Ûl¶é\x03KF¾ò
÷ûÈÙȹg@¨VÑ-º\x03ÿ±]
Á\x1añ\#,\x04u\x1e\x1aéë\x0e]JhzÍÁ\O¯ÎW\x14M-îï"¦·^[âw,bM#Öà¼Ì×e Yo<\x1d65U\f:s<²Jul
>\r\x04Boê\x14O
wÇFQLT
¬»+Bî\x03û>}Z jrJÎÒLxB3R¥ûÁj?FyµÙàÃMt\x14-®Î£r#ºy¿ùxy\x1e-.\x7f]ÜÝDoWQLi\x17Ñf÷~µe>î0ÍXB\x18íåêb\x17-v\x10R|ññr\x17m.¢\x12%\f-TYÝHb37W¾
XÆ\x10¸=\x13\x1d%=Jê·OÚ!·¸\x16¸Ü(ÈI\s
â\x1dA\x15s\x0e^ÅÈ*|A\x17k'íkNZ-=ë| 0B¢·0Â;)mÚùâº;×Iÿõ´;éI\x19ÔIÚ\x1a\x18sjÙÌURvGMFl
¶\x1a)^Ç*ë#íÈ ëSïñD&*~$^[Ç*Xr;7\x1c¦\x16ÿ\x0eP¹^[2LêjG.c;ÚñB´#\x1c)-iDz;×\x01D
ÖÛ±^p\x06ÛQ£\f·#÷þrÜX \fÊÜ-©s³;ëNϺ\x1dÅv©¡Â\rôjo6bdÌ7ZýL]i¤©"(ºÚL` $ãi(°@\rt^[M2§^[~¥ ü*äì¥Ø[«®b®ÿ@úÎÔ\x0f©È\x06dlÞ\x14×|»zuà ?:6×mà9È\x10ÜfX N7OûyØNwì\x04\r÷l4äCÝèn;lH#ÐU7\x1aä¤îè8yí)@7DoVq\x0f¼<E
\x1e/\v=¶ö;^kZÇ~ÅDR&mô¬û÷Q;;wOÞ:Ú»C\x7f\x0eèæánfæ¼\r´/sö\x1dÐpDt:ÊTsxò\x06t\x0e\x15 ÑÝcw0]Þæ\x19iZw%c\x0epB~Ò÷ÇNríò %/;ɧ>ò|â+{ÕIÞ-{Èkî´<äu7g:\x137ù\x11\x05µè\x05²e¬aD\v\x1f¨BÏ{4\x1e!5½$q9Úì[ò\x13WÊ&qÌKé3(óv%\x02@ÊTá²æ
¹XX\x19¸\0±ØªHþ n\a3F\x18.©6\x11O>E¡_[9\x1eNÓ.7üm\x06®\x14:\a3Eϧ(':v¢GcÖÿ~êñØì:®¦è\0RC×ühô\\x15F\x1fYh¸+ðù\\x03t>®Å\x1et>®U=è|\«¹ÐÝÙ¼?Ê
,äí-ãÓi;óÚyðJ[¬9êmkÕÁ+\x1fõY£G`ç\x03Iï!ûOG½\ñ۳б~#'\v\x0f¨{ò6¢Äg¢ËFÉ]ÆÞùó¾\x1fºjäãúó¼RÔû>èX/9ܧH&\x0f.ëh¶õ\aÙ}ÆÃ5Îè3\x0eS\x17ÀEõA8w\x7fÞ\x02\x1dÌÝa(\x03è\x16\x06ÀçJÆö͵o{Up¥Õ?\x167S¦.ú¾\x11\x1ak<xúØr\x1f¸\rã0u\x01ô\x171yw\x15Ã8îy'ÝÎqv¨S!/k3\x0f¿Uñ\Ч¢Ã÷í.Ú¯¶7ëÍ\x15(\x16\x05°`ÏRO²|\x05Fkntpò¥o
£Ö3FÚ=ó6F\x1fÇÒ\v.Áµ£Ñdß/ñÎÀq-\x17ÜqèúýÐú\f\®Þ\x0f]ÓÐ(gß\x03]·¸L[JÐÚ!\x7f)ôFî¼^[μ3ð
ýÔæyröæôMµ\x1c(»B¿u ß0x>ôÒæyÒ|szÎl3Ñ+GÞMVój\b®Ð©JßÝ\aýN{<\b.ù\x02}N@Sðs>
Äg²ó¶ÑÉ\0.\x19f£c\v\r>\x19¥Vèn½w¹3\x19ÎZ8\x01Í<.À\x1c%'è\x01G\x0fýhËð\rVñè¬;ÅhàóîÐ?ØÈÜ\x1e\0«¶%~ZP³yYÊ;Ù\x1dCIãþy"ö¼ÙÌp¢\aݦÃY¾c \x024.Å·
ÎÈ»l¼\rîÝyæ¨7¢ÝyZèªUòÏÏ[¡sæÝÐÐ|à7n^[áñëÉ[CûǯCH§è8_Þå\0:;ï\v\x1dçw5ÎλæBWÊ\x19\x15èz\bíÍ\¢<èJ9¹cà@û2è§Þ\x12¬%záiï|è·\x16Ë^ºÐ¸<&¡\x04$üÜ\x1e¢9¤HÇÎH¢sHÒRÐ
Î"\x1dÚ$Î!E:´I\x12C\x14èº\x03C\x14è#\x1f:,EC)_Þ\x01¼@?õñ<,E
ô[/:(E
ôÒÇó°\x14)Ð+oÞA)RZb:Á\x1cr``\x11Í!\a
ãR\x17:\x1cÈÑ\x15k!Ë'\aúÁ|r GWM´-\a&O+%뮫cïìA×k>´UráÝcÚmg\x06Ïò£A\x14Í@WÂhä`sàÔ<ì«2®t^^[ÄÞp05O½Stð&^ɾh\ü\x04\x06ñH^A-E·\aÎ+\x1dk:°D÷\x11÷<hO¦
m]ò\x01´pÐ\x016\x1a¡Ü=y\x13té\x12 éWz?nyÈù¢\x10/ÚÔ\x04\x1eMÇ5JK4|Ún'òÊZøRò¼97\x125¨Äág,ÈÊ4a¨\x1az\x1f2ÌeRùe4Öoò æÕ8\x1e<^[ùtãé^[Á½r0T Ûän\x14ÃøÕmù¦#ÒÉÊ6w²¦#®¸Ñ¡é «Røaqó\vÖgá1Æ90|\x13tpDlôl4Ré\x1dK³a`6^[Za\a¹W.4ËÊtï«h*\x17K#!qx\rÇ*ª@K#»\x03å½\0L%É«\x03áË\x15ê@}·¼D4çãa¿NØ(ä÷\x1cê^[ê\x15ÂÈ/\x1fϯתØTG&ÕµEwdç©n*\x13ld\x10¾r\x11òù\x1d=£ÎHiÚ9@!ÃÃ\b"÷RµôÿY]¯/\x0eXJC\x13ìU\x7fúö|{¾=ßoÏ·çÛóíùö|{¾=ßoÏ·çÛóíùö|{¾=ßoÏ·çÛóíùö|{¾=ßÿçÿ\x03\x14ã;\0à\x01\0
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: DFP support for kernel radeonfb.c added
2001-11-14 17:52 Kevin B. Hendricks
@ 2001-11-14 18:20 ` Daniel Berlin
2001-11-14 18:28 ` Kevin B. Hendricks
0 siblings, 1 reply; 20+ messages in thread
From: Daniel Berlin @ 2001-11-14 18:20 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: linuxppc-dev
Just a note, on the tibook rev b, the EDID is in EDID1 for the LCD.
No idea if it'll make an EDID2/EDID if you plug in an external monitor.
>
> All of this depends on their being an EDID block in /proc under the Radeon
> device tree (it exists on my machine). You can simply look in /proc in
> the device_tree to see if one exists on your machine (need to have the
> monitor connected for it to be created).
>
> Since there are a lot of changes and since other people have submitted
> radeon patches recently, I have attached my complete files (radeonfb.c and
> radeon.h) in the form of a tar archive to this e-mail so that others may
> more easily understand the changes.
>
> I hope this helps others with flat panels but be warned I have only tested
> them on my own machine. So don't come back to me if your FP goes up in
> smoke. Use at your own RISK!
>
> BTW: Using a dviAtor, and an Apple 17 inch flat panel is a real blast and
> now all of my eye strain is gone!
>
> Have fun!
>
> Kevin
>
>
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 18:20 ` Daniel Berlin
@ 2001-11-14 18:28 ` Kevin B. Hendricks
2001-11-14 19:04 ` Daniel Berlin
0 siblings, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-14 18:28 UTC (permalink / raw)
To: Daniel Berlin; +Cc: linuxppc-dev
Hi Daniel,
On November 14, 2001 01:20, Daniel Berlin wrote:
> Just a note, on the tibook rev b, the EDID is in EDID1 for the LCD.
> No idea if it'll make an EDID2/EDID if you plug in an external monitor.
Arrgghh! Okay, I guess knowing the name of the OF EDID block is not going
to be easy!
My tree has both "DFP,EDID", and "LCD,DFP" so my code only looks for:
DFP,EDID
LCD,EDID
and
EDID
I will add "EDID1" also (and "EDID2") just to make sure nothing breaks
along the way.
Ben is correct here, perhaps we should do our own I2C to grab our own EDID
block directly from the monitor and not play the "what name did OF give
it" game.
I have not looked at the I2C code to see how complex it is. Does anyone
have any working code or sample code I can look at?
Thanks,
Kevin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 18:28 ` Kevin B. Hendricks
@ 2001-11-14 19:04 ` Daniel Berlin
2001-11-14 20:15 ` Kevin B. Hendricks
0 siblings, 1 reply; 20+ messages in thread
From: Daniel Berlin @ 2001-11-14 19:04 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: linuxppc-dev
On Wed, 14 Nov 2001, Kevin B. Hendricks wrote:
>
> Hi Daniel,
>
> On November 14, 2001 01:20, Daniel Berlin wrote:
> > Just a note, on the tibook rev b, the EDID is in EDID1 for the LCD.
> > No idea if it'll make an EDID2/EDID if you plug in an external monitor.
>
> Arrgghh! Okay, I guess knowing the name of the OF EDID block is not going
> to be easy!
>
> My tree has both "DFP,EDID", and "LCD,DFP" so my code only looks for:
>
> DFP,EDID
> LCD,EDID
> and
> EDID
>
> I will add "EDID1" also (and "EDID2") just to make sure nothing breaks
> along the way.
>
> Ben is correct here, perhaps we should do our own I2C to grab our own EDID
> block directly from the monitor and not play the "what name did OF give
> it" game.
The problem is that i can't seem to get this to work on the tibook2.
Strangely, osx appears to do it.
I'll bet it's bios rom related or something.
> I have not looked at the I2C code to see how complex it is. Does anyone
> have any working code or sample code I can look at?
Yes, I do.
At least, i have code that *should* work. I can't test it, of course.
Want it?
>
> Thanks,
>
> Kevin
>
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 19:04 ` Daniel Berlin
@ 2001-11-14 20:15 ` Kevin B. Hendricks
2001-11-14 20:19 ` Daniel Berlin
0 siblings, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-14 20:15 UTC (permalink / raw)
To: Daniel Berlin; +Cc: linuxppc-dev
Hi Daniel,
> > My tree has both "DFP,EDID", and "LCD,DFP" so my code only looks for:
> >
> > DFP,EDID
> > LCD,EDID
> > and
> > EDID
> >
> > I will add "EDID1" also (and "EDID2") just to make sure nothing breaks
> > along the way.
> >
> > Ben is correct here, perhaps we should do our own I2C to grab our own
> > EDID block directly from the monitor and not play the "what name did
> > OF give it" game.
>
> The problem is that i can't seem to get this to work on the tibook2.
> Strangely, osx appears to do it.
What doesn't work... is it my radeonfb.c version that doesn't work for you
or is it that OF storing EDID in the device tree is not working?
> I'll bet it's bios rom related or something.
If you run with my driver it will dump a lot of info to dmesg (printk)
that will tell us what EDID info was parsed, the timings, ... just about
everything I could look at to compare it against how things worked under
Mac OS 9.
> > I have not looked at the I2C code to see how complex it is. Does
> > anyone have any working code or sample code I can look at?
>
> Yes, I do.
>
> At least, i have code that *should* work. I can't test it, of course.
>
> Want it?
Sure....please send it along.
Thanks,
Kevin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 20:15 ` Kevin B. Hendricks
@ 2001-11-14 20:19 ` Daniel Berlin
2001-11-14 21:24 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 20+ messages in thread
From: Daniel Berlin @ 2001-11-14 20:19 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: linuxppc-dev
On Wed, 14 Nov 2001, Kevin B. Hendricks wrote:
> Hi Daniel,
>
> > > My tree has both "DFP,EDID", and "LCD,DFP" so my code only looks for:
> > >
> > > DFP,EDID
> > > LCD,EDID
> > > and
> > > EDID
> > >
> > > I will add "EDID1" also (and "EDID2") just to make sure nothing breaks
> > > along the way.
> > >
> > > Ben is correct here, perhaps we should do our own I2C to grab our own
> > > EDID block directly from the monitor and not play the "what name did
> > > OF give it" game.
> >
> > The problem is that i can't seem to get this to work on the tibook2.
> > Strangely, osx appears to do it.
>
> What doesn't work... is it my radeonfb.c version that doesn't work for you
No, I mean using i2c to grab it.
> > > I have not looked at the I2C code to see how complex it is. Does
> > > anyone have any working code or sample code I can look at?
> >
> > Yes, I do.
> >
> > At least, i have code that *should* work. I can't test it, of course.
> >
> > Want it?
>
> Sure....please send it along.
Give me a few minutes.
>
> Thanks,
>
> Kevin
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 20:19 ` Daniel Berlin
@ 2001-11-14 21:24 ` Benjamin Herrenschmidt
2001-11-14 21:54 ` Kevin B. Hendricks
2001-11-14 22:14 ` Daniel Berlin
0 siblings, 2 replies; 20+ messages in thread
From: Benjamin Herrenschmidt @ 2001-11-14 21:24 UTC (permalink / raw)
To: Daniel Berlin; +Cc: linuxppc-dev, Kevin B. Hendricks
>No, I mean using i2c to grab it.
I think OF uses the Radeon "GPIO" registers to probe the panel type based
on a wired panel ID and a table of EDIDs in the driver. At least, it did
it that way on mach64. I dumped a disassembly of the Rage M3 (r128 base)
MacOS 9 driver of my Pismo and started tracing it, it seem to play with
GPIOs as well. I didn't yet figure out the exact algorithm though.
Ben.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 21:24 ` Benjamin Herrenschmidt
@ 2001-11-14 21:54 ` Kevin B. Hendricks
2001-11-14 22:14 ` Benjamin Herrenschmidt
2001-11-14 22:14 ` Daniel Berlin
1 sibling, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-14 21:54 UTC (permalink / raw)
To: Benjamin Herrenschmidt, Daniel Berlin; +Cc: linuxppc-dev
Hi,
I did some reading up on it and it seems to change the sync(?) signal to
simulate a serial line and pass 9 bit bytes (with parity?) which are
collected to form the EDID block. Hopefully it won't be too complicated.
I don't understand if this is only done on monitor powerup or if it can be
done at any time by request or is it just sent continuously by the monitor.
Kevin
On November 14, 2001 04:24, Benjamin Herrenschmidt wrote:
> >No, I mean using i2c to grab it.
>
> I think OF uses the Radeon "GPIO" registers to probe the panel type
> based on a wired panel ID and a table of EDIDs in the driver. At least,
> it did it that way on mach64. I dumped a disassembly of the Rage M3
> (r128 base) MacOS 9 driver of my Pismo and started tracing it, it seem
> to play with GPIOs as well. I didn't yet figure out the exact algorithm
> though.
>
> Ben.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 21:54 ` Kevin B. Hendricks
@ 2001-11-14 22:14 ` Benjamin Herrenschmidt
2001-11-15 3:13 ` Kevin B. Hendricks
0 siblings, 1 reply; 20+ messages in thread
From: Benjamin Herrenschmidt @ 2001-11-14 22:14 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: linuxppc-dev, Daniel Berlin
>I did some reading up on it and it seems to change the sync(?) signal to
>simulate a serial line and pass 9 bit bytes (with parity?) which are
>collected to form the EDID block. Hopefully it won't be too complicated.
>
>I don't understand if this is only done on monitor powerup or if it can be
>done at any time by request or is it just sent continuously by the monitor.
What are you talking about ? Your DVI panel ? That's I2C, you have
one line doing the clock, one doing the data, there's some addressing
going on (first byte).
The Apple laptops _seem_ to be doing things differently. Unless you
figured something out I didn;t :)
Ben.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 22:14 ` Benjamin Herrenschmidt
@ 2001-11-15 3:13 ` Kevin B. Hendricks
2001-11-15 6:04 ` Daniel Berlin
0 siblings, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-15 3:13 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, Daniel Berlin
[-- Attachment #1: Type: text/plain, Size: 2262 bytes --]
Hi Ben,
Okay here it is as a patch against your latest rsync versions. I tried
not to touch any of Daniel's changes that should become redundant if the
EDID stuff works for everyone, they are still in there.
(see attached dfp_radeon.patch.gz)
FYI:
There are a few things I did change with how some fp registers are
intiialized that may impact others. Especially how timings are
calculated for MT_LCD and MT_DFP.
Previously the code had the following in radeon_load_video_mode()
which just does not look right at all.
if ((primary_mon == MT_DFP) || (primary_mon == MT_LCD)) {
...snip...
hTotal = mode->xres + rinfo->hblank + mode->left_margin;
hSyncStart = mode->xres + rinfo->hOver_plus +
mode->right_margin;
hSyncEnd = hSyncStart + rinfo->hOver_plus +
mode->hsync_len;
vTotal = mode->yres + rinfo->vblank + mode->upper_margin;
vSyncStart = mode->yres + rinfo->vOver_plus +
mode->lower_margin;
vSyncEnd = vSyncStart + rinfo->vSync_width +
mode->vsync_len;
}
But
HTotal = x active area + hblank
hSyncStart = x active area + offset to the sync (which is hOver_plus)
(I have no idea why mode->right margin is added - we are then adding the
same thing twice!)
There are similar confusions over vTotal, vSyncStart, and vSyncEnd. We
seem to be adding the same thing twice in many cases. The latest XF86
CVS HEAD radeon_driver, calculates things the way I do and not the way it
seems to be done here previously.
I just don't understand how this could have worked for LCD and it did not
work for DFP at all.
So my patch fixes this which might make a difference but should actually
make things better.
Anyway, please give it a try. I will send followup patches with other
fixes and additions I make to improve things but this should be enough to
get people working until the i2c stuff gets going.
So Daniel, if you get a chance, please try this. If it works, then we
have broken nothing for you and we can then decide if you want to move to
the more general case of using EDID info. If it does not work, please let
me know asap so I can back out my changes in groups until we identify what
is going wrong here.
Thanks,
Kevin
[-- Attachment #2: dfp_radeon.patch.gz --]
[-- Type: application/x-gzip, Size: 4639 bytes --]
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: DFP support for kernel radeonfb.c added
2001-11-15 3:13 ` Kevin B. Hendricks
@ 2001-11-15 6:04 ` Daniel Berlin
2001-11-15 12:16 ` Kevin B. Hendricks
0 siblings, 1 reply; 20+ messages in thread
From: Daniel Berlin @ 2001-11-15 6:04 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: Benjamin Herrenschmidt, linuxppc-dev
On Wed, 14 Nov 2001, Kevin B. Hendricks wrote:
>
> Anyway, please give it a try. I will send followup patches with other
> fixes and additions I make to improve things but this should be enough to
> get people working until the i2c stuff gets going.
>
> So Daniel, if you get a chance, please try this. If it works, then we
> have broken nothing for you and we can then decide if you want to move to
> the more general case of using EDID info. If it does not work, please let
> me know asap so I can back out my changes in groups until we identify what
> is going wrong here.
It works, but if i don't set the refdiv to 67 (like we do for the QD), i
get what looks like a very slow refresh rate (IE when you move the mouse
in X or cause a lot of screen updates on the console, you can see it's
going slower than it should).
I'll reboot a few times to verify this is indeed the cause.
> Thanks,
>
> Kevin
>
>
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-15 6:04 ` Daniel Berlin
@ 2001-11-15 12:16 ` Kevin B. Hendricks
2001-11-15 21:51 ` Daniel Berlin
0 siblings, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-15 12:16 UTC (permalink / raw)
To: Daniel Berlin; +Cc: Benjamin Herrenschmidt, linuxppc-dev
Hi,
That is interesting. I hard coded mine to 67 but the PLL probe code
returned 12. Ani said it should be 67 so I just assumed OF was not
setting up the card properly.
Pleaase let me know if that is indeed the issue.
Glad to hear it works basically!
Care to try with adding:
radeon:of_edid,lcd
to see how that does ( I already added in the searching for EDID1)
Thanks.
Kevin
On November 15, 2001 01:04, Daniel Berlin wrote:
> On Wed, 14 Nov 2001, Kevin B. Hendricks wrote:
> > Anyway, please give it a try. I will send followup patches with other
> > fixes and additions I make to improve things but this should be enough
> > to get people working until the i2c stuff gets going.
> >
> > So Daniel, if you get a chance, please try this. If it works, then we
> > have broken nothing for you and we can then decide if you want to move
> > to the more general case of using EDID info. If it does not work,
> > please let me know asap so I can back out my changes in groups until
> > we identify what is going wrong here.
>
> It works, but if i don't set the refdiv to 67 (like we do for the QD), i
> get what looks like a very slow refresh rate (IE when you move the mouse
> in X or cause a lot of screen updates on the console, you can see it's
> going slower than it should).
> I'll reboot a few times to verify this is indeed the cause.
>
> > Thanks,
> >
> > Kevin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-15 12:16 ` Kevin B. Hendricks
@ 2001-11-15 21:51 ` Daniel Berlin
2001-11-15 22:23 ` Kevin B. Hendricks
2001-11-16 13:00 ` Kevin B. Hendricks
0 siblings, 2 replies; 20+ messages in thread
From: Daniel Berlin @ 2001-11-15 21:51 UTC (permalink / raw)
To: Kevin B. Hendricks; +Cc: Benjamin Herrenschmidt, linuxppc-dev
On Thu, 15 Nov 2001, Kevin B. Hendricks wrote:
>
> Hi,
>
> That is interesting. I hard coded mine to 67 but the PLL probe code
> returned 12. Ani said it should be 67 so I just assumed OF was not
> setting up the card properly.
>
> Pleaase let me know if that is indeed the issue.
No, it's actually the setting of dfp parameters from the EDID that
causes problems
If i remove of_edid from the command line, it works great.
Add it back, and i get the flashing.
If i change the if (use_OF_EDID) in radeon_get_dfpinfo to if (0), all is
good again.
So something is wrong.
I thought it was just the refdiv because
>
> Glad to hear it works basically!
>
> Care to try with adding:
>
> radeon:of_edid,lcd
>
> to see how that does ( I already added in the searching for EDID1)
>
> Thanks.
>
> Kevin
>
> On November 15, 2001 01:04, Daniel Berlin wrote:
> > On Wed, 14 Nov 2001, Kevin B. Hendricks wrote:
> > > Anyway, please give it a try. I will send followup patches with other
> > > fixes and additions I make to improve things but this should be enough
> > > to get people working until the i2c stuff gets going.
> > >
> > > So Daniel, if you get a chance, please try this. If it works, then we
> > > have broken nothing for you and we can then decide if you want to move
> > > to the more general case of using EDID info. If it does not work,
> > > please let me know asap so I can back out my changes in groups until
> > > we identify what is going wrong here.
> >
> > It works, but if i don't set the refdiv to 67 (like we do for the QD), i
> > get what looks like a very slow refresh rate (IE when you move the mouse
> > in X or cause a lot of screen updates on the console, you can see it's
> > going slower than it should).
> > I'll reboot a few times to verify this is indeed the cause.
> >
> > > Thanks,
> > >
> > > Kevin
>
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-15 21:51 ` Daniel Berlin
@ 2001-11-15 22:23 ` Kevin B. Hendricks
2001-11-16 13:00 ` Kevin B. Hendricks
1 sibling, 0 replies; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-15 22:23 UTC (permalink / raw)
To: Daniel Berlin; +Cc: Benjamin Herrenschmidt, linuxppc-dev
Hi Daniel,
> No, it's actually the setting of dfp parameters from the EDID that
> causes problems
>
> If i remove of_edid from the command line, it works great.
> Add it back, and i get the flashing.
> If i change the if (use_OF_EDID) in radeon_get_dfpinfo to if (0), all is
> good again.
>
> So something is wrong.
Can you send me a copy of your /proc EDID1 one file (use hexdump to
convert it to hex) and I can run xxd -r to convert it back to binary and
run my edid parser on it.
That way we can compare your timings and dotclock in the EDID1 block to
the timing you use normally. Perhaps your EDID block has numerous timing
and the first is not the right one to use. My code only looks at the
first set of detailed timings but could be easily changed to grab them all.
My guess it is defintely timing related. You also might want to turn
debug on in radeonfb.c so that we can see what timings are actually being
used under both methods.
Thanks for testing it!
Kevin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-15 21:51 ` Daniel Berlin
2001-11-15 22:23 ` Kevin B. Hendricks
@ 2001-11-16 13:00 ` Kevin B. Hendricks
2001-11-16 13:47 ` Benjamin Herrenschmidt
1 sibling, 1 reply; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-16 13:00 UTC (permalink / raw)
To: Daniel Berlin; +Cc: Benjamin Herrenschmidt, linuxppc-dev
Hi Daniel,
I looked at the EDID info for my normal Apple 17" multisync monitor and
when I look at the detailed timing section the timings provided are not
"good" to day the least.
Mode "832x624" # vfreq 74.546Hz, hfreq 49.722kHz
Mode "1600x1200" # vfreq 59.944Hz, hfreq 74.931kHz
The 75hz 832x624 size seems strange to me and the 60 hz 1600x1200 would
just be a terrible refresh rate.
The list of standard VESA timings seems okay and we could parse and check
which of these are available in macmodes.
What does the EDID from your LCD look like?
If its detailed timing sections is as strange as this one, that may
explain its poor performance.
Interestingly, on the DFP's there are NO standard or VESA timings at all
in the EDID and there is only 1 detailed timing section that pretty much
explains everything.
Perhaps we should only recommend using of_edid with DFP and not LCD?
Anyway here is what my EDID from the Apple 17" multisync monitor says:
[kbhend@localhost ddc]$ ./edid r128edid.dat
Manufacturer: APP Model: 9d02 Serial#: 16843009
Year: 1999 Week: 14
EDID Version: 1.1
Analog Display Input, Input Voltage Level: 0.700/0.700 V
Sync: Separate
Max H-Image Size [cm]: horiz.: 32 vert.: 24
Gamma: 1.40
DPMS capabilities: StandBy Suspend Off; RGB/Color Display
redX: 0.625 redY: 0.340 greenX: 0.290 greenY: 0.605
blueX: 0.150 blueY: 0.070 whiteX: 0.283 whiteY: 0.298
Supported VESA Video Modes:
640x480@60Hz
640x480@67Hz
800x600@60Hz
832x624@75Hz
1024x768@60Hz
1024x768@75Hz
1280x1024@75Hz
1152x870@75Hz
Manufacturer's mask: 0
Supported Future Video Modes:
#0: hsize: 640 vsize 480 refresh: 85 vid: 22833
#1: hsize: 800 vsize 600 refresh: 85 vid: 22853
#2: hsize: 1024 vsize 768 refresh: 85 vid: 22881
#3: hsize: 1600 vsize 1200 refresh: 60 vid: 16553
Supported additional Video Mode:
clock: 57.3 MHz Image Size: 312 x 234 mm
h_active: 832 h_sync: 864 h_sync_end 928 h_blank_end 1152 h_border: 0
v_active: 624 v_sync: 626 v_sync_end 629 v_blanking: 667 v_border: 0
NON-INTERLACED
sync type: 3 misc: 0
-HSync -VSync
Supported additional Video Mode:
clock: 162.0 MHz Image Size: 312 x 234 mm
h_active: 1600 h_sync: 1664 h_sync_end 1858 h_blank_end 2162 h_border: 0
v_active: 1200 v_sync: 1201 v_sync_end 1204 v_blanking: 1250 v_border: 0
NON-INTERLACED
sync type: 3 misc: 0
-HSync -VSync
Ranges: V min: 48 V max: 160 Hz, H min: 30 H max: 85 kHz, PixClock max
160 MHzMonitor name: StudioDsply17
[kbhend@localhost ddc]$
For comparison, here is what my Apple 17" DFP says in its EDID:
[kbhend@localhost ddc]$ ./edid edid1.dat
Manufacturer: APP Model: 9217 Serial#: 50201135
Year: 2001 Week: 33
EDID Version: 1.2
Digital Display Input
Max H-Image Size [cm]: horiz.: 33 vert.: 27
Gamma: 2.35
DPMS capabilities: Off; RGB/Color Display
redX: 0.631 redY: 0.351 greenX: 0.301 greenY: 0.570
blueX: 0.141 blueY: 0.096 whiteX: 0.311 whiteY: 0.330
Manufacturer's mask: 0
Supported Future Video Modes:
#0: hsize: 1280 vsize 1024 refresh: 60 vid: 32897
Supported additional Video Mode:
clock: 108.0 MHz Image Size: 337 x 270 mm
h_active: 1280 h_sync: 1408 h_sync_end 1520 h_blank_end 1688 h_border: 0
v_active: 1024 v_sync: 1028 v_sync_end 1031 v_blanking: 1066 v_border: 0
NON-INTERLACED
sync type: 3 misc: 0
-HSync -VSync
Monitor name: Apple Studio
Monitor name: Display
[kbhend@localhost ddc]$
What do people think? Should we only be using EDID info for DFP and not
LCD?
At least with LCD's we can identify the machine type (as Daniel has done)
and hard code a dsiplay mode for each machine type).
Thanks,
Kevin
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread* Re: DFP support for kernel radeonfb.c added
2001-11-16 13:00 ` Kevin B. Hendricks
@ 2001-11-16 13:47 ` Benjamin Herrenschmidt
0 siblings, 0 replies; 20+ messages in thread
From: Benjamin Herrenschmidt @ 2001-11-16 13:47 UTC (permalink / raw)
To: Kevin B. Hendricks, linuxppc-dev, Daniel Berlin
>Hi Daniel,
>
>I looked at the EDID info for my normal Apple 17" multisync monitor and
>when I look at the detailed timing section the timings provided are not
>"good" to day the least.
>
> Mode "832x624" # vfreq 74.546Hz, hfreq 49.722kHz
> Mode "1600x1200" # vfreq 59.944Hz, hfreq 74.931kHz
>
>The 75hz 832x624 size seems strange to me and the 60 hz 1600x1200 would
>just be a terrible refresh rate.
The 832x624 timing is a common "Apple" timing. The 1600x1200 is probably
just the maximum supported, don't you think ?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 21:24 ` Benjamin Herrenschmidt
2001-11-14 21:54 ` Kevin B. Hendricks
@ 2001-11-14 22:14 ` Daniel Berlin
2001-11-14 22:32 ` Kevin B. Hendricks
1 sibling, 1 reply; 20+ messages in thread
From: Daniel Berlin @ 2001-11-14 22:14 UTC (permalink / raw)
To: Benjamin Herrenschmidt; +Cc: linuxppc-dev, Kevin B. Hendricks
On Wed, 14 Nov 2001, Benjamin Herrenschmidt wrote:
>
> >No, I mean using i2c to grab it.
>
> I think OF uses the Radeon "GPIO" registers to probe the panel type based
> on a wired panel ID and a table of EDIDs in the driver. At least, it did
> it that way on mach64. I dumped a disassembly of the Rage M3 (r128 base)
> MacOS 9 driver of my Pismo and started tracing it, it seem to play with
> GPIOs as well. I didn't yet figure out the exact algorithm though.
Well, the GPIO's are used to control i2c as well (gpio 0 and 3, if i
remember right), so it might just be a red herring.
>
> Ben.
>
>
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: DFP support for kernel radeonfb.c added
2001-11-14 22:14 ` Daniel Berlin
@ 2001-11-14 22:32 ` Kevin B. Hendricks
0 siblings, 0 replies; 20+ messages in thread
From: Kevin B. Hendricks @ 2001-11-14 22:32 UTC (permalink / raw)
To: Daniel Berlin, Benjamin Herrenschmidt; +Cc: linuxppc-dev
Hi Daniel,
I am working my patch into Ben's tree right now and there are some changes
you made to set the default video mode specific to your powerbook that
won't be needed if the OF EDID thing works for you. (hopefully not a big
if!)
Do you want me to leave them as is, or do you want me to remove just those
pieces so that you can give the of_edid approach a try since it should be
more generic?
It is your call. Just let me know what you would prefer.
Either way is fine with me
Below is an example of what I mean. If the EDID thing works then the
correct video mode will be calculated and stored right into the
radeonfb_default_var structure changing it from 640x480 to whatever your
EDID block specified. This allows us to do the following:
static int radeon_init_disp_var (struct radeonfb_info *rinfo)
{
#ifdef __powerpc__
if (use_OF_EDID) {
/* use the default var modified by the EDID info */
rinfo->disp.var = radeonfb_default_var;
if (noaccel)
rinfo->disp.var.accel_flags &= ~FB_ACCELF_TEXT;
else
rinfo->disp.var.accel_flags |= FB_ACCELF_TEXT;
return 0;
}
#endif
#ifndef MODULE
if (mode_option)
fb_find_mode (&rinfo->disp.var, &rinfo->info, mo\de_option,
NULL, 0, NULL, 8);
else
#endif
#ifdef CONFIG_ALL_PPC
if (machine_is_compatible("PowerBook3,3")) {
default_vmode = VMODE_1152_768_60;
default_cmode = CMODE_8;
if (mac_vmode_to_var(default_vmode,
defa\ult_cmode, &rinfo->disp.var))
rinfo->disp.var = radeonfb_defau\lt_var;
}
else
#endif
So your ifdef CONFIG_ALL_PPC case won't really be needed anymore.
Should I remove it or do you want that special case included?
Thanks,
Kevin
On November 14, 2001 05:14, Daniel Berlin wrote:
> On Wed, 14 Nov 2001, Benjamin Herrenschmidt wrote:
> > >No, I mean using i2c to grab it.
> >
> > I think OF uses the Radeon "GPIO" registers to probe the panel type
> > based on a wired panel ID and a table of EDIDs in the driver. At
> > least, it did it that way on mach64. I dumped a disassembly of the
> > Rage M3 (r128 base) MacOS 9 driver of my Pismo and started tracing it,
> > it seem to play with GPIOs as well. I didn't yet figure out the exact
> > algorithm though.
>
> Well, the GPIO's are used to control i2c as well (gpio 0 and 3, if i
> remember right), so it might just be a red herring.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2001-11-16 13:47 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-11-15 18:23 DFP support for kernel radeonfb.c added ghannon
2001-11-15 18:44 ` Kevin Hendricks
-- strict thread matches above, loose matches on Subject: below --
2001-11-14 17:52 Kevin B. Hendricks
2001-11-14 18:20 ` Daniel Berlin
2001-11-14 18:28 ` Kevin B. Hendricks
2001-11-14 19:04 ` Daniel Berlin
2001-11-14 20:15 ` Kevin B. Hendricks
2001-11-14 20:19 ` Daniel Berlin
2001-11-14 21:24 ` Benjamin Herrenschmidt
2001-11-14 21:54 ` Kevin B. Hendricks
2001-11-14 22:14 ` Benjamin Herrenschmidt
2001-11-15 3:13 ` Kevin B. Hendricks
2001-11-15 6:04 ` Daniel Berlin
2001-11-15 12:16 ` Kevin B. Hendricks
2001-11-15 21:51 ` Daniel Berlin
2001-11-15 22:23 ` Kevin B. Hendricks
2001-11-16 13:00 ` Kevin B. Hendricks
2001-11-16 13:47 ` Benjamin Herrenschmidt
2001-11-14 22:14 ` Daniel Berlin
2001-11-14 22:32 ` Kevin B. Hendricks
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).