diff options
| author | Dave Airlie <airlied@redhat.com> | 2016-12-01 09:25:58 +1000 | 
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2016-12-01 09:25:58 +1000 | 
| commit | f5590134365f6f23dba723f140f72effcc71773f (patch) | |
| tree | 2094f339374fa0b37b22f33a9f40950de8950def /drivers/gpu/drm/msm/msm_gem.h | |
| parent | a90f58311f48f510ea63cd2db2e32f74712c43f3 (diff) | |
| parent | 2401a008461481387741bacf7318d13af2c2055f (diff) | |
Merge branch 'msm-next' of git://people.freedesktop.org/~robclark/linux into drm-next
On the userspace side, all the basics are working, and most of glmark2
is working.  I've been working through deqp, and I've got a couple more
things to fix (but we've gone from 70% to 80+% pass in last day, and
current deqp run that is going should pick up another 5-10%).  I expect
to push the mesa patches today or tomorrow.
There are a couple more a5xx related patches to take the gpu out of
secure mode (for the devices that come up in secure mode, like the hw
I have), but those depend on an scm patch that would come in through
another tree.  If that can land in the next day or two, there might
be a second late pull request for drm/msm.
In addition to the new-shiny, there have also been a lot of overlay/
plane related fixes for issues found using drm-hwc2 (in the process of
testing/debugging the atomic/kms fence patches), resulting in rework
to assign hwpipes to kms planes dynamically (as part of global atomic
state) and also handling SMP (fifo) block allocation atomically as
part of the ->atomic_check() step.  All those patches should also help
out atomic weston (when those patches eventually land).
* 'msm-next' of git://people.freedesktop.org/~robclark/linux: (36 commits)
  drm/msm: gpu: Add support for the GPMU
  drm/msm: gpu: Add A5XX target support
  drm/msm: Disable interrupts during init
  drm/msm: Remove 'src_clk' from adreno configuration
  drm/msm: gpu: Add OUT_TYPE4 and OUT_TYPE7
  drm/msm: Add adreno_gpu_write64()
  drm/msm: gpu Add new gpu register read/write functions
  drm/msm: gpu: Return error on hw_init failure
  drm/msm: gpu: Cut down the list of "generic" registers to the ones we use
  drm/msm: update generated headers
  drm/msm/adreno: move scratch register dumping to per-gen code
  drm/msm/rd: support for 64b iova
  drm/msm: convert iova to 64b
  drm/msm: set dma_mask properly
  drm/msm: Remove bad calls to of_node_put()
  drm/msm/mdp5: move LM bounds check into plane->atomic_check()
  drm/msm/mdp5: dump smp state on errors too
  drm/msm/mdp5: add debugfs to show smp block status
  drm/msm/mdp5: handle SMP block allocations "atomically"
  drm/msm/mdp5: dynamically assign hw pipes to planes
  ...
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.h')
| -rw-r--r-- | drivers/gpu/drm/msm/msm_gem.h | 23 | 
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h index 2cb8551fda70..7d529516b332 100644 --- a/drivers/gpu/drm/msm/msm_gem.h +++ b/drivers/gpu/drm/msm/msm_gem.h @@ -24,6 +24,20 @@  /* Additional internal-use only BO flags: */  #define MSM_BO_STOLEN        0x10000000    /* try to use stolen/splash memory */ +struct msm_gem_address_space { +	const char *name; +	/* NOTE: mm managed at the page level, size is in # of pages +	 * and position mm_node->start is in # of pages: +	 */ +	struct drm_mm mm; +	struct msm_mmu *mmu; +}; + +struct msm_gem_vma { +	struct drm_mm_node node; +	uint64_t iova; +}; +  struct msm_gem_object {  	struct drm_gem_object base; @@ -61,10 +75,7 @@ struct msm_gem_object {  	struct sg_table *sgt;  	void *vaddr; -	struct { -		// XXX -		uint32_t iova; -	} domain[NUM_DOMAINS]; +	struct msm_gem_vma domain[NUM_DOMAINS];  	/* normally (resv == &_resv) except for imported bo's */  	struct reservation_object *resv; @@ -112,13 +123,13 @@ struct msm_gem_submit {  	struct {  		uint32_t type;  		uint32_t size;  /* in dwords */ -		uint32_t iova; +		uint64_t iova;  		uint32_t idx;   /* cmdstream buffer idx in bos[] */  	} *cmd;  /* array of size nr_cmds */  	struct {  		uint32_t flags;  		struct msm_gem_object *obj; -		uint32_t iova; +		uint64_t iova;  	} bos[0];  };  | 
