[PATCH v7 071/120] dmaengine: ioatdma: Use parsed CPUID(0x9)
"Ahmed S. Darwish" <[email protected]> Thu, 28 May 2026 17:38:33 +0200
| Newsgroups | dev.linux.lists.x86-cpuid,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Use parsed CPUID(0x9) instead of manual bitwise operations and a direct CPUID query. Signed-off-by: Ahmed S. Darwish <[email protected]> --- drivers/dma/ioat/dca.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/drivers/dma/ioat/dca.c b/drivers/dma/ioat/dca.c index 07c977bef5f8..5e9b43b0b6dc 100644 --- a/drivers/dma/ioat/dca.c +++ b/drivers/dma/ioat/dca.c @@ -52,25 +52,12 @@ static inline u16 dcaid_from_pcidev(struct pci_dev *pci) return pci_dev_id(pci); } -static int dca_enabled_in_bios(struct pci_dev *pdev) -{ - /* CPUID level 9 returns DCA configuration */ - /* Bit 0 indicates DCA enabled by the BIOS */ - u32 eax; - int res; - - eax = cpuid_eax(CPUID_LEAF_DCA); - res = eax & BIT(0); - if (!res) - dev_dbg(&pdev->dev, "DCA is disabled in BIOS\n"); - - return res; -} - int system_has_dca_enabled(struct pci_dev *pdev) { - if (boot_cpu_has(X86_FEATURE_DCA)) - return dca_enabled_in_bios(pdev); + const struct leaf_0x9_0 *l9 = cpuid_leaf(&boot_cpu_data, 0x9); + + if (l9 && boot_cpu_has(X86_FEATURE_DCA)) + return l9->dca_enabled_in_bios; dev_dbg(&pdev->dev, "boot cpu doesn't have X86_FEATURE_DCA\n"); return 0; -- 2.54.0