Commit 802e66fd authored by Richard Henderson's avatar Richard Henderson

Merge ssh://are/BK/axp-2.6

into heffalump.twiddle.home:/home/rth/work/linux/axp-2.6
parents 77afcd08 f92bf002
...@@ -17,7 +17,7 @@ struct mod_arch_specific ...@@ -17,7 +17,7 @@ struct mod_arch_specific
#define ARCH_SHF_SMALL SHF_ALPHA_GPREL #define ARCH_SHF_SMALL SHF_ALPHA_GPREL
#ifdef MODULE #ifdef MODULE
asm(".section .got,\"aws\",@nobits; .align 3; .previous"); asm(".section .got,\"aws\",@progbits; .align 3; .previous");
#endif #endif
#endif /*_ALPHA_MODULE_H*/ #endif /*_ALPHA_MODULE_H*/
...@@ -85,10 +85,10 @@ extern void *pci_alloc_consistent(struct pci_dev *, size_t, dma_addr_t *); ...@@ -85,10 +85,10 @@ extern void *pci_alloc_consistent(struct pci_dev *, size_t, dma_addr_t *);
extern void pci_free_consistent(struct pci_dev *, size_t, void *, dma_addr_t); extern void pci_free_consistent(struct pci_dev *, size_t, void *, dma_addr_t);
/* Map a single buffer of the indicate size for PCI DMA in streaming /* Map a single buffer of the indicate size for PCI DMA in streaming mode.
mode. The 32-bit PCI bus mastering address to use is returned. The 32-bit PCI bus mastering address to use is returned. Once the device
Once the device is given the dma address, the device owns this memory is given the dma address, the device owns this memory until either
until either pci_unmap_single or pci_dma_sync_single_for_cpu is performed. */ pci_unmap_single or pci_dma_sync_single_for_cpu is performed. */
extern dma_addr_t pci_map_single(struct pci_dev *, void *, size_t, int); extern dma_addr_t pci_map_single(struct pci_dev *, void *, size_t, int);
...@@ -96,6 +96,14 @@ extern dma_addr_t pci_map_single(struct pci_dev *, void *, size_t, int); ...@@ -96,6 +96,14 @@ extern dma_addr_t pci_map_single(struct pci_dev *, void *, size_t, int);
extern dma_addr_t pci_map_page(struct pci_dev *, struct page *, extern dma_addr_t pci_map_page(struct pci_dev *, struct page *,
unsigned long, size_t, int); unsigned long, size_t, int);
/* Test for pci_map_single or pci_map_page having generated an error. */
static inline int
pci_dma_mapping_error(dma_addr_t dma_addr)
{
return dma_addr == 0;
}
/* Unmap a single streaming mode DMA translation. The DMA_ADDR and /* Unmap a single streaming mode DMA translation. The DMA_ADDR and
SIZE must match what was provided for in a previous pci_map_single SIZE must match what was provided for in a previous pci_map_single
call. All other usages are undefined. After this call, reads by call. All other usages are undefined. After this call, reads by
...@@ -153,15 +161,15 @@ extern void pci_unmap_sg(struct pci_dev *, struct scatterlist *, int, int); ...@@ -153,15 +161,15 @@ extern void pci_unmap_sg(struct pci_dev *, struct scatterlist *, int, int);
the buffer. */ the buffer. */
static inline void static inline void
pci_dma_sync_single_for_cpu(struct pci_dev *dev, dma_addr_t dma_addr, long size, pci_dma_sync_single_for_cpu(struct pci_dev *dev, dma_addr_t dma_addr,
int direction) long size, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
static inline void static inline void
pci_dma_sync_single_for_device(struct pci_dev *dev, dma_addr_t dma_addr, long size, pci_dma_sync_single_for_device(struct pci_dev *dev, dma_addr_t dma_addr,
int direction) long size, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
...@@ -171,15 +179,15 @@ pci_dma_sync_single_for_device(struct pci_dev *dev, dma_addr_t dma_addr, long si ...@@ -171,15 +179,15 @@ pci_dma_sync_single_for_device(struct pci_dev *dev, dma_addr_t dma_addr, long si
but for a scatter-gather list, same rules and usage. */ but for a scatter-gather list, same rules and usage. */
static inline void static inline void
pci_dma_sync_sg_for_cpu(struct pci_dev *dev, struct scatterlist *sg, int nents, pci_dma_sync_sg_for_cpu(struct pci_dev *dev, struct scatterlist *sg,
int direction) int nents, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
static inline void static inline void
pci_dma_sync_sg_for_device(struct pci_dev *dev, struct scatterlist *sg, int nents, pci_dma_sync_sg_for_device(struct pci_dev *dev, struct scatterlist *sg,
int direction) int nents, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
...@@ -196,29 +204,32 @@ extern int pci_dma_supported(struct pci_dev *hwdev, u64 mask); ...@@ -196,29 +204,32 @@ extern int pci_dma_supported(struct pci_dev *hwdev, u64 mask);
extern int pci_dac_dma_supported(struct pci_dev *hwdev, u64 mask); extern int pci_dac_dma_supported(struct pci_dev *hwdev, u64 mask);
/* Convert to/from DAC dma address and struct page. */ /* Convert to/from DAC dma address and struct page. */
extern dma64_addr_t pci_dac_page_to_dma(struct pci_dev *, struct page *, unsigned long, int); extern dma64_addr_t pci_dac_page_to_dma(struct pci_dev *, struct page *,
unsigned long, int);
extern struct page *pci_dac_dma_to_page(struct pci_dev *, dma64_addr_t); extern struct page *pci_dac_dma_to_page(struct pci_dev *, dma64_addr_t);
extern unsigned long pci_dac_dma_to_offset(struct pci_dev *, dma64_addr_t); extern unsigned long pci_dac_dma_to_offset(struct pci_dev *, dma64_addr_t);
static inline void static inline void
pci_dac_dma_sync_single_for_cpu(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) pci_dac_dma_sync_single_for_cpu(struct pci_dev *pdev, dma64_addr_t dma_addr,
size_t len, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
static inline void static inline void
pci_dac_dma_sync_single_for_device(struct pci_dev *pdev, dma64_addr_t dma_addr, size_t len, int direction) pci_dac_dma_sync_single_for_device(struct pci_dev *pdev, dma64_addr_t dma_addr,
size_t len, int direction)
{ {
/* Nothing to do. */ /* Nothing to do. */
} }
extern void extern void pcibios_resource_to_bus(struct pci_dev *, struct pci_bus_region *,
pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, struct resource *);
struct resource *res);
#define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index #define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
static inline int pci_name_bus(char *name, struct pci_bus *bus) static inline int
pci_name_bus(char *name, struct pci_bus *bus)
{ {
struct pci_controller *hose = bus->sysdata; struct pci_controller *hose = bus->sysdata;
...@@ -230,7 +241,8 @@ static inline int pci_name_bus(char *name, struct pci_bus *bus) ...@@ -230,7 +241,8 @@ static inline int pci_name_bus(char *name, struct pci_bus *bus)
return 0; return 0;
} }
static inline void pcibios_add_platform_entries(struct pci_dev *dev) static inline void
pcibios_add_platform_entries(struct pci_dev *dev)
{ {
} }
......
...@@ -616,16 +616,16 @@ asmlinkage long sys_rt_sigaction(int sig, ...@@ -616,16 +616,16 @@ asmlinkage long sys_rt_sigaction(int sig,
#endif /* __KERNEL_SYSCALLS__ */ #endif /* __KERNEL_SYSCALLS__ */
/* /* "Conditional" syscalls. What we want is
* "Conditional" syscalls
* __attribute__((weak,alias("sys_ni_syscall")))
* What we want is __attribute__((weak,alias("sys_ni_syscall"))),
* but it doesn't work on all toolchains, so we just do it by hand. but that raises the problem of what type to give the symbol. If we use
* a prototype, it'll conflict with the definition given in this file and
* Note that we do *not* provide a parameter list to avoid others. If we use __typeof, we discover that not all symbols actually
* conflicting with one of the syscall declarations in some have declarations. If we use no prototype, then we get warnings from
* of the relevant header files (including this one). -Wstrict-prototypes. Ho hum. */
*/
#define cond_syscall(x) asmlinkage long x() __attribute__((weak,alias("sys_ni_syscall"))); #define cond_syscall(x) asm(".weak\t" #x "\n" #x " = sys_ni_syscall");
#endif /* _ALPHA_UNISTD_H */ #endif /* _ALPHA_UNISTD_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment