#
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>
|
#
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.
|
#
339a0181 |
|
03-Feb-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Rework dp aux functions to take connector index * This is less pretty, but we need access to the connector to find the HPD gpio pin mask on the card. * dp_aux communications seem to work again. * If you have a DisplayPort item attached to your card you may want to just unplug it at this point. We attempt DP link training and it fails. This failure will also cause other monitors to not function as app_server still isn't multi-head aware (#10486)
|
#
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
|
#
2b032852 |
|
02-Feb-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Rework gpio pins * There are GPIO pins for hotplug interrupts and i2c communications (for edid). Add two fields to connector (index for each in gGPIOInfo). * DP aux communcation seems to want the hotplug GPIO pin info, which we don't get (I think this is why DP AUX comms is broken at the moment) * GPIO LUT seems to know about a wide range of GPIO pins, while the i2c gpio calls only know about the ones needed for i2c. * I'm tempted to populate gGPIOInfo with the LUT pins and then suplement that data with the i2c GPIO pins data. (however, not sure how many pins there are generally defined so it could impact performance. More investigation is needed) This would reverse how it works now with this commit.
|
#
224b875b |
|
30-Dec-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: clean up clock units * Ensure we store all clock units as khz or n * 10 off from AtomBIOS unit expected * Perform DDC setup of external encoder
|
#
9c2d51d6 |
|
29-Dec-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: clean up encoder object * Encoder flags were 1:1 connector flags... just look at connector flags. * Record encoder capabilities * Add function to check for dp 1.2 support
|
#
00bc40ad |
|
28-Jan-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Fix DisplayPort link training * Original changes by Bill Randle * Includes a large number of modifications and cleanups. * Add a "currentMode" to the gDisplay to enable easier checking of intended changes. (we pass the display_mode around quite a bit, adding a "currentMode" allows code to know the intended display mode being set without passing the mode pointer around as much)
|
#
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)
|
#
f4647825 |
|
18-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: display_info struct style cleanup * No functional change
|
#
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.
|
#
8dfc5dbb |
|
04-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Complete move to common DisplayPort header * Non-spec DP stuff in accelerant displayport.h * Common DisplayPort header still has TODO's however
|
#
72f6869e |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Add support for external encoders * Some encoders are bridges (DVO) and some encoders can act like bridges (UNIPHY). Probe for encoders further out in the display path and set them up properly. * Debug output support for external encoders * Fix cases where we should use external encoder information vs main encoder info.
|
#
ced3b516 |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Remove isHDMI, isTV. Unused.
|
#
6da8db27 |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Revert "radeon_hd: Convert encoders to pointers" This reverts commit 5a1f9f0f16b2a4bef89b61b4e3e24bf0b53917da. * Thinking on this a bit more, this is really a silly change as I know the upper limit for number of valid encoders. * Resolves a app_server crash introduced as well due to not allocating encoder pointer.
|
#
5a1f9f0f |
|
14-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Convert encoders to pointers * Preparation for multiple encoders per connector
|
#
83e3a8ea |
|
14-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Start work on proper DP link training * The AtomBIOS timeout fix has made my DP bridge stop working * The current DisplayPort code is a little lacking on DP link training... I think thats the cause. * This puts the first steps towards DP training in place. * I plan on trying to make some of this DP stuff common accelerant stuff after it works.
|
#
e766693e |
|
28-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: lvds, dvo, and hdmi encoder improvements * Begin storing the lcd flags in lvds info call as the encoder needs them. * Fill out laptop / lvds todo in encoder code. * Stub out dvo encoder calls, not sure use cases for dvo.
|
#
2399d174 |
|
25-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Begin improvement on crtc state control * Try to not blank the crtc when it is alreay disabled * Clean up wording, active now present on display info * Don't lock crtc when doing normal dpms calls, crtc should only be locked during mode set / change
|
#
4bd6c200 |
|
21-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Implement preferred mode * Add preferredMode display mode to each display. * If LVDS is detected, set preferredMode based on AtomBIOS * Fixes blocker #8329 ?
|
#
c8677fb1 |
|
14-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Working towards DP connector support * Lots of new DisplayPort functions * Call DP link training during mode set * Rename dp_info variables to be less redundant * Make encoder_pick_dig accept connector ID and then check parent display * Encode/Decode DP link speed functions * Calculate DP lanes * Rewrite encoder_dig_setup * Correct bitsPerChannel to bitsPerColor * My TRAVIS DisplayPort -> LVDS bridge now works
|
#
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
|
#
18500e1c |
|
14-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
GPIO info struct style cleanup, (hopefully) no functional change
|
#
c26d7a43 |
|
13-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Record encoder link enumeration
|
#
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
|
#
7a13bce5 |
|
09-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
More work towards DP support. * add DPBridge encoder flag and set during connector detection * if external bridge found, do external DDC setup * pass connectorIndex vs displayIndex to encoder_*_setup * some of the DP AUX channel stuff should go into accelerant common code some day like i2c.
|
#
36de6233 |
|
08-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Speak aux data via AtomBIOS call * add function to speak DP AUX data via AtomBIOS call * clean up connector index variable names
|
#
97b846e8 |
|
21-Nov-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Style fix gpu_state naming, cleanup * correct naming on gpu registers that effect MC idle state * cleanup MC idle failure situation, we are stuck and need to try the changes anyway.
|
#
e9e9c194 |
|
07-Nov-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* change the way we store GPU MC state information on halt / resume as it doesn't need to persist. * rename mc_info -> fb_info to better communicate it's contents * add some gart (gtt) storage and prep AGP VM code git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43212 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
025d4eed |
|
27-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* reorganize register definitions There were a large number if incorrect, duplicated, misplaced registers that were leading to bugs in the code. This is my first shot at cleaning them up. Luckly as we are using AtomBIOS the number of registers we need to know about is shrinking. * remove registers left over from register banging days * r770 is less then r710, r720 in the drm sources. Fix in code. * enable newer radeons for testing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42930 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
|
#
f3cb4623 |
|
21-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* take note of external encoders git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e774cb4b |
|
12-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* style fixes move quite a bit of code away from var_var format * #if 0 some not-yet-ready r500 code * no real functional change git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42835 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b0b621b |
|
12-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* style fixes, no functional change... automatic crtc_id -> crtcID automatic pll_id -> pllID automatic encoder_id -> encoderID automatic connector_index -> connectorIndex automatic encoder_flags -> encoderFlags git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42831 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
|
#
e7d0abae |
|
11-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
82720f1c |
|
10-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
d0509b7e |
|
09-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
7c91a33c |
|
02-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
ae347a6c |
|
30-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
e40c0068 |
|
21-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
f6be39e0 |
|
11-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b053beab |
|
11-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
a8b357c7 |
|
08-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b5fc0237 |
|
06-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
a88394e5 |
|
02-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
e53d6375 |
|
01-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b81f42ec |
|
24-Aug-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
2c062f84 |
|
23-Aug-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
6604b1b6 |
|
16-Jun-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Break DAC code into sperate source file * Implement assigning DAC A/B to crt * Clean up mode change code * Still some pixel clock wierdness git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42205 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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
415c4ad3 |
|
12-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
correct incorrect read location of PLL data git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
192781dd |
|
07-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* use common accelerant code * remove manual sDisplayMode and make use of mode_list_area via Axel's common accelerant code using vesa as example * move mask enabled write32 function to accelerant with write32 calls * move register offsets into mode.h headers * rename DxMode* to CardMode* * make adjustments and implement radeon hd mode setting further * remove previously defined kStdModeTimings * hardware mode setting still needs work git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41374 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5c3acac |
|
05-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
added header file for mode.cpp; change gDisplayMode to pointer for now; add function to quickly perform sanity check on mode lines; enhance tracing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fde69f16 |
|
03-Apr-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
stub out Read/Write MC, add functional Read/Write PLL git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41172 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
|
#
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.
|
#
339a01811283149b14aa5ecd793f934a476b6f86 |
|
03-Feb-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Rework dp aux functions to take connector index * This is less pretty, but we need access to the connector to find the HPD gpio pin mask on the card. * dp_aux communications seem to work again. * If you have a DisplayPort item attached to your card you may want to just unplug it at this point. We attempt DP link training and it fails. This failure will also cause other monitors to not function as app_server still isn't multi-head aware (#10486)
|
#
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
|
#
2b032852181b69c2a65316a1fe2df2432a6c9057 |
|
02-Feb-2014 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Rework gpio pins * There are GPIO pins for hotplug interrupts and i2c communications (for edid). Add two fields to connector (index for each in gGPIOInfo). * DP aux communcation seems to want the hotplug GPIO pin info, which we don't get (I think this is why DP AUX comms is broken at the moment) * GPIO LUT seems to know about a wide range of GPIO pins, while the i2c gpio calls only know about the ones needed for i2c. * I'm tempted to populate gGPIOInfo with the LUT pins and then suplement that data with the i2c GPIO pins data. (however, not sure how many pins there are generally defined so it could impact performance. More investigation is needed) This would reverse how it works now with this commit.
|
#
224b875b3ad6ea9d7324377deb63d9087882092c |
|
30-Dec-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: clean up clock units * Ensure we store all clock units as khz or n * 10 off from AtomBIOS unit expected * Perform DDC setup of external encoder
|
#
9c2d51d685b20c6b86f5cb39fb0ac95a864f4a26 |
|
29-Dec-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: clean up encoder object * Encoder flags were 1:1 connector flags... just look at connector flags. * Record encoder capabilities * Add function to check for dp 1.2 support
|
#
00bc40ad588f4bd59cd7574788b5dc111b62198a |
|
28-Jan-2013 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Fix DisplayPort link training * Original changes by Bill Randle * Includes a large number of modifications and cleanups. * Add a "currentMode" to the gDisplay to enable easier checking of intended changes. (we pass the display_mode around quite a bit, adding a "currentMode" allows code to know the intended display mode being set without passing the mode pointer around as much)
|
#
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)
|
#
f4647825e79d9d619cff3eb26882fce1b5afea59 |
|
18-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: display_info struct style cleanup * No functional change
|
#
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.
|
#
8dfc5dbb26e2eec03428fa97f0e6429b8fee4e1d |
|
04-Apr-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Complete move to common DisplayPort header * Non-spec DP stuff in accelerant displayport.h * Common DisplayPort header still has TODO's however
|
#
72f6869e9e21913556544612ea275112ad416b5c |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Add support for external encoders * Some encoders are bridges (DVO) and some encoders can act like bridges (UNIPHY). Probe for encoders further out in the display path and set them up properly. * Debug output support for external encoders * Fix cases where we should use external encoder information vs main encoder info.
|
#
ced3b516ea3052f78134f3c461226e311cc02b89 |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Remove isHDMI, isTV. Unused.
|
#
6da8db278635c0b56a151bc59151a4e9a02bce50 |
|
15-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Revert "radeon_hd: Convert encoders to pointers" This reverts commit 5a1f9f0f16b2a4bef89b61b4e3e24bf0b53917da. * Thinking on this a bit more, this is really a silly change as I know the upper limit for number of valid encoders. * Resolves a app_server crash introduced as well due to not allocating encoder pointer.
|
#
5a1f9f0f16b2a4bef89b61b4e3e24bf0b53917da |
|
14-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Convert encoders to pointers * Preparation for multiple encoders per connector
|
#
83e3a8ea5013ca577e735016437d0b526c20b7db |
|
14-Mar-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Start work on proper DP link training * The AtomBIOS timeout fix has made my DP bridge stop working * The current DisplayPort code is a little lacking on DP link training... I think thats the cause. * This puts the first steps towards DP training in place. * I plan on trying to make some of this DP stuff common accelerant stuff after it works.
|
#
e766693eb0fe789eae0b729c7c5d5400018aa328 |
|
28-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: lvds, dvo, and hdmi encoder improvements * Begin storing the lcd flags in lvds info call as the encoder needs them. * Fill out laptop / lvds todo in encoder code. * Stub out dvo encoder calls, not sure use cases for dvo.
|
#
2399d174dc90c63e800c9a7218422a8533d85cae |
|
25-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Begin improvement on crtc state control * Try to not blank the crtc when it is alreay disabled * Clean up wording, active now present on display info * Don't lock crtc when doing normal dpms calls, crtc should only be locked during mode set / change
|
#
4bd6c200c1a30b78827a0f2852b8ab0995027d1a |
|
21-Feb-2012 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
radeon_hd: Implement preferred mode * Add preferredMode display mode to each display. * If LVDS is detected, set preferredMode based on AtomBIOS * Fixes blocker #8329 ?
|
#
c8677fb1384051cb147d53ff8e5d9f1f41a35201 |
|
14-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Working towards DP connector support * Lots of new DisplayPort functions * Call DP link training during mode set * Rename dp_info variables to be less redundant * Make encoder_pick_dig accept connector ID and then check parent display * Encode/Decode DP link speed functions * Calculate DP lanes * Rewrite encoder_dig_setup * Correct bitsPerChannel to bitsPerColor * My TRAVIS DisplayPort -> LVDS bridge now works
|
#
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
|
#
18500e1cd61a4573bea20cb33544d8051a236112 |
|
14-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
GPIO info struct style cleanup, (hopefully) no functional change
|
#
c26d7a43ad3d56c40fe4dfcef0c3ba63d1acf675 |
|
13-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Record encoder link enumeration
|
#
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
|
#
7a13bce56dcb354289764f5499e0ac6ebe66377f |
|
09-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
More work towards DP support. * add DPBridge encoder flag and set during connector detection * if external bridge found, do external DDC setup * pass connectorIndex vs displayIndex to encoder_*_setup * some of the DP AUX channel stuff should go into accelerant common code some day like i2c.
|
#
36de623307c7a714fd1b6960728c878f5eb78f81 |
|
08-Dec-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Speak aux data via AtomBIOS call * add function to speak DP AUX data via AtomBIOS call * clean up connector index variable names
|
#
97b846e8744cbee43c68e9dbec4c3027c89c7197 |
|
21-Nov-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
Style fix gpu_state naming, cleanup * correct naming on gpu registers that effect MC idle state * cleanup MC idle failure situation, we are stuck and need to try the changes anyway.
|
#
e9e9c194f9ca6cf30f8baeb15a89278541d5123d |
|
07-Nov-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* change the way we store GPU MC state information on halt / resume as it doesn't need to persist. * rename mc_info -> fb_info to better communicate it's contents * add some gart (gtt) storage and prep AGP VM code git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43212 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
025d4eed52f31e0047268227cde722164e52e2d8 |
|
27-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* reorganize register definitions There were a large number if incorrect, duplicated, misplaced registers that were leading to bugs in the code. This is my first shot at cleaning them up. Luckly as we are using AtomBIOS the number of registers we need to know about is shrinking. * remove registers left over from register banging days * r770 is less then r710, r720 in the drm sources. Fix in code. * enable newer radeons for testing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42930 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
|
#
f3cb4623c8f4d77d12916cc6bee9cfc61e7c197d |
|
21-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* take note of external encoders git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42893 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e774cb4b0aea6ec99b8b9d8878c5ffbe79516ded |
|
12-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* style fixes move quite a bit of code away from var_var format * #if 0 some not-yet-ready r500 code * no real functional change git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42835 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6b0b621be9113080a339054cb3847201e5ed55dd |
|
12-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* style fixes, no functional change... automatic crtc_id -> crtcID automatic pll_id -> pllID automatic encoder_id -> encoderID automatic connector_index -> connectorIndex automatic encoder_flags -> encoderFlags git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42831 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
|
#
e7d0abae231f1fcd3fefc6bc963793c5d6756118 |
|
11-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
82720f1cd0f4d1b7e5678ef3107e47b557cb4978 |
|
10-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
d0509b7eb93e3cb67b23fa5ccdd2fb789333370b |
|
09-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
7c91a33c84935f6697e246a985730400ec976d61 |
|
02-Oct-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
ae347a6ce03d5b6b6fab6b955a847db5ec4a6d53 |
|
30-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
e40c00685cbbfc348064e71f4c38c551232f8f40 |
|
21-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
f6be39e0aed303ffafb9dd30665f5d9f7ebd2913 |
|
11-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b053beab99d4f9dbf7f84b0f9867c2cfbcb55fd4 |
|
11-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
a8b357c7477d541c2c6d39fcba245b64cd9107a4 |
|
08-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b5fc0237e14b93deac33523f327c7e36f1bca57f |
|
06-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
a88394e56e36fd5f66dbb1f13f65ece4f75551b3 |
|
02-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
e53d637520ce91031ff9ac5ea4a5044156136a27 |
|
01-Sep-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
b81f42ecbc0b4bd7db38f7f5239fe25d7cfa5ba7 |
|
24-Aug-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
2c062f84e5ff05c782c321d9ceceffb05b909738 |
|
23-Aug-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* 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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
6604b1b62325b3f372c8f002a9311a50f2e10faf |
|
16-Jun-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Break DAC code into sperate source file * Implement assigning DAC A/B to crt * Clean up mode change code * Still some pixel clock wierdness git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42205 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
|
#
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
|
#
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
|
#
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
|
#
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
|
#
415c4ad36683cd48244933278545b33eefe0e0bf |
|
12-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
correct incorrect read location of PLL data git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41467 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
192781dd493b0454d85747f2b0d2d75c3752b7e7 |
|
07-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* use common accelerant code * remove manual sDisplayMode and make use of mode_list_area via Axel's common accelerant code using vesa as example * move mask enabled write32 function to accelerant with write32 calls * move register offsets into mode.h headers * rename DxMode* to CardMode* * make adjustments and implement radeon hd mode setting further * remove previously defined kStdModeTimings * hardware mode setting still needs work git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41374 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5c3acac3ef9425f21522c24db869047f68fa5bc |
|
05-May-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
added header file for mode.cpp; change gDisplayMode to pointer for now; add function to quickly perform sanity check on mode lines; enhance tracing git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41334 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
fde69f164727fe3d93427e0c73d843efd1af0fe1 |
|
03-Apr-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
stub out Read/Write MC, add functional Read/Write PLL git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41172 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
|