mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 10:19:47 +00:00
![Michael Karcher](/assets/img/avatar_default.png)
To be able to tell the ax88796 driver whether it is sensible to enter the 8390 interrupt handler, an "is this interrupt caused by the 88796" callback has been added to the ax_plat_data structure (with NULL being compatible to the previous behaviour). Signed-off-by: Michael Karcher <kernel@mkarcher.dialup.fu-berlin.de> Signed-off-by: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
45 lines
1.5 KiB
C
45 lines
1.5 KiB
C
/* include/net/ax88796.h
|
|
*
|
|
* Copyright 2005 Simtec Electronics
|
|
* Ben Dooks <ben@simtec.co.uk>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
*/
|
|
|
|
#ifndef __NET_AX88796_PLAT_H
|
|
#define __NET_AX88796_PLAT_H
|
|
|
|
struct sk_buff;
|
|
struct net_device;
|
|
struct platform_device;
|
|
|
|
#define AXFLG_HAS_EEPROM (1<<0)
|
|
#define AXFLG_MAC_FROMDEV (1<<1) /* device already has MAC */
|
|
#define AXFLG_HAS_93CX6 (1<<2) /* use eeprom_93cx6 driver */
|
|
#define AXFLG_MAC_FROMPLATFORM (1<<3) /* MAC given by platform data */
|
|
|
|
struct ax_plat_data {
|
|
unsigned int flags;
|
|
unsigned char wordlength; /* 1 or 2 */
|
|
unsigned char dcr_val; /* default value for DCR */
|
|
unsigned char rcr_val; /* default value for RCR */
|
|
unsigned char gpoc_val; /* default value for GPOC */
|
|
u32 *reg_offsets; /* register offsets */
|
|
u8 *mac_addr; /* MAC addr (only used when
|
|
AXFLG_MAC_FROMPLATFORM is used */
|
|
|
|
/* uses default ax88796 buffer if set to NULL */
|
|
void (*block_output)(struct net_device *dev, int count,
|
|
const unsigned char *buf, int star_page);
|
|
void (*block_input)(struct net_device *dev, int count,
|
|
struct sk_buff *skb, int ring_offset);
|
|
/* returns nonzero if a pending interrupt request might by caused by
|
|
* the ax88786. Handles all interrupts if set to NULL
|
|
*/
|
|
int (*check_irq)(struct platform_device *pdev);
|
|
};
|
|
|
|
#endif /* __NET_AX88796_PLAT_H */
|