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
|
#define KERNEL_HAVE_CHECK_DMA
|
||||||
extern int check_dma(unsigned int dmanr);
|
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 */
|
#endif /* _ASM_DMA_H */
|
||||||
|
@ -7,10 +7,5 @@
|
|||||||
#define ASM_ARC_DMA_H
|
#define ASM_ARC_DMA_H
|
||||||
|
|
||||||
#define MAX_DMA_ADDRESS 0xC0000000
|
#define MAX_DMA_ADDRESS 0xC0000000
|
||||||
#ifdef CONFIG_PCI
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
#else
|
|
||||||
#define isa_dma_bridge_buggy 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -143,10 +143,4 @@ extern int get_dma_residue(unsigned int chan);
|
|||||||
|
|
||||||
#endif /* CONFIG_ISA_DMA_API */
|
#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 */
|
#endif /* __ASM_ARM_DMA_H */
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
#define arch_can_pci_mmap_wc() 1
|
#define arch_can_pci_mmap_wc() 1
|
||||||
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
||||||
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
|
@ -15,8 +15,6 @@
|
|||||||
/* C-SKY shim does not initialize PCI bus */
|
/* C-SKY shim does not initialize PCI bus */
|
||||||
#define pcibios_assign_all_busses() 1
|
#define pcibios_assign_all_busses() 1
|
||||||
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
|
@ -12,8 +12,6 @@
|
|||||||
|
|
||||||
extern unsigned long MAX_DMA_ADDRESS;
|
extern unsigned long MAX_DMA_ADDRESS;
|
||||||
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
|
|
||||||
#define free_dma(x)
|
#define free_dma(x)
|
||||||
|
|
||||||
#endif /* _ASM_IA64_DMA_H */
|
#endif /* _ASM_IA64_DMA_H */
|
||||||
|
@ -6,10 +6,4 @@
|
|||||||
bootmem allocator (but this should do it for this) */
|
bootmem allocator (but this should do it for this) */
|
||||||
#define MAX_DMA_ADDRESS PAGE_OFFSET
|
#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 */
|
#endif /* _M68K_DMA_H */
|
||||||
|
@ -9,10 +9,4 @@
|
|||||||
/* Virtual address corresponding to last available physical memory address. */
|
/* Virtual address corresponding to last available physical memory address. */
|
||||||
#define MAX_DMA_ADDRESS (CONFIG_KERNEL_START + memory_size - 1)
|
#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 */
|
#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 int request_dma(unsigned int dmanr, const char * device_id); /* reserve a DMA channel */
|
||||||
extern void free_dma(unsigned int dmanr); /* release it again */
|
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 */
|
#endif /* _ASM_DMA_H */
|
||||||
|
@ -176,10 +176,4 @@ static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count)
|
|||||||
|
|
||||||
#define free_dma(dmanr)
|
#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 */
|
#endif /* _ASM_DMA_H */
|
||||||
|
@ -340,11 +340,5 @@ extern int request_dma(unsigned int dmanr, const char *device_id);
|
|||||||
/* release it again */
|
/* release it again */
|
||||||
extern void free_dma(unsigned int dmanr);
|
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 /* __KERNEL__ */
|
||||||
#endif /* _ASM_POWERPC_DMA_H */
|
#endif /* _ASM_POWERPC_DMA_H */
|
||||||
|
@ -20,8 +20,6 @@
|
|||||||
|
|
||||||
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
||||||
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
static inline int pci_proc_domain(struct pci_bus *bus)
|
||||||
{
|
{
|
||||||
|
@ -11,10 +11,4 @@
|
|||||||
*/
|
*/
|
||||||
#define MAX_DMA_ADDRESS 0x80000000
|
#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 */
|
#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 int dma_create_sysfs_files(struct dma_channel *, struct dma_info *);
|
||||||
extern void dma_remove_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 */
|
#endif /* __ASM_SH_DMA_H */
|
||||||
|
@ -82,14 +82,6 @@
|
|||||||
#define DMA_BURST64 0x40
|
#define DMA_BURST64 0x40
|
||||||
#define DMA_BURSTBITS 0x7f
|
#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
|
#ifdef CONFIG_SPARC32
|
||||||
struct device;
|
struct device;
|
||||||
|
|
||||||
|
@ -9,8 +9,6 @@
|
|||||||
|
|
||||||
#define pcibios_assign_all_busses() 1
|
#define pcibios_assign_all_busses() 1
|
||||||
|
|
||||||
extern int isa_dma_bridge_buggy;
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI_DOMAINS
|
#ifdef CONFIG_PCI_DOMAINS
|
||||||
static inline int pci_proc_domain(struct pci_bus *bus)
|
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);
|
extern void free_dma(unsigned int dmanr);
|
||||||
#endif
|
#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 */
|
#endif /* _ASM_X86_DMA_H */
|
||||||
|
@ -52,11 +52,4 @@
|
|||||||
extern int request_dma(unsigned int dmanr, const char * device_id);
|
extern int request_dma(unsigned int dmanr, const char * device_id);
|
||||||
extern void free_dma(unsigned int dmanr);
|
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
|
#endif
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
#include <asm/dma.h>
|
#include <linux/isa-dma.h>
|
||||||
#include <linux/comedi/comedidev.h>
|
#include <linux/comedi/comedidev.h>
|
||||||
#include <linux/comedi/comedi_isadma.h>
|
#include <linux/comedi/comedi_isadma.h>
|
||||||
|
|
||||||
|
@ -41,8 +41,10 @@ const char *pci_power_names[] = {
|
|||||||
};
|
};
|
||||||
EXPORT_SYMBOL_GPL(pci_power_names);
|
EXPORT_SYMBOL_GPL(pci_power_names);
|
||||||
|
|
||||||
|
#ifdef CONFIG_X86_32
|
||||||
int isa_dma_bridge_buggy;
|
int isa_dma_bridge_buggy;
|
||||||
EXPORT_SYMBOL(isa_dma_bridge_buggy);
|
EXPORT_SYMBOL(isa_dma_bridge_buggy);
|
||||||
|
#endif
|
||||||
|
|
||||||
int pci_pci_problems;
|
int pci_pci_problems;
|
||||||
EXPORT_SYMBOL(pci_pci_problems);
|
EXPORT_SYMBOL(pci_pci_problems);
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
|
#include <linux/isa-dma.h> /* isa_dma_bridge_buggy */
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/acpi.h>
|
#include <linux/acpi.h>
|
||||||
@ -30,7 +31,6 @@
|
|||||||
#include <linux/pm_runtime.h>
|
#include <linux/pm_runtime.h>
|
||||||
#include <linux/suspend.h>
|
#include <linux/suspend.h>
|
||||||
#include <linux/switchtec.h>
|
#include <linux/switchtec.h>
|
||||||
#include <asm/dma.h> /* isa_dma_bridge_buggy */
|
|
||||||
#include "pci.h"
|
#include "pci.h"
|
||||||
|
|
||||||
static ktime_t fixup_debug_start(struct pci_dev *dev,
|
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_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);
|
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
|
* 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
|
* 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_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_2, quirk_isa_dma_hangs);
|
||||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, 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
|
* 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
|
#undef HAVE_REALLY_SLOW_DMA_CONTROLLER
|
||||||
|
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
|
#include <linux/isa-dma.h>
|
||||||
#include <sound/core.h>
|
#include <sound/core.h>
|
||||||
#include <asm/dma.h>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* snd_dma_program - program an ISA DMA transfer
|
* snd_dma_program - program an ISA DMA transfer
|
||||||
|
Loading…
x
Reference in New Issue
Block a user