History log of /haiku/src/add-ons/accelerants/radeon_hd/accelerant.cpp
Revision Date Author Comments
# 65462c8c 08-Jul-2022 Alexander von Gluck IV <kallisti5@unixzen.com>

accelerant/radeon_hd: Allow failure to init card

* Previously, any accelerants failing would cause an
app_server crash.. so we would do everything in our
power to get "something"
* After hrev56252, the app_server properly handles
accelerant failures and vesa / framebuffer accelerants
should will be used.
* Thus, if no monitors were detected (due to none being
plugged-in, or some other fault), bail and return B_ERROR
so vesa fallback can give it a try.

Change-Id: Ib9695dd7cf1914e50547ca8661c55b80152a66a4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5442
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# e87cba34 06-Nov-2021 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Add handling of connector routing

* A first attempt at improving on #17377
* We haven't actually seen any cards using this
routing stuff yet pre-navi.
* We don't use the router information yet... but this might
improve things a bit on new cards.

Change-Id: I17962dfd8bb09e619a6084cd9571ccb9832fb19a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4697
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 3c181db6 20-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

vesa & radeon_hd: Remove unneeded and incorrect free().

In 47404f12f27fc45fc0c011b1c5ac6f0c1b52e0e6, a MemoryDeleter was added
to manage this memory instead of doing it manually; most of the free()s
were removed in that commit, but these were somehow missed.


# 47404f12 09-Dec-2020 X512 <danger_mail@list.ru>

accelerant: replace AreaCloner with AreaDeleter

Reduce code duplication.

Change-Id: Ice1a14fc7378382e89c3e5a1aea6fa21b903e436
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3482
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 38f17b01 28-Sep-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Polaris10 power distribution fix

* Helps prevent mainboard explosions and other bad stuff.
* ...maybe not explosions, but bad things.
* The RX 480 reference design can pull as much as 90W
from its PCIe slot at load. PCIe is rated for 75W.
* This change overloads the PCIe power cables vs the PCIe
slot. The PCIe power cables can handle going over spec.
* Untested since we really can't come close to loading a
RX 480 without hardware OpenGL ^_^
* Should be able to test on real hardware within a week.


# 6543bf0a 05-Dec-2014 Jonathan Hanna <jhanna@pangolin-systems.com>

radeon_hd: Ensure all PLL's are INVALID to begin with

* If something breaks, it is likely because the wrong PLL
is chosen later.


# e2c2a5ce 26-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix app_server bt regression introduced at hrev46862

* We adjusted the array of pointers to be larger, but
didn't adjust the malloc to be larger.
* Should solve #10563 and maybe #10536


# fca8407a 12-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix GPIOInfo pin shortage on some cards

* Some cards have a lot of pins!
* Should fix #10536
* Add a check to give a friendy warning if we find
more GPIO pins than what we are prepared for.
* Technically the maximum GPIO pins could be
ATOM device max * 2 (16 for i2c and other)
however lets leave some room for expansion.


# 539a6caf 03-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: More gpio rework

* Bump i2c data into it's own struct
* Populate gGPIOInfo with general gpio pins
(for things like HPD, and voltage control)
* Attach HPD gpio pins to connectors
* Dump trace info of HPD pins as well as i2c pins


# d96e6876 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: re-rework some pll code

* Grab pseudo pll SS info for early
Spread Spectrum access
* display_crtc_ss now takes a pll vs
a display for easy pll access


# 817c114d 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: rework some pll code

* Force fractional feedback divider on APU's
* Spread Spectrum is now probed more correctly
across multiple encoders and cards
* SS still disabled however.


# 63624e40 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: reorganize some pll code

* Move DisplayPort external pixel clock out of pll
as this frequency is card-wide.
* Add new function to pull display clock frequency
and other card-wide settings.
* Set displayDefault frequency card-wide
* My DisplayPort LVDS bridge laptop now kind of works
(a clock somewhere seems a little off though)


# 325089f1 14-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Stub out gfx ring boot.

* Tab fix as well


# 745450ad 11-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: More initial ring queue work

* Rename RenderQueue to RingQueue to be more generic
* We will need two Ring Buffer types, one for
host -> gpu (render/cp data) and one gpu -> host (irq)
* Add header guard to ringqueue.h
* Things still may change as I work up to a bigger picture.


# 0de9d6cd 06-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Move out some DisplayPort common code

* General DisplayPort functions in common dp.cpp
* DP port information struct in common header
* Please don't use this private accelerant common DP
code just yet as it is very early.


# 7dd18210 01-Mar-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix invalid encoder state

* This was a *big* oops on my part.
* We were missing initial setup call for
Kaleidoscope and DP Bridge encoders.
* If you were having radeon HD mode setting
issues, try this change.
* Potential fix for #5722, #7397, #8059, #8151, #8282,
#8289, #8310, #8322, #8331


# 4ee41b26 22-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Disable spread spectrum

* SS requires complex pll adjustments that we don't do atm


# d2a69507 29-Jan-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: A few style fixes, no functional change


# f2c3cbf7 13-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Begin work powering up the DisplayPort connector

* Add new struct to store DP connector information
* DisplayPort Configuration Data is populated by setup function


# 0cd5024d 09-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Pointer style cleanup; Variable consolidation


# 61cf7133 09-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Include file style cleanup, no functional change


# 104c404c 08-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Move connector code into new connector source file.

* clean up some comments
* most of this movement is prep for AUX display transactions


# 4540f5e9 08-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Create connector source file, move connector bus calls into it

* this will help break apart some of the sources
* display bus communications really don't belong with GPU operations
* rename functions to better describe their actions


# 30207c6c 27-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Move thermal query into new driver sensor source file

* thermal query still works pre-atombios init


# 0cd97231 21-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add first hints of thermal monitoring on radeon cards

* add a few missing/needed header defines
* show GPU temp in millidegrees C on r600/r700
* evergreen+ support soon
* function may be moved to driver long term once testing done


# 91affb2d 12-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add legacy card connectior detection using table method
* attempt AtomBIOS table probe first, then fallback to legacy method if
no connectors found (or table version is too old)
* add function to look up object info on older cards
* dcc still needs some work on old cards
* my X1200 IGP gets video now


# 359b926f 08-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* style cleanup of shared storage names
* return better data on card
* display chipset flags in screen preflet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46af8165 25-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* redesign pretty much everything frame buffer related
* don't resize the frame buffer after mapping it.. doesn't make sense
* add memory controller code and program the memory controller for r600
* remove unneeded frame_buffer_int
* don't malloc mc_info, waste of time
* fix scaler setting
* vramStart in mc should be 0... get vertical colored lines however when this
this is set properly (everything in mc_info is the MC view of FB BAR)
When vramStart is the FB physical address... i get proper video on some cards
... thoughts?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7934da0f 12-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add *very* preliminary dpms support
we will need to query the card dpms state
for each monitor at a later date


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd295058 27-Sep-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remap GPIO pin storage to global struct as they really aren't tied to
a connector. (thus allowing for future non-ddc gpio devices like fan speed)
* map all i2c gpio pins on accelerant init
* use a smaller sub function to attach gpio info to connector i2c info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42773 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54c0390b 14-Sep-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove un-needed i2c_bus on each connector... we simply set this up each time
it's needed using the gpio information
* rename gpio information struct to be cleaner and shorter
* add function to debug found connectors
* set gpio mask to 1 vs the defined mask... this seems to get us closer
to working ddc / edid per connector
* change gpio_info u16's to u32's to ensure we aren't overflowing anything
* fix bug always setting hw_capable true
* change TRACE to ERROR to always show debug data when called


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77b301cb 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* tab fix, no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec89b986 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove excess NULL check


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aee8efc2 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add gConnector for card connector storage
* add detect_connectors to detect card connectors
* add infinitely compex detect_connectors_manual
(used when detect_connectors fails)
* add missing AtomBIOS header


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42670 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3e8b642 19-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* introduce mc control calls
* malloc storage for mc state info
* redo pll range struct
* change to ATOM_ENCODER_MODE for connector info
* redo pll calculations to match AtomBIOS requirements
* some structure changes
* no longer init already posted AtomBIOS as it
causes an infinite loop of AtomBIOS calls


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42644 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d356bf50 10-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* consolidate and remove unneeded Xorg headers
* move mc code to more generic gpu source/header
* add gpu reset functions (with r600 documented)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0b0d6cb 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* use create_area correctly
* AtomBIOS is now loaded and passed into the radeon_hd accelerant
* correct pointer passing in bios_init
* AtomBIOS is now read and initialized by AtomBIOS parser
* feel free to start testing the driver again :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2168cdbd 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* bug fix, wrong offset


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f98c183 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* create area for AtomBIOS
* clone mapped AtomBIOS area into accelerant


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42560 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5cf44dda 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move obtaining / copying the vga bios into the driver.
* add missing r500 header
* replace r600 headers with newer one from kernel


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d5cfc64 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move bios functions into bios.cpp
* implement various methods to pull AtomBIOS from card
* add some missing registers to headers from linux drm driver


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42553 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81cd6636 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* refactor accelerant debugging
* clone VGA rom shared area in accelerant
* enable access, and make a copy of the VGA bios
* give malloc'ed VGA bios pointer to AtomBIOS parser
* Still invalid BIOS magic
* TODO : Move atomBIOS pointer and reorganize some stuff


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef2909a1 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Move bios_info into shared info
* Pull pci_rom base address from pci subsystem
* Point AtomBIOS parser to pci rom address
to set up and malloc atom_context
* This is untested! Don't run on an
expensive card until I test it on a cheaper
one!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 51360674 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Initial work on bios_init for setting up AtomBIOS parser
* Refactor AtomBIOS parser to use non-linux-kernel calls
(normally I would keep it as-is and do wrappers, but the
AtomBIOS parser has been rewritten from scratch twice
by its creator in the last 5 years.. so eh.
* Refactor AtomBIOS parser to be more haiku-like stylewise


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2df3def5 01-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Remove old legacy internal AtomBIOS parser
* Import "new" AMD AtomBios Parser (aka AMD KGrids)
* Add a new global storage struct for BIOS info
(ex. location, size, etc)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e3075fb 30-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Provide device chipset in accelerant_device_info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42516 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ab8261b 30-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Pass device name into shared info
* Refactor MCFBsetup to be a little simpler for now
* Implement radeon accelerant_device_info for screen preflet
* Re-add CRT Power calls to display code.
* Disable blanking setting for now... just can't figure out
what AMD wants for this.
* Remove some un-needed locking in the scaling code
* Be sure to disable VGA when set_display_mode is called
* Refactor mode setting code to loop over all possible displays
and set the provided mode on the attached ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1b9d6e6 28-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add LVDS handling for TMDSB
* Fix crash situation if no monitors detected
* Assume TMDSB if no monitors sensed (temporary)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a956672a 26-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Fix a few spots where we were checking for NULL unneededly
* Fix a few spots where we *should* of been checking for NULL
to prevent referencing a null pointer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d17bf8d4 22-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add fancy detected monitors debug function

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f09dc6d9 21-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Small bit of comment cleanup
* Rename crt_info display_info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42463 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 95e1d7e8 21-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Large refactoring of display detection and storage
* Create new display.c/h for display management
* Rename global gCRT to gDisplay
* Add CRT connection type into gDisplay
* Add CRT connection index into gDisplay
* Refactor registers for each display into gDisplay via regs
* We now shouldn't freak out too badly on multi-monitors


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84bcfa3d 12-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add mc.cpp for memory controller functions
* Remove read32MC as it doesn't apply to radeon cards >= r600
* Add tmds.cpp for tmds connected monitor management (current radeons
only have TMDSA for the moment) still needs TDMSPower, etc.
* Add some MC calls to mode.cpp, causes KDL so commented out atm.
* Add command to idle all DACs (although POWER_RESET doesn't do
anything on DACs, we should be consistent)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3fe78837 11-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove superfluous parentheses as per Axel

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42411 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6c5f468 04-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add D2 GRPH update lock register to priv headers
* Add crtControl global register
* Add grphUpdate storage
* Do some logical reordering of register writes
* Correct crt final power-on checks
* Enhance tracing
* Disable PLL, it is needed but seems to completely break
the modesetting resulting in black-screen-of-doom.
(fixing PLL set/calibration is now priority one)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d1d65a79 15-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* malloc an array of pointers to hold active crt info, mode, limits, etc.
Plan to move gRegister into the crt struct at some point.
* Few style fixes
* Added function to probe edid of attached monitors and populate CRT info
* Disable VGA control modifications temporarly while I hammer out some issues.
* Fix radeon card model checks (bitwise & is not |)
* Finally fix? blanking start / end calculations using porch
* Use mask for setting sync polarity
* Add overscan (8 pixels is default?)
* Disable PLLSet/Power for the moment as it seems to muck things up.
* is_mode_supported now validates if a mode line is with the monitors
h/v sync frequencies (how does is_mode_supported know what crt the os wants?)
* PLL Write/Read don't actually use the PLL Write/Read functions (thanks AMD!)
* Added better PLL legacy (r600-r610) support
* Consistantly give no DCCG on legacy cards.
* Tracing!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42191 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9e412b3 13-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Repair style issue using uintNN_t vs uintNN
* Make index numbering consistant (0-n vs 1-n)
* Add a little more tracing to PLLCalibrate because
we were missing a failure situation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# babb12ed 12-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

forgot to remove this, doesn't make sense to power the PLL down on accelerant unload

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7e76b29 12-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Define default PLL ranges
* Add crtid to register struct
* Disable VGA mode on FrameBuffer set (enables extended mode setting)
* Disable blanking calculations and setting more gracefully via if 0
* Add a *large* amount of code to Set/Calculate/Calibrate PLL
* Disable PLL on removal of accel.
* Remove junk comments on overscan
* Enable pixel clock limit pulling
* write32AtMask style cleanup
* Rename ReadMC to be more consistant
(I need to adjust naming for these MMIO calls)
* Implement read/write MC. (so many hardcoded oneoffs AMD)
* Implement write32PLLAtMask MMIO call


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42146 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1dac4469 02-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

added scale update locking register; remove leftover intel hack thats not needed on Radeon; fix gcc4 warning on card model comparison

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 217c0b1d 26-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add surface address high handling; set primary and secondary surface frame buffer offset

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f6744a8 25-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move all register calculation into init_registers to
keep things simple to troubleshoot
* use crt offset only on evergreen, else use AMD provided
register locations
* init_registers(crtid) is called before making register calls
to a monitor.
* init_registers supports 1-2 displays on r600-r700
* init_registers supports 1-6 displays on r800+ (AMD eyefinity)
* restore CardBlankSet function in a more simple form
(still needs init_registers addition)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56e6d991 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

make math easier to read; fix chipset int length; additions to CardScale

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c41d9ce6 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add viewport registers; correct chipset dependent scale code; rename virtualheight to make it more consistant; spell check

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd34b2f7 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* enhance tracing of accelerant
* introduce a global struct to hold register locations for
Radeon HD chipset model this accelerant was spawned for.
* add Radeon 5430 PCIID


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47ad511f 19-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

pre-work style cleanup; no functional change

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41028 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66f1ecda 21-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Start to cleanup radeon_hd driver.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a90ebd77 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress of a Radeon HD 3200 driver to change the display mode (status when I leave the coding spring). At least it shows a picture but with a wrong scaling.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36243 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6543bf0ae1dce2fe76ecc09e048038b55d7313d5 05-Dec-2014 Jonathan Hanna <jhanna@pangolin-systems.com>

radeon_hd: Ensure all PLL's are INVALID to begin with

* If something breaks, it is likely because the wrong PLL
is chosen later.


# e2c2a5cefe6e87fcd24f4aea19bbc176e657d4a6 26-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix app_server bt regression introduced at hrev46862

* We adjusted the array of pointers to be larger, but
didn't adjust the malloc to be larger.
* Should solve #10563 and maybe #10536


# fca8407a2aee68297fd5f7a357c060ce783c572f 12-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix GPIOInfo pin shortage on some cards

* Some cards have a lot of pins!
* Should fix #10536
* Add a check to give a friendy warning if we find
more GPIO pins than what we are prepared for.
* Technically the maximum GPIO pins could be
ATOM device max * 2 (16 for i2c and other)
however lets leave some room for expansion.


# 539a6cafc5882376475309b5adf0c207caf94716 03-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: More gpio rework

* Bump i2c data into it's own struct
* Populate gGPIOInfo with general gpio pins
(for things like HPD, and voltage control)
* Attach HPD gpio pins to connectors
* Dump trace info of HPD pins as well as i2c pins


# d96e68765247f837b3787879cfcde72d3311d4d2 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: re-rework some pll code

* Grab pseudo pll SS info for early
Spread Spectrum access
* display_crtc_ss now takes a pll vs
a display for easy pll access


# 817c114de7e2e71d98adccb66358e94244a1486a 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: rework some pll code

* Force fractional feedback divider on APU's
* Spread Spectrum is now probed more correctly
across multiple encoders and cards
* SS still disabled however.


# 63624e404b5eb6fc11a503331e67ce29af074021 07-Aug-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: reorganize some pll code

* Move DisplayPort external pixel clock out of pll
as this frequency is card-wide.
* Add new function to pull display clock frequency
and other card-wide settings.
* Set displayDefault frequency card-wide
* My DisplayPort LVDS bridge laptop now kind of works
(a clock somewhere seems a little off though)


# 325089f1fcf20eb45c83e834e23f810f0533aa57 14-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Stub out gfx ring boot.

* Tab fix as well


# 745450ade8a43afb540bae9fd1e17fb3ba0e0842 11-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: More initial ring queue work

* Rename RenderQueue to RingQueue to be more generic
* We will need two Ring Buffer types, one for
host -> gpu (render/cp data) and one gpu -> host (irq)
* Add header guard to ringqueue.h
* Things still may change as I work up to a bigger picture.


# 0de9d6cdeffaa5525911a1ecf1bcb3afb1862efb 06-Apr-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Move out some DisplayPort common code

* General DisplayPort functions in common dp.cpp
* DP port information struct in common header
* Please don't use this private accelerant common DP
code just yet as it is very early.


# 7dd182106a9df09dd5804b47013a9232163881a3 01-Mar-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Fix invalid encoder state

* This was a *big* oops on my part.
* We were missing initial setup call for
Kaleidoscope and DP Bridge encoders.
* If you were having radeon HD mode setting
issues, try this change.
* Potential fix for #5722, #7397, #8059, #8151, #8282,
#8289, #8310, #8322, #8331


# 4ee41b26a00408835f410ee25b3241093c7f40d9 22-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: Disable spread spectrum

* SS requires complex pll adjustments that we don't do atm


# d2a69507d07969763a817447be9259b102e716ce 29-Jan-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: A few style fixes, no functional change


# f2c3cbf779c2c74d743223bfea37cfaad2efc3a5 13-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Begin work powering up the DisplayPort connector

* Add new struct to store DP connector information
* DisplayPort Configuration Data is populated by setup function


# 0cd5024dbb8c0b979798d10528cb8140470f129d 09-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Pointer style cleanup; Variable consolidation


# 61cf713381b5ef727d0b1d78306dacde4887b8f5 09-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Include file style cleanup, no functional change


# 104c404c7edb585d7d4d6f88ad99d6525e6f1022 08-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Move connector code into new connector source file.

* clean up some comments
* most of this movement is prep for AUX display transactions


# 4540f5e929448b82266a16ad5c2ea9d5f6ed5ed3 08-Dec-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Create connector source file, move connector bus calls into it

* this will help break apart some of the sources
* display bus communications really don't belong with GPU operations
* rename functions to better describe their actions


# 30207c6c8c18cafcc5451a7d5e4cb9c6b7c2c4e2 27-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Move thermal query into new driver sensor source file

* thermal query still works pre-atombios init


# 0cd972316db9c56329f5f4e414826c3a01237f33 21-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add first hints of thermal monitoring on radeon cards

* add a few missing/needed header defines
* show GPU temp in millidegrees C on r600/r700
* evergreen+ support soon
* function may be moved to driver long term once testing done


# 91affb2da4f93bb3ac3012e59da2bf94520e2a43 12-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add legacy card connectior detection using table method
* attempt AtomBIOS table probe first, then fallback to legacy method if
no connectors found (or table version is too old)
* add function to look up object info on older cards
* dcc still needs some work on old cards
* my X1200 IGP gets video now


# 359b926f79d7e7ac697d6aaf28f704b5d5f1283f 08-Nov-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* style cleanup of shared storage names
* return better data on card
* display chipset flags in screen preflet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43226 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 46af81655d98616bb2c30a2b76563a3d440ded16 25-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* redesign pretty much everything frame buffer related
* don't resize the frame buffer after mapping it.. doesn't make sense
* add memory controller code and program the memory controller for r600
* remove unneeded frame_buffer_int
* don't malloc mc_info, waste of time
* fix scaler setting
* vramStart in mc should be 0... get vertical colored lines however when this
this is set properly (everything in mc_info is the MC view of FB BAR)
When vramStart is the FB physical address... i get proper video on some cards
... thoughts?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7934da0f090bc6970fc259eff3f171e27966eeee 12-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add *very* preliminary dpms support
we will need to query the card dpms state
for each monitor at a later date


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42829 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd295058932cfb721aff7b714256dd9e5c334952 27-Sep-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remap GPIO pin storage to global struct as they really aren't tied to
a connector. (thus allowing for future non-ddc gpio devices like fan speed)
* map all i2c gpio pins on accelerant init
* use a smaller sub function to attach gpio info to connector i2c info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42773 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54c0390b901eb0606bc6c0b46fb0e0c6530f4eda 14-Sep-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove un-needed i2c_bus on each connector... we simply set this up each time
it's needed using the gpio information
* rename gpio information struct to be cleaner and shorter
* add function to debug found connectors
* set gpio mask to 1 vs the defined mask... this seems to get us closer
to working ddc / edid per connector
* change gpio_info u16's to u32's to ensure we aren't overflowing anything
* fix bug always setting hw_capable true
* change TRACE to ERROR to always show debug data when called


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42751 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 77b301cb8b0d4beb85e63c9f5b23df46c30a8b0a 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* tab fix, no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec89b9861735027eafcafa825b4f344a67ac562d 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove excess NULL check


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42673 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aee8efc2449441c243e759cd0ca41ee024894481 21-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add gConnector for card connector storage
* add detect_connectors to detect card connectors
* add infinitely compex detect_connectors_manual
(used when detect_connectors fails)
* add missing AtomBIOS header


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42670 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3e8b64208159ab71ca24f58ec7e56f1aa4bb5e6 19-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* introduce mc control calls
* malloc storage for mc state info
* redo pll range struct
* change to ATOM_ENCODER_MODE for connector info
* redo pll calculations to match AtomBIOS requirements
* some structure changes
* no longer init already posted AtomBIOS as it
causes an infinite loop of AtomBIOS calls


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42644 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d356bf503359f7581ac6c596588e70eff1f55117 10-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* consolidate and remove unneeded Xorg headers
* move mc code to more generic gpu source/header
* add gpu reset functions (with r600 documented)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f0b0d6cb37165d71817c17d35329adb266420ba2 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* use create_area correctly
* AtomBIOS is now loaded and passed into the radeon_hd accelerant
* correct pointer passing in bios_init
* AtomBIOS is now read and initialized by AtomBIOS parser
* feel free to start testing the driver again :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42564 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2168cdbddd20f4986d829cf31e61b92f1a42c242 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* bug fix, wrong offset


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3f98c1831c538d84e71cb38ec4e89d19e735d02d 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* create area for AtomBIOS
* clone mapped AtomBIOS area into accelerant


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42560 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5cf44dda39962b528f9791e7bfc2f98a9e882478 03-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move obtaining / copying the vga bios into the driver.
* add missing r500 header
* replace r600 headers with newer one from kernel


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42554 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d5cfc649aeba62066af20336ca69566566500c3 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move bios functions into bios.cpp
* implement various methods to pull AtomBIOS from card
* add some missing registers to headers from linux drm driver


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42553 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 81cd6636667750c27d5bad289fa2625926d7c953 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* refactor accelerant debugging
* clone VGA rom shared area in accelerant
* enable access, and make a copy of the VGA bios
* give malloc'ed VGA bios pointer to AtomBIOS parser
* Still invalid BIOS magic
* TODO : Move atomBIOS pointer and reorganize some stuff


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef2909a10ff51b6d543e9208e84055ad1af1a8c5 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Move bios_info into shared info
* Pull pci_rom base address from pci subsystem
* Point AtomBIOS parser to pci rom address
to set up and malloc atom_context
* This is untested! Don't run on an
expensive card until I test it on a cheaper
one!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5136067474e5350ce28b33e809580dd8118166c1 02-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Initial work on bios_init for setting up AtomBIOS parser
* Refactor AtomBIOS parser to use non-linux-kernel calls
(normally I would keep it as-is and do wrappers, but the
AtomBIOS parser has been rewritten from scratch twice
by its creator in the last 5 years.. so eh.
* Refactor AtomBIOS parser to be more haiku-like stylewise


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42538 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2df3def596241bbf68767401c5ae11b11290536b 01-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Remove old legacy internal AtomBIOS parser
* Import "new" AMD AtomBios Parser (aka AMD KGrids)
* Add a new global storage struct for BIOS info
(ex. location, size, etc)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0e3075fb4d4a9f769cec675242280be1193ef464 30-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Provide device chipset in accelerant_device_info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42516 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6ab8261b98f59b9751c7178a4df66bf1ae0fa66e 30-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Pass device name into shared info
* Refactor MCFBsetup to be a little simpler for now
* Implement radeon accelerant_device_info for screen preflet
* Re-add CRT Power calls to display code.
* Disable blanking setting for now... just can't figure out
what AMD wants for this.
* Remove some un-needed locking in the scaling code
* Be sure to disable VGA when set_display_mode is called
* Refactor mode setting code to loop over all possible displays
and set the provided mode on the attached ones.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1b9d6e6743b027ba89a78d381ea398d79ec7822 28-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add LVDS handling for TMDSB
* Fix crash situation if no monitors detected
* Assume TMDSB if no monitors sensed (temporary)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42508 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a956672a338292e4e7d9b4f910c82cf9e64466f8 26-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Fix a few spots where we were checking for NULL unneededly
* Fix a few spots where we *should* of been checking for NULL
to prevent referencing a null pointer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42505 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d17bf8d4fb5081fe32f158c8d5241966fdc5f072 22-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add fancy detected monitors debug function

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42465 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f09dc6d9754acb87367a324f36acd634d58f999a 21-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Small bit of comment cleanup
* Rename crt_info display_info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42463 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 95e1d7e8288c9eb390705b0fa6e735ff091a0e65 21-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Large refactoring of display detection and storage
* Create new display.c/h for display management
* Rename global gCRT to gDisplay
* Add CRT connection type into gDisplay
* Add CRT connection index into gDisplay
* Refactor registers for each display into gDisplay via regs
* We now shouldn't freak out too badly on multi-monitors


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 84bcfa3d4bc3f64b82bb80e0b5e88e284f191627 12-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add mc.cpp for memory controller functions
* Remove read32MC as it doesn't apply to radeon cards >= r600
* Add tmds.cpp for tmds connected monitor management (current radeons
only have TMDSA for the moment) still needs TDMSPower, etc.
* Add some MC calls to mode.cpp, causes KDL so commented out atm.
* Add command to idle all DACs (although POWER_RESET doesn't do
anything on DACs, we should be consistent)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42416 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3fe788377828eb76c862aa4e58c000086b41d884 11-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove superfluous parentheses as per Axel

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42411 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b6c5f46896776d67f4b48af4584fb989dddda162 04-Jul-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Add D2 GRPH update lock register to priv headers
* Add crtControl global register
* Add grphUpdate storage
* Do some logical reordering of register writes
* Correct crt final power-on checks
* Enhance tracing
* Disable PLL, it is needed but seems to completely break
the modesetting resulting in black-screen-of-doom.
(fixing PLL set/calibration is now priority one)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d1d65a79cbba5eb871c2763824839ee56930a557 15-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* malloc an array of pointers to hold active crt info, mode, limits, etc.
Plan to move gRegister into the crt struct at some point.
* Few style fixes
* Added function to probe edid of attached monitors and populate CRT info
* Disable VGA control modifications temporarly while I hammer out some issues.
* Fix radeon card model checks (bitwise & is not |)
* Finally fix? blanking start / end calculations using porch
* Use mask for setting sync polarity
* Add overscan (8 pixels is default?)
* Disable PLLSet/Power for the moment as it seems to muck things up.
* is_mode_supported now validates if a mode line is with the monitors
h/v sync frequencies (how does is_mode_supported know what crt the os wants?)
* PLL Write/Read don't actually use the PLL Write/Read functions (thanks AMD!)
* Added better PLL legacy (r600-r610) support
* Consistantly give no DCCG on legacy cards.
* Tracing!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42191 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d9e412b3394847a98fb7bcf85daa3ee59bb765fc 13-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Repair style issue using uintNN_t vs uintNN
* Make index numbering consistant (0-n vs 1-n)
* Add a little more tracing to PLLCalibrate because
we were missing a failure situation


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42158 a95241bf-73f2-0310-859d-f6bbb57e9c96


# babb12ed0e5c6b46ae29cced3f0b9e4081eeee1a 12-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

forgot to remove this, doesn't make sense to power the PLL down on accelerant unload

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42147 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e7e76b29e839204be635b9f10dd52a41837e20bd 12-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* Define default PLL ranges
* Add crtid to register struct
* Disable VGA mode on FrameBuffer set (enables extended mode setting)
* Disable blanking calculations and setting more gracefully via if 0
* Add a *large* amount of code to Set/Calculate/Calibrate PLL
* Disable PLL on removal of accel.
* Remove junk comments on overscan
* Enable pixel clock limit pulling
* write32AtMask style cleanup
* Rename ReadMC to be more consistant
(I need to adjust naming for these MMIO calls)
* Implement read/write MC. (so many hardcoded oneoffs AMD)
* Implement write32PLLAtMask MMIO call


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42146 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1dac446909d2021e9b83beaf3e2181a0cbc05e7d 02-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

added scale update locking register; remove leftover intel hack thats not needed on Radeon; fix gcc4 warning on card model comparison

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 217c0b1d48b152376e738e2d6355854f4b872fa7 26-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

Add surface address high handling; set primary and secondary surface frame buffer offset

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5f6744a8cd01e15c8aa5b35ecd5fe695d970e923 25-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* move all register calculation into init_registers to
keep things simple to troubleshoot
* use crt offset only on evergreen, else use AMD provided
register locations
* init_registers(crtid) is called before making register calls
to a monitor.
* init_registers supports 1-2 displays on r600-r700
* init_registers supports 1-6 displays on r800+ (AMD eyefinity)
* restore CardBlankSet function in a more simple form
(still needs init_registers addition)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 56e6d991bb7d55b7dcf3a8c90a7fa2e563064908 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

make math easier to read; fix chipset int length; additions to CardScale

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41561 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c41d9ce6948f2ca9eecc8956e811a9b493fcd8a6 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add viewport registers; correct chipset dependent scale code; rename virtualheight to make it more consistant; spell check

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bd34b2f7561f6392d63beded878e77acdc802e4b 17-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* enhance tracing of accelerant
* introduce a global struct to hold register locations for
Radeon HD chipset model this accelerant was spawned for.
* add Radeon 5430 PCIID


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41555 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47ad511f59522fc3a7025aaf2cfef073204d8312 19-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

pre-work style cleanup; no functional change

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41028 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66f1ecdae725e487a3180c3f465f79e353bc07e8 21-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Start to cleanup radeon_hd driver.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36393 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a90ebd77eeae5eca9600d039dc1298898e38278a 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress of a Radeon HD 3200 driver to change the display mode (status when I leave the coding spring). At least it shows a picture but with a wrong scaling.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36243 a95241bf-73f2-0310-859d-f6bbb57e9c96