Re: [Intel-gfx] [PATCH 08/10] drm/i915: give stolen_usable_size a more suitable home

2017-12-06 Thread Chris Wilson
Quoting Matthew Auld (2017-12-06 18:17:28)
> Kick it out of i915_ggtt and keep it grouped with dsm and dsm_reserved,
> where it makes the most sense.
> 
> Signed-off-by: Matthew Auld 
> Cc: Joonas Lahtinen 
> Cc: Chris Wilson 
> Cc: Paulo Zanoni 
> ---
>  drivers/gpu/drm/i915/i915_drv.h| 12 +++-
>  drivers/gpu/drm/i915/i915_gem_gtt.h| 10 --
>  drivers/gpu/drm/i915/i915_gem_stolen.c |  5 ++---
>  drivers/gpu/drm/i915/intel_display.c   |  3 +--
>  drivers/gpu/drm/i915/intel_fbdev.c |  3 +--
>  5 files changed, 15 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 40171a7da9d9..2c3e1d715c11 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2253,7 +2253,7 @@ struct drm_i915_private {
> /**
>  * Data Stolen Memory - aka "i915 stolen memory" gives us the start 
> and
>  * end of stolen which we can optionally use to create GEM objects
> -* backed by stolen memory. Note that ggtt->stolen_usable_size tells 
> us
> +* backed by stolen memory. Note that stolen_usable_size tells us
>  * exactly how much of this we are actually allowed to use, given that
>  * some portion of it is in fact reserved for use by hardware 
> functions.
>  */
> @@ -2263,6 +2263,16 @@ struct drm_i915_private {
>  */
> struct resource dsm_reserved;
>  
> +   /* Stolen memory is segmented in hardware with different portions

/*
 * Stolen...
 */

Reviewed-by: Chris Wilson 
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 08/10] drm/i915: give stolen_usable_size a more suitable home

2017-12-06 Thread Matthew Auld
Kick it out of i915_ggtt and keep it grouped with dsm and dsm_reserved,
where it makes the most sense.

Signed-off-by: Matthew Auld 
Cc: Joonas Lahtinen 
Cc: Chris Wilson 
Cc: Paulo Zanoni 
---
 drivers/gpu/drm/i915/i915_drv.h| 12 +++-
 drivers/gpu/drm/i915/i915_gem_gtt.h| 10 --
 drivers/gpu/drm/i915/i915_gem_stolen.c |  5 ++---
 drivers/gpu/drm/i915/intel_display.c   |  3 +--
 drivers/gpu/drm/i915/intel_fbdev.c |  3 +--
 5 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 40171a7da9d9..2c3e1d715c11 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2253,7 +2253,7 @@ struct drm_i915_private {
/**
 * Data Stolen Memory - aka "i915 stolen memory" gives us the start and
 * end of stolen which we can optionally use to create GEM objects
-* backed by stolen memory. Note that ggtt->stolen_usable_size tells us
+* backed by stolen memory. Note that stolen_usable_size tells us
 * exactly how much of this we are actually allowed to use, given that
 * some portion of it is in fact reserved for use by hardware functions.
 */
@@ -2263,6 +2263,16 @@ struct drm_i915_private {
 */
struct resource dsm_reserved;
 
+   /* Stolen memory is segmented in hardware with different portions
+* offlimits to certain functions.
+*
+* The drm_mm is initialised to the total accessible range, as found
+* from the PCI config. On Broadwell+, this is further restricted to
+* avoid the first page! The upper end of stolen memory is reserved for
+* hardware functions and similarly removed from the accessible range.
+*/
+   u32 stolen_usable_size; /* Total size minus reserved ranges */
+
void __iomem *regs;
 
struct intel_uncore uncore;
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h 
b/drivers/gpu/drm/i915/i915_gem_gtt.h
index 4a17ce36281a..e5aa07ceb627 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.h
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
@@ -373,16 +373,6 @@ struct i915_ggtt {
struct resource gmadr;  /* GMADR resource */
u64 mappable_end;   /* End offset that we can CPU map */
 
-   /* Stolen memory is segmented in hardware with different portions
-* offlimits to certain functions.
-*
-* The drm_mm is initialised to the total accessible range, as found
-* from the PCI config. On Broadwell+, this is further restricted to
-* avoid the first page! The upper end of stolen memory is reserved for
-* hardware functions and similarly removed from the accessible range.
-*/
-   u32 stolen_usable_size; /* Total size minus reserved ranges */
-
/** "Graphics Stolen Memory" holds the global PTEs */
void __iomem *gsm;
void (*invalidate)(struct drm_i915_private *dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c 
b/drivers/gpu/drm/i915/i915_gem_stolen.c
index 18d8e4556b11..c3a09d665047 100644
--- a/drivers/gpu/drm/i915/i915_gem_stolen.c
+++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
@@ -322,7 +322,6 @@ static void bdw_get_stolen_reserved(struct drm_i915_private 
*dev_priv,
 
 int i915_gem_init_stolen(struct drm_i915_private *dev_priv)
 {
-   struct i915_ggtt *ggtt = _priv->ggtt;
dma_addr_t reserved_base, stolen_top;
u32 reserved_total, reserved_size;
u32 stolen_usable_start;
@@ -413,12 +412,12 @@ int i915_gem_init_stolen(struct drm_i915_private 
*dev_priv)
if (INTEL_GEN(dev_priv) >= 8)
stolen_usable_start = 4096;
 
-   ggtt->stolen_usable_size =
+   dev_priv->stolen_usable_size =
resource_size(_priv->dsm) - reserved_total - 
stolen_usable_start;
 
/* Basic memrange allocator for stolen space. */
drm_mm_init(_priv->mm.stolen, stolen_usable_start,
-   ggtt->stolen_usable_size);
+   dev_priv->stolen_usable_size);
 
return 0;
 }
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 0098738d3740..f1e0e838b2a7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2639,7 +2639,6 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
 {
struct drm_device *dev = crtc->base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
-   struct i915_ggtt *ggtt = _priv->ggtt;
struct drm_i915_gem_object *obj = NULL;
struct drm_mode_fb_cmd2 mode_cmd = { 0 };
struct drm_framebuffer *fb = _config->fb->base;
@@ -2655,7 +2654,7 @@ intel_alloc_initial_plane_obj(struct intel_crtc *crtc,
/* If the FB is too big, just don't use it since fbdev is not very
 *