aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_bios.c
Commit message (Collapse)AuthorAge
...
* drm/nv50: add dcb type 14 to enum to prevent compiler complaintBen Skeggs2010-08-26
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix earlier mistake when fixing merge conflictBen Skeggs2010-08-16
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Workaround missing GPIO tables on an Apple iMac G4 NV18.Francisco Jerez2010-08-16
| | | | | | | | | This should fix the reported TV-out load detection false positives (fdo bug 29455). Reported-by: Vlado Plaga <rechner@vlado-do.de> Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: punt some more log messages to debug levelBen Skeggs2010-08-16
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove warning about unknown tmds table revisionsBen Skeggs2010-08-16
| | | | | | | | This message is apparently confusing people, and is being blamed for some modesetting issues. Lets remove the message, and instead replace it with an unconditional printout of the table revision. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Fix DCB TMDS config parsing.Francisco Jerez2010-08-09
| | | | | | Thinko caused by 43bda05428a3d2021f3c12220073e0251c65df8b. Signed-off-by: Francisco Jerez <currojerez@riseup.net>
* drm/nv04: Fix up SGRAM density detection.Francisco Jerez2010-08-09
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Init dcb->or on cards that have no usable DCB table.Francisco Jerez2010-08-09
| | | | | | | We need a valid OR value because there're a few nv17 cards with DCB v1.4. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: reduce severity of some "error" messagesBen Skeggs2010-08-05
| | | | | | | There's some known configurations where the lack of these tables/scripts is perfectly normal, reduce visibilty of complaint messages to debug. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: implement init table opcodex 0x5e and 0x9aMarcin Kościelnicki2010-08-05
| | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
* drm/nouveau: implement init table op 0x57, INIT_LTIMEMarcin Kościelnicki2010-08-05
| | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
* drm/nvc0: implement crtc pll settingBen Skeggs2010-08-05
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0: allow INIT_GPIOBen Skeggs2010-08-05
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv17-nv4x: Attempt to init some external TMDS transmitters.Francisco Jerez2010-08-05
| | | | | | | | | | | 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>
* drm/nouveau: Fix the INIT_CONFIGURE_PREINIT BIOS opcode.Francisco Jerez2010-08-05
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Don't pass misaligned offsets to io_mapping_map_atomic_wc().Francisco Jerez2010-08-05
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm,io-mapping: Specify slot to use for atomic mappingsChris Wilson2010-08-04
| | | | | | | | | This is required should we ever attempt to use an io-mapping where KM_USER0 is verboten, such as inside an IRQ context. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Eric Anholt <eric@anholt.net> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/nouveau: introduce gpio engineBen Skeggs2010-07-25
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Get rid of the remaining VGA CRTC locking.Francisco Jerez2010-07-25
| | | | | Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Reset CRTC owner to 0 before BIOS init.Francisco Jerez2010-07-25
| | | | | | | | Fixes suspend+multihead on some boards that also use BIOS scripts for modesetting. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: No need to lock/unlock the VGA CRTC regs all the time.Francisco Jerez2010-07-25
| | | | | | | | Locking only makes sense in the VBIOS parsing code as it's executed before CRTC init. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv04-nv3x: Implement init-compute-mem.Francisco Jerez2010-07-25
| | | | | | | | | | | | | | 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>
* drm/nouveau: Add some PFB register defines.Francisco Jerez2010-07-25
| | | | | | | | Also collect all the PFB registers in a single place and remove some duplicated definitions. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Fix a sparse warning.Francisco Jerez2010-07-25
| | | | | | | It doesn't like variable length arrays. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: fix regression that break LVDS in some placesBen Skeggs2010-07-25
| | | | | | | | A previous commit started additionally using the SOR link when trying to match the correct output script. However, we never fill in this field for LVDS so we can never match a script at all. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: support fetching LVDS EDID from ACPIBen Skeggs2010-07-25
| | | | | | | Based on a patch from Matthew Garrett. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Acked-by: Matthew Garrett <mjg@redhat.com>
* drm/nouveau: remove quirk to fabricate DVI-A output on DCB 1.5 boardsBen Skeggs2010-07-25
| | | | | | | | | | | | | | There's a report of this quirk breaking modesetting on at least one board. After discussion with Francisco Jerez, we've decided to remove it: <darktama> it's not worth limiting the quirk to just where we know it can work? i'm happy either way really :) <curro> hmm, don't think so, most if not all DCB15 cards have just one DAC <curro> and with that quirk there's no way to tell if the load comes from the VGA or DVI port Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Acked-by: Francisco Jerez <currojerez@riseup.net>
* drm/nouveau: fix pcirom vbios shadow breakage from acpi rom patchBen Skeggs2010-07-12
| | | | | | | | | | | On nv50 it became impossible to attempt a PCI ROM shadow of the VBIOS, which will break some setups. This patch also removes the different ordering of shadow methods for pre-nv50 chipsets. The reason for the different ordering was paranoia, but it should hopefully be OK to try shadowing PRAMIN first. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: INIT_CONFIGURE_PREINIT/CLK/MEM on newer BIOSes is not an error.Francisco Jerez2010-07-12
| | | | | | | | No need to spam the logs when they're found, they're equivalent to INIT_DONE. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: DCB quirk for Dell M6300Ben Skeggs2010-07-12
| | | | | | | | Uncertain if this is a weirdo configuration, or a BIOS bug. If it's not a BIOS bug, we still don't know how to make it work anyway so ignore a "conflicting" DCB entry to prevent a display hang. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: downgrade severity of most init table parser errorsBen Skeggs2010-07-12
| | | | | | | | As long as we know the length of the opcode, we're probably better off trying to parse the remainder of an init table rather than aborting in the middle of it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Ignore broken legacy I2C entries.Francisco Jerez2010-07-12
| | | | | | | | | | | The nv05 card in the bug report [1] doesn't have usable I2C port register offsets (they're all filled with zeros). Ignore them and use the defaults. [1] http://bugs.launchpad.net/bugs/569505 Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Don't clear AGPCMD completely on INIT_RESET.Francisco Jerez2010-07-12
| | | | | | | | | | | | | We just need to clear the SBA and ENABLE bits to reset the AGP controller: If the AGP bridge was configured to use "fast writes", clearing the FW bit would break the subsequent MMIO writes and eventually end with a lockup. Note that all the BIOSes I've seen do the same as we did (it works for them because they don't use MMIO), OTOH the blob leaves FW untouched. Signed-off-by: Francisco Jerez <currojerez@riseup.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: off by one in init_i2c_device_find()Dan Carpenter2010-06-07
| | | | | | | | dcb->i2c[] has DCB_MAX_NUM_I2C_ENTRIES entries. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/nouveau: match U/DP script against SOR linkBen Skeggs2010-06-07
| | | | | | | | It appears version 0x21 'U' and 'd' tables require us to take the SOR link into account when selecting the appropriate table for a particular output. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into ↵Dave Airlie2010-05-31
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drm-testing * 'nouveau/for-airlied' of ../drm-nouveau-next: drm/nv50: cast IGP memory location to u64 before shifting drm/nv50: use alternate source of SOR_MODE_CTRL for DP hack drm/nouveau: fix dual-link displays when plugged into single-link outputs drm/nv50: obey dcb->duallink_possible drm/nv50: fix duallink_possible calculation for DCB 4.0 cards drm/nouveau: don't execute INIT_GPIO unless we're really running the table drm/nv40: allow cold-booting of nv4x chipsets drm/nouveau: fix POST detection for certain chipsets drm/nouveau: Add getparam for current PTIMER time. drm/nouveau: allow cursor image and position to survive suspend
| * drm/nv50: fix duallink_possible calculation for DCB 4.0 cardsBen Skeggs2010-05-28
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: don't execute INIT_GPIO unless we're really running the tableBen Skeggs2010-05-28
| | | | | | | | | | | | | | | | | | This resulted in accidently switching off the eDP panel on certain laptops since the default state in the GPIO table was off. Fixes rh#582621 Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv40: allow cold-booting of nv4x chipsetsBen Skeggs2010-05-28
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau: fix POST detection for certain chipsetsBen Skeggs2010-05-28
| | | | | | | | | | | | | | | | | | | | | | | | We totally fail at detecting un-POSTed chipsets prior to G80. This commit changes the pre-G80 POST detection to read the programmed horizontal total from CRTC 0, and assume the card isn't POSTed if it's 0. NVIDIA use some other heuristics more similar to what we do on G80, but I wasted quite a long time trying to figure out the exact specifics of what they do so we can try this for a bit instead. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* | drm/nouveau: attempt to get bios from ACPI v3Dave Airlie2010-05-31
|/ | | | | | | | Some of the laptops with the switchable graphics, seem to not post the secondary GPU at all, and we can't find a copy of the BIOS anywhere except in the ACPI rom retrieval. This adds support for ACPI ROM retrieval to nouveau. Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/nouveau: fix i2c-related init table handlersBen Skeggs2010-05-19
| | | | | | | | Mutliple issues. INIT_ZM_I2C_BYTE/INIT_I2C_BYTE didn't even try and use the register value, and all the handlers were using the wrong slave address. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: support init table i2c device identifier 0x81Ben Skeggs2010-05-19
| | | | | | It appears to be meant to reference the second "default index". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: ensure we've parsed i2c table entry for INIT_*I2C* handlersBen Skeggs2010-05-19
| | | | | | | | | | We may not have parsed the entry yet if the i2c_index is for an i2c bus that's not referenced by a DCB encoder. This could be done oh so much more nicely, except we have to care about prehistoric DCB tables too, and they make life painful. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: display error message for any failed init table opcodeBen Skeggs2010-05-19
| | | | | | | Some handlers don't report specific errors, but we still *really* want to know if we failed to parse a complete init table. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: fix init table handlers to return proper error codesBen Skeggs2010-05-19
| | | | | | | | | We really want to be able to distinguish between INIT_DONE and an actual error sometimes. This commit fixes up several lazy "return 0;" to be actual error codes, and explicitly reserves "0" as "success, but stop parsing this table". Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: store full dcb i2c entry from vbiosBen Skeggs2010-05-18
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: dump pll limits entries when debugging is onBen Skeggs2010-05-18
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: bios parser fixes for eDP boardsBen Skeggs2010-05-18
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: implement gpio set/get routinesBen Skeggs2010-04-08
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>