History log of /haiku/src/add-ons/kernel/drivers/graphics/intel_extreme/intel_extreme.cpp
Revision Date Author Comments
# 629f071b 27-Feb-2024 X512 <danger_mail@list.ru>

pci: extend MSI interrupt vector number to 32 bits

Also increase MSI message data size to 32 bits according to PCIe spec.

Remove 0xff check for MSI interrupts because it is potentially valid
interrupt vector number. Reject 0xff only for legacy pin interrupts.

- MSI-X supports up to 2048 interrupts per device that do not fit to
`uint8`.

- Non-x86 systems may use separate interrupt vector ranges for
hard-wired interrupts and MSI interrupts so `uint8` is not enough to
represent all of them.

Change-Id: Iaf9ffb197ec23db0f97ffe3ea756d28d7bfc8705
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7433
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 3b91d73b 16-Dec-2022 X512 <danger_mail@list.ru>

bus & drivers: drop PCI_x86

Change-Id: I494deaf24a4793a5e0fe9fa46ecdce32f65e616a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6226
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# 3a42882e 25-Nov-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: check another register when finding out hw_cdclk on Haswell/Broadwell

doesn't help with #18084

Change-Id: I6f3cc8b50fc5742fab3021f01b90dfebe484b336
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5830
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 85344c11 04-Jun-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: also set hw_cdclk on Broadwell

this needed for dp aux before skylake, only for DP A (eDP).
should help with #17771

Change-Id: I4bdcca1fdc05294fb5b56c5c96164b6936a5881e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5355
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 59ce1ffe 23-May-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: check internal crt feature in VBT for analog probe on DDI

* also uses the BAR size when dumping regs (as done by the intel_reg tool).

Change-Id: Ie29768afc8f9c42bb9a03b2866db34c4b0e43b7d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5334
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 514c42d7 18-May-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: improve DpAux support on HSW/SNB/IVB

hraw_clock is possibly dynamic, but for the usecase this seems good enough.
Tested on SandyBridge and Haswell laptops.

Change-Id: I045b3c03f6b37bbffb3d8688658ffaa2a97311ae
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5319
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 459f1bcd 02-May-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: irq hotplug support for IceLake and newer PCH.

we enable every port interrupt instead of relying on the ports found in the VBT.
ATM only log the plug state when it changes.

Change-Id: I5175fb137d11f0114beb2915a4f363341cfe8e36
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5287
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 46bbf334 01-May-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: parse VBT device configs, use this to skip unused ports

* BDB version from 111
* for DDI from Gen9
* for HDMI and DisplayPort from Gen6
* use the first port to create the mode list
* also probe DDI Port A
* the aux channel helps to select the correct dp aux registers.

Change-Id: I80549a6ec0477bed768cc5f388959b606d50c1b7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5286
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 3c263adf 02-Apr-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: rework interrupt handler for gen8 til gen11

minimize register reads/writes.
makes more interrupt handling easier to add, for instance iir interrupts.

Change-Id: I97a7e9fcc9273ada6c0f12d5343bf7804f8bdd20
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5174
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 890aa411 28-Mar-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

intel_extreme: improve brightness setting support

- Newer devices use a different layout for the backlight PWM registers
- Get the min brightness level from the BDB

Change-Id: I99745a022dd38733a4c2386f91c4c57016dd2acd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5162
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 467b19de 26-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: setup Gen11 interrupts

added register names from i915 as that's what the register dump tool uses.

Change-Id: I4c4db881f55ffa820c0a6a058a533328a0b5d68f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5161
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 69cab3d4 22-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: remove gen8 interrupt handler on exit

should fix #17535

Change-Id: I09d62090c68bd50494ca168d92d3df7b0c6fd0b4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5138
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 7a5f5dc5 14-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: handle 64-bit PCI BARs


# da606501 19-Feb-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: enable power on init

could be necessary on laptop with multiple graphics cards

Change-Id: I38040a4d83be62904b0154d75890ef00b2a878b0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4978
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# fd876ad7 04-Dec-2021 Kacper Kasper <kacperkasper@gmail.com>

intel_extreme: vblank interrupt support for Gen8+

Change-Id: I8e7e68786cc4a626cb386929600715a6a6b1917d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4760
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# c80ea549 05-Dec-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: PLLs post skylake work differently again. Refclk update.


# 03ed1049 26-Nov-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: enabled all known skylake gfx cards since they are pgm'd now


# 4492fde7 27-Oct-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: reduce use of display_mode where display_timing is enough

In most cases we don't need to use the complete display_mode struct and
we just need the timings. This will avoid future confusion between the
virtual width/height and the actual display timings, if we implement
scrolling someday.

Change-Id: I6c4430b84130b956a47ea0a01afb0843f5a34fd2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4665
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# bed01fe3 23-Mar-2020 Jérôme Duval <jerome.duval@gmail.com>

AreaKeeper.h: move to headers/private/kernel

Change-Id: I9ae2b9a6243809a618c0520a26e064ce3c5be2b4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2410
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 980a3930 09-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: build fix, remove unused variables.


# af8d74ae 09-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: fix width of interrupt register.

The driver had been using 16 bit reads and write (introduced by Axel in
2006), but the hardware documentation (released in 2008) says the
register is 32bit. Use 32bit since that makes the code identical to
what's used for later devices.

If 16bit is needed, it's only for the pre-2008 devices.


# 56cddb51 21-Nov-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: fix vblank interrupt for Ironlake

Ironlake and SandyBridge use the same layout for the interrupt register.
Previous generations don't use PCH so the interrupt register is
different. Next generations shuffle the bits again to make space for a
3rd display pipe.

Thanks to D3ant for letting me test this on his computer!


# e29b7dd8 19-Oct-2019 Augustin Cavalier <waddlesplash@gmail.com>

intel_extreme: Fix TRACE macro format.


# ce8f386d 05-Oct-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: extra tracing around overlay memory block init

To help understand the problem in #14276

Change-Id: I334a5cdfa149d335068f2135d13ed729b53fe6ab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1900
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# acc0180a 05-Oct-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: enable global interrupt bit also for Haswell.

Fixes #13802.


# 8a0c9d52 10-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

OS: Rename B_USER_CLONEABLE_AREA to B_CLONEABLE_AREA.

It now lives in OS.h. The idea is that this will now be
accessible to userland applications, so userland memory
is protected from access by other processes, just as
kernel memory is.

No functional change (the constants are still the same,
though I've changed some to use shifts to make clear
which bits are allocated are which are unused.)


# 597837c7 29-Sep-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove unused variable in intel_extreme


# c2d37953 28-Jul-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Rework PLL calculations for Iron Lake

The limits were wrong in several places. Checked the sandy bridge, ivy
brige and haswell docs, they all say mostly the same.

- The value of p2 is either 7, 14, 5 or 10 depending on 1 bit in the
config register and on the display type. We can guess which values are
right according to the global P limit (5-80 when using 5/10,
28-something when using 14/7). The values are different because CRT
need a precise, but rather low pixel clock, while modern display
interface can accomodate being faster than required by a few MHz, but
need a much higher speed (the bits are transferred serially, so they
need to be at least 8 times faster than a DAC).

- The limits for N were obviously wrong, as the register is written with
N-2, so values less than 2 make no sense. Use 3-8 as specified in the
datasheet.

- The reference frequency (set by the driver) was wrong, too. It is
120MHz, not 96. It is 100MHz in some cases (FDI, etc), we should see
when this happens and switch to the right reference for PLL
computations.

- There was an attempt to minimize the value of N (a powersaving effort,
I guess?), but it would basically force the loop to stop at the first
value of N tested, resulting in way off timings in some cases.

- To ease testing and stop sending patches and syslogs back and forth
with vidrep, extract the "test mode" from pll.cpp into a proper test
executable, making it a little easier to experiment with the code and
fix the problems.

This should fix #13669 and possibly other cases of "out of range", black
screen, bad timings, etc.

Change-Id: Ic4c1c159701f352b7c1ef15a647f023c82ac26c
Reviewed-on: https://review.haiku-os.org/360
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# cd7bd437 08-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

Fix missing B_USER_CLONABLE_AREA in intel_extreme

Fixes #14333


# 5bd8cf13 01-Jul-2018 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: use user_memcpy to write to user mapped memory.

* now boot successfully to desktop with SMAP enabled on intel_extreme.
* enforced 80 chars/line on two occasions.


# abb59d73 24-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

intel_extreme: Fix instances of user memory creation and access.

You still cannot boot to desktop under SMAP on intel_extreme, however,
as the agp_gart bus has not been patched properly. Doing so breaks the
intel_extreme accelerant, so more investigation is needed.


# 2080509c 27-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix some missing parentheses

* Problem found by gcc4.


# 8a3177ff 27-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: enable Werror and fix warnings.


# 8dd9b6f0 27-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: style fixes and clarifications

Thanks to Axel for review.


# 187ad82a 26-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: fix wait_for_vblank on SandyBridge

There was some mixup with the interrupt registers, still:
- The driver uses 16-bit read/write, but on SandyBridge the register is
32 bits
- There is a global interrupt enable bit, which must be set to unmask
everything else
- The bits for vblank interrupt are not the same on SNB and later PCH
based devices, and the code mixed the two.

Move the computation of the interrupt bits to an helper function, and
use it everywhere to make sure we always use the right bits.


# 92e254d0 10-Jul-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

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.


# 3d1bd895 11-Mar-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

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


# e28962a2 23-Dec-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Fix pci index mappings on i9xx < i96x


# e6fefa6c 19-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

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.


# 202ffc8c 16-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Bump the VLV offset back a bit and fix port defines


# fa45565e 13-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add missing vlv offset to south shared


# c9117774 04-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Improve generation tracing


# fb255821 04-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Correct generations based on some Intel help


# 84b7116d 01-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Rework card identification defines

* Be more verbose on flag type
* Add additional groups
* Add additional families
* Correctly assign later models


# e747cbe1 23-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

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


# c7af18fd 21-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

drivers/intel_extreme: Fix ValleyView block offsets


# bc5cad73 18-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Correct card identification, add gen4 hdmi regs


# 97aa078e 15-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

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)


# 0f94784a 01-Mar-2015 Adrien Destugues <pulkomandy@gmail.com>

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.


# 2d5dbc78 29-Aug-2014 Adrien Destugues <pulkomandy@gmail.com>

Add support for my Core i3 integrated graphics.


# c1400fb6 03-Jun-2014 Axel Dörfler <axeld@pinc-software.de>

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.


# ab1f2cd0 08-Mar-2014 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: read and loop for new interrupts. Fix #9718.

* MSI seems to trigger the need to loop: interrupts are not generated for bits
set while we process.


# ef726c68 16-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

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


# c2cfbd70 09-Aug-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: add MSI support


# 055a6264 05-Jul-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: only init overlay registers

... when memory allocation succeeded.


# dff48661 05-May-2013 Michael Lotz <mmlr@mlotz.ch>

intel_extreme: Remove redundant cast of argument.


# c162f52e 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme and radeon_hd: some 64 bit fixes


# e71af5ae 31-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add RC6 downclocking support

* Generation 6 (SandyBridge) and later support
automatic downclocking of the GPU offering
substantial battery use reductions.
* As we're playing with fire here, only use on
mobile devices SandyBridge or later.
* This is testing stable on my SandyBridge laptop,
however I need further confirmation of the
functionality of this.
* Move clock gating into a function in the power.cpp
file


# 78303934 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Fix tracing toggle names


# d1043dfa 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add IvyBridge fixups

* Add initial clock gating fix (may need tweaking)


# 5176bea3 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Improve tracing

* This was needed to find a bug while
working on IvyBridge support.
* Code looks a bit cleaner as well now.
* If something goes wrong, user is now
better notified via syslog


# 1f75663c 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# c0cb09ba 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# 9e2e0d8d 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# c788baed 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# f0468be3 15-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# 395d16a9 14-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# e436a27e 13-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# eae25c88 08-May-2011 Jérôme Duval <korli@users.berlios.de>

"intel_extreme" was printed twice


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


# 3096fb81 27-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Style fix as pointed out by Stephan.


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


# a8e3ab4f 26-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

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


# cdfd124b 06-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* 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


# 5003f66a 04-Jun-2010 Rene Gollent <anevilyak@gmail.com>

The physical base pointer can be NULL since it's only allocated if certain flags are passed. Fixes regression introduced in r36999 and hopefully ticket #6137. Axel, please review.



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


# 19a0767e 02-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Quick and dirty work-around for broken interface.


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


# 6cae2161 28-Oct-2009 Brecht Machiels <brecht@mos6581.org>

made code style more consistent with the rest of the driver


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


# dfdfbd3e 23-Oct-2009 Brecht Machiels <brecht@mos6581.org>

* 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


# 23843356 14-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 78fa3aff 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 1c34b9b1 29-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

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


# d75c8820 26-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4dfa9e42 23-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

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


# c88e5e41 02-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# e7e32550 16-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

Allocating additional memory should now work on the i965 as well (but bad things
will happen on earlier i9xx chips for now...). Not yet tested.


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


# 7aced0c7 04-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* The second open will now fail, too, in case the hardware could not be initialized
correctly.
* Got rid of this superfluous cookie stuff - either the VFS behaves correctly, or
we're screwed anyway.
* Made adding debugger commands optional depending on if DEBUG_COMMANDS is defined
or not.
* Minor other cleanup.


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


# 3bac9ea1 04-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Work in progress to support the i965 chipset as well; still works on i865, but
doesn't work on i965 yet.
* B_GET_DISPLAY_MODE now returns the mode actually configured in the chip instead
of the last mode set; while this isn't really necessary, it allows to check what
mode was used during startup.



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


# 7de93827 13-May-2007 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Set clock values based on card type.



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


# 60b71f65 14-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Applied the cleaned/fixed version of patch by YellowTab:
* essentially, it makes sure certain bits in the PCI config are set
* also added two more device IDs, which I have disabled for now


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


# ca1a22a7 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* commented out span acceleration function, since it doesn't seem to work
* added mode for 1440x900, the numbers are just guessed, but work fine
with my monitor (after some fiddling), would be best to have some common
VGA communication code for all drivers to use and auto-detect the preferred
mode of the monitor
* messed around with the overlay brightness and contrast values to give
good looking video



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


# f3585ce5 05-Sep-2006 Axel Dörfler <axeld@pinc-software.de>

Applied stripped down patch from Mathew Schofield.


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


# 3ef31db0 27-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

* Obviously, the i9xx family has changed the order of the PCI mappings, so we need
to take that into account.
* Introduced INTEL_TYPE_FAMILY_MASK and INTEL_TYPE_GROUP_MASK to better
differentiate the device type.


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


# 68cdc8a1 28-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Somehow it occurs to me that I shouldn't delete the area of additional
graphics memory even before use (this fixes the sudden but visually appealing
crash you got when you needed to use that memory ;-)).
* Made the additional graphics memory contiguous which shouldn't be strictly
necessary, but shouldn't harm either: when an overlay is spread over the
BIOS allocated memory and the additional memory, there were some visual
problems when the overlay was shown on screen. Might need to investigate
that a bit more.
* Added a boolean option "ignore_bios_allocated_memory" to the settings.
* Reverted stippi's accidental changes.


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


# b3d94504 29-May-2006 Stephan Aßmus <superstippi@gmx.de>

* added a bunch of drivers by Siarzhuk Zharski
-> a USB Mass Storgage module (SCSI bus manager add-on)
-> a SiS 7018 AC97 driver (uses "old" audio driver interface)
-> a USB Serial driver
-> a USB Vision driver and media add-on (Haupauge WinTV USB)
* moved R3MediaDefs.h from usb_audio driver to common place
headers/private/audio (also used by SiS 7018 driver)
* added TV tuner frequency defines to data/settings/media/usb_vision

Some of these drivers are in unfinished state, particularily the
USB Vision driver, the VideoProducer doesn't seem to use it yet,
the USB Mass Storage module is known to work though, it also includes
add-ons for itself that add support for some "special" hardware, these
are not integrated with the Jamfile build system though.

Also I didn't much much time with the "CVS package" targets, the
ReadMes are not added, someone with more knowledge about this could
add them...

None of this stuff is added to the Haiku image, it is simply included
to be maintained in the Haiku tree from now on.

* fixed a bug in Video Producer sample inherited from Be Sample
code - the timing from the time source was not really used,
on some systems this could cause in the producer not waking
up at the correct time if the system time and audio card time
are drifting apart



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


# 1faf767b 24-May-2006 Axel Dörfler <axeld@pinc-software.de>

Made the memory mapped registers temporarily accessible from userland for testing
purposes (a.k.a. poke).


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


# c5f5d834 23-May-2006 Axel Dörfler <axeld@pinc-software.de>

* B_MOVE_DISPLAY and B_SET_INDEXED_COLORS should now work for the digital
output as well.
* Obviously got the register for INTEL_DISPLAY_B_DIGITAL_PORT wrong - it's
not 0x61000 but 0x61140, maybe that can explain the fun we had at BeGeistert :)
* Renamed the analog display registers to better fit the digital ones, ie.
replaced DISPLAY with DISPLAY_A - although this might be not really correct
as it seems that the pipes can be selected arbitrarily.
* Minor cleanup.


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


# 7902c46c 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Added i830 as supported chipset - doesn't work perfectly, though. But Kyan reports
that at least 8 bit modes seems to work (but overlay only partially)
* Added "hardware_cursor" option to the settings file - when set to "false", you should
have a cursor in the second output now as well.


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


# 7d5957df 14-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Implemented hardware cursor support.
* Turns out cursor handling is simpler as originally thought, so I could remove its
physical mapping - it's still put into the shared area, though, although that isn't
needed for this chip (but could eventually simplify the handling of other generations
of this chip).


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


# dc302662 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


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


# 82bca02b 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

You can now specify how much memory the chip can use for graphics memory via
a settings file. However, you cannot specify less than the amount taken by
the BIOS (ie. your settings will be ignored if you do).
Just put something like the following into a "intel_extreme" settings file:
graphics_memory_size 16

To allocate 16 MB in total. Note, whatever value you specify will be rounded
up to the next power of two, ie. if you specify 6 MB, 8 will be taken.


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


# 63dbc0a8 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Accidently overwrote info.registers which let all subsequent register writes
(in the kernel driver) fail - or crash the system.
* Waiting for VBLANK now works as expected - you actually have to *set* the bit
to clear it, isn't that obvious? :-)


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


# 5af5259c 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

Implemented vblank interrupt and support for the retrace semaphore - not yet
tested, though.


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


# ccb666bc 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Prepared having hardware cursor support; got quite complicated because there
is no good (or reliable) way to retrieve the physical address of "stolen"
(by the BIOS) graphics memory.
* Implemented allocation of additional graphics memory in case the BIOS was
a bit too cheap. We now guarantee 8 MB of memory available to the graphics
chip - would be nicer to only allocate that on demand, though.


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


# 030d964e 11-May-2006 Axel Dörfler <axeld@pinc-software.de>

Made the primary ring buffer for the acceleration commands a bit larger (16 KB);
this is mostly done because of the fact that I haven't tested how full it usually
is, and since I haven't implemented checking for free space yet...


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


# e3fe0cd7 10-May-2006 Axel Dörfler <axeld@pinc-software.de>

This didn't even read out the page table register, it read something from address
0x2020, which resulted in a page fault under Haiku.


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


# 08ef16ab 09-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Now allocates space for the hardware status page and cursor memory, not yet
used, though.
* Renamed the PhyisicalPageMapper class to AreaKeeper and made it a bit more
generic (ie. it can now also create usual areas)
* The shared_info is now created using the AreaKeeper, too, and this actually
fixes some potential memory leaks.


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


# 96451fe1 10-May-2006 Axel Dörfler <axeld@pinc-software.de>

We're now using a secondary (high priority) ring buffer for hardware
overlay - this will improve the overlay performance when the engine is
under load (the acceleration engine will use the primary lower priority
ring buffer).



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


# 18f48919 09-May-2006 Axel Dörfler <axeld@pinc-software.de>

This little fix should allow Stippi to have a working driver when he compiled
it himself.


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


# f1973028 08-May-2006 Axel Dörfler <axeld@pinc-software.de>

The size of the stolen memory for the graphics chip is now read out of the host bridge.


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


# 2465e303 08-May-2006 Axel Dörfler <axeld@pinc-software.de>

Accidently set the contrast too low, overlay now looks just fine.


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


# 7740a4c1 28-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Enabling overlay requires a command ring buffer, and we're setting one (very
small) up for this specific task - this will later be used for the acceleration
engine as well.
Some more work on overlay initialization, doesn't do anything yet, though.


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


# 22d4db92 26-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Added overlay register definitions.
* The overlay register update buffer is now created and exported, ready
to be used.


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


# 5da6291b 24-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Now using Thomas memory manager to manage the graphics memory; allocation
of graphics memory is now possible.
* Changed driver name to start with "intel_extreme" to have a nicer device
name.
* Renamed frame_buffer* stuff to graphics_memory* as the frame buffer just
happens to be located somewhere in the graphics memory.


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


# 020c1aa8 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* init_driver() now behaves better in low memory situations.
* Some preparations to support more than one chipset, added i855G (device ID 0x3582)
to test with - the accelerant_device_info is now filled with that additional data
as well.
* Some minor cleanup.


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


# 2fd8de24 26-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Cleanup.


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


# 7a3806ce 25-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Now you can also select the refresh rate you like under R5. Looks like there is
room for improvements left in our screen preferences application, which ignores
the pixel clock values completely.


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


# 943578b1 25-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Added some debug output - the driver is actually working under R5 as well, I just
didn't test it correctly last time...


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


# e404297e 24-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Very basic driver for the "Intel Extreme Graphics 2" chips, only supports i865G for now.
Only mode switches do work, doesn't yet make sure the mode is valid, though.
At this point, this driver only works on Haiku, the R5 app_server is crashing for some
reason I need to investigate some day (maybe tomorrow :)).


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


# 0f94784a5e0f9e2d16df989af8973c646c59b8ce 01-Mar-2015 Adrien Destugues <pulkomandy@gmail.com>

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.


# 2d5dbc78c4178166ef4459480e2fe528c39772bb 29-Aug-2014 Adrien Destugues <pulkomandy@gmail.com>

Add support for my Core i3 integrated graphics.


# c1400fb61762f2c48cb541b3bb79ae011bc853e0 03-Jun-2014 Axel Dörfler <axeld@pinc-software.de>

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.


# ab1f2cd08dd06af2de17df916e55814a772bb658 08-Mar-2014 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: read and loop for new interrupts. Fix #9718.

* MSI seems to trigger the need to loop: interrupts are not generated for bits
set while we process.


# ef726c687a8cb1779a9a78d43a6b6fa8167a7ab4 16-Jan-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

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


# c2cfbd70fea3737090397be943b8b876541e9f34 09-Aug-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: add MSI support


# 055a62645e9c6ab12ff0cd92cc9954e8cd00f023 05-Jul-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: only init overlay registers

... when memory allocation succeeded.


# dff48661fd6117d130f05a20d86677e4117bb242 05-May-2013 Michael Lotz <mmlr@mlotz.ch>

intel_extreme: Remove redundant cast of argument.


# c162f52eaa83ca2cf01f61c4fb6353d76e10caa1 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme and radeon_hd: some 64 bit fixes


# e71af5ae6c95d8936efeb5f46640136819e57025 31-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add RC6 downclocking support

* Generation 6 (SandyBridge) and later support
automatic downclocking of the GPU offering
substantial battery use reductions.
* As we're playing with fire here, only use on
mobile devices SandyBridge or later.
* This is testing stable on my SandyBridge laptop,
however I need further confirmation of the
functionality of this.
* Move clock gating into a function in the power.cpp
file


# 783039344d61ec0079b135092077c1011f1275fe 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Fix tracing toggle names


# d1043dfa07c4bb078102f3a0cf4bab53166ee770 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add IvyBridge fixups

* Add initial clock gating fix (may need tweaking)


# 5176bea37614c0247b015998e3d79cf85dfa95dc 28-Dec-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Improve tracing

* This was needed to find a bug while
working on IvyBridge support.
* Code looks a bit cleaner as well now.
* If something goes wrong, user is now
better notified via syslog


# 1f75663ca6601b1960c4e91b7e586e7d7bc27dd6 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# c0cb09baee3bffd53702c25c6b7d3c990df1d8fd 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# 9e2e0d8dacfbf49553256dadb0a3b40f494c1774 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# c788baed28e28960c17306fe9f5b40382b07cb1d 16-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# f0468be3845a6f7318a5a4f4dadcd62f7ed4ee22 15-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# 395d16a9bd615881a63bcfb31e04ad12de377bb7 14-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

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


# e436a27e5f6df975a1e35c27f42e8f6ad27ebdca 13-Oct-2011 Michael Lotz <mmlr@mlotz.ch>

* 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


# eae25c8854614f1fe344db4ca79ebaea9752c549 08-May-2011 Jérôme Duval <korli@users.berlios.de>

"intel_extreme" was printed twice


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


# 3096fb8154c30905a3abd8b65fd9a9ca070ea5e3 27-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Style fix as pointed out by Stephan.


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


# a8e3ab4f46ab0b3b122831f12680453eb412e04c 26-Nov-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

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


# cdfd124b11d10b55a284bdc2a94f499c74a832cc 06-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* 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


# 5003f66a4c18cc3e86be170fdf604a45c02bf6df 04-Jun-2010 Rene Gollent <anevilyak@gmail.com>

The physical base pointer can be NULL since it's only allocated if certain flags are passed. Fixes regression introduced in r36999 and hopefully ticket #6137. Axel, please review.



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


# 19a0767e35d1d28d859122744ab2a68bdc334fe9 02-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Quick and dirty work-around for broken interface.


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


# 6cae2161f064bbd686cbc540b36d43e7d65c629c 28-Oct-2009 Brecht Machiels <brecht@mos6581.org>

made code style more consistent with the rest of the driver


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


# dfdfbd3eefeb8aff04b7e8e2d6ebb46a51fe24ad 23-Oct-2009 Brecht Machiels <brecht@mos6581.org>

* 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


# 238433564972d525584b2dfbe1a2c0eb52ef49c1 14-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* 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


# 78fa3affbc8be3c4e69497c15e87ae2f0ebd8c48 31-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 1c34b9b1f5e168501f89a270233457e04aa1b16b 29-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

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


# d75c88206ebdc2e711a9edcf2f4ccf38ba1663e2 26-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# 4dfa9e425fef3a6105e1cd97c4d4324f339f5614 23-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

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


# c88e5e410ca5c9ee95c0c72bf0093203db1906cb 02-Jan-2008 Axel Dörfler <axeld@pinc-software.de>

* 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


# e7e325508bae1c80e024c942e09cc1d186821d40 16-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

Allocating additional memory should now work on the i965 as well (but bad things
will happen on earlier i9xx chips for now...). Not yet tested.


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


# 7aced0c77631160829cd5aadae5f8942f1b16596 04-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* The second open will now fail, too, in case the hardware could not be initialized
correctly.
* Got rid of this superfluous cookie stuff - either the VFS behaves correctly, or
we're screwed anyway.
* Made adding debugger commands optional depending on if DEBUG_COMMANDS is defined
or not.
* Minor other cleanup.


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


# 3bac9ea19a06864317ae4345f425f7f68956b118 04-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Work in progress to support the i965 chipset as well; still works on i865, but
doesn't work on i965 yet.
* B_GET_DISPLAY_MODE now returns the mode actually configured in the chip instead
of the last mode set; while this isn't really necessary, it allows to check what
mode was used during startup.



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


# 7de9382792997bffa21a826e3ba1284e219de4a3 13-May-2007 Ithamar R. Adema <ithamar.adema@team-embedded.nl>

* Set clock values based on card type.



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


# 60b71f65756d7afe8fb92d1f33afbad33957527b 14-Dec-2006 Axel Dörfler <axeld@pinc-software.de>

Applied the cleaned/fixed version of patch by YellowTab:
* essentially, it makes sure certain bits in the PCI config are set
* also added two more device IDs, which I have disabled for now


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


# ca1a22a7a8d3a0c16948d40172e8b2eaf676ce0a 03-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

* commented out span acceleration function, since it doesn't seem to work
* added mode for 1440x900, the numbers are just guessed, but work fine
with my monitor (after some fiddling), would be best to have some common
VGA communication code for all drivers to use and auto-detect the preferred
mode of the monitor
* messed around with the overlay brightness and contrast values to give
good looking video



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


# f3585ce5736f9652c3135fb11679b333a90ec0dc 05-Sep-2006 Axel Dörfler <axeld@pinc-software.de>

Applied stripped down patch from Mathew Schofield.


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


# 3ef31db042b7015258b781f33497ee53aa21968d 27-Jul-2006 Axel Dörfler <axeld@pinc-software.de>

* Obviously, the i9xx family has changed the order of the PCI mappings, so we need
to take that into account.
* Introduced INTEL_TYPE_FAMILY_MASK and INTEL_TYPE_GROUP_MASK to better
differentiate the device type.


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


# 68cdc8a1fa6e22c17922ebdb64b6b99de57f9761 28-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Somehow it occurs to me that I shouldn't delete the area of additional
graphics memory even before use (this fixes the sudden but visually appealing
crash you got when you needed to use that memory ;-)).
* Made the additional graphics memory contiguous which shouldn't be strictly
necessary, but shouldn't harm either: when an overlay is spread over the
BIOS allocated memory and the additional memory, there were some visual
problems when the overlay was shown on screen. Might need to investigate
that a bit more.
* Added a boolean option "ignore_bios_allocated_memory" to the settings.
* Reverted stippi's accidental changes.


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


# b3d94504c208adafebbf2ba62ae7fc4e0b7d68f7 29-May-2006 Stephan Aßmus <superstippi@gmx.de>

* added a bunch of drivers by Siarzhuk Zharski
-> a USB Mass Storgage module (SCSI bus manager add-on)
-> a SiS 7018 AC97 driver (uses "old" audio driver interface)
-> a USB Serial driver
-> a USB Vision driver and media add-on (Haupauge WinTV USB)
* moved R3MediaDefs.h from usb_audio driver to common place
headers/private/audio (also used by SiS 7018 driver)
* added TV tuner frequency defines to data/settings/media/usb_vision

Some of these drivers are in unfinished state, particularily the
USB Vision driver, the VideoProducer doesn't seem to use it yet,
the USB Mass Storage module is known to work though, it also includes
add-ons for itself that add support for some "special" hardware, these
are not integrated with the Jamfile build system though.

Also I didn't much much time with the "CVS package" targets, the
ReadMes are not added, someone with more knowledge about this could
add them...

None of this stuff is added to the Haiku image, it is simply included
to be maintained in the Haiku tree from now on.

* fixed a bug in Video Producer sample inherited from Be Sample
code - the timing from the time source was not really used,
on some systems this could cause in the producer not waking
up at the correct time if the system time and audio card time
are drifting apart



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


# 1faf767bbdf563198ee31af1755d056a5e21e08b 24-May-2006 Axel Dörfler <axeld@pinc-software.de>

Made the memory mapped registers temporarily accessible from userland for testing
purposes (a.k.a. poke).


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


# c5f5d8347ebabf50f635a1043e04b27359cd0df1 23-May-2006 Axel Dörfler <axeld@pinc-software.de>

* B_MOVE_DISPLAY and B_SET_INDEXED_COLORS should now work for the digital
output as well.
* Obviously got the register for INTEL_DISPLAY_B_DIGITAL_PORT wrong - it's
not 0x61000 but 0x61140, maybe that can explain the fun we had at BeGeistert :)
* Renamed the analog display registers to better fit the digital ones, ie.
replaced DISPLAY with DISPLAY_A - although this might be not really correct
as it seems that the pipes can be selected arbitrarily.
* Minor cleanup.


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


# 7902c46c3e03133bc17b23822b95bf3e8e84c9a2 17-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Added i830 as supported chipset - doesn't work perfectly, though. But Kyan reports
that at least 8 bit modes seems to work (but overlay only partially)
* Added "hardware_cursor" option to the settings file - when set to "false", you should
have a cursor in the second output now as well.


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


# 7d5957df85f66116fd487377d418a0d3550afc3b 14-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Implemented hardware cursor support.
* Turns out cursor handling is simpler as originally thought, so I could remove its
physical mapping - it's still put into the shared area, though, although that isn't
needed for this chip (but could eventually simplify the handling of other generations
of this chip).


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


# dc302662628bf9ff768e195c7cd352a5f0b6e9c5 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup.


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


# 82bca02b9f241ecb76a6d64ffc4c289e0aee95ca 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

You can now specify how much memory the chip can use for graphics memory via
a settings file. However, you cannot specify less than the amount taken by
the BIOS (ie. your settings will be ignored if you do).
Just put something like the following into a "intel_extreme" settings file:
graphics_memory_size 16

To allocate 16 MB in total. Note, whatever value you specify will be rounded
up to the next power of two, ie. if you specify 6 MB, 8 will be taken.


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


# 63dbc0a8d668ca226e098bf85613c094a4627354 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Accidently overwrote info.registers which let all subsequent register writes
(in the kernel driver) fail - or crash the system.
* Waiting for VBLANK now works as expected - you actually have to *set* the bit
to clear it, isn't that obvious? :-)


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


# 5af5259c38b8e63ab87a2bfb8d715ad2ea28d887 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

Implemented vblank interrupt and support for the retrace semaphore - not yet
tested, though.


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


# ccb666bc0e384dd7be48cd85df95683a90db3f85 13-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Prepared having hardware cursor support; got quite complicated because there
is no good (or reliable) way to retrieve the physical address of "stolen"
(by the BIOS) graphics memory.
* Implemented allocation of additional graphics memory in case the BIOS was
a bit too cheap. We now guarantee 8 MB of memory available to the graphics
chip - would be nicer to only allocate that on demand, though.


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


# 030d964e4edec000531d80d99eab5ce8ec100003 11-May-2006 Axel Dörfler <axeld@pinc-software.de>

Made the primary ring buffer for the acceleration commands a bit larger (16 KB);
this is mostly done because of the fact that I haven't tested how full it usually
is, and since I haven't implemented checking for free space yet...


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


# e3fe0cd725804133c94a0fedfcd3bafb9d91ffb4 10-May-2006 Axel Dörfler <axeld@pinc-software.de>

This didn't even read out the page table register, it read something from address
0x2020, which resulted in a page fault under Haiku.


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


# 08ef16abee9eb7639c8387e283c186f11b627075 09-May-2006 Axel Dörfler <axeld@pinc-software.de>

* Now allocates space for the hardware status page and cursor memory, not yet
used, though.
* Renamed the PhyisicalPageMapper class to AreaKeeper and made it a bit more
generic (ie. it can now also create usual areas)
* The shared_info is now created using the AreaKeeper, too, and this actually
fixes some potential memory leaks.


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


# 96451fe1332d971e149796b2024c4797c1169ad7 10-May-2006 Axel Dörfler <axeld@pinc-software.de>

We're now using a secondary (high priority) ring buffer for hardware
overlay - this will improve the overlay performance when the engine is
under load (the acceleration engine will use the primary lower priority
ring buffer).



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


# 18f48919c0d5b2e3c93817ed942a192078a5a710 09-May-2006 Axel Dörfler <axeld@pinc-software.de>

This little fix should allow Stippi to have a working driver when he compiled
it himself.


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


# f1973028671b8b2fe2730841655a5c10583b575f 08-May-2006 Axel Dörfler <axeld@pinc-software.de>

The size of the stolen memory for the graphics chip is now read out of the host bridge.


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


# 2465e3030551c11b7f382a979dc17b4695d5ddf9 08-May-2006 Axel Dörfler <axeld@pinc-software.de>

Accidently set the contrast too low, overlay now looks just fine.


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


# 7740a4c15bd6ee7fd66388b5fc21c786b926429d 28-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

Enabling overlay requires a command ring buffer, and we're setting one (very
small) up for this specific task - this will later be used for the acceleration
engine as well.
Some more work on overlay initialization, doesn't do anything yet, though.


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


# 22d4db9280e309e12ca7ba9a826ead8f6b5b79f6 26-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Added overlay register definitions.
* The overlay register update buffer is now created and exported, ready
to be used.


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


# 5da6291b99c3bd38505f6306dcb6398b9485783d 24-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* Now using Thomas memory manager to manage the graphics memory; allocation
of graphics memory is now possible.
* Changed driver name to start with "intel_extreme" to have a nicer device
name.
* Renamed frame_buffer* stuff to graphics_memory* as the frame buffer just
happens to be located somewhere in the graphics memory.


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


# 020c1aa823222f456bcf1ef94ab229690786d60d 03-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* init_driver() now behaves better in low memory situations.
* Some preparations to support more than one chipset, added i855G (device ID 0x3582)
to test with - the accelerant_device_info is now filled with that additional data
as well.
* Some minor cleanup.


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


# 2fd8de24159a5f11abef562cda284b67d98a4a42 26-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Cleanup.


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


# 7a3806ce873ee0cf43f14028b1593222b5d44adf 25-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Now you can also select the refresh rate you like under R5. Looks like there is
room for improvements left in our screen preferences application, which ignores
the pixel clock values completely.


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


# 943578b15bede1f6862940b57a143a40d72d30cb 25-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Added some debug output - the driver is actually working under R5 as well, I just
didn't test it correctly last time...


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


# e404297e56d4d54998a8f21b661def9d2da746d6 24-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

Very basic driver for the "Intel Extreme Graphics 2" chips, only supports i865G for now.
Only mode switches do work, doesn't yet make sure the mode is valid, though.
At this point, this driver only works on Haiku, the R5 app_server is crashing for some
reason I need to investigate some day (maybe tomorrow :)).


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