Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 150830
b: refs/heads/master
c: b77e522
h: refs/heads/master
v: v3
  • Loading branch information
Risto Suominen authored and David S. Miller committed Jun 11, 2009
1 parent 2970276 commit b5e667c
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ef5c89967d50042b29937fb724e057c1aa3c5207
refs/heads/master: b77e5228849fdcd7a5d73beb16b9ad99395236ec
12 changes: 12 additions & 0 deletions trunk/drivers/net/tulip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ config DE2104X
To compile this driver as a module, choose M here. The module will
be called de2104x.

config DE2104X_DSL
int "Descriptor Skip Length in 32 bit longwords"
depends on DE2104X
range 0 31
default 0
help
Setting this value allows to align ring buffer descriptors into their
own cache lines. Value of 4 corresponds to the typical 32 byte line
(the descriptor is 16 bytes). This is necessary on systems that lack
cache coherence, an example is PowerMac 5500. Otherwise 0 is safe.
Default is 0, and range is 0 to 31.

config TULIP
tristate "DECchip Tulip (dc2114x) PCI support"
depends on PCI
Expand Down
13 changes: 12 additions & 1 deletion trunk/drivers/net/tulip/de2104x.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,13 @@ MODULE_PARM_DESC (rx_copybreak, "de2104x Breakpoint at which Rx packets are copi
NETIF_MSG_RX_ERR | \
NETIF_MSG_TX_ERR)

/* Descriptor skip length in 32 bit longwords. */
#ifndef CONFIG_DE2104X_DSL
#define DSL 0
#else
#define DSL CONFIG_DE2104X_DSL
#endif

#define DE_RX_RING_SIZE 64
#define DE_TX_RING_SIZE 64
#define DE_RING_BYTES \
Expand Down Expand Up @@ -153,6 +160,7 @@ enum {
CmdReset = (1 << 0),
CacheAlign16 = 0x00008000,
BurstLen4 = 0x00000400,
DescSkipLen = (DSL << 2),

/* Rx/TxPoll bits */
NormalTxPoll = (1 << 0),
Expand Down Expand Up @@ -246,7 +254,7 @@ static const u32 de_intr_mask =
* Set the programmable burst length to 4 longwords for all:
* DMA errors result without these values. Cache align 16 long.
*/
static const u32 de_bus_mode = CacheAlign16 | BurstLen4;
static const u32 de_bus_mode = CacheAlign16 | BurstLen4 | DescSkipLen;

struct de_srom_media_block {
u8 opts;
Expand All @@ -266,6 +274,9 @@ struct de_desc {
__le32 opts2;
__le32 addr1;
__le32 addr2;
#if DSL
__le32 skip[DSL];
#endif
};

struct media_info {
Expand Down

0 comments on commit b5e667c

Please sign in to comment.