Commit Graph

618 Commits

Author SHA1 Message Date
Alexander von Gluck IV
92e254d047 intel_extreme: Improve PCH detection
* Detect PCH model based on ISA bridge and save
  into shared info for later use.
* On CougarPoint PCH systems, assign pipes via
  special CPT registers
* Drop HasPlatformControlHub as PCH should be
  based on more than just generation.
2016-07-10 21:02:01 -05:00
Alexander von Gluck IV
30d631c821 radeon_hd: Add new Polaris GPU, untested 2016-06-30 15:09:59 -05:00
Alexander von Gluck IV
8fe5054828 intel_extreme: Extend DDI port probing to A-E
* The Linux code made this a bit hard to figure out via
  complex define functions, however there can be up to
  5 DDI ports (A-E)
2016-05-08 15:40:57 -05:00
Alexander von Gluck IV
8d1cb54aac intel_extreme: Add in some code for the lakes (unused) 2016-04-22 22:41:52 -05:00
Alexander von Gluck IV
ca95e9dad9 intel_extreme: Add initial work for DDI ports 2016-03-15 18:12:28 -05:00
Alexander von Gluck IV
3d1bd895ad intel_extreme: Properly use VBIOS panel mode
* Move current_mode into the accelerant as the
  driver doesn't care.
* Record panel_mode in driver and present to accelerant
* eDP, if no EDID and mobile, leave edid incomplete.
  Mode set should notice that and fall back to panel_mode
2016-03-11 18:20:28 -06:00
Alexander von Gluck IV
a81f65eae5 Merge branch 'master' into intel-extreme 2016-03-09 17:11:08 -06:00
Alexander von Gluck IV
721ba9af43 intel_extreme: Clean up DisplayPort Port class
* DisplayPort != DigitalPort
* i2c needs wrapped in DP AUX transaction code
* Mode-setting comes with DP link training as well
* We need to try and share DP code with radeon_hd
2016-02-23 14:10:14 -06:00
Alexander von Gluck IV
9975620612 intel_extreme: Prepare for DisplayPort AUX comms 2016-02-23 13:39:10 -06:00
Jérôme Duval
f369957d03 via.accelerant: move enums out of the struct. 2016-02-19 22:33:41 +01:00
Alexander von Gluck IV
bab64f65bb Merge remote-tracking branch 'upstream/master' into intel-extreme 2016-02-19 10:17:42 -06:00
Alexander von Gluck IV
c9c61669ea intel_extreme: Add general pipe configuration and adjust color space 2016-02-19 00:09:43 -06:00
Rudolf Cornelissen
0fa7d5c4df VIA gfx driver: overlay engine on K8M800 responds now, wip. 2016-01-23 23:46:22 +01:00
Rudolf Cornelissen
14de50bad7 VIA gfx driver:K8M800 now works (fixed PLL), fixed info in GetDeviceInfo 2016-01-13 01:01:32 +01:00
Rudolf Cornelissen
b0c69e8490 nVidia driver: added option to block EDID resolution restrictions (check_edid) 2016-01-05 23:49:00 +01:00
RudolfC
063436816d nVidia driver: Added basic dualhead support for native Haiku ScreenPrefs app 2016-01-04 22:17:48 +00:00
Alexander von Gluck IV
d35a52e8e2 intel_extreme: Fix i965 LVDS panel programming
* polarity regs move on LVDS vs analog
* add knowledge or transcoder registers, they
  exist seperately on PCH-split
* Native resolutions now work on LVDS under i965
2016-01-03 10:46:13 -06:00
Alexander von Gluck IV
0ea662e5e9 intel_extreme: Correct panel control register on non-pch 2015-12-15 07:23:21 -06:00
Alexander von Gluck IV
3cfe299798 intel_extreme: Rework PLL and id PineView as PIN 2015-12-04 13:34:33 -06:00
Alexander von Gluck IV
e6fefa6cbf intel_extreme: More FDI training work
* IvyBridge or higher can auto-train.
* Linux doesn't use this feature, however
  manual FDI link training is *really*
  complex... lets try auto-training first.
2015-11-19 17:49:51 -06:00
Alexander von Gluck IV
aa06863ccd intel_extreme: Enable / Disable FDI TX/RX 2015-11-19 13:26:55 -06:00
Alexander von Gluck IV
00e0982f68 intel_extreme: First work at programming FDI 2015-11-17 23:28:09 -06:00
Alexander von Gluck IV
e5494f1bb2 intel_extreme: Fix DP / HDMI gpu register location mixup on die 2015-11-16 20:41:14 -06:00
Alexander von Gluck IV
202ffc8cca intel_extreme: Bump the VLV offset back a bit and fix port defines 2015-11-16 19:58:51 -06:00
Alexander von Gluck IV
f979e62e54 intel_extreme: Program more LVDS regs. Set +/- @ lvds port 2015-11-12 18:30:21 -06:00
Alexander von Gluck IV
92bcdd7935 intel_extreme: Add initial TMDS modesetting code 2015-11-09 09:26:07 -06:00
Alexander von Gluck IV
d442692fab intel_extreme: Correct DP port registers 2015-11-09 09:15:16 -06:00
Alexander von Gluck IV
61fbdb0667 intel_extreme: Set mode and pll via pipe-aware class functions 2015-11-08 23:14:46 -06:00
Alexander von Gluck IV
37b903fbc8 intel_extreme: Add pipe selection for ports 2015-11-08 10:39:07 -06:00
Alexander von Gluck IV
b809fb52ed intel_extreme: Add some missing panel registers, masks, shifts 2015-11-04 17:48:06 -06:00
Alexander von Gluck IV
9cd46c7372 intel_extreme: Fix PCH_PANEL STS/CTL register location and define more 2015-11-04 17:29:06 -06:00
Alexander von Gluck IV
fb255821eb intel_extreme: Correct generations based on some Intel help 2015-11-04 16:11:22 -06:00
Alexander von Gluck IV
fa1d593323 intel_gart: Clean up trace code, break apart gtt probe functions 2015-11-03 17:18:58 -06:00
Alexander von Gluck IV
47fba246cc intel_extreme: Fix IsMobile. That's not how masks work 2015-11-02 20:14:00 -06:00
Alexander von Gluck IV
c86f3dba23 intel_extreme: LVDS cleanup and fixes for later gens 2015-11-02 18:01:18 -06:00
Alexander von Gluck IV
e2e5daf25b intel_extreme: Add generation index + begin to use in gart 2015-11-02 15:55:05 -06:00
Alexander von Gluck IV
53f5bffe84 intel_gart: Fix gart detection and begin using DeviceType
* Correctly identify newly re-assigned cards families
* Begin using new DeviceType class in intel gart code
2015-11-01 20:17:20 -06:00
Alexander von Gluck IV
84b7116da8 intel_extreme: Rework card identification defines
* Be more verbose on flag type
* Add additional groups
* Add additional families
* Correctly assign later models
2015-11-01 12:20:10 -06:00
Alexander von Gluck IV
57b86ef335 intel_extreme: Clean up PLL reg defines 2015-10-30 13:52:09 -05:00
Alexander von Gluck IV
163e66f763 intel_extreme: Add pipe base register 2015-10-27 19:49:17 -05:00
Alexander von Gluck IV
b3f14fb7c7 intel_extreme: Start doing mode-setting at port level
* I really hope we can kill head_mode some day
* Break pll code out from mode code
* The LVDS and Digital are smooshed together and
  likely need broken apart.
2015-10-25 20:56:08 -05:00
Alexander von Gluck IV
e747cbe116 intel_extreme: Fix regs, remove PCH for VLV, Expand Type
* Fix some incorrect HDMI reg locations
* PCH goes away on later Intel chips
* Add more mask room for Intel Groups
2015-10-24 09:53:14 -05:00
Alexander von Gluck IV
bc5cad7395 intel_extreme: Correct card identification, add gen4 hdmi regs 2015-10-22 14:48:53 -05:00
Alexander von Gluck IV
50f0b3fe76 intel_extreme: Rebase and refactor mmlr's work from 2013
* New port storage classes and cleaner logic
2015-10-22 14:48:45 -05:00
Alexander von Gluck IV
97aa078ef4 intel_extreme: Intial work for ValleyView support
* No impact to non-ValleyView chipsets
* Bump some register locations for VLV
* Only have HDMI port to test with on my ValleyView GPU
  and our driver seems to be missing all HDMI and
  sideband functionality.
* As ValleyView chipsets seem to be UEFI only, we don't
  have VESA fallback, so this shouldn't cause regressions.
  (unless we get UEFI framebuffer support)
2015-10-15 23:39:31 -05:00
Alexander von Gluck IV
1b69f3394b radeon_hd: Properly and consistently pick HPD ID 2015-07-14 20:38:15 -05:00
Alexander von Gluck IV
7ea1ad1028 radeon_hd: Fix dp aux request / response shifts 2015-07-13 23:26:24 -05:00
Alexander von Gluck IV
63b02c37d4 accelerants/common: Add displayport aux message struct 2015-07-08 00:03:38 -05:00
Alexander von Gluck IV
bf8fe3ddb3 radeon_hd: Add Hawaii,Topaz,Tonga,Carrizo chips/cards 2015-07-07 10:27:44 -05:00
Adrien Destugues
0f94784a5e intel_extreme: fix vblank interrupt on Ivy Bridge and later
Intel changed the PCH interrupt bits between Sandy Bridge and Ivy Bridge
to make space for the 3rd display pipe. Take this into account and check
for the correct bits on the newer devices.

Fixes #11522.
2015-03-01 22:57:43 +01:00
Alexander von Gluck IV
57bc65034a Everything: Update lots of code to use B_COUNT_OF macro
* Likely not everything, but the obvious uses of B_COUNT_OF
2014-11-09 14:52:19 -06:00
Adrien Destugues
b10790de44 Radeon: fix warnings on 64bit. 2014-10-19 12:51:53 +00:00
Adrien Destugues
13af65c402 intel_extreme: fix warnings on 64bit. 2014-10-19 12:51:51 +00:00
Adrien Destugues
a7f7bf3dc9 Radeon: fix warning. 2014-10-19 11:49:53 +02:00
Axel Dörfler
c1400fb617 intel_extreme: use VESA EDID info as fallback.
* Only in case retrieving EDID info failed on head A and C.
* Should help with detecting the native resolution for ticket #10878.
2014-06-04 01:02:40 +02:00
Alexander von Gluck IV
e321d716e4 radeon_hd: Add latest generation radeon_hd cards
* These aren't tested, but since we go off of DCE
  versions for a lot of stuff, they may work.
* AMD doens't include market names in their drivers
  anymore, so if we want to label them it will take
  additional work.
2014-05-25 09:03:03 -05:00
Alexander von Gluck IV
339a018112 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)
2014-02-03 20:20:13 -06:00
Alexander von Gluck IV
8ebdc440de radeon_hd: Better tracing. Fix DP ack bitwise shift 2014-02-03 06:44:28 +00:00
Adrien Destugues
ef726c687a Intel_extreme: improve i855 support.
https://github.com/druga/haiku-stuff/tree/master/intel_extreme
Rebased against current sources.

* The BIOS video mode sometimes reports a scaled mode instead of the
physical panel dimensions. Get the data from the VBT table as well, and
use it if the reported resolution is bigger.
* On first boot, force the panel native mode so the user doesn't have to
set it manually.
* Only allow a single head at a time on i855gm, as the card can't drive
both heads at the same time.
* Detect when a new requested mode is the same as the current one, and
skip modesetting in that case. Avoids screen flickering when changing
workspaces.
* Fix some cases of misdetecting which pipes to enable
2014-01-17 12:42:20 +01:00
Pawel Dziepak
73ad2473e7 Remove remaining unnecessary 'volatile' qualifiers 2013-11-06 00:03:07 +01:00
Alexander von Gluck IV
42eed3ba69 RadeonHD: Fix incorrect name -> chipset mapping
* Put names and chipsets next to each other to
  help prevent further mismatch.
* Fix potential (but unlikely) string overflow
* CID 611140
2013-07-16 11:20:24 -05:00
Alexander von Gluck IV
991183511b RadeonHD: Drop marketing names
* They are all over the place.. I give up
* Going off of engineering names and DCE is more accurate
* A lot of this info came from the x.org wiki
* I'd like to transition some of the engineering
  name checks to use DCE versions.. they tend to be more
  accurate and exact. (in some cases we can't, but most of
  the time we can)
2013-07-09 12:40:29 -05:00
Alexander von Gluck IV
4ce958fcd4 RadeonHD: Cleanup, new cards
* Fix some incorrect chip codenames
* Introduce a dual gpu flag
* Add some new chipsets and document
  the next generation of chips
2013-06-29 13:18:52 -05:00
Jérôme Duval
21f6b3ea28 agp_gart: switch to phys_addr_t as suggested by Urias and Axel.
* this is a follow-up to hrev45621
2013-05-16 19:01:33 +02:00
Jérôme Duval
c162f52eaa intel_extreme and radeon_hd: some 64 bit fixes 2013-05-04 20:20:33 +02:00
Jérôme Duval
f92b1f2eaf GCC 4.7.x finds that 1 << 31 is a signed integer, use the unsigned notation
* error: narrowing conversion of '-2147483618' from 'int' to 'uint32 {aka long unsigned int}'
 inside { } is ill-formed in C++11
2013-04-26 21:17:33 +02:00
Bill Randle
7d9c1f30f1 radeon_hd: Add Northern Island registers 2013-01-29 12:29:06 -06:00
Bill Randle
7aedc8b3e1 edid_raw: Correct missing bitfield
* edid1_detailed_timing_raw was missing
  a field which threw off the sync bits.
* The result was the monitor will receive
  a different sync polarity than it requested.
  Most monitors handle this, but it is still
  a bug
2013-01-27 12:18:49 -06:00
Alexander von Gluck IV
a2b448a0c1 intel_extreme: Mark IvyBridge as having a PCH
* Modesetting now works on IvyBridge
* Preferred mode needs work though as my chipset
  defaults to 1024x768 vs 1366x768
2012-12-29 00:09:00 +00:00
Alexander von Gluck IV
660ca29ee0 intel_extreme: Add IvyBridge PCIID's
* This needs testing and likely some IvyBridge
  fixups
2012-12-26 11:01:43 -06:00
Ithamar R. Adema
53a59cd99a Fix minor typo 2012-11-22 22:58:24 +01:00
Alexander von Gluck IV
4e7e3e331d radeon_hd: display port improvements
* Remove non-generic radeon dp_get_lane_count
* Set lane count and link rate at set_display_mode
* Pass entire mode to pll_set vs only pixel clock for DP code
* Add helpers for DP config data to common code
* Obtain more correct link rate
2012-08-05 12:15:35 -05:00
Alexander von Gluck IV
694eca3bb6 radeon_hd: Add DP link_train_ce
* First attempts at DisplayPort link training
  clock equalization.
* Add DP define to detect equalization state
* Working towards resolving #8626
2012-08-05 00:01:43 -05:00
Alexander von Gluck IV
f8af317470 radeon_hd: Final round of header cleanup
* This puts the registers in a better state and ensures
  all model dependant defines are prefixed with card series
* Consolidate evergreen defines into single header
2012-07-31 12:10:51 -05:00
Alexander von Gluck IV
93aac98d0a radeon_hd: r5xx to Avivo define cleanup
* Reorganize and clean up card defines
* Fix define spaces
* Unify card naming
* No (real) functional change
2012-07-30 15:57:53 -05:00
Alexander von Gluck IV
8ef0a0d2a6 radeon_hd: Card define cleanup
* Trying to do cleanup on the layout of these headers
2012-07-30 15:57:52 -05:00
Alexander von Gluck IV
45dc5c4664 radeon_hd: Add Southen Island gpu temp sensor code
* Add AMD SI defines in si_reg.h
* Prefix SI registers with SI_
* Tab and space cleanup
2012-07-30 09:45:45 -05:00
Alexander von Gluck IV
0e8316cc90 intel_810: Style cleanup. No functional change
* I think the FunctionNames need to change to function_name
2012-05-30 16:11:09 -05:00
Gerald Zajac
e0ee3b7971 driver: New intel 810 video driver
* Introduced by Gerald Zajac in #8615
* Will need reviewed, tested, and some style cleanup
* Not in images until steps above complete
2012-05-30 15:21:18 -05:00
Alexander von Gluck IV
9e195872df radeon_hd: Begin work on radeon_hd command processor
* First steps at getting card command processor wired
  up to the ring buffers.
* Code doesn't run yet as I have *no* idea what happens
  when these rings are in an invalid state.
2012-04-17 16:10:40 -05:00
Alexander von Gluck IV
0de9d6cdef 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.
2012-04-06 13:43:09 -05:00
Alexander von Gluck IV
8dfc5dbb26 radeon_hd: Complete move to common DisplayPort header
* Non-spec DP stuff in accelerant displayport.h
* Common DisplayPort header still has TODO's however
2012-04-04 10:41:34 -05:00
Alexander von Gluck IV
c6799d8ae1 dp_raw: Continued cleanup of DisplayPort common header
* Reduce number of common DP registers in radeon_hd
* Move to bitwise shifts as they will make more
  sense to more people in the long-run
2012-04-03 09:52:21 -05:00
Alexander von Gluck IV
64dcb00f9f radeon_hd: Begin to widdle down DP to common code 2012-04-02 17:00:24 -05:00
Alexander von Gluck IV
37550d80c9 dp_raw: Add AUX communication defines 2012-04-02 15:45:13 -05:00
Alexander von Gluck IV
30d5507541 dp_raw common: Style fix, no change. 2012-04-02 15:36:07 -05:00
Alexander von Gluck IV
4185aa0c8c common header: Add work in progress DisplayPort header
* Obtained via DportV1.1.pdf
* Written based on my Xorg membership
2012-04-02 11:52:36 -05:00
Alexander von Gluck IV
83e3a8ea50 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.
2012-03-14 06:22:59 -05:00
Alexander von Gluck IV
0a2f1274ff radeon_hd: Update southern islands info
* Add 7770 and 7750 pciid's
* Remove Thames and reorganize code names for SI
  (seems the codenames changed before release)
* Untested as always
2012-02-16 12:05:06 -06:00
Alexander von Gluck IV
249495e284 Add complete set of DRM DisplayPort defines into radeon_hd
* I'd rather this be common code, but I don't have access
  to the DisplayPort specifications. If I added it as common
  code I would want to be 100% it was complete and variables
  were named properly.
* For now putting in radeon_hd private headers
2011-12-14 10:19:00 -06:00
Alexander von Gluck IV
61cf713381 Include file style cleanup, no functional change 2011-12-09 21:26:41 -06:00
Alexander von Gluck IV
cb050a33be Add support for thermal status queries on newer chipsets
* add temperature query support for Juniper, Sumo, Evergreen, and North Islands
* add missing thermal defines for evergreen cards
* northern island cards use the evergreen thermal calculations
2011-11-24 19:42:45 -06:00
Alexander von Gluck IV
0cd972316d Add first hints of thermal monitoring on radeon cards
* add a few missing/needed header defines
* show GPU temp in millidegrees C on r600/r700
* evergreen+ support soon
* function may be moved to driver long term once testing done
2011-11-21 17:54:27 -06:00
Alexander von Gluck IV
0188ca92a5 First attempt at older Radeon card support
* add missing chipset ranges
* add a few more older (X1200) PCI ID's (mostly IGP)
* add code to detect and set frame buffer size on old chipsets
* we get to the connector detection currently and fail due to the
  lack of legacy support on my X1200 IGP
2011-11-12 11:41:31 -06:00
Alexander von Gluck IV
359b926f79 * style cleanup of shared storage names
* return better data on card 
* display chipset flags in screen preflet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-08 19:50:07 +00:00
Alexander von Gluck IV
76a3e009dd * add lots of missing evergreen defines
* evergreen headers are split due to different
  header copyrights
* detect and set up evergreen memory controler
* change the way we manage radeon chipsets to
  more closely match drm driver as the chipset
  model numbers aren't in order and change from
  numbers to names.
* check for evergreen when populating frame buffer
  information.
* style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-08 17:17:43 +00:00
Alexander von Gluck IV
025d4eed52 * 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
2011-10-28 04:30:54 +00:00
Alexander von Gluck IV
46af81655d * 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
2011-10-26 04:51:51 +00:00
Alexander von Gluck IV
d5c8ef5d69 * add chipset flags vs isIGP
* we can now utilize these chipset
  flags throughout the driver to better id
  cards and features
* remove leftover BIOS size define from intel skel
* no *real* functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-24 17:53:22 +00:00
Alexander von Gluck IV
98421bb887 * simplify some trace statements
* add potential support for IGP chipsets
* igp code is *untested* and should work *in theory*
* potentially resolves #8040 / #8046 ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-24 14:58:27 +00:00
Alexander von Gluck IV
a4ba3a0f61 * pass dceMajor and dceMinor to accelerant
* will fix other var names to match style guidelines
  shortly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-21 14:32:01 +00:00
Alexander von Gluck IV
9774c58f55 * remove un-used registers that were left over from
base intel_extreme driver long ago
* no functional change


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-18 18:11:26 +00:00
Alexander von Gluck IV
afbd52f16a * improve framebuffer programming on newer cards
* correct? color mode setting bug
* fix var naming to match style guidelines
* add a few missing register defines


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-18 05:54:28 +00:00
Michael Lotz
4254fc3705 Fix wrong register values introduced in r42870.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 22:00:30 +00:00
Michael Lotz
1f75663ca6 Remove the interrupt register block. These aren't actually identitiy mapped
(they are actually reversed), so introduce a find_reg() inline function to map
such regs individually instead. Should fix interrupt storms on SandyBridge.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 20:48:54 +00:00
Michael Lotz
c0cb09baee * Add a couple more SandyBridge IDs. They might work, but I can't test them.
* Also add the definitions and some specifics for IronLake (ILK), but keep the
  IDs disabled as at least the one version I can test with doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 20:02:56 +00:00
Michael Lotz
9e2e0d8dac Make some more SandyBridge specifics into Platform Control Hub (PCH) specifics.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 19:36:02 +00:00
Michael Lotz
c788baed28 Style cleanups only, no functional change.
* Make the pointer style consistent accross all components, which should make it
  easier when working all over the place.
* 80 char limits.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 15:15:03 +00:00
Michael Lotz
2d004e3e89 Fix register definition for image size registers. They are in the north pipe
control block. Doesn't matter on (G)MCH (they are the same register block tehre)
but fixes mode setting on PCH again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-16 14:38:44 +00:00
Michael Lotz
f0468be384 * Rework how registers are accessed. Most registers are now grouped into
register blocks and we encode their block into the register definition. On
  register access these blocks are then translated into the final address.
* Set up the register blocks for (G)MCH and PCH variants.
* Remove most SandyBridge code that was actually PCH specific and is now taken
  care of automatically.
* This will temporarily break SandyBridge support again until the right
  transcoders are actually programmed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-15 15:35:35 +00:00
Michael Lotz
16cc59778b Attempt at panel control for SandyBridge, still disabled though as it doesn't
work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-15 11:20:40 +00:00
Michael Lotz
b4f4ac9237 Group the PCH registers logically.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-14 20:15:33 +00:00
Michael Lotz
bff57edf94 Add indexed color mode support for SandyBridge.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-14 19:30:20 +00:00
Michael Lotz
395d16a9bd Some more SandyBridge specifics to get V-blank interrupts going.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-14 19:11:29 +00:00
Michael Lotz
951b5e5147 More SandyBridge specifics: Use the proper registers for display detection and
DPMS. Still needs to be reworked...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-13 16:56:11 +00:00
Michael Lotz
e436a27e5f * Add preliminary support for one SandyBridge mobile integrated graphics device
(the one in my new ThinkPad X1). The PLL is still off a bit so it has a few
  blurry stripes, but EDID and mode setting basically works.
* Starting with IronLake the north/south bridge or (G)MCH/ICH setup was moved
  into a platform control hub (PCH) which means that many registers previously
  located in the GMCH are now in the PCH and have a new address.
* I'm committing this mostly because this way the additions are more easy to
  follow. It is a bit messy and I'll clean it up more and possibly make it a
  bit more generic. Also most of these changes actually apply to IronLake and up
  and aren't SandyBridge specific, so a few of those additions will still get a
  broader scope and new chips will be added.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-10-13 09:07:33 +00:00
Axel Dörfler
83187b29d3 * Added helper functions for the "propose mode" accelerant hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-09-11 18:29:50 +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
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
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
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
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
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
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
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
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
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
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
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
eb02753779 * Little cleanup
* Add missing Idle call for connectors
* Reformulate blanking.. this should match what the
  register is after the GTF vesa call
* Set FrameBuffer to card internal address


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-07-29 06:10:52 +00:00
Axel Dörfler
d3d53515a9 * Add the width, and height to fill_display_mode(). This should help with #7751
this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-07-19 18:16:58 +00:00
Axel Dörfler
95009aeeb0 * Imported Andy Ritger's GTF code in compute_display_timing.cpp, and mangled it
into a usable function - this has some coding style issues I did not care to
  fix.
* _AddBaseMode() now computes the mode in case it is not present in the list
  yet.
* This should help with bug #7787.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-07-13 23:26:26 +00:00
Alexander von Gluck IV
b6c5f46896 * 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
2011-07-04 22:24:17 +00:00
Rene Gollent
124cdd4f57 Applied patch by Gerald Zajac: Adds hardware overlay support to the ATI
mach64/Rage driver. Resolves #5314. Thanks!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-28 19:13:49 +00:00
Alexander von Gluck IV
f7f3828178 pass device pciid through to accelerant
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-16 03:10:17 +00:00
Alexander von Gluck IV
58ddd30b23 add universal RadeonHD power states
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-15 15:44:14 +00:00
Alexander von Gluck IV
217c0b1d48 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
2011-05-27 02:14:54 +00:00
Alexander von Gluck IV
fffb954b89 add D2 secondary surface address, not sure why it was missing in radeonhd driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-26 18:10:43 +00:00
Alexander von Gluck IV
3be5e03652 * rename graphics_memory to frame_buffer. lets keep consistant
* pass mapped frame buffer area id to accelerant
* remove my temporary hacked together frame buffer memory mapping
* completely rely on PCI BAR for now for aperture size / location instead of
  R6XX_CONFIG_FB_BASE reg.
* Remove my temporary AllocateFB function.
* set grphPrimarySurfaceAddr to physical memory frame buffer location (offset 0)
* fix P/N sync setting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41722 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-24 22:08:54 +00:00
Alexander von Gluck IV
51a43d0ff4 ensure framebuffer doesn't exceed PCI bar; add basic monitoring of frame buffer memory allocation; fix return of framebuffer to OS to be the correct area
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-19 17:39:07 +00:00
Alexander von Gluck IV
882e2ef79b remove frame_buffer_pci as it duplicates frame_buffer_phys, remove frame_buffer_base as it duplicates framebuffer_area
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-18 18:43:28 +00:00
Alexander von Gluck IV
90af954387 * actually set device_chipset before reading it.
* make shared memory info naming clearer.
* move frame buffer internal offset read to driver
* remove check of > 512MB as we really should always use frame_buffer_size


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-18 18:38:28 +00:00
Alexander von Gluck IV
56e6d991bb make math easier to read; fix chipset int length; additions to CardScale
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-18 04:25:05 +00:00
Alexander von Gluck IV
6c43ea6336 read and store aperture size (will be used in fblocation calculations)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-16 18:10:49 +00:00
Alexander von Gluck IV
2be925fd04 * turns out r800 has different register locations :(
* remove device_type and replace with device_chipset
* change MEMSIZE to >> 10 as r600-r700 store this in bytes (r800 uses MB and will be fixed soon)
* add if statement to select what register locations to use based on chipset
** Maybe use a struct or something to store these in a standardized way?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-16 04:03:18 +00:00
Alexander von Gluck IV
344802cb7d stir in evergreen/r800 mixins from Xorg radeonhd driver, may need to add to this as I just grep'ed evergreen; r800/evergreen has a different set of registers for some things, thus my work so far not working for me :(
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-16 02:53:15 +00:00
Alexander von Gluck IV
2613175e19 * add commented out radeon_hd driver/accel to HaikuImage
* add boot item support to radeon hd driver
* add edid storage to shared info
* add pull of active monitor VESA EDID to radeon hd driver (until AtomBios complete)
* EDID pulled in driver now passed to create_display_modes
* move registers to external stock xorg radeon hd register headers (lic. allows it)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-10 02:02:41 +00:00
Alexander von Gluck IV
67f2df2363 add some R800 cards to known pci ids; implement basic known card type/model storage
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-04-28 18:57:22 +00:00