@@ -118,15 +118,31 @@ static void mock_gt_probe(struct drm_i915_private *i915)
118
118
i915 -> gt [0 ]-> name = "Mock GT" ;
119
119
}
120
120
121
+ static const struct intel_device_info mock_info = {
122
+ .__runtime .graphics .ip .ver = -1 ,
123
+ .__runtime .page_sizes = (I915_GTT_PAGE_SIZE_4K |
124
+ I915_GTT_PAGE_SIZE_64K |
125
+ I915_GTT_PAGE_SIZE_2M ),
126
+ .__runtime .memory_regions = REGION_SMEM ,
127
+ .__runtime .platform_engine_mask = BIT (0 ),
128
+
129
+ /* simply use legacy cache level for mock device */
130
+ .max_pat_index = 3 ,
131
+ .cachelevel_to_pat = {
132
+ [I915_CACHE_NONE ] = 0 ,
133
+ [I915_CACHE_LLC ] = 1 ,
134
+ [I915_CACHE_L3_LLC ] = 2 ,
135
+ [I915_CACHE_WT ] = 3 ,
136
+ },
137
+ };
138
+
121
139
struct drm_i915_private * mock_gem_device (void )
122
140
{
123
141
#if IS_ENABLED (CONFIG_IOMMU_API ) && defined(CONFIG_INTEL_IOMMU )
124
142
static struct dev_iommu fake_iommu = { .priv = (void * )-1 };
125
143
#endif
126
144
struct drm_i915_private * i915 ;
127
- struct intel_device_info * i915_info ;
128
145
struct pci_dev * pdev ;
129
- unsigned int i ;
130
146
int ret ;
131
147
132
148
pdev = kzalloc (sizeof (* pdev ), GFP_KERNEL );
@@ -159,37 +175,25 @@ struct drm_i915_private *mock_gem_device(void)
159
175
160
176
pci_set_drvdata (pdev , i915 );
161
177
178
+ /* Device parameters start as a copy of module parameters. */
179
+ i915_params_copy (& i915 -> params , & i915_modparams );
180
+
181
+ /* Set up device info and initial runtime info. */
182
+ intel_device_info_driver_create (i915 , pdev -> device , & mock_info );
183
+
162
184
dev_pm_domain_set (& pdev -> dev , & pm_domain );
163
185
pm_runtime_enable (& pdev -> dev );
164
186
pm_runtime_dont_use_autosuspend (& pdev -> dev );
165
187
if (pm_runtime_enabled (& pdev -> dev ))
166
188
WARN_ON (pm_runtime_get_sync (& pdev -> dev ));
167
189
168
-
169
- i915_params_copy (& i915 -> params , & i915_modparams );
170
-
171
190
intel_runtime_pm_init_early (& i915 -> runtime_pm );
172
191
/* wakeref tracking has significant overhead */
173
192
i915 -> runtime_pm .no_wakeref_tracking = true;
174
193
175
194
/* Using the global GTT may ask questions about KMS users, so prepare */
176
195
drm_mode_config_init (& i915 -> drm );
177
196
178
- RUNTIME_INFO (i915 )-> graphics .ip .ver = -1 ;
179
-
180
- RUNTIME_INFO (i915 )-> page_sizes =
181
- I915_GTT_PAGE_SIZE_4K |
182
- I915_GTT_PAGE_SIZE_64K |
183
- I915_GTT_PAGE_SIZE_2M ;
184
-
185
- RUNTIME_INFO (i915 )-> memory_regions = REGION_SMEM ;
186
-
187
- /* simply use legacy cache level for mock device */
188
- i915_info = (struct intel_device_info * )INTEL_INFO (i915 );
189
- i915_info -> max_pat_index = 3 ;
190
- for (i = 0 ; i < I915_MAX_CACHE_LEVEL ; i ++ )
191
- i915_info -> cachelevel_to_pat [i ] = i ;
192
-
193
197
intel_memory_regions_hw_probe (i915 );
194
198
195
199
spin_lock_init (& i915 -> gpu_error .lock );
@@ -223,7 +227,6 @@ struct drm_i915_private *mock_gem_device(void)
223
227
mock_init_ggtt (to_gt (i915 ));
224
228
to_gt (i915 )-> vm = i915_vm_get (& to_gt (i915 )-> ggtt -> vm );
225
229
226
- RUNTIME_INFO (i915 )-> platform_engine_mask = BIT (0 );
227
230
to_gt (i915 )-> info .engine_mask = BIT (0 );
228
231
229
232
to_gt (i915 )-> engine [RCS0 ] = mock_engine (i915 , "mock" , RCS0 );
0 commit comments