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

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

Merge branch 'drm-next-4.19' of git://people.freedesktop.org/~agd5f/linux into drm-next



Updates for 4.19.  Mostly bug fixes and cleanups.  Highlights:
- Internal API cleanup in GPU scheduler
- Decouple i2c and aux abstractions in DC
- Update maintainers
- Misc cleanups
- Misc bug fixes

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180725215326.2709-1-alexander.deucher@amd.com
parents daa98975 586092ab
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -728,6 +728,14 @@ S: Supported
F:	drivers/crypto/ccp/
F:	include/linux/ccp.h

AMD DISPLAY CORE
M:	Harry Wentland <harry.wentland@amd.com>
M:	Leo Li <sunpeng.li@amd.com>
L:	amd-gfx@lists.freedesktop.org
T:	git git://people.freedesktop.org/~agd5f/linux
S:	Supported
F:	drivers/gpu/drm/amd/display/

AMD FAM15H PROCESSOR POWER MONITORING DRIVER
M:	Huang Rui <ray.huang@amd.com>
L:	linux-hwmon@vger.kernel.org
@@ -777,6 +785,14 @@ F: drivers/gpu/drm/amd/include/vi_structs.h
F:	drivers/gpu/drm/amd/include/v9_structs.h
F:	include/uapi/linux/kfd_ioctl.h

AMD POWERPLAY
M:	Rex Zhu <rex.zhu@amd.com>
M:	Evan Quan <evan.quan@amd.com>
L:	amd-gfx@lists.freedesktop.org
S:	Supported
F:	drivers/gpu/drm/amd/powerplay/
T:	git git://people.freedesktop.org/~agd5f/linux

AMD SEATTLE DEVICE TREE SUPPORT
M:	Brijesh Singh <brijeshkumar.singh@amd.com>
M:	Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
@@ -4883,7 +4899,8 @@ F: Documentation/gpu/xen-front.rst

DRM TTM SUBSYSTEM
M:	Christian Koenig <christian.koenig@amd.com>
M:	Roger He <Hongbo.He@amd.com>
M:	Huang Rui <ray.huang@amd.com>
M:	Junwei Zhang <Jerry.Zhang@amd.com>
T:	git git://people.freedesktop.org/~agd5f/linux
S:	Maintained
L:	dri-devel@lists.freedesktop.org
+0 −2
Original line number Diff line number Diff line
@@ -1801,8 +1801,6 @@ void amdgpu_display_update_priority(struct amdgpu_device *adev);

void amdgpu_cs_report_moved_bytes(struct amdgpu_device *adev, u64 num_bytes,
				  u64 num_vis_bytes);
void amdgpu_ttm_placement_from_domain(struct amdgpu_bo *abo, u32 domain);
bool amdgpu_ttm_bo_is_amdgpu_bo(struct ttm_buffer_object *bo);
void amdgpu_device_vram_location(struct amdgpu_device *adev,
				 struct amdgpu_gmc *mc, u64 base);
void amdgpu_device_gart_location(struct amdgpu_device *adev,
+30 −25
Original line number Diff line number Diff line
@@ -364,7 +364,6 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
			       struct acpi_bus_event *event)
{
	struct amdgpu_atif *atif = adev->atif;
	struct atif_sbios_requests req;
	int count;

	DRM_DEBUG_DRIVER("event, device_class = %s, type = %#x\n",
@@ -379,6 +378,9 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
		/* Not our event */
		return NOTIFY_DONE;

	if (atif->functions.sbios_requests) {
		struct atif_sbios_requests req;

		/* Check pending SBIOS requests */
		count = amdgpu_atif_get_sbios_requests(atif, &req);

@@ -387,7 +389,9 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,

		DRM_DEBUG_DRIVER("ATIF: %d pending SBIOS requests\n", count);

	if (req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) {
		/* todo: add DC handling */
		if ((req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) &&
		    !amdgpu_device_has_dc_support(adev)) {
			struct amdgpu_encoder *enc = atif->encoder_for_bl;

			if (enc) {
@@ -415,6 +419,7 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
			}
		}
		/* TODO: check other events */
	}

	/* We've handled the event, stop the notifier chain. The ACPI interface
	 * overloads ACPI_VIDEO_NOTIFY_PROBE, we don't want to send that to
+4 −4
Original line number Diff line number Diff line
@@ -334,7 +334,7 @@ static int amdgpu_amdkfd_bo_validate(struct amdgpu_bo *bo, uint32_t domain,
		 "Called with userptr BO"))
		return -EINVAL;

	amdgpu_ttm_placement_from_domain(bo, domain);
	amdgpu_bo_placement_from_domain(bo, domain);

	ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
	if (ret)
@@ -622,7 +622,7 @@ static int init_user_pages(struct kgd_mem *mem, struct mm_struct *mm,
		pr_err("%s: Failed to reserve BO\n", __func__);
		goto release_out;
	}
	amdgpu_ttm_placement_from_domain(bo, mem->domain);
	amdgpu_bo_placement_from_domain(bo, mem->domain);
	ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
	if (ret)
		pr_err("%s: failed to validate BO\n", __func__);
@@ -1680,7 +1680,7 @@ static int update_invalid_user_pages(struct amdkfd_process_info *process_info,

		if (amdgpu_bo_reserve(bo, true))
			return -EAGAIN;
		amdgpu_ttm_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_CPU);
		amdgpu_bo_placement_from_domain(bo, AMDGPU_GEM_DOMAIN_CPU);
		ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
		amdgpu_bo_unreserve(bo);
		if (ret) {
@@ -1824,7 +1824,7 @@ static int validate_invalid_user_pages(struct amdkfd_process_info *process_info)
		if (mem->user_pages[0]) {
			amdgpu_ttm_tt_set_user_pages(bo->tbo.ttm,
						     mem->user_pages);
			amdgpu_ttm_placement_from_domain(bo, mem->domain);
			amdgpu_bo_placement_from_domain(bo, mem->domain);
			ret = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
			if (ret) {
				pr_err("%s: failed to validate BO\n", __func__);
+7 −7
Original line number Diff line number Diff line
@@ -419,7 +419,7 @@ static int amdgpu_cs_bo_validate(struct amdgpu_cs_parser *p,
	}

retry:
	amdgpu_ttm_placement_from_domain(bo, domain);
	amdgpu_bo_placement_from_domain(bo, domain);
	r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);

	p->bytes_moved += ctx.bytes_moved;
@@ -478,7 +478,7 @@ static bool amdgpu_cs_try_evict(struct amdgpu_cs_parser *p,
		update_bytes_moved_vis =
				!amdgpu_gmc_vram_full_visible(&adev->gmc) &&
				amdgpu_bo_in_cpu_visible_vram(bo);
		amdgpu_ttm_placement_from_domain(bo, other);
		amdgpu_bo_placement_from_domain(bo, other);
		r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
		p->bytes_moved += ctx.bytes_moved;
		if (update_bytes_moved_vis)
@@ -532,7 +532,7 @@ static int amdgpu_cs_list_validate(struct amdgpu_cs_parser *p,
		/* Check if we have user pages and nobody bound the BO already */
		if (amdgpu_ttm_tt_userptr_needs_pages(bo->tbo.ttm) &&
		    lobj->user_pages) {
			amdgpu_ttm_placement_from_domain(bo,
			amdgpu_bo_placement_from_domain(bo,
							AMDGPU_GEM_DOMAIN_CPU);
			r = ttm_bo_validate(&bo->tbo, &bo->placement, &ctx);
			if (r)
@@ -1232,7 +1232,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
	job = p->job;
	p->job = NULL;

	r = drm_sched_job_init(&job->base, &ring->sched, entity, p->filp);
	r = drm_sched_job_init(&job->base, entity, p->filp);
	if (r) {
		amdgpu_job_free(job);
		amdgpu_mn_unlock(p->mn);
@@ -1262,7 +1262,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
	priority = job->base.s_priority;
	drm_sched_entity_push_job(&job->base, entity);

	ring = to_amdgpu_ring(entity->sched);
	ring = to_amdgpu_ring(entity->rq->sched);
	amdgpu_ring_priority_get(ring, priority);

	ttm_eu_fence_buffer_objects(&p->ticket, &p->validated, p->fence);
@@ -1655,7 +1655,7 @@ int amdgpu_cs_find_mapping(struct amdgpu_cs_parser *parser,

	if (!((*bo)->flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)) {
		(*bo)->flags |= AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS;
		amdgpu_ttm_placement_from_domain(*bo, (*bo)->allowed_domains);
		amdgpu_bo_placement_from_domain(*bo, (*bo)->allowed_domains);
		r = ttm_bo_validate(&(*bo)->tbo, &(*bo)->placement, &ctx);
		if (r)
			return r;
Loading