Skip to content

Commit e4936e0

Browse files
aaronwuadimarckleinebudde
authored andcommitted
bfin_can: rewrite the blackfin style of read/write to common ones
Replace the blackfin arch dependent style of bfin_read/bfin_write with common readw/writew Signed-off-by: Aaron Wu <[email protected]> Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 2f56f6b commit e4936e0

File tree

1 file changed

+60
-66
lines changed

1 file changed

+60
-66
lines changed

drivers/net/can/bfin_can.c

Lines changed: 60 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ static int bfin_can_set_bittiming(struct net_device *dev)
7878
if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES)
7979
timing |= SAM;
8080

81-
bfin_write(&reg->clock, clk);
82-
bfin_write(&reg->timing, timing);
81+
writew(clk, &reg->clock);
82+
writew(timing, &reg->timing);
8383

8484
netdev_info(dev, "setting CLOCK=0x%04x TIMING=0x%04x\n", clk, timing);
8585

@@ -94,16 +94,14 @@ static void bfin_can_set_reset_mode(struct net_device *dev)
9494
int i;
9595

9696
/* disable interrupts */
97-
bfin_write(&reg->mbim1, 0);
98-
bfin_write(&reg->mbim2, 0);
99-
bfin_write(&reg->gim, 0);
97+
writew(0, &reg->mbim1);
98+
writew(0, &reg->mbim2);
99+
writew(0, &reg->gim);
100100

101101
/* reset can and enter configuration mode */
102-
bfin_write(&reg->control, SRS | CCR);
103-
SSYNC();
104-
bfin_write(&reg->control, CCR);
105-
SSYNC();
106-
while (!(bfin_read(&reg->control) & CCA)) {
102+
writew(SRS | CCR, &reg->control);
103+
writew(CCR, &reg->control);
104+
while (!(readw(&reg->control) & CCA)) {
107105
udelay(10);
108106
if (--timeout == 0) {
109107
netdev_err(dev, "fail to enter configuration mode\n");
@@ -116,34 +114,33 @@ static void bfin_can_set_reset_mode(struct net_device *dev)
116114
* by writing to CAN Mailbox Configuration Registers 1 and 2
117115
* For all bits: 0 - Mailbox disabled, 1 - Mailbox enabled
118116
*/
119-
bfin_write(&reg->mc1, 0);
120-
bfin_write(&reg->mc2, 0);
117+
writew(0, &reg->mc1);
118+
writew(0, &reg->mc2);
121119

122120
/* Set Mailbox Direction */
123-
bfin_write(&reg->md1, 0xFFFF); /* mailbox 1-16 are RX */
124-
bfin_write(&reg->md2, 0); /* mailbox 17-32 are TX */
121+
writew(0xFFFF, &reg->md1); /* mailbox 1-16 are RX */
122+
writew(0, &reg->md2); /* mailbox 17-32 are TX */
125123

126124
/* RECEIVE_STD_CHL */
127125
for (i = 0; i < 2; i++) {
128-
bfin_write(&reg->chl[RECEIVE_STD_CHL + i].id0, 0);
129-
bfin_write(&reg->chl[RECEIVE_STD_CHL + i].id1, AME);
130-
bfin_write(&reg->chl[RECEIVE_STD_CHL + i].dlc, 0);
131-
bfin_write(&reg->msk[RECEIVE_STD_CHL + i].amh, 0x1FFF);
132-
bfin_write(&reg->msk[RECEIVE_STD_CHL + i].aml, 0xFFFF);
126+
writew(0, &reg->chl[RECEIVE_STD_CHL + i].id0);
127+
writew(AME, &reg->chl[RECEIVE_STD_CHL + i].id1);
128+
writew(0, &reg->chl[RECEIVE_STD_CHL + i].dlc);
129+
writew(0x1FFF, &reg->msk[RECEIVE_STD_CHL + i].amh);
130+
writew(0xFFFF, &reg->msk[RECEIVE_STD_CHL + i].aml);
133131
}
134132

135133
/* RECEIVE_EXT_CHL */
136134
for (i = 0; i < 2; i++) {
137-
bfin_write(&reg->chl[RECEIVE_EXT_CHL + i].id0, 0);
138-
bfin_write(&reg->chl[RECEIVE_EXT_CHL + i].id1, AME | IDE);
139-
bfin_write(&reg->chl[RECEIVE_EXT_CHL + i].dlc, 0);
140-
bfin_write(&reg->msk[RECEIVE_EXT_CHL + i].amh, 0x1FFF);
141-
bfin_write(&reg->msk[RECEIVE_EXT_CHL + i].aml, 0xFFFF);
135+
writew(0, &reg->chl[RECEIVE_EXT_CHL + i].id0);
136+
writew(AME | IDE, &reg->chl[RECEIVE_EXT_CHL + i].id1);
137+
writew(0, &reg->chl[RECEIVE_EXT_CHL + i].dlc);
138+
writew(0x1FFF, &reg->msk[RECEIVE_EXT_CHL + i].amh);
139+
writew(0xFFFF, &reg->msk[RECEIVE_EXT_CHL + i].aml);
142140
}
143141

144-
bfin_write(&reg->mc2, BIT(TRANSMIT_CHL - 16));
145-
bfin_write(&reg->mc1, BIT(RECEIVE_STD_CHL) + BIT(RECEIVE_EXT_CHL));
146-
SSYNC();
142+
writew(BIT(TRANSMIT_CHL - 16), &reg->mc2);
143+
writew(BIT(RECEIVE_STD_CHL) + BIT(RECEIVE_EXT_CHL), &reg->mc1);
147144

148145
priv->can.state = CAN_STATE_STOPPED;
149146
}
@@ -157,9 +154,9 @@ static void bfin_can_set_normal_mode(struct net_device *dev)
157154
/*
158155
* leave configuration mode
159156
*/
160-
bfin_write(&reg->control, bfin_read(&reg->control) & ~CCR);
157+
writew(readw(&reg->control) & ~CCR, &reg->control);
161158

162-
while (bfin_read(&reg->status) & CCA) {
159+
while (readw(&reg->status) & CCA) {
163160
udelay(10);
164161
if (--timeout == 0) {
165162
netdev_err(dev, "fail to leave configuration mode\n");
@@ -170,26 +167,25 @@ static void bfin_can_set_normal_mode(struct net_device *dev)
170167
/*
171168
* clear _All_ tx and rx interrupts
172169
*/
173-
bfin_write(&reg->mbtif1, 0xFFFF);
174-
bfin_write(&reg->mbtif2, 0xFFFF);
175-
bfin_write(&reg->mbrif1, 0xFFFF);
176-
bfin_write(&reg->mbrif2, 0xFFFF);
170+
writew(0xFFFF, &reg->mbtif1);
171+
writew(0xFFFF, &reg->mbtif2);
172+
writew(0xFFFF, &reg->mbrif1);
173+
writew(0xFFFF, &reg->mbrif2);
177174

178175
/*
179176
* clear global interrupt status register
180177
*/
181-
bfin_write(&reg->gis, 0x7FF); /* overwrites with '1' */
178+
writew(0x7FF, &reg->gis); /* overwrites with '1' */
182179

183180
/*
184181
* Initialize Interrupts
185182
* - set bits in the mailbox interrupt mask register
186183
* - global interrupt mask
187184
*/
188-
bfin_write(&reg->mbim1, BIT(RECEIVE_STD_CHL) + BIT(RECEIVE_EXT_CHL));
189-
bfin_write(&reg->mbim2, BIT(TRANSMIT_CHL - 16));
185+
writew(BIT(RECEIVE_STD_CHL) + BIT(RECEIVE_EXT_CHL), &reg->mbim1);
186+
writew(BIT(TRANSMIT_CHL - 16), &reg->mbim2);
190187

191-
bfin_write(&reg->gim, EPIM | BOIM | RMLIM);
192-
SSYNC();
188+
writew(EPIM | BOIM | RMLIM, &reg->gim);
193189
}
194190

195191
static void bfin_can_start(struct net_device *dev)
@@ -226,7 +222,7 @@ static int bfin_can_get_berr_counter(const struct net_device *dev,
226222
struct bfin_can_priv *priv = netdev_priv(dev);
227223
struct bfin_can_regs __iomem *reg = priv->membase;
228224

229-
u16 cec = bfin_read(&reg->cec);
225+
u16 cec = readw(&reg->cec);
230226

231227
bec->txerr = cec >> 8;
232228
bec->rxerr = cec;
@@ -252,28 +248,28 @@ static int bfin_can_start_xmit(struct sk_buff *skb, struct net_device *dev)
252248

253249
/* fill id */
254250
if (id & CAN_EFF_FLAG) {
255-
bfin_write(&reg->chl[TRANSMIT_CHL].id0, id);
251+
writew(id, &reg->chl[TRANSMIT_CHL].id0);
256252
val = ((id & 0x1FFF0000) >> 16) | IDE;
257253
} else
258254
val = (id << 2);
259255
if (id & CAN_RTR_FLAG)
260256
val |= RTR;
261-
bfin_write(&reg->chl[TRANSMIT_CHL].id1, val | AME);
257+
writew(val | AME, &reg->chl[TRANSMIT_CHL].id1);
262258

263259
/* fill payload */
264260
for (i = 0; i < 8; i += 2) {
265261
val = ((7 - i) < dlc ? (data[7 - i]) : 0) +
266262
((6 - i) < dlc ? (data[6 - i] << 8) : 0);
267-
bfin_write(&reg->chl[TRANSMIT_CHL].data[i], val);
263+
writew(val, &reg->chl[TRANSMIT_CHL].data[i]);
268264
}
269265

270266
/* fill data length code */
271-
bfin_write(&reg->chl[TRANSMIT_CHL].dlc, dlc);
267+
writew(dlc, &reg->chl[TRANSMIT_CHL].dlc);
272268

273269
can_put_echo_skb(skb, dev, 0);
274270

275271
/* set transmit request */
276-
bfin_write(&reg->trs2, BIT(TRANSMIT_CHL - 16));
272+
writew(BIT(TRANSMIT_CHL - 16), &reg->trs2);
277273

278274
return 0;
279275
}
@@ -296,26 +292,26 @@ static void bfin_can_rx(struct net_device *dev, u16 isrc)
296292
/* get id */
297293
if (isrc & BIT(RECEIVE_EXT_CHL)) {
298294
/* extended frame format (EFF) */
299-
cf->can_id = ((bfin_read(&reg->chl[RECEIVE_EXT_CHL].id1)
295+
cf->can_id = ((readw(&reg->chl[RECEIVE_EXT_CHL].id1)
300296
& 0x1FFF) << 16)
301-
+ bfin_read(&reg->chl[RECEIVE_EXT_CHL].id0);
297+
+ readw(&reg->chl[RECEIVE_EXT_CHL].id0);
302298
cf->can_id |= CAN_EFF_FLAG;
303299
obj = RECEIVE_EXT_CHL;
304300
} else {
305301
/* standard frame format (SFF) */
306-
cf->can_id = (bfin_read(&reg->chl[RECEIVE_STD_CHL].id1)
302+
cf->can_id = (readw(&reg->chl[RECEIVE_STD_CHL].id1)
307303
& 0x1ffc) >> 2;
308304
obj = RECEIVE_STD_CHL;
309305
}
310-
if (bfin_read(&reg->chl[obj].id1) & RTR)
306+
if (readw(&reg->chl[obj].id1) & RTR)
311307
cf->can_id |= CAN_RTR_FLAG;
312308

313309
/* get data length code */
314-
cf->can_dlc = get_can_dlc(bfin_read(&reg->chl[obj].dlc) & 0xF);
310+
cf->can_dlc = get_can_dlc(readw(&reg->chl[obj].dlc) & 0xF);
315311

316312
/* get payload */
317313
for (i = 0; i < 8; i += 2) {
318-
val = bfin_read(&reg->chl[obj].data[i]);
314+
val = readw(&reg->chl[obj].data[i]);
319315
cf->data[7 - i] = (7 - i) < cf->can_dlc ? val : 0;
320316
cf->data[6 - i] = (6 - i) < cf->can_dlc ? (val >> 8) : 0;
321317
}
@@ -369,7 +365,7 @@ static int bfin_can_err(struct net_device *dev, u16 isrc, u16 status)
369365

370366
if (state != priv->can.state && (state == CAN_STATE_ERROR_WARNING ||
371367
state == CAN_STATE_ERROR_PASSIVE)) {
372-
u16 cec = bfin_read(&reg->cec);
368+
u16 cec = readw(&reg->cec);
373369
u8 rxerr = cec;
374370
u8 txerr = cec >> 8;
375371

@@ -420,23 +416,23 @@ static irqreturn_t bfin_can_interrupt(int irq, void *dev_id)
420416
struct net_device_stats *stats = &dev->stats;
421417
u16 status, isrc;
422418

423-
if ((irq == priv->tx_irq) && bfin_read(&reg->mbtif2)) {
419+
if ((irq == priv->tx_irq) && readw(&reg->mbtif2)) {
424420
/* transmission complete interrupt */
425-
bfin_write(&reg->mbtif2, 0xFFFF);
421+
writew(0xFFFF, &reg->mbtif2);
426422
stats->tx_packets++;
427-
stats->tx_bytes += bfin_read(&reg->chl[TRANSMIT_CHL].dlc);
423+
stats->tx_bytes += readw(&reg->chl[TRANSMIT_CHL].dlc);
428424
can_get_echo_skb(dev, 0);
429425
netif_wake_queue(dev);
430-
} else if ((irq == priv->rx_irq) && bfin_read(&reg->mbrif1)) {
426+
} else if ((irq == priv->rx_irq) && readw(&reg->mbrif1)) {
431427
/* receive interrupt */
432-
isrc = bfin_read(&reg->mbrif1);
433-
bfin_write(&reg->mbrif1, 0xFFFF);
428+
isrc = readw(&reg->mbrif1);
429+
writew(0xFFFF, &reg->mbrif1);
434430
bfin_can_rx(dev, isrc);
435-
} else if ((irq == priv->err_irq) && bfin_read(&reg->gis)) {
431+
} else if ((irq == priv->err_irq) && readw(&reg->gis)) {
436432
/* error interrupt */
437-
isrc = bfin_read(&reg->gis);
438-
status = bfin_read(&reg->esr);
439-
bfin_write(&reg->gis, 0x7FF);
433+
isrc = readw(&reg->gis);
434+
status = readw(&reg->esr);
435+
writew(0x7FF, &reg->gis);
440436
bfin_can_err(dev, isrc, status);
441437
} else {
442438
return IRQ_NONE;
@@ -641,9 +637,8 @@ static int bfin_can_suspend(struct platform_device *pdev, pm_message_t mesg)
641637

642638
if (netif_running(dev)) {
643639
/* enter sleep mode */
644-
bfin_write(&reg->control, bfin_read(&reg->control) | SMR);
645-
SSYNC();
646-
while (!(bfin_read(&reg->intr) & SMACK)) {
640+
writew(readw(&reg->control) | SMR, &reg->control);
641+
while (!(readw(&reg->intr) & SMACK)) {
647642
udelay(10);
648643
if (--timeout == 0) {
649644
netdev_err(dev, "fail to enter sleep mode\n");
@@ -663,8 +658,7 @@ static int bfin_can_resume(struct platform_device *pdev)
663658

664659
if (netif_running(dev)) {
665660
/* leave sleep mode */
666-
bfin_write(&reg->intr, 0);
667-
SSYNC();
661+
writew(0, &reg->intr);
668662
}
669663

670664
return 0;

0 commit comments

Comments
 (0)