drivers: net: xgene: Get channel number from device binding
This patch gets ethernet to CPU channel (prefetch buffer number) from the newly added 'channel' property, thus decoupling Linux driver from resource management. Signed-off-by: Iyappan Subramanian <isubramanian@apm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
582a1db988
commit
2a37daa634
|
@ -973,6 +973,17 @@ static enum xgene_ring_owner xgene_derive_ring_owner(struct xgene_enet_pdata *p)
|
|||
return owner;
|
||||
}
|
||||
|
||||
static u8 xgene_start_cpu_bufnum(struct xgene_enet_pdata *pdata)
|
||||
{
|
||||
struct device *dev = &pdata->pdev->dev;
|
||||
u32 cpu_bufnum;
|
||||
int ret;
|
||||
|
||||
ret = device_property_read_u32(dev, "channel", &cpu_bufnum);
|
||||
|
||||
return (!ret) ? cpu_bufnum : pdata->cpu_bufnum;
|
||||
}
|
||||
|
||||
static int xgene_enet_create_desc_rings(struct net_device *ndev)
|
||||
{
|
||||
struct xgene_enet_pdata *pdata = netdev_priv(ndev);
|
||||
|
@ -981,13 +992,15 @@ static int xgene_enet_create_desc_rings(struct net_device *ndev)
|
|||
struct xgene_enet_desc_ring *buf_pool = NULL;
|
||||
enum xgene_ring_owner owner;
|
||||
dma_addr_t dma_exp_bufs;
|
||||
u8 cpu_bufnum = pdata->cpu_bufnum;
|
||||
u8 cpu_bufnum;
|
||||
u8 eth_bufnum = pdata->eth_bufnum;
|
||||
u8 bp_bufnum = pdata->bp_bufnum;
|
||||
u16 ring_num = pdata->ring_num;
|
||||
u16 ring_id;
|
||||
int i, ret, size;
|
||||
|
||||
cpu_bufnum = xgene_start_cpu_bufnum(pdata);
|
||||
|
||||
for (i = 0; i < pdata->rxq_cnt; i++) {
|
||||
/* allocate rx descriptor ring */
|
||||
owner = xgene_derive_ring_owner(pdata);
|
||||
|
|
Loading…
Reference in New Issue