History

Merge tag 'drm-fixes-2025-11-09' of https://gitlab.freedesktop.org/drm/kernel

Pull drm fix from Dave Airlie: "Brown paper bag, the dma mask fix which I applied and actually looked through for bad things, actually broke newer GPUs, there might be some latent part in the boot path that is assuming 32-bit still, but we will figure that out elsewhere. nouveau: - revert DMA mask change" * tag 'drm-fixes-2025-11-09' of https://gitlab.freedesktop.org/drm/kernel: Revert "drm/nouveau: set DMA mask before creating the flush page"

Linus Torvalds committed 1 year ago

Commit 439fc292 parents 41d318c 41133611 file · +12 −12Browse files

Unified · Split

drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c+12−12
@@ -1695,18 +1695,6 @@ nvkm_device_pci_new(struct pci_dev *pci_dev, const char *cfg, const char *dbg, · 1694 unmodified lines
1695 *pdevice = &pdev->device;1695 *pdevice = &pdev->device;
1696 pdev->pdev = pci_dev;1696 pdev->pdev = pci_dev;
1697 1697
1698 /* Set DMA mask based on capabilities reported by the MMU subdev. */
1699 if (pdev->device.mmu && !pdev->device.pci->agp.bridge)
1700 bits = pdev->device.mmu->dma_bits;
1701 else
1702 bits = 32;
1703
1704 ret = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(bits));
1705 if (ret && bits != 32) {
1706 dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
1707 pdev->device.mmu->dma_bits = 32;
1708 }
1709
1710 ret = nvkm_device_ctor(&nvkm_device_pci_func, quirk, &pci_dev->dev,1698 ret = nvkm_device_ctor(&nvkm_device_pci_func, quirk, &pci_dev->dev,
1711 pci_is_pcie(pci_dev) ? NVKM_DEVICE_PCIE :1699 pci_is_pcie(pci_dev) ? NVKM_DEVICE_PCIE :
1712 pci_find_capability(pci_dev, PCI_CAP_ID_AGP) ?1700 pci_find_capability(pci_dev, PCI_CAP_ID_AGP) ?
@@ -1720,5 +1708,17 @@ nvkm_device_pci_new(struct pci_dev *pci_dev, const char *cfg, const char *dbg, · 7 unmodified lines
1720 if (ret)1708 if (ret)
1721 return ret;1709 return ret;
1722 1710
1711 /* Set DMA mask based on capabilities reported by the MMU subdev. */
1712 if (pdev->device.mmu && !pdev->device.pci->agp.bridge)
1713 bits = pdev->device.mmu->dma_bits;
1714 else
1715 bits = 32;
1716
1717 ret = dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(bits));
1718 if (ret && bits != 32) {
1719 dma_set_mask_and_coherent(&pci_dev->dev, DMA_BIT_MASK(32));
1720 pdev->device.mmu->dma_bits = 32;
1721 }
1722
1723 return 0;1723 return 0;
1724}1724}