Messages in this thread | | | From | Hayes Wang <> | Subject | RE: [PATCH net-next 1/3] r8152: separate USB_RX_EARLY_AGG | Date | Thu, 12 Feb 2015 06:04:06 +0000 |
| |
Sergei Shtylyov; netdev@vger.kernel.org [...] > > > + ocp_data = tp->coalesce / 8; > > > > Why not do it in the initializer? > > This is for patch #3. The patch #3 would use this function. > The unit of the relative setting from the ethtool is 1 us. > However, the unit for the hw is 8 us. Therefore, I save the > value with the unit of 1 us, and transfer it to the unit of > the hw when setting.
I think I misunderstand what you mean. I think you mean I have to combine
u32 ocp_data; ocp_data = tp->coalesce / 8;
into
u32 ocp_data = tp->coalesce / 8;
I would correct it.
> > > + ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_TIMEOUT, ocp_data); > > > +} > > > + > > > +static void r8153_set_rx_early_size(struct r8152 *tp) > > > +{ > > > + struct net_device *dev = tp->netdev; > > > > Not sure you actually need this variable. > > If I replace dev->mtu with tp->netdev->mtu, the line would > more than 80 characters. This is used to avoid it. Should > I remove it? > > > > + u32 ocp_data; > > > + > > > + ocp_data = (agg_buf_sz - dev->mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 4; > > > > Why not in initializer? > > This is for patch #2. The patch #2 would use this function. > It has to be re-calculated when the mtu is changed, or the > function is called when the linking status changes to ON.
I think you mean I have to combine
u32 ocp_data; ocp_data = (agg_buf_sz - dev->mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 4;
into
u32 ocp_data = (agg_buf_sz - dev->mtu - VLAN_ETH_HLEN - VLAN_HLEN) / 4;
I would correct it.
> > > + ocp_write_word(tp, MCU_TYPE_USB, USB_RX_EARLY_SIZE, ocp_data); > > > } > > [...] > > > @@ -3911,6 +3907,13 @@ static int rtl8152_probe(struct > > usb_interface *intf, > > > tp->mii.reg_num_mask = 0x1f; > > > tp->mii.phy_id = R8152_PHY_ID; > > > > > > + if (udev->speed == USB_SPEED_SUPER) > > > + tp->coalesce = COALESCE_SUPER; > > > + else if (udev->speed == USB_SPEED_HIGH) > > > + tp->coalesce = COALESCE_HIGH; > > > + else > > > + tp->coalesce = COALESCE_SLOW; > > > > This is asking to be a *switch* statement. > > Excuse me. I don't understand what you mean. > The usb speed is determined when the device is plugged on > the usb host controller or usb hub. The usb speed wouldn't > chage unless you unplug the device and plug it to another > port with different usb speed. Therefore, I provide different > default values for different usb speed.
I think you mean
switch (udev->speed) { case USB_SPEED_SUPER: ...
I would correct it. Best Regards, Hayes
| |