|
@@ -1183,8 +1183,12 @@ static int
|
1183
|
1183
|
sis900_poll(struct nic *nic, int retrieve)
|
1184
|
1184
|
{
|
1185
|
1185
|
u32 rx_status = rxd[cur_rx].cmdsts;
|
|
1186
|
+ u32 intr_status;
|
1186
|
1187
|
int retstat = 0;
|
1187
|
1188
|
|
|
1189
|
+ /* acknowledge interrupts by reading interrupt status register */
|
|
1190
|
+ intr_status = inl(ioaddr + isr);
|
|
1191
|
+
|
1188
|
1192
|
if (sis900_debug > 2)
|
1189
|
1193
|
printf("sis900_poll: cur_rx:%d, status:%X\n", cur_rx,
|
1190
|
1194
|
(unsigned int) rx_status);
|
|
@@ -1264,8 +1268,10 @@ sis900_irq(struct nic *nic __unused, irq_action_t action __unused)
|
1264
|
1268
|
{
|
1265
|
1269
|
switch ( action ) {
|
1266
|
1270
|
case DISABLE :
|
|
1271
|
+ outl(0, ioaddr + imr);
|
1267
|
1272
|
break;
|
1268
|
1273
|
case ENABLE :
|
|
1274
|
+ outl((RxSOVR|RxORN|RxERR|RxOK|TxURN|TxERR|TxIDLE), ioaddr + imr);
|
1269
|
1275
|
break;
|
1270
|
1276
|
case FORCE :
|
1271
|
1277
|
break;
|