mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
drm/xe: Rename gmdid_map to xe_ip
If we pay closer attention to struct gmdid_map, we will realize that it
is actually fully describing an IP (graphics or media): it contains
"release info" and "features info". The former is comprised of fields
"ver" and "name"; and the latter is done via member "ip", which is a
pointer to either struct xe_graphics_desc or xe_media_desc, and can be
reused across releases.
As such let's:
* Rename struct gmdid_map to xe_ip.
* Rename the field ver to verx100 to be consistent with the naming of
members using that encoding of the version.
* Rename the field "ip" to "desc" to make it clear that it is a
pointer to a descriptor of features for the IP, since it will not
contain *all* info (i.e. features + release info).
We sill have release info mapped into struct xe_{graphics,media}_desc
for pre-GMDID IPs. In an upcoming change we will handle that so that we
make a clear separation between "release info" and "feature info".
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250221-xe-unify-ip-descriptors-v2-3-5bc0c6d0c13f@intel.com
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
This commit is contained in:
parent
0695c746f5
commit
2d197a1f70
|
|
@ -21,15 +21,15 @@
|
|||
*/
|
||||
void xe_call_for_each_graphics_ip(xe_graphics_fn xe_fn)
|
||||
{
|
||||
const struct xe_graphics_desc *ip, *last = NULL;
|
||||
const struct xe_graphics_desc *desc, *last = NULL;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
|
||||
ip = graphics_ip_map[i].ip;
|
||||
if (ip == last)
|
||||
for (int i = 0; i < ARRAY_SIZE(graphics_ips); i++) {
|
||||
desc = graphics_ips[i].desc;
|
||||
if (desc == last)
|
||||
continue;
|
||||
|
||||
xe_fn(ip);
|
||||
last = ip;
|
||||
xe_fn(desc);
|
||||
last = desc;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_IF_KUNIT(xe_call_for_each_graphics_ip);
|
||||
|
|
@ -43,15 +43,15 @@ EXPORT_SYMBOL_IF_KUNIT(xe_call_for_each_graphics_ip);
|
|||
*/
|
||||
void xe_call_for_each_media_ip(xe_media_fn xe_fn)
|
||||
{
|
||||
const struct xe_media_desc *ip, *last = NULL;
|
||||
const struct xe_media_desc *desc, *last = NULL;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(media_ip_map); i++) {
|
||||
ip = media_ip_map[i].ip;
|
||||
if (ip == last)
|
||||
for (int i = 0; i < ARRAY_SIZE(media_ips); i++) {
|
||||
desc = media_ips[i].desc;
|
||||
if (desc == last)
|
||||
continue;
|
||||
|
||||
xe_fn(ip);
|
||||
last = ip;
|
||||
xe_fn(desc);
|
||||
last = desc;
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL_IF_KUNIT(xe_call_for_each_media_ip);
|
||||
|
|
|
|||
|
|
@ -358,8 +358,8 @@ static const struct xe_device_desc ptl_desc = {
|
|||
#undef PLATFORM
|
||||
__diag_pop();
|
||||
|
||||
/* Map of GMD_ID values to graphics IP */
|
||||
static const struct gmdid_map graphics_ip_map[] = {
|
||||
/* GMDID-based Graphics IPs */
|
||||
static const struct xe_ip graphics_ips[] = {
|
||||
{ 1270, "Xe_LPG", &graphics_xelpg },
|
||||
{ 1271, "Xe_LPG", &graphics_xelpg },
|
||||
{ 1274, "Xe_LPG+", &graphics_xelpg },
|
||||
|
|
@ -369,8 +369,8 @@ static const struct gmdid_map graphics_ip_map[] = {
|
|||
{ 3001, "Xe3_LPG", &graphics_xe2 },
|
||||
};
|
||||
|
||||
/* Map of GMD_ID values to media IP */
|
||||
static const struct gmdid_map media_ip_map[] = {
|
||||
/* GMDID-based Media IPs */
|
||||
static const struct xe_ip media_ips[] = {
|
||||
{ 1300, "Xe_LPM+", &media_xelpmp },
|
||||
{ 1301, "Xe2_HPM", &media_xelpmp },
|
||||
{ 2000, "Xe2_LPM", &media_xelpmp },
|
||||
|
|
@ -572,11 +572,11 @@ static void handle_gmdid(struct xe_device *xe,
|
|||
|
||||
read_gmdid(xe, GMDID_GRAPHICS, &ver, graphics_revid);
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(graphics_ip_map); i++) {
|
||||
if (ver == graphics_ip_map[i].ver) {
|
||||
for (int i = 0; i < ARRAY_SIZE(graphics_ips); i++) {
|
||||
if (ver == graphics_ips[i].verx100) {
|
||||
xe->info.graphics_verx100 = ver;
|
||||
xe->info.graphics_name = graphics_ip_map[i].name;
|
||||
*graphics = graphics_ip_map[i].ip;
|
||||
xe->info.graphics_name = graphics_ips[i].name;
|
||||
*graphics = graphics_ips[i].desc;
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -594,11 +594,11 @@ static void handle_gmdid(struct xe_device *xe,
|
|||
if (ver == 0)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(media_ip_map); i++) {
|
||||
if (ver == media_ip_map[i].ver) {
|
||||
for (int i = 0; i < ARRAY_SIZE(media_ips); i++) {
|
||||
if (ver == media_ips[i].verx100) {
|
||||
xe->info.media_verx100 = ver;
|
||||
xe->info.media_name = media_ip_map[i].name;
|
||||
*media = media_ip_map[i].ip;
|
||||
xe->info.media_name = media_ips[i].name;
|
||||
*media = media_ips[i].desc;
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,10 +37,10 @@ struct xe_media_desc {
|
|||
u8 has_indirect_ring_state:1;
|
||||
};
|
||||
|
||||
struct gmdid_map {
|
||||
unsigned int ver;
|
||||
struct xe_ip {
|
||||
unsigned int verx100;
|
||||
const char *name;
|
||||
const void *ip;
|
||||
const void *desc;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user