Merge branch 'master' into for-next
This commit is contained in:
@@ -381,10 +381,14 @@ static void gfar_init_mac(struct net_device *ndev)
|
||||
/* Insert receive time stamps into padding alignment bytes */
|
||||
if (priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER) {
|
||||
rctrl &= ~RCTRL_PAL_MASK;
|
||||
rctrl |= RCTRL_PRSDEP_INIT | RCTRL_TS_ENABLE | RCTRL_PADDING(8);
|
||||
rctrl |= RCTRL_PADDING(8);
|
||||
priv->padding = 8;
|
||||
}
|
||||
|
||||
/* Enable HW time stamping if requested from user space */
|
||||
if (priv->hwts_rx_en)
|
||||
rctrl |= RCTRL_PRSDEP_INIT | RCTRL_TS_ENABLE;
|
||||
|
||||
/* keep vlan related bits if it's enabled */
|
||||
if (priv->vlgrp) {
|
||||
rctrl |= RCTRL_VLEX | RCTRL_PRSDEP_INIT;
|
||||
@@ -747,7 +751,8 @@ static int gfar_of_init(struct of_device *ofdev, struct net_device **pdev)
|
||||
FSL_GIANFAR_DEV_HAS_CSUM |
|
||||
FSL_GIANFAR_DEV_HAS_VLAN |
|
||||
FSL_GIANFAR_DEV_HAS_MAGIC_PACKET |
|
||||
FSL_GIANFAR_DEV_HAS_EXTENDED_HASH;
|
||||
FSL_GIANFAR_DEV_HAS_EXTENDED_HASH |
|
||||
FSL_GIANFAR_DEV_HAS_TIMER;
|
||||
|
||||
ctype = of_get_property(np, "phy-connection-type", NULL);
|
||||
|
||||
@@ -805,12 +810,20 @@ static int gfar_hwtstamp_ioctl(struct net_device *netdev,
|
||||
|
||||
switch (config.rx_filter) {
|
||||
case HWTSTAMP_FILTER_NONE:
|
||||
priv->hwts_rx_en = 0;
|
||||
if (priv->hwts_rx_en) {
|
||||
stop_gfar(netdev);
|
||||
priv->hwts_rx_en = 0;
|
||||
startup_gfar(netdev);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_TIMER))
|
||||
return -ERANGE;
|
||||
priv->hwts_rx_en = 1;
|
||||
if (!priv->hwts_rx_en) {
|
||||
stop_gfar(netdev);
|
||||
priv->hwts_rx_en = 1;
|
||||
startup_gfar(netdev);
|
||||
}
|
||||
config.rx_filter = HWTSTAMP_FILTER_ALL;
|
||||
break;
|
||||
}
|
||||
@@ -2642,6 +2655,10 @@ int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue, int rx_work_limit)
|
||||
dma_unmap_single(&priv->ofdev->dev, bdp->bufPtr,
|
||||
priv->rx_buffer_size, DMA_FROM_DEVICE);
|
||||
|
||||
if (unlikely(!(bdp->status & RXBD_ERR) &&
|
||||
bdp->length > priv->rx_buffer_size))
|
||||
bdp->status = RXBD_LARGE;
|
||||
|
||||
/* We drop the frame if we failed to allocate a new buffer */
|
||||
if (unlikely(!newskb || !(bdp->status & RXBD_LAST) ||
|
||||
bdp->status & RXBD_ERR)) {
|
||||
|
Reference in New Issue
Block a user