[Intel-xe] [RFC 3/5] drm/xe: move pat_table into device info

Matthew Auld matthew.auld at intel.com
Wed Aug 30 09:34:46 UTC 2023


On 29/08/2023 23:20, Matt Roper wrote:
> On Tue, Aug 29, 2023 at 02:49:59PM -0700, Lucas De Marchi wrote:
>> On Tue, Aug 29, 2023 at 05:28:44PM +0100, Matthew Auld wrote:
>>> We need to able to know the max pat_index range for a given platform, as
>>> well being able to lookup the pat_index for a given platform in upcoming
>>> vm_bind uapi, where userspace can directly provide the pat_index. Move
>>> the platform definition of the pat_table into the device info with the
>>> idea of encoding more information about each pat_index in a future
>>> patch.
>>>
>>> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
>>> Cc: Pallavi Mishra <pallavi.mishra at intel.com>
>>> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>>> Cc: Matt Roper <matthew.d.roper at intel.com>
>>> ---
> ...
>>> diff --git a/drivers/gpu/drm/xe/xe_pat.h b/drivers/gpu/drm/xe/xe_pat.h
>>> index 54022f591621..9ab059758ad1 100644
>>> --- a/drivers/gpu/drm/xe/xe_pat.h
>>> +++ b/drivers/gpu/drm/xe/xe_pat.h
>>> @@ -26,8 +26,9 @@
>>> #define XELPG_PAT_WB_CACHE_1_WAY       3
>>>
>>> struct xe_gt;
>>> -extern struct xe_device *xe;
>>> +struct xe_device;
>>
>> leftover from a previous patch? what was the base you used? I can't see
>> this on drm-xe-next.
> 
> I think his series is based on top of the latest copy of Ravi's PTE
> encoding series.

Yes, series is based on top of that patch (mentioned somewhere in cover 
letter).

> 
> 
> Matt
> 
>>
>> Lucas De Marchi
>>
>>>
>>> +int xe_pat_fill_info(struct xe_device *xe);
>>> void xe_pat_init(struct xe_gt *gt);
>>> void xe_pte_pat_init(struct xe_device *xe);
>>> unsigned int xe_pat_get_index(struct xe_device *xe, enum xe_cache_level cache);
>>> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
>>> index 791107dec045..24f2021aae22 100644
>>> --- a/drivers/gpu/drm/xe/xe_pci.c
>>> +++ b/drivers/gpu/drm/xe/xe_pci.c
>>> @@ -22,6 +22,7 @@
>>> #include "xe_gt.h"
>>> #include "xe_macros.h"
>>> #include "xe_module.h"
>>> +#include "xe_pat.h"
>>> #include "xe_pci_types.h"
>>> #include "xe_pm.h"
>>> #include "xe_step.h"
>>> @@ -553,6 +554,7 @@ static int xe_info_init(struct xe_device *xe,
>>> 	struct xe_tile *tile;
>>> 	struct xe_gt *gt;
>>> 	u8 id;
>>> +	int err;
>>>
>>> 	xe->info.platform = desc->platform;
>>> 	xe->info.subplatform = subplatform_desc ?
>>> @@ -601,6 +603,10 @@ static int xe_info_init(struct xe_device *xe,
>>> 	xe->info.enable_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
>>> 				  enable_display &&
>>> 				  desc->has_display;
>>> +
>>> +	err = xe_pat_fill_info(xe);
>>> +	if (err)
>>> +		return err;
>>> 	/*
>>> 	 * All platforms have at least one primary GT.  Any platform with media
>>> 	 * version 13 or higher has an additional dedicated media GT.  And
>>> -- 
>>> 2.41.0
>>>
> 


More information about the Intel-xe mailing list