1a6463425552a8b9960e5a19b25421895846925c |
|
21-Mar-2013 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv04/disp: hide all the cruft away in its own little hole It'd be pretty awesome if someone would care enough to port this all properly to a class interface, perhaps submitting a command stream to the core via a sw object on PFIFO (emulating how EVO works basically, and also what nvidia have done forever..).. But, this seems unlikely given how old this hardware is now, so, lets just hide it away. There's a heap of other bits and pieces laying around that are still tangled. I'll (re)move them in pieces. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
230881821a4467727f4100b5ee5c3ef0b67f3128 |
|
06-Dec-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: remove some more unnecessary legacy bios code Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
8f2abc2586279166722f0d88d24990baba4a2eaf |
|
15-Nov-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/dp: remove last bits of VBIOS parsing from DRM code Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
b6e4ad200a726a32c7083f491383713bc8680f86 |
|
12-Nov-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: remove (now obsolete) BIT U table parsing from DRM code Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
77145f1cbdf8d28b46ff8070ca749bad821e0774 |
|
31-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: port remainder of drm code, and rip out compat layer v2: Ben Skeggs <bskeggs@redhat.com> - fill in nouveau_pm.dev to prevent oops - fix ppc issues (build + OF shadow) Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
d38ac5217ab43cf61e8ebe6d7114fb2d1ca9a3a4 |
|
22-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/mxm: split up into bios code and a subdev module Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
cb75d97e9c77743ecfcc43375be135a55a4d9b25 |
|
11-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: implement devinit subdev, and new init table parser v2: - make sure not to execute display scripts unless resuming Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
70790f4f819875e8f390871fd15bbbf823f28e1b |
|
10-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/clock: pull in the implementation from all over the place Still missing the main bits we use to change performance levels, I'll get to it after all the hard yakka has been finished. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4196faa8623264b79279a06fd186654c959f2767 |
|
10-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/i2c: port to subdev interfaces v2/v3: Ben Skeggs <bskeggs@redhat.com> - fix typo in default bus selection - fix accidental loss of destructor v4: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> - fix typo causing incorrect default i2c port settings when no BMP data Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
e0996aea4c349ba302b63203b7d5cab6034dbdca |
|
09-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/gpio: port gpio to subdev interfaces v2: Ben Skeggs <bskeggs@redhat.com> - rebase on top of v3.6-rc6 with gpio reset patch integrated already Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
02a841d434513c7b3620250271c372fabce56de5 |
|
04-Jul-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: restructure source tree, split core from drm implementation Future work will be headed in the way of separating the policy supplied by the nouveau drm module from the mechanisms provided by the driver core. There will be a couple of major classes (subdev, engine) of driver modules that have clearly defined tasks, and the further directory structure change is to reflect this. No code changes here whatsoever, aside from fixing up a couple of include file pathnames. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
fa2c113ac1da39f922ab287b75c8d3f21a4b16dd |
|
22-Mar-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: add bios connector type for dms59 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4489b9835a0867617a9ec29cc978a9c2c9eca363 |
|
07-Mar-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/bios: rework vbios shadowing Refactored to allow shadowing of VBIOS images longer than 64KiB, which allows us to pass the VBIOS checksum test on certain boards. There's also a workaround for reading the PROM VBIOS on some chipsets. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4abb410a13eec3f49863be2e84ad062fef00dac0 |
|
12-Jan-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: recognise DCB connector type for DP+DVI+VGA DMS-59 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
7df898b1a70b13c3a8892625f4ead929d9554293 |
|
31-Jan-2012 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/disp: check that panel power gpio is enabled at init time Reported-by: Yuriy Khomchik <homyur@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
a0b25635515ef5049f93b032a1e37f18b16e0f6f |
|
21-Nov-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/gpio: reimplement as nouveau_gpio.c, fixing a number of issues - moves out of nouveau_bios.c and demagics the logical state definitions - simplifies chipset-specific driver interface - makes most of gpio irq handling common, will use for nv4x hpd later - api extended to allow both direct gpio access, and access using the logical function states - api extended to allow for future use of gpio extender chips - pre-nv50 was handled very badly, the main issue being that all GPIOs were being treated as output-only. - fixes nvd0 so gpio changes actually stick, magic reg needs bashing Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
b4c26818aeb4159dd537eff6453ae5ebf7a69723 |
|
12-Oct-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/mxm: initial implementation of dcb sanitisation The DCB table provided by the VBIOS on most MXM chips has a number of entries which either need to be disabled, or modified according to the MXM-SIS Output Device Descriptors. The x86 vbios code usually takes care of this for us, however, with the large number of laptops now with switchable graphics or optimus, a lot of the time nouveau is responsible for POSTing the card instead - leaving some fun situations like, plugging in a monitor and having nouveau decide 3 connectors actually just got plugged in.. No MXM-SIS fetching methods implemented yet. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
befb51e9c97e783c86a1da27bdda3a638d2f02c7 |
|
18-Nov-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/disp: parse connector info directly in nouveau_connector.c Another case where we parsed vbios data to some structs, then again use that info once to construct another set of data. Skip the intermediate step. This is also slightly improved in that we can now use DCB 3.x connector table info, which will allow NV4x to gain hotplug support, and to make quirks for SPWG LVDS panels unnecessary. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
486a45c2a6c19b159602d044ab601a92cd81f524 |
|
11-Nov-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/i2c: do parsing of i2c-related vbios info in nouveau_i2c.c Not much point parsing the vbios data into a struct which is only used once to parse the data into another struct, go directly from vbios to nouveau_i2c_chan. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
6b5a81a2e783f26a69fc262b3c393f0b391c8613 |
|
10-Nov-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/bios: start refactoring dcb routines This primary reason for this was mostly to avoid duplication of some of this stuff by the MXM-SIS parser. However, some other cleanups will also follow this as a result. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
f9f9f536312d4c3ca39502ccf6a3af60cfe38ff4 |
|
12-Oct-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/bios: pass drm_device to ROMPTR, rather than nvbios Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
d4cca9e1fccb9f7804ddfbbc2aebff7be23faa1e |
|
06-Oct-2011 |
Martin Peres <martin.peres@ensi-bourges.fr> |
drm/nv50/pm: s/PLL_UNK05/PLL_VDEC/ Following to "drm/nv50/pm: s/unk05/vdec/", let's rename the PLL to PLL_VDEC PLL names are purely indicative and are based on the most important engine it clocks. Signed-off-by: Martin Peres <martin.peres@labri.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
85a2a365216e8e4eccf826e7dcc06c6298ab5fc1 |
|
12-Sep-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/gpio: remove invert flag, use state[] everywhere Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
11b7d895216f7f954c6cfa0c23b76dccb7a890c1 |
|
15-Aug-2011 |
Martin Peres <martin.peres@ensi-bourges.fr> |
drm/nouveau/pm: manual pwm fanspeed management for nv40+ boards Exposes the following sysfs entries: - fan0_input: read the rotational speed of the fan (poll a bit during 250ms) - pwm0: set the pwm duty cycle - pwm0_min/max: set the minimum/maximum pwm value v2 (Ben Skeggs): - nv50 pwm controller code removed in favour of other more complete code - FAN_RPM -> FAN_SENSE - merged FAN_SENSE readout into common code, not at all nv50-specific - protected fanspeed changes with perflvl_wr - formatting tidying - added some comments where things are shaky v3 (Martin Peres) - ensure duty min/max from thermal table are sane Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Martin Peres <martin.peres@ensi-bourges.fr>
|
5f1800bd8a774f773e3be71702da7ec77188b283 |
|
05-Aug-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/dp: return master dp table pointer too when looking up encoder Will need to be able to distinguish 2.0/2.1 from 3.0 soon. Also, move the vbios parsing to nouveau_dp where it belongs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
02e4f5877dc7b963b3dd2beaf9664cf29c12d728 |
|
06-Jul-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/bios: allow passing in crtc to the init table parser Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
8c3f6bb970413c6a537736f409a1bc9d8abd671c |
|
18-Apr-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: recognise DCB connector type 0x41 as LVDS After looking at a number of different logs, it appears 0x41 likely indicates the presense of an LVDS panel following the SPWG spec (http://www.spwg.org/) Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
c7ca4d1b6b529dac9de9ff3f951689f2e4365cc2 |
|
03-Feb-2011 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: make vbios parser runnable from an atomic context The nv50 display isr bh needs to be converted to a tasklet, which means we can't sleep anymore. The places we execute vbios init tables are rare, and not in any way performance critical, so this isn't a huge problem. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4709bff02adcb0d05d2d1a397e60581baa562de9 |
|
13-Sep-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: make bios code easier to use externally Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
855a95e4fc2ac6b758145ca7d6a0c95b66a57ef8 |
|
16-Sep-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: make the behaviour of get_pll_limits() consistent This replaces all the pll_types definitions for ones that match the types used in the tables in recent VBIOS versions. get_pll_limits() will now accept either type or register value as input across all limits table versions, and will store the actual register ID that a PLL type refers to in the returned structure. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
44a1246f320312b84134a962caf3bf6af989e193 |
|
17-Aug-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv50: add dcb type 14 to enum to prevent compiler complaint Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
4a9f822fe1a6ca5de7d8cdd5efbead3b9ab4283b |
|
20-Jul-2010 |
Francisco Jerez <currojerez@riseup.net> |
drm/nv17-nv4x: Attempt to init some external TMDS transmitters. sil164 and friends are the most common, usually they just need to be poked once because a fixed configuration is enough for any modes and clocks, so they worked without this patch if the BIOS had done a good job on POST. Display couldn't survive a suspend/resume cycle though. Unfortunately, BIOS scripts are useless here. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
67eda20e6b7a757ed45f6b5a8a4d30c2a0d47c7a |
|
13-Jul-2010 |
Francisco Jerez <currojerez@riseup.net> |
drm/nv04-nv3x: Implement init-compute-mem. Init-compute-mem was the last piece missing for nv0x-nv3x card cold-booting. This implementation is somewhat lacking but it's been reported to work on most chipsets it was tested in. Let me know if it breaks suspend to RAM for you. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Tested-by: Patrice Mandin <patmandin@gmail.com> Tested-by: Ben Skeggs <bskeggs@redhat.com> Tested-by: Xavier Chantry <chantry.xavier@gmail.com> Tested-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
a6ed76d7ffc62ffa474b41d31b011b6853c5de32 |
|
12-Jul-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: support fetching LVDS EDID from ACPI Based on a patch from Matthew Garrett. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Acked-by: Matthew Garrett <mjg@redhat.com>
|
8f1a60868f4594bc5576cca8952635f475e8bec6 |
|
28-Jun-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: tidy connector/encoder creation a little Create connectors before encoders to avoid having to do another loop across encoder list whenever we create a new connector. This allows us to pass the connector to the encoder creation functions, and avoid using a create_resources() callback since we can now call it directly. This can also potentially modify the connector ordering on nv50. On cards where the DCB connector and encoder tables are in the same order, things will be unchanged. However, there's some cards where the ordering between the tables differ, and in one case, leads us to naming the connectors "wrongly". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
07fee3d561eb7634b08e4362dc9c5c5708facd03 |
|
23-Apr-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv50: store full dcb i2c entry from vbios Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
02faec09b2814b6ad3fd202e2f28b3c4b712a3f1 |
|
06-Apr-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv50: parse/use some more de-magiced parts of gpio table entries Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
2535d71c80b3d79090c9d44ec6d35342e2d258f0 |
|
06-Apr-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: store raw gpio table entry in bios gpio structs And use our own version of the GPIO table for the INIT_GPIO opcode. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
f3bbb9ccbf2a0362363ce6d7e4e57dbf34a5cef1 |
|
17-Mar-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv40: rework lvds table parsing All indications seem to be that the version 0x30 table should be handled the same way as 0x40 (as used on G80), at least for the parts that we currently try use. This commit cleans up the parsing to make it clearer about what we're actually trying to achieve, and unifies the 0x30/0x40 parsing. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
d544d623c5ef3ca14407e8bc042fdf938a966b04 |
|
10-Mar-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv50: fix connector table parsing for some cards The connector table index in the DCB entry for each output type is an index into the connector table, and does *not* necessarily match up with what was previously called "index" in the connector table entries themselves. Not real sure what that index is exactly, renamed to "index2" as we still use it to prevent creating multiple TV connectors. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
f66fa771d5046fd8c3e3c6f09407e9168e261b8d |
|
24-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: check for known dcb connector types Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
e7cc51c5652a8195bc638ce52987fb265ace2a9a |
|
24-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: reorganise bios header, add dcb connector type enums Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
04a39c577f4114a3f098ee8ef0e20f7778b5ddad |
|
24-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: merge nvbios and nouveau_bios_info Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
7f245b20e30515264b94f6373ef7d721155990a4 |
|
24-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: merge parsed_dcb and bios_parsed_dcb into dcb_table Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
a6678b2ace023912000119a14eeb39a56050bc7c |
|
24-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: rename parsed_dcb_gpio to dcb_gpio_table Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
d9184fa97b6f48d399636e5e2669bc8419f9369e |
|
16-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: use mutex for vbios lock Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
39c9bfb453b748ce220ceefacbe2a5c19fabf67b |
|
09-Feb-2010 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nv50: prevent multiple init tables being parsed at the same time With DVI and DP plugged, the DVI clock change interrupts being run can cause DP link training to fail. This adds a spinlock around init table parsing to prevent this. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
37383650e4f47aef633055e3f62e87a44d83312d |
|
15-Dec-2009 |
Marcin Kościelnicki <koriakin@0x04.net> |
drm/nouveau: Kill global state in BIOS script interpreter Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net> Signed-off-by: Maarten Maathuis <madman2003@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
6ee738610f41b59733f63718f0bdbcba7d3a3f12 |
|
11-Dec-2009 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau: Add DRM driver for NVIDIA GPUs This adds a drm/kms staging non-API stable driver for GPUs from NVIDIA. This driver is a KMS-based driver and requires a compatible nouveau userspace libdrm and nouveau X.org driver. This driver requires firmware files not available in this kernel tree, interested parties can find them via the nouveau project git archive. This driver is reverse engineered, and is in no way supported by nVidia. Support for nearly the complete range of nvidia hw from nv04->g80 (nv50) is available, and the kms driver should support driving nearly all output types (displayport is under development still) along with supporting suspend/resume. This work is all from the upstream nouveau project found at nouveau.freedesktop.org. The original authors list from nouveau git tree is: Anssi Hannula <anssi.hannula@iki.fi> Ben Skeggs <bskeggs@redhat.com> Francisco Jerez <currojerez@riseup.net> Maarten Maathuis <madman2003@gmail.com> Marcin Kościelnicki <koriakin@0x04.net> Matthew Garrett <mjg@redhat.com> Matt Parnell <mparnell@gmail.com> Patrice Mandin <patmandin@gmail.com> Pekka Paalanen <pq@iki.fi> Xavier Chantry <shiningxc@gmail.com> along with project founder Stephane Marchesin <marchesin@icps.u-strasbg.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
|