hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/i915/gvt/firmware.c
....@@ -68,16 +68,15 @@
6868
6969 static int mmio_snapshot_handler(struct intel_gvt *gvt, u32 offset, void *data)
7070 {
71
- struct drm_i915_private *dev_priv = gvt->dev_priv;
72
-
73
- *(u32 *)(data + offset) = I915_READ_NOTRACE(_MMIO(offset));
71
+ *(u32 *)(data + offset) = intel_uncore_read_notrace(gvt->gt->uncore,
72
+ _MMIO(offset));
7473 return 0;
7574 }
7675
7776 static int expose_firmware_sysfs(struct intel_gvt *gvt)
7877 {
7978 struct intel_gvt_device_info *info = &gvt->device_info;
80
- struct pci_dev *pdev = gvt->dev_priv->drm.pdev;
79
+ struct pci_dev *pdev = gvt->gt->i915->drm.pdev;
8180 struct gvt_firmware_header *h;
8281 void *firmware;
8382 void *p;
....@@ -128,7 +127,7 @@
128127
129128 static void clean_firmware_sysfs(struct intel_gvt *gvt)
130129 {
131
- struct pci_dev *pdev = gvt->dev_priv->drm.pdev;
130
+ struct pci_dev *pdev = gvt->gt->i915->drm.pdev;
132131
133132 device_remove_bin_file(&pdev->dev, &firmware_attr);
134133 vfree(firmware_attr.private);
....@@ -145,15 +144,14 @@
145144 clean_firmware_sysfs(gvt);
146145
147146 kfree(gvt->firmware.cfg_space);
148
- kfree(gvt->firmware.mmio);
147
+ vfree(gvt->firmware.mmio);
149148 }
150149
151150 static int verify_firmware(struct intel_gvt *gvt,
152151 const struct firmware *fw)
153152 {
154153 struct intel_gvt_device_info *info = &gvt->device_info;
155
- struct drm_i915_private *dev_priv = gvt->dev_priv;
156
- struct pci_dev *pdev = dev_priv->drm.pdev;
154
+ struct pci_dev *pdev = gvt->gt->i915->drm.pdev;
157155 struct gvt_firmware_header *h;
158156 unsigned long id, crc32_start;
159157 const void *mem;
....@@ -207,8 +205,7 @@
207205 int intel_gvt_load_firmware(struct intel_gvt *gvt)
208206 {
209207 struct intel_gvt_device_info *info = &gvt->device_info;
210
- struct drm_i915_private *dev_priv = gvt->dev_priv;
211
- struct pci_dev *pdev = dev_priv->drm.pdev;
208
+ struct pci_dev *pdev = gvt->gt->i915->drm.pdev;
212209 struct intel_gvt_firmware *firmware = &gvt->firmware;
213210 struct gvt_firmware_header *h;
214211 const struct firmware *fw;
....@@ -228,7 +225,7 @@
228225
229226 firmware->cfg_space = mem;
230227
231
- mem = kmalloc(info->mmio_size, GFP_KERNEL);
228
+ mem = vmalloc(info->mmio_size);
232229 if (!mem) {
233230 kfree(path);
234231 kfree(firmware->cfg_space);
....@@ -243,7 +240,7 @@
243240
244241 gvt_dbg_core("request hw state firmware %s...\n", path);
245242
246
- ret = request_firmware(&fw, path, &dev_priv->drm.pdev->dev);
243
+ ret = request_firmware(&fw, path, &gvt->gt->i915->drm.pdev->dev);
247244 kfree(path);
248245
249246 if (ret)