summaryrefslogtreecommitdiff
path: root/hw/kdrive
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2005-02-28 20:45:15 +0000
committerKeith Packard <keithp@keithp.com>2005-02-28 20:45:15 +0000
commitb4b27e9eaa43401ae70e5d03823012bf8c78848f (patch)
tree0eba720193bbf3db85d1a625b0829a259c7fc5bf /hw/kdrive
parent409c0618bced6df02eed7af77107ff74508c0f3f (diff)
Force DPMS normal on screen enable
Add placeholder for bit used to redirect input Add macrovision register defines
Diffstat (limited to 'hw/kdrive')
-rw-r--r--hw/kdrive/ati/ChangeLog551
-rw-r--r--hw/kdrive/ati/ati_reg.h4
-rw-r--r--hw/kdrive/src/kdrive.c1
3 files changed, 556 insertions, 0 deletions
diff --git a/hw/kdrive/ati/ChangeLog b/hw/kdrive/ati/ChangeLog
new file mode 100644
index 000000000..1f9ba29f0
--- /dev/null
+++ b/hw/kdrive/ati/ChangeLog
@@ -0,0 +1,551 @@
+2005-02-28 Keith Packard <keithp@keithp.com>
+
+ * ati_reg.h:
+ Add macrovision register defines
+
+2005-01-24 19:37 anholt
+
+ * ati_dma.c, ati_draw.c, ati_reg.h: Finish converting RB2D_DSTCACHE
+ to RB3D_DSTCACHE. Remove an extra pixel cache flush in the idle
+ function. Init an extra reg for r200, and annotate the
+ TCL_BYPASS better. Also, clean up some style nits from the last
+ commit.
+
+2005-01-24 18:39 keithp
+
+ * ati.h, ati_draw.c, ati_reg.h, radeon_composite.c: Add tracing.
+ Hack Radeon cache registers to use 3D addresses. Works on M6
+
+2005-01-24 17:38 anholt
+
+ * ati_dri.c: Silence a warning about uninitialized variable (though
+ it would be).
+
+2005-01-20 08:22 anholt
+
+ * ati_dma.c, ati_dma.h, ati_dri.c: Add a set of macros for dealing
+ with the repeated code to wait for a while reading a
+ register/attempting DMA. Now it'll wait for a certain number of
+ seconds rather than a certain number of times through the loop
+ before deciding that it's timed out and resetting the hardware.
+ Also, add more timeout handling, and reset the draw state after
+ resetting the engine.
+
+2005-01-19 23:28 anholt
+
+ * radeon_composite.c: Use RadeonSwitchTo3D() instead of doing the
+ WAIT_UNTIL ourselves (RST3D() also does DC_FLUSH, which may be
+ important).
+
+2005-01-19 23:09 anholt
+
+ * ati_video.c: Add R200 XV support, and make R100 (hopefully) use
+ linear filtering instead of nearest. Also, use RadeonSwitchTo3D
+ instead of doing the WAIT_UNTIL ourselves.
+
+2005-01-19 17:09 anholt
+
+ * ati_dma.c, ati_reg.h: Make R200 PDMA work -- primary queue sizes
+ are now 9 bits, not 8.
+
+2004-12-22 10:39 anholt
+
+ * ati_draw.c, ati_reg.h, radeon_composite.c: Back out the previous
+ day's broken R200 "fix" -- the same number of coords are always
+ emitted. Fix the real problem, which was not enough regs being
+ initialized in ati_draw.c. Fix a typo that was resulting in
+ alpha coming out as 0 * src or 0 * broken instead of src * 1 or
+ src * mask. Assign the blending results to R0, as appears to be
+ necessary. Unbreak the dst-alpha-blend-with-no-dst-alpha code.
+ Yow. And set the right DMA count for the r200 traps code.
+
+2004-12-21 01:51 anholt
+
+ * ati_draw.c, radeon_composite.c: Fix r200 render (for real this
+ time?) by setting tex1_comp_cnt right for non-mask rendering.
+ Reenable it. Also, R200TexFormats was used instead of R100 in
+ one place. Harmless so far, because the formats were in the same
+ order.
+
+2004-12-21 01:49 anholt
+
+ * ati_dri.c: Whitespace nit.
+
+2004-09-19 20:12 anholt
+
+ * ati_draw.c, ati_reg.h, radeon_composite.c: Fix the R200 Render
+ code. Composite and Trapezoids are now supported just as well as
+ on R100.
+
+2004-09-19 03:57 anholt
+
+ * ati_dri.c, ati_reg.h: Unbreak the AGP DRI case. That was quite a
+ pile of broken code.
+
+2004-09-13 23:26 anholt
+
+ * ati.c, ati_reg.h: Add proper PCI/AGP detection, based on Mike
+ Harris's code for Radeon, but using the MMIO mirror of the bits
+ instead of config space.
+
+2004-09-12 16:22 anholt
+
+ * ati_draw.c: - Fix a segfault on VT switch with DRI. Still dies
+ due to cursor allocation troubles. - Move the
+ RemoveBlockAndWakeupHandlers to match
+ RegisterBlockAndWakeupHandlers. - Enable R100 trapezoid
+ "acceleration" when DRI is working, so that it can be exposed
+ and worked on.
+
+2004-09-12 16:01 anholt
+
+ * ati_dri.c: Fix a bad argument missed in the previous commit for
+ ATIDRIDMA* functions.
+
+2004-09-12 15:21 anholt
+
+ * ati_draw.c: Move the RegisterBlockAndWakeupHandlers to before DRI
+ initialization. The change to use that instead of manual
+ wrapping made the DMA dispatch come after the lock had been
+ dropped, causing lots of pain.
+
+2004-09-12 13:31 anholt
+
+ * ati.h, ati_dma.c, ati_dri.c: Reset the CCE/CP on engine reset,
+ and make the ATIDRIDMA functions take a more useful argument.
+
+2004-09-12 13:19 anholt
+
+ * ati_draw.c: Add missing kaa.h include for kaaInitTrapOffsets.
+
+2004-09-12 13:02 anholt
+
+ * ati_dri.c: Fix handling of is_agp. is_agp is whether the card is
+ actually AGP, while using_agp should say whether AGP is being
+ used as part of DMA/DRI.
+
+2004-09-12 12:52 anholt
+
+ * ati_dma.c, ati_dma.h, ati_dri.c: Improve error handling,
+ especially in the DRI case. Do some FatalErrors instead of
+ ErrorFs for things that are really bad, and put limits on some
+ loops. Now, sometimes instead of hanging the entire system, we
+ (mostly-) cleanly drop to console when the card has hung.
+
+2004-09-11 02:28 anholt
+
+ * ati.h, ati_dma.h, ati_draw.c, ati_draw.h, ati_reg.h,
+ r128_composite.c, radeon_composite.c: - Add disabled WIP
+ trapezoid code for R128 and R100. The R128 rendering is not
+ doing an add of 1 per triangle like I hoped, and instead seems
+ to be saturating all the pixels or something. The R100
+ acceleration renders pretty well, with some gaps. Note that
+ both are slower than software due to lack of DMA to submit
+ vertices. - Mostly fix R128 and Radeon transform support,
+ including supporting bilinear filtering on R128. Subpixel
+ offsets are still probably an issue (reported by rendercheck),
+ but I want to make 100% sure about my understanding of the
+ protocol before changing everybody, including fb. - Add support
+ for dst formats without alpha to R128 Composite. - Remove the
+ R128 Blend code, which has long outlived its usefulness. (I
+ kept it around for one reason: It could be useful for the w/h
+ > 1024 case with no mask and a non-src op. That seems pretty
+ infrequent and not worth the trouble).
+
+2004-07-24 10:02 keithp
+
+ * ati.c: Check for mmio before restoring crtc/crtc2 pitch registers
+
+2004-07-22 11:17 keithp
+
+ * ati.c, ati.h, ati_cursor.c, ati_reg.h: 2004-07-22 Keith Packard
+ <keithp@keithp.com>
+
+ reviewed by: <delete if not using a buddy>
+
+ * hw/kdrive/ati/ati.c: (ATISetOffscreen), (ATISetPitch),
+ (ATIRandRSetConfig), (ATIPreserve), (ATIRestore),
+ (ATIEnable):
+ * hw/kdrive/ati/ati.h:
+ * hw/kdrive/ati/ati_cursor.c: (RadeonLoadCursor),
+ (ATIUnloadCursor), (ATICursorEnable):
+ * hw/kdrive/ati/ati_reg.h:
+ Correct pitch so that accelerator can run on 1400x1050
+ screens.
+ Add a few more register sets for cursors.
+
+2004-07-19 05:07 anholt
+
+ * radeon_composite.c: Add support for a8b8g8r8 and x8b8g8r8
+ pictures, which showed up frequently with metacity usage.
+
+2004-07-19 04:42 anholt
+
+ * ati_cursor.c: Breakage in last commit to this file:
+ pCurPriv->area isn't set up until Enable, these days.
+
+2004-07-19 04:19 anholt
+
+ * ati_draw.c: Set the right number of texture coordinates for r200
+ Render support (still disabled, needs to be tested).
+
+2004-07-19 04:16 anholt
+
+ * r128_composite.c, radeon_composite.c: - Add Radeon picture
+ transform support. - On R128, don't refer to an old Composite's
+ mask transform when the current Composite doesn't have a mask.
+ - Staticize some global variables in r128_composite.c.
+
+2004-07-19 00:53 anholt
+
+ * ati.c, ati.h, ati_cursor.c, ati_draw.c, ati_draw.h: Use the
+ offscreen memory manager as much as possible to do the
+ reservation of memory at startup. Do some drive-by cleanups
+ while I'm here (sorry!).
+
+2004-07-19 00:20 anholt
+
+ * r128_composite.c: Add support for transforms of textures on R128.
+
+2004-07-03 03:23 anholt
+
+ * r128_composite.c: Clean up Rage 128 composite code. Now it
+ composites more operations correctly and is simpler.
+
+2004-06-27 17:48 keithp
+
+ * ati.c, ati.h, ati_cursor.c, ati_draw.c: 2004-06-27 Keith Packard
+ <keithp@keithp.com>
+
+ * hw/kdrive/ati/ati.c: (ATICardInit), (ATISetOffscreen),
+ (ATIScreenInit), (ATIRandRSetConfig), (ATIRandRInit),
+ (ATIFinishInitScreen), (ATIEnable):
+ * hw/kdrive/ati/ati.h:
+ * hw/kdrive/ati/ati_cursor.c: (ATICursorInit):
+ * hw/kdrive/ati/ati_draw.c: (RadeonSwitchTo2D),
+ (RadeonSwitchTo3D),
+ (ATIBlockHandler), (ATIWakeupHandler), (ATIDrawEnable),
+ (ATIDrawDisable), (ATIDrawFini):
+ Separate out off-screen allocation from Init.
+ Fix Enable to update off-screen addresses.
+ Wrap RandR to update off-screen addresses.
+
+ * hw/kdrive/fbdev/fbdev.c: (fbdevMapFramebuffer):
+ Set off_screen_base and memory_size fields correctly.
+
+2004-06-25 21:13 keithp
+
+ * ati.c, ati_cursor.c, ati_draw.c, ati_reg.h: 2004-06-25 Keith
+ Packard <keithp@keithp.com>
+
+ * hw/kdrive/ati/ati.c: (ATIScreenInit):
+ * hw/kdrive/ati/ati_cursor.c: (ATIMoveCursor),
+ (ClassicAllocCursorColors), (ClassicSetCursorColors),
+ (ClassicRecolorCursor), (ClassicLoadCursor),
+ (RadeonLoadCursor),
+ (ATIRealizeCursor), (ATISetCursor), (ATICursorEnable),
+ (ATIRecolorCursor):
+ * hw/kdrive/ati/ati_draw.c: (ATIDrawFini):
+ * hw/kdrive/ati/ati_reg.h:
+ Add ARGB cursor support for Radeon cards.
+
+2004-06-10 12:22 anholt
+
+ * ati_draw.c: - Pass the right pixel mask (all ones) in to
+ PrepareSolid in the solid-fill-based composite acceleration. -
+ Use a real pixmap when doing an UploadToScratch (For
+ pDrawable->type == DRAWABLE_WINDOW, you need to get the backing
+ pixmap). - Pass back the x/y offsets from kaaGetOffscreenPixmap
+ unconditionally, because they'll be used in the scratch case. -
+ Turn on the Render acceleration for Rage 128 and Radeon
+ 100-series at last!
+
+2004-06-10 02:50 anholt
+
+ * ati_draw.c: Align scratch area offsets to the offscreen byte
+ alignment.
+
+2004-06-10 01:37 anholt
+
+ * ati_dma.c: Oops, testers reported that the last patch actually
+ didn't work (conflicts occurred), so the R300 PDMA doesn't work.
+ Disable.
+
+2004-06-09 22:57 anholt
+
+ * ati_dma.c, ati_microcode.c: Bug #242: Fix setup of R300 cards, by
+ providing R300 CP code from volodya-project and initializing
+ PDMA.
+
+2004-05-17 13:18 anholt
+
+ * Makefile.am, ati.c, ati.h, ati_cursor.c, ati_dma.c, ati_dma.h,
+ ati_draw.c, ati_draw.h, ati_dri.c, ati_microcode.c, ati_reg.h,
+ ati_video.c, r128_composite.c, radeon_composite.c: Overhaul of
+ the ATI driver: - Add monochrome hardware cursor support. - Try
+ to auto-detect AGP support for DRI on Radeons. And fail.
+ Detect it properly on R128. - Set up card for pseudo-DMA if
+ possible. Convert 2D rendering code to prepare DMA packets
+ only. Use generic code to decode DMA packets to MMIO if PDMA
+ is unavailable. Add WIP code to support "real" DMA without DRM
+ support. - Dispatch pending DMA commands when the server sleeps.
+ Otherwise some things, such as typing in an xterm, wouldn't
+ show up for a time. - Fix Radeon Composite acceleration in
+ many ways, and add Rage 128 Composite acceleration. Disable
+ them both due to still-not-understood issues they have. They
+ fail with In, Out, AtopReverse, and Xor, and text rendering is
+ strange. - Add textured XV support for R100 and Rage 128. No
+ brightness/sat controls, but it does support multiple ports,
+ and cooperates with Composite. - Add WIP code for hostdata
+ uploads. - Many cleanups and fixes.
+
+2004-01-24 21:31 anholt
+
+ * ati_dri.c: Disable GLX visuals code on !GLXEXT, and remove a
+ useless prototype.
+
+2004-01-24 17:30 anholt
+
+ * ati.c, ati.h, ati_dri.c, radeon_composite.c: - Add glx visuals
+ code based on XFree86's Radeon driver. - Reserve areas for
+ back/depth/span when USING_DRI && GLXEXT. This would be better
+ in a TransitionTo3d, but we'd need to work with the offscreen
+ memory manager for that. - Misc. fixes to ati_dri.c for DRI+GLX.
+ Needs more work still.
+
+2004-01-24 17:16 anholt
+
+ * ati_draw.h: Oops, turn fallback output back off.
+
+2004-01-24 17:04 anholt
+
+ * ati_dri.c: Whitespace cleanup.
+
+2004-01-10 16:10 anholt
+
+ * ati_draw.c, r128_blendtmp.h: Support 1x1 repeat sources in R128's
+ Blend.
+
+2004-01-09 00:43 anholt
+
+ * ati.c, ati.h, ati_draw.c, ati_draw.h, ati_dri.c: Change PCI ID
+ information field to be one of r128, r100, r200, r300. This is
+ all the information we need so far. Put that information into
+ atic, and use it correctly in the code (unlike before).
+
+2004-01-08 12:18 anholt
+
+ * ati_draw.c, radeon_composite.c: Compile fixes for non-DRI case
+ and for non-C99 compiler.
+
+2004-01-08 00:25 anholt
+
+ * ati.c: Forced commit: Previous commit included the removal of the
+ 8192 scanline limit on offscreen memory in the fbdev case. I
+ remember daenzer (who originally put that code in) saying he
+ wasn't sure of it, and there doesn't seem to be any reason for
+ that limit given how acceleration is done.
+
+2004-01-08 00:16 anholt
+
+ * ati.c, ati.h, ati_draw.c: - Add a new UploadToScratch kaa hook
+ for putting the data for a single pixmap into temporary
+ offscreen storage. Subsequent UploadToScratch may clobber the
+ data of previous ones. This allows hardware acceleration of
+ composite operations on glyphs. - Add a new UploadToScreen kaa
+ hook for doing the actual moving of data to framebuffer. This
+ would allow us to do things like hostdata blits or memcpy to
+ agp and then blit. - Add an UploadToScreen on ATI which is just
+ memcpy, but which will be replaced with a hostdata blit soon.
+ - Add UploadToScratch on ATI and reserve 64k of scratch space.
+ This provided a 3x speedup of rgb24text on my Radeon.
+
+2004-01-06 18:30 anholt
+
+ * radeon_composite.c: Speed things up slightly by removing Z values
+ from emitted vertices and by emitting as a tri fan rather than a
+ tri list. A rect list would save an additional vertex (out of 4)
+ per rectangle, but there's no measurable speed difference and the
+ tri fan may be useful when transforms come into play.
+
+2004-01-04 12:47 anholt
+
+ * ati_draw.c, radeon_composite.c: - Correctly set the texture
+ coordinate set source for the second texture unit. - Re-enable
+ Radeon's Composite accel now that fonts work again.
+
+2004-01-03 03:46 anholt
+
+ * ati_draw.c, radeon_composite.c: - Add more Composite operations,
+ including Saturate, to Radeon Composite accel. I don't 100%
+ trust that the math works for Saturate, but I can't tell from
+ existing information. - Fix texture pitch fallback checks. -
+ Fallback when src or mask have transforms. - Disable Radeon
+ Composite accel until the offset thing is fixed. - Set
+ offscreenPitch to 64 on Radeon thanks to new information and a
+ kaa fix. Fixes acceleration at width!=1024.
+
+2003-12-31 15:24 anholt
+
+ * radeon_composite.c: Some strange \240 character snuck into the
+ original commit of this file.
+
+2003-12-30 00:45 anholt
+
+ * ati_drawtmp.h: There's never a copy between different depths.
+ Remove the check.
+
+2003-12-30 00:23 anholt
+
+ * Makefile.am, ati_draw.c, ati_draw.h, ati_drawtmp.h, ati_reg.h,
+ radeon_composite.c: - Add new Composite hook for kdrive drivers,
+ which only ensures that the pixmaps are offscreen and don't
+ have alpha maps. It is the last case checked before going to
+ software fallback - Use the new Composite hook in the ati driver
+ to implement acceleration of most Composites that get done in
+ an xcompmgr environment on r100 series cards. It is only
+ available when using the DRM. There are still some corruption
+ issues, but the DRI is still non-default and I need to get this
+ into version control.
+
+2003-12-29 01:04 anholt
+
+ * Makefile.am: Add dependency lines so that servers are rebuilt
+ when server libraries are changed.
+
+2003-12-28 22:24 anholt
+
+ * Makefile.am, ati.c, ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h,
+ ati_dri.c, ati_dri.h, ati_dripriv.h, ati_reg.h, ati_sarea.h,
+ ati_stub.c, r128_blendtmp.h, r128_common.h, r128_sarea.h,
+ radeon_common.h, radeon_sarea.h: Merge dri-0-1-branch to trunk.
+ Notable changes: - Add libdrm and libdri. Portions of the DRI
+ extension are stubbed out. - Use the DRM in the ATI driver
+ when available. This provides a minor performance improvement
+ in x11perf, and opens the possibility of using the 3d hardware
+ for acceleration in the future. - Implement solid fill
+ acceleration for Composite in KAA. - Implement Blend hook for
+ Composite and use it on r128. - Fix a bug of mine that resulted
+ in overuse of offscreen memory. - Fix many miscellaneous bugs in
+ ATI driver and add PCI IDs.
+
+2003-12-28 21:10 anholt
+
+ * ati_drawtmp.h, r128_blendtmp.h: - Disable libdrm verbosity. It
+ isn't important enough yet to make a run-time flag for it. -
+ Fix the (void)atic; tricks to quiet unused variable warnings in
+ ATI template files. Mixing statements and variable defines works
+ in newer compilers, but not pdx's.
+
+2003-12-28 01:16 anholt
+
+ * ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h, ati_dri.c,
+ r128_blendtmp.h: - Allow acceleration between same-depth pixmaps,
+ rather than between anything and a dst that matched the screen
+ depth (fixes corruption for non-screen-depth src and makes more
+ acceleration possible). - Add ATI_FALLBACK macro and use it to
+ allow verbose descriptions of why hardware acceleration fails.
+ - Check that src and dst alignment meet requirements of the card
+ before accelerating. The BIOS may set up screens that don't
+ meet the requirements. - Fix the R128 offset alignment (32
+ bytes, not 8). - Enable Blend operation even if screen is 24bpp
+ (it will fail if the dest is 24bpp anyway).
+
+2003-12-27 02:46 anholt
+
+ * ati_reg.h, r128_blendtmp.h: Properly initialize texture registers
+ in Blend. Fixes problems with blending code such as whiteness in
+ test-render, or no blending at all.
+
+ Tested by: andersca
+
+2003-12-23 14:29 anholt
+
+ * Makefile.am, ati_draw.c, ati_drawtmp.h, ati_reg.h,
+ r128_blendtmp.h: - Implement acceleration of Composite on R128
+ when there is no mask, no transformation, no repeat, and only
+ certain ops are used. - Add debugging output for software
+ fallbacks for Composite. - Allow pixmaps in offscreen that don't
+ match root depth. - Clean up some mess in ati_reg.h.
+
+ Many thanks to andersca for a lot of this code.
+
+2003-12-09 21:01 anholt
+
+ * ati_draw.c: Add missing kaaDrawFini to ATI driver.
+
+2003-12-01 14:56 anholt
+
+ * Makefile.am, ati.c, ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h,
+ ati_dri.c, ati_dri.h, ati_dripriv.h, ati_reg.h, ati_sarea.h,
+ ati_stub.c, r128_common.h, r128_sarea.h, radeon_common.h,
+ radeon_sarea.h: - Initial add of enough of the DRI to create a 2d
+ driver that uses the DRM for its acceleration. - Converted the
+ ATI driver to use the DRM to execute rendering commands using
+ DMA instead of MMIO when available.
+
+2003-11-30 20:33 anholt
+
+ * Makefile.am, ati.c, ati.h, ati_stub.c: - Add fbdev mode-setting
+ backend to Xati. It and vesa are compiled in when available,
+ with fbdev being used by default. - Use depth 16 by default when
+ vesa backend is used. - Add MMIO defines for PowerPC (should be
+ in a common location).
+
+ Many thanks for Michel Daenzer for much of this code.
+
+2003-11-30 19:15 anholt
+
+ * ati.c: Add more RV250 PCI IDs.
+
+2003-11-30 17:46 anholt
+
+ * ati_draw.c: Remove sys/io.h inclusion from some files that didn't
+ need it, and change asm/io.h to sys/io.h in vga.c, which newer
+ Linux complains about.
+
+2003-11-25 14:39 anholt
+
+ * ati.c: Add new Radeon 9200 PCI IDs.
+
+2003-11-23 02:12 anholt
+
+ * ati_draw.c: - Fix Radeon offscreen pixmap pitch alignment. -
+ Remove usleeps from idle and waitavail code, recommended by
+ keithp. - Add a workaround for apparent broken acceleration with
+ Rage 128 and offset alignment with 8-bit acceleration (24-hack
+ and plain 8-bit). - Minor cleanup of setup code.
+
+2003-11-22 18:08 anholt
+
+ * ati.c: Add RV250 PCI IDs.
+
+2003-11-19 23:49 anholt
+
+ * ati.c, ati.h, ati_draw.c, ati_reg.h: - Fix a bug in pitch
+ alignment for offscren pixmaps. - Add 24-bit acceleration for
+ Xati using the 8-bit trick from mach64. - Add offscreen pixmap
+ support to Xati.
+
+2003-11-19 16:05 anholt
+
+ * ati.c, ati_draw.c: - Fix confusion of depth/bitsPerPixel in
+ ati_draw.c - Disable acceleration with 24bpp due to apparent
+ broken acceleration. Accel at 24bpp was the cause of the
+ crashes when people tried to use any depth over 16. XFree86
+ doesn't support 24 either. - Disable at < 8bpp, too. - Add the
+ other Rage 128 PCI IDs. - Remove unnecessary setting of scissor
+ registers (only default scissor gets used).
+
+2003-11-19 00:32 anholt
+
+ * .cvsignore, Makefile.am, ati.c, ati.h, ati_draw.c, ati_reg.h,
+ ati_stub.c: - Add PCI information (device/vendor id, bus
+ location) to KdCardAttr to help with ati, and future DRM
+ drivers. - Add new "ati" kdrive driver. It has ancestry in the
+ r128 driver from andersca, but took a detour through being the
+ WIP SiS 300 driver on the way. It supports Radeons (tested on
+ QD VIVO and 7500) and Rage 128. Current limitations include
+ that it requires depth 16 and that the other Rage 128 PCI IDs
+ aren't included yet.
+
diff --git a/hw/kdrive/ati/ati_reg.h b/hw/kdrive/ati/ati_reg.h
index c0c8dd29c..32291d8f4 100644
--- a/hw/kdrive/ati/ati_reg.h
+++ b/hw/kdrive/ati/ati_reg.h
@@ -282,6 +282,10 @@
#define R128_REG_PM4_MICRO_CNTL 0x07fc
# define R128_PM4_MICRO_FREERUN (1 << 30)
+#define RADEON_TV_MASTER_CNTL 0x0800
+# define RADEON_TV_MACROVISION (1 << 5)
+# define RADEON_TVCLK_ALWAYS_ON (1 << 30)
+
#define R128_REG_BM_CHUNK_0_VAL 0x0a18
# define R128_BM_PTR_FORCE_TO_PCI (1 << 21)
# define R128_BM_PM4_RD_FORCE_TO_PCI (1 << 22)
diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c
index e0453363a..b27a6403d 100644
--- a/hw/kdrive/src/kdrive.c
+++ b/hw/kdrive/src/kdrive.c
@@ -302,6 +302,7 @@ KdEnableScreen (ScreenPtr pScreen)
if (!(*pScreenPriv->card->cfuncs->enable) (pScreen))
return FALSE;
pScreenPriv->enabled = TRUE;
+ pScreenPriv->dpmsState = KD_DPMS_NORMAL;
pScreenPriv->card->selected = pScreenPriv->screen->mynum;
KdOffscreenSwapIn (pScreen);
if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor)