Advertisement
Guest User

Untitled

a guest
May 11th, 2017
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.66 KB | None | 0 0
  1. commit 67bc2ae7f227a2afedc8e699cf0458fa7960f301
  2. Author: Julien Cristau <jcristau@debian.org>
  3. Date: Sun Oct 26 16:05:04 2008 +0100
  4.  
  5. Bug#7148: Fix manpage formatting
  6.  
  7. diff --git a/man/radeon.man b/man/radeon.man
  8. index 68029ed..e18c820 100644
  9. --- a/man/radeon.man
  10. +++ b/man/radeon.man
  11. @@ -516,7 +516,6 @@ This option allows you to disable int10 initialization. Set this to
  12. False if you are experiencing a hang when initializing a secondary card.
  13. The default is
  14. .B on.
  15. -.TP
  16.  
  17. .SH SEE ALSO
  18. __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
  19.  
  20. commit 98fdd78a1229584b922f816f331a45bfc178c961
  21. Author: Dave Airlie <airlied@linux.ie>
  22. Date: Tue Oct 21 18:36:22 2008 +1000
  23.  
  24. atombios: oops typo
  25.  
  26. diff --git a/src/atombios_output.c b/src/atombios_output.c
  27. index fb52d17..49de04f 100644
  28. --- a/src/atombios_output.c
  29. +++ b/src/atombios_output.c
  30. @@ -332,7 +332,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  31. }
  32. if (radeon_output->type == OUTPUT_HDMI)
  33. disp_data2.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
  34. - disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  35. + disp_data2.usPixelClock = cpu_to_le16(mode->Clock / 10);
  36. disp_data2.ucTruncate = 0;
  37. disp_data2.ucSpatial = 0;
  38. disp_data2.ucTemporal = 0;
  39.  
  40. commit 763dff6c117a10b6a57ba1854c5b798359789e44
  41. Author: Dave Airlie <airlied@linux.ie>
  42. Date: Tue Oct 21 18:35:44 2008 +1000
  43.  
  44. atombios: set missing pixel clock
  45.  
  46. diff --git a/src/atombios_output.c b/src/atombios_output.c
  47. index 24acbd7..fb52d17 100644
  48. --- a/src/atombios_output.c
  49. +++ b/src/atombios_output.c
  50. @@ -332,6 +332,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  51. }
  52. if (radeon_output->type == OUTPUT_HDMI)
  53. disp_data2.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
  54. + disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  55. disp_data2.ucTruncate = 0;
  56. disp_data2.ucSpatial = 0;
  57. disp_data2.ucTemporal = 0;
  58.  
  59. commit 435cf7da68186f2601c4b888296117d4f652c625
  60. Author: Alex Deucher <alexdeucher@gmail.com>
  61. Date: Wed Oct 15 10:52:14 2008 -0400
  62.  
  63. Add LCD dithering quirk for macbook pro
  64.  
  65. fixes bug 17897.
  66.  
  67. diff --git a/src/atombios_output.c b/src/atombios_output.c
  68. index 148a1da..24acbd7 100644
  69. --- a/src/atombios_output.c
  70. +++ b/src/atombios_output.c
  71. @@ -43,6 +43,8 @@
  72. #include "radeon_macros.h"
  73. #include "radeon_atombios.h"
  74.  
  75. +#include "ati_pciids_gen.h"
  76. +
  77. static int
  78. atombios_output_dac1_setup(xf86OutputPtr output, DisplayModePtr mode)
  79. {
  80. @@ -894,6 +896,30 @@ atombios_set_output_crtc_source(xf86OutputPtr output)
  81. return;
  82. }
  83.  
  84. +static void
  85. +atombios_apply_output_quirks(xf86OutputPtr output)
  86. +{
  87. + RADEONOutputPrivatePtr radeon_output = output->driver_private;
  88. + RADEONInfoPtr info = RADEONPTR(output->scrn);
  89. + unsigned char *RADEONMMIO = info->MMIO;
  90. +
  91. + /* Funky macbooks */
  92. + if ((info->Chipset == PCI_CHIP_RV530_71C5) &&
  93. + (PCI_SUB_VENDOR_ID(info->PciInfo) == 0x106b) &&
  94. + (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x0080)) {
  95. + if (radeon_output->MonType == MT_LCD) {
  96. + if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) {
  97. + uint32_t lvtma_bit_depth_control = INREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL);
  98. +
  99. + lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_TRUNCATE_EN;
  100. + lvtma_bit_depth_control &= ~AVIVO_LVTMA_BIT_DEPTH_CONTROL_SPATIAL_DITHER_EN;
  101. +
  102. + OUTREG(AVIVO_LVTMA_BIT_DEPTH_CONTROL, lvtma_bit_depth_control);
  103. + }
  104. + }
  105. + }
  106. +}
  107. +
  108. void
  109. atombios_output_mode_set(xf86OutputPtr output,
  110. DisplayModePtr mode,
  111. @@ -955,7 +981,7 @@ atombios_output_mode_set(xf86OutputPtr output,
  112. atombios_output_dac2_setup(output, adjusted_mode);
  113. atombios_output_tv1_setup(output, adjusted_mode);
  114. }
  115. -
  116. + atombios_apply_output_quirks(output);
  117. }
  118.  
  119. static AtomBiosResult
  120.  
  121. commit c0e6cb6d0eeef8f2ea60d840e1cd668fa92cd7f9
  122. Author: Alex Deucher <alexdeucher@gmail.com>
  123. Date: Fri Oct 10 11:09:27 2008 -0400
  124.  
  125. Fix grey level dithering setup
  126.  
  127. diff --git a/src/atombios_output.c b/src/atombios_output.c
  128. index a770177..148a1da 100644
  129. --- a/src/atombios_output.c
  130. +++ b/src/atombios_output.c
  131. @@ -346,7 +346,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  132. disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN;
  133. if (radeon_output->lvds_misc & (1 << 1))
  134. disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH;
  135. - if (((radeon_output->lvds_misc >> 2) & 0x3) == 4)
  136. + if (((radeon_output->lvds_misc >> 2) & 0x3) == 2)
  137. disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4;
  138. }
  139. } else {
  140.  
  141. commit 9eb2b6cd28224f0cbbabf3df451696ae1a845b9c
  142. Author: Dave Airlie <airlied@redhat.com>
  143. Date: Fri Oct 10 16:18:05 2008 +1000
  144.  
  145. radeon: hopefully fix plls for 30" monitors.
  146.  
  147. Only do the HIGH trick on the DCE3 cards. Tested on rv610/630/770.
  148.  
  149. diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c
  150. index 3f2e113..4e2395f 100644
  151. --- a/src/atombios_crtc.c
  152. +++ b/src/atombios_crtc.c
  153. @@ -224,7 +224,7 @@ atombios_crtc_set_pll(xf86CrtcPtr crtc, DisplayModePtr mode, int pll_flags)
  154. if (IS_AVIVO_VARIANT) {
  155. uint32_t temp;
  156.  
  157. - if (mode->Clock > 200000) /* range limits??? */
  158. + if (IS_DCE3_VARIANT && mode->Clock > 200000) /* range limits??? */
  159. pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV;
  160. else
  161. pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV;
  162.  
  163. commit 0975e007ec7933acf9cd8ad2f281313ef8d32ac9
  164. Author: Dave Airlie <airlied@redhat.com>
  165. Date: Thu Oct 9 17:16:28 2008 +1100
  166.  
  167. radeon: rename radeon_memory to radeon_legacy_memory.
  168.  
  169. This is a setup patch for the kms/memory management code.
  170.  
  171. diff --git a/src/Makefile.am b/src/Makefile.am
  172. index c79b635..d65a3e4 100644
  173. --- a/src/Makefile.am
  174. +++ b/src/Makefile.am
  175. @@ -88,7 +88,7 @@ radeon_drv_la_LTLIBRARIES = radeon_drv.la
  176. radeon_drv_la_LDFLAGS = -module -avoid-version
  177. radeon_drv_ladir = @moduledir@/drivers
  178. radeon_drv_la_SOURCES = \
  179. - radeon_accel.c radeon_cursor.c radeon_dga.c radeon_memory.c \
  180. + radeon_accel.c radeon_cursor.c radeon_dga.c radeon_legacy_memory.c \
  181. radeon_driver.c radeon_video.c radeon_bios.c radeon_mm_i2c.c \
  182. radeon_vip.c radeon_misc.c radeon_probe.c \
  183. legacy_crtc.c legacy_output.c \
  184. diff --git a/src/radeon.h b/src/radeon.h
  185. index aec8a25..f7ae1a8 100644
  186. --- a/src/radeon.h
  187. +++ b/src/radeon.h
  188. @@ -1068,15 +1068,15 @@ extern void RADEONUpdateHVPosition(xf86OutputPtr output, DisplayModePtr mode);
  189. extern void RADEONInitVideo(ScreenPtr pScreen);
  190. extern void RADEONResetVideo(ScrnInfoPtr pScrn);
  191.  
  192. -/* radeon_memory.c */
  193. +/* radeon_legacy_memory.c */
  194. extern uint32_t
  195. -radeon_allocate_memory(ScrnInfoPtr pScrn,
  196. - void **mem_struct,
  197. - int size,
  198. - int align);
  199. +radeon_legacy_allocate_memory(ScrnInfoPtr pScrn,
  200. + void **mem_struct,
  201. + int size,
  202. + int align);
  203. extern void
  204. -radeon_free_memory(ScrnInfoPtr pScrn,
  205. - void *mem_struct);
  206. +radeon_legacy_free_memory(ScrnInfoPtr pScrn,
  207. + void *mem_struct);
  208.  
  209. #ifdef XF86DRI
  210. # ifdef USE_XAA
  211. diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
  212. index 99992fc..9040bae 100644
  213. --- a/src/radeon_crtc.c
  214. +++ b/src/radeon_crtc.c
  215. @@ -418,7 +418,7 @@ radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
  216. * setter for offscreen area locking in EXA currently. So, we just
  217. * allocate offscreen memory and fake up a pixmap header for it.
  218. */
  219. - rotate_offset = radeon_allocate_memory(pScrn, &radeon_crtc->crtc_rotate_mem, size, align);
  220. + rotate_offset = radeon_legacy_allocate_memory(pScrn, &radeon_crtc->crtc_rotate_mem, size, align);
  221. if (rotate_offset == 0)
  222. return NULL;
  223.  
  224. @@ -466,7 +466,7 @@ radeon_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data
  225. FreeScratchPixmapHeader(rotate_pixmap);
  226.  
  227. if (data) {
  228. - radeon_free_memory(pScrn, radeon_crtc->crtc_rotate_mem);
  229. + radeon_legacy_free_memory(pScrn, radeon_crtc->crtc_rotate_mem);
  230. radeon_crtc->crtc_rotate_mem = NULL;
  231. }
  232.  
  233. diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
  234. index 22a33d6..08bfddf 100644
  235. --- a/src/radeon_cursor.c
  236. +++ b/src/radeon_cursor.c
  237. @@ -341,7 +341,7 @@ Bool RADEONCursorInit(ScreenPtr pScreen)
  238. RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
  239.  
  240. radeon_crtc->cursor_offset =
  241. - radeon_allocate_memory(pScrn, &radeon_crtc->cursor_mem, size_bytes, align);
  242. + radeon_legacy_allocate_memory(pScrn, &radeon_crtc->cursor_mem, size_bytes, align);
  243.  
  244. if (radeon_crtc->cursor_offset == 0)
  245. return FALSE;
  246. diff --git a/src/radeon_legacy_memory.c b/src/radeon_legacy_memory.c
  247. new file mode 100644
  248. index 0000000..2a9ee94
  249. --- /dev/null
  250. +++ b/src/radeon_legacy_memory.c
  251. @@ -0,0 +1,117 @@
  252. +
  253. +#ifdef HAVE_CONFIG_H
  254. +#include "config.h"
  255. +#endif
  256. +
  257. +/* Driver data structures */
  258. +#include "radeon.h"
  259. +
  260. +/* Allocates memory, either by resizing the allocation pointed to by mem_struct,
  261. + * or by freeing mem_struct (if non-NULL) and allocating a new space. The size
  262. + * is measured in bytes, and the offset from the beginning of card space is
  263. + * returned.
  264. + */
  265. +uint32_t
  266. +radeon_legacy_allocate_memory(ScrnInfoPtr pScrn,
  267. + void **mem_struct,
  268. + int size,
  269. + int align)
  270. +{
  271. + ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
  272. + RADEONInfoPtr info = RADEONPTR(pScrn);
  273. + uint32_t offset = 0;
  274. +
  275. +#ifdef USE_EXA
  276. + if (info->useEXA) {
  277. + ExaOffscreenArea *area = *mem_struct;
  278. +
  279. + if (area != NULL) {
  280. + if (area->size >= size)
  281. + return area->offset;
  282. +
  283. + exaOffscreenFree(pScreen, area);
  284. + }
  285. +
  286. + area = exaOffscreenAlloc(pScreen, size, align, TRUE,
  287. + NULL, NULL);
  288. +
  289. + *mem_struct = area;
  290. + if (area == NULL)
  291. + return 0;
  292. + offset = area->offset;
  293. + }
  294. +#endif /* USE_EXA */
  295. +#ifdef USE_XAA
  296. + if (!info->useEXA) {
  297. + FBLinearPtr linear = *mem_struct;
  298. + int cpp = info->CurrentLayout.bitsPerPixel / 8;
  299. +
  300. + /* XAA allocates in units of pixels at the screen bpp, so adjust size
  301. + * appropriately.
  302. + */
  303. + size = (size + cpp - 1) / cpp;
  304. + align = (align + cpp - 1) / cpp;
  305. +
  306. + if (linear) {
  307. + if(linear->size >= size)
  308. + return linear->offset * cpp;
  309. +
  310. + if(xf86ResizeOffscreenLinear(linear, size))
  311. + return linear->offset * cpp;
  312. +
  313. + xf86FreeOffscreenLinear(linear);
  314. + }
  315. +
  316. + linear = xf86AllocateOffscreenLinear(pScreen, size, align,
  317. + NULL, NULL, NULL);
  318. + *mem_struct = linear;
  319. +
  320. + if (!linear) {
  321. + int max_size;
  322. +
  323. + xf86QueryLargestOffscreenLinear(pScreen, &max_size, align,
  324. + PRIORITY_EXTREME);
  325. +
  326. + if (max_size < size)
  327. + return 0;
  328. +
  329. + xf86PurgeUnlockedOffscreenAreas(pScreen);
  330. + linear = xf86AllocateOffscreenLinear(pScreen, size, align,
  331. + NULL, NULL, NULL);
  332. + *mem_struct = linear;
  333. + if (!linear)
  334. + return 0;
  335. + }
  336. + offset = linear->offset * cpp;
  337. + }
  338. +#endif /* USE_XAA */
  339. +
  340. + return offset;
  341. +}
  342. +
  343. +void
  344. +radeon_legacy_free_memory(ScrnInfoPtr pScrn,
  345. + void *mem_struct)
  346. +{
  347. + ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
  348. + RADEONInfoPtr info = RADEONPTR(pScrn);
  349. +
  350. +#ifdef USE_EXA
  351. + if (info->useEXA) {
  352. + ExaOffscreenArea *area = mem_struct;
  353. +
  354. + if (area != NULL)
  355. + exaOffscreenFree(pScreen, area);
  356. + area = NULL;
  357. + }
  358. +#endif /* USE_EXA */
  359. +#ifdef USE_XAA
  360. + if (!info->useEXA) {
  361. + FBLinearPtr linear = mem_struct;
  362. +
  363. + if (linear != NULL)
  364. + xf86FreeOffscreenLinear(linear);
  365. + linear = NULL;
  366. + }
  367. +#endif /* USE_XAA */
  368. +}
  369. diff --git a/src/radeon_memory.c b/src/radeon_memory.c
  370. deleted file mode 100644
  371. index f965cb4..0000000
  372. --- a/src/radeon_memory.c
  373. +++ /dev/null
  374. @@ -1,117 +0,0 @@
  375. -
  376. -#ifdef HAVE_CONFIG_H
  377. -#include "config.h"
  378. -#endif
  379. -
  380. -/* Driver data structures */
  381. -#include "radeon.h"
  382. -
  383. -/* Allocates memory, either by resizing the allocation pointed to by mem_struct,
  384. - * or by freeing mem_struct (if non-NULL) and allocating a new space. The size
  385. - * is measured in bytes, and the offset from the beginning of card space is
  386. - * returned.
  387. - */
  388. -uint32_t
  389. -radeon_allocate_memory(ScrnInfoPtr pScrn,
  390. - void **mem_struct,
  391. - int size,
  392. - int align)
  393. -{
  394. - ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
  395. - RADEONInfoPtr info = RADEONPTR(pScrn);
  396. - uint32_t offset = 0;
  397. -
  398. -#ifdef USE_EXA
  399. - if (info->useEXA) {
  400. - ExaOffscreenArea *area = *mem_struct;
  401. -
  402. - if (area != NULL) {
  403. - if (area->size >= size)
  404. - return area->offset;
  405. -
  406. - exaOffscreenFree(pScreen, area);
  407. - }
  408. -
  409. - area = exaOffscreenAlloc(pScreen, size, align, TRUE,
  410. - NULL, NULL);
  411. -
  412. - *mem_struct = area;
  413. - if (area == NULL)
  414. - return 0;
  415. - offset = area->offset;
  416. - }
  417. -#endif /* USE_EXA */
  418. -#ifdef USE_XAA
  419. - if (!info->useEXA) {
  420. - FBLinearPtr linear = *mem_struct;
  421. - int cpp = info->CurrentLayout.bitsPerPixel / 8;
  422. -
  423. - /* XAA allocates in units of pixels at the screen bpp, so adjust size
  424. - * appropriately.
  425. - */
  426. - size = (size + cpp - 1) / cpp;
  427. - align = (align + cpp - 1) / cpp;
  428. -
  429. - if (linear) {
  430. - if(linear->size >= size)
  431. - return linear->offset * cpp;
  432. -
  433. - if(xf86ResizeOffscreenLinear(linear, size))
  434. - return linear->offset * cpp;
  435. -
  436. - xf86FreeOffscreenLinear(linear);
  437. - }
  438. -
  439. - linear = xf86AllocateOffscreenLinear(pScreen, size, align,
  440. - NULL, NULL, NULL);
  441. - *mem_struct = linear;
  442. -
  443. - if (!linear) {
  444. - int max_size;
  445. -
  446. - xf86QueryLargestOffscreenLinear(pScreen, &max_size, align,
  447. - PRIORITY_EXTREME);
  448. -
  449. - if (max_size < size)
  450. - return 0;
  451. -
  452. - xf86PurgeUnlockedOffscreenAreas(pScreen);
  453. - linear = xf86AllocateOffscreenLinear(pScreen, size, align,
  454. - NULL, NULL, NULL);
  455. - *mem_struct = linear;
  456. - if (!linear)
  457. - return 0;
  458. - }
  459. - offset = linear->offset * cpp;
  460. - }
  461. -#endif /* USE_XAA */
  462. -
  463. - return offset;
  464. -}
  465. -
  466. -void
  467. -radeon_free_memory(ScrnInfoPtr pScrn,
  468. - void *mem_struct)
  469. -{
  470. - ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex];
  471. - RADEONInfoPtr info = RADEONPTR(pScrn);
  472. -
  473. -#ifdef USE_EXA
  474. - if (info->useEXA) {
  475. - ExaOffscreenArea *area = mem_struct;
  476. -
  477. - if (area != NULL)
  478. - exaOffscreenFree(pScreen, area);
  479. - area = NULL;
  480. - }
  481. -#endif /* USE_EXA */
  482. -#ifdef USE_XAA
  483. - if (!info->useEXA) {
  484. - FBLinearPtr linear = mem_struct;
  485. -
  486. - if (linear != NULL)
  487. - xf86FreeOffscreenLinear(linear);
  488. - linear = NULL;
  489. - }
  490. -#endif /* USE_XAA */
  491. -}
  492. diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
  493. index 4005df9..c185b46 100644
  494. --- a/src/radeon_textured_video.c
  495. +++ b/src/radeon_textured_video.c
  496. @@ -197,14 +197,14 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
  497. dstPitch = (dstPitch + 15) & ~15;
  498.  
  499. if (pPriv->video_memory != NULL && size != pPriv->size) {
  500. - radeon_free_memory(pScrn, pPriv->video_memory);
  501. + radeon_legacy_free_memory(pScrn, pPriv->video_memory);
  502. pPriv->video_memory = NULL;
  503. }
  504.  
  505. if (pPriv->video_memory == NULL) {
  506. - pPriv->video_offset = radeon_allocate_memory(pScrn,
  507. - &pPriv->video_memory,
  508. - size * 2, 64);
  509. + pPriv->video_offset = radeon_legacy_allocate_memory(pScrn,
  510. + &pPriv->video_memory,
  511. + size * 2, 64);
  512. if (pPriv->video_offset == 0)
  513. return BadAlloc;
  514. }
  515. @@ -213,9 +213,9 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
  516. if (!IS_R500_3D)
  517. pPriv->bicubic_enabled = FALSE;
  518. if (pPriv->bicubic_memory == NULL && pPriv->bicubic_enabled) {
  519. - pPriv->bicubic_offset = radeon_allocate_memory(pScrn,
  520. - &pPriv->bicubic_memory,
  521. - sizeof(bicubic_tex_512), 64);
  522. + pPriv->bicubic_offset = radeon_legacy_allocate_memory(pScrn,
  523. + &pPriv->bicubic_memory,
  524. + sizeof(bicubic_tex_512), 64);
  525. pPriv->bicubic_src_offset = pPriv->bicubic_offset + info->fbLocation + pScrn->fbOffset;
  526. if (pPriv->bicubic_offset == 0)
  527. pPriv->bicubic_enabled = FALSE;
  528. diff --git a/src/radeon_video.c b/src/radeon_video.c
  529. index 47b0497..6249cea 100644
  530. --- a/src/radeon_video.c
  531. +++ b/src/radeon_video.c
  532. @@ -1638,11 +1638,11 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
  533. if (pPriv->textured) {
  534. if (cleanup) {
  535. if (pPriv->bicubic_memory != NULL) {
  536. - radeon_free_memory(pScrn, pPriv->bicubic_memory);
  537. + radeon_legacy_free_memory(pScrn, pPriv->bicubic_memory);
  538. pPriv->bicubic_memory = NULL;
  539. }
  540. if (pPriv->video_memory != NULL) {
  541. - radeon_free_memory(pScrn, pPriv->video_memory);
  542. + radeon_legacy_free_memory(pScrn, pPriv->video_memory);
  543. pPriv->video_memory = NULL;
  544. }
  545. }
  546. @@ -1667,7 +1667,7 @@ RADEONStopVideo(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
  547. if(pPriv->i2c != NULL) RADEON_board_setmisc(pPriv);
  548. }
  549. if (pPriv->video_memory != NULL) {
  550. - radeon_free_memory(pScrn, pPriv->video_memory);
  551. + radeon_legacy_free_memory(pScrn, pPriv->video_memory);
  552. pPriv->video_memory = NULL;
  553. }
  554. pPriv->videoStatus = 0;
  555. @@ -2937,9 +2937,9 @@ RADEONPutImage(
  556. if (idconv == FOURCC_YV12 || id == FOURCC_I420) {
  557. new_size += (dstPitch >> 1) * ((height + 1) & ~1);
  558. }
  559. - pPriv->video_offset = radeon_allocate_memory(pScrn, &pPriv->video_memory,
  560. - (pPriv->doubleBuffer ?
  561. - (new_size * 2) : new_size), 64);
  562. + pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory,
  563. + (pPriv->doubleBuffer ?
  564. + (new_size * 2) : new_size), 64);
  565. if (pPriv->video_offset == 0)
  566. return BadAlloc;
  567.  
  568. @@ -3133,7 +3133,7 @@ RADEONVideoTimerCallback(ScrnInfoPtr pScrn, Time now)
  569. } else { /* FREE_TIMER */
  570. if(pPriv->freeTime < now) {
  571. if (pPriv->video_memory != NULL) {
  572. - radeon_free_memory(pScrn, pPriv->video_memory);
  573. + radeon_legacy_free_memory(pScrn, pPriv->video_memory);
  574. pPriv->video_memory = NULL;
  575. }
  576. pPriv->videoStatus = 0;
  577. @@ -3168,7 +3168,7 @@ RADEONAllocateSurface(
  578. pitch = ((w << 1) + 15) & ~15;
  579. size = pitch * h;
  580.  
  581. - offset = radeon_allocate_memory(pScrn, &surface_memory, size, 64);
  582. + offset = radeon_legacy_allocate_memory(pScrn, &surface_memory, size, 64);
  583. if (offset == 0)
  584. return BadAlloc;
  585.  
  586. @@ -3176,18 +3176,18 @@ RADEONAllocateSurface(
  587. surface->height = h;
  588.  
  589. if(!(surface->pitches = xalloc(sizeof(int)))) {
  590. - radeon_free_memory(pScrn, surface_memory);
  591. + radeon_legacy_free_memory(pScrn, surface_memory);
  592. return BadAlloc;
  593. }
  594. if(!(surface->offsets = xalloc(sizeof(int)))) {
  595. xfree(surface->pitches);
  596. - radeon_free_memory(pScrn, surface_memory);
  597. + radeon_legacy_free_memory(pScrn, surface_memory);
  598. return BadAlloc;
  599. }
  600. if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) {
  601. xfree(surface->pitches);
  602. xfree(surface->offsets);
  603. - radeon_free_memory(pScrn, surface_memory);
  604. + radeon_legacy_free_memory(pScrn, surface_memory);
  605. return BadAlloc;
  606. }
  607.  
  608. @@ -3228,7 +3228,7 @@ RADEONFreeSurface(
  609.  
  610. if(pPriv->isOn)
  611. RADEONStopSurface(surface);
  612. - radeon_free_memory(pScrn, pPriv->surface_memory);
  613. + radeon_legacy_free_memory(pScrn, pPriv->surface_memory);
  614. pPriv->surface_memory = NULL;
  615. xfree(surface->pitches);
  616. xfree(surface->offsets);
  617. @@ -3504,9 +3504,9 @@ RADEONPutVideo(
  618. if (pPriv->capture_vbi_data)
  619. alloc_size += 2 * 2 * vbi_line_width * 21;
  620.  
  621. - pPriv->video_offset = radeon_allocate_memory(pScrn, &pPriv->video_memory,
  622. - (pPriv->doubleBuffer ?
  623. - (new_size * 2) : new_size), 64);
  624. + pPriv->video_offset = radeon_legacy_allocate_memory(pScrn, &pPriv->video_memory,
  625. + (pPriv->doubleBuffer ?
  626. + (new_size * 2) : new_size), 64);
  627. if (pPriv->video_offset == 0)
  628. return BadAlloc;
  629.  
  630.  
  631. commit d744dc013cf5ca3141c0fdf55e36d713fe9f53ba
  632. Author: Adam Jackson <ajax@redhat.com>
  633. Date: Wed Oct 8 15:50:25 2008 -0400
  634.  
  635. Fix connector table mapping for lvtma/kaleidoscope/uniphy.
  636.  
  637. Fixes DPMS on LVDS.
  638.  
  639. diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
  640. index 13eb1fc..851014b 100644
  641. --- a/src/radeon_atombios.c
  642. +++ b/src/radeon_atombios.c
  643. @@ -1594,15 +1594,23 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
  644. break;
  645. case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
  646. case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1:
  647. - info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
  648. - info->BiosConnector[i].TMDSType = TMDS_INT;
  649. + if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
  650. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
  651. + else {
  652. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
  653. + info->BiosConnector[i].TMDSType = TMDS_INT;
  654. + }
  655. break;
  656. case ENCODER_OBJECT_ID_INTERNAL_UNIPHY:
  657. - if (num == 1)
  658. - info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
  659. - else
  660. - info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX);
  661. - info->BiosConnector[i].TMDSType = TMDS_UNIPHY;
  662. + if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
  663. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
  664. + else {
  665. + if (num == 1)
  666. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP1_INDEX);
  667. + else
  668. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP2_INDEX);
  669. + info->BiosConnector[i].TMDSType = TMDS_UNIPHY;
  670. + }
  671. break;
  672. case ENCODER_OBJECT_ID_INTERNAL_TMDS2:
  673. case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1:
  674. @@ -1611,8 +1619,12 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
  675. break;
  676. case ENCODER_OBJECT_ID_INTERNAL_LVTM1:
  677. case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
  678. - info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX);
  679. - info->BiosConnector[i].TMDSType = TMDS_LVTMA;
  680. + if (info->BiosConnector[i].ConnectorType == CONNECTOR_LVDS)
  681. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_LCD1_INDEX);
  682. + else {
  683. + info->BiosConnector[i].devices |= (1 << ATOM_DEVICE_DFP3_INDEX);
  684. + info->BiosConnector[i].TMDSType = TMDS_LVTMA;
  685. + }
  686. break;
  687. case ENCODER_OBJECT_ID_INTERNAL_DAC1:
  688. case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
  689.  
  690. commit dc795ba66a8c0eb2c3fdb86bd42dfc17e0aa3b6e
  691. Author: Alex Deucher <alexdeucher@gmail.com>
  692. Date: Tue Oct 7 12:32:47 2008 -0400
  693.  
  694. Fixups from last DFP/LCD refactor
  695.  
  696. - fix DFP1 -> LCD1
  697. - use _INDEX rather than _SUPPORT defs
  698.  
  699. diff --git a/src/atombios_output.c b/src/atombios_output.c
  700. index fad5a10..a770177 100644
  701. --- a/src/atombios_output.c
  702. +++ b/src/atombios_output.c
  703. @@ -278,13 +278,13 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  704. int major, minor;
  705.  
  706. switch (device) {
  707. - case ATOM_DEVICE_DFP1_SUPPORT:
  708. + case ATOM_DEVICE_DFP1_INDEX:
  709. index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl);
  710. break;
  711. - case ATOM_DEVICE_LCD1_SUPPORT:
  712. + case ATOM_DEVICE_LCD1_INDEX:
  713. index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl);
  714. break;
  715. - case ATOM_DEVICE_DFP3_SUPPORT:
  716. + case ATOM_DEVICE_DFP3_INDEX:
  717. index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl);
  718. break;
  719. default:
  720. @@ -305,7 +305,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  721. if (radeon_output->type == OUTPUT_HDMI)
  722. disp_data.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
  723. disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  724. - if (device == ATOM_DEVICE_DFP1_SUPPORT) {
  725. + if (device == ATOM_DEVICE_LCD1_INDEX) {
  726. if (radeon_output->lvds_misc & (1 << 0))
  727. disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  728. if (radeon_output->lvds_misc & (1 << 1))
  729. @@ -334,7 +334,7 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  730. disp_data2.ucSpatial = 0;
  731. disp_data2.ucTemporal = 0;
  732. disp_data2.ucFRC = 0;
  733. - if (device == ATOM_DEVICE_DFP1_SUPPORT) {
  734. + if (device == ATOM_DEVICE_LCD1_INDEX) {
  735. if (radeon_output->lvds_misc & (1 << 0))
  736. disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  737. if (radeon_output->lvds_misc & (1 << 5)) {
  738. @@ -919,7 +919,7 @@ atombios_output_mode_set(xf86OutputPtr output,
  739. atombios_output_dig1_setup(output, adjusted_mode);
  740. atombios_output_dig1_transmitter_setup(output, adjusted_mode);
  741. } else
  742. - atombios_output_digital_setup(output, ATOM_DEVICE_DFP1_SUPPORT, adjusted_mode);
  743. + atombios_output_digital_setup(output, ATOM_DEVICE_DFP1_INDEX, adjusted_mode);
  744. } else if (radeon_output->devices & ATOM_DEVICE_DFP2_SUPPORT) {
  745. if (IS_DCE3_VARIANT) {
  746. // fix me
  747. @@ -936,7 +936,7 @@ atombios_output_mode_set(xf86OutputPtr output,
  748. atombios_output_dig2_setup(output, adjusted_mode);
  749. atombios_output_dig2_transmitter_setup(output, adjusted_mode);
  750. } else
  751. - atombios_output_digital_setup(output, ATOM_DEVICE_DFP3_SUPPORT, adjusted_mode);
  752. + atombios_output_digital_setup(output, ATOM_DEVICE_DFP3_INDEX, adjusted_mode);
  753. }
  754. } else if (radeon_output->MonType == MT_LCD) {
  755. if (radeon_output->devices & ATOM_DEVICE_LCD1_SUPPORT) {
  756. @@ -944,7 +944,7 @@ atombios_output_mode_set(xf86OutputPtr output,
  757. atombios_output_dig2_setup(output, adjusted_mode);
  758. atombios_output_dig2_transmitter_setup(output, adjusted_mode);
  759. } else
  760. - atombios_output_digital_setup(output, ATOM_DEVICE_LCD1_SUPPORT, adjusted_mode);
  761. + atombios_output_digital_setup(output, ATOM_DEVICE_LCD1_INDEX, adjusted_mode);
  762. }
  763. } else if ((radeon_output->MonType == MT_CTV) ||
  764. (radeon_output->MonType == MT_STV) ||
  765.  
  766. commit 4a9e8d9fe24278b56aef51677fd35289d01584a7
  767. Author: Alex Deucher <alexdeucher@gmail.com>
  768. Date: Mon Oct 6 18:00:08 2008 -0400
  769.  
  770. set grey levels correctly for temporal dithering
  771.  
  772. diff --git a/src/atombios_output.c b/src/atombios_output.c
  773. index 50e3681..fad5a10 100644
  774. --- a/src/atombios_output.c
  775. +++ b/src/atombios_output.c
  776. @@ -346,6 +346,8 @@ atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr m
  777. disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN;
  778. if (radeon_output->lvds_misc & (1 << 1))
  779. disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH;
  780. + if (((radeon_output->lvds_misc >> 2) & 0x3) == 4)
  781. + disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_LEVEL_4;
  782. }
  783. } else {
  784. if (mode->Clock > 165000)
  785.  
  786. commit 5708624d1151877dd66a462d4a75fed6774604a7
  787. Author: Alex Deucher <alexdeucher@gmail.com>
  788. Date: Mon Oct 6 15:11:56 2008 -0400
  789.  
  790. Turn coherent mode off by default on DVI
  791.  
  792. diff --git a/src/radeon_output.c b/src/radeon_output.c
  793. index 3416edf..8c794fb 100644
  794. --- a/src/radeon_output.c
  795. +++ b/src/radeon_output.c
  796. @@ -1158,7 +1158,7 @@ radeon_create_resources(xf86OutputPtr output)
  797. "RRConfigureOutputProperty error, %d\n", err);
  798. }
  799.  
  800. - data = 1; /* use coherent mode by default */
  801. + data = 0; /* coherent mode off by default */
  802.  
  803. err = RRChangeOutputProperty(output->randr_output, coherent_mode_atom,
  804. XA_INTEGER, 32, PropModeReplace, 1, &data,
  805.  
  806. commit a5c5ce96279d01eb519bfb92b94c06a58acb7f07
  807. Author: Alex Deucher <alexdeucher@gmail.com>
  808. Date: Mon Oct 6 15:07:31 2008 -0400
  809.  
  810. Refactor atom LCD/DFP output setup
  811.  
  812. Simplify the code, properly handle dithering, coherent mode, encoding, etc.
  813. Should fix bug 17897.
  814.  
  815. diff --git a/src/atombios_output.c b/src/atombios_output.c
  816. index 83b86a7..50e3681 100644
  817. --- a/src/atombios_output.c
  818. +++ b/src/atombios_output.c
  819. @@ -206,7 +206,8 @@ atombios_output_tv1_setup(xf86OutputPtr output, DisplayModePtr mode)
  820. int
  821. atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode)
  822. {
  823. - RADEONInfoPtr info = RADEONPTR(output->scrn);
  824. + ScrnInfoPtr pScrn = output->scrn;
  825. + RADEONInfoPtr info = RADEONPTR(pScrn);
  826. ENABLE_EXTERNAL_TMDS_ENCODER_PS_ALLOCATION disp_data;
  827. AtomBiosArgRec data;
  828. unsigned char *space;
  829. @@ -218,7 +219,7 @@ atombios_external_tmds_setup(xf86OutputPtr output, DisplayModePtr mode)
  830. else
  831. disp_data.sXTmdsEncoder.ucMisc = 0;
  832.  
  833. - if (!info->dac6bits)
  834. + if (pScrn->rgbBits == 8)
  835. disp_data.sXTmdsEncoder.ucMisc |= (1 << 1);
  836.  
  837. data.exec.index = GetIndexIntoMasterTable(COMMAND, DVOEncoderControl);
  838. @@ -264,84 +265,107 @@ atombios_output_ddia_setup(xf86OutputPtr output, DisplayModePtr mode)
  839. }
  840.  
  841. static int
  842. -atombios_output_tmds1_setup(xf86OutputPtr output, DisplayModePtr mode)
  843. +atombios_output_digital_setup(xf86OutputPtr output, int device, DisplayModePtr mode)
  844. {
  845. - RADEONInfoPtr info = RADEONPTR(output->scrn);
  846. - TMDS1_ENCODER_CONTROL_PS_ALLOCATION disp_data;
  847. + RADEONOutputPrivatePtr radeon_output = output->driver_private;
  848. + ScrnInfoPtr pScrn = output->scrn;
  849. + RADEONInfoPtr info = RADEONPTR(pScrn);
  850. + LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data;
  851. + LVDS_ENCODER_CONTROL_PS_ALLOCATION_V2 disp_data2;
  852. AtomBiosArgRec data;
  853. unsigned char *space;
  854. + int index;
  855. + int major, minor;
  856.  
  857. - disp_data.ucAction = 1;
  858. - if (mode->Clock > 165000)
  859. - disp_data.ucMisc = 1;
  860. - else
  861. - disp_data.ucMisc = 0;
  862. - disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  863. - data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl);
  864. - data.exec.dataSpace = (void *)&space;
  865. - data.exec.pspace = &disp_data;
  866. -
  867. - if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
  868. - ErrorF("Output TMDS1 setup success\n");
  869. - return ATOM_SUCCESS;
  870. + switch (device) {
  871. + case ATOM_DEVICE_DFP1_SUPPORT:
  872. + index = GetIndexIntoMasterTable(COMMAND, TMDS1EncoderControl);
  873. + break;
  874. + case ATOM_DEVICE_LCD1_SUPPORT:
  875. + index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl);
  876. + break;
  877. + case ATOM_DEVICE_DFP3_SUPPORT:
  878. + index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl);
  879. + break;
  880. + default:
  881. + return ATOM_NOT_IMPLEMENTED;
  882. + break;
  883. }
  884.  
  885. - ErrorF("Output TMDS1 setup failed\n");
  886. - return ATOM_NOT_IMPLEMENTED;
  887. -
  888. -}
  889. -
  890. -static int
  891. -atombios_output_tmds2_setup(xf86OutputPtr output, DisplayModePtr mode)
  892. -{
  893. - RADEONInfoPtr info = RADEONPTR(output->scrn);
  894. - TMDS2_ENCODER_CONTROL_PS_ALLOCATION disp_data;
  895. - AtomBiosArgRec data;
  896. - unsigned char *space;
  897. -
  898. - disp_data.ucAction = 1;
  899. - if (mode->Clock > 165000)
  900. - disp_data.ucMisc = 1;
  901. - else
  902. - disp_data.ucMisc = 0;
  903. - disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  904. - data.exec.index = GetIndexIntoMasterTable(COMMAND, TMDS2EncoderControl);
  905. - data.exec.dataSpace = (void *)&space;
  906. - data.exec.pspace = &disp_data;
  907. + atombios_get_command_table_version(info->atomBIOS, index, &major, &minor);
  908.  
  909. - if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
  910. - ErrorF("Output TMDS2 setup success\n");
  911. - return ATOM_SUCCESS;
  912. + /*ErrorF("table is %d %d\n", major, minor);*/
  913. + switch (major) {
  914. + case 0:
  915. + case 1:
  916. + switch (minor) {
  917. + case 1:
  918. + disp_data.ucMisc = 0;
  919. + disp_data.ucAction = PANEL_ENCODER_ACTION_ENABLE;
  920. + if (radeon_output->type == OUTPUT_HDMI)
  921. + disp_data.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
  922. + disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  923. + if (device == ATOM_DEVICE_DFP1_SUPPORT) {
  924. + if (radeon_output->lvds_misc & (1 << 0))
  925. + disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  926. + if (radeon_output->lvds_misc & (1 << 1))
  927. + disp_data.ucMisc |= (1 << 1);
  928. + } else {
  929. + if (mode->Clock > 165000)
  930. + disp_data.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  931. + if (pScrn->rgbBits == 8)
  932. + disp_data.ucMisc |= (1 << 1);
  933. + }
  934. + data.exec.pspace = &disp_data;
  935. + break;
  936. + case 2:
  937. + case 3:
  938. + disp_data2.ucMisc = 0;
  939. + disp_data2.ucAction = PANEL_ENCODER_ACTION_ENABLE;
  940. + if (minor == 3) {
  941. + if (radeon_output->coherent_mode) {
  942. + disp_data2.ucMisc |= PANEL_ENCODER_MISC_COHERENT;
  943. + xf86DrvMsg(output->scrn->scrnIndex, X_INFO, "Coherent Mode enabled\n");
  944. + }
  945. + }
  946. + if (radeon_output->type == OUTPUT_HDMI)
  947. + disp_data2.ucMisc |= PANEL_ENCODER_MISC_HDMI_TYPE;
  948. + disp_data2.ucTruncate = 0;
  949. + disp_data2.ucSpatial = 0;
  950. + disp_data2.ucTemporal = 0;
  951. + disp_data2.ucFRC = 0;
  952. + if (device == ATOM_DEVICE_DFP1_SUPPORT) {
  953. + if (radeon_output->lvds_misc & (1 << 0))
  954. + disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  955. + if (radeon_output->lvds_misc & (1 << 5)) {
  956. + disp_data2.ucSpatial = PANEL_ENCODER_SPATIAL_DITHER_EN;
  957. + if (radeon_output->lvds_misc & (1 << 1))
  958. + disp_data2.ucSpatial |= PANEL_ENCODER_SPATIAL_DITHER_DEPTH;
  959. + }
  960. + if (radeon_output->lvds_misc & (1 << 6)) {
  961. + disp_data2.ucTemporal = PANEL_ENCODER_TEMPORAL_DITHER_EN;
  962. + if (radeon_output->lvds_misc & (1 << 1))
  963. + disp_data2.ucTemporal |= PANEL_ENCODER_TEMPORAL_DITHER_DEPTH;
  964. + }
  965. + } else {
  966. + if (mode->Clock > 165000)
  967. + disp_data2.ucMisc |= PANEL_ENCODER_MISC_DUAL;
  968. + }
  969. + data.exec.pspace = &disp_data2;
  970. + break;
  971. + }
  972. + break;
  973. }
  974.  
  975. - ErrorF("Output TMDS2 setup failed\n");
  976. - return ATOM_NOT_IMPLEMENTED;
  977. -}
  978. -
  979. -static int
  980. -atombios_output_lvds_setup(xf86OutputPtr output, DisplayModePtr mode)
  981. -{
  982. - RADEONInfoPtr info = RADEONPTR(output->scrn);
  983. - LVDS_ENCODER_CONTROL_PS_ALLOCATION disp_data;
  984. - AtomBiosArgRec data;
  985. - unsigned char *space;
  986. -
  987. - disp_data.ucAction = 1;
  988. - if (mode->Clock > 165000)
  989. - disp_data.ucMisc = 1;
  990. - else
  991. - disp_data.ucMisc = 0;
  992. - disp_data.usPixelClock = cpu_to_le16(mode->Clock / 10);
  993. - data.exec.index = GetIndexIntoMasterTable(COMMAND, LVDSEncoderControl);
  994. + data.exec.index = index;
  995. data.exec.dataSpace = (void *)&space;
  996. - data.exec.pspace = &disp_data;
  997.  
  998. if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
  999. - ErrorF("Output LVDS setup success\n");
  1000. + ErrorF("Output digital setup success\n");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement