aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/atm
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/atm')
-rw-r--r--drivers/atm/firestream.c8
-rw-r--r--drivers/atm/fore200e.c4
-rw-r--r--drivers/atm/he.c61
-rw-r--r--drivers/atm/horizon.c4
-rw-r--r--drivers/atm/iphase.c4
-rw-r--r--drivers/atm/lanai.c6
-rw-r--r--drivers/atm/solos-pci.c5
7 files changed, 66 insertions, 26 deletions
diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
index 98099f526d82..b119640e1ee9 100644
--- a/drivers/atm/firestream.c
+++ b/drivers/atm/firestream.c
@@ -1690,17 +1690,17 @@ static int __devinit fs_init (struct fs_dev *dev)
1690 | (0 * SARMODE0_SHADEN) /* We don't use shadow registers. */ 1690 | (0 * SARMODE0_SHADEN) /* We don't use shadow registers. */
1691 | (1 * SARMODE0_INTMODE_READCLEAR) 1691 | (1 * SARMODE0_INTMODE_READCLEAR)
1692 | (1 * SARMODE0_CWRE) 1692 | (1 * SARMODE0_CWRE)
1693 | IS_FS50(dev)?SARMODE0_PRPWT_FS50_5: 1693 | (IS_FS50(dev) ? SARMODE0_PRPWT_FS50_5:
1694 SARMODE0_PRPWT_FS155_3 1694 SARMODE0_PRPWT_FS155_3)
1695 | (1 * SARMODE0_CALSUP_1) 1695 | (1 * SARMODE0_CALSUP_1)
1696 | IS_FS50 (dev)?(0 1696 | (IS_FS50(dev) ? (0
1697 | SARMODE0_RXVCS_32 1697 | SARMODE0_RXVCS_32
1698 | SARMODE0_ABRVCS_32 1698 | SARMODE0_ABRVCS_32
1699 | SARMODE0_TXVCS_32): 1699 | SARMODE0_TXVCS_32):
1700 (0 1700 (0
1701 | SARMODE0_RXVCS_1k 1701 | SARMODE0_RXVCS_1k
1702 | SARMODE0_ABRVCS_1k 1702 | SARMODE0_ABRVCS_1k
1703 | SARMODE0_TXVCS_1k)); 1703 | SARMODE0_TXVCS_1k)));
1704 1704
1705 /* 10ms * 100 is 1 second. That should be enough, as AN3:9 says it takes 1705 /* 10ms * 100 is 1 second. That should be enough, as AN3:9 says it takes
1706 1ms. */ 1706 1ms. */
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 937c9c0ef4c9..10f000dbe448 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -2519,8 +2519,8 @@ fore200e_load_and_start_fw(struct fore200e* fore200e)
2519 return err; 2519 return err;
2520 2520
2521 sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT); 2521 sprintf(buf, "%s%s", fore200e->bus->proc_name, FW_EXT);
2522 if (request_firmware(&firmware, buf, device) == 1) { 2522 if ((err = request_firmware(&firmware, buf, device)) < 0) {
2523 printk(FORE200E "missing %s firmware image\n", fore200e->bus->model_name); 2523 printk(FORE200E "problem loading firmware image %s\n", fore200e->bus->model_name);
2524 return err; 2524 return err;
2525 } 2525 }
2526 2526
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index bdbad7edf682..29e66d603d3c 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
@@ -358,7 +358,7 @@ he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)
358 358
359 if (pci_enable_device(pci_dev)) 359 if (pci_enable_device(pci_dev))
360 return -EIO; 360 return -EIO;
361 if (pci_set_dma_mask(pci_dev, DMA_32BIT_MASK) != 0) { 361 if (pci_set_dma_mask(pci_dev, DMA_BIT_MASK(32)) != 0) {
362 printk(KERN_WARNING "he: no suitable dma available\n"); 362 printk(KERN_WARNING "he: no suitable dma available\n");
363 err = -EIO; 363 err = -EIO;
364 goto init_one_failure; 364 goto init_one_failure;
@@ -790,11 +790,15 @@ he_init_group(struct he_dev *he_dev, int group)
790 he_dev->rbps_base = pci_alloc_consistent(he_dev->pci_dev, 790 he_dev->rbps_base = pci_alloc_consistent(he_dev->pci_dev,
791 CONFIG_RBPS_SIZE * sizeof(struct he_rbp), &he_dev->rbps_phys); 791 CONFIG_RBPS_SIZE * sizeof(struct he_rbp), &he_dev->rbps_phys);
792 if (he_dev->rbps_base == NULL) { 792 if (he_dev->rbps_base == NULL) {
793 hprintk("failed to alloc rbps\n"); 793 hprintk("failed to alloc rbps_base\n");
794 return -ENOMEM; 794 goto out_destroy_rbps_pool;
795 } 795 }
796 memset(he_dev->rbps_base, 0, CONFIG_RBPS_SIZE * sizeof(struct he_rbp)); 796 memset(he_dev->rbps_base, 0, CONFIG_RBPS_SIZE * sizeof(struct he_rbp));
797 he_dev->rbps_virt = kmalloc(CONFIG_RBPS_SIZE * sizeof(struct he_virt), GFP_KERNEL); 797 he_dev->rbps_virt = kmalloc(CONFIG_RBPS_SIZE * sizeof(struct he_virt), GFP_KERNEL);
798 if (he_dev->rbps_virt == NULL) {
799 hprintk("failed to alloc rbps_virt\n");
800 goto out_free_rbps_base;
801 }
798 802
799 for (i = 0; i < CONFIG_RBPS_SIZE; ++i) { 803 for (i = 0; i < CONFIG_RBPS_SIZE; ++i) {
800 dma_addr_t dma_handle; 804 dma_addr_t dma_handle;
@@ -802,7 +806,7 @@ he_init_group(struct he_dev *he_dev, int group)
802 806
803 cpuaddr = pci_pool_alloc(he_dev->rbps_pool, GFP_KERNEL|GFP_DMA, &dma_handle); 807 cpuaddr = pci_pool_alloc(he_dev->rbps_pool, GFP_KERNEL|GFP_DMA, &dma_handle);
804 if (cpuaddr == NULL) 808 if (cpuaddr == NULL)
805 return -ENOMEM; 809 goto out_free_rbps_virt;
806 810
807 he_dev->rbps_virt[i].virt = cpuaddr; 811 he_dev->rbps_virt[i].virt = cpuaddr;
808 he_dev->rbps_base[i].status = RBP_LOANED | RBP_SMALLBUF | (i << RBP_INDEX_OFF); 812 he_dev->rbps_base[i].status = RBP_LOANED | RBP_SMALLBUF | (i << RBP_INDEX_OFF);
@@ -827,17 +831,21 @@ he_init_group(struct he_dev *he_dev, int group)
827 CONFIG_RBPL_BUFSIZE, 8, 0); 831 CONFIG_RBPL_BUFSIZE, 8, 0);
828 if (he_dev->rbpl_pool == NULL) { 832 if (he_dev->rbpl_pool == NULL) {
829 hprintk("unable to create rbpl pool\n"); 833 hprintk("unable to create rbpl pool\n");
830 return -ENOMEM; 834 goto out_free_rbps_virt;
831 } 835 }
832 836
833 he_dev->rbpl_base = pci_alloc_consistent(he_dev->pci_dev, 837 he_dev->rbpl_base = pci_alloc_consistent(he_dev->pci_dev,
834 CONFIG_RBPL_SIZE * sizeof(struct he_rbp), &he_dev->rbpl_phys); 838 CONFIG_RBPL_SIZE * sizeof(struct he_rbp), &he_dev->rbpl_phys);
835 if (he_dev->rbpl_base == NULL) { 839 if (he_dev->rbpl_base == NULL) {
836 hprintk("failed to alloc rbpl\n"); 840 hprintk("failed to alloc rbpl_base\n");
837 return -ENOMEM; 841 goto out_destroy_rbpl_pool;
838 } 842 }
839 memset(he_dev->rbpl_base, 0, CONFIG_RBPL_SIZE * sizeof(struct he_rbp)); 843 memset(he_dev->rbpl_base, 0, CONFIG_RBPL_SIZE * sizeof(struct he_rbp));
840 he_dev->rbpl_virt = kmalloc(CONFIG_RBPL_SIZE * sizeof(struct he_virt), GFP_KERNEL); 844 he_dev->rbpl_virt = kmalloc(CONFIG_RBPL_SIZE * sizeof(struct he_virt), GFP_KERNEL);
845 if (he_dev->rbpl_virt == NULL) {
846 hprintk("failed to alloc rbpl_virt\n");
847 goto out_free_rbpl_base;
848 }
841 849
842 for (i = 0; i < CONFIG_RBPL_SIZE; ++i) { 850 for (i = 0; i < CONFIG_RBPL_SIZE; ++i) {
843 dma_addr_t dma_handle; 851 dma_addr_t dma_handle;
@@ -845,7 +853,7 @@ he_init_group(struct he_dev *he_dev, int group)
845 853
846 cpuaddr = pci_pool_alloc(he_dev->rbpl_pool, GFP_KERNEL|GFP_DMA, &dma_handle); 854 cpuaddr = pci_pool_alloc(he_dev->rbpl_pool, GFP_KERNEL|GFP_DMA, &dma_handle);
847 if (cpuaddr == NULL) 855 if (cpuaddr == NULL)
848 return -ENOMEM; 856 goto out_free_rbpl_virt;
849 857
850 he_dev->rbpl_virt[i].virt = cpuaddr; 858 he_dev->rbpl_virt[i].virt = cpuaddr;
851 he_dev->rbpl_base[i].status = RBP_LOANED | (i << RBP_INDEX_OFF); 859 he_dev->rbpl_base[i].status = RBP_LOANED | (i << RBP_INDEX_OFF);
@@ -870,7 +878,7 @@ he_init_group(struct he_dev *he_dev, int group)
870 CONFIG_RBRQ_SIZE * sizeof(struct he_rbrq), &he_dev->rbrq_phys); 878 CONFIG_RBRQ_SIZE * sizeof(struct he_rbrq), &he_dev->rbrq_phys);
871 if (he_dev->rbrq_base == NULL) { 879 if (he_dev->rbrq_base == NULL) {
872 hprintk("failed to allocate rbrq\n"); 880 hprintk("failed to allocate rbrq\n");
873 return -ENOMEM; 881 goto out_free_rbpl_virt;
874 } 882 }
875 memset(he_dev->rbrq_base, 0, CONFIG_RBRQ_SIZE * sizeof(struct he_rbrq)); 883 memset(he_dev->rbrq_base, 0, CONFIG_RBRQ_SIZE * sizeof(struct he_rbrq));
876 884
@@ -894,7 +902,7 @@ he_init_group(struct he_dev *he_dev, int group)
894 CONFIG_TBRQ_SIZE * sizeof(struct he_tbrq), &he_dev->tbrq_phys); 902 CONFIG_TBRQ_SIZE * sizeof(struct he_tbrq), &he_dev->tbrq_phys);
895 if (he_dev->tbrq_base == NULL) { 903 if (he_dev->tbrq_base == NULL) {
896 hprintk("failed to allocate tbrq\n"); 904 hprintk("failed to allocate tbrq\n");
897 return -ENOMEM; 905 goto out_free_rbpq_base;
898 } 906 }
899 memset(he_dev->tbrq_base, 0, CONFIG_TBRQ_SIZE * sizeof(struct he_tbrq)); 907 memset(he_dev->tbrq_base, 0, CONFIG_TBRQ_SIZE * sizeof(struct he_tbrq));
900 908
@@ -906,6 +914,39 @@ he_init_group(struct he_dev *he_dev, int group)
906 he_writel(he_dev, CONFIG_TBRQ_THRESH, G0_TBRQ_THRESH + (group * 16)); 914 he_writel(he_dev, CONFIG_TBRQ_THRESH, G0_TBRQ_THRESH + (group * 16));
907 915
908 return 0; 916 return 0;
917
918out_free_rbpq_base:
919 pci_free_consistent(he_dev->pci_dev, CONFIG_RBRQ_SIZE *
920 sizeof(struct he_rbrq), he_dev->rbrq_base,
921 he_dev->rbrq_phys);
922 i = CONFIG_RBPL_SIZE;
923out_free_rbpl_virt:
924 while (--i)
925 pci_pool_free(he_dev->rbps_pool, he_dev->rbpl_virt[i].virt,
926 he_dev->rbps_base[i].phys);
927 kfree(he_dev->rbpl_virt);
928
929out_free_rbpl_base:
930 pci_free_consistent(he_dev->pci_dev, CONFIG_RBPL_SIZE *
931 sizeof(struct he_rbp), he_dev->rbpl_base,
932 he_dev->rbpl_phys);
933out_destroy_rbpl_pool:
934 pci_pool_destroy(he_dev->rbpl_pool);
935
936 i = CONFIG_RBPL_SIZE;
937out_free_rbps_virt:
938 while (--i)
939 pci_pool_free(he_dev->rbpl_pool, he_dev->rbps_virt[i].virt,
940 he_dev->rbpl_base[i].phys);
941 kfree(he_dev->rbps_virt);
942
943out_free_rbps_base:
944 pci_free_consistent(he_dev->pci_dev, CONFIG_RBPS_SIZE *
945 sizeof(struct he_rbp), he_dev->rbps_base,
946 he_dev->rbps_phys);
947out_destroy_rbps_pool:
948 pci_pool_destroy(he_dev->rbps_pool);
949 return -ENOMEM;
909} 950}
910 951
911static int __devinit 952static int __devinit
diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
index 6b969f8c684f..01ce241dbeae 100644
--- a/drivers/atm/horizon.c
+++ b/drivers/atm/horizon.c
@@ -641,7 +641,7 @@ static int make_rate (const hrz_dev * dev, u32 c, rounding r,
641 pre = 1; 641 pre = 1;
642 break; 642 break;
643 case round_nearest: 643 case round_nearest:
644 pre = (br+(c<<div)/2)/(c<<div); 644 pre = DIV_ROUND_CLOSEST(br, c<<div);
645 // but p must be non-zero 645 // but p must be non-zero
646 if (!pre) 646 if (!pre)
647 pre = 1; 647 pre = 1;
@@ -671,7 +671,7 @@ static int make_rate (const hrz_dev * dev, u32 c, rounding r,
671 pre = DIV_ROUND_UP(br, c<<div); 671 pre = DIV_ROUND_UP(br, c<<div);
672 break; 672 break;
673 case round_nearest: 673 case round_nearest:
674 pre = (br+(c<<div)/2)/(c<<div); 674 pre = DIV_ROUND_CLOSEST(br, c<<div);
675 break; 675 break;
676 default: /* round_up */ 676 default: /* round_up */
677 pre = br/(c<<div); 677 pre = br/(c<<div);
diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
index e1c7611e9144..78c9736c3579 100644
--- a/drivers/atm/iphase.c
+++ b/drivers/atm/iphase.c
@@ -977,9 +977,7 @@ static void xdump( u_char* cp, int length, char* prefix )
977 else 977 else
978 pBuf += sprintf( pBuf, "." ); 978 pBuf += sprintf( pBuf, "." );
979 } 979 }
980 sprintf( pBuf, "\n" ); 980 printk("%s\n", prntBuf);
981 // SPrint(prntBuf);
982 printk(prntBuf);
983 count += col; 981 count += col;
984 pBuf = prntBuf; 982 pBuf = prntBuf;
985 } 983 }
diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
index 144a49f15220..cf97c34cbaf1 100644
--- a/drivers/atm/lanai.c
+++ b/drivers/atm/lanai.c
@@ -901,7 +901,7 @@ static int __devinit eeprom_read(struct lanai_dev *lanai)
901 clock_l(); udelay(5); 901 clock_l(); udelay(5);
902 for (i = 128; i != 0; i >>= 1) { /* write command out */ 902 for (i = 128; i != 0; i >>= 1) { /* write command out */
903 tmp = (lanai->conf1 & ~CONFIG1_PROMDATA) | 903 tmp = (lanai->conf1 & ~CONFIG1_PROMDATA) |
904 (data & i) ? CONFIG1_PROMDATA : 0; 904 ((data & i) ? CONFIG1_PROMDATA : 0);
905 if (lanai->conf1 != tmp) { 905 if (lanai->conf1 != tmp) {
906 set_config1(tmp); 906 set_config1(tmp);
907 udelay(5); /* Let new data settle */ 907 udelay(5); /* Let new data settle */
@@ -1957,12 +1957,12 @@ static int __devinit lanai_pci_start(struct lanai_dev *lanai)
1957 return -ENXIO; 1957 return -ENXIO;
1958 } 1958 }
1959 pci_set_master(pci); 1959 pci_set_master(pci);
1960 if (pci_set_dma_mask(pci, DMA_32BIT_MASK) != 0) { 1960 if (pci_set_dma_mask(pci, DMA_BIT_MASK(32)) != 0) {
1961 printk(KERN_WARNING DEV_LABEL 1961 printk(KERN_WARNING DEV_LABEL
1962 "(itf %d): No suitable DMA available.\n", lanai->number); 1962 "(itf %d): No suitable DMA available.\n", lanai->number);
1963 return -EBUSY; 1963 return -EBUSY;
1964 } 1964 }
1965 if (pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) != 0) { 1965 if (pci_set_consistent_dma_mask(pci, DMA_BIT_MASK(32)) != 0) {
1966 printk(KERN_WARNING DEV_LABEL 1966 printk(KERN_WARNING DEV_LABEL
1967 "(itf %d): No suitable DMA available.\n", lanai->number); 1967 "(itf %d): No suitable DMA available.\n", lanai->number);
1968 return -EBUSY; 1968 return -EBUSY;
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
index 6c828347c9cc..c5f5186d62a3 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -386,7 +386,7 @@ static int process_status(struct solos_card *card, int port, struct sk_buff *skb
386 } 386 }
387 387
388 snr = next_string(skb); 388 snr = next_string(skb);
389 if (!str) 389 if (!snr)
390 return -EIO; 390 return -EIO;
391 attn = next_string(skb); 391 attn = next_string(skb);
392 if (!attn) 392 if (!attn)
@@ -1104,7 +1104,7 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
1104 goto out; 1104 goto out;
1105 } 1105 }
1106 1106
1107 err = pci_set_dma_mask(dev, DMA_32BIT_MASK); 1107 err = pci_set_dma_mask(dev, DMA_BIT_MASK(32));
1108 if (err) { 1108 if (err) {
1109 dev_warn(&dev->dev, "Failed to set 32-bit DMA mask\n"); 1109 dev_warn(&dev->dev, "Failed to set 32-bit DMA mask\n");
1110 goto out; 1110 goto out;
@@ -1207,6 +1207,7 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
1207 out_release_regions: 1207 out_release_regions:
1208 pci_release_regions(dev); 1208 pci_release_regions(dev);
1209 out: 1209 out:
1210 kfree(card);
1210 return err; 1211 return err;
1211} 1212}
1212 1213