forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 072de836f53be56a70cecf70b43ae43b7ce17376
kernel/drivers/atm/idt77252.c
....@@ -641,8 +641,8 @@
641641 scq = kzalloc(sizeof(struct scq_info), GFP_KERNEL);
642642 if (!scq)
643643 return NULL;
644
- scq->base = dma_zalloc_coherent(&card->pcidev->dev, SCQ_SIZE,
645
- &scq->paddr, GFP_KERNEL);
644
+ scq->base = dma_alloc_coherent(&card->pcidev->dev, SCQ_SIZE,
645
+ &scq->paddr, GFP_KERNEL);
646646 if (scq->base == NULL) {
647647 kfree(scq);
648648 return NULL;
....@@ -835,6 +835,7 @@
835835 unsigned long flags;
836836 int error;
837837 int aal;
838
+ u32 word4;
838839
839840 if (skb->len == 0) {
840841 printk("%s: invalid skb->len (%d)\n", card->name, skb->len);
....@@ -846,6 +847,8 @@
846847
847848 tbd = &IDT77252_PRV_TBD(skb);
848849 vcc = ATM_SKB(skb)->vcc;
850
+ word4 = (skb->data[0] << 24) | (skb->data[1] << 16) |
851
+ (skb->data[2] << 8) | (skb->data[3] << 0);
849852
850853 IDT77252_PRV_PADDR(skb) = dma_map_single(&card->pcidev->dev, skb->data,
851854 skb->len, DMA_TO_DEVICE);
....@@ -859,8 +862,7 @@
859862 tbd->word_1 = SAR_TBD_OAM | ATM_CELL_PAYLOAD | SAR_TBD_EPDU;
860863 tbd->word_2 = IDT77252_PRV_PADDR(skb) + 4;
861864 tbd->word_3 = 0x00000000;
862
- tbd->word_4 = (skb->data[0] << 24) | (skb->data[1] << 16) |
863
- (skb->data[2] << 8) | (skb->data[3] << 0);
865
+ tbd->word_4 = word4;
864866
865867 if (test_bit(VCF_RSV, &vc->flags))
866868 vc = card->vcs[0];
....@@ -890,8 +892,7 @@
890892
891893 tbd->word_2 = IDT77252_PRV_PADDR(skb) + 4;
892894 tbd->word_3 = 0x00000000;
893
- tbd->word_4 = (skb->data[0] << 24) | (skb->data[1] << 16) |
894
- (skb->data[2] << 8) | (skb->data[3] << 0);
895
+ tbd->word_4 = word4;
895896 break;
896897
897898 case ATM_AAL5:
....@@ -971,8 +972,8 @@
971972 {
972973 struct rsq_entry *rsqe;
973974
974
- card->rsq.base = dma_zalloc_coherent(&card->pcidev->dev, RSQSIZE,
975
- &card->rsq.paddr, GFP_KERNEL);
975
+ card->rsq.base = dma_alloc_coherent(&card->pcidev->dev, RSQSIZE,
976
+ &card->rsq.paddr, GFP_KERNEL);
976977 if (card->rsq.base == NULL) {
977978 printk("%s: can't allocate RSQ.\n", card->name);
978979 return -1;
....@@ -1379,7 +1380,6 @@
13791380 printk("%s: can't allocate TSQ.\n", card->name);
13801381 return -1;
13811382 }
1382
- memset(card->tsq.base, 0, TSQSIZE);
13831383
13841384 card->tsq.last = card->tsq.base + TSQ_NUM_ENTRIES - 1;
13851385 card->tsq.next = card->tsq.last;
....@@ -3390,10 +3390,10 @@
33903390 writel(0, SAR_REG_GP);
33913391
33923392 /* Initialize RAW Cell Handle Register */
3393
- card->raw_cell_hnd = dma_zalloc_coherent(&card->pcidev->dev,
3394
- 2 * sizeof(u32),
3395
- &card->raw_cell_paddr,
3396
- GFP_KERNEL);
3393
+ card->raw_cell_hnd = dma_alloc_coherent(&card->pcidev->dev,
3394
+ 2 * sizeof(u32),
3395
+ &card->raw_cell_paddr,
3396
+ GFP_KERNEL);
33973397 if (!card->raw_cell_hnd) {
33983398 printk("%s: memory allocation failure.\n", card->name);
33993399 deinit_card(card);
....@@ -3767,6 +3767,7 @@
37673767 card = idt77252_chain;
37683768 dev = card->atmdev;
37693769 idt77252_chain = card->next;
3770
+ del_timer_sync(&card->tst_timer);
37703771
37713772 if (dev->phy->stop)
37723773 dev->phy->stop(dev);