diff options
Diffstat (limited to 'drivers/net/tulip/de2104x.c')
-rw-r--r-- | drivers/net/tulip/de2104x.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/net/tulip/de2104x.c b/drivers/net/tulip/de2104x.c index d4c5ecc51f77..e7609a05032d 100644 --- a/drivers/net/tulip/de2104x.c +++ b/drivers/net/tulip/de2104x.c | |||
@@ -82,6 +82,13 @@ MODULE_PARM_DESC (rx_copybreak, "de2104x Breakpoint at which Rx packets are copi | |||
82 | NETIF_MSG_RX_ERR | \ | 82 | NETIF_MSG_RX_ERR | \ |
83 | NETIF_MSG_TX_ERR) | 83 | NETIF_MSG_TX_ERR) |
84 | 84 | ||
85 | /* Descriptor skip length in 32 bit longwords. */ | ||
86 | #ifndef CONFIG_DE2104X_DSL | ||
87 | #define DSL 0 | ||
88 | #else | ||
89 | #define DSL CONFIG_DE2104X_DSL | ||
90 | #endif | ||
91 | |||
85 | #define DE_RX_RING_SIZE 64 | 92 | #define DE_RX_RING_SIZE 64 |
86 | #define DE_TX_RING_SIZE 64 | 93 | #define DE_TX_RING_SIZE 64 |
87 | #define DE_RING_BYTES \ | 94 | #define DE_RING_BYTES \ |
@@ -153,6 +160,7 @@ enum { | |||
153 | CmdReset = (1 << 0), | 160 | CmdReset = (1 << 0), |
154 | CacheAlign16 = 0x00008000, | 161 | CacheAlign16 = 0x00008000, |
155 | BurstLen4 = 0x00000400, | 162 | BurstLen4 = 0x00000400, |
163 | DescSkipLen = (DSL << 2), | ||
156 | 164 | ||
157 | /* Rx/TxPoll bits */ | 165 | /* Rx/TxPoll bits */ |
158 | NormalTxPoll = (1 << 0), | 166 | NormalTxPoll = (1 << 0), |
@@ -246,7 +254,7 @@ static const u32 de_intr_mask = | |||
246 | * Set the programmable burst length to 4 longwords for all: | 254 | * Set the programmable burst length to 4 longwords for all: |
247 | * DMA errors result without these values. Cache align 16 long. | 255 | * DMA errors result without these values. Cache align 16 long. |
248 | */ | 256 | */ |
249 | static const u32 de_bus_mode = CacheAlign16 | BurstLen4; | 257 | static const u32 de_bus_mode = CacheAlign16 | BurstLen4 | DescSkipLen; |
250 | 258 | ||
251 | struct de_srom_media_block { | 259 | struct de_srom_media_block { |
252 | u8 opts; | 260 | u8 opts; |
@@ -266,6 +274,9 @@ struct de_desc { | |||
266 | __le32 opts2; | 274 | __le32 opts2; |
267 | __le32 addr1; | 275 | __le32 addr1; |
268 | __le32 addr2; | 276 | __le32 addr2; |
277 | #if DSL | ||
278 | __le32 skip[DSL]; | ||
279 | #endif | ||
269 | }; | 280 | }; |
270 | 281 | ||
271 | struct media_info { | 282 | struct media_info { |