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

Commit edc67410 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'linux-4.10' of git://github.com/skeggsb/linux into drm-fixes

Just a couple of minor race/regression fixes, nothing exciting, but
somewhat important

* 'linux-4.10' of git://github.com/skeggsb/linux:
  drm/nouveau/kms/nv50: request vblank events for commits that send completion events
  drm/nouveau/nv1a,nv1f/disp: fix memory clock rate retrieval
  drm/nouveau/disp/gt215: Fix HDA ELD handling (thus, HDMI audio) on gt215
  drm/nouveau/nouveau/led: prevent compiling the led-code if nouveau=y and leds=m
  drm/nouveau/disp/mcp7x: disable dptmds workaround
  drm/nouveau: prevent userspace from deleting client object
  drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
parents 566cf877 2b507893
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ nouveau_hw_get_clock(struct drm_device *dev, enum nvbios_pll_type plltype)
		uint32_t mpllP;

		pci_read_config_dword(pci_get_bus_and_slot(0, 3), 0x6c, &mpllP);
		mpllP = (mpllP >> 8) & 0xf;
		if (!mpllP)
			mpllP = 4;

@@ -232,7 +233,7 @@ nouveau_hw_get_clock(struct drm_device *dev, enum nvbios_pll_type plltype)
		uint32_t clock;

		pci_read_config_dword(pci_get_bus_and_slot(0, 5), 0x4c, &clock);
		return clock;
		return clock / 1000;
	}

	ret = nouveau_hw_get_pllvals(dev, plltype, &pllvals);
+1 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ struct nv84_fence_priv {
	struct nouveau_bo *bo;
	struct nouveau_bo *bo_gart;
	u32 *suspend;
	struct mutex mutex;
};

int  nv84_fence_context_new(struct nouveau_channel *);
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ nouveau_led(struct drm_device *dev)
}

/* nouveau_led.c */
#if IS_ENABLED(CONFIG_LEDS_CLASS)
#if IS_REACHABLE(CONFIG_LEDS_CLASS)
int  nouveau_led_init(struct drm_device *dev);
void nouveau_led_suspend(struct drm_device *dev);
void nouveau_led_resume(struct drm_device *dev);
+2 −1
Original line number Diff line number Diff line
@@ -313,7 +313,8 @@ usif_ioctl(struct drm_file *filp, void __user *user, u32 argc)
	if (!(ret = nvif_unpack(-ENOSYS, &data, &size, argv->v0, 0, 0, true))) {
		/* block access to objects not created via this interface */
		owner = argv->v0.owner;
		if (argv->v0.object == 0ULL)
		if (argv->v0.object == 0ULL &&
		    argv->v0.type != NVIF_IOCTL_V0_DEL)
			argv->v0.owner = NVDRM_OBJECT_ANY; /* except client */
		else
			argv->v0.owner = NVDRM_OBJECT_USIF;
+6 −0
Original line number Diff line number Diff line
@@ -4052,6 +4052,11 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
		}
	}

	for_each_crtc_in_state(state, crtc, crtc_state, i) {
		if (crtc->state->event)
			drm_crtc_vblank_get(crtc);
	}

	/* Update plane(s). */
	for_each_plane_in_state(state, plane, plane_state, i) {
		struct nv50_wndw_atom *asyw = nv50_wndw_atom(plane->state);
@@ -4101,6 +4106,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
			drm_crtc_send_vblank_event(crtc, crtc->state->event);
			spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
			crtc->state->event = NULL;
			drm_crtc_vblank_put(crtc);
		}
	}

Loading