Commit Graph

455 Commits

Author SHA1 Message Date
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
Alexander von Gluck IV
917235a8b6 add some needed generic radeonhd registers, added Xorg copyright as I am taking a lot of their register definitions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-04-03 17:20:05 +00:00
Alexander von Gluck IV
5e89302676 removing atombios and starting clean, after some review I going with Axels suggestion to put it all in the accelerant.. I don't see the radeon_hd driver using AtomBios in the future. sorry for the commit spam
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-22 22:24:27 +00:00
Alexander von Gluck IV
e8ac67ca07 move atombios headers into private include
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-22 19:39:02 +00:00
Alexander von Gluck IV
75f51fc787 remove a bunch of leftover Intel extreme registers, add in relevant ATI r600 registers from Xorg driver, remove kATIVendorId from driver and use vendor var from global private header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-21 21:52:01 +00:00
Jérôme Duval
0f4ab8dfd3 Comparing with i915 DRM:
* add a INTEL_TYPE_915M type to be used by 0x2592 (mobile version)
* 0x2e32 is actually non mobile, added its brothers 0x2e02, 0x2e12, 0x2e22, 0x2e42, 0x2e92
* 0x27a2 is actually mobile.
* added 0x2972, 0x2982, 0x2992 for INTEL_TYPE_965 type, and 0x2a12 for INTEL_TYPE_965M.
* added corresponding entries in intel_gart.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-06 11:57:20 +00:00
Brecht Machiels
2f4d9fdbab * added support for the Atom IGD, based on the X driver sources (fixes #6202)
* fixes G4x PLL limits


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-29 21:20:00 +00:00
Adrien Destugues
a8e3ab4f46 Enable the VBlank interrupt on pipe B for LVDS panels. This gets it working for me. Most stuff using BDirectWindowand synced drawing should now work better (\n and TVBack demos for example)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-26 20:36:40 +00:00
Jérôme Duval
93ca791b70 * added math.h missing prototypes like log2f. This fixes #6802.
* whitespace cleanup and renamed log2() to radeon_log2 (conflicts with log2 in math.h)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-24 23:42:17 +00:00
Stephan Aßmus
4c9da6dc09 Applied patch by kaliber from ticket #6349. which fixes quite a
few warnings. Thanks! I did not apply the hunks about moving
a logging function in the common accelerant code to be static.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-06 10:17:41 +00:00
Adrien Destugues
124a502a7a Always set the LVDS panel to its native mode, except for the 'display' part.
This allows to use lower resolution screen modes with black border.

Added a set of TODOs :
 * The smaller scren is not centered, but aligned top-left
 * The base resolution used is the one reported from edid 1.1, because I'm still not sure how to parse EDID 1.2. This resolution is too small on my laptop, but it works.

Also added two ways of setting 8-to-6 dithering for 18-bit LVDS panel. No visible result for me, unfortunately.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 15:06:49 +00:00
Oliver Tappe
eddec292d5 * applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-21 21:43:20 +00:00
François Revol
dae84707ac Patch by "notzed" (Ticket #5380): Add support for setting video mode for OMAP3.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-30 17:39:36 +00:00
Philippe Houdoin
307ff45454 Promoted newest 3dfx video driver by Gerald Zajac in place of the outdated tdfx driver.
Added to Haiku image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-28 20:43:37 +00:00
Philippe Houdoin
a56bc48835 ImÃport new 3dfx graphics driver from Gerald Zajac (see #6215.
Supports Banshee, Voodoo3 and Voodoo5 chips.
It will be promoted as older tdfx replacement soon, but not until 
my small changes around phys_addr_t are validated.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-24 03:47:49 +00:00
Axel Dörfler
cdfd124b11 * Now phys_addr_t should be used where needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-06 09:39:38 +00:00
Axel Dörfler
9a063f059c * Fixed the AGP interface to correctly use phys_addr_t where needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-28 09:19:11 +00:00
Ingo Weinhold
64d79eff72 * Changed physical_entry::{address,size} to phys_{addr,size}_t and changed
map_physical_memory()'s physicalAddress parameter type from void* to
  phys_addr_t. This breaks source compatibility, but -- as long as
  phys_{addr,size}_t remain 32 bit wide -- keeps binary compatibility with
  BeOS.
* Adjusted all code using the affected interfaces (Oh what fun!). Added a few
  TODOs in places where the wrong types (e.g. void* for physical addresses
  are used). Looks like quite a few drivers aren't 64 bit safe and others
  will break with PAE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-27 22:07:27 +00:00
Clemens Zeidler
a90ebd77ee 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
2010-04-13 22:35:53 +00:00
Artur Wyszynski
cee04e8074 Fixed various errors/warnings reported by cppcheck:
* memory leaks
* resource leaks
* added const's to getters
* removed a few reundant conditions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-08 22:50:38 +00:00
Brecht Machiels
8b20f2e4ae forgot to add this file in r33815
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-28 21:37:38 +00:00
Brecht Machiels
dfdfbd3eef * added support for GM45 (might work for other chips in the G4 series)
* added header for dealing with binary numbers and bitmasks (C++ templates)
   these "macro's" might not work well for long words, though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-23 23:03:49 +00:00
Rudolf Cornelissen
b793b9cbd0 added dithering support for DAC1. Dithering is enabled for digitally connected panels on DAC1 on laptops. This should remove the 'colorbands' displayed previously on gradients. Bumped version to 1.06.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-19 10:33:01 +00:00
Axel Dörfler
795bd7a697 * The save_lvds_mode() function did not correctly support the i965 chipset -
I've now removed that code, and factored out a retrieve_current_mode()
  function that can work on head A and B.
* This fixes Adrien's flickering problem on his laptop - I can't find the
  bug ticket, though. Hopefully it does not break other laptop chips. Testing
  would be welcome, as I don't have any other machine here.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-18 10:03:01 +00:00
Stefano Ceccherini
4b115815dd Removed unused headers directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-19 22:28:31 +00:00
Rudolf Cornelissen
19a34ea09c added disabling of spread spectrum-ing DAC clocks on NV30 and later: my laptop display nolonger shivers on the secondary output. version is 1.03. +alphabranch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-06 14:42:11 +00:00
Rudolf Cornelissen
148077d71e the previous commit shifted the PLLsel problem from digitally connected screens to analog connected screens apparantly. That is now fixed and both should work OK. Bumped version to 1.01. +alphabranch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-06 10:20:42 +00:00
Rudolf Cornelissen
9b53cf03cd implemented haiku-specific hook GET_ACCELERANT_DEVICE_INFO. Haiku's screen prefs panel now indicates the brand name of the screen and only offers fully compatible modes for a connected screen if I understand it correctly. Note: currently only working for analog connected screens, digital connected screens coming up next. Updated docs, bumped version to 0.96.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-23 08:48:58 +00:00
Axel Dörfler
b2a75cf56c * Fixed mixup of the VGA compatibility layer - if the bit is set, it means the
device is not compatible, after all.
* No longer accept color changes if the mode is not an 8 bit one. I think that
  BWindowScreen does that after changing the mode, so that is messes up the
  colors, at least that's the theory, will test on real iron now.
* Use VGA as a fallback if setting the palette via VBE failed. This brings back
  the colors for ParticlesII in Qemu (but not in VirtualBox, which seems to be
  completely broken in this regard).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 14:30:01 +00:00
Axel Dörfler
2384335649 * Changed the way the device type is tested/set. There shouldn't be any functional
changes.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 13:02:52 +00:00
Axel Dörfler
bb693d7764 * Added VESA capabilities field to the kernel args.
* The vesa driver no longer uses VGA programming if the chip does not support
  VGA compatibility.
* The VESA driver now tries to set the DAC to 8 bits per color gun.
* In VESA modes, the driver no longer tries to use VGA programming; introduced
  the new vesa_set_indexed_colors() that is now used for palette programming.
  This should fix wrong colors of 8 bit BWindowScreen users with VESA on real
  hardware (emulators usually didn't mind either way).
* Note that the app_server needs to maintain a palette per 8 bit screen, as
  right now, the colors are garbled after a workspace switch. Stefano, are you
  looking into that already?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 09:49:28 +00:00
Axel Dörfler
13247f3a8c * This fixes VGA mode frame buffer use, no idea when this got broken. It might
be broken in the app_server now, but I haven't checked yet.
* Fixed typo in vesa.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 17:24:23 +00:00
Axel Dörfler
61b6f38cfc * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 14:11:12 +00:00
Rudolf Cornelissen
c8453f43a4 driver now sets up internal EDID info related to CRTCs next to earlier introcuded code for EDID info related to connectors which makes it much more useable later on. This commit also hopefully fixes the problem introduced in R31183 shutting off some screens in 'invalid' connector setups that the driver tries to correct.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-28 14:53:07 +00:00
Rudolf Cornelissen
8bdea4194a doing preparations for using analog widescreen detection. if all is right the driver's behaviour hasn't changed yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-22 20:33:17 +00:00
Axel Dörfler
bfd4c59b63 * Added DPMS support to the VESA driver, in case the hardware/BIOS supports it.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-05 13:03:05 +00:00
Rene Gollent
a63261ea5a Added files missed in previous commit. Thanks Urias.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30963 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-05 03:50:21 +00:00
Rudolf Cornelissen
c1db4db3cc modified I2C code to read the third bus on cards that can support it. Dumping EDID scanning results in logfile only for now (testing..) Bumped version to 0.92.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-02 20:37:59 +00:00
Rudolf Cornelissen
dd67a9b2d4 added enabling I2C buses for NV40 arch cards. hopefully this makes the buses work on GF6100 (noted in bug #2780) and maybe others. added a few registerdefines (wip).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-01 20:06:21 +00:00
Rudolf Cornelissen
f595427d00 fixed comment typos. No actual change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 18:57:01 +00:00
Rudolf Cornelissen
21bade017a added more EDID stuff. Now extracting needed monitor specs and placing them in shared_info. More dumping to logfile added. The EDID info is not yet actually used: more testing is needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 18:46:07 +00:00
Rudolf Cornelissen
6042b7b665 added 'block_acc' option in nvidia.settings to completely disable the acceleration engine. This lets my G72 run (not crash) for the first time when enabled. Note: Haiku becomes very slow in drawing in 32bit mode when the driver is running this way compared to vesa mode. I am assuming this is because of (too) fine-grained calling of the engine management functions. Never saw this effect AFAIK in BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-02 19:55:03 +00:00
Axel Dörfler
b4c8ccc372 * The boot loader now creates a CRTCInfoBlock structure when detailed EDID
mode informations are available.
* This is passed to the graphics card when the mode is set in the hopes that it
  will be more conforming.
* Not yet tested on real hardware, though, therefore the VESA driver doesn't
  do anything like this yet. I will test next, but please report any problems
  with this nonetheless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 09:52:57 +00:00
François Revol
de398d21ff Remove that cirrus driver I never really started on. QEMU is getting vmware graphics support anyway now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-11 15:05:11 +00:00
Axel Dörfler
c1379d357b Update for the S3 driver by Gerald:
* The hardware cursor is now disabled at 640x480 with a Virge VX (before it
  was just invisible).
* EDID info can now be read for all S3 chips.
* For the Savage IX, Savage MX, and SuperSavage chips the display is no 
  longer expanded to fill a laptop LCD display when the mode resolution is 
  less than the size of LCD display.
* Savage IX, Savage MX, and SuperSavage chips will now display mode 
  1400x1050 on a 1400x1050 laptop LCD display.  Previously the display was 
  blank at that resolution. 
* Previously about half the Savage chips would not draw properly at 
  1400x1050.  That is, the image was badly skewed and unusable.  All of 
  them now draw properly at 1400x1050.
* Some code was reorganized to remove unnecessary and redundant code.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-04 08:09:40 +00:00
Rudolf Cornelissen
6ffc2359d4 removed last G8x defines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-17 19:27:38 +00:00
Rudolf Cornelissen
f433117839 removed all pre-NV40refs, removed all overlay code (no info on the current engine known). Driver cleanup mostly done now I hope.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-17 19:16:40 +00:00
Axel Dörfler
2d5f339dec Patch by Christopher Plymire, style-reworked by myself:
* first steps of supporting LVDS panels.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-16 18:01:34 +00:00
Rudolf Cornelissen
730ebb158c removed all pre-NV20 refs, removed all TVout stuff except clearing some flags, re-enabled force_ws option, force_ws is now default true, pgm_panel is now default false.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-11 18:14:15 +00:00
Rudolf Cornelissen
8981fa5d54 removed PIO mode acceleration completely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 17:56:54 +00:00
Rudolf Cornelissen
b11432e092 removed all references to G80 and newer cards.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 11:10:52 +00:00
Rudolf Cornelissen
0ddc7716d4 headers for nvidia_gpgpu driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25874 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:53:17 +00:00
Axel Dörfler
d16ddc579c * The boot loader now passes on its EDID info to the kernel, and that will
be put into a boot_item in frame_buffer_console_init().
* The VESA driver now supports gettings the EDID information as well; this
  is necessary now, since the app_server no longer takes over the mode the
  boot loader had chosen.
* Note, we might want to do this via vm86 instead in the future, and remove
  the kernel part again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-03 15:17:59 +00:00
Axel Dörfler
9f16184577 Patch by Jan Klötzke with minor changes by myself:
* Use vm86 mode to call the VESA BIOS to do the actual mode switching by
  providing an ioctl in the vesa driver.
* Fix vm86.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 10:48:01 +00:00
Axel Dörfler
35db13ea5a * Replaced the old s3savage driver with the new s3 driver, both written by
Gerald Zajac. Thanks a lot!
* Also put it on the image by default.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-20 21:09:49 +00:00
Axel Dörfler
e549b218af This should have been part of r24675. Not sure what happened as I specified
the path on the commit line.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-30 11:42:32 +00:00
Axel Dörfler
78fa3affbc * Overlay on the G33 does not work anymore in the secondary ring buffer;
we now always only use the primary ring buffer.
* Removed secondary ring buffer allocation and member fields.
* Increased size of the primary ring buffer to 65536 bytes.
* The bytes per row register is computed differently for 9xx chips.
* On G33, the overlay does not need a physical address anymore, so we
  don't pass B_APERTURE_NEED_PHYSICAL to the allocation anymore for that
  device.
* intel_free_memory() accidently added the aperture base to the allocation
  and would therefore never free any memory.
* INTEL_RING_BUFFER_SIZE_MASK was shifted one bit to the right, didn't
  cause any harm with our buffer sizes, yet, though.
* With these changes, the driver runs stable on a G33 chipset (I have not
  yet tested the hardware cursor, though, it might need some work, too).
  The only known issue left is that overlay flickers a bit if its buffer
  is partially backed up by reserved and allocated memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-31 18:28:48 +00:00
Axel Dörfler
103d05f3c2 * Renamed GART's deallocate_memory() to free_memory().
* Removed "physical" parameter of GART's bind_aperture() - I don't think this
  be of use to anyone.
* Fixed binding/unbinding pages in the Intel GART driver; I accidently shifted
  the page offset twice.
* Actually forgot handling of allocated memory in Aperture::BindMemory().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-31 17:54:23 +00:00
Axel Dörfler
1c34b9b1f5 Work in progress (might not work for you yet):
* Now uses the AGP GART module for memory management. This greatly simplifies
  the memory handling, and memory is now actually allocated on demand,
  instead of a fixed size (stolen memory is not freed, though).
* The Intel GART module should now also work with older chipsets.
* No longer remove the GTT size from the stolen memory; this appears to have
  been a mistake in the X driver. Not sure about the BIOS popup yet.
* The AGP module (in combination with the Intel GART module) is now mandatory
  to use the Intel driver.
* Removed now superfluous settings (like memory size). Only enabling/disabling
  the hardware cursor is still supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-29 08:55:36 +00:00
Axel Dörfler
3adccb1935 * More or less completely rewrote the AGP bus manager.
* It now also serves as a generic GART manager and accepts bus modules as well
  as custom modules of graphics drivers if they want to (could be used for the
  Radeon PCI GART stuff, for example).
* Implemented GART support module for Intel i965 and G33 chipsets (the other
  Intel chips will come later).
* Renamed agp bus manager to agp_gart to reflect its new functionality (even
  though the AGP functionality is already outdated (due to PCIe), the GART
  stuff remains current).
* Adapted existing users of the AGP bus manager to the API changes.
* Not very well tested yet...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-26 22:18:52 +00:00
Axel Dörfler
d75c88206e * Simplified usage of the INTEL_TYPE_xxx constants.
* Added some defines needed when playing with the bridge controller.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-26 21:59:02 +00:00
Axel Dörfler
4dfa9e425f Some work in progress:
* set_gtt_entry() used the wrong index to fill the GTT - this could have never
  worked correctly when you specified more memory than the amount of stolen
  memory.
* Implementing maintaining resources for emulating overlay using the 3D engine
  on i965. I don't yet commit the actual overlay code, as that is a) ugly, and
  b) does not work yet.
* Moved AreaKeeper into its own header.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-23 17:50:27 +00:00
Axel Dörfler
c88e5e410c * Added support for the G33 line of chips: mode setting and acceleration is working fine AFAICT.
* Implemented mapping the GTT area for i9xx chips other than the i965. This should also fix the
  driver working with these chips at all.
* The memory used by the driver now take the GTT area into account - before the GTT could be
  overwritten theoretically...
* Added fix for some i965 quirks from the X driver.
* Added some overlay definitions for the i965.
* Started support for G33 overlay (not complete yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-02 18:44:39 +00:00
Michael Pfeiffer
9ffc1f4105 Checked in too soon.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-30 10:33:31 +00:00