@@ -37,18 +37,16 @@ void msgdma_start_rxdma(struct altera_tse_private *priv)
37
37
void msgdma_reset (struct altera_tse_private * priv )
38
38
{
39
39
int counter ;
40
- struct msgdma_csr * txcsr =
41
- (struct msgdma_csr * )priv -> tx_dma_csr ;
42
- struct msgdma_csr * rxcsr =
43
- (struct msgdma_csr * )priv -> rx_dma_csr ;
44
40
45
41
/* Reset Rx mSGDMA */
46
- iowrite32 (MSGDMA_CSR_STAT_MASK , & rxcsr -> status );
47
- iowrite32 (MSGDMA_CSR_CTL_RESET , & rxcsr -> control );
42
+ csrwr32 (MSGDMA_CSR_STAT_MASK , priv -> rx_dma_csr ,
43
+ msgdma_csroffs (status ));
44
+ csrwr32 (MSGDMA_CSR_CTL_RESET , priv -> rx_dma_csr ,
45
+ msgdma_csroffs (control ));
48
46
49
47
counter = 0 ;
50
48
while (counter ++ < ALTERA_TSE_SW_RESET_WATCHDOG_CNTR ) {
51
- if (tse_bit_is_clear (& rxcsr -> status ,
49
+ if (tse_bit_is_clear (priv -> rx_dma_csr , msgdma_csroffs ( status ) ,
52
50
MSGDMA_CSR_STAT_RESETTING ))
53
51
break ;
54
52
udelay (1 );
@@ -59,15 +57,18 @@ void msgdma_reset(struct altera_tse_private *priv)
59
57
"TSE Rx mSGDMA resetting bit never cleared!\n" );
60
58
61
59
/* clear all status bits */
62
- iowrite32 (MSGDMA_CSR_STAT_MASK , & rxcsr -> status );
60
+ csrwr32 (MSGDMA_CSR_STAT_MASK , priv -> rx_dma_csr , msgdma_csroffs ( status ) );
63
61
64
62
/* Reset Tx mSGDMA */
65
- iowrite32 (MSGDMA_CSR_STAT_MASK , & txcsr -> status );
66
- iowrite32 (MSGDMA_CSR_CTL_RESET , & txcsr -> control );
63
+ csrwr32 (MSGDMA_CSR_STAT_MASK , priv -> tx_dma_csr ,
64
+ msgdma_csroffs (status ));
65
+
66
+ csrwr32 (MSGDMA_CSR_CTL_RESET , priv -> tx_dma_csr ,
67
+ msgdma_csroffs (control ));
67
68
68
69
counter = 0 ;
69
70
while (counter ++ < ALTERA_TSE_SW_RESET_WATCHDOG_CNTR ) {
70
- if (tse_bit_is_clear (& txcsr -> status ,
71
+ if (tse_bit_is_clear (priv -> tx_dma_csr , msgdma_csroffs ( status ) ,
71
72
MSGDMA_CSR_STAT_RESETTING ))
72
73
break ;
73
74
udelay (1 );
@@ -78,58 +79,58 @@ void msgdma_reset(struct altera_tse_private *priv)
78
79
"TSE Tx mSGDMA resetting bit never cleared!\n" );
79
80
80
81
/* clear all status bits */
81
- iowrite32 (MSGDMA_CSR_STAT_MASK , & txcsr -> status );
82
+ csrwr32 (MSGDMA_CSR_STAT_MASK , priv -> tx_dma_csr , msgdma_csroffs ( status ) );
82
83
}
83
84
84
85
void msgdma_disable_rxirq (struct altera_tse_private * priv )
85
86
{
86
- struct msgdma_csr * csr = priv -> rx_dma_csr ;
87
- tse_clear_bit ( & csr -> control , MSGDMA_CSR_CTL_GLOBAL_INTR );
87
+ tse_clear_bit ( priv -> rx_dma_csr , msgdma_csroffs ( control ),
88
+ MSGDMA_CSR_CTL_GLOBAL_INTR );
88
89
}
89
90
90
91
void msgdma_enable_rxirq (struct altera_tse_private * priv )
91
92
{
92
- struct msgdma_csr * csr = priv -> rx_dma_csr ;
93
- tse_set_bit ( & csr -> control , MSGDMA_CSR_CTL_GLOBAL_INTR );
93
+ tse_set_bit ( priv -> rx_dma_csr , msgdma_csroffs ( control ),
94
+ MSGDMA_CSR_CTL_GLOBAL_INTR );
94
95
}
95
96
96
97
void msgdma_disable_txirq (struct altera_tse_private * priv )
97
98
{
98
- struct msgdma_csr * csr = priv -> tx_dma_csr ;
99
- tse_clear_bit ( & csr -> control , MSGDMA_CSR_CTL_GLOBAL_INTR );
99
+ tse_clear_bit ( priv -> tx_dma_csr , msgdma_csroffs ( control ),
100
+ MSGDMA_CSR_CTL_GLOBAL_INTR );
100
101
}
101
102
102
103
void msgdma_enable_txirq (struct altera_tse_private * priv )
103
104
{
104
- struct msgdma_csr * csr = priv -> tx_dma_csr ;
105
- tse_set_bit ( & csr -> control , MSGDMA_CSR_CTL_GLOBAL_INTR );
105
+ tse_set_bit ( priv -> tx_dma_csr , msgdma_csroffs ( control ),
106
+ MSGDMA_CSR_CTL_GLOBAL_INTR );
106
107
}
107
108
108
109
void msgdma_clear_rxirq (struct altera_tse_private * priv )
109
110
{
110
- struct msgdma_csr * csr = priv -> rx_dma_csr ;
111
- iowrite32 (MSGDMA_CSR_STAT_IRQ , & csr -> status );
111
+ csrwr32 (MSGDMA_CSR_STAT_IRQ , priv -> rx_dma_csr , msgdma_csroffs (status ));
112
112
}
113
113
114
114
void msgdma_clear_txirq (struct altera_tse_private * priv )
115
115
{
116
- struct msgdma_csr * csr = priv -> tx_dma_csr ;
117
- iowrite32 (MSGDMA_CSR_STAT_IRQ , & csr -> status );
116
+ csrwr32 (MSGDMA_CSR_STAT_IRQ , priv -> tx_dma_csr , msgdma_csroffs (status ));
118
117
}
119
118
120
119
/* return 0 to indicate transmit is pending */
121
120
int msgdma_tx_buffer (struct altera_tse_private * priv , struct tse_buffer * buffer )
122
121
{
123
- struct msgdma_extended_desc * desc = priv -> tx_dma_desc ;
124
-
125
- iowrite32 (lower_32_bits (buffer -> dma_addr ), & desc -> read_addr_lo );
126
- iowrite32 (upper_32_bits (buffer -> dma_addr ), & desc -> read_addr_hi );
127
- iowrite32 (0 , & desc -> write_addr_lo );
128
- iowrite32 (0 , & desc -> write_addr_hi );
129
- iowrite32 (buffer -> len , & desc -> len );
130
- iowrite32 (0 , & desc -> burst_seq_num );
131
- iowrite32 (MSGDMA_DESC_TX_STRIDE , & desc -> stride );
132
- iowrite32 (MSGDMA_DESC_CTL_TX_SINGLE , & desc -> control );
122
+ csrwr32 (lower_32_bits (buffer -> dma_addr ), priv -> tx_dma_desc ,
123
+ msgdma_descroffs (read_addr_lo ));
124
+ csrwr32 (upper_32_bits (buffer -> dma_addr ), priv -> tx_dma_desc ,
125
+ msgdma_descroffs (read_addr_hi ));
126
+ csrwr32 (0 , priv -> tx_dma_desc , msgdma_descroffs (write_addr_lo ));
127
+ csrwr32 (0 , priv -> tx_dma_desc , msgdma_descroffs (write_addr_hi ));
128
+ csrwr32 (buffer -> len , priv -> tx_dma_desc , msgdma_descroffs (len ));
129
+ csrwr32 (0 , priv -> tx_dma_desc , msgdma_descroffs (burst_seq_num ));
130
+ csrwr32 (MSGDMA_DESC_TX_STRIDE , priv -> tx_dma_desc ,
131
+ msgdma_descroffs (stride ));
132
+ csrwr32 (MSGDMA_DESC_CTL_TX_SINGLE , priv -> tx_dma_desc ,
133
+ msgdma_descroffs (control ));
133
134
return 0 ;
134
135
}
135
136
@@ -138,17 +139,16 @@ u32 msgdma_tx_completions(struct altera_tse_private *priv)
138
139
u32 ready = 0 ;
139
140
u32 inuse ;
140
141
u32 status ;
141
- struct msgdma_csr * txcsr =
142
- (struct msgdma_csr * )priv -> tx_dma_csr ;
143
142
144
143
/* Get number of sent descriptors */
145
- inuse = ioread32 (& txcsr -> rw_fill_level ) & 0xffff ;
144
+ inuse = csrrd32 (priv -> tx_dma_csr , msgdma_csroffs (rw_fill_level ))
145
+ & 0xffff ;
146
146
147
147
if (inuse ) { /* Tx FIFO is not empty */
148
148
ready = priv -> tx_prod - priv -> tx_cons - inuse - 1 ;
149
149
} else {
150
150
/* Check for buffered last packet */
151
- status = ioread32 ( & txcsr -> status );
151
+ status = csrrd32 ( priv -> tx_dma_csr , msgdma_csroffs ( status ) );
152
152
if (status & MSGDMA_CSR_STAT_BUSY )
153
153
ready = priv -> tx_prod - priv -> tx_cons - 1 ;
154
154
else
@@ -162,7 +162,6 @@ u32 msgdma_tx_completions(struct altera_tse_private *priv)
162
162
void msgdma_add_rx_desc (struct altera_tse_private * priv ,
163
163
struct tse_buffer * rxbuffer )
164
164
{
165
- struct msgdma_extended_desc * desc = priv -> rx_dma_desc ;
166
165
u32 len = priv -> rx_dma_buf_sz ;
167
166
dma_addr_t dma_addr = rxbuffer -> dma_addr ;
168
167
u32 control = (MSGDMA_DESC_CTL_END_ON_EOP
@@ -172,14 +171,16 @@ void msgdma_add_rx_desc(struct altera_tse_private *priv,
172
171
| MSGDMA_DESC_CTL_TR_ERR_IRQ
173
172
| MSGDMA_DESC_CTL_GO );
174
173
175
- iowrite32 (0 , & desc -> read_addr_lo );
176
- iowrite32 (0 , & desc -> read_addr_hi );
177
- iowrite32 (lower_32_bits (dma_addr ), & desc -> write_addr_lo );
178
- iowrite32 (upper_32_bits (dma_addr ), & desc -> write_addr_hi );
179
- iowrite32 (len , & desc -> len );
180
- iowrite32 (0 , & desc -> burst_seq_num );
181
- iowrite32 (0x00010001 , & desc -> stride );
182
- iowrite32 (control , & desc -> control );
174
+ csrwr32 (0 , priv -> rx_dma_desc , msgdma_descroffs (read_addr_lo ));
175
+ csrwr32 (0 , priv -> rx_dma_desc , msgdma_descroffs (read_addr_hi ));
176
+ csrwr32 (lower_32_bits (dma_addr ), priv -> rx_dma_desc ,
177
+ msgdma_descroffs (write_addr_lo ));
178
+ csrwr32 (upper_32_bits (dma_addr ), priv -> rx_dma_desc ,
179
+ msgdma_descroffs (write_addr_hi ));
180
+ csrwr32 (len , priv -> rx_dma_desc , msgdma_descroffs (len ));
181
+ csrwr32 (0 , priv -> rx_dma_desc , msgdma_descroffs (burst_seq_num ));
182
+ csrwr32 (0x00010001 , priv -> rx_dma_desc , msgdma_descroffs (stride ));
183
+ csrwr32 (control , priv -> rx_dma_desc , msgdma_descroffs (control ));
183
184
}
184
185
185
186
/* status is returned on upper 16 bits,
@@ -190,14 +191,13 @@ u32 msgdma_rx_status(struct altera_tse_private *priv)
190
191
u32 rxstatus = 0 ;
191
192
u32 pktlength ;
192
193
u32 pktstatus ;
193
- struct msgdma_csr * rxcsr =
194
- (struct msgdma_csr * )priv -> rx_dma_csr ;
195
- struct msgdma_response * rxresp =
196
- (struct msgdma_response * )priv -> rx_dma_resp ;
197
-
198
- if (ioread32 (& rxcsr -> resp_fill_level ) & 0xffff ) {
199
- pktlength = ioread32 (& rxresp -> bytes_transferred );
200
- pktstatus = ioread32 (& rxresp -> status );
194
+
195
+ if (csrrd32 (priv -> rx_dma_csr , msgdma_csroffs (resp_fill_level ))
196
+ & 0xffff ) {
197
+ pktlength = csrrd32 (priv -> rx_dma_resp ,
198
+ msgdma_respoffs (bytes_transferred ));
199
+ pktstatus = csrrd32 (priv -> rx_dma_resp ,
200
+ msgdma_respoffs (status ));
201
201
rxstatus = pktstatus ;
202
202
rxstatus = rxstatus << 16 ;
203
203
rxstatus |= (pktlength & 0xffff );
0 commit comments