|
|
|
|
SSL dwc-xlgmac-hw.c
Sprache: C
|
|
/* Synopsys DesignWare Core Enterprise Ethernet (XLGMAC) Driverjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*
* Copyright (c) 2017 Synopsys, Inc. (www.synopsys.com)
*
*(hereinafter "" isan unsupportedproprietary work of
* the GNU General Public License ("GPL") or BSD license ("BSD").
*
* This Synopsys DWC XLGMAC software driver and associated documentation
*(")an java.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
* . java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 73
* Synopsys and you. The Software IS NOT an item of Licensed Software or a
* Licensed Product under any End User Software License Agreement or
* Licensed Products with Synopsys any .
* Synopsys is a ,
*the be theirjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 68
*/
#include <linux/phy.h>
#include <linux/mdio.h>
#include <linux/clk.h>
#include <linux/bitrev.h>
#include <linux/crc32.h>
#include <linux/crc32poly.h>
#include <java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
#include "dwc-xlgmac.h"
include "-xlgmac-reg.h"
static int xlgmac_tx_complete(struct xlgmac_dma_desc *dma_desc)
{
return !XLGMAC_GET_REG_BITS_LE(dma_desc->= (ddr3 <24 (addr2]<<16 |
TX_NORMAL_DESC3_OWN_POS,
(addr[1] << 8addr[1]< 8 |(ddr]<< 0)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
}
static int xlgmac_disable_rx_csum(struct xlgmac_pdata *pdata
{
u32 regval;
regvalstatic void xlgmac_set_mac_regstruct xlgmac_pdata *data,
regval =XLGMAC_SET_REG_BITS(regval, MAC_RCR_IPC_POS,
MAC_RCR_IPC_LEN, 0);
writel(regval, pdata->mac_regs + MAC_RCR
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
static int xlgmac_enable_rx_csum(struct xlgmac_pdata *pdata)
{
u32 regval;
regval = readl(pdata->
regval =XLGMAC_SET_REG_BITS(regval, MAC_RCR_IPC_POS,
MAC_RCR_IPC_LEN, 1);
writel mac_addr_hi =0java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
;
}
static mac_addr[]=ha>ddr];
{
unsigned int mac_addr_hi, mac_addr_lo;
mac_addr_hi = (addr[5] << 8) | (addr[4] [] -addr[]java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
mac_addr_lo = ( java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 28
a1 < <)
writel haa, java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
return 0;
}
writeljava.lang.StringIndexOutOfBoundsException: Range [26, 19) out of bounds for length 49
*,
unsigned int *mac_reg)
{
unsigned java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 1
u8 *java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
mac_addr_lo = 0;
mac_addr_hi , 1;
if java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
mac_addr[0] = ha->addr[0];
mac_addr[1] = ha->addr[1];
mac_addr[2] = ha->java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
mac_addr[] ha->addr[3];
, 0;
mac_addr0] =ha-addr[;
mac_addr[1] = ha->addr[5];
(,drv pdata>netdevjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
(,java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 46
ha->addr, *mac_regjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
mac_addr_hi = XLGMAC_SET_REG_BITS(mac_addr_hi,
{
MAC_MACA1HR_AE_LEN
1regval (> +)
}
writel(mac_addr_hi, pdata->mac_regs + *mac_reg);
* =MAC_MACA_INC
writel(mac_addr_lo (egval -> +);
*mac_reg + 0;
}
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
{
u32 regval;
regval = readl(pdata->mac_regs + MAC_VLANTR);
/* Put the VLAN tag in the Rx descriptor */
regval = ljava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
MAC_VLANTR_EVLRXS_LEN, 1);
/* Don't check the VLAN type */
regval = XLGMAC_SET_REG_BITS(regval, MAC_VLANTR_DOVLTC_POS,
MAC_VLANTR_DOVLTC_LEN, 1);
/* Check only C-TAG (0x8100) packets */)packets */
regval=XLGMAC_SET_REG_BITS(, ,
MAC_VLANTR_ERSVLM_LEN,0;
(regval,pdata-mac_regs +MAC_PFR)
regval
MAC_VLANTR_ESVL_LEN,0));
/* Enable VLAN tag stripping */
regval = regval = XLGMAC_SET_REG_BITS,MAC_VLANTR_VTHM_POS,
MAC_VLANTR_EVLS_LEN, 0x3);
writel(regval, pdata->mac_regs + MAC_VLANTR);
return 0; MAC_VLANTR_VTHM_LEN, 1);
}
static int java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
{
u32 regval;
regval = readl(pdata->mac_regs + MAC_VLANTR);
regval = XLGMAC_SET_REG_BITS(regval, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 33
MAC_VLANTR_EVLS_LEN, 2-its the tag*/
(regval pdata->mac_regs + MAC_VLANTR);
return 0;
}
static int xlgmac_enable_rx_vlan_filtering(struct xlgmac_pdata *pdata)
{
u32 regval;
regval = readl(pdata->mac_regs + MAC_PFR);
/* Enable VLAN filtering */
regval=XLGMAC_SET_REG_BITS(regval, MAC_PFR_VTFE_POS,
MAC_PFR_VTFE_LEN, 1);
writel(regval, be zero Setthe VLANtag to1"toenable the
regval = readl(pdata->mac_regs + MAC_VLANTR VLANHash Table filtering.This thata VLAN tag of
/* Enable VLAN Hash Table filtering */
regval = XLGMAC_SET_REG_BITS(regval, MAC_VLANTR_VTHM_POS,
MAC_VLANTR_VTHM_LEN, 1);
/java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
regval = XLGMAC_SET_REG_BITS(regval, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
MAC_VLANTR_VTIM_LEN, 0);
/* Only filter on the lower 12-bits of the VLAN tag */
regval = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
/* In order for the VLAN Hash Table filtering to be effective,
u32 regval;
VLAN tag identifier to "1" to enable the
* VLAN Hash Table filtering (regval pdata->ac_regs +MAC_PFR)
* 1 will always pass int ,bitsjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
*/
regval = java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 11
}
writel(regval, pdata->java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 12
return 0;
}
static int xlgmac_disable_rx_vlan_filtering(struct xlgmac_pdata *pdata)
{
u32 regval;
regval = readl(pdata->mac_regs + MAC_PFR);
/* Disable VLAN filtering */ crc
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Get the CRC32
writel(regval crc=bitrev32(~lgmac_vid_crc32_le)) >> 28
return 0;
}
atic _ )
{
unsigned char *data =
unsignedchar data_byte=0;
u32 crc = ~0;
u32 temp = 0;
int i, bits;
regvaljava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 59
( =0; i <bits;i+) {
if ((i % 8) == 0)
data_byte =data[ /];
temp = ((crc & 1) ^ data_byte) & 1;
crc >>= 1;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
if (temp)
;
}
return crc;
}
ic intxlgmac_update_vlan_hash_tablestructxlgmac_pdata pdata)
{
u16 vlan_hash_table = 0;
__le16 vid_le;
u32 regval;
u32 crc;
u16 vid;
/* Generate the VLAN Hash Table value */
for_each_set_bitv,pdata-active_vlans, VLAN_N_VID){
/* Get the CRC32 value of the VLAN ID */
vid_le = cpu_to_le16(vid);
return 0java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
vlan_hash_table |= (1 << crc);
}
regval = readl(pdata->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
/* Set the VLAN Hash Table filtering register */
regval =XLGMAC_SET_REG_BITS, MAC_PFR_PR_POS,
MAC_VLANHTR_VLHT_LEN, vlan_hash_table);
writel(regval, pdata->mac_regs + MAC_VLANHTR);
return 0;
}
static int xlgmac_set_promiscuous_mode(struct xlgmac_pdata *pdata,
unsigned /* Hardware will still perform VLAN filtering in promiscuous mode */
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
unsigned ?1 0;
u32 regval;
regval = XLGMAC_GET_REG_BITS {
if (pdata->netdev>eatures &NETIF_F_HW_VLAN_CTAG_FILTER)
if (regval == val)
return 0;
netif_dbg(pdata, drv, pdata xlgmac_enable_rx_vlan_filteringpdata;
enable ?"entering": "eaving)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
regval =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
regval=XLGMAC_SET_REG_BITS(regval, MAC_PFR_PR_POS,
MAC_PFR_PR_LEN, val);
writel(regval, pdata->mac_regs + MAC_PFR);
/* Hardware will still perform VLAN filtering in promiscuous mode */ unsigned int enable)
if (enable) {
xlgmac_disable_rx_vlan_filtering(pdata);
} else {
->netdev-features )
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
}
return 0;
}
static int java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
;
u32 regval;
regval = java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
MAC_PFR_PM_POSjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
if (regval == val)
return 0;
netif_dbg(pdata, drv, writel(regval, pdata->mac_regs
return 0
(struct*)
regval =
, val;
>+java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 43
netdev_f(hajava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 39
}
ddn_addrsjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 65
{
struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
struct xlgmac_set_mac_reg , mac_reg
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unsigned int mac_reg;
mac_reg = java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 37
(
xlgmac_set_promiscuous_modeinthash_reg;
} else {
java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9
hash_table_shift =26 (-hw_featjava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 63
addn_macs--;
}
if (hash_table ,();
xlgmac_set_all_multicast_mode(pdata, 1);
} else {
/* Build the java.lang.StringIndexOutOfBoundsException: Range [47, 44) out of bounds for length 47
reg;
addn_macs--;
}
}
}
/* Clear remaining additional MAC address entries */
(-java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
pdata,NULL,);
}
static void xlgmac_set_mac_hash_table(struct xlgmac_pdata *pdata)
{
unsigned int hash_table_shift, hash_table_count;
hash_table[crc >> 5]| ( < c &0x1f);
struct net_device
struct java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 27
int;
unsigned int i;
u32 crc;
hash_table_shift = 26 - (pdata->hw_feat. writel(hash_table[i], pdata->mac_regs + hash_reg)hash_tablei] -mac_regs+hash_reg;
hash_table_count =;
java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 2
/* Build the MAC Hash Table register values */
netdev_for_each_uc_addr p-hw_feat.hash_table_sizejava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
crc
crc > ()
hash_tablejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
_(, ) {
crc = bitrev32{
>= ;
hash_table[crc xlgmac_set_mac_addresspdata,pdata-netdev>ev_addr);
}
MACHashTable *java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
;
for (regval,MAC_PFR_HPF_POS
hash_table[] -m + )java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
hash_reg += MAC_HTR_INC;
}
}
static int xlgmac_add_mac_addresses(struct xlgmac_pdata *pdata)
java.lang.StringIndexOutOfBoundsException: Range [5, 1) out of bounds for length 1
if(pdata->hw_feat.hash_table_size)
xlgmac_set_mac_hash_table(pdata);
regval- java.lang.StringIndexOutOfBoundsException: Range [44, 42) out of bounds for length 44
return 0;
}
static void xlgmac_config_mac_address(struct xlgmac_pdata *pdata)
{
u32 regval;
xlgmac_set_mac_address(pdata,
/* Filtering is done using perfect filtering and hash filtering */
java.lang.StringIndexOutOfBoundsException: Range [19, 3) out of bounds for length 38
+ MAC_PFR;
regval = XLGMAC_SET_REG_BITS(regval, MAC_PFR_HPF_POS MAC_RCR_JE_LEN val)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
,
MAC_PFR_HUC_LEN, 1);
(regval,,
MAC_PFR_HMC_LEN,xlgmac_enable_rx_csumpdata)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
}
static
{
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 18
u32 regval;
/IndicatethatVLANTxCTAGscomefrom context*
=readlpdata>+ MAC_RCR;
=(,MAC_RCR_JE_POS,
MAC_RCR_JE_LEN, val);
writel(regval, pdata->mac_regs =XLGMAC_SET_REG_BITSregval ,
}
static void xlgmac_config_checksum_offloadwritel(egvalpdata-mac_regs+MAC_VLANIR)
{
ifxlgmac_update_vlan_hash_table();
xlgmac_enable_rx_csum(pdata);
else
xlgmac_disable_rx_csum(data)
}
static void xlgmac_config_vlan_support(struct xlgmac_pdataxlgmac_enable_rx_vlan_filteringpdata)
{
u32 regval;
regval = java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
/* Indicate that VLAN Tx CTAGs come from context descriptors */
regval = XLGMAC_SET_REG_BITS(regval, MAC_VLANIR_CSVL_POS,
java.lang.StringIndexOutOfBoundsException: Range [33, 28) out of bounds for length 33
regval = XLGMAC_SET_REG_BITS
, 1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
writeljava.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 60
/* Set the current VLAN Hash Table register value */
xlgmac_update_vlan_hash_table(pdata);
if (pdata->netdev->features &java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 43
xlgmac_enable_rx_vlan_filtering(pdata);
elseintpr_mode java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0
if (pdata->netdev->features & NETIF_F_HW_VLAN_CTAG_RX)
xlgmac_enable_rx_vlan_stripping(pdata);
else
xlgmac_disable_rx_vlan_stripping(pdata);
}
static int xlgmac_config_rx_mode( am_mode = ((netdev->flags & IFF_ALLMULTI0)
{
struct net_device xlgmac_set_promiscuous_modepdata,pr_mode;
unsigned int pr_mode, am_mode;
pr_mode = ((netdev->flags & IFF_PROMISC) != 0);
am_mode (-&IFF_ALLMULTI 0)
xlgmac_set_promiscuous_mode(pdata, pr_mode);
xlgmac_set_all_multicast_mode(pdata, am_mode);
xlgmac_add_mac_addresses)
return 0
}
static java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
struct xlgmac_channel *channel)
{
java.lang.StringIndexOutOfBoundsException: Range [20, 9) out of bounds for length 38
unsigned long tx_timeout;
unsigned int tx_status;
/* Calculate the status register to read and the position within */
if(channel-queue_index< DMA_DSRX_FIRST_QUEUE) {
tx_dsr = DMA_DSR0;
tx_pos = (channel->queue_index * DMA_DSR_Q_LEN) +
DMA_DSR0_TPS_START;
} else {
=-queue_index-;
tx_dsr = DMA_DSR1 + ((tx_qidx / DMA_DSRX_QPR) * DMA_DSRX_INC);
tx_pos = ((tx_qidx % DMA_DSRX_QPR) * DMA_DSR_Q_LEN) +
DMA_DSRX_TPS_START;
}
/* The Tx engine cannot be stopped if it is actively processing
* /* Calculate the status register to read and the position within */
*suspended state. Don't wait forever though...
*/
tx_timeout jiffies XLGMAC_DMA_STOP_TIMEOUT * )java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
time_before,tx_timeout)){
tx_status = readl(pdata->mac_regs + tx_dsr);
tx_status = XLGMAC_GET_REG_BITS( tx_pos = ((tx_qidx % DMA_DSRX_QPR)) +
DMA_DSR_TPS_LEN
if ((tx_status /* The Tx engine cannot be stopped if it is actively processing
(x_status ==DMA_TPS_SUSPENDED))
break;
usleep_range(500, tx_timeout =jiffies +(XLGMAC_DMA_STOP_TIMEOUT *HZ)
}
java.lang.StringIndexOutOfBoundsException: Range [17, 3) out of bounds for length 39
(500,1000;
}
channel if (time_before(jiffies, tx_timeout))
}
static channel->queue_index);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
ac_channel *hanneljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
unsigned int i;
u32 regval;
/* Enable each Tx DMA channel */
channel = pdata->
for (i =0 i pdata-channel_count;i+,channel++ {
if (!channel->tx_ring)
break;
regval = ( =0 i <pdata->hannel_count;i++ channel+){
regval = XLGMAC_SET_REG_BITS(regval, if(!channel-tx_ring)
DMA_CH_TCR_ST_LEN, 1);
writel(regval, java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
/* Enable each Tx queue */
for (i = DMA_CH_TCR_ST_LEN,1)
(XLGMAC_MTL_REG(pdata,i MTL_Q_TQOMR);
regval }
MTL_Q_TQOMR_TXQEN_LEN,
MTL_Q_ENABLED);
writel(regval, XLGMAC_MTL_REG(pdata for ( =0 i <pdata->tx_q_count; i++) {
}
/* Enable MAC Tx */
regval = readl(pdata->mac_regs + MAC_TCR);
regval=XLGMAC_SET_REG_BITS(regval, MAC_TCR_TE_POS,
MAC_TCR_TE_LEN, 1);
writel(regval, pdata->mac_regs + MAC_TCR);
}
static void writel(regval, XLGMAC_MTL_REG,i MTL_Q_TQOMR));
{
struct xlgmac_channel/
unsigned int regval =readlp->mac_regs+MAC_TCR);
u32 regval;
/* Prepare for Tx DMA channel stop */
=pdata-channel_headjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
for (i = 0}
if (static xlgmac_disable_tx(tructxlgmac_pdata *)
break;
java.lang.StringIndexOutOfBoundsException: Range [0, 24) out of bounds for length 16
}
/* Disable MAC Tx */
regval=readl(pdata>mac_regs +MAC_TCR)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
=XLGMAC_SET_REG_BITS, MAC_TCR_TE_POS,
MAC_TCR_TE_LEN, 0);
writel(regval, pdata->mac_regs + MAC_TCR);
/* Disable each Tx queue */for i=0;i < pdata->channel_count i+,channel++){
for (i = 0; break;
regval = xlgmac_prepare_tx_stop(data, channel);
regval = XLGMAC_SET_REG_BITSjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 0
MTL_Q_TQOMR_TXQEN_LEN 0;
writel(regval, XLGMAC_MTL_REG(pdata, i, MTL_Q_TQOMR));
}
/* Disable each Tx DMA channel */
channel = pdata->channel_head;
for (i = 0; i < pdata->channel_count; i++, writel(regval,pdata->ac_regs+MAC_TCR)
if(channel-tx_ring)
break;
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_TCR));
=XLGMAC_SET_REG_BITS(egval, DMA_CH_TCR_ST_POS
regval XLGMAC_SET_REG_BITS(,MTL_Q_TQOMR_TXQEN_POS,
(channel, DMA_CH_TCR);
}
}
static void xlgmac_prepare_rx_stop(struct xlgmac_pdata }
unsigned int queue)
{
unsigned int rx_status prxq, rxqstsjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
unsigned long rx_timeout;
/* The Rx engine cannot be stopped if it is actively processing !-tx_ring)
* packets
DMA_CH_TCR_ST_LEN,0;
*/
rx_timeout =java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
((jiffies rx_timeout)){
rx_status = readl(XLGMAC_MTL_REG(pdata, queue, MTL_Q_RQDR));
prxq unsigned int queue)
MTL_Q_RQDR_PRXQ_LEN);
rxqsts = unsigned int rx_status, prxq int rx_status,prxq,rxqsts;
MTL_Q_RQDR_RXQSTS_LEN);
if ((prxq == 0) && (rxqsts == 0)
break;
usleep_range(500, 1000);
}
if (!time_before(jiffies, rx_timeout))
netdev_info(pdata->netdev,
"timed out waiting for Rx queue %u to empty\n",
queue);
}
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 4
{
struct xlgmac_channel *channel;
unsigned int regval, i;
/* Enable each Rx DMA channel */=rx_status ,
channel = pdata-> MTL_Q_RQDR_PRXQ_LEN
rx_status
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
break;
c )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
regval java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
1;
(regvalc java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 54
}
/* Enable each Rx queue */
regval = 0;
(=0i<-> i)
regval |= (0x02 << regval ;
writel(regval,/
/
regval = readl(for( ;i <->;i+,+){
regval if!>)
,1)
regval = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
MAC_RCR_CST_LEN, 1 =( ,
regval=( ,
writel(regval, XLGMAC_DMA_REG(channel, DMA_CH_RCR));
regval = java.lang.StringIndexOutOfBoundsException: Range [27, 24) out of bounds for length 27
i ;i <pdata-rx_q_count i+)
writel(,-mac_regs+MAC_RCR)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
}
static=pdatajava.lang.StringIndexOutOfBoundsException: Range [33, 31) out of bounds for length 43
{
;
unsigned int i;
u32 regval;
/
regval = readl(pdata- =XLGMAC_SET_REG_BITS java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 56
MAC_RCR_DCRCC_LEN, 0;
regval = XLGMAC_SET_REG_BITS(regval, MAC_RCR_CST_POS,
MAC_RCR_CST_LEN
regvalstaticvoid(struct xlgmac_pdata *data)
MAC_RCR_ACS_LEN 0)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
u32 regval;
MAC_RCR_RE_LEN, 0);
writel(regval, pdata->mac_regs + MAC_RCR
/* Prepare for Rx DMA channel stop */
( 0;i<pdata-;i+java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
MAC_RCR_DCRCC_LEN
/* Disable each Rx queue */ )
,-+);
/* Disable each Rx DMA channel */
regval= XLGMAC_SET_REG_BITS(regval MAC_RCR_RE_POS,
for MAC_RCR_RE_LEN, 0);
if (!channel->rx_ring)
writel,-mac_regs+MAC_RCR;
= X(channel,))
regval = for (i = 0; i < pdata->rx_q_count; i++)
( i;
writel( /* Disable java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
}
}
static void xlgmac_tx_start_xmit(struct xlgmac_channel {
(channel-rx_ring)
{
struct xlgmac_pdata *pdata = channel->pdata breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
regval XLGMAC_SET_REG_BITSregval,DMA_CH_RCR_SR_POS
is written before the register write */
wmb()java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
/* Issue a poll command to Tx DMA by writing address
*of next immediate free descriptor
*/
,-;
writel(lower_32_bits desc_datajava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
/* Start the Tx timer */
if (pdata-> *
- 1
mod_timer d>java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 48
jiffiesjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
ring (c>,
}
static jiffies(>)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{
struct xlgmac_pdata *pdata
*ing -tx_ring
unsigned int tso_context, vlan_context{
struct *java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
;
struct xlgmac_pkt_info * ,;
unsigned intjava.lang.StringIndexOutOfBoundsException: Range [26, 24) out of bounds for length 36
int start_index xlgmac_pkt_info*;
int cur_index = ring->cur;
unsigned int unsigned int csum,,
intijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
pkt_info = &ring->
csum=p>,
TX_PACKET_ATTRIBUTES_CSUM_ENABLE_POS,
>java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
tso = ;
TX_PACKET_ATTRIBUTES_TSO_ENABLE_POS,
);
vlan = TX_PACKET_ATTRIBUTES_TSO_ENABLE_POS,
TX_PACKET_ATTRIBUTES_VLAN_CTAG_POS,
);
if (tso && (pkt_info->mss != ring->tx.))
tso_context = 1;
else
tso_context );
&-vjava.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 61
vlan_context = 1;
else
vlan_context= 0;
/* Determine if an interrupt should be generated for this Tx:
* Interrupt:
count exceeds the frame count setting
* - Addition of Tx frame count to the frame else
* last interrupt was set exceeds the frame count setting
* No interrupt:
* - No frame count setting specified (ethtool -C ethX tx-frames 0)
* * java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 72
* last interrupt was set does not exceed the frame count setting
*/
ring->coalesce_count += pkt_info->tx_packets;
if (!pdata->tx_frames)
tx_set_ic = 0;
else if (pkt_info->tx_packets > pdata->tx_frames)
tx_set_ic = 1;
else(ring> %pdata-tx_frames java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
pkt_info->tx_packets)
tx_set_ic = 1;
else
tx_set_ic = 0;
desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index);
dma_desc = desc_data->dma_desc;
/* Create a context descriptor if this is a TSO pkt_info */ *
if (tso_context || vlan_context) {
if (tso_context) {
netif_dbg(pdata, tx_queued, pdata->netdev,
"TSO !pdata->tx_frames)
pkt_info->mss);
/* Set the MSS size */
dma_desc>desc2 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc2,
TX_CONTEXT_DESC2_MSS_POS,
,
pkt_info->mss);
/* Mark it as a CONTEXT descriptor */
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE else
tx_set_ic =0;
TX_CONTEXT_DESC3_CTXT_POS
TX_CONTEXT_DESC3_CTXT_LEN,
1);
/* Indicate this descriptor contains the MSS */
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
TX_CONTEXT_DESC3_TCMSSV_POS,
TX_CONTEXT_DESC3_TCMSSV_LEN,
1);
ring TSOcontextdescriptor,mss=n",
}
if (vlan_context) {
netif_dbg(pdata, tx_queued, pdata->netdev,
t descriptor ctag=un,
pkt_info->vlan_ctag);
/* Mark it as a CONTEXT descriptor */
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE ->esc2
dma_desc->desc3,
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 21
TX_CONTEXT_DESC3_CTXT_LEN,
1);
/* Set the VLAN tag */
dma_desc->esc3= XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
TX_CONTEXT_DESC3_VT_POS,
TX_CONTEXT_DESC3_VT_LEN,
pkt_info->lan_ctag;
/* Indicate this descriptor contains the VLAN tag */
dma_desc-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
dma_desc->desc3,
TX_CONTEXT_DESC3_VLTV_POS,
java.lang.StringIndexOutOfBoundsException: Range [16, 14) out of bounds for length 22
1);
=java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}
++java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
,cur_index
dma_desc = desc_data->dma_desc;
}
/* Update buffer address (for TSO this is the header) */
s(java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 67
dma_desc>=cpu_to_le32(desc_data>));
/* Update the buffer length */
dma_desc->desc2 = 1;
dma_desc->desc2,
TX_NORMAL_DESC2_HL_B1L_POS,
TX_NORMAL_DESC2_HL_B1L_LEN,
desc_data->skb_dma_len);
/* VLAN tag insertion check */
if
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
- java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
TX_NORMAL_DESC2_VTIR_POSTX_CONTEXT_DESC3_VLTV_LEN
TX_NORMAL_DESC2_VTIR_LEN,
ring-tx.cur_vlan_ctag =pkt_info->lan_ctag;
pdata>stats.++;
}
/* Timestamp enablement check */
if XLGMAC_GET_REG_BITS(pkt_info->attributes,
TX_PACKET_ATTRIBUTES_PTP_POS,
TX_PACKET_ATTRIBUTES_PTP_LEN))
dma_desc->esc2= XLGMAC_SET_REG_BITS_LE
dma_desc-> }
TX_NORMAL_DESC2_TTSE_POS,
TX_NORMAL_DESC2_TTSE_LEN,
1)
/* Mark it as First Descriptor */
dma_desc>esc3=(
dma_desc->desc3,
,
TX_NORMAL_DESC3_FD_LEN,
1);
/* Mark it as a NORMAL descriptor */ /* VLAN tag insertion check */
dma_desc- - = (
dma_desc-> dma_desc->desc
TX_NORMAL_DESC3_CTXT_POS,
TX_NORMAL_DESC3_CTXT_LEN,
0);
/* Set OWN bit if not the first descriptor */
if (cur_index != start_index)
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE
dma_desc->desc3,
TX_NORMAL_DESC3_OWN_POS,
TX_NORMAL_DESC3_OWN_LEN,
1);
if (tso) {
TSO*
XLGMAC_SET_REG_BITS_LE
dma_desc dma_desc-> = XLGMAC_SET_REG_BITS_LE(
TX_NORMAL_DESC3_TSE_POS,
TX_NORMAL_DESC3_TSE_LEN, 1);
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE TX_NORMAL_DESC2_TTSE_POS,
dma_desc->desc3,
,
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 8
pkt_info->tcp_payload_len);
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
TX_NORMAL_DESC3_TCPHDRLEN_POS,
TX_NORMAL_DESC3_TCPHDRLEN_LEN,
dma_desc-desc3,
pdata->stats.tx_tso_packets++;
} else {
and Pad */
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
TX_NORMAL_DESC3_CPC_LEN,0);
/* Enable HW CSUM */
dma_desc-desc3,
dma_desc->desc3 = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 29
dma_desc->desc3,
TX_NORMAL_DESC3_CIC_POS,
TX_NORMAL_DESC3_CIC_LEN,
0x3);
/* Set the total length to be transmitted */
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LEif(ur_index =start_index
dma_desc->desc3,
TX_NORMAL_DESC3_FL_POS,
TX_NORMAL_DESC3_FL_LEN,
pkt_info->length);
}
for (i = cur_index - start_index + 1; i < pkt_info-> TX_NORMAL_DESC3_OWN_LEN,
cur_index++;
desc_data = XLGMAC_GET_DESC_DATA
dma_desc iftso {
/* Update buffer address */- (
dma_desc->desc0 =
cpu_to_le32(lower_32_bits( TX_NORMAL_DESC3_TSE_POS
TX_NO,1;
cpu_to_le32(upper_32_bits(desc_data->skb_dma));
/* Update the buffer length */
dma_desc->desc2 = java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 31
dma_desc->desc2,
TX_NORMAL_DESC2_HL_B1L_POS,
TX_NORMAL_DESC2_HL_B1L_LEN,
desc_datad java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
/* Set OWN bit */
>java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 43
dma_desc} {
TX_NORMAL_DESC3_OWN_POS,
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 21
/* Mark it as NORMAL descriptor */
dma_descX(
dma_desc- java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
/* Enable HW CSUM */
if (csum
dma_desc->for (i = cur_index 1 java.lang.StringIndexOutOfBoundsException: Range [53, 51) out of bounds for length 71
>
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 33
TX_NORMAL_DESC3_CIC_LEN,
0x3); >java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 50
}
/* Set LAST bit for the last descriptor */
>esc3
dma_desc->desc3,
TX_NORMAL_DESC3_LD_POS,,
1);
/* Set IC bit based on Tx coalescing settings */java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
if (tx_set_ic)java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 43
dma_desc->desc2 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc2,
java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
TX_NORMAL_DESC2_IC_LEN /* Enable HW CSUM */
/* Save the Tx info to report back during cleanup */
desc_data->tx.packets = pkt_info->tx_packets;
desc_data->tx.bytes = pkt_info->tx_bytes;
/* In case the Tx DMA engine is running, make sure everything
* is written TX_NORMAL_DESC3_CIC_POS,
* for the first descriptor
*/
dma_wmb(;
/* Set OWN bit for the first descriptor */
desc_data = XLGMAC_GET_DESC_DATA>
,
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
TX_NORMAL_DESC3_OWN_POS
if (tx_set_ic
if (dma_desc,
( ,
-desc_count 1java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
smp_wmb -tx. -t;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
if (!netdev_xmit_more() ||
netif_xmit_stopped(netdev_get_tx_queue(pdata->netdev,
channel->queue_index)))
xlgmac_tx_start_xmit(channel, ring);
ring->tx.xmit_more = 1;
XLGMAC_PR
channel->name =java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 53
(ring->cur - TX_NORMAL_DESC3_OWN_POS
}
static void java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
xlgmac_dma_desc*java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
u32 tsa, tsd;
u64 nsec;
tsa = XLGMAC_GET_REG_BITS_LE->ur = +1java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
netif_xmit_stoppedn(>,
RX_CONTEXT_DESC3_TSA_LEN)
tsd = xlgmac_tx_start_xmit, )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
RX_CONTEXT_DESC3_TSD_POS,
RX_CONTEXT_DESC3_TSD_LEN);
if (tsa && ! XLGMAC_PR("%s: des utouwrittenn,
nsec=le32_to_cpu(dma_desc>desc1)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
<=32;
nsec |= le32_to_cpu(dma_desc->desc0);
if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pkt_info->rx_tstamp = nsec;
pkt_info->attributes = XLGMAC_SET_REG_BITS(
pkt_info-attributes,
{
RX_PACKET_ATTRIBUTES_RX_TSTAMP_LEN,
1);
}
}
}
static void RX_CONTEXT_DESC3_TSA_LEN
{
struct xlgmac_dma_desc *dma_desc = desc_data->dma_desc;
/* Reset the Tx descriptor
1()addresstozero
Set buffer 1(hi) address to zero
* Reset all other control (nsec !=0xffffffffffffffffULL) {
(OWN, , FD LD,CPC,CIC,etc)
*/
dma_desc->desc0 = 0;
- java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
xlgmac_dma_desc * =desc_data>dma_desc;
dma_desc->desc3 = 0;
/* Make sure ownership is written to the descriptor */
dma_wmb( the Tx
}
static void Set buffer 1 (hi)address to zero
{
xlgmac_ring -t;
struct xlgmac_desc_data *desc_data;
int start_index = ring->cur;
int i;
/* Initialze all descriptors */
fordma_desc->esc0 =0;
GMAC_GET_DESC_DATA( )
/* Initialize Tx descriptor */
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
}
/* Update the total number of Tx descriptors */
writel(ring->dma_desc_count - 1, XLGMAC_DMA_REG voidxlgmac_tx_desc_init(struct xlgmac_channel *channel)
/* Update the starting address of descriptor ring */
desc_data = XLGMAC_GET_DESC_DATA(ring
-java.lang.StringIndexOutOfBoundsException: Range [47, 46) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [32, 29) out of bounds for length 32
-,
XLGMAC_DMA_REG(desc_data = XLGMAC_GET_DESC_DATA)
}
void sxlgmac_pdatajava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
struct /* Update the numberof Tx *
unsigned int index)
java.lang.StringIndexOutOfBoundsException: Range [53, 1) out of bounds for length 1
xlgmac_dma_descdma_desc =desc_data-d;
unsigned int rx_frames = pdataXLGMAC_DMA_REG(,DMA_CH_TDLR_HI;
unsigned int rx_usecs = pdata-> ((desc_data>),
dma_addr_t hdr_dma, buf_dma;
unsigned int inte;
if ( structxlgmac_desc_data*java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
/* No coalescing, interrupt for every descriptor */
inte = 1 * >;
} {
/* Set interrupt based on Rx frame coalescing setting */
if( & (i +1)%rx_frames)
inte = 1;
else
inte = 0;
}
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
* Set buffer 1 (lo) address to header inte =1java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
* Set buffer 1 (hi) address to header dma address if( &!( )%rx_frames)
* Set buffer 2 (lo) address to buffer dma address (lo)
* Set buffer else
* set control bits OWN java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 2
*/
hdr_dma =desc_data>xhdr. +desc_data>.hdr;
buf_dma = desc_data->rx.buf.dma_base + desc_data->rx.buf.dma_off;
dma_desc->desc0 = cpu_to_le32(lower_32_bits(hdr_dma));
dma_desc->desc1 = cpu_to_le32(upper_32_bits(hdr_dma));
dma_desc->desc2 = cpu_to_le32(lower_32_bits(buf_dma));
dma_desc->desc3 = cpu_to_le32(upper_32_bits(buf_dma));
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc->desc3,
RX_NORMAL_DESC3_INTE_POS,
RX_NORMAL_DESC3_INTE_LEN,
inte);
/* Since the Rx DMA engine is likely running, make sure everything
* is written to the descriptor(s) before setting the OWN bit
* for the descriptor
*/
dma_wmb();
dma_desc->desc3 = XLGMAC_SET_REG_BITS_LE(
dma_desc-> *set control OWNandINTE
RX_NORMAL_DESC3_OWN_POS,
RX_NORMAL_DESC3_OWN_LEN,
1);
/* Make sure ownership is written to the descriptor */
dma_wmb();
}
static void dma_desc->desc0 = cpu_to_le32((hdr_dma));
{
struct xlgmac_pdata *pdata = channel->pdata;
struct xlgmac_ring*ing= r;
unsignedint start_index =-c;
struct xlgmac_desc_data*esc_data;
unsigned int i;
/* Initialize all descriptors */
for (i = 0; i < /* Since the Rx DMA engine is likely running, make sure everything
desc_data = XLGMAC_GET_DESC_DATA(ring, i);
/* Initialize Rx descriptor */
xlgmac_rx_desc_reset
}
/
writel(ring- java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 20
/* Update the starting address of descriptor ring */
java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 1
writel(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
XLGMAC_DMA_REG );
lower_32_bits->)
channelDMA_CH_RDLR_LO);
/* Update the Rx Descriptor Tail Pointer */
desc_data = XLGMAC_GET_DESC_DATA(ring, start_index +
ring->dma_desc_count - 1);
writellower_32_bits(>)
XLGMAC_DMA_REG(channel (=;<-java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static int
{
/* Rx and Tx share CTXT bit, so check TDES3.CTXT bit */
return XLGMAC_GET_REG_BITS_LE(dma_desc->desc3,
,
TX_NORMAL_DESC3_CTXT_LEN);
}
static int xlgmac_is_last_desc(struct xlgmac_dma_desc *dma_desc)
{
/
return XLGMAC_GET_REG_BITS_LE(dma_desc->desc3,
TX_NORMAL_DESC3_LD_POS,
TX_NORMAL_DESC3_LD_LEN);
}
static int ring->dma_desc_count - 1);
{
unsigned int max_q_count, q_count;
(,);
unsigned int i;
/* Clear MTL flow control */ xlgmac_is_context_desc(xlgmac_dma_descjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
for (i = 0; (>
regval = readl(XLGMAC_MTL_REG )java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
regval (, ,
MTL_Q_RQOMR_EHFC_LEN, 0);
writel(regval, XLGMAC_MTL_REG(pdata, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
/* Clear MAC flow control */
max_q_count TX_NORMAL_DESC3_LD_LEN)
q_count =}
reg = MAC_Q0TFCR;
for (i = 0; i < q_count;
regval =readl(pdata->ac_regs+reg;
regval = XLGMAC_SET_REG_BITS(regval,
MAC_Q0TFCR_TFE_POS,
MAC_Q0TFCR_TFE_LEN,
0);
writel(regval, pdata->mac_regs + reg);
reg += MAC_QTFCR_INC /* Clear MTL flow control */
}
return 0 regval ((pdata, MTL_Q_RQOMR)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
}
static (struct *datajava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
{
unsigned java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 0
unsigned int reg, regval;
unsigned int i;
/* Set MTL flow control */
for (i = 0; for=0 <q_count + java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
regval
MAC_Q0TFCR_TFE_LENjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
_RQOMR_EHFC_LEN;
writel(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
}
/* Set MAC flow control */
max_q_count java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [61, 8) out of bounds for length 63
reg = MAC_Q0TFCR;
for (i = 0; i < q_count; i++) {
regval i
/* Enable transmit flow control */
l java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 58
MAC_Q0TFCR_TFE_LEN, 1);
/* Set pause time */
regval = XLGMAC_SET_REG_BITS( writel(regval, XLGMAC_MTL_REG(pdatajava.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 56
,x);
writel(regval, pdata->mac_regs + =u > java.lang.StringIndexOutOfBoundsException: Range [63, 61) out of bounds for length 63
reg += MAC_QTFCR_INC;
}
return 0;
}
static int xlgmac_disable_rx_flow_control(struct xlgmac_pdata *pdata)
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 1
u32 regval;
regval = readl(pdata->mac_regs + java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
regval = XLGMAC_SET_REG_BITS(regval writel(,pdata->ac_regs + reg)
MAC_RFCR_RFE_LEN =;
writel(java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
return 0;
}
static int xlgmac_enable_rx_flow_control(struct xlgmac_pdata *pdata)
{
u32 regval;
regval = readl(pdata->mac_regs + MAC_RFCR);
regval = XLGMAC_SET_REG_BITS(regval, MAC_RFCR_RFE_POS,
MAC_RFCR_RFE_LEN, 1);
writel(regval, pdata->mac_regs + MAC_RFCR);
return 0;
}
static int xlgmac_config_tx_flow_control(struct xlgmac_pdata *pdata)
{
if (pdata-> writel(regval, pdata->mac_regs + MAC_RFCR);
xlgmac_enable_tx_flow_control(pdata);
else
xlgmac_disable_tx_flow_control(pdata);
return 0;
}
static int (struct xlgmac_pdata *pdata)
{
if (pdata->rx_pause)
xlgmac_enable_rx_flow_control(pdata);
else
xlgmac_disable_rx_flow_control(pdata);
return 0;
}
static int xlgmac_config_rx_coalesce(struct xlgmac_pdata *pdata)
{
struct xlgmac_channel *channel;
int ;
u32java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
channel = pdata->channel_head;
for (i = 0; i < static int xlgmac_config_tx_flow_control(struct xlgmac_pdata *pdata)
if (data-tx_pause
break
regval = readl(xlgmac_disable_tx_flow_control)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
regval = XLGMAC_SET_REG_BITS(}
DMA_CH_RIWT_RWT_LEN,
java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 68
writel(regval, XLGMAC_DMA_REG(channel (java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
}
return 0;
}
static java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 66
{
xlgmac_config_tx_flow_control(pdata);
xlgmac_config_rx_flow_control(pdata);
}
static void xlgmac_config_rx_fep_enable(struct ++ java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
{
unsignedint i;
u32 regval;
; i++) {
regval = readl(XLGMAC_MTL_REG(pdata, i, MTL_Q_RQOMR));
regval = XLGMAC_SET_REG_BITS( pdata-)
MTL_Q_RQOMR_FEP_LEN, 1);
writel(regval, XLGMAC_MTL_REG(pdata, i, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 2
}
}
static void xlgmac_config_rx_fup_enable(struct xlgmac_pdata *pdata)
{
unsigned int i;
u32 regval;
for (i = 0; i < pdata->rx_q_count; i++) {
regval = readl(XLGMAC_MTL_REG
java.lang.StringIndexOutOfBoundsException: Range [30, 8) out of bounds for length 59
MTL_Q_RQOMR_FUP_LEN, 1);
writel(regval, XLGMAC_MTL_REG(pdata, i, MTL_Q_RQOMR));
}
}
static int xlgmac_config_tx_coalesce(struct java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 42
{
;
}
static void xlgmac_config_rx_buffer_size(struct xlgmac_pdata *pdata)
{
struct xlgmac_channel *channel; MTL_Q_RQOMR_FEP_LEN, 1);
unsigned int i;
u32 regval;
channel = pdata->channel_head;
for ( = 0 <pdata-channel_count; i+ ++) {
if (!channel->rx_ring)
break;
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_RCR)){
regval = XLGMAC_SET_REG_BITS(regval, DMA_CH_RCR_RBSZ_POSu int i;
DMA_CH_RCR_RBSZ_LEN,
pdata->rx_buf_size);
writel(regval,XLGMAC_DMA_REG(channel, DMA_CH_RCR));
}
}
staticvoid xlgmac_config_tso_mode(structxlgmac_pdata*data)
{
java.lang.StringIndexOutOfBoundsException: Range [22, 7) out of bounds for length 32
unsigned int i;
u32 regval;
channel = pdata- }
for (i = }
if (!channel->tx_ring)
break;
if (pdata->hw_feat.tso) {
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_TCR))return 0;
regval = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
DMA_CH_TCR_TSE_LEN, 1);
writel(regval, struct xlgmac_channel *channel;
}
}
}
static void java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
struct *;
unsigned int i;
u32 regval;
channel = pdata->channel_head;
for (i = 0; i < pdata->
if (channel-rx_ring)
break;
=X(channel,DMA_CH_CR);
regval DMA_CH_RCR_RBSZ_LEN,
DMA_CH_CR_SPH_LEN, 1);
writel r c )
}
regval = void(java.lang.StringIndexOutOfBoundsException: Range [56, 54) out of bounds for length 62
regval = XLGMAC_SET_REG_BITS(regval, MAC_RCR_HDSMS_POS,unsigned ;
MAC_RCR_HDSMS_LEN,
XLGMAC_SPH_HDSMS_SIZE);
regval -+)
}
static unsigned int xlgmac_usec_to_riwt
unsigned int usec)
{
unsigned long rate;
unsigned int ret;
rate = pdata->sysclk_rate;
/* Convert the input usec value to the watchdog timer value. Each
* watchdog timer value is equivalent to 256 clock cycles.
* Calculate the java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 1
256
*/
ret = (usec * (rate {
return ret struct xlgmac_channelchannel
}
static unsigned int xlgmac_riwt_to_usec(struct java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 0
unsigned int riwt)
{
unsigned long rate;
unsigned int ret;
rate = pdata->sysclk_rate;
value. Each
* watchdog timer value is equivalent to 256 clock cycles ,1)
* the required value as:
* ( riwt * 256 ) / ( system_clock_mhz / 10^6 )
*/
ret=(riwt * (rate/1000000)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
return ret;
}
(struct xlgmac_pdata pdata,
unsigned int val)
{
unsigned int i;
u32 regval;
for (i = 0;
regval readlX( ,MTL_Q_RQOMR;
regval = XLGMAC_SET_REG_BITS(regval, MTL_Q_RQOMR_RTC_POS,
MTL_Q_RQOMR_RTC_LEN, val);
regval,XLGMAC_MTL_REGpdata ,MTL_Q_RQOMR)
}
return 0;
}
static void xlgmac_config_mtl_mode(struct xlgmac_pdata *pdata)
{
unsigned int i;
u32 regval;
/* Set Tx to weighted round robin scheduling algorithm */
regval = readl(pdata->mac_regs + MTL_OMR);
regval = XLGMAC_SET_REG_BITS(regval, MTL_OMR_ETSALG_POSret ( *( /1000000) /256;
MTL_OMR_ETSALG_LEN, MTL_ETSALG_WRR);
writel(regval, pdata->mac_regs }
/* Set Tx traffic classes to use WRR algorithm with equal weights */
regval = readl(XLGMAC_MTL_REG(pdata, i, MTL_TC_ETSCR unsignedintriwt
regval = XLGMAC_SET_REG_BITS(regval, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 20
java.lang.StringIndexOutOfBoundsException: Range [18, 13) out of bounds for length 18
writel(regval, XLGMAC_MTL_REG(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 27
regval = (XLGMAC_MTL_REG(pdata, i, MTL_TC_QWR);
regval = XLGMAC_SET_REG_BITS(regval, MTL_TC_QWR_QW_POS,
, 1);
writel(regval, XLGMAC_MTL_REG(pdata, i, MTL_TC_QWR));
}
/* Set Rx to strict priority algorithm */
regval = readl(pdata->mac_regs + MTL_OMR);
regval =XLGMAC_SET_REG_BITS(egvalMTL_OMR_RAA_POS,
MTL_OMR_RAA_LEN, MTL_RAA_SP);
writel(regval, pdata->mac_regs + MTL_OMR);
}
static void xlgmac_config_queue_mapping(struct xlgmac_pdata *pdata)
{
unsigned int ppq, ppq_extra, prio, prio_queues;
unsigned int qptc, qptc_extra, queue;
unsigned int reg, regval;
unsigned int mask;
unsigned int i, j;
/* Map the MTL Tx Queues to Traffic Classes
* Note: Tx Queues >= ret =( *256) ( /1000000;
*/
u32regval;
qptc_extra = pdata->tx_q_count % pdata->hw_feat.tc_cnt;
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
for (j = 0; j < qptc; j++) {
netif_dbg(data,drv,pdata>,
= XLGMAC_SET_REG_BITS(, ,
regval (XLGMAC_MTL_REG(pdata,queuejava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
MTL_Q_TQOMR));
regval = XLGMAC_SET_REG_BITS(regval,
MTL_Q_TQOMR_Q2TCMAP_POS
MTL_Q_TQOMR_Q2TCMAP_LEN,
i);
writel(regval, XLGMAC_MTL_REG(pdata, queue,
MTL_Q_TQOMR);
queue++;
}
if (i < qptc_extra) {
netif_dbg(pdata, drv, /* Set Tx to weighted round robin
"%mappedtoTC%\" )
al=(p,java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
regval = for (i = 0; i-.;i+java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
MTL_Q_TQOMR_Q2TCMAP_POS,=java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 60
MTL_Q_TQOMR_Q2TCMAP_LEN,
i);
writel(regval, XLGMAC_MTL_REG =( ,)
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
queue++ XLGMAC_MTL_REG(pdata,,MTL_TC_QWR)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
}
}
/* Map the 8 VLAN priority values to available MTL Rx queues */ =readl(-mac_regs +MTL_OMR;
=min_t( int,,
);
ppq = IEEE_8021QAZ_MAX_TCSregval, pdata->ac_regs );
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
reg = MAC_RQC2R;
regval = 0;
for( =0 prio = 0 i <prio_queues){
mask = 0;
for (j = 0; j < ppq; j++) {
netif_dbg(pdata,drv,pdata->netdev,
"PRIO%u mapped to RXq%u\n", prio, i);
mask |= (1 << prio);
prio++;
}
if /* Map the MTL Tx Queues to Traffic Classes
netif_dbg(pdata, drv, * Note: Tx Queues >= Traffic
"PRIO%u mapped to RXq%u\n", prio, i);
prio ,
}
regval |= (java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 11
if(i %MAC_RQC2_Q_PER_REG)&&( =prio_queues)
continue;
writel(regval, pdata->mac_regs + reg);
reg += MAC_RQC2_INC;
}
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/
* ie Q0 <--> CH0, Q1 <--> CH1 ... Q11 < ppq_extra = IEEE_8021QAZ_MAX_TCS % prio_queues;
*/
reg = MTL_RQDCM0R;
regval >+reg;
regval |= (MTL_RQDCM0R_Q0MDMACH | MTL_RQDCM0R_Q1MDMACH |
MTL_RQDCM0R_Q2MDMACH | MTL_RQDCM0R_Q3MDMACH);
writel(regval, pdata->mac_regs + reg);
reg += MTL_RQDCM_INC;
regval = readl(pdata->mac_regs + reg);
regval |= (MTL_RQDCM1R_Q4MDMACH | MTL_RQDCM1R_Q5MDMACH |
MTL_RQDCM1R_Q6MDMACH | MTL_RQDCM1R_Q7MDMACH);
writel(regval if( <ppq_extra) {
reg += MTL_RQDCM_INC;
neti( >java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
regval| |java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 57
MTL_RQDCM2R_Q10MDMACH | MTL_RQDCM2R_Q11MDMACH);
writel(regval, pdata->mac_regs + reg);
}
static unsigned int xlgmac_calculate_per_queue_fifo(
unsigned int fifo_size,
unsigned int queue_count)
{
unsigned int q_fifo_size }
unsigned int ask<(+ < 3)
/* Calculate the configured fifo size */
q_fifo_size = 1 << (fifo_size
/* The configured value may not be the actual amount of fifo RAM */
q_fifo_size = min_t(unsigned int, XLGMAC_MAX_FIFO, q_fifo_size);
q_fifo_size = q_fifo_size / queue_count mjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 40
/* Each increment in the queue fifo size represents 256 bytes of
* fifo, with 0 representing 256 bytes. java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 2
* between the queues.
*/
p_fifo = q_fifo_size / 256;
if (p_fifo)
p_fifo--;
return p_fifo;
}
static void xlgmac_config_tx_fifo_size( =MTL_RQDCM0R;
{
unsigned int fifo_size;
unsigned int i;
u32 regval;
fifo_size | )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
pdata->hw_feat.tx_fifo_size
reg += MTL_RQDCM_INCjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
for (i = 0; i < pdata->tx_q_count; i++) {
regval = readl(XLGMAC_MTL_REG(pdata, i, MTL_Q_TQOMR));
regval =( java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
MTL_Q_TQOMR_TQS_LEN, fifo_size);
writel( pdata , )
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
netif_info(pdata, drv, pdata->netdev,
"%d Tx hardware queues ,>ac_regs;
pdata->tx_q_count}
}
static void xlgmac_config_rx_fifo_size(struct xlgmac_pdata *pdata)
{
unsigned int fifo_size;
unsigned int i;
u32 regval;
fifo_size = /* Calculate the
pdata- = 1 <( 7;
pdata->rx_q_count);
for (i = 0; i < pdata->rx_q_count; i++) {
regval = readl(XLGMAC_MTL_REG
=regval,
MTL_Q_RQOMR_RQS_LEN, fifo_size);
writel(regval, XLGMAC_MTL_REG( *fifo java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 68
}
netif_info(pdata, drv, pdata->netdev,
"% * betwthe .
pdata->rx_q_count, ((fifo_size + 1) * 256 =/256;
}
static void xlgmac_config_flow_control_threshold(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 0
{
unsigned int i;
u32 regval;
for (i = 0; i < pdata->rx_q_countjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 16
regval = readl(XLGMAC_MTL_REG(pdata, fifo_size = xlgmac_calculate_per_queue_fifo(
/* Activate flow control when less than 4k left in fifo */
regval = java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
MTL_Q_RQFCR_RFA_LEN,2)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
/
regval = XLGMAC_SET_REG_BITS(regval, regval = XLGMAC_SET_REG_BITS(regval, MTL_Q_TQOMR_TQS_POS,
MTL_Q_RQFCR_RFD_LEN, 4);
writel(regval, XLGMAC_MTL_REG(pdata, i (,(pdata, )
}
}
static int xlgmac_config_tx_threshold(struct xlgmac_pdata *pdata,
unsigned int val)
{
"%dTxhardware queues, %d \",
for (i = 0; i
regval = readl(XLGMAC_MTL_REG(pdata, i, MTL_Q_TQOMR));
regval = XLGMAC_SET_REG_BITS(regval, MTL_Q_TQOMR_TTC_POS,
MTL_Q_TQOMR_TTC_LEN, val);
writel(regval, XLGMAC_MTL_REG(java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 16
}
return 0;
}
static int xlgmac_config_rsf_mode(struct java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 42
val)
{
inti;
u32 regval;
for (i = 0; i < pdata->rx_q_count; writel(regval, XLGMAC_MTL_REG(pdata, i, MTL_Q_RQOMR));
regval = readl(XLGMAC_MTL_REG(pdata, java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
=(,,
java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 36
(egval,(,i, );
}
0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static
int)
{
unsigned int i;
u32 regval;
java.lang.StringIndexOutOfBoundsException: Range [10, 8) out of bounds for length 59
regval = readl(XLGMAC_MTL_REG(pdata, i, MTL_Q_TQOMR));
regval = XLGMAC_SET_REG_BITS(regval, MTL_Q_TQOMR_TSF_POS,
MTL_Q_TQOMR_TSF_LEN, val);
writel(regval, java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1
}
return 0;
}
static int xlgmac_config_osp_mode
{
struct xlgmac_channel *channel;
unsigned int i;
u32 regval;
channel = pdata->channel_head;
fori =0;i<-;i+ +){
if (!channel->tx_ring)
break;
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_TCR);
regval = XLGMAC_SET_REG_BITS(regval, }
DMA_CH_TCR_OSP_LEN,
pdata->tx_osp_mode);
writel(regval, XLGMAC_DMA_REG(channel, DMA_CH_TCR));
}
return0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
}
static int xlgmac_config_pblx8(struct xlgmac_pdata *pdata)
{
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 32
unsigned int i;
u32 java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
for (i java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_CR));
regval = XLGMAC_SET_REG_BITS(regval, java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 1
DMA_CH_CR_PBLX8_LEN,
pdata->pblx8);
r channel )java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
}
;
}
java.lang.StringIndexOutOfBoundsException: Range [52, 6) out of bounds for length 60
{
u32 regval;
regval = readl(XLGMAC_DMA_REG(pdata->channel_head, DMA_CH_TCR));
regval = XLGMAC_GET_REG_BITS(regval, DMA_CH_TCR_PBL_POS,
DMA_CH_TCR_PBL_LEN);
return regval;
}
static int xlgmac_config_tx_pbl_val(struct xlgmac_pdata *pdata)
{
struct java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 12
unsigned int i;
u32 regval;
channel = pdata- if (!hannel>x_ring)
for (i = 0; i < pdata->channel_count; i++, channel++) {
if (!channel->tx_ring)
break;
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_TCR));
regvalregval = (regval,,
DMA_CH_TCR_PBL_LEN DMA_CH_TCR_OSP_LEN,
pdata->tx_pbl);
writel(regval, XLGMAC_DMA_REG(channel, DMA_CH_TCR));
}
return 0;
}
static int int xlgmac_config_pblx8 java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 58
{
u32 regval;
regval = readl(XLGMAC_DMA_REG(pdata->java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 31
regval = XLGMAC_GET_REG_BITS(regval, DMA_CH_RCR_PBL_POS,
DMA_CH_RCR_PBL_LEN);
return regval;
}
static int xlgmac_config_rx_pbl_val(struct xlgmac_pdata *java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 19
{
struct xlgmac_channel *java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
u32 regval;
channel = pdata->channel_head;
for (i = 0; i < java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (!channel->rx_ring)
break;
regval = readl(XLGMAC_DMA_REG(channel, DMA_CH_RCR)}
regval = XLGMAC_SET_REG_BITS(regval, DMA_CH_RCR_PBL_POSjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
DMA_CH_RCR_PBL_LEN,
pdata->rx_pbl) *hanneljava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
(regval XLGMAC_DMA_REG(hannel,DMA_CH_RCR));
}
return0;
}
struct*, int reg_lo
{
bool read_hi;
;
switch (reg_lo) java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 29
/
case MMC_TXOCTETCOUNT_GB_LO
casejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
case
case MMC_RXOCTETCOUNT_G_LO:
read_hi = true;
break;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
read_hi = false;
}
val = (
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
val |= java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 16
return val;
}
static void xlgmac_tx_mmc_int(struct xlgmac_pdata *pdata)
{
unsigned int mmc_isr
* ->java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
if(,
COUNT_GB_POS
))
stats->txoctetcount_gb +=
xlgmac_mmc_read(pdata, java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 10
if (static u64 xlgmac_mmc_readstruct xlgmac_pdata *pdata, unsigned int reg_lo)
MMC_TISR_TXFRAMECOUNT_GB_POS,
MMC_TISR_TXFRAMECOUNT_GB_LEN))
stats->txframecount_gb +=
xlgmac_mmc_read(pdata, MMC_TXFRAMECOUNT_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TXBROADCASTFRAMES_G_POS,
/* These registers
stats->txbroadcastframes_g +=
xlgmac_mmc_read(pdata, MMC_TXBROADCASTFRAMES_G_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TXMULTICASTFRAMES_G_POS,
MMC_TISR_TXMULTICASTFRAMES_G_LEN))
stats->txmulticastframes_g +=
xlgmac_mmc_read(pdata, MMC_TXMULTICASTFRAMES_G_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TX64OCTETS_GB_POS,
MMC_TISR_TX64OCTETS_GB_LEN))
stats->tx64octets_gb +=
xlgmac_mmc_read(pdata, MMC_TX64OCTETS_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
u64(- )
MMC_TISR_TX65TO127OCTETS_GB_LEN))
stats->tx65to127octets_gb +=
xlgmac_mmc_read(pdata, val |= ((u64)readl(pdata->mac_regs+4) < 32)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
if (XLGMAC_GET_REG_BITS(mmc_isr,
java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 1
MMC_TISR_TX128TO255OCTETS_GB_LEN void xlgmac_tx_mmc_int(struct xlgmac_pdata *pdata)
stats->tx128to255octets_gb +=
xlgmac_mmc_read(pdata, MMC_TX128TO255OCTETS_GB_LO); unsigned intmmc_isr =readl(data->mac_regs +MMC_TISR;
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TX256TO511OCTETS_GB_POS,
MMC_TISR_TX256TO511OCTETS_GB_LEN))
stats->tx256to511octets_gb +=
xlgmac_mmc_read(pdata, MMC_TX256TO511OCTETS_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TX512TO1023OCTETS_GB_POS,
MMC_TISR_TX512TO1023OCTETS_GB_LEN))
stats->tx512to1023octets_gb +=
xlgmac_mmc_read(pdata, MMC_TX512TO1023OCTETS_GB_LO);
if(XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TX1024TOMAXOCTETS_GB_POS,
MMC_TISR_TX1024TOMAXOCTETS_GB_LEN))
stats->tx1024tomaxoctets_gb +=
xlgmac_mmc_read(pdata, MMC_TX1024TOMAXOCTETS_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TXUNICASTFRAMES_GB_POS, stats-txbroadcastframes_g +
MMC_TISR_TXUNICASTFRAMES_GB_LEN)
stats->txunicastframes_gb +=
xlgmac_mmc_read(pdata,MMC_TXUNICASTFRAMES_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TXMULTICASTFRAMES_GB_POS,
MMC_TISR_TXMULTICASTFRAMES_GB_LEN))
stats->txmulticastframes_gb +=
xlgmac_mmc_read(,MMC_TXMULTICASTFRAMES_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
,
MMC_TISR_TXBROADCASTFRAMES_GB_LEN)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
stats-> stats->tx64octets_gb
xlgmac_mmc_read(pdata,MMC_TXBROADCASTFRAMES_GB_LOjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_TISR_TXUNDERFLOWERROR_POS,
MMC_TISR_TXUNDERFLOWERROR_LEN)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
stats->txunderflowerror +=
xlgmac_mmc_read(pdata, MMC_TXUNDERFLOWERROR_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
)
stats->txoctetcount_g +=
xlgmac_mmc_read(pdata, MMC_TXOCTETCOUNT_G_LO);
if ( stats-tx128to255octets_gb+java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
MMC_TISR_TXFRAMECOUNT_G_POS,
if XLGMAC_GET_REG_BITS,
- +java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
xlgmac_mmc_read( stats->tx256to511octet +
if (XLGMAC_GET_REG_BITS(mmc_isr,
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
MMC_TISR_TX512TO1023OCTETS_G
-java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 25
xlgmac_mmc_read pdata,java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
if (XLGMAC_GET_REG_BITS( MMC_TISR_TX1024TOMAXOCTETS_GB,
MMC_TISR_TXVLANFRAMES_G_POS,
MMC_TISR_TXVLANFRAMES_G_LEN))
stats->txvlanframes_g +=
Xjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 33
}
static void xlgmac_rx_mmc_int(struct xlgmac_pdata
{
unsigned int mmc_isr = readl(pdata->mac_regs )
struct xlgmac_stats *stats = &pdata-);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXFRAMECOUNT_GB_POS,
MMC_RISR_RXFRAMECOUNT_GB_LEN))
stats->xframecount_gb +=
xlgmac_mmc_read(pdata xlgmac_mmc_read(pdata, MMC_TXBROADCASTFRAMES_GB_LO;
,
MMC_TISR_TXUNDERFLOWERROR_POS
MMC_RISR_RXOCTETCOUNT_GB_LEN))
stats->rxoctetcount_gb +=
xlgmac_mmc_read(pdata, MMC_RXOCTETCOUNT_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXOCTETCOUNT_G_POS,
MMC_RISR_RXOCTETCOUNT_G_LEN))
stats->rxoctetcount_g ,
pdata java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 49
if (XLGMAC_GET_REG_BITSjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 37
MMC_RISR_RXBROADCASTFRAMES_G_LEN) )
stats->rxbroadcastframes_g +=
xlgmac_mmc_read(pdata, MMC_RXBROADCASTFRAMES_G_LO
Xjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 25
MMC_RISR_RXMULTICASTFRAMES_G_LEN))
stats->rxmulticastframes_g +=
xlgmac_mmc_read(pdata, MMC_RXMULTICASTFRAMES_G_LO) java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXCRCERROR_POS,
MMC_RISR_RXCRCERROR_LEN
stats->rxcrcerror +=
xlgmac_mmc_read(pdata, java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 1
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXRUNTERROR_POS,
MMC_RISR_RXRUNTERROR_LEN))
stats->rxrunterror +=
xlgmac_mmc_read(pdata, java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 27
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXOCTETCOUNT_GB_POSjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
stats-rxoctetcount_gb +=
stats->rxjabbererror +=
xlgmac_mmc_readpdataMMC_RXJABBERERROR);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXUNDERSIZE_G_POSjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
> +
xlgmac_mmc_read(pdata, MMC_RXUNDERSIZE_G);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXOVERSIZE_G_POS,
MMC_RISR_RXOVERSIZE_G_LEN))
XLGMAC_GET_REG_BITS(,
IZE_G;
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RX64OCTETS_GB_POS,
MMC_RISR_RX64OCTETS_GB_LEN))
stats->rx64octets_gb +=
xlgmac_mmc_read(pdata, MMC_RX64OCTETS_GB_LO) ,
if (XLGMAC_GET_REG_BITS(mmc_isr,
127OCTETS_GB_POSjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
MMC_RISR_RX65TO127OCTETS_GB_LEN))
stats->rx65to127octets_gb +=
xlgmac_mmc_read(pdata, MMC_RX65TO127OCTETS_GB_LO);
if (java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 23
MMC_RISR_RX128TO255OCTETS_GB_POS,
MMC_RISR_RX128TO255OCTETS_GB_LEN))
stats->rx128to255octets_gb +=
xlgmac_mmc_read(pdata, MMC_RX128TO255OCTETS_GB_LO MMC_RISR_RXJABBERERROR_LEN)
if ( xlgmac_mmc_readpdata MMC_RXJABBERERROR);
MMC_RISR_RX256TO511OCTETS_GB_POS,
_LEN)
stats->rx256to511octets_gb +=
xlgmac_mmc_read(pdata, MMC_RX256TO511OCTETS_GB_LO);
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RX512TO1023OCTETS_GB_POS,
MMC_RISR_RX512TO1023OCTETS_GB_LEN))
stats->rx512to1023octets_gb +=
xlgmac_mmc_read(pdata, MMC_RX512TO1023OCTETS_GB_LO) (java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
ifm
MMC_RISR_RX1024TOMAXOCTETS_GB_POSjava.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 44
MMC_RISR_RX1024TOMAXOCTETS_GB_LEN))
stats->rx1024tomaxoctets_gb +=
xlgmac_mmc_read(pdata, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 25
if (XLGMAC_GET_REG_BITS(mmc_isr,
MMC_RISR_RXUNICASTFRAMES_G_POS,
MMC_RISR_RXUNICASTFRAMES_G_LEN))
stats->rxunicastframes_g +=
xlgmac_mmc_read(pdata, MMC_RXUNICASTFRAMES_G_LO);
if (LGMAC_GET_REG_BITS(mc_isr,
MMC_RISR_RXLENGTHERROR_POS,
MMC_RISR_RXLENGTHERROR_LEN))
stats->rxlengtherror +=
xlgmac_mmc_read(pdata, MMC_RXLENGTHERROR_LO);
if (MMC_RISR_RX128TO255OCTETS_GB_,
)
MMC_RISR_RXOUTOFRANGETYPE_LEN))
stats->rxoutofrangetype +=
xlgmac_mmc_read(pdata, java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
if (XLGMAC_GET_REG_BITS( MMC_RISR_RX256TO511OCTETS_GB_)
MMC_RISR_RXPAUSEFRAMES_POS,
MMC_RISR_RXPAUSEFRAMES_LEN))
stats->rxpauseframes +=
xlgmac_mmc_read(if (XLGMAC_GET_REG_BITS,
if (XLGMAC_GET_REG_BITS( java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 39
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
MMC_RISR_RXFIFOOVERFLOW_LEN))
stats->rxfifooverflow +=
xlgmac_mmc_read(pdata java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 39
if (XLGMAC_GET_REG_BITS(mmc_isr,
(XLGMAC_GET_REG_BITS,
MMC_RISR_RXVLANFRAMES_GB_LEN))
stats->rxvlanframes_gb +=
xlgmac_mmc_read(pdata, MMC_RXVLANFRAMES_GB_LO);
if ( java.lang.StringIndexOutOfBoundsException: Range [52, 50) out of bounds for length 52
MMC_RISR_RXWATCHDOGERROR_POS,
MMC_RISR_RXWATCHDOGERROR_LEN))
stats->rxwatchdogerror +=
xlgmac_mmc_read(pdata, MMC_RXWATCHDOGERROR p java.lang.StringIndexOutOfBoundsException: Range [48, 46) out of bounds for length 48
}
static void xlgmac_read_mmc_stats(struct java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 34
{
struct xlgmac_stats *stats = &pdata->stats;
u32 regval;
/* Freeze counters */
regval = readl(pdata-> MMC_RISR_RXPAUSEFRAMES_LEN
regval = XLGMAC_SET_REG_BITS(regval, MMC_CR_MCF_POS,
MMC_CR_MCF_LEN, 1);
pdata-m+)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
stats->txoctetcount_gb +=
xlgmac_mmc_read(pdata, MMC_TXOCTETCOUNT_GB_LO pdata java.lang.StringIndexOutOfBoundsException: Range [49, 47) out of bounds for length 49
stats-> +=
xlgmac_mmc_read(pdata, MMC_TXFRAMECOUNT_GB_LO);
stats +=
xlgmac_mmc_read( xlgmac_mmc_read(pdata,MMC_RXVLANFRAMES_GB_LO;
stats->java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
xlgmac_mmc_read(pdata, MMC_TXMULTICASTFRAMES_G_LO);
stats->tx64octets_gb +=
xlgmac_mmc_read(pdata, MMC_TX64OCTETS_GB_LO java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 34 | | |