[go: nahoru, domu]

History log of /drivers/gpu/drm/nouveau/nouveau_bios.h
Revision Date Author Comments
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>