mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: bnx2: Fix the behavior of ethtool when ONBOOT=no qla3xxx: Don't sleep while holding lock. qla3xxx: Give the PHY time to come out of reset. ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off net: Move rx skb_orphan call to where needed ipv6: Use correct data types for ICMPv6 type and code net: let KS8842 driver depend on HAS_IOMEM can: let SJA1000 driver depend on HAS_IOMEM netxen: fix firmware init handshake netxen: fix build with without CONFIG_PM netfilter: xt_rateest: fix comparison with self netfilter: xt_quota: fix incomplete initialization netfilter: nf_log: fix direct userspace memory access in proc handler netfilter: fix some sparse endianess warnings netfilter: nf_conntrack: fix conntrack lookup race netfilter: nf_conntrack: fix confirmation race condition netfilter: nf_conntrack: death_by_timeout() fix
This commit is contained in:
commit
09ce42d316
39 changed files with 149 additions and 88 deletions
|
|
@ -1725,6 +1725,7 @@ config TLAN
|
|||
|
||||
config KS8842
|
||||
tristate "Micrel KSZ8842"
|
||||
depends on HAS_IOMEM
|
||||
help
|
||||
This platform driver is for Micrel KSZ8842 chip.
|
||||
|
||||
|
|
|
|||
|
|
@ -6825,6 +6825,14 @@ bnx2_nway_reset(struct net_device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static u32
|
||||
bnx2_get_link(struct net_device *dev)
|
||||
{
|
||||
struct bnx2 *bp = netdev_priv(dev);
|
||||
|
||||
return bp->link_up;
|
||||
}
|
||||
|
||||
static int
|
||||
bnx2_get_eeprom_len(struct net_device *dev)
|
||||
{
|
||||
|
|
@ -7392,7 +7400,7 @@ static const struct ethtool_ops bnx2_ethtool_ops = {
|
|||
.get_wol = bnx2_get_wol,
|
||||
.set_wol = bnx2_set_wol,
|
||||
.nway_reset = bnx2_nway_reset,
|
||||
.get_link = ethtool_op_get_link,
|
||||
.get_link = bnx2_get_link,
|
||||
.get_eeprom_len = bnx2_get_eeprom_len,
|
||||
.get_eeprom = bnx2_get_eeprom,
|
||||
.set_eeprom = bnx2_set_eeprom,
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
|
|||
If unsure, say Y.
|
||||
|
||||
config CAN_SJA1000
|
||||
depends on CAN_DEV
|
||||
depends on CAN_DEV && HAS_IOMEM
|
||||
tristate "Philips SJA1000"
|
||||
---help---
|
||||
Driver for the SJA1000 CAN controllers from Philips or NXP
|
||||
|
|
|
|||
|
|
@ -944,28 +944,31 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val)
|
|||
u32 val = 0;
|
||||
int retries = 60;
|
||||
|
||||
if (!pegtune_val) {
|
||||
do {
|
||||
val = NXRD32(adapter, CRB_CMDPEG_STATE);
|
||||
if (pegtune_val)
|
||||
return 0;
|
||||
|
||||
if (val == PHAN_INITIALIZE_COMPLETE ||
|
||||
val == PHAN_INITIALIZE_ACK)
|
||||
return 0;
|
||||
do {
|
||||
val = NXRD32(adapter, CRB_CMDPEG_STATE);
|
||||
|
||||
msleep(500);
|
||||
|
||||
} while (--retries);
|
||||
|
||||
if (!retries) {
|
||||
pegtune_val = NXRD32(adapter,
|
||||
NETXEN_ROMUSB_GLB_PEGTUNE_DONE);
|
||||
printk(KERN_WARNING "netxen_phantom_init: init failed, "
|
||||
"pegtune_val=%x\n", pegtune_val);
|
||||
return -1;
|
||||
switch (val) {
|
||||
case PHAN_INITIALIZE_COMPLETE:
|
||||
case PHAN_INITIALIZE_ACK:
|
||||
return 0;
|
||||
case PHAN_INITIALIZE_FAILED:
|
||||
goto out_err;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
msleep(500);
|
||||
|
||||
} while (--retries);
|
||||
|
||||
NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_FAILED);
|
||||
|
||||
out_err:
|
||||
dev_warn(&adapter->pdev->dev, "firmware init failed\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
|||
|
|
@ -705,7 +705,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw)
|
|||
first_driver = (adapter->ahw.pci_func == 0);
|
||||
|
||||
if (!first_driver)
|
||||
return 0;
|
||||
goto wait_init;
|
||||
|
||||
first_boot = NXRD32(adapter, NETXEN_CAM_RAM(0x1fc));
|
||||
|
||||
|
|
@ -752,6 +752,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw)
|
|||
| (_NETXEN_NIC_LINUX_SUBVERSION);
|
||||
NXWR32(adapter, CRB_DRIVER_VERSION, val);
|
||||
|
||||
wait_init:
|
||||
/* Handshake with the card before we register the devices. */
|
||||
err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
|
||||
if (err) {
|
||||
|
|
@ -1178,6 +1179,7 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
|
|||
free_netdev(netdev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
static int
|
||||
netxen_nic_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||
{
|
||||
|
|
@ -1242,6 +1244,7 @@ netxen_nic_resume(struct pci_dev *pdev)
|
|||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int netxen_nic_open(struct net_device *netdev)
|
||||
{
|
||||
|
|
@ -1771,8 +1774,10 @@ static struct pci_driver netxen_driver = {
|
|||
.id_table = netxen_pci_tbl,
|
||||
.probe = netxen_nic_probe,
|
||||
.remove = __devexit_p(netxen_nic_remove),
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = netxen_nic_suspend,
|
||||
.resume = netxen_nic_resume
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Driver Registration on NetXen card */
|
||||
|
|
|
|||
|
|
@ -3142,6 +3142,7 @@ static int ql_adapter_initialize(struct ql3_adapter *qdev)
|
|||
(void __iomem *)port_regs;
|
||||
u32 delay = 10;
|
||||
int status = 0;
|
||||
unsigned long hw_flags = 0;
|
||||
|
||||
if(ql_mii_setup(qdev))
|
||||
return -1;
|
||||
|
|
@ -3150,7 +3151,8 @@ static int ql_adapter_initialize(struct ql3_adapter *qdev)
|
|||
ql_write_common_reg(qdev, &port_regs->CommonRegs.serialPortInterfaceReg,
|
||||
(ISP_SERIAL_PORT_IF_WE |
|
||||
(ISP_SERIAL_PORT_IF_WE << 16)));
|
||||
|
||||
/* Give the PHY time to come out of reset. */
|
||||
mdelay(100);
|
||||
qdev->port_link_state = LS_DOWN;
|
||||
netif_carrier_off(qdev->ndev);
|
||||
|
||||
|
|
@ -3350,7 +3352,9 @@ static int ql_adapter_initialize(struct ql3_adapter *qdev)
|
|||
value = ql_read_page0_reg(qdev, &port_regs->portStatus);
|
||||
if (value & PORT_STATUS_IC)
|
||||
break;
|
||||
spin_unlock_irqrestore(&qdev->hw_lock, hw_flags);
|
||||
msleep(500);
|
||||
spin_lock_irqsave(&qdev->hw_lock, hw_flags);
|
||||
} while (--delay);
|
||||
|
||||
if (delay == 0) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue