Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
[linux-2.6] / arch / alpha / include / asm / agp_backend.h
1 #ifndef _ALPHA_AGP_BACKEND_H
2 #define _ALPHA_AGP_BACKEND_H 1
3
4 typedef union _alpha_agp_mode {
5         struct {
6                 u32 rate : 3;
7                 u32 reserved0 : 1;
8                 u32 fw : 1;
9                 u32 fourgb : 1;
10                 u32 reserved1 : 2;
11                 u32 enable : 1;
12                 u32 sba : 1;
13                 u32 reserved2 : 14;
14                 u32 rq : 8;
15         } bits;
16         u32 lw;
17 } alpha_agp_mode;
18
19 typedef struct _alpha_agp_info {
20         struct pci_controller *hose;
21         struct {
22                 dma_addr_t bus_base;
23                 unsigned long size;
24                 void *sysdata;
25         } aperture;
26         alpha_agp_mode capability;
27         alpha_agp_mode mode;
28         void *private;
29         struct alpha_agp_ops *ops;
30 } alpha_agp_info;
31
32 struct alpha_agp_ops {
33         int (*setup)(alpha_agp_info *);
34         void (*cleanup)(alpha_agp_info *);
35         int (*configure)(alpha_agp_info *);
36         int (*bind)(alpha_agp_info *, off_t, struct agp_memory *);
37         int (*unbind)(alpha_agp_info *, off_t, struct agp_memory *);
38         unsigned long (*translate)(alpha_agp_info *, dma_addr_t);
39 };
40
41
42 #endif /* _ALPHA_AGP_BACKEND_H */