Commit Graph
100 Commits
Author SHA1 Message Date
Alexander von Gluck IV e7d0abae23 * move pll info into pll_info struct.
* reduce the number of unique storage uint32's


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-11 22:23:31 +00:00
Alexander von Gluck IV 44db4996ae * better tracing of modeline sanitization for #8001
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42823 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-11 17:39:43 +00:00
Alexander von Gluck IV 82720f1cd0 * move pll info onto encoder
* add atombios PLL adjustment code
* add initial PLL clock flags


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-10 18:07:53 +00:00
Alexander von Gluck IV 1fca5eaf11 * detect hdmi and tv and set as such
* set encoder flags the same as connector flags
* add curly comments to make troubleshooting clearer
* program encoder dpms scratch registers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-10 16:46:22 +00:00
Alexander von Gluck IV 936aec7461 * 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
2011-10-09 22:04:07 +00:00
Alexander von Gluck IV d0509b7eb9 * move encoder info into own struct
* rename some connector / encoder struct members
* improve debugging in connector / encoder
  AtomBIOS walking


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-09 19:51:59 +00:00
Alexander von Gluck IV 17b66d8250 * add digital encoder setup code
* make encoder setup functions return status_t
* really need a struct to hold encoder info


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42814 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-09 19:10:56 +00:00
Alexander von Gluck IV ffb494caeb * add encoder DPMS code
* flip encoders on during modeset.
* crt0 status keeps getting higher and higher which is a good sign.
  the more bits that are set, the closer to a successful lock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-05 04:45:54 +00:00
Alexander von Gluck IV b54c811990 * add encoder code to handle setting up and adjusting encoders
* reorganize mode set code to match layout of linux DRM driver
* add initial DPMS code
* add lots of TODOs


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-05 04:25:50 +00:00
Alexander von Gluck IV 7c91a33c84 * RIP Radeon register banging
Remove old non-atombios code
* add encoder.c and encoder.h to handle
  encoder management
* fix pll code to use encoder object id
  vs crtcid


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-03 00:59:44 +00:00
Alexander von Gluck IV f35af704c8 * use bit-banged edid for monitor ranges
* add function to set encoder to crtc
* clean up some comments


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-03 00:15:04 +00:00
Alexander von Gluck IV 39bc159e6e * small bit of common i2c / ddc white space cleanup
* small bit of tracing cleanup
* no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-01 03:11:21 +00:00
Alexander von Gluck IV ae347a6ce0 * squash a *silly* bug
don't set up a pointer and not malloc it.
* small cleanups to radeon_hd i2c bit-banging code
* i2c bit banging is now functioning


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-01 03:07:33 +00:00
Alexander von Gluck IV 70b41cd671 * improve Nothern Islands PCI ID information using FreeBSD
list of Radeon HD Cards
* break tradition of sorting by chipset id because they really
  are not in any kind of order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-30 20:25:05 +00:00
Alexander von Gluck IV f61b3e2026 * there's one 'l' in Philips
* no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-29 15:08:44 +00:00
Alexander von Gluck IV 495a05fa9f * reading through i2c specs, little comment cleanup
* add a few notes for future i2c bit-bangers
* cleanup of tracing
* no real functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-29 15:03:49 +00:00
Alexander von Gluck IV dd29505893 * 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
2011-09-27 21:34:28 +00:00
Alexander von Gluck IV 4a0f028c4d * perform some i2c cleanup from xorg ati driver
* read gpio pins back after setting them to improve reliability


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-27 20:08:46 +00:00
Alexander von Gluck IV 2ce1337c71 * fix several i2c communication bugs
dealing with i2c register addresses.
* cleanup i2c hacks
* now receive the following message in SimNow:
  "No device present at I2C slave address 0x66"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42769 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-26 16:50:29 +00:00
Alexander von Gluck IV e40c00685c * correct some naming after deeper investigation of
linux drm driver.  Seems radeon_hd isn't limited to the
  standard 0xa0 i2c slave address.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-21 21:36:00 +00:00
Alexander von Gluck IV 6655050606 * style fix
* clean up int types
* curly brace cleanup
* move vars away from top of functions
  when possible
* split DDR timings to seperate header to
  avoid warnings on unused items
* quite a few automated changes, please excuse
  things within diff still not fixed / incorrect


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-20 13:39:40 +00:00
Alexander von Gluck IV 6fca1a84fc * fix header function define
* while doing our last-resort fallback, skip
  TV DAC encoders as it is likely that is not
  what the user wants. This may need to change
  as the driver matures. (ex: only a tv is
  connected, no edid)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-20 12:47:47 +00:00
Alexander von Gluck IV 117e135799 * ddc still giving 128 bytes of 0's
* add code to check if 0 valid displays were found
* if 0 edid's were found, we inject the first connector
  as a last resort... SimNow seems to be ok with this and
  I get a valid screen mode set :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-18 15:29:24 +00:00
Alexander von Gluck IV 54c0390b90 * 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
2011-09-14 15:40:30 +00:00
Alexander von Gluck IV 3cd033a15c * i2c locking should happen just before reading the edid
locking and unlocked on every bit read sounds excessive
* set vdif and vdif size to NULL... they really aren't needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-11 23:26:12 +00:00
Alexander von Gluck IV f6be39e0ae * correct naming error. (a shift is a shift until you use it.. then its a mask)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-11 21:34:06 +00:00
Alexander von Gluck IV b053beab99 * refactor GPU i2c bit-banging code to be correct using drm as reference
* add i2c locking code that represents common things we need to do before
  and after access


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-11 18:20:41 +00:00
Alexander von Gluck IV d06251a95a * make ERROR define to always show AtomBIOS parsing errors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-11 17:15:14 +00:00
Alexander von Gluck IV f6766f291e * rework i2c read / write to make sense using values provided
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-09 19:43:09 +00:00
Alexander von Gluck IV f3ccbf7121 * document GPIO values better based on AMD docs
* no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42730 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-09 18:45:38 +00:00
Alexander von Gluck IV c3ec7fedec * bug fix in AtomBIOS data table parser, incorrect int size causing issues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-09 17:09:04 +00:00
Alexander von Gluck IV a9d08e5e27 * adjust error to make more sense
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-09 15:44:27 +00:00
Alexander von Gluck IV a8b357c747 * run edid check on all connectors regardless of encoder
* correction to output check (B_OK != true)
* check for invalid gpio (prevents seg violation)
* tab cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 22:11:20 +00:00
Alexander von Gluck IV 560e1322cd * add missed header file that goes along with r42725
* change var to be different then type


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 18:30:28 +00:00
Alexander von Gluck IV 6b8f21461e * change c to cpp to resolve C89/C99 issue. (thanks Deadyak!)
* changing to cpp uncovered a few bugs in ide_adaptor
* correct losing signed integer
* correct a variable name that conflicted with a type
* gcc2 build now fixed after r42724


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 15:47:25 +00:00
Alexander von Gluck IV 51928f9997 * make ata/ide channel pretty names more descriptive
* verified nothing in the source tree references "IDE PCI"
* line length fixes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 03:15:37 +00:00
Alexander von Gluck IV e2ee3ffe9e * detect storage controller and handle
(ata/ide/scsi busses all set controller_name)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 02:30:43 +00:00
Alexander von Gluck IV 252add8c21 * style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42722 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-08 02:22:05 +00:00
Alexander von Gluck IV eaa31a573d * add DeviceSCSI for handling scsi / disk devices identified by scsi bus
* complete static category defines
* a few style fixes
* ata / scsi trees are still ugly but make a little more sense now
* search for a pretty name as a last resort before going 'Unknown device'
* closes #6503


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-07 22:39:08 +00:00
Alexander von Gluck IV b5fc0237e1 * add i2c/ddc info storage to connector
* add edid info storage to display
* pass i2c/ddc information to common i2c code
* add code to read/write i2c/ddc
* i2c/ddc read/write code works 'in theory', needs tested
* detect monitors based on presence of edid on connector


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-06 23:00:07 +00:00
Alexander von Gluck IV 440381c60f * rename video_electronics to video_configuration as per Axel
* rename decode_* to get_*
* clean up get_* text when unknown connector/encoder


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-06 16:01:33 +00:00
Alexander von Gluck IV cfda569d7f * add function to set up i2c bus for connector
* few tab fixes
* add Axel as author as the base i2c stuff is from intel_extreme


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-02 21:11:01 +00:00
Alexander von Gluck IV a88394e56e * find GPIO pin connector i2c is on for DDC / EDID
* add i2c_bus to connector information


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-02 17:47:14 +00:00
Alexander von Gluck IV f78f38a51c * rename wimax driver directory to wwan to be more generic
* given the rise of other 4G wwan technology such as lte, this
  seems cleaner and better matches wlan directory for wifi.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-02 16:27:35 +00:00
Alexander von Gluck IV e53d637520 * reformulate display and connector storage to match AtomBIOS requirements
* each active gDisplay references a gConnector index
* add atombios DAC sense.. this really won't be the main call used...
  AtomBIOS expects you to attempt an EDID read to detect connected displays
* remove old manual DACSense
* next we attempt to add ddc / edid


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-01 15:27:57 +00:00
Alexander von Gluck IV b81f42ecbc * complete encoder detection
* need to break out connector and encoder addition into seperate functions as
  the linux kernel did... that function is getting pretty large and deep.
* my card seems to map everything as TV DAC or TMDS... weird.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-24 14:49:31 +00:00
Alexander von Gluck IV 2c062f84e5 * as we are doing a lot of math on bios in gAtomContext, lets make it a
uint8 vs a void pointer.
* guys at AMD confirmed that the method looking directly at the object table
  should be the only method used on modern cards (r600 or later)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-24 04:28:46 +00:00
Alexander von Gluck IV 77b301cb8b * tab fix, no functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 22:04:34 +00:00
Alexander von Gluck IV ec89b98617 * remove excess NULL check
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 22:03:36 +00:00
Alexander von Gluck IV aee8efc244 * 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
2011-08-21 21:21:36 +00:00
Alexander von Gluck IV 583110831e * remove tracing on AtomBIOS parser
* fix a few compile issues when tracing is disabled


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 21:10:24 +00:00
Alexander von Gluck IV 3671476941 * add video_electronics.c
(.c to keep compatibility with older C accelerants)
* use functions for decoding video_electronics
* thanks for the guidance Axel!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 17:30:55 +00:00
Alexander von Gluck IV cd73cccda7 * add a new generic video electronics define,
this seems like it could be useful for more then
  just radeon_hd.
* idea from linux drm driver
* feedback / flames welcome
* can move into radeon_hd private defines if requested


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 16:00:45 +00:00
Alexander von Gluck IV 20fbef1e74 * a few additions to the PCI ID list
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-21 02:57:07 +00:00
Alexander von Gluck IV 11390ce010 * 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
2011-08-20 14:29:06 +00:00
Alexander von Gluck IV d3e8b64208 * 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
2011-08-19 23:07:45 +00:00
Alexander von Gluck IV 7a2bb2b04c * backport a missed endian change
* clean up some tabs and spaces


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-12 02:04:32 +00:00
Alexander von Gluck IV 5cdfd17b4b * backport some additional linux atom parser fixes
* backport fixes to ATOM_IIO_MOVE_ register offsets
* small bit of style correction


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-12 01:00:34 +00:00
Alexander von Gluck IV a823207363 * 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
2011-08-11 05:17:34 +00:00
Alexander von Gluck IV 93d4d55295 * a few small style fixes to last commit
* no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-10 15:51:00 +00:00
Alexander von Gluck IV d356bf5033 * 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
2011-08-10 15:48:20 +00:00
Alexander von Gluck IV 336835776b * clean up tracing and exit gracefully to vesa if
we can't locate an AtomBIOS for the card.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-08 18:36:45 +00:00
Alexander von Gluck IV 5348fbe689 * fix trace typedef size to fix iso9660 tracing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-07 20:24:34 +00:00
Alexander von Gluck IV c9c7be9a54 * add initial set of Northern Island cards
* add igp property to pciid map
* add disabled bios pull for r700 and ni cards
* refactor model numbering as >R700 AMD switched
  to named card families


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-07 20:16:32 +00:00
Alexander von Gluck IV 0cd93754a4 * 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
2011-08-07 05:24:23 +00:00
Alexander von Gluck IV 77e8ac07c6 * 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
2011-08-07 05:19:42 +00:00
Alexander von Gluck IV 7a2d0c5e92 * 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
2011-08-07 03:48:58 +00:00
Alexander von Gluck IV ee5d8bd0a8 * tab fix
* add atom_parse_cmd|table_header functions to evaluate
  data structure versions
* convert asic function to status_t and reflect
  execute_table result
* cleanup logic in destroy atombios parser function


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-07 03:40:23 +00:00
Alexander von Gluck IV 81e071b76e * 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
2011-08-06 07:00:49 +00:00
Alexander von Gluck IV 7eb6bbc78c * style cleanup
* add some missing functions from drm version


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-06 04:39:47 +00:00
Alexander von Gluck IV 6da3f7d4c1 * 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
2011-08-05 22:24:57 +00:00
Alexander von Gluck IV 88932cfb41 * repair time by slowing it down
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-05 05:47:31 +00:00
Alexander von Gluck IV e7f4040697 * improve debugging in AtomBIOS atom.c parser
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-05 05:34:28 +00:00
Alexander von Gluck IV d77ff85e1f * 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
2011-08-05 02:37:05 +00:00
Alexander von Gluck IV 7949c8cbe4 * move create_area for kernel AtomBIOS into radeon_hd_getbios
* only create_area if we found a valid AtomBIOS
* lock down write access to kernel AtomBIOS area after populating
* remove locking on kernel AtomBIOS area as it's not needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-04 15:28:50 +00:00
Alexander von Gluck IV 5e1a7a9299 * these examples should really be commented out
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-04 14:57:34 +00:00
Alexander von Gluck IV 94e15508ec * clean up style
* remove some un-needed log messages
* memset area from create_area just incase
* add enabled bios read in addition to disabled one


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-04 04:57:42 +00:00
Alexander von Gluck IV 1c623886b3 * undo accidental change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-04 03:56:54 +00:00
Alexander von Gluck IV f0b0d6cb37 * 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
2011-08-04 03:55:01 +00:00
Alexander von Gluck IV 2168cdbddd * bug fix, wrong offset
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-03 23:26:26 +00:00
Alexander von Gluck IV 3f98c1831c * 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
2011-08-03 23:23:16 +00:00
Alexander von Gluck IV c3cfda776d * don't trample PCI rom config
* better error checking
* the driver can now locate the AtomBIOS on real hw!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-03 21:42:28 +00:00
Alexander von Gluck IV 77a64ff2c8 * use new PCI.h rom flags
* clean up tracing
* remove infinite loop :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-03 20:46:26 +00:00
Alexander von Gluck IV cd4c994bdf * define PCI add-on rom flags that are normally defined in PCI header files.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-03 20:36:41 +00:00
Alexander von Gluck IV 5cf44dda39 * 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
2011-08-03 18:16:10 +00:00
Alexander von Gluck IV 1d5cfc649a * 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
2011-08-03 03:02:57 +00:00
Alexander von Gluck IV 8992f603ed * var typo fix in driver rom shared area creation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 23:13:45 +00:00
Alexander von Gluck IV 81cd663666 * 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
2011-08-02 23:11:15 +00:00
Alexander von Gluck IV 39b96f9e92 * Rename PCI rom shared area.. isn't AtomBios until we verify it is
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 22:16:23 +00:00
Alexander von Gluck IV 52aeea2482 * Register additions
* No functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 22:14:13 +00:00
Alexander von Gluck IV 32e7d18a75 * Quick style cleanup
* Check for failed malloc in atom_parse


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 18:14:54 +00:00
Alexander von Gluck IV 22582a297c * 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
2011-08-02 18:05:52 +00:00
Alexander von Gluck IV 4034e8950e * Fix Jamfile to properly reference external source file.
(thanks DeadYak!)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 16:15:32 +00:00
Alexander von Gluck IV ef2909a10f * 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
2011-08-02 14:58:56 +00:00
Alexander von Gluck IV 5136067474 * 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
2011-08-02 06:07:49 +00:00
Alexander von Gluck IV b375e9cd65 * Program DATA_FORMAT to non-interlaced
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-02 01:07:10 +00:00
Alexander von Gluck IV cc9e8e94d4 * Add card_info struct used by AtomBIOS parser
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-08-01 22:56:18 +00:00
Alexander von Gluck IV 2df3def596 * 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
2011-08-01 22:41:04 +00:00
Alexander von Gluck IV ef3a7658fa bug fix, POWER_SHUTDOWN vs POWER_ON
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-07-31 16:48:59 +00:00
Alexander von Gluck IV 0e3075fb4d * Provide device chipset in accelerant_device_info
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-07-30 18:25:08 +00:00