Commit c0b775bb authored by Richard Henderson's avatar Richard Henderson Committed by Richard Henderson

[ALPHA] AGP infrastructure for AGP implemented in Alpha corelogic

(Titan / Marvel), Kconfig and headers.

From Jeff Wiedemeier.
parent 1afaccae
...@@ -303,6 +303,11 @@ config PCI ...@@ -303,6 +303,11 @@ config PCI
information about which PCI hardware does work under Linux and which information about which PCI hardware does work under Linux and which
doesn't. doesn't.
config ALPHA_CORE_AGP
bool
depends on ALPHA_GENERIC || ALPHA_TITAN || ALPHA_MARVEL
default y
config ALPHA_NONAME config ALPHA_NONAME
bool bool
depends on ALPHA_BOOK1 || ALPHA_NONAME_CH depends on ALPHA_BOOK1 || ALPHA_NONAME_CH
......
#ifndef AGP_H #ifndef AGP_H
#define AGP_H 1 #define AGP_H 1
#include <asm/io.h>
/* dummy for now */ /* dummy for now */
#define map_page_into_agp(page) #define map_page_into_agp(page)
......
#ifndef _ALPHA_AGP_BACKEND_H
#define _ALPHA_AGP_BACKEND_H 1
typedef union _alpha_agp_mode {
struct {
u32 rate : 3;
u32 reserved0 : 1;
u32 fw : 1;
u32 fourgb : 1;
u32 reserved1 : 2;
u32 enable : 1;
u32 sba : 1;
u32 reserved2 : 14;
u32 rq : 8;
} bits;
u32 lw;
} alpha_agp_mode;
typedef struct _alpha_agp_info {
enum chipset_type type;
struct pci_controller *hose;
struct {
dma_addr_t bus_base;
unsigned long size;
void *sysdata;
} aperture;
alpha_agp_mode capability;
alpha_agp_mode mode;
void *private;
struct alpha_agp_ops *ops;
} alpha_agp_info;
struct alpha_agp_ops {
int (*setup)(alpha_agp_info *);
void (*cleanup)(alpha_agp_info *);
int (*configure)(alpha_agp_info *);
int (*bind)(alpha_agp_info *, off_t, agp_memory *);
int (*unbind)(alpha_agp_info *, off_t, agp_memory *);
unsigned long (*translate)(alpha_agp_info *, dma_addr_t);
};
#endif /* _ALPHA_AGP_BACKEND_H */
...@@ -22,6 +22,7 @@ struct linux_hose_info; ...@@ -22,6 +22,7 @@ struct linux_hose_info;
struct pci_dev; struct pci_dev;
struct pci_ops; struct pci_ops;
struct pci_controller; struct pci_controller;
struct _alpha_agp_info;
struct alpha_machine_vector struct alpha_machine_vector
{ {
...@@ -91,6 +92,8 @@ struct alpha_machine_vector ...@@ -91,6 +92,8 @@ struct alpha_machine_vector
int (*pci_map_irq)(struct pci_dev *, u8, u8); int (*pci_map_irq)(struct pci_dev *, u8, u8);
struct pci_ops *pci_ops; struct pci_ops *pci_ops;
struct _alpha_agp_info *(*agp_info)(void);
const char *vector_name; const char *vector_name;
/* NUMA information */ /* NUMA information */
......
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