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"
Unified · Split
| @@ -1695,18 +1695,6 @@ nvkm_device_pci_new(struct pci_dev *pci_dev, const char *cfg, const char *dbg, · 1694 unmodified lines | ||
| 1695 | 1695 | *pdevice = &pdev->device; |
| 1696 | 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 | 1698 | ret = nvkm_device_ctor(&nvkm_device_pci_func, quirk, &pci_dev->dev, |
| 1711 | 1699 | pci_is_pcie(pci_dev) ? NVKM_DEVICE_PCIE : |
| 1712 | 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 | 1708 | if (ret) |
| 1721 | 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 | 1723 | return 0; |
| 1724 | 1724 | } |