aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hardware/mISDN/hfcpci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hardware/mISDN/hfcpci.c')
-rw-r--r--drivers/isdn/hardware/mISDN/hfcpci.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/drivers/isdn/hardware/mISDN/hfcpci.c b/drivers/isdn/hardware/mISDN/hfcpci.c
index 60dc92562c6d..776afc8c9270 100644
--- a/drivers/isdn/hardware/mISDN/hfcpci.c
+++ b/drivers/isdn/hardware/mISDN/hfcpci.c
@@ -257,7 +257,7 @@ reset_hfcpci(struct hfc_pci *hc)
257 Write_hfc(hc, HFCPCI_INT_M1, hc->hw.int_m1); 257 Write_hfc(hc, HFCPCI_INT_M1, hc->hw.int_m1);
258 258
259 /* Clear already pending ints */ 259 /* Clear already pending ints */
260 if (Read_hfc(hc, HFCPCI_INT_S1)); 260 val = Read_hfc(hc, HFCPCI_INT_S1);
261 261
262 /* set NT/TE mode */ 262 /* set NT/TE mode */
263 hfcpci_setmode(hc); 263 hfcpci_setmode(hc);
@@ -499,7 +499,8 @@ receive_dmsg(struct hfc_pci *hc)
499 df->f2 = ((df->f2 + 1) & MAX_D_FRAMES) | 499 df->f2 = ((df->f2 + 1) & MAX_D_FRAMES) |
500 (MAX_D_FRAMES + 1); /* next buffer */ 500 (MAX_D_FRAMES + 1); /* next buffer */
501 df->za[df->f2 & D_FREG_MASK].z2 = 501 df->za[df->f2 & D_FREG_MASK].z2 =
502 cpu_to_le16((le16_to_cpu(zp->z2) + rcnt) & (D_FIFO_SIZE - 1)); 502 cpu_to_le16((le16_to_cpu(zp->z2) + rcnt) &
503 (D_FIFO_SIZE - 1));
503 } else { 504 } else {
504 dch->rx_skb = mI_alloc_skb(rcnt - 3, GFP_ATOMIC); 505 dch->rx_skb = mI_alloc_skb(rcnt - 3, GFP_ATOMIC);
505 if (!dch->rx_skb) { 506 if (!dch->rx_skb) {
@@ -966,6 +967,7 @@ static void
966ph_state_nt(struct dchannel *dch) 967ph_state_nt(struct dchannel *dch)
967{ 968{
968 struct hfc_pci *hc = dch->hw; 969 struct hfc_pci *hc = dch->hw;
970 u_char val;
969 971
970 if (dch->debug) 972 if (dch->debug)
971 printk(KERN_DEBUG "%s: NT newstate %x\n", 973 printk(KERN_DEBUG "%s: NT newstate %x\n",
@@ -979,7 +981,7 @@ ph_state_nt(struct dchannel *dch)
979 hc->hw.int_m1 &= ~HFCPCI_INTS_TIMER; 981 hc->hw.int_m1 &= ~HFCPCI_INTS_TIMER;
980 Write_hfc(hc, HFCPCI_INT_M1, hc->hw.int_m1); 982 Write_hfc(hc, HFCPCI_INT_M1, hc->hw.int_m1);
981 /* Clear already pending ints */ 983 /* Clear already pending ints */
982 if (Read_hfc(hc, HFCPCI_INT_S1)); 984 val = Read_hfc(hc, HFCPCI_INT_S1);
983 Write_hfc(hc, HFCPCI_STATES, 4 | HFCPCI_LOAD_STATE); 985 Write_hfc(hc, HFCPCI_STATES, 4 | HFCPCI_LOAD_STATE);
984 udelay(10); 986 udelay(10);
985 Write_hfc(hc, HFCPCI_STATES, 4); 987 Write_hfc(hc, HFCPCI_STATES, 4);
@@ -1268,8 +1270,7 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
1268 rx_slot = (bc>>8) & 0xff; 1270 rx_slot = (bc>>8) & 0xff;
1269 tx_slot = (bc>>16) & 0xff; 1271 tx_slot = (bc>>16) & 0xff;
1270 bc = bc & 0xff; 1272 bc = bc & 0xff;
1271 } else if (test_bit(HFC_CFG_PCM, &hc->cfg) && 1273 } else if (test_bit(HFC_CFG_PCM, &hc->cfg) && (protocol > ISDN_P_NONE))
1272 (protocol > ISDN_P_NONE))
1273 printk(KERN_WARNING "%s: no pcm channel id but HFC_CFG_PCM\n", 1274 printk(KERN_WARNING "%s: no pcm channel id but HFC_CFG_PCM\n",
1274 __func__); 1275 __func__);
1275 if (hc->chanlimit > 1) { 1276 if (hc->chanlimit > 1) {
@@ -1327,8 +1328,8 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
1327 case (ISDN_P_B_RAW): 1328 case (ISDN_P_B_RAW):
1328 bch->state = protocol; 1329 bch->state = protocol;
1329 bch->nr = bc; 1330 bch->nr = bc;
1330 hfcpci_clear_fifo_rx(hc, (fifo2 & 2)?1:0); 1331 hfcpci_clear_fifo_rx(hc, (fifo2 & 2) ? 1 : 0);
1331 hfcpci_clear_fifo_tx(hc, (fifo2 & 2)?1:0); 1332 hfcpci_clear_fifo_tx(hc, (fifo2 & 2) ? 1 : 0);
1332 if (bc & 2) { 1333 if (bc & 2) {
1333 hc->hw.sctrl |= SCTRL_B2_ENA; 1334 hc->hw.sctrl |= SCTRL_B2_ENA;
1334 hc->hw.sctrl_r |= SCTRL_B2_ENA; 1335 hc->hw.sctrl_r |= SCTRL_B2_ENA;
@@ -1362,8 +1363,8 @@ mode_hfcpci(struct bchannel *bch, int bc, int protocol)
1362 case (ISDN_P_B_HDLC): 1363 case (ISDN_P_B_HDLC):
1363 bch->state = protocol; 1364 bch->state = protocol;
1364 bch->nr = bc; 1365 bch->nr = bc;
1365 hfcpci_clear_fifo_rx(hc, (fifo2 & 2)?1:0); 1366 hfcpci_clear_fifo_rx(hc, (fifo2 & 2) ? 1 : 0);
1366 hfcpci_clear_fifo_tx(hc, (fifo2 & 2)?1:0); 1367 hfcpci_clear_fifo_tx(hc, (fifo2 & 2) ? 1 : 0);
1367 if (bc & 2) { 1368 if (bc & 2) {
1368 hc->hw.sctrl |= SCTRL_B2_ENA; 1369 hc->hw.sctrl |= SCTRL_B2_ENA;
1369 hc->hw.sctrl_r |= SCTRL_B2_ENA; 1370 hc->hw.sctrl_r |= SCTRL_B2_ENA;
@@ -1457,7 +1458,7 @@ set_hfcpci_rxtest(struct bchannel *bch, int protocol, int chan)
1457 switch (protocol) { 1458 switch (protocol) {
1458 case (ISDN_P_B_RAW): 1459 case (ISDN_P_B_RAW):
1459 bch->state = protocol; 1460 bch->state = protocol;
1460 hfcpci_clear_fifo_rx(hc, (chan & 2)?1:0); 1461 hfcpci_clear_fifo_rx(hc, (chan & 2) ? 1 : 0);
1461 if (chan & 2) { 1462 if (chan & 2) {
1462 hc->hw.sctrl_r |= SCTRL_B2_ENA; 1463 hc->hw.sctrl_r |= SCTRL_B2_ENA;
1463 hc->hw.fifo_en |= HFCPCI_FIFOEN_B2RX; 1464 hc->hw.fifo_en |= HFCPCI_FIFOEN_B2RX;
@@ -1482,7 +1483,7 @@ set_hfcpci_rxtest(struct bchannel *bch, int protocol, int chan)
1482 break; 1483 break;
1483 case (ISDN_P_B_HDLC): 1484 case (ISDN_P_B_HDLC):
1484 bch->state = protocol; 1485 bch->state = protocol;
1485 hfcpci_clear_fifo_rx(hc, (chan & 2)?1:0); 1486 hfcpci_clear_fifo_rx(hc, (chan & 2) ? 1 : 0);
1486 if (chan & 2) { 1487 if (chan & 2) {
1487 hc->hw.sctrl_r |= SCTRL_B2_ENA; 1488 hc->hw.sctrl_r |= SCTRL_B2_ENA;
1488 hc->hw.last_bfifo_cnt[1] = 0; 1489 hc->hw.last_bfifo_cnt[1] = 0;
@@ -2047,7 +2048,8 @@ setup_hw(struct hfc_pci *hc)
2047 printk(KERN_WARNING "HFC-PCI: No IRQ for PCI card found\n"); 2048 printk(KERN_WARNING "HFC-PCI: No IRQ for PCI card found\n");
2048 return 1; 2049 return 1;
2049 } 2050 }
2050 hc->hw.pci_io = (char __iomem *)(unsigned long)hc->pdev->resource[1].start; 2051 hc->hw.pci_io =
2052 (char __iomem *)(unsigned long)hc->pdev->resource[1].start;
2051 2053
2052 if (!hc->hw.pci_io) { 2054 if (!hc->hw.pci_io) {
2053 printk(KERN_WARNING "HFC-PCI: No IO-Mem for PCI card found\n"); 2055 printk(KERN_WARNING "HFC-PCI: No IO-Mem for PCI card found\n");
@@ -2289,7 +2291,7 @@ hfc_remove_pci(struct pci_dev *pdev)
2289 release_card(card); 2291 release_card(card);
2290 else 2292 else
2291 if (debug) 2293 if (debug)
2292 printk(KERN_WARNING "%s: drvdata already removed\n", 2294 printk(KERN_DEBUG "%s: drvdata already removed\n",
2293 __func__); 2295 __func__);
2294} 2296}
2295 2297