Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Brost <matthew.brost@intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: <intel-xe@lists.freedesktop.org>, <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH v3 12/12] drm/xe: Move struct xe_ggtt to xe_ggtt.c
Date: Fri, 4 Oct 2024 06:41:19 +0000	[thread overview]
Message-ID: <Zv+ODys43Do5VEPJ@DUT025-TGLU.fm.intel.com> (raw)
In-Reply-To: <20241003154421.33805-13-maarten.lankhorst@linux.intel.com>

On Thu, Oct 03, 2024 at 05:44:21PM +0200, Maarten Lankhorst wrote:
> No users left outside of xe_ggtt.c, so we can make the struct private.
> 
> This prevents us from accidentally touching it before init.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

This is a good cleanup and honestly we likely should do across the Xe
driver for various public structs which no reason to be public (mostly
my fault). This enforces correct layering which is a very good thing.

With that:
Reviewed-by: Matthew Brost <matthew.brost@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_ggtt.c       | 37 ++++++++++++++++++++++++++++
>  drivers/gpu/drm/xe/xe_ggtt_types.h | 39 +-----------------------------
>  2 files changed, 38 insertions(+), 38 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 9c4baa22ebe49..0ff9d25ec0172 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -74,6 +74,43 @@ struct xe_ggtt_pt_ops {
>  	void (*ggtt_set_pte)(struct xe_ggtt *ggtt, u64 addr, u64 pte);
>  };
>  
> +/**
> + * struct xe_ggtt - Main GGTT struct
> + *
> + * In general, each tile can contains its own Global Graphics Translation Table
> + * (GGTT) instance.
> + */
> +struct xe_ggtt {
> +	/** @tile: Back pointer to tile where this GGTT belongs */
> +	struct xe_tile *tile;
> +	/** @size: Total size of this GGTT */
> +	u64 size;
> +
> +#define XE_GGTT_FLAGS_64K BIT(0)
> +	/**
> +	 * @flags: Flags for this GGTT
> +	 * Acceptable flags:
> +	 * - %XE_GGTT_FLAGS_64K - if PTE size is 64K. Otherwise, regular is 4K.
> +	 */
> +	unsigned int flags;
> +	/** @scratch: Internal object allocation used as a scratch page */
> +	struct xe_bo *scratch;
> +	/** @lock: Mutex lock to protect GGTT data */
> +	struct mutex lock;
> +	/**
> +	 *  @gsm: The iomem pointer to the actual location of the translation
> +	 * table located in the GSM for easy PTE manipulation
> +	 */
> +	u64 __iomem *gsm;
> +	/** @pt_ops: Page Table operations per platform */
> +	const struct xe_ggtt_pt_ops *pt_ops;
> +	/** @mm: The memory manager used to manage individual GGTT allocations */
> +	struct drm_mm mm;
> +	/** @access_count: counts GGTT writes */
> +	unsigned int access_count;
> +	/** @wq: Dedicated unordered work queue to process node removals */
> +	struct workqueue_struct *wq;
> +};
>  
>  static u64 xelp_ggtt_pte_encode_bo(struct xe_bo *bo, u64 bo_offset,
>  				   u16 pat_index)
> diff --git a/drivers/gpu/drm/xe/xe_ggtt_types.h b/drivers/gpu/drm/xe/xe_ggtt_types.h
> index c142ff59c4504..8b0fd528569d3 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt_types.h
> +++ b/drivers/gpu/drm/xe/xe_ggtt_types.h
> @@ -12,47 +12,10 @@
>  
>  struct xe_bo;
>  struct xe_gt;
> +struct xe_ggtt;
>  
>  typedef u64 (*xe_ggtt_pte_encode_bo_fn)(struct xe_bo *bo, u64 bo_offset, u16 pat_index);
>  
> -/**
> - * struct xe_ggtt - Main GGTT struct
> - *
> - * In general, each tile can contains its own Global Graphics Translation Table
> - * (GGTT) instance.
> - */
> -struct xe_ggtt {
> -	/** @tile: Back pointer to tile where this GGTT belongs */
> -	struct xe_tile *tile;
> -	/** @size: Total size of this GGTT */
> -	u64 size;
> -
> -#define XE_GGTT_FLAGS_64K BIT(0)
> -	/**
> -	 * @flags: Flags for this GGTT
> -	 * Acceptable flags:
> -	 * - %XE_GGTT_FLAGS_64K - if PTE size is 64K. Otherwise, regular is 4K.
> -	 */
> -	unsigned int flags;
> -	/** @scratch: Internal object allocation used as a scratch page */
> -	struct xe_bo *scratch;
> -	/** @lock: Mutex lock to protect GGTT data */
> -	struct mutex lock;
> -	/**
> -	 *  @gsm: The iomem pointer to the actual location of the translation
> -	 * table located in the GSM for easy PTE manipulation
> -	 */
> -	u64 __iomem *gsm;
> -	/** @pt_ops: Page Table operations per platform */
> -	const struct xe_ggtt_pt_ops *pt_ops;
> -	/** @mm: The memory manager used to manage individual GGTT allocations */
> -	struct drm_mm mm;
> -	/** @access_count: counts GGTT writes */
> -	unsigned int access_count;
> -	/** @wq: Dedicated unordered work queue to process node removals */
> -	struct workqueue_struct *wq;
> -};
> -
>  /**
>   * struct xe_ggtt_node - A node in GGTT.
>   *
> -- 
> 2.45.2
> 

  reply	other threads:[~2024-10-04  6:41 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-03 15:44 [PATCH v3 00/12] drm/xe: Reduce flickering when inheriting BIOS fb Maarten Lankhorst
2024-10-03 15:44 ` [PATCH v3 01/12] drm/xe/display: Handle stolen bar readout in the same way as lmem Maarten Lankhorst
2024-10-07 18:52   ` Lucas De Marchi
2024-10-03 15:44 ` [PATCH v3 02/12] drm/xe: Remove double pageflip Maarten Lankhorst
2024-10-11  9:38   ` Govindapillai, Vinod
2024-10-03 15:44 ` [PATCH v3 03/12] drm/i915/display: Use async flip when available for initial plane config Maarten Lankhorst
2024-10-03 15:58   ` Jani Nikula
2024-10-03 20:51     ` Maarten Lankhorst
2024-10-03 16:14   ` Ville Syrjälä
2024-10-03 20:50     ` Maarten Lankhorst
2024-10-03 20:59       ` Ville Syrjälä
2024-10-04 12:48   ` kernel test robot
2024-10-07 10:23   ` [PATCH v2.1 " Maarten Lankhorst
2024-10-03 15:44 ` [PATCH v3 04/12] drm/xe/display: Remove single wait for vblank Maarten Lankhorst
2024-10-03 15:44 ` [PATCH v3 05/12] drm/xe: Move suballocator init to after display init Maarten Lankhorst
2024-10-03 15:44 ` [PATCH v3 06/12] drm/xe: Use xe_ggtt_map_bo_unlocked for resume Maarten Lankhorst
2024-10-04  6:27   ` Matthew Brost
2024-10-03 15:44 ` [PATCH v3 07/12] drm/xe: Add xe_ggtt_might_lock Maarten Lankhorst
2024-10-04  6:28   ` Matthew Brost
2024-10-03 15:44 ` [PATCH v3 08/12] drm/xe: Add xe_ggtt_alloc Maarten Lankhorst
2024-10-04  6:33   ` Matthew Brost
2024-10-03 15:44 ` [PATCH v3 09/12] drm/xe: Abstract read/write functions for GGTT PTEs Maarten Lankhorst
2024-10-04  6:35   ` Matthew Brost
2024-10-03 15:44 ` [PATCH v3 10/12] drm/xe: Make xe_ggtt_pt_ops private Maarten Lankhorst
2024-10-04  6:38   ` Matthew Brost
2024-10-04 13:30   ` kernel test robot
2024-10-07 18:40   ` Lucas De Marchi
2024-10-03 15:44 ` [PATCH v3 11/12] drm/xe/display: Stop dereferencing ggtt in xe_fb_pin Maarten Lankhorst
2024-10-07 16:58   ` Matthew Brost
2024-10-03 15:44 ` [PATCH v3 12/12] drm/xe: Move struct xe_ggtt to xe_ggtt.c Maarten Lankhorst
2024-10-04  6:41   ` Matthew Brost [this message]
2024-10-03 19:53 ` ✗ Fi.CI.BUILD: failure for drm/xe: Reduce flickering when inheriting BIOS fb Patchwork
2024-10-08  3:16 ` ✗ Fi.CI.BUILD: failure for drm/xe: Reduce flickering when inheriting BIOS fb. (rev2) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zv+ODys43Do5VEPJ@DUT025-TGLU.fm.intel.com \
    --to=matthew.brost@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=maarten.lankhorst@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox