Merge branch 'davem-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
This commit is contained in:
@@ -1102,9 +1102,7 @@ static u64 fw_vers_string_to_u64(struct iwch_dev *iwch_dev)
|
|||||||
char *cp, *next;
|
char *cp, *next;
|
||||||
unsigned fw_maj, fw_min, fw_mic;
|
unsigned fw_maj, fw_min, fw_mic;
|
||||||
|
|
||||||
rtnl_lock();
|
|
||||||
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
||||||
rtnl_unlock();
|
|
||||||
|
|
||||||
next = info.fw_version + 1;
|
next = info.fw_version + 1;
|
||||||
cp = strsep(&next, ".");
|
cp = strsep(&next, ".");
|
||||||
@@ -1192,9 +1190,7 @@ static ssize_t show_fw_ver(struct device *dev, struct device_attribute *attr, ch
|
|||||||
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
|
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
|
||||||
|
|
||||||
PDBG("%s dev 0x%p\n", __func__, dev);
|
PDBG("%s dev 0x%p\n", __func__, dev);
|
||||||
rtnl_lock();
|
|
||||||
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
||||||
rtnl_unlock();
|
|
||||||
return sprintf(buf, "%s\n", info.fw_version);
|
return sprintf(buf, "%s\n", info.fw_version);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1207,9 +1203,7 @@ static ssize_t show_hca(struct device *dev, struct device_attribute *attr,
|
|||||||
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
|
struct net_device *lldev = iwch_dev->rdev.t3cdev_p->lldev;
|
||||||
|
|
||||||
PDBG("%s dev 0x%p\n", __func__, dev);
|
PDBG("%s dev 0x%p\n", __func__, dev);
|
||||||
rtnl_lock();
|
|
||||||
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
lldev->ethtool_ops->get_drvinfo(lldev, &info);
|
||||||
rtnl_unlock();
|
|
||||||
return sprintf(buf, "%s\n", info.driver);
|
return sprintf(buf, "%s\n", info.driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1307,8 +1307,10 @@ static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
|
|||||||
u32 fw_vers = 0;
|
u32 fw_vers = 0;
|
||||||
u32 tp_vers = 0;
|
u32 tp_vers = 0;
|
||||||
|
|
||||||
|
spin_lock(&adapter->stats_lock);
|
||||||
t3_get_fw_version(adapter, &fw_vers);
|
t3_get_fw_version(adapter, &fw_vers);
|
||||||
t3_get_tp_version(adapter, &tp_vers);
|
t3_get_tp_version(adapter, &tp_vers);
|
||||||
|
spin_unlock(&adapter->stats_lock);
|
||||||
|
|
||||||
strcpy(info->driver, DRV_NAME);
|
strcpy(info->driver, DRV_NAME);
|
||||||
strcpy(info->version, DRV_VERSION);
|
strcpy(info->version, DRV_VERSION);
|
||||||
@@ -2699,7 +2701,7 @@ static void set_nqsets(struct adapter *adap)
|
|||||||
int hwports = adap->params.nports;
|
int hwports = adap->params.nports;
|
||||||
int nqsets = SGE_QSETS;
|
int nqsets = SGE_QSETS;
|
||||||
|
|
||||||
if (adap->params.rev > 0) {
|
if (adap->params.rev > 0 && adap->flags & USING_MSIX) {
|
||||||
if (hwports == 2 &&
|
if (hwports == 2 &&
|
||||||
(hwports * nqsets > SGE_QSETS ||
|
(hwports * nqsets > SGE_QSETS ||
|
||||||
num_cpus >= nqsets / hwports))
|
num_cpus >= nqsets / hwports))
|
||||||
|
@@ -572,7 +572,7 @@ struct t3_vpd {
|
|||||||
u32 pad; /* for multiple-of-4 sizing and alignment */
|
u32 pad; /* for multiple-of-4 sizing and alignment */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define EEPROM_MAX_POLL 4
|
#define EEPROM_MAX_POLL 40
|
||||||
#define EEPROM_STAT_ADDR 0x4000
|
#define EEPROM_STAT_ADDR 0x4000
|
||||||
#define VPD_BASE 0xc00
|
#define VPD_BASE 0xc00
|
||||||
|
|
||||||
@@ -3690,6 +3690,12 @@ int t3_prep_adapter(struct adapter *adapter, const struct adapter_info *ai,
|
|||||||
;
|
;
|
||||||
|
|
||||||
pti = &port_types[adapter->params.vpd.port_type[j]];
|
pti = &port_types[adapter->params.vpd.port_type[j]];
|
||||||
|
if (!pti->phy_prep) {
|
||||||
|
CH_ALERT(adapter, "Invalid port type index %d\n",
|
||||||
|
adapter->params.vpd.port_type[j]);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
ret = pti->phy_prep(&p->phy, adapter, ai->phy_base_addr + j,
|
ret = pti->phy_prep(&p->phy, adapter, ai->phy_base_addr + j,
|
||||||
ai->mdio_ops);
|
ai->mdio_ops);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@@ -75,7 +75,7 @@
|
|||||||
#include "myri10ge_mcp.h"
|
#include "myri10ge_mcp.h"
|
||||||
#include "myri10ge_mcp_gen_header.h"
|
#include "myri10ge_mcp_gen_header.h"
|
||||||
|
|
||||||
#define MYRI10GE_VERSION_STR "1.4.3-1.375"
|
#define MYRI10GE_VERSION_STR "1.4.3-1.378"
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
|
MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
|
||||||
MODULE_AUTHOR("Maintainer: help@myri.com");
|
MODULE_AUTHOR("Maintainer: help@myri.com");
|
||||||
@@ -1393,6 +1393,7 @@ myri10ge_tx_done(struct myri10ge_slice_state *ss, int mcp_index)
|
|||||||
if (tx->req == tx->done) {
|
if (tx->req == tx->done) {
|
||||||
tx->queue_active = 0;
|
tx->queue_active = 0;
|
||||||
put_be32(htonl(1), tx->send_stop);
|
put_be32(htonl(1), tx->send_stop);
|
||||||
|
mb();
|
||||||
mmiowb();
|
mmiowb();
|
||||||
}
|
}
|
||||||
__netif_tx_unlock(dev_queue);
|
__netif_tx_unlock(dev_queue);
|
||||||
@@ -2865,6 +2866,7 @@ again:
|
|||||||
if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) {
|
if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) {
|
||||||
tx->queue_active = 1;
|
tx->queue_active = 1;
|
||||||
put_be32(htonl(1), tx->send_go);
|
put_be32(htonl(1), tx->send_go);
|
||||||
|
mb();
|
||||||
mmiowb();
|
mmiowb();
|
||||||
}
|
}
|
||||||
tx->pkt_start++;
|
tx->pkt_start++;
|
||||||
|
@@ -2050,7 +2050,9 @@ err_out:
|
|||||||
*/
|
*/
|
||||||
static int smc911x_drv_probe(struct platform_device *pdev)
|
static int smc911x_drv_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
#ifdef SMC_DYNAMIC_BUS_CONFIG
|
||||||
struct smc911x_platdata *pd = pdev->dev.platform_data;
|
struct smc911x_platdata *pd = pdev->dev.platform_data;
|
||||||
|
#endif
|
||||||
struct net_device *ndev;
|
struct net_device *ndev;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
struct smc911x_local *lp;
|
struct smc911x_local *lp;
|
||||||
@@ -2182,9 +2184,9 @@ static int smc911x_drv_resume(struct platform_device *dev)
|
|||||||
|
|
||||||
if (netif_running(ndev)) {
|
if (netif_running(ndev)) {
|
||||||
smc911x_reset(ndev);
|
smc911x_reset(ndev);
|
||||||
smc911x_enable(ndev);
|
|
||||||
if (lp->phy_type != 0)
|
if (lp->phy_type != 0)
|
||||||
smc911x_phy_configure(&lp->phy_configure);
|
smc911x_phy_configure(&lp->phy_configure);
|
||||||
|
smc911x_enable(ndev);
|
||||||
netif_device_attach(ndev);
|
netif_device_attach(ndev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user