6
6
#include "intel_memory_region.h"
7
7
#include "i915_drv.h"
8
8
9
- /* XXX: Hysterical raisins. BIT(inst) needs to just be (inst) at some point. */
10
- #define REGION_MAP (type , inst ) \
11
- BIT((type) + INTEL_MEMORY_TYPE_SHIFT) | BIT(inst)
12
-
13
- static const u32 intel_region_map [] = {
14
- [INTEL_REGION_SMEM ] = REGION_MAP (INTEL_MEMORY_SYSTEM , 0 ),
15
- [INTEL_REGION_LMEM ] = REGION_MAP (INTEL_MEMORY_LOCAL , 0 ),
16
- [INTEL_REGION_STOLEN ] = REGION_MAP (INTEL_MEMORY_STOLEN , 0 ),
9
+ static const struct {
10
+ u16 class ;
11
+ u16 instance ;
12
+ } intel_region_map [] = {
13
+ [INTEL_REGION_SMEM ] = {
14
+ .class = INTEL_MEMORY_SYSTEM ,
15
+ .instance = 0 ,
16
+ },
17
+ [INTEL_REGION_LMEM ] = {
18
+ .class = INTEL_MEMORY_LOCAL ,
19
+ .instance = 0 ,
20
+ },
21
+ [INTEL_REGION_STOLEN ] = {
22
+ .class = INTEL_MEMORY_STOLEN ,
23
+ .instance = 0 ,
24
+ },
17
25
};
18
26
19
27
struct intel_memory_region *
@@ -259,12 +267,13 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
259
267
260
268
for (i = 0 ; i < ARRAY_SIZE (i915 -> mm .regions ); i ++ ) {
261
269
struct intel_memory_region * mem = ERR_PTR (- ENODEV );
262
- u32 type ;
270
+ u16 type , instance ;
263
271
264
272
if (!HAS_REGION (i915 , BIT (i )))
265
273
continue ;
266
274
267
- type = MEMORY_TYPE_FROM_REGION (intel_region_map [i ]);
275
+ type = intel_region_map [i ].class ;
276
+ instance = intel_region_map [i ].instance ;
268
277
switch (type ) {
269
278
case INTEL_MEMORY_SYSTEM :
270
279
mem = i915_gem_shmem_setup (i915 );
@@ -284,9 +293,9 @@ int intel_memory_regions_hw_probe(struct drm_i915_private *i915)
284
293
goto out_cleanup ;
285
294
}
286
295
287
- mem -> id = intel_region_map [ i ] ;
296
+ mem -> id = i ;
288
297
mem -> type = type ;
289
- mem -> instance = MEMORY_INSTANCE_FROM_REGION ( intel_region_map [ i ]) ;
298
+ mem -> instance = instance ;
290
299
291
300
i915 -> mm .regions [i ] = mem ;
292
301
}
0 commit comments