mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
1793331e09
There is no reason in rx_descs property because davinici_cpdma driver splits pool of descriptors equally between tx and rx channels. That is, if number of descriptors 256, 128 of them are for rx channels. While receiving, the descriptor is freed to the pool and then allocated with new skb. And if in DT the "rx_descs" is set to 64, then 128 - 64 = 64 descriptors are always in the pool and cannot be used, for tx, for instance. It's not correct resource usage, better to set it to half of pool, then the rx pool can be used in full. It will not have any impact on performance, as anyway, the "redundant" descriptors were unused. Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
47 lines
1.6 KiB
C
47 lines
1.6 KiB
C
/* Texas Instruments Ethernet Switch Driver
|
|
*
|
|
* Copyright (C) 2013 Texas Instruments
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* version 2 as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed "as is" WITHOUT ANY WARRANTY of any
|
|
* kind, whether express or implied; without even the implied warranty
|
|
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
#ifndef __CPSW_H__
|
|
#define __CPSW_H__
|
|
|
|
#include <linux/if_ether.h>
|
|
#include <linux/phy.h>
|
|
|
|
struct cpsw_slave_data {
|
|
struct device_node *phy_node;
|
|
char phy_id[MII_BUS_ID_SIZE];
|
|
int phy_if;
|
|
u8 mac_addr[ETH_ALEN];
|
|
u16 dual_emac_res_vlan; /* Reserved VLAN for DualEMAC */
|
|
};
|
|
|
|
struct cpsw_platform_data {
|
|
struct cpsw_slave_data *slave_data;
|
|
u32 ss_reg_ofs; /* Subsystem control register offset */
|
|
u32 channels; /* number of cpdma channels (symmetric) */
|
|
u32 slaves; /* number of slave cpgmac ports */
|
|
u32 active_slave; /* time stamping, ethtool and SIOCGMIIPHY slave */
|
|
u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */
|
|
u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */
|
|
u32 ale_entries; /* ale table size */
|
|
u32 bd_ram_size; /*buffer descriptor ram size */
|
|
u32 mac_control; /* Mac control register */
|
|
u16 default_vlan; /* Def VLAN for ALE lookup in VLAN aware mode*/
|
|
bool dual_emac; /* Enable Dual EMAC mode */
|
|
};
|
|
|
|
void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave);
|
|
int ti_cm_get_macid(struct device *dev, int slave, u8 *mac_addr);
|
|
|
|
#endif /* __CPSW_H__ */
|