mirror of https://github.com/torvalds/linux.git
drm/i915: Remove driver side BAR release before resize
PCI core handles releasing device's resources and their rollback in case of failure of a BAR resizing operation. Releasing resource prior to calling pci_resize_resource() prevents PCI core from restoring the BARs as they were. Remove driver-side release of BARs from the i915 driver. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://patch.msgid.link/20251113162628.5946-10-ilpo.jarvinen@linux.intel.com
This commit is contained in:
parent
1a3c05b32b
commit
4efaa80b3d
|
|
@ -18,16 +18,6 @@
|
||||||
#include "gt/intel_gt_regs.h"
|
#include "gt/intel_gt_regs.h"
|
||||||
|
|
||||||
#ifdef CONFIG_64BIT
|
#ifdef CONFIG_64BIT
|
||||||
static void _release_bars(struct pci_dev *pdev)
|
|
||||||
{
|
|
||||||
int resno;
|
|
||||||
|
|
||||||
for (resno = PCI_STD_RESOURCES; resno < PCI_STD_RESOURCE_END; resno++) {
|
|
||||||
if (pci_resource_len(pdev, resno))
|
|
||||||
pci_release_resource(pdev, resno);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_resize_bar(struct drm_i915_private *i915, int resno, resource_size_t size)
|
_resize_bar(struct drm_i915_private *i915, int resno, resource_size_t size)
|
||||||
{
|
{
|
||||||
|
|
@ -35,8 +25,6 @@ _resize_bar(struct drm_i915_private *i915, int resno, resource_size_t size)
|
||||||
int bar_size = pci_rebar_bytes_to_size(size);
|
int bar_size = pci_rebar_bytes_to_size(size);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
_release_bars(pdev);
|
|
||||||
|
|
||||||
ret = pci_resize_resource(pdev, resno, bar_size, 0);
|
ret = pci_resize_resource(pdev, resno, bar_size, 0);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
drm_info(&i915->drm, "Failed to resize BAR%d to %dM (%pe)\n",
|
drm_info(&i915->drm, "Failed to resize BAR%d to %dM (%pe)\n",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue