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

Commit 6b158352 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'for-airlied' of git://git.freedesktop.org/git/nouveau/linux-2.6 into drm-linus

* 'for-airlied' of git://git.freedesktop.org/git/nouveau/linux-2.6:
  drm/nouveau: Force TV encoder DPMS reinit after resume.
  drm/nouveau: use mutex for vbios lock
parents 94429bb6 bf929efa
Loading
Loading
Loading
Loading
+3 −4
Original line number Original line Diff line number Diff line
@@ -5861,13 +5861,12 @@ nouveau_bios_run_init_table(struct drm_device *dev, uint16_t table,
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nvbios *bios = &dev_priv->VBIOS;
	struct nvbios *bios = &dev_priv->VBIOS;
	struct init_exec iexec = { true, false };
	struct init_exec iexec = { true, false };
	unsigned long flags;


	spin_lock_irqsave(&bios->lock, flags);
	mutex_lock(&bios->lock);
	bios->display.output = dcbent;
	bios->display.output = dcbent;
	parse_init_table(bios, table, &iexec);
	parse_init_table(bios, table, &iexec);
	bios->display.output = NULL;
	bios->display.output = NULL;
	spin_unlock_irqrestore(&bios->lock, flags);
	mutex_unlock(&bios->lock);
}
}


static bool NVInitVBIOS(struct drm_device *dev)
static bool NVInitVBIOS(struct drm_device *dev)
@@ -5876,7 +5875,7 @@ static bool NVInitVBIOS(struct drm_device *dev)
	struct nvbios *bios = &dev_priv->VBIOS;
	struct nvbios *bios = &dev_priv->VBIOS;


	memset(bios, 0, sizeof(struct nvbios));
	memset(bios, 0, sizeof(struct nvbios));
	spin_lock_init(&bios->lock);
	mutex_init(&bios->lock);
	bios->dev = dev;
	bios->dev = dev;


	if (!NVShadowVBIOS(dev, bios->data))
	if (!NVShadowVBIOS(dev, bios->data))
+1 −1
Original line number Original line Diff line number Diff line
@@ -205,7 +205,7 @@ struct nvbios {
	struct drm_device *dev;
	struct drm_device *dev;
	struct nouveau_bios_info pub;
	struct nouveau_bios_info pub;


	spinlock_t lock;
	struct mutex lock;


	uint8_t data[NV_PROM_SIZE];
	uint8_t data[NV_PROM_SIZE];
	unsigned int length;
	unsigned int length;
+2 −0
Original line number Original line Diff line number Diff line
@@ -579,6 +579,8 @@ static void nv17_tv_restore(struct drm_encoder *encoder)
				nouveau_encoder(encoder)->restore.output);
				nouveau_encoder(encoder)->restore.output);


	nv17_tv_state_load(dev, &to_tv_enc(encoder)->saved_state);
	nv17_tv_state_load(dev, &to_tv_enc(encoder)->saved_state);

	nouveau_encoder(encoder)->last_dpms = NV_DPMS_CLEARED;
}
}


static int nv17_tv_create_resources(struct drm_encoder *encoder,
static int nv17_tv_create_resources(struct drm_encoder *encoder,