Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38538
b: refs/heads/master
c: 1790cf9
h: refs/heads/master
v: v3
  • Loading branch information
Kyle McMartin authored and Matthew Wilcox committed Oct 4, 2006
1 parent 6c98312 commit 29ca77b
Show file tree
Hide file tree
Showing 6 changed files with 154 additions and 202 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b0eecc4da9c0a5261711e0d83280fd5d1e3db742
refs/heads/master: 1790cf9111f61d360d861901b97eba4de3b5414c
2 changes: 1 addition & 1 deletion trunk/drivers/parisc/iosapic.c
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
#include <asm/superio.h>
#endif

#include <asm/iosapic.h>
#include <asm/ropes.h>
#include "./iosapic_private.h"

#define MODULE_NAME "iosapic"
Expand Down
40 changes: 1 addition & 39 deletions trunk/drivers/parisc/lba_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@
#include <asm/page.h>
#include <asm/system.h>

#include <asm/ropes.h>
#include <asm/hardware.h> /* for register_parisc_driver() stuff */
#include <asm/parisc-device.h>
#include <asm/iosapic.h> /* for iosapic_register() */
#include <asm/io.h> /* read/write stuff */

#undef DEBUG_LBA /* general stuff */
Expand Down Expand Up @@ -169,44 +169,6 @@
#define LBA_PORT_BASE (PCI_F_EXTEND | 0xfee00000UL)
static void __iomem *astro_iop_base __read_mostly;

#define ELROY_HVERS 0x782
#define MERCURY_HVERS 0x783
#define QUICKSILVER_HVERS 0x784

static inline int IS_ELROY(struct parisc_device *d)
{
return (d->id.hversion == ELROY_HVERS);
}

static inline int IS_MERCURY(struct parisc_device *d)
{
return (d->id.hversion == MERCURY_HVERS);
}

static inline int IS_QUICKSILVER(struct parisc_device *d)
{
return (d->id.hversion == QUICKSILVER_HVERS);
}


/*
** lba_device: Per instance Elroy data structure
*/
struct lba_device {
struct pci_hba_data hba;

spinlock_t lba_lock;
void *iosapic_obj;

#ifdef CONFIG_64BIT
void __iomem * iop_base; /* PA_VIEW - for IO port accessor funcs */
#endif

int flags; /* state/functionality enabled */
int hw_rev; /* HW revision of chip */
};


static u32 lba_t32;

/* lba flags */
Expand Down
109 changes: 1 addition & 108 deletions trunk/drivers/parisc/sba_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include <linux/proc_fs.h>
#include <linux/seq_file.h>

#include <asm/ropes.h>
#include <asm/mckinley.h> /* for proc_mckinley_root */
#include <asm/runway.h> /* for proc_runway_root */
#include <asm/pdc.h> /* for PDC_MODEL_* */
Expand All @@ -46,11 +47,6 @@

#define MODULE_NAME "SBA"

#ifdef CONFIG_PROC_FS
/* depends on proc fs support. But costs CPU performance */
#undef SBA_COLLECT_STATS
#endif

/*
** The number of debug flags is a clue - this code is fragile.
** Don't even think about messing with it unless you have
Expand Down Expand Up @@ -89,46 +85,13 @@
#define DBG_RES(x...)
#endif

#if defined(CONFIG_64BIT)
/* "low end" PA8800 machines use ZX1 chipset: PAT PDC and only run 64-bit */
#define ZX1_SUPPORT
#endif

#define SBA_INLINE __inline__


/*
** The number of pdir entries to "free" before issueing
** a read to PCOM register to flush out PCOM writes.
** Interacts with allocation granularity (ie 4 or 8 entries
** allocated and free'd/purged at a time might make this
** less interesting).
*/
#define DELAYED_RESOURCE_CNT 16

#define DEFAULT_DMA_HINT_REG 0

#define ASTRO_RUNWAY_PORT 0x582
#define IKE_MERCED_PORT 0x803
#define REO_MERCED_PORT 0x804
#define REOG_MERCED_PORT 0x805
#define PLUTO_MCKINLEY_PORT 0x880

#define SBA_FUNC_ID 0x0000 /* function id */
#define SBA_FCLASS 0x0008 /* function class, bist, header, rev... */

static inline int IS_ASTRO(struct parisc_device *d) {
return d->id.hversion == ASTRO_RUNWAY_PORT;
}

static inline int IS_IKE(struct parisc_device *d) {
return d->id.hversion == IKE_MERCED_PORT;
}

static inline int IS_PLUTO(struct parisc_device *d) {
return d->id.hversion == PLUTO_MCKINLEY_PORT;
}

#define SBA_FUNC_SIZE 4096 /* SBA configuration function reg set */

#define ASTRO_IOC_OFFSET (32 * SBA_FUNC_SIZE)
Expand All @@ -145,10 +108,6 @@ static inline int IS_PLUTO(struct parisc_device *d) {
#define IOC_CTRL_D4 (1 << 11) /* Disable 4-byte coalescing */
#define IOC_CTRL_DD (1 << 13) /* Disable distr. LMMIO range coalescing */

#define MAX_IOC 2 /* per Ike. Pluto/Astro only have 1. */

#define ROPES_PER_IOC 8 /* per Ike half or Pluto/Astro */


/*
** Offsets into MBIB (Function 0 on Ike and hopefully Astro)
Expand Down Expand Up @@ -196,9 +155,6 @@ static inline int IS_PLUTO(struct parisc_device *d) {
#define IOC_TCNFG 0x318
#define IOC_PDIR_BASE 0x320

/* AGP GART driver looks for this */
#define SBA_IOMMU_COOKIE 0x0000badbadc0ffeeUL


/*
** IOC supports 4/8/16/64KB page sizes (see TCNFG register)
Expand Down Expand Up @@ -228,69 +184,6 @@ static inline int IS_PLUTO(struct parisc_device *d) {
#define SBA_PERF_CNT2 0x208
#define SBA_PERF_CNT3 0x210


struct ioc {
void __iomem *ioc_hpa; /* I/O MMU base address */
char *res_map; /* resource map, bit == pdir entry */
u64 *pdir_base; /* physical base address */
unsigned long ibase; /* pdir IOV Space base - shared w/lba_pci */
unsigned long imask; /* pdir IOV Space mask - shared w/lba_pci */
#ifdef ZX1_SUPPORT
unsigned long iovp_mask; /* help convert IOVA to IOVP */
#endif
unsigned long *res_hint; /* next avail IOVP - circular search */
spinlock_t res_lock;
unsigned int res_bitshift; /* from the LEFT! */
unsigned int res_size; /* size of resource map in bytes */
#ifdef SBA_HINT_SUPPORT
/* FIXME : DMA HINTs not used */
unsigned long hint_mask_pdir; /* bits used for DMA hints */
unsigned int hint_shift_pdir;
#endif
#if DELAYED_RESOURCE_CNT > 0
int saved_cnt;
struct sba_dma_pair {
dma_addr_t iova;
size_t size;
} saved[DELAYED_RESOURCE_CNT];
#endif

#ifdef SBA_COLLECT_STATS
#define SBA_SEARCH_SAMPLE 0x100
unsigned long avg_search[SBA_SEARCH_SAMPLE];
unsigned long avg_idx; /* current index into avg_search */
unsigned long used_pages;
unsigned long msingle_calls;
unsigned long msingle_pages;
unsigned long msg_calls;
unsigned long msg_pages;
unsigned long usingle_calls;
unsigned long usingle_pages;
unsigned long usg_calls;
unsigned long usg_pages;
#endif

/* STUFF We don't need in performance path */
unsigned int pdir_size; /* in bytes, determined by IOV Space size */
};

struct sba_device {
struct sba_device *next; /* list of SBA's in system */
struct parisc_device *dev; /* dev found in bus walk */
const char *name;
void __iomem *sba_hpa; /* base address */
spinlock_t sba_lock;
unsigned int flags; /* state/functionality enabled */
unsigned int hw_rev; /* HW revision of chip */

struct resource chip_resv; /* MMIO reserved for chip */
struct resource iommu_resv; /* MMIO reserved for iommu */

unsigned int num_ioc; /* number of on-board IOC's */
struct ioc ioc[MAX_IOC];
};


static struct sba_device *sba_list;

static unsigned long ioc_needs_fdc = 0;
Expand Down
53 changes: 0 additions & 53 deletions trunk/include/asm-parisc/iosapic.h

This file was deleted.

Loading

0 comments on commit 29ca77b

Please sign in to comment.