1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ALPHA_AGP_BACKEND_H
3#define _ALPHA_AGP_BACKEND_H 1
4
5typedef	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
20typedef 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
33struct 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