Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[sfrench/cifs-2.6.git] / include / net / ax88796.h
1 /* include/net/ax88796.h
2  *
3  * Copyright 2005 Simtec Electronics
4  *      Ben Dooks <ben@simtec.co.uk>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10 */
11
12 #ifndef __NET_AX88796_PLAT_H
13 #define __NET_AX88796_PLAT_H
14
15 struct sk_buff;
16 struct net_device;
17 struct platform_device;
18
19 #define AXFLG_HAS_EEPROM                (1<<0)
20 #define AXFLG_MAC_FROMDEV               (1<<1)  /* device already has MAC */
21 #define AXFLG_HAS_93CX6                 (1<<2)  /* use eeprom_93cx6 driver */
22 #define AXFLG_MAC_FROMPLATFORM          (1<<3)  /* MAC given by platform data */
23
24 struct ax_plat_data {
25         unsigned int     flags;
26         unsigned char    wordlength;    /* 1 or 2 */
27         unsigned char    dcr_val;       /* default value for DCR */
28         unsigned char    rcr_val;       /* default value for RCR */
29         unsigned char    gpoc_val;      /* default value for GPOC */
30         u32             *reg_offsets;   /* register offsets */
31         u8              *mac_addr;      /* MAC addr (only used when
32                                            AXFLG_MAC_FROMPLATFORM is used */
33
34         /* uses default ax88796 buffer if set to NULL */
35         void (*block_output)(struct net_device *dev, int count,
36                         const unsigned char *buf, int star_page);
37         void (*block_input)(struct net_device *dev, int count,
38                         struct sk_buff *skb, int ring_offset);
39         /* returns nonzero if a pending interrupt request might by caused by
40          * the ax88786. Handles all interrupts if set to NULL
41          */
42         int (*check_irq)(struct platform_device *pdev);
43 };
44
45 #endif /* __NET_AX88796_PLAT_H */