diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:45:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:45:48 -0400 |
commit | 95dfec6ae1cb8c03406aac612a5642cbddb676b3 (patch) | |
tree | 978de715f45de94a8e79eb08a08ca5fb9dfd9dea /drivers/net/sfc/xenpack.h | |
parent | ae3a0064e6d69068b1c9fd075095da062430bda9 (diff) | |
parent | 159131149c2f56c1da5ae5e23ab9d5acef4916d1 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (53 commits)
tcp: Overflow bug in Vegas
[IPv4] UFO: prevent generation of chained skb destined to UFO device
iwlwifi: move the selects to the tristate drivers
ipv4: annotate a few functions __init in ipconfig.c
atm: ambassador: vcc_sf semaphore to mutex
MAINTAINERS: The socketcan-core list is subscribers-only.
netfilter: nf_conntrack: padding breaks conntrack hash on ARM
ipv4: Update MTU to all related cache entries in ip_rt_frag_needed()
sch_sfq: use del_timer_sync() in sfq_destroy()
net: Add compat support for getsockopt (MCAST_MSFILTER)
net: Several cleanups for the setsockopt compat support.
ipvs: fix oops in backup for fwmark conn templates
bridge: kernel panic when unloading bridge module
bridge: fix error handling in br_add_if()
netfilter: {nfnetlink,ip,ip6}_queue: fix skb_over_panic when enlarging packets
netfilter: x_tables: fix net namespace leak when reading /proc/net/xxx_tables_names
netfilter: xt_TCPOPTSTRIP: signed tcphoff for ipv6_skip_exthdr() retval
tcp: Limit cwnd growth when deferring for GSO
tcp: Allow send-limited cwnd to grow up to max_burst when gso disabled
[netdrvr] gianfar: Determine TBIPA value dynamically
...
Diffstat (limited to 'drivers/net/sfc/xenpack.h')
-rw-r--r-- | drivers/net/sfc/xenpack.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/net/sfc/xenpack.h b/drivers/net/sfc/xenpack.h new file mode 100644 index 000000000000..b0d1f225b70a --- /dev/null +++ b/drivers/net/sfc/xenpack.h | |||
@@ -0,0 +1,62 @@ | |||
1 | /**************************************************************************** | ||
2 | * Driver for Solarflare Solarstorm network controllers and boards | ||
3 | * Copyright 2006 Solarflare Communications Inc. | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms of the GNU General Public License version 2 as published | ||
7 | * by the Free Software Foundation, incorporated herein by reference. | ||
8 | */ | ||
9 | |||
10 | #ifndef EFX_XENPACK_H | ||
11 | #define EFX_XENPACK_H | ||
12 | |||
13 | /* Exported functions from Xenpack standard PHY control */ | ||
14 | |||
15 | #include "mdio_10g.h" | ||
16 | |||
17 | /****************************************************************************/ | ||
18 | /* XENPACK MDIO register extensions */ | ||
19 | #define MDIO_XP_LASI_RX_CTRL (0x9000) | ||
20 | #define MDIO_XP_LASI_TX_CTRL (0x9001) | ||
21 | #define MDIO_XP_LASI_CTRL (0x9002) | ||
22 | #define MDIO_XP_LASI_RX_STAT (0x9003) | ||
23 | #define MDIO_XP_LASI_TX_STAT (0x9004) | ||
24 | #define MDIO_XP_LASI_STAT (0x9005) | ||
25 | |||
26 | /* Control/Status bits */ | ||
27 | #define XP_LASI_LS_ALARM (1 << 0) | ||
28 | #define XP_LASI_TX_ALARM (1 << 1) | ||
29 | #define XP_LASI_RX_ALARM (1 << 2) | ||
30 | /* These two are Quake vendor extensions to the standard XENPACK defines */ | ||
31 | #define XP_LASI_LS_INTB (1 << 3) | ||
32 | #define XP_LASI_TEST (1 << 7) | ||
33 | |||
34 | /* Enable LASI interrupts for PHY */ | ||
35 | static inline void xenpack_enable_lasi_irqs(struct efx_nic *efx) | ||
36 | { | ||
37 | int reg; | ||
38 | int phy_id = efx->mii.phy_id; | ||
39 | /* Read to clear LASI status register */ | ||
40 | reg = mdio_clause45_read(efx, phy_id, MDIO_MMD_PMAPMD, | ||
41 | MDIO_XP_LASI_STAT); | ||
42 | |||
43 | mdio_clause45_write(efx, phy_id, MDIO_MMD_PMAPMD, | ||
44 | MDIO_XP_LASI_CTRL, XP_LASI_LS_ALARM); | ||
45 | } | ||
46 | |||
47 | /* Read the LASI interrupt status to clear the interrupt. */ | ||
48 | static inline int xenpack_clear_lasi_irqs(struct efx_nic *efx) | ||
49 | { | ||
50 | /* Read to clear link status alarm */ | ||
51 | return mdio_clause45_read(efx, efx->mii.phy_id, | ||
52 | MDIO_MMD_PMAPMD, MDIO_XP_LASI_STAT); | ||
53 | } | ||
54 | |||
55 | /* Turn off LASI interrupts */ | ||
56 | static inline void xenpack_disable_lasi_irqs(struct efx_nic *efx) | ||
57 | { | ||
58 | mdio_clause45_write(efx, efx->mii.phy_id, MDIO_MMD_PMAPMD, | ||
59 | MDIO_XP_LASI_CTRL, 0); | ||
60 | } | ||
61 | |||
62 | #endif /* EFX_XENPACK_H */ | ||