History log of /haiku/src/add-ons/accelerants/radeon_hd/bios.cpp
Revision Date Author Comments
# 6fe3a560 23-May-2020 Pascal Abresch <nep@packageloss.eu>

radeon_hd: tell ATOMbios that we handle brightness control

In hrev55767, a previous patch added the needed code for Haiku to control the display brightness. However, we didn't tell the video card BIOS about it, and so the card could also control the brightness by itself.

This disables BIOS based brightness control and lets Haiku take over cleanly.

Change-Id: Ie0e8f7e653c2d4773c463d21246f2ccc6ec8f441
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7116
Reviewed-by: nephele nephele <nep-git@packageloss.eu>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# f73f5d4c 29-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Initial changes to remove /boot/common

* find_directory() and hard-coded paths use /boot/system instead of
/boot/common.
* The build system creates the writable directories in /boot/system
instead of /boot/common.
* The build system no longer installs any packages in /boot/common.


# 93aac98d 30-Jul-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: r5xx to Avivo define cleanup

* Reorganize and clean up card defines
* Fix define spaces
* Unify card naming
* No (real) functional change


# 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


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

Add card post detection for legacy models
* check for older cards, and see if they are posted
using the older pre-avivo registers


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

* correct gcc2 warning about always true situation
* style fix


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


# 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


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

* add lots of missing evergreen defines
* evergreen headers are split due to different
header copyrights
* detect and set up evergreen memory controler
* change the way we manage radeon chipsets to
more closely match drm driver as the chipset
model numbers aren't in order and change from
numbers to names.
* check for evergreen when populating frame buffer
information.
* style cleanup


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


# f66a1a8d 16-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* fix TODO style due to ML
* rename bpc to bitsPerChannel
* remove un-needed / unused PCI BAR reference
* no functional change


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


# 53aac744 13-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* there is only one DDC channel on DVI-I connectors. as such
we get valid EDID data for two physical connectors (one analog, one digital)
Check for load on the analog or assume digital and keep rolling as normal
* style fix, rename bios_*_scratch to biosScratch*


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


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

* style fix
ensure bitwise ands are compared to 0 or non 0 as per Axel


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


# 936aec74 09-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove some legacy code
* don't init asic unless needed
* do dpms by hand on mode set
* detect tv and skip during detection for now


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


# 11390ce0 20-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* correction to AtomBIOS register loopback calls
* cail calls have their registers multiplied by 4
* solves infinite loops


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42647 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


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

* add card instance to accelerant shared info
* when TRACE_ATOM is enabled in bios.c, we dump
each accelerant instance of the AtomBIOS rom
to disk in /boot/common/cache/tmp/ (next to usb
hid descriptors in the same file name format)
* these images can be parsed with the AtomDis application


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42622 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


# 0cd93754 06-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* init scratch before card post
* B_OK != 1!, so don't if (status_t)


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


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

* add allocation of atombios fb scratch
* add free of allocated fb scratch


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


# 7a2d0c5e 06-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* lets not make AtomBIOS calls until our
semaphore is created :)
* delete semaphore on AtomBIOS destroy


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


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

* more style cleanup
* backport additional bugfixes from drm version
* add logic to detect infinite execution loops
* add a semephore to prevent multiple executions on
non-thread safe code ( this needs testing )


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


# 6da3f7d4 05-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* lots of changes
* add missing header for some radeon registers
* begin removing now un-needed direct register calls
* move and refactor crtc functions
* fix function naming to be clearer
* create more AtomBIOS style calls
* this will eat your cat at the moment, don't bother testing


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


# d77ff85e 04-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add required atombios.h from drm driver from linux 3.0 with a few tweaks
(we aren't taking ownership of this one.. yikes)
* add first AtomBIOS call to test the waters


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42578 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


# 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


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

* Map AtomBIOS specified by PCI rom into virtual memory
* Point AtomBIOS to PCI rom mapped in memory
* Things no longer crash, but we get an Invalid BIOS Magic error
in the logs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42543 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


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

* Add AtomBIOS memory controller callbacks

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


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

* Move to common MMIO function set to make card subsystem access easier

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42159 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


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

remove AtomInit.. breaks radeon_hd build due to missing return and I have a while until I can implement it fully

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41873 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


# eb1b3e42 01-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

implement AtomBios CailRead/WriteFBData callbacks

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


# 12c25669 05-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

enhance tracing of the radeon_hd accelerant

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


# 08e39e82 03-Apr-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add new Write/Read PLL calls to AtomBios callbacks

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


# 1927d0ab 01-Apr-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add basic register read/write to AtomBIOS callbacks

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


# ff37eb80 28-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

enable bios.c in Jamfile; impliment malloc/free/delay Cail callbacks; stub out rest of the Cail callbacks for now

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


# 63f50c21 26-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

put AtomParser into header file, clean up var names to match style guidelines

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


# 0ceb8395 26-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add first accelerant atombios wrapper sources, atombios is now accessible from accelerant; atombios calls PCI register read/write routines from the main accelerant that need implimented, thus bios.cpp is disabled atm... going to be tricky

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


# f73f5d4c42a01ece688cbb57b5d332cc0f68b2c6 29-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Initial changes to remove /boot/common

* find_directory() and hard-coded paths use /boot/system instead of
/boot/common.
* The build system creates the writable directories in /boot/system
instead of /boot/common.
* The build system no longer installs any packages in /boot/common.


# 93aac98d0a9b8ce27f94eb449cfc742446a50274 30-Jul-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

radeon_hd: r5xx to Avivo define cleanup

* Reorganize and clean up card defines
* Fix define spaces
* Unify card naming
* No (real) functional change


# 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


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

Add card post detection for legacy models
* check for older cards, and see if they are posted
using the older pre-avivo registers


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

* correct gcc2 warning about always true situation
* style fix


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


# 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


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

* add lots of missing evergreen defines
* evergreen headers are split due to different
header copyrights
* detect and set up evergreen memory controler
* change the way we manage radeon chipsets to
more closely match drm driver as the chipset
model numbers aren't in order and change from
numbers to names.
* check for evergreen when populating frame buffer
information.
* style cleanup


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


# f66a1a8d71e68f2c725fa556af7b9983a85e057e 16-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* fix TODO style due to ML
* rename bpc to bitsPerChannel
* remove un-needed / unused PCI BAR reference
* no functional change


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


# 53aac74407d7640cbc6cea89f3b1c916a58e411e 13-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* there is only one DDC channel on DVI-I connectors. as such
we get valid EDID data for two physical connectors (one analog, one digital)
Check for load on the analog or assume digital and keep rolling as normal
* style fix, rename bios_*_scratch to biosScratch*


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


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

* style fix
ensure bitwise ands are compared to 0 or non 0 as per Axel


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


# 936aec7461bdc3312c60b4dc86a2d31ed57c8e2b 09-Oct-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* remove some legacy code
* don't init asic unless needed
* do dpms by hand on mode set
* detect tv and skip during detection for now


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


# 11390ce01066c914a90522c71a75a3283f2c6d87 20-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* correction to AtomBIOS register loopback calls
* cail calls have their registers multiplied by 4
* solves infinite loops


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42647 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


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

* add card instance to accelerant shared info
* when TRACE_ATOM is enabled in bios.c, we dump
each accelerant instance of the AtomBIOS rom
to disk in /boot/common/cache/tmp/ (next to usb
hid descriptors in the same file name format)
* these images can be parsed with the AtomDis application


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42622 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


# 0cd93754a4038ed73c61ce34dd398c14b3ec6dee 06-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* init scratch before card post
* B_OK != 1!, so don't if (status_t)


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


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

* add allocation of atombios fb scratch
* add free of allocated fb scratch


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


# 7a2d0c5e92cc77ee5a59c924a2d083e0f711a89a 06-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* lets not make AtomBIOS calls until our
semaphore is created :)
* delete semaphore on AtomBIOS destroy


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


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

* more style cleanup
* backport additional bugfixes from drm version
* add logic to detect infinite execution loops
* add a semephore to prevent multiple executions on
non-thread safe code ( this needs testing )


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


# 6da3f7d4c1de302697f5d948057a68dd428277f6 05-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* lots of changes
* add missing header for some radeon registers
* begin removing now un-needed direct register calls
* move and refactor crtc functions
* fix function naming to be clearer
* create more AtomBIOS style calls
* this will eat your cat at the moment, don't bother testing


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


# d77ff85e1f6c41e9f46253dc63900dd8fef6f500 04-Aug-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

* add required atombios.h from drm driver from linux 3.0 with a few tweaks
(we aren't taking ownership of this one.. yikes)
* add first AtomBIOS call to test the waters


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42578 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


# 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


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

* Map AtomBIOS specified by PCI rom into virtual memory
* Point AtomBIOS to PCI rom mapped in memory
* Things no longer crash, but we get an Invalid BIOS Magic error
in the logs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42543 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


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

* Add AtomBIOS memory controller callbacks

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


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

* Move to common MMIO function set to make card subsystem access easier

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42159 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


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

remove AtomInit.. breaks radeon_hd build due to missing return and I have a while until I can implement it fully

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41873 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


# eb1b3e422fd95c18c3f6e0eff40d3a4caba7d984 01-Jun-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

implement AtomBios CailRead/WriteFBData callbacks

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


# 12c25669bf1cdd6b813b03c9fe8f8f751ba79e90 05-May-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

enhance tracing of the radeon_hd accelerant

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


# 08e39e82f736ed94886275ba6100a47a5ab8fbaf 03-Apr-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add new Write/Read PLL calls to AtomBios callbacks

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


# 1927d0ab3ecf034446da2a5f5e64539687ffcf84 01-Apr-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add basic register read/write to AtomBIOS callbacks

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


# ff37eb80fc4ffcec84e804dc1682a2aca710c9ec 28-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

enable bios.c in Jamfile; impliment malloc/free/delay Cail callbacks; stub out rest of the Cail callbacks for now

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


# 63f50c210bf8d106808239537adf5597d23dd92c 26-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

put AtomParser into header file, clean up var names to match style guidelines

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


# 0ceb83958d08555379a75c78de5f2740aeb3d1e5 26-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

add first accelerant atombios wrapper sources, atombios is now accessible from accelerant; atombios calls PCI register read/write routines from the main accelerant that need implimented, thus bios.cpp is disabled atm... going to be tricky

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