diff options
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/svga_reg.h | 9 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 3 | ||||
| -rw-r--r-- | include/uapi/drm/vmwgfx_drm.h | 1 |
5 files changed, 16 insertions, 1 deletions
diff --git a/drivers/gpu/drm/vmwgfx/svga_reg.h b/drivers/gpu/drm/vmwgfx/svga_reg.h index 71defa4d2d75..11323dd5196f 100644 --- a/drivers/gpu/drm/vmwgfx/svga_reg.h +++ b/drivers/gpu/drm/vmwgfx/svga_reg.h | |||
| @@ -169,10 +169,17 @@ enum { | |||
| 169 | SVGA_REG_TRACES = 45, /* Enable trace-based updates even when FIFO is on */ | 169 | SVGA_REG_TRACES = 45, /* Enable trace-based updates even when FIFO is on */ |
| 170 | SVGA_REG_GMRS_MAX_PAGES = 46, /* Maximum number of 4KB pages for all GMRs */ | 170 | SVGA_REG_GMRS_MAX_PAGES = 46, /* Maximum number of 4KB pages for all GMRs */ |
| 171 | SVGA_REG_MEMORY_SIZE = 47, /* Total dedicated device memory excluding FIFO */ | 171 | SVGA_REG_MEMORY_SIZE = 47, /* Total dedicated device memory excluding FIFO */ |
| 172 | SVGA_REG_COMMAND_LOW = 48, /* Lower 32 bits and submits commands */ | ||
| 173 | SVGA_REG_COMMAND_HIGH = 49, /* Upper 32 bits of command buffer PA */ | ||
| 172 | SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM = 50, /* Max primary memory */ | 174 | SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM = 50, /* Max primary memory */ |
| 173 | SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB = 51, /* Suggested limit on mob mem */ | 175 | SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB = 51, /* Suggested limit on mob mem */ |
| 174 | SVGA_REG_DEV_CAP = 52, /* Write dev cap index, read value */ | 176 | SVGA_REG_DEV_CAP = 52, /* Write dev cap index, read value */ |
| 175 | SVGA_REG_TOP = 53, /* Must be 1 more than the last register */ | 177 | SVGA_REG_CMD_PREPEND_LOW = 53, |
| 178 | SVGA_REG_CMD_PREPEND_HIGH = 54, | ||
| 179 | SVGA_REG_SCREENTARGET_MAX_WIDTH = 55, | ||
| 180 | SVGA_REG_SCREENTARGET_MAX_HEIGHT = 56, | ||
| 181 | SVGA_REG_MOB_MAX_SIZE = 57, | ||
| 182 | SVGA_REG_TOP = 58, /* Must be 1 more than the last register */ | ||
| 176 | 183 | ||
| 177 | SVGA_PALETTE_BASE = 1024, /* Base of SVGA color map */ | 184 | SVGA_PALETTE_BASE = 1024, /* Base of SVGA color map */ |
| 178 | /* Next 768 (== 256*3) registers exist for colormap */ | 185 | /* Next 768 (== 256*3) registers exist for colormap */ |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 3bdc0adc656d..0083cbf99edf 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | |||
| @@ -667,6 +667,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
| 667 | dev_priv->memory_size = 512*1024*1024; | 667 | dev_priv->memory_size = 512*1024*1024; |
| 668 | } | 668 | } |
| 669 | dev_priv->max_mob_pages = 0; | 669 | dev_priv->max_mob_pages = 0; |
| 670 | dev_priv->max_mob_size = 0; | ||
| 670 | if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) { | 671 | if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) { |
| 671 | uint64_t mem_size = | 672 | uint64_t mem_size = |
| 672 | vmw_read(dev_priv, | 673 | vmw_read(dev_priv, |
| @@ -676,6 +677,8 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
| 676 | dev_priv->prim_bb_mem = | 677 | dev_priv->prim_bb_mem = |
| 677 | vmw_read(dev_priv, | 678 | vmw_read(dev_priv, |
| 678 | SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM); | 679 | SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM); |
| 680 | dev_priv->max_mob_size = | ||
| 681 | vmw_read(dev_priv, SVGA_REG_MOB_MAX_SIZE); | ||
| 679 | } else | 682 | } else |
| 680 | dev_priv->prim_bb_mem = dev_priv->vram_size; | 683 | dev_priv->prim_bb_mem = dev_priv->vram_size; |
| 681 | 684 | ||
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index ecaa302a6154..9e4be1725985 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | |||
| @@ -386,6 +386,7 @@ struct vmw_private { | |||
| 386 | uint32_t max_gmr_ids; | 386 | uint32_t max_gmr_ids; |
| 387 | uint32_t max_gmr_pages; | 387 | uint32_t max_gmr_pages; |
| 388 | uint32_t max_mob_pages; | 388 | uint32_t max_mob_pages; |
| 389 | uint32_t max_mob_size; | ||
| 389 | uint32_t memory_size; | 390 | uint32_t memory_size; |
| 390 | bool has_gmr; | 391 | bool has_gmr; |
| 391 | bool has_mob; | 392 | bool has_mob; |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c index f9881f9e62bd..47b70949bf3a 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | |||
| @@ -102,6 +102,9 @@ int vmw_getparam_ioctl(struct drm_device *dev, void *data, | |||
| 102 | vmw_fp->gb_aware = true; | 102 | vmw_fp->gb_aware = true; |
| 103 | param->value = dev_priv->max_mob_pages * PAGE_SIZE; | 103 | param->value = dev_priv->max_mob_pages * PAGE_SIZE; |
| 104 | break; | 104 | break; |
| 105 | case DRM_VMW_PARAM_MAX_MOB_SIZE: | ||
| 106 | param->value = dev_priv->max_mob_size; | ||
| 107 | break; | ||
| 105 | default: | 108 | default: |
| 106 | DRM_ERROR("Illegal vmwgfx get param request: %d\n", | 109 | DRM_ERROR("Illegal vmwgfx get param request: %d\n", |
| 107 | param->param); | 110 | param->param); |
diff --git a/include/uapi/drm/vmwgfx_drm.h b/include/uapi/drm/vmwgfx_drm.h index 9971c560ed9a..87792a5fee3b 100644 --- a/include/uapi/drm/vmwgfx_drm.h +++ b/include/uapi/drm/vmwgfx_drm.h | |||
| @@ -87,6 +87,7 @@ | |||
| 87 | #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 | 87 | #define DRM_VMW_PARAM_MAX_SURF_MEMORY 7 |
| 88 | #define DRM_VMW_PARAM_3D_CAPS_SIZE 8 | 88 | #define DRM_VMW_PARAM_3D_CAPS_SIZE 8 |
| 89 | #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 | 89 | #define DRM_VMW_PARAM_MAX_MOB_MEMORY 9 |
| 90 | #define DRM_VMW_PARAM_MAX_MOB_SIZE 10 | ||
| 90 | 91 | ||
| 91 | /** | 92 | /** |
| 92 | * struct drm_vmw_getparam_arg | 93 | * struct drm_vmw_getparam_arg |
