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

Commit 42345d63 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:
 "Radeon and amdkfd fixes.

  Radeon ones mostly for oops in some test/benchmark functions since
  fencing changes, and one regression fix for old GPUs,

  There is one cirrus regression fix, the 32bpp broke userspace, so this
  hides it behind a module option for the few users who care.

  I'm off for a few days, so this is probably the final pull I have, if
  I see fixes from Intel I'll forward the pull as I should have email"

* 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
  drm/cirrus: Limit modes depending on bpp option
  drm/radeon: fix the crash in test functions
  drm/radeon: fix the crash in benchmark functions
  drm/radeon: properly set vm fragment size for TN/RL
  drm/radeon: don't init gpuvm if accel is disabled (v3)
  drm/radeon: fix PLLs on RS880 and older v2
  drm/amdkfd: Don't create BUG due to incorrect user parameter
  drm/amdkfd: max num of queues can't be 0
  drm/amdkfd: Fix bug in accounting of queues
parents d445d46d 7f551b1e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -822,7 +822,7 @@ static void destroy_kernel_queue_cpsch(struct device_queue_manager *dqm,
	 * Unconditionally decrement this counter, regardless of the queue's
	 * Unconditionally decrement this counter, regardless of the queue's
	 * type.
	 * type.
	 */
	 */
	dqm->total_queue_count++;
	dqm->total_queue_count--;
	pr_debug("Total of %d queues are accountable so far\n",
	pr_debug("Total of %d queues are accountable so far\n",
			dqm->total_queue_count);
			dqm->total_queue_count);
	mutex_unlock(&dqm->lock);
	mutex_unlock(&dqm->lock);
+2 −2
Original line number Original line Diff line number Diff line
@@ -95,10 +95,10 @@ static int __init kfd_module_init(void)
	}
	}


	/* Verify module parameters */
	/* Verify module parameters */
	if ((max_num_of_queues_per_device < 0) ||
	if ((max_num_of_queues_per_device < 1) ||
		(max_num_of_queues_per_device >
		(max_num_of_queues_per_device >
			KFD_MAX_NUM_OF_QUEUES_PER_DEVICE)) {
			KFD_MAX_NUM_OF_QUEUES_PER_DEVICE)) {
		pr_err("kfd: max_num_of_queues_per_device must be between 0 to KFD_MAX_NUM_OF_QUEUES_PER_DEVICE\n");
		pr_err("kfd: max_num_of_queues_per_device must be between 1 to KFD_MAX_NUM_OF_QUEUES_PER_DEVICE\n");
		return -1;
		return -1;
	}
	}


+5 −1
Original line number Original line Diff line number Diff line
@@ -315,7 +315,11 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid,
	BUG_ON(!pqm);
	BUG_ON(!pqm);


	pqn = get_queue_by_qid(pqm, qid);
	pqn = get_queue_by_qid(pqm, qid);
	BUG_ON(!pqn);
	if (!pqn) {
		pr_debug("amdkfd: No queue %d exists for update operation\n",
				qid);
		return -EFAULT;
	}


	pqn->q->properties.queue_address = p->queue_address;
	pqn->q->properties.queue_address = p->queue_address;
	pqn->q->properties.queue_size = p->queue_size;
	pqn->q->properties.queue_size = p->queue_size;
+3 −0
Original line number Original line Diff line number Diff line
@@ -16,9 +16,12 @@
#include "cirrus_drv.h"
#include "cirrus_drv.h"


int cirrus_modeset = -1;
int cirrus_modeset = -1;
int cirrus_bpp = 24;


MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");
MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");
module_param_named(modeset, cirrus_modeset, int, 0400);
module_param_named(modeset, cirrus_modeset, int, 0400);
MODULE_PARM_DESC(bpp, "Max bits-per-pixel (default:24)");
module_param_named(bpp, cirrus_bpp, int, 0400);


/*
/*
 * This is the generic driver code. This binds the driver to the drm core,
 * This is the generic driver code. This binds the driver to the drm core,
+3 −0
Original line number Original line Diff line number Diff line
@@ -262,4 +262,7 @@ static inline void cirrus_bo_unreserve(struct cirrus_bo *bo)


int cirrus_bo_push_sysram(struct cirrus_bo *bo);
int cirrus_bo_push_sysram(struct cirrus_bo *bo);
int cirrus_bo_pin(struct cirrus_bo *bo, u32 pl_flag, u64 *gpu_addr);
int cirrus_bo_pin(struct cirrus_bo *bo, u32 pl_flag, u64 *gpu_addr);

extern int cirrus_bpp;

#endif				/* __CIRRUS_DRV_H__ */
#endif				/* __CIRRUS_DRV_H__ */
Loading