11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef _ALPHA_AGP_BACKEND_H 21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define _ALPHA_AGP_BACKEND_H 1 31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef union _alpha_agp_mode { 51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct { 61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 rate : 3; 71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 reserved0 : 1; 81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 fw : 1; 91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 fourgb : 1; 101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 reserved1 : 2; 111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 enable : 1; 121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 sba : 1; 131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 reserved2 : 14; 141da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 rq : 8; 151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } bits; 161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds u32 lw; 171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} alpha_agp_mode; 181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldstypedef struct _alpha_agp_info { 201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct pci_controller *hose; 211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct { 221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds dma_addr_t bus_base; 231da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned long size; 241da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void *sysdata; 251da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds } aperture; 261da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds alpha_agp_mode capability; 271da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds alpha_agp_mode mode; 281da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void *private; 291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds struct alpha_agp_ops *ops; 301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds} alpha_agp_info; 311da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 321da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct alpha_agp_ops { 331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*setup)(alpha_agp_info *); 341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds void (*cleanup)(alpha_agp_info *); 351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*configure)(alpha_agp_info *); 361da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*bind)(alpha_agp_info *, off_t, struct agp_memory *); 371da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds int (*unbind)(alpha_agp_info *, off_t, struct agp_memory *); 381da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds unsigned long (*translate)(alpha_agp_info *, dma_addr_t); 391da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds}; 401da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 411da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds 421da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* _ALPHA_AGP_BACKEND_H */ 43