Skip to content

Commit

Permalink
Merge branch 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nou…
Browse files Browse the repository at this point in the history
…veau/linux-2.6 into drm-fixes

* 'drm-nouveau-fixes' of git://git.freedesktop.org/git/nouveau/linux-2.6:
  drm/nv10/gpio: fix thinko in mask for gpio lines 2-9
  nvc0/fb: shut up PMFB interrupt after the first occurrence
  drm/nouveau/hdmi: use correct hdmi regs for nvaa/nvac
  drm/nouveau/bios: fix regression on some nv4x board
  • Loading branch information
Dave Airlie committed May 1, 2012
2 parents 655861e + b99da31 commit e658624
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 5 deletions.
10 changes: 7 additions & 3 deletions drivers/gpu/drm/nouveau/nouveau_bios.c
Original file line number Diff line number Diff line change
Expand Up @@ -6156,10 +6156,14 @@ dcb_fake_connectors(struct nvbios *bios)

/* heuristic: if we ever get a non-zero connector field, assume
* that all the indices are valid and we don't need fake them.
*
* and, as usual, a blacklist of boards with bad bios data..
*/
for (i = 0; i < dcbt->entries; i++) {
if (dcbt->entry[i].connector)
return;
if (!nv_match_device(bios->dev, 0x0392, 0x107d, 0x20a2)) {
for (i = 0; i < dcbt->entries; i++) {
if (dcbt->entry[i].connector)
return;
}
}

/* no useful connector info available, we need to make it up
Expand Down
4 changes: 3 additions & 1 deletion drivers/gpu/drm/nouveau/nouveau_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ static bool
hdmi_sor(struct drm_encoder *encoder)
{
struct drm_nouveau_private *dev_priv = encoder->dev->dev_private;
if (dev_priv->chipset < 0xa3)
if (dev_priv->chipset < 0xa3 ||
dev_priv->chipset == 0xaa ||
dev_priv->chipset == 0xac)
return false;
return true;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/nouveau/nv10_gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ nv10_gpio_drive(struct drm_device *dev, int line, int dir, int out)
if (line < 10) {
line = (line - 2) * 4;
reg = NV_PCRTC_GPIO_EXT;
mask = 0x00000003 << ((line - 2) * 4);
mask = 0x00000003;
data = (dir << 1) | out;
} else
if (line < 14) {
Expand Down
5 changes: 5 additions & 0 deletions drivers/gpu/drm/nouveau/nvc0_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ nvc0_mfb_isr(struct drm_device *dev)
nvc0_mfb_subp_isr(dev, unit, subp);
units &= ~(1 << unit);
}

/* we do something horribly wrong and upset PMFB a lot, so mask off
* interrupts from it after the first one until it's fixed
*/
nv_mask(dev, 0x000640, 0x02000000, 0x00000000);
}

static void
Expand Down

0 comments on commit e658624

Please sign in to comment.