Merge branch 'parisc-5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller: "The most important changes in this patch set are: - DMA-related cleanups for parisc with the aim to move anything not required by drivers out of <asm/dma-mapping.h>, by Christoph Hellwig - Switch to memblock_alloc(), by Mike Rapoport - Makefile cleanups by Masahiro Yamada - Switch to bust_spinlocks(), by Sergey Senozhatsky - Improved initial SMP affinity selection for IRQs - Added IPI- and rescheduling interrupts in /proc/interrupts output" * 'parisc-5.1-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (21 commits) parisc: use memblock_alloc() instead of custom get_memblock() parisc: Add constants for various PDC firmware calls parisc: Add constant for PDC_PAT_COMPLEX firmware call parisc: Show machine product number during boot parisc: Add constants for PDC_RELOCATE PDC call parisc: Add PDC_CRASH_PREP PDC function number parisc: Use F_EXTEND() macro in iosapic code parisc: remove the HBA_DATA macro parisc/lba_pci: use container_of in LBA_DEV parisc/dino: use container_of in DINO_DEV parisc: properly type the return value of parisc_walk_tree parisc: properly type the iommu field in struct pci_hba_data parisc: turn GET_IOC into an inline function parisc: move internal implementation details out of <asm/dma-mapping.h> parisc: don't include <asm/cacheflush.h> in <asm/dma-mapping.h> parisc: remove meaningless ccflags-y in arch/parisc/boot/Makefile parisc: replace oops_in_progress manipulation with bust_spinlocks() parisc: Improve initial IRQ to CPU assignment parisc: Count IPI function call interrupts parisc: Show rescheduling interrupts on SMP machines only ...
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
#ifndef _PARISC_DMA_MAPPING_H
|
||||
#define _PARISC_DMA_MAPPING_H
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
/*
|
||||
** We need to support 4 different coherent dma models with one binary:
|
||||
**
|
||||
@@ -28,48 +26,4 @@ static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
|
||||
return hppa_dma_ops;
|
||||
}
|
||||
|
||||
static inline void *
|
||||
parisc_walk_tree(struct device *dev)
|
||||
{
|
||||
struct device *otherdev;
|
||||
if(likely(dev->platform_data != NULL))
|
||||
return dev->platform_data;
|
||||
/* OK, just traverse the bus to find it */
|
||||
for(otherdev = dev->parent; otherdev;
|
||||
otherdev = otherdev->parent) {
|
||||
if(otherdev->platform_data) {
|
||||
dev->platform_data = otherdev->platform_data;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return dev->platform_data;
|
||||
}
|
||||
|
||||
#define GET_IOC(dev) ({ \
|
||||
void *__pdata = parisc_walk_tree(dev); \
|
||||
__pdata ? HBA_DATA(__pdata)->iommu : NULL; \
|
||||
})
|
||||
|
||||
#ifdef CONFIG_IOMMU_CCIO
|
||||
struct parisc_device;
|
||||
struct ioc;
|
||||
void * ccio_get_iommu(const struct parisc_device *dev);
|
||||
int ccio_request_resource(const struct parisc_device *dev,
|
||||
struct resource *res);
|
||||
int ccio_allocate_resource(const struct parisc_device *dev,
|
||||
struct resource *res, unsigned long size,
|
||||
unsigned long min, unsigned long max, unsigned long align);
|
||||
#else /* !CONFIG_IOMMU_CCIO */
|
||||
#define ccio_get_iommu(dev) NULL
|
||||
#define ccio_request_resource(dev, res) insert_resource(&iomem_resource, res)
|
||||
#define ccio_allocate_resource(dev, res, size, min, max, align) \
|
||||
allocate_resource(&iomem_resource, res, size, min, max, \
|
||||
align, NULL, NULL)
|
||||
#endif /* !CONFIG_IOMMU_CCIO */
|
||||
|
||||
#ifdef CONFIG_IOMMU_SBA
|
||||
struct parisc_device;
|
||||
void * sba_get_iommu(struct parisc_device *dev);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -22,6 +22,7 @@ typedef struct {
|
||||
unsigned int irq_stack_usage;
|
||||
#ifdef CONFIG_SMP
|
||||
unsigned int irq_resched_count;
|
||||
unsigned int irq_call_count;
|
||||
#endif
|
||||
unsigned int irq_unaligned_count;
|
||||
unsigned int irq_fpassist_count;
|
||||
|
@@ -56,7 +56,7 @@ struct pci_hba_data {
|
||||
#define DINO_MAX_LMMIO_RESOURCES 3
|
||||
|
||||
unsigned long lmmio_space_offset; /* CPU view - PCI view */
|
||||
void * iommu; /* IOMMU this device is under */
|
||||
struct ioc *iommu; /* IOMMU this device is under */
|
||||
/* REVISIT - spinlock to protect resources? */
|
||||
|
||||
#define HBA_NAME_SIZE 16
|
||||
@@ -66,8 +66,6 @@ struct pci_hba_data {
|
||||
char gmmio_name[HBA_NAME_SIZE];
|
||||
};
|
||||
|
||||
#define HBA_DATA(d) ((struct pci_hba_data *) (d))
|
||||
|
||||
/*
|
||||
** We support 2^16 I/O ports per HBA. These are set up in the form
|
||||
** 0xbbxxxx, where bb is the bus number and xxxx is the I/O port
|
||||
|
@@ -44,6 +44,7 @@ int pdc_model_sysmodel(char *name);
|
||||
int pdc_model_cpuid(unsigned long *cpu_id);
|
||||
int pdc_model_versions(unsigned long *versions, int id);
|
||||
int pdc_model_capabilities(unsigned long *capabilities);
|
||||
int pdc_model_platform_info(char *orig_prod_num, char *current_prod_num, char *serial_no);
|
||||
int pdc_cache_info(struct pdc_cache_info *cache);
|
||||
int pdc_spaceid_bits(unsigned long *space_bits);
|
||||
#ifndef CONFIG_PA20
|
||||
|
@@ -67,6 +67,10 @@
|
||||
#define PDC_PAT_CHASSIS_READ_LOG 1L /* Read Log Entry */
|
||||
|
||||
|
||||
/* PDC PAT COMPLEX */
|
||||
|
||||
#define PDC_PAT_COMPLEX 66L
|
||||
|
||||
/* PDC PAT CPU -- CPU configuration within the protection domain */
|
||||
|
||||
#define PDC_PAT_CPU 67L
|
||||
|
Reference in New Issue
Block a user