void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; if (!bcm_static_skb) { osl_pktfree(osh, p, send); return; } down(&bcm_static_skb->osl_pkt_sem); for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_8k[i]) { bcm_static_skb->pkt_use[i + STATIC_PKT_MAX_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } #ifdef ENHANCED_STATIC_BUF if (p == bcm_static_skb->skb_16k) { bcm_static_skb->pkt_use[STATIC_PKT_MAX_NUM * 2] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } #endif up(&bcm_static_skb->osl_pkt_sem); osl_pktfree(osh, p, send); }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; if (!bcm_static_skb) { osl_pktfree(osh, p, send); return; } down(&bcm_static_skb->osl_pkt_sem); for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_32k[i]) { bcm_static_skb->pkt_use[i + STATIC_PKT_MAX_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } up(&bcm_static_skb->osl_pkt_sem); osl_pktfree(osh, p, send); return; }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; for (i = 0; i < MAX_STATIC_PKT_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } for (i = 0; i < MAX_STATIC_PKT_NUM; i++) { if (p == bcm_static_skb->skb_8k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i + MAX_STATIC_PKT_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } return osl_pktfree(osh, p, send); }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_8k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i + STATIC_PKT_MAX_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } #ifdef CUSTOMER_HW_SAMSUNG if (p == bcm_static_skb->skb_16k) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[STATIC_PKT_MAX_NUM * 2] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } #endif return osl_pktfree(osh, p, send); }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; for (i = 0; i < MAX_STATIC_PKT_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); // LGE_CHANGE_S, 2011-0627, [[email protected]], modify static buffer size return; } if (p == bcm_static_skb->skb_12k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i+MAX_STATIC_PKT_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); // LGE_CHANGE_E, 2011-0627, [[email protected]], modify static buffer size return; } } return osl_pktfree(osh, p, send); }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { if (p == bcm_static_skb->skb_4k[i]) { down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } for (i = 0; i < STATIC_PKT_MAX_NUM; i++) { #ifdef CONFIG_COMMON_PATCH if (p == bcm_static_skb->skb_12k[i]) { #else if (p == bcm_static_skb->skb_8k[i]) { #endif down(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i + STATIC_PKT_MAX_NUM] = 0; up(&bcm_static_skb->osl_pkt_sem); return; } } return osl_pktfree(osh, p, send); } #endif uint32 osl_pci_read_config(osl_t *osh, uint offset, uint size) { uint val = 0; uint retry = PCI_CFG_RETRY; ASSERT((osh && (osh->magic == OS_HANDLE_MAGIC))); ASSERT(size == 4); do { pci_read_config_dword(osh->pdev, offset, &val); if (val != 0xffffffff) break; } while (retry--); return (val); }
void osl_pktfree_static(osl_t *osh, void *p, bool send) { int i; for (i = 0; i < MAX_STATIC_PKT_NUM*2; i++) { if (p == bcm_static_skb->skb_4k[i]) { mutex_lock(&bcm_static_skb->osl_pkt_sem); bcm_static_skb->pkt_use[i] = 0; mutex_unlock(&bcm_static_skb->osl_pkt_sem); return; } } return osl_pktfree(osh, p, send); }