History log of /haiku/src/add-ons/accelerants/intel_extreme/accelerant.cpp
Revision Date Author Comments
# 4a6a465c 07-Sep-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: for DDI, map the ddc pin to the GPIO

add port G for Gen12

Change-Id: I70bba2d6d2ec0fbad8bdbec14412ea982690d563
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5626
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@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>


# 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>


# 6715abde 19-Apr-2022 Jérôme Duval <jerome.duval@gmail.com>

intel_extreme: four pipes from gen12

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


# 456e6f33 27-Feb-2022 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: added more pipeC support, fixes for eDP on DDI systems


# ba0c9427 29-Jan-2022 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: for Ivy/SandyBridge added eDP programming for laptops.


# d60c7e01 04-Dec-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: for gen9.5 added new portF to DDI scan. add ID dump in kerneldriver.


# 6ed123e5 27-Nov-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: always assume panel on eDP on laptops.


# 0eb2bf0e 14-Nov-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: skylake/DDI improvements. no resolution changing possible yet (missing DPLL code yet)


# 66173234 02-Nov-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: haswell and skylake DDI EDID support added, modesetting not finished yet.


# 66af68c2 03-Oct-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: only primary accelerant should kill the locks. Should fix trouble after closing clones.


# b3bafaf6 29-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: displayport now scales to BIOS set mode.


# 7878a59f 27-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: init port_count always (typo fix).


# 13a4e5a0 27-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: haswell+ has DDI, no DP, so block scanning that for screens.


# 0d1016f0 19-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: assign ports a pipe just once.


# 5c178f3c 18-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: fixed pipe-to-port assigning: no second screen yet..


# 54ce952d 17-Jun-2021 Rudolf Cornelissen <rudhaiku@gmail.com>

intel_extreme: fixed DP/DDI clk init switch and link det, accept EDID still down.


# 47404f12 09-Dec-2020 X512 <danger_mail@list.ru>

accelerant: replace AreaCloner with AreaDeleter

Reduce code duplication.

Change-Id: Ice1a14fc7378382e89c3e5a1aea6fa21b903e436
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3482
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 22ec6455 13-Mar-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: some minor fixes

- Cleanup HEAD_MODE constants. These should be completely removed, now
that we have a proper notion of pipes and displays. But the DPMS code
still uses them, for now.
- Fix the ie_pipe command where width and height were swapped and
missing a +1 to show the actual videomode values


# 7991d1b7 08-Mar-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: fix assigning pipes to displays

The previous code did not handle correctly the case where a display
requested a fixed mapping, and cloud end up assigning the same pipe to
multiple displays. But we want a separate pipe for each display,
allowing multihead support later on.

Rewrite the algorithm to first assign pipes to devices with fixed
constraints, and in a second pass assing the remaining pipes to other
displays.


# ec4e9ea8 27-Jan-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

intel_extreme: remove unhandled generation defines

- 7xx (1st gen) has no driver in Haiku or is handled by the intel_810 driver
- PowerVR has no driver in Haiku

So there is no point in having those in the intel_extreme driver.

While I'm at it, fix the video timing/resolution constraints for
sanitize_video_mode.


# 620d0707 30-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel_extreme: probe DVI port C as well.

Might help with #15537.


# 9a152c9c 23-Aug-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Change the prompt again.

As expected there was a lot of bikeshedding.

Just change the color of the path, green on success, red on failure.

Constraints taken into account:
- Keep the > for now
- Prompt should be as compact as possible for those of us using 80
column terminals.
- Prompt should not change size between success and error cases

Not taken into account:
- The feature should be accessible to colorblind people (we could
replace the > with another char but we couldn't find something that
looks suitable)


# bb4190f0 01-Jun-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix SandyBridge support.

This reverts commit 4f2b258c32efeab97f043519b7f2d4e22819d431.
This reverts commit c86f3dba238a44a8fcf7b1452c46f1cab68f525a.
This reverts commit 61fbdb0667c57f6d3d11d33bce6c01bdd625aaec.
This reverts commit b3f14fb7c715cf95b374ee749dcafd5537d1b017.


# a933bb4c 17-Jul-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: IronLake reference clock activation


# a32e8156 10-May-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Shorten graphics family names


# 8fe50548 08-May-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Extend DDI port probing to A-E

* The Linux code made this a bit hard to figure out via
complex define functions, however there can be up to
5 DDI ports (A-E)


# ca95e9da 15-Mar-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add initial work for DDI ports


# 236a3e93 23-Feb-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extrme: Better tracing, note when dp no-link


# 7217bb11 24-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Take a register dump for intel_reg


# d7a8a21f 23-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Style fix, no functional change


# b01aed83 23-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Don't store pipes within ports

* Store pipes within accelerant, and tell ports
about them.
* Rebrand DisplayPipe class to Pipe


# 00e0982f 17-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: First work at programming FDI


# be3f7a8f 10-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: tracing cleanup; no functional change


# a5a2bf72 10-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Let ports pick a pipe if required


# 4f2b258c 09-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Fix LVDS head mode (we'll remove it soon)


# 6e1ff82f 08-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Begin using new DisplayPipe class


# 37b903fb 08-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Add pipe selection for ports


# 4b6d5b84 02-Nov-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Drop fatal error on no monitors.


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

intel_gart: Fix gart detection and begin using DeviceType

* Correctly identify newly re-assigned cards families
* Begin using new DeviceType class in intel gart code


# 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


# f142870c 28-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Break port probe logic into own function for later HPD


# b3f14fb7 25-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Start doing mode-setting at port level

* I really hope we can kill head_mode some day
* Break pll code out from mode code
* The LVDS and Digital are smooshed together and
likely need broken apart.


# 27134c66 17-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Dump more info on ports found. Build fixes.


# 50f0b3fe 17-Oct-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

intel_extreme: Rebase and refactor mmlr's work from 2013

* New port storage classes and cleaner logic


# 13af65c4 19-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

intel_extreme: fix warnings on 64bit.


# 8f284ef3 16-Sep-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: don't expose overlay in accelerant when not allocated

... in the driver.


# e968e4b0 16-Sep-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: don't expose overlay in accelerant when not allocated

... in the driver.


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

intel_extreme: Improve accelerant tracing and debug output

* Several messages to syslog weren't tagged with
intel_extreme making troubleshooting difficult
* Fix a few typesize printf issues with B_PRI macro


# 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


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

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


# d7e91d92 26-May-2010 Axel Dörfler <axeld@pinc-software.de>

* The DPMS code tried to enable the LVDS panel already if a digital display
was detected; however, it should only do so when there is an actual LVDS panel
detected.
* This should fix one part of ticket #3149 - looks like there are two different
issues. Thanks to Robert J. Gebis for providing me remote access to his
system.
* Minor debug output improvements.


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


# c9abe826 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert wrongly committed files.

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


# a90ebd77 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress of a Radeon HD 3200 driver to change the display mode (status when I leave the coding spring). At least it shows a picture but with a wrong scaling.

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


# 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


# 2d5f339d 16-Jun-2008 Axel Dörfler <axeld@pinc-software.de>

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


# 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


# e68a9aec 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

return errno when open() fails

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21634 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


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

Added some more debug output; the ports might be better suited to recognize
which display outputs to use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17629 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


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

Some work to support output on the digital interface like laptop panels.
Need to clean this up, though. It even sort of worked on tic's IBM X40
on BeGeistert - if you weren't irritated by the fact some parts of the
screen were just black, that is :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17565 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


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

* Made the accelerant safer to use when cloned (though I didn't test cloning yet);
introduced a lock that is used in B_SET_DISPLAY_MODE etc.
* Correctly implemented B_ACQUIRE_ENGINE and B_RELEASE_ENGINE now (ie. they lock
the engine now).
* The lock of the ring buffers is now deleted when the (primary) accelerant is closed.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17453 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


# 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


# 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


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

* Doh, I had done all bitfields in the wrong direction (msb to lsb, but it's actually
lsb to msb).
* The result is that there is now *something* to see when overlay is turned on. In
fact the whole screen goes dark besides a few pixels on the top - now isn't that
something? :-)
* The overlay is also turned off again correctly - which also revealed a bug in our
app_server: B_CONFIGURE_OVERLAY is not always called with window=NULL/view=NULL
to turn off overlay (might be an incorrect handling of BView::ClearOverlay()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17300 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


# 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


# 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


# 13af65c4027b414617a7ddd4902bac0a04372fd5 19-Oct-2014 Adrien Destugues <pulkomandy@gmail.com>

intel_extreme: fix warnings on 64bit.


# 8f284ef32d8597ac987aa0ba1c84c7b90c866961 16-Sep-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: don't expose overlay in accelerant when not allocated

... in the driver.


# e968e4b09049ceef142d18f18a71b687813e7d66 16-Sep-2013 Jerome Duval <jerome.duval@gmail.com>

intel_extreme: don't expose overlay in accelerant when not allocated

... in the driver.


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

intel_extreme: Improve accelerant tracing and debug output

* Several messages to syslog weren't tagged with
intel_extreme making troubleshooting difficult
* Fix a few typesize printf issues with B_PRI macro


# 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


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

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


# d7e91d925348553db548b5632ca7ef00fa790d44 26-May-2010 Axel Dörfler <axeld@pinc-software.de>

* The DPMS code tried to enable the LVDS panel already if a digital display
was detected; however, it should only do so when there is an actual LVDS panel
detected.
* This should fix one part of ticket #3149 - looks like there are two different
issues. Thanks to Robert J. Gebis for providing me remote access to his
system.
* Minor debug output improvements.


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


# c9abe8265d8ee8fa63eee9515f2c629f952bcf8b 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Revert wrongly committed files.

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


# a90ebd77eeae5eca9600d039dc1298898e38278a 13-Apr-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Work in progress of a Radeon HD 3200 driver to change the display mode (status when I leave the coding spring). At least it shows a picture but with a wrong scaling.

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


# 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


# 2d5f339decd181abac7ea2dd74136aca4b1b6e92 16-Jun-2008 Axel Dörfler <axeld@pinc-software.de>

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


# 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


# e68a9aeca544262ccfdf7455f580ec3f99e87999 17-Jul-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

return errno when open() fails

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21634 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


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

Added some more debug output; the ports might be better suited to recognize
which display outputs to use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17629 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


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

Some work to support output on the digital interface like laptop panels.
Need to clean this up, though. It even sort of worked on tic's IBM X40
on BeGeistert - if you weren't irritated by the fact some parts of the
screen were just black, that is :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17565 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


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

* Made the accelerant safer to use when cloned (though I didn't test cloning yet);
introduced a lock that is used in B_SET_DISPLAY_MODE etc.
* Correctly implemented B_ACQUIRE_ENGINE and B_RELEASE_ENGINE now (ie. they lock
the engine now).
* The lock of the ring buffers is now deleted when the (primary) accelerant is closed.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17453 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


# 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


# 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


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

* Doh, I had done all bitfields in the wrong direction (msb to lsb, but it's actually
lsb to msb).
* The result is that there is now *something* to see when overlay is turned on. In
fact the whole screen goes dark besides a few pixels on the top - now isn't that
something? :-)
* The overlay is also turned off again correctly - which also revealed a bug in our
app_server: B_CONFIGURE_OVERLAY is not always called with window=NULL/view=NULL
to turn off overlay (might be an incorrect handling of BView::ClearOverlay()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17300 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


# 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


# 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