PCI: Move isa_dma_bridge_buggy out of asm/dma.h
The isa_dma_bridge_buggy symbol is only used for x86_32, and only x86_32 platforms or quirks ever set it. Add a new linux/isa-dma.h header that #defines isa_dma_bridge_buggy to 0 except on x86_32, where we keep it as a variable, and remove all the arch- specific definitions. [bhelgaas: commit log] Suggested-by: Arnd Bergmann <arnd@arndb.de> Suggested-by: Christoph Hellwig <hch@infradead.org> Link: https://lore.kernel.org/r/20220722214944.831438-3-shorne@gmail.com Signed-off-by: Stafford Horne <shorne@gmail.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
This commit is contained in:
parent
ae85b23c65
commit
abb4970ac3
@ -365,13 +365,4 @@ extern void free_dma(unsigned int dmanr); /* release it again */
|
||||
#define KERNEL_HAVE_CHECK_DMA
|
||||
extern int check_dma(unsigned int dmanr);
|
||||
|
||||
/* From PCI */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _ASM_DMA_H */
|
||||
|
@ -7,10 +7,5 @@
|
||||
#define ASM_ARC_DMA_H
|
||||
|
||||
#define MAX_DMA_ADDRESS 0xC0000000
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -143,10 +143,4 @@ extern int get_dma_residue(unsigned int chan);
|
||||
|
||||
#endif /* CONFIG_ISA_DMA_API */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_ARM_DMA_H */
|
||||
|
@ -20,8 +20,6 @@
|
||||
#define arch_can_pci_mmap_wc() 1
|
||||
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
||||
|
||||
extern int isa_dma_bridge_buggy;
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||
{
|
||||
|
@ -15,8 +15,6 @@
|
||||
/* C-SKY shim does not initialize PCI bus */
|
||||
#define pcibios_assign_all_busses() 1
|
||||
|
||||
extern int isa_dma_bridge_buggy;
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||
{
|
||||
|
@ -12,8 +12,6 @@
|
||||
|
||||
extern unsigned long MAX_DMA_ADDRESS;
|
||||
|
||||
extern int isa_dma_bridge_buggy;
|
||||
|
||||
#define free_dma(x)
|
||||
|
||||
#endif /* _ASM_IA64_DMA_H */
|
||||
|
@ -6,10 +6,4 @@
|
||||
bootmem allocator (but this should do it for this) */
|
||||
#define MAX_DMA_ADDRESS PAGE_OFFSET
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _M68K_DMA_H */
|
||||
|
@ -9,10 +9,4 @@
|
||||
/* Virtual address corresponding to last available physical memory address. */
|
||||
#define MAX_DMA_ADDRESS (CONFIG_KERNEL_START + memory_size - 1)
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_MICROBLAZE_DMA_H */
|
||||
|
@ -307,12 +307,4 @@ static __inline__ int get_dma_residue(unsigned int dmanr)
|
||||
extern int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
|
||||
extern void free_dma(unsigned int dmanr); /* release it again */
|
||||
|
||||
/* From PCI */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_DMA_H */
|
||||
|
@ -176,10 +176,4 @@ static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
|
||||
|
||||
#define free_dma(dmanr)
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_DMA_H */
|
||||
|
@ -340,11 +340,5 @@ extern int request_dma(unsigned int dmanr, const char *device_id);
|
||||
/* release it again */
|
||||
extern void free_dma(unsigned int dmanr);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _ASM_POWERPC_DMA_H */
|
||||
|
@ -20,8 +20,6 @@
|
||||
|
||||
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
||||
|
||||
extern int isa_dma_bridge_buggy;
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||
{
|
||||
|
@ -11,10 +11,4 @@
|
||||
*/
|
||||
#define MAX_DMA_ADDRESS 0x80000000
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_S390_DMA_H */
|
||||
|
@ -137,10 +137,4 @@ extern int register_chan_caps(const char *dmac, struct dma_chan_caps *capslist);
|
||||
extern int dma_create_sysfs_files(struct dma_channel *, struct dma_info *);
|
||||
extern void dma_remove_sysfs_files(struct dma_channel *, struct dma_info *);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* __ASM_SH_DMA_H */
|
||||
|
@ -82,14 +82,6 @@
|
||||
#define DMA_BURST64 0x40
|
||||
#define DMA_BURSTBITS 0x7f
|
||||
|
||||
/* From PCI */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPARC32
|
||||
struct device;
|
||||
|
||||
|
@ -9,8 +9,6 @@
|
||||
|
||||
#define pcibios_assign_all_busses() 1
|
||||
|
||||
extern int isa_dma_bridge_buggy;
|
||||
|
||||
#ifdef CONFIG_PCI_DOMAINS
|
||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||
{
|
||||
|
@ -307,12 +307,4 @@ extern int request_dma(unsigned int dmanr, const char *device_id);
|
||||
extern void free_dma(unsigned int dmanr);
|
||||
#endif
|
||||
|
||||
/* From PCI */
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_X86_DMA_H */
|
||||
|
@ -52,11 +52,4 @@
|
||||
extern int request_dma(unsigned int dmanr, const char * device_id);
|
||||
extern void free_dma(unsigned int dmanr);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <asm/dma.h>
|
||||
#include <linux/isa-dma.h>
|
||||
#include <linux/comedi/comedidev.h>
|
||||
#include <linux/comedi/comedi_isadma.h>
|
||||
|
||||
|
@ -41,8 +41,10 @@ const char *pci_power_names[] = {
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(pci_power_names);
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
int isa_dma_bridge_buggy;
|
||||
EXPORT_SYMBOL(isa_dma_bridge_buggy);
|
||||
#endif
|
||||
|
||||
int pci_pci_problems;
|
||||
EXPORT_SYMBOL(pci_pci_problems);
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/isa-dma.h> /* isa_dma_bridge_buggy */
|
||||
#include <linux/init.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/acpi.h>
|
||||
@ -30,7 +31,6 @@
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/suspend.h>
|
||||
#include <linux/switchtec.h>
|
||||
#include <asm/dma.h> /* isa_dma_bridge_buggy */
|
||||
#include "pci.h"
|
||||
|
||||
static ktime_t fixup_debug_start(struct pci_dev *dev,
|
||||
@ -239,6 +239,7 @@ static void quirk_passive_release(struct pci_dev *dev)
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release);
|
||||
DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release);
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
/*
|
||||
* The VIA VP2/VP3/MVP3 seem to have some 'features'. There may be a
|
||||
* workaround but VIA don't answer queries. If you happen to have good
|
||||
@ -265,6 +266,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, quirk_isa_dma
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_1, quirk_isa_dma_hangs);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_2, quirk_isa_dma_hangs);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, quirk_isa_dma_hangs);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Intel NM10 "TigerPoint" LPC PM1a_STS.BM_STS must be clear
|
||||
|
14
include/linux/isa-dma.h
Normal file
14
include/linux/isa-dma.h
Normal file
@ -0,0 +1,14 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#ifndef __LINUX_ISA_DMA_H
|
||||
#define __LINUX_ISA_DMA_H
|
||||
|
||||
#include <asm/dma.h>
|
||||
|
||||
#if defined(CONFIG_PCI) && defined(CONFIG_X86_32)
|
||||
extern int isa_dma_bridge_buggy;
|
||||
#else
|
||||
#define isa_dma_bridge_buggy (0)
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_ISA_DMA_H */
|
@ -12,8 +12,8 @@
|
||||
#undef HAVE_REALLY_SLOW_DMA_CONTROLLER
|
||||
|
||||
#include <linux/export.h>
|
||||
#include <linux/isa-dma.h>
|
||||
#include <sound/core.h>
|
||||
#include <asm/dma.h>
|
||||
|
||||
/**
|
||||
* snd_dma_program - program an ISA DMA transfer
|
||||
|
Loading…
x
Reference in New Issue
Block a user