Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Small overlapping change conflict ('net' changed a line, 'net-next' added a line right afterwards) in flexcan.c Signed-off-by: David S. Miller <davem@davemloft.net>
此提交包含在:
@@ -184,12 +184,12 @@
|
||||
* Below is some version info we got:
|
||||
* SOC Version IP-Version Glitch- [TR]WRN_INT IRQ Err Memory err RTR re-
|
||||
* Filter? connected? Passive detection ception in MB
|
||||
* MX25 FlexCAN2 03.00.00.00 no no ? no no
|
||||
* MX25 FlexCAN2 03.00.00.00 no no no no no
|
||||
* MX28 FlexCAN2 03.00.04.00 yes yes no no no
|
||||
* MX35 FlexCAN2 03.00.00.00 no no ? no no
|
||||
* MX35 FlexCAN2 03.00.00.00 no no no no no
|
||||
* MX53 FlexCAN2 03.00.00.00 yes no no no no
|
||||
* MX6s FlexCAN3 10.00.12.00 yes yes no no yes
|
||||
* VF610 FlexCAN3 ? no yes ? yes yes?
|
||||
* VF610 FlexCAN3 ? no yes no yes yes?
|
||||
* LS1021A FlexCAN2 03.00.04.00 no yes no no yes
|
||||
*
|
||||
* Some SOCs do not have the RX_WARN & TX_WARN interrupt line connected.
|
||||
@@ -302,7 +302,8 @@ static const struct flexcan_devtype_data fsl_imx6q_devtype_data = {
|
||||
|
||||
static const struct flexcan_devtype_data fsl_vf610_devtype_data = {
|
||||
.quirks = FLEXCAN_QUIRK_DISABLE_RXFG | FLEXCAN_QUIRK_ENABLE_EACEN_RRS |
|
||||
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP,
|
||||
FLEXCAN_QUIRK_DISABLE_MECR | FLEXCAN_QUIRK_USE_OFF_TIMESTAMP |
|
||||
FLEXCAN_QUIRK_BROKEN_PERR_STATE,
|
||||
};
|
||||
|
||||
static const struct flexcan_devtype_data fsl_ls1021a_r2_devtype_data = {
|
||||
|
@@ -825,7 +825,10 @@ err_release_regions:
|
||||
err_disable_pci:
|
||||
pci_disable_device(pdev);
|
||||
|
||||
return err;
|
||||
/* pci_xxx_config_word() return positive PCIBIOS_xxx error codes while
|
||||
* the probe() function must return a negative errno in case of failure
|
||||
* (err is unchanged if negative) */
|
||||
return pcibios_err_to_errno(err);
|
||||
}
|
||||
|
||||
/* free the board structure object, as well as its resources: */
|
||||
|
@@ -717,7 +717,10 @@ failure_release_regions:
|
||||
failure_disable_pci:
|
||||
pci_disable_device(pdev);
|
||||
|
||||
return err;
|
||||
/* pci_xxx_config_word() return positive PCIBIOS_xxx error codes while
|
||||
* the probe() function must return a negative errno in case of failure
|
||||
* (err is unchanged if negative) */
|
||||
return pcibios_err_to_errno(err);
|
||||
}
|
||||
|
||||
static void peak_pci_remove(struct pci_dev *pdev)
|
||||
|
@@ -637,6 +637,9 @@ static int ti_hecc_rx_poll(struct napi_struct *napi, int quota)
|
||||
mbx_mask = hecc_read(priv, HECC_CANMIM);
|
||||
mbx_mask |= HECC_TX_MBOX_MASK;
|
||||
hecc_write(priv, HECC_CANMIM, mbx_mask);
|
||||
} else {
|
||||
/* repoll is done only if whole budget is used */
|
||||
num_pkts = quota;
|
||||
}
|
||||
|
||||
return num_pkts;
|
||||
|
@@ -609,8 +609,8 @@ static int kvaser_usb_wait_msg(const struct kvaser_usb *dev, u8 id,
|
||||
}
|
||||
|
||||
if (pos + tmp->len > actual_len) {
|
||||
dev_err(dev->udev->dev.parent,
|
||||
"Format error\n");
|
||||
dev_err_ratelimited(dev->udev->dev.parent,
|
||||
"Format error\n");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -813,6 +813,7 @@ static int kvaser_usb_simple_msg_async(struct kvaser_usb_net_priv *priv,
|
||||
if (err) {
|
||||
netdev_err(netdev, "Error transmitting URB\n");
|
||||
usb_unanchor_urb(urb);
|
||||
kfree(buf);
|
||||
usb_free_urb(urb);
|
||||
return err;
|
||||
}
|
||||
@@ -1333,7 +1334,7 @@ static void kvaser_usb_read_bulk_callback(struct urb *urb)
|
||||
goto resubmit_urb;
|
||||
}
|
||||
|
||||
while (pos <= urb->actual_length - MSG_HEADER_LEN) {
|
||||
while (pos <= (int)(urb->actual_length - MSG_HEADER_LEN)) {
|
||||
msg = urb->transfer_buffer + pos;
|
||||
|
||||
/* The Kvaser firmware can only read and write messages that
|
||||
@@ -1352,7 +1353,8 @@ static void kvaser_usb_read_bulk_callback(struct urb *urb)
|
||||
}
|
||||
|
||||
if (pos + msg->len > urb->actual_length) {
|
||||
dev_err(dev->udev->dev.parent, "Format error\n");
|
||||
dev_err_ratelimited(dev->udev->dev.parent,
|
||||
"Format error\n");
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1768,6 +1770,7 @@ static netdev_tx_t kvaser_usb_start_xmit(struct sk_buff *skb,
|
||||
spin_unlock_irqrestore(&priv->tx_contexts_lock, flags);
|
||||
|
||||
usb_unanchor_urb(urb);
|
||||
kfree(buf);
|
||||
|
||||
stats->tx_dropped++;
|
||||
|
||||
|
@@ -592,6 +592,7 @@ static void mcba_usb_read_bulk_callback(struct urb *urb)
|
||||
break;
|
||||
|
||||
case -ENOENT:
|
||||
case -EPIPE:
|
||||
case -ESHUTDOWN:
|
||||
return;
|
||||
|
||||
@@ -862,7 +863,7 @@ static int mcba_usb_probe(struct usb_interface *intf,
|
||||
goto cleanup_unregister_candev;
|
||||
}
|
||||
|
||||
dev_info(&intf->dev, "Microchip CAN BUS analizer connected\n");
|
||||
dev_info(&intf->dev, "Microchip CAN BUS Analyzer connected\n");
|
||||
|
||||
return 0;
|
||||
|
||||
|
新增問題並參考
封鎖使用者