1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _ALPHA_AGP_BACKEND_H 3 #define _ALPHA_AGP_BACKEND_H 1 4 5 typedef union _alpha_agp_mode { 6 struct { 7 u32 rate : 3; 8 u32 reserved0 : 1; 9 u32 fw : 1; 10 u32 fourgb : 1; 11 u32 reserved1 : 2; 12 u32 enable : 1; 13 u32 sba : 1; 14 u32 reserved2 : 14; 15 u32 rq : 8; 16 } bits; 17 u32 lw; 18 } alpha_agp_mode; 19 20 typedef struct _alpha_agp_info { 21 struct pci_controller *hose; 22 struct { 23 dma_addr_t bus_base; 24 unsigned long size; 25 void *sysdata; 26 } aperture; 27 alpha_agp_mode capability; 28 alpha_agp_mode mode; 29 void *private; 30 struct alpha_agp_ops *ops; 31 } alpha_agp_info; 32 33 struct alpha_agp_ops { 34 int (*setup)(alpha_agp_info *); 35 void (*cleanup)(alpha_agp_info *); 36 int (*configure)(alpha_agp_info *); 37 int (*bind)(alpha_agp_info *, off_t, struct agp_memory *); 38 int (*unbind)(alpha_agp_info *, off_t, struct agp_memory *); 39 unsigned long (*translate)(alpha_agp_info *, dma_addr_t); 40 }; 41 42 43 #endif /* _ALPHA_AGP_BACKEND_H */ 44