Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5645b59 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

Pull drm fixes from Dave Airlie:
 "Just some regression fixes from Ben along with a variable that gcc
  failed to spot is uninitialised."

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  nouveau: initialise has_optimus variable.
  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
parents c42f1d4b addde4ec
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -270,7 +270,7 @@ static bool nouveau_dsm_detect(void)
	struct acpi_buffer buffer = {sizeof(acpi_method_name), acpi_method_name};
	struct pci_dev *pdev = NULL;
	int has_dsm = 0;
	int has_optimus;
	int has_optimus = 0;
	int vga_count = 0;
	bool guid_valid;
	int retval;
+7 −3
Original line number Diff line number Diff line
@@ -6156,11 +6156,15 @@ 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..
	 */
	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
	 * ourselves.  the rule here is: anything on the same i2c bus
+3 −1
Original line number Diff line number Diff line
@@ -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;
}
+1 −1
Original line number Diff line number Diff line
@@ -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) {
+5 −0
Original line number Diff line number Diff line
@@ -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