* [PATCH net-next-2.6 2/5] jme: Add comment in jme_set_settings
2010-10-19 0:10 [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error Guo-Fu Tseng
@ 2010-10-19 0:10 ` Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 3/5] jme: Prevent possible read re-order error Guo-Fu Tseng
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Guo-Fu Tseng @ 2010-10-19 0:10 UTC (permalink / raw)
To: David Miller; +Cc: Guo-Fu Tseng, linux-netdev
From: Guo-Fu Tseng <cooldavid@cooldavid.org>
Explains what `fdc` variable is for.
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
---
drivers/net/jme.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index e04f180..0ea0da3 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -2394,6 +2394,10 @@ jme_set_settings(struct net_device *netdev,
if (ecmd->speed == SPEED_1000 && ecmd->autoneg != AUTONEG_ENABLE)
return -EINVAL;
+ /*
+ * Check If user changed duplex only while force_media.
+ * Hardware would not generate link change interrupt.
+ */
if (jme->mii_if.force_media &&
ecmd->autoneg != AUTONEG_ENABLE &&
(jme->mii_if.full_duplex != ecmd->duplex))
@@ -2403,10 +2407,9 @@ jme_set_settings(struct net_device *netdev,
rc = mii_ethtool_sset(&(jme->mii_if), ecmd);
spin_unlock_bh(&jme->phy_lock);
- if (!rc && fdc)
- jme_reset_link(jme);
-
if (!rc) {
+ if (fdc)
+ jme_reset_link(jme);
set_bit(JME_FLAG_SSET, &jme->flags);
jme->old_ecmd = *ecmd;
}
--
1.7.2.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next-2.6 3/5] jme: Prevent possible read re-order error
2010-10-19 0:10 [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 2/5] jme: Add comment in jme_set_settings Guo-Fu Tseng
@ 2010-10-19 0:10 ` Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 4/5] jme: Adding mii-tool support Guo-Fu Tseng
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Guo-Fu Tseng @ 2010-10-19 0:10 UTC (permalink / raw)
To: David Miller; +Cc: Guo-Fu Tseng, linux-netdev
From: Guo-Fu Tseng <cooldavid@cooldavid.org>
Adding read memory barrier in between flag reading and data reading of
receive descriptors. This prevents the data being read before hardware
complete writing informations.
Reported-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
---
drivers/net/jme.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index 0ea0da3..095f899 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -989,6 +989,7 @@ jme_process_receive(struct jme_adapter *jme, int limit)
goto out;
--limit;
+ rmb();
desccnt = rxdesc->descwb.desccnt & RXWBDCNT_DCNT;
if (unlikely(desccnt > 1 ||
--
1.7.2.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next-2.6 4/5] jme: Adding mii-tool support
2010-10-19 0:10 [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 2/5] jme: Add comment in jme_set_settings Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 3/5] jme: Prevent possible read re-order error Guo-Fu Tseng
@ 2010-10-19 0:10 ` Guo-Fu Tseng
2010-10-19 0:10 ` [PATCH net-next-2.6 5/5] jme: Advance version number Guo-Fu Tseng
2010-10-21 10:12 ` [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error David Miller
4 siblings, 0 replies; 6+ messages in thread
From: Guo-Fu Tseng @ 2010-10-19 0:10 UTC (permalink / raw)
To: David Miller; +Cc: Guo-Fu Tseng, linux-netdev
From: Guo-Fu Tseng <cooldavid@cooldavid.org>
Adding mii-tool support for some distribution only have mii-tool
installed by default.
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
---
drivers/net/jme.c | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index 095f899..c34c70f 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -2411,8 +2411,37 @@ jme_set_settings(struct net_device *netdev,
if (!rc) {
if (fdc)
jme_reset_link(jme);
- set_bit(JME_FLAG_SSET, &jme->flags);
jme->old_ecmd = *ecmd;
+ set_bit(JME_FLAG_SSET, &jme->flags);
+ }
+
+ return rc;
+}
+
+static int
+jme_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+{
+ int rc;
+ struct jme_adapter *jme = netdev_priv(netdev);
+ struct mii_ioctl_data *mii_data = if_mii(rq);
+ unsigned int duplex_chg;
+
+ if (cmd == SIOCSMIIREG) {
+ u16 val = mii_data->val_in;
+ if (!(val & (BMCR_RESET|BMCR_ANENABLE)) &&
+ (val & BMCR_SPEED1000))
+ return -EINVAL;
+ }
+
+ spin_lock_bh(&jme->phy_lock);
+ rc = generic_mii_ioctl(&jme->mii_if, mii_data, cmd, &duplex_chg);
+ spin_unlock_bh(&jme->phy_lock);
+
+ if (!rc && (cmd == SIOCSMIIREG)) {
+ if (duplex_chg)
+ jme_reset_link(jme);
+ jme_get_settings(netdev, &jme->old_ecmd);
+ set_bit(JME_FLAG_SSET, &jme->flags);
}
return rc;
@@ -2692,6 +2721,7 @@ static const struct net_device_ops jme_netdev_ops = {
.ndo_open = jme_open,
.ndo_stop = jme_close,
.ndo_validate_addr = eth_validate_addr,
+ .ndo_do_ioctl = jme_ioctl,
.ndo_start_xmit = jme_start_xmit,
.ndo_set_mac_address = jme_set_macaddr,
.ndo_set_multicast_list = jme_set_multi,
@@ -2883,6 +2913,8 @@ jme_init_one(struct pci_dev *pdev,
jme->mii_if.supports_gmii = true;
else
jme->mii_if.supports_gmii = false;
+ jme->mii_if.phy_id_mask = 0x1F;
+ jme->mii_if.reg_num_mask = 0x1F;
jme->mii_if.mdio_read = jme_mdio_read;
jme->mii_if.mdio_write = jme_mdio_write;
--
1.7.2.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net-next-2.6 5/5] jme: Advance version number
2010-10-19 0:10 [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error Guo-Fu Tseng
` (2 preceding siblings ...)
2010-10-19 0:10 ` [PATCH net-next-2.6 4/5] jme: Adding mii-tool support Guo-Fu Tseng
@ 2010-10-19 0:10 ` Guo-Fu Tseng
2010-10-21 10:12 ` [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error David Miller
4 siblings, 0 replies; 6+ messages in thread
From: Guo-Fu Tseng @ 2010-10-19 0:10 UTC (permalink / raw)
To: David Miller; +Cc: Guo-Fu Tseng, linux-netdev
From: Guo-Fu Tseng <cooldavid@cooldavid.org>
Advance version number and update copyright info
Signed-off-by: Guo-Fu Tseng <cooldavid@cooldavid.org>
---
drivers/net/jme.c | 1 +
drivers/net/jme.h | 3 ++-
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index c34c70f..d7a975e 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -3,6 +3,7 @@
*
* Copyright 2008 JMicron Technology Corporation
* http://www.jmicron.com/
+ * Copyright (c) 2009 - 2010 Guo-Fu Tseng <cooldavid@cooldavid.org>
*
* Author: Guo-Fu Tseng <cooldavid@cooldavid.org>
*
diff --git a/drivers/net/jme.h b/drivers/net/jme.h
index 1360f68..eac0926 100644
--- a/drivers/net/jme.h
+++ b/drivers/net/jme.h
@@ -3,6 +3,7 @@
*
* Copyright 2008 JMicron Technology Corporation
* http://www.jmicron.com/
+ * Copyright (c) 2009 - 2010 Guo-Fu Tseng <cooldavid@cooldavid.org>
*
* Author: Guo-Fu Tseng <cooldavid@cooldavid.org>
*
@@ -25,7 +26,7 @@
#define __JME_H_INCLUDED__
#define DRV_NAME "jme"
-#define DRV_VERSION "1.0.6"
+#define DRV_VERSION "1.0.7"
#define PFX DRV_NAME ": "
#define PCI_DEVICE_ID_JMICRON_JMC250 0x0250
--
1.7.2.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error
2010-10-19 0:10 [PATCH net-next-2.6 1/5] jme: Fix PHY power-off error Guo-Fu Tseng
` (3 preceding siblings ...)
2010-10-19 0:10 ` [PATCH net-next-2.6 5/5] jme: Advance version number Guo-Fu Tseng
@ 2010-10-21 10:12 ` David Miller
4 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2010-10-21 10:12 UTC (permalink / raw)
To: cooldavid; +Cc: netdev, stable
All 5 patches applied, thanks.
^ permalink raw reply [flat|nested] 6+ messages in thread