Skip to content

Commit

Permalink
r8152: separate the rx buffer size
Browse files Browse the repository at this point in the history
The different chips may accept different rx buffer sizes. The RTL8152
supports 16K bytes, and RTL8153 support 32K bytes.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
  • Loading branch information
Hayes Wang authored and Jakub Kicinski committed Aug 14, 2019
1 parent e070ca3 commit ec5791c
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions drivers/net/usb/r8152.c
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ struct r8152 {
u32 msg_enable;
u32 tx_qlen;
u32 coalesce;
u32 rx_buf_sz;
u16 ocp_base;
u16 speed;
u8 *intr_buff;
Expand Down Expand Up @@ -1516,13 +1517,13 @@ static int alloc_all_mem(struct r8152 *tp)
skb_queue_head_init(&tp->rx_queue);

for (i = 0; i < RTL8152_MAX_RX; i++) {
buf = kmalloc_node(agg_buf_sz, GFP_KERNEL, node);
buf = kmalloc_node(tp->rx_buf_sz, GFP_KERNEL, node);
if (!buf)
goto err1;

if (buf != rx_agg_align(buf)) {
kfree(buf);
buf = kmalloc_node(agg_buf_sz + RX_ALIGN, GFP_KERNEL,
buf = kmalloc_node(tp->rx_buf_sz + RX_ALIGN, GFP_KERNEL,
node);
if (!buf)
goto err1;
Expand Down Expand Up @@ -2113,7 +2114,7 @@ int r8152_submit_rx(struct r8152 *tp, struct rx_agg *agg, gfp_t mem_flags)
return 0;

usb_fill_bulk_urb(agg->urb, tp->udev, usb_rcvbulkpipe(tp->udev, 1),
agg->head, agg_buf_sz,
agg->head, tp->rx_buf_sz,
(usb_complete_t)read_bulk_callback, agg);

ret = usb_submit_urb(agg->urb, mem_flags);
Expand Down Expand Up @@ -2447,7 +2448,7 @@ static void r8153_set_rx_early_timeout(struct r8152 *tp)

static void r8153_set_rx_early_size(struct r8152 *tp)
{
u32 ocp_data = agg_buf_sz - rx_reserved_size(tp->netdev->mtu);
u32 ocp_data = tp->rx_buf_sz - rx_reserved_size(tp->netdev->mtu);

switch (tp->version) {
case RTL_VER_03:
Expand Down Expand Up @@ -5115,6 +5116,7 @@ static int rtl_ops_init(struct r8152 *tp)
ops->in_nway = rtl8152_in_nway;
ops->hw_phy_cfg = r8152b_hw_phy_cfg;
ops->autosuspend_en = rtl_runtime_suspend_enable;
tp->rx_buf_sz = 16 * 1024;
break;

case RTL_VER_03:
Expand All @@ -5132,6 +5134,7 @@ static int rtl_ops_init(struct r8152 *tp)
ops->in_nway = rtl8153_in_nway;
ops->hw_phy_cfg = r8153_hw_phy_cfg;
ops->autosuspend_en = rtl8153_runtime_enable;
tp->rx_buf_sz = 32 * 1024;
break;

case RTL_VER_08:
Expand All @@ -5147,6 +5150,7 @@ static int rtl_ops_init(struct r8152 *tp)
ops->in_nway = rtl8153_in_nway;
ops->hw_phy_cfg = r8153b_hw_phy_cfg;
ops->autosuspend_en = rtl8153b_runtime_enable;
tp->rx_buf_sz = 32 * 1024;
break;

default:
Expand Down

0 comments on commit ec5791c

Please sign in to comment.