* [PATCH 4/6] bnx2x: enable internal target-read for 57712 and up only
From: Dmitry Kravkov @ 2011-07-24 13:57 UTC (permalink / raw)
To: netdev@vger.kernel.org, David Miller; +Cc: Eilon Greenstein, shmulikr
From: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 9c146f7..9c62092 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -10242,11 +10242,14 @@ static int __devinit bnx2x_init_dev(struct pci_dev *pdev,
REG_WR(bp, PXP2_REG_PGL_ADDR_90_F0 + BP_PORT(bp)*16, 0);
REG_WR(bp, PXP2_REG_PGL_ADDR_94_F0 + BP_PORT(bp)*16, 0);
- /**
+ /*
* Enable internal target-read (in case we are probed after PF FLR).
- * Must be done prior to any BAR read access
+ * Must be done prior to any BAR read access. Only for 57712 and up
*/
- REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1);
+ if (board_type != BCM57710 &&
+ board_type != BCM57711 &&
+ board_type != BCM57711E)
+ REG_WR(bp, PGLUE_B_REG_INTERNAL_PFID_ENABLE_TARGET_READ, 1);
/* Reset the load counter */
bnx2x_clear_load_cnt(bp);
--
1.7.2.2
^ permalink raw reply related
* [PATCH 5/6] bnx2x: fix bnx2x_stop_on_error flow in bnx2x_sp_rtnl_task
From: Dmitry Kravkov @ 2011-07-24 13:57 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Vladislav Zolotarov, Eilon Greenstein
From: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 36 +++++++++++++++++++++++++-----------
1 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 9c62092..475f66f 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -8413,31 +8413,45 @@ static void bnx2x_sp_rtnl_task(struct work_struct *work)
if (!netif_running(bp->dev))
goto sp_rtnl_exit;
- if (test_and_clear_bit(BNX2X_SP_RTNL_SETUP_TC, &bp->sp_rtnl_state))
- bnx2x_setup_tc(bp->dev, bp->dcbx_port_params.ets.num_of_cos);
-
/* if stop on error is defined no recovery flows should be executed */
#ifdef BNX2X_STOP_ON_ERROR
BNX2X_ERR("recovery flow called but STOP_ON_ERROR defined "
"so reset not done to allow debug dump,\n"
"you will need to reboot when done\n");
- goto sp_rtnl_exit;
+ goto sp_rtnl_not_reset;
#endif
if (unlikely(bp->recovery_state != BNX2X_RECOVERY_DONE)) {
/*
- * Clear TX_TIMEOUT bit as we are going to reset the function
- * anyway.
+ * Clear all pending SP commands as we are going to reset the
+ * function anyway.
*/
- smp_mb__before_clear_bit();
- clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT, &bp->sp_rtnl_state);
- smp_mb__after_clear_bit();
+ bp->sp_rtnl_state = 0;
+ smp_mb();
+
bnx2x_parity_recover(bp);
- } else if (test_and_clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT,
- &bp->sp_rtnl_state)){
+
+ goto sp_rtnl_exit;
+ }
+
+ if (test_and_clear_bit(BNX2X_SP_RTNL_TX_TIMEOUT, &bp->sp_rtnl_state)) {
+ /*
+ * Clear all pending SP commands as we are going to reset the
+ * function anyway.
+ */
+ bp->sp_rtnl_state = 0;
+ smp_mb();
+
bnx2x_nic_unload(bp, UNLOAD_NORMAL);
bnx2x_nic_load(bp, LOAD_NORMAL);
+
+ goto sp_rtnl_exit;
}
+#ifdef BNX2X_STOP_ON_ERROR
+sp_rtnl_not_reset:
+#endif
+ if (test_and_clear_bit(BNX2X_SP_RTNL_SETUP_TC, &bp->sp_rtnl_state))
+ bnx2x_setup_tc(bp->dev, bp->dcbx_port_params.ets.num_of_cos);
sp_rtnl_exit:
rtnl_unlock();
--
1.7.2.2
^ permalink raw reply related
* [PATCH 1/6] bnx2x: dcb - send all unmapped priorities to same COS as L2
From: Dmitry Kravkov @ 2011-07-24 14:09 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Eilon Greenstein, ariele
As a result of DCBX negotiation some priorities maybe untouched and still
unmapped to any COS; instead of sending them to COS0 we assign them
to the same COS as L2 traffic - to avoid collisions with storage class of
service.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_dcb.c | 39 +++++++++++++++++++++++++++++++++------
1 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_dcb.c b/drivers/net/bnx2x/bnx2x_dcb.c
index d028794..a4ea35f 100644
--- a/drivers/net/bnx2x/bnx2x_dcb.c
+++ b/drivers/net/bnx2x/bnx2x_dcb.c
@@ -19,15 +19,13 @@
#include <linux/netdevice.h>
#include <linux/types.h>
#include <linux/errno.h>
+#include <linux/rtnetlink.h>
+#include <net/dcbnl.h>
#include "bnx2x.h"
#include "bnx2x_cmn.h"
#include "bnx2x_dcb.h"
-#ifdef BCM_DCBNL
-#include <linux/rtnetlink.h>
-#endif
-
/* forward declarations of dcbx related functions */
static int bnx2x_dcbx_stop_hw_tx(struct bnx2x *bp);
static void bnx2x_pfc_set_pfc(struct bnx2x *bp);
@@ -333,6 +331,32 @@ static void bnx2x_dcbx_get_pfc_feature(struct bnx2x *bp,
}
}
+/* maps unmapped priorities to to the same COS as L2 */
+static void bnx2x_dcbx_map_nw(struct bnx2x *bp)
+{
+ int i;
+ u32 unmapped = (1 << MAX_PFC_PRIORITIES) - 1; /* all ones */
+ u32 *ttp = bp->dcbx_port_params.app.traffic_type_priority;
+ u32 nw_prio = 1 << ttp[LLFC_TRAFFIC_TYPE_NW];
+ struct bnx2x_dcbx_cos_params *cos_params =
+ bp->dcbx_port_params.ets.cos_params;
+
+ /* get unmapped priorities by clearing mapped bits */
+ for (i = 0; i < LLFC_DRIVER_TRAFFIC_TYPE_MAX; i++)
+ unmapped &= ~(1 << ttp[i]);
+
+ /* find cos for nw prio and extend it with unmapped */
+ for (i = 0; i < ARRAY_SIZE(bp->dcbx_port_params.ets.cos_params); i++) {
+ if (cos_params[i].pri_bitmask & nw_prio) {
+ /* extend the bitmask with unmapped */
+ DP(NETIF_MSG_LINK,
+ "cos %d extended with 0x%08x", i, unmapped);
+ cos_params[i].pri_bitmask |= unmapped;
+ break;
+ }
+ }
+}
+
static void bnx2x_get_dcbx_drv_param(struct bnx2x *bp,
struct dcbx_features *features,
u32 error)
@@ -342,6 +366,8 @@ static void bnx2x_get_dcbx_drv_param(struct bnx2x *bp,
bnx2x_dcbx_get_pfc_feature(bp, &features->pfc, error);
bnx2x_dcbx_get_ets_feature(bp, &features->ets, error);
+
+ bnx2x_dcbx_map_nw(bp);
}
#define DCBX_LOCAL_MIB_MAX_TRY_READ (100)
@@ -682,6 +708,8 @@ static inline void bnx2x_dcbx_update_tc_mapping(struct bnx2x *bp)
if (bp->dcbx_port_params.ets.cos_params[cos].pri_bitmask
& (1 << prio)) {
bp->prio_to_cos[prio] = cos;
+ DP(NETIF_MSG_LINK,
+ "tx_mapping %d --> %d\n", prio, cos);
}
}
}
@@ -749,7 +777,7 @@ void bnx2x_dcbx_set_params(struct bnx2x *bp, u32 state)
DP(NETIF_MSG_LINK, "BNX2X_DCBX_STATE_TX_RELEASED\n");
bnx2x_fw_command(bp, DRV_MSG_CODE_DCBX_PMF_DRV_OK, 0);
#ifdef BCM_DCBNL
- /**
+ /*
* Send a notification for the new negotiated parameters
*/
dcbnl_cee_notify(bp->dev, RTM_GETDCB, DCB_CMD_CEE_GET, 0, 0);
@@ -1732,7 +1760,6 @@ static void bnx2x_dcbx_fill_cos_params(struct bnx2x *bp,
pri_join_mask,
num_of_dif_pri);
-
for (i = 0; i < cos_data.num_of_cos ; i++) {
struct bnx2x_dcbx_cos_params *p =
&bp->dcbx_port_params.ets.cos_params[i];
--
1.7.2.2
^ permalink raw reply related
* [PATCH 0/6] bnx2x fixes
From: Dmitry Kravkov @ 2011-07-24 14:03 UTC (permalink / raw)
To: davem, netdev@vger.kernel.org; +Cc: Eilon Greenstein
Hello Dave,
Following the short series of "last minute" fixes. Will you able to
apply it to the net-next?
Thanks a lot!
Dmitry
^ permalink raw reply
* [PATCH 6/6] bnx2x: use pci_pcie_cap()
From: Dmitry Kravkov @ 2011-07-24 13:58 UTC (permalink / raw)
To: netdev@vger.kernel.org, David Miller
Cc: Vladislav Zolotarov, Eilon Greenstein
From: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
---
drivers/net/bnx2x/bnx2x_main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x_main.c b/drivers/net/bnx2x/bnx2x_main.c
index 475f66f..b049fe1 100644
--- a/drivers/net/bnx2x/bnx2x_main.c
+++ b/drivers/net/bnx2x/bnx2x_main.c
@@ -5652,7 +5652,7 @@ static void bnx2x_init_pxp(struct bnx2x *bp)
int r_order, w_order;
pci_read_config_word(bp->pdev,
- bp->pdev->pcie_cap + PCI_EXP_DEVCTL, &devctl);
+ pci_pcie_cap(bp->pdev) + PCI_EXP_DEVCTL, &devctl);
DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl);
w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
if (bp->mrrs == -1)
--
1.7.2.2
^ permalink raw reply related
* Re: LInux kernel 3.0 sit creation bug report
From: Jay Rouman @ 2011-07-24 15:40 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev, davem
In-Reply-To: <1311496931.6669.16.camel@edumazet-laptop>
I got the route2 configuration to work. Sorry for the bother. There
does seem to be a change in behavior as noted between 2.6.39 and 3.0
when using ifconfig and sit0. Perhaps this was intended.
--Jay Rouman
> Le samedi 23 juillet 2011 ? 12:27 -0400, Jay Rouman a ?crit :
> > Kernel 3.0 (release version)
> > Summary: sit tunnel creation fails with "No buffer space available"
> >
> > Example:
> >
> > icebox:/home/u/jsr(3)# /sbin/ip tunnel add sit0 mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> > add tunnel sit0 failed: No buffer space available
> >
> > icebox:/home/u/jsr(8)# /sbin/ifconfig sit0 inet6 tunnel ::209.51.18.1
> > SIOCSIFDSTADDR: No buffer space available
> >
> > Notes:
> >
> > Oddly, the ifconfig example creates a working sit0. The "ip" example
> > does not. The problem existed in rc1 but unfortunately I did not test
> > sit creation then. This was discovered when I upgraded a machine with
> > an HE tunnel to the 3.0 kernel. I am happy to do further testing or
> > provide whatever additional info I can.
> >
>
> I believe you use a deprecated (~10 years ago ?) way to setup your
> tunnel, its not a linux-3.0 new behavior.
>
> sit0 is reserved (fall back tunnel), you should use a different name.
>
> Try :
>
> # ip tunnel add aster mode sit local 216.111.203.89 remote 209.51.18.1 ttl 255
> # ifconfig aster up
>
> # ip tunnel
> sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
> aster: ipv6/ip remote 209.51.18.1 local 216.111.203.89 ttl 255
^ permalink raw reply
* [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: John W. Linville @ 2011-07-24 19:19 UTC (permalink / raw)
To: davem-fT/PcQaiUtIeIZ0/mPfg9Q
Cc: Johannes Berg, Wey-Yi Guy, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA, John W. Linville
In-Reply-To: <20110724.030949.1727841105144911931.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
Signed-off-by: John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: Johannes Berg <johannes.berg-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: Wey-Yi Guy <wey-yi.w.guy-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
drivers/net/wireless/iwlwifi/iwl-agn.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4b666b7..ff3e6c0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -3461,8 +3461,10 @@ struct ieee80211_ops iwlagn_hw_ops = {
.tx = iwlagn_mac_tx,
.start = iwlagn_mac_start,
.stop = iwlagn_mac_stop,
+#ifdef CONFIG_PM
.suspend = iwlagn_mac_suspend,
.resume = iwlagn_mac_resume,
+#endif /* CONFIG_PM */
.add_interface = iwl_mac_add_interface,
.remove_interface = iwl_mac_remove_interface,
.change_interface = iwl_mac_change_interface,
--
1.7.4.4
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related
* Re: [Bugme-new] [Bug 39742] New: 2.6.39.3 crash and hangs in 1-2 minutes with igb-RSS and L2TP PPTP services on the NAS server
From: Rustam Afanasyev @ 2011-07-24 19:38 UTC (permalink / raw)
To: Andrew Morton; +Cc: netdev, bugme-daemon, Patrick McHardy
In-Reply-To: <20110722144214.577718f0.akpm@linux-foundation.org>
Andrew Morton wrote:
> (switched to email. Please respond via emailed reply-to-all, not via the
> bugzilla web interface).
I apply patch from this thread.
-----------------------------------------
--- Comment #2 from xeb@mail.ru 2011-07-23 15:42:04 ---
Please check this message http://www.spinics.net/lists/netdev/msg170766.html
maybe it is the reason.
-----------------------------------------
Now :
[root@nas3 ~]# uptime
23:36:49 up 1 day, 41 min, 1 user, load average: 0.00, 0.01, 0.05
[root@nas3 ~]#
Seems it work! There is now strange hangs and panic.
^ permalink raw reply
* Re: [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: David Miller @ 2011-07-24 20:08 UTC (permalink / raw)
To: linville
Cc: johannes.berg, wey-yi.w.guy, linux-wireless, netdev, linux-kernel
In-Reply-To: <1311535150-28686-1-git-send-email-linville@tuxdriver.com>
From: "John W. Linville" <linville@tuxdriver.com>
Date: Sun, 24 Jul 2011 15:19:10 -0400
> drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
> drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
> drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
> drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
>
> This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
>
> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Since I already minimally fixed up my build locally last night I know
that your patch leads to a set of warnings because the methods whose
hookup are now commented out become completely unused and they are all
marked "static". And recursively functions that those methods use
become unused too.
Did you turn off CONFIG_PM and test the build of this file to see
what the compiler actually does with it?
I'm checking in the following, but I expect much better from you John.
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 4b666b7..b0ae4de 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2279,6 +2279,7 @@ static void iwlagn_mac_stop(struct ieee80211_hw *hw)
IWL_DEBUG_MAC80211(priv, "leave\n");
}
+#ifdef CONFIG_PM
static int iwlagn_send_patterns(struct iwl_priv *priv,
struct cfg80211_wowlan *wowlan)
{
@@ -2320,6 +2321,7 @@ static int iwlagn_send_patterns(struct iwl_priv *priv,
kfree(pattern_cmd);
return err;
}
+#endif
static void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
@@ -2352,6 +2354,7 @@ struct wowlan_key_data {
bool error, use_rsc_tsc, use_tkip;
};
+#ifdef CONFIG_PM
static void iwlagn_convert_p1k(u16 *p1k, __le16 *out)
{
int i;
@@ -2739,6 +2742,7 @@ static int iwlagn_mac_resume(struct ieee80211_hw *hw)
return 1;
}
+#endif
static void iwlagn_mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
{
@@ -3461,8 +3465,10 @@ struct ieee80211_ops iwlagn_hw_ops = {
.tx = iwlagn_mac_tx,
.start = iwlagn_mac_start,
.stop = iwlagn_mac_stop,
+#ifdef CONFIG_PM
.suspend = iwlagn_mac_suspend,
.resume = iwlagn_mac_resume,
+#endif
.add_interface = iwl_mac_add_interface,
.remove_interface = iwl_mac_remove_interface,
.change_interface = iwl_mac_change_interface,
^ permalink raw reply related
* Re: [PATCH 0/6] bnx2x fixes
From: David Miller @ 2011-07-24 20:12 UTC (permalink / raw)
To: dmitry; +Cc: netdev, eilong
In-Reply-To: <1311516194.23243.14.camel@lb-tlvb-dmitry>
From: "Dmitry Kravkov" <dmitry@broadcom.com>
Date: Sun, 24 Jul 2011 17:03:14 +0300
> Following the short series of "last minute" fixes. Will you able to
> apply it to the net-next?
All applied, thanks.
^ permalink raw reply
* [GIT] Networking
From: David Miller @ 2011-07-24 20:28 UTC (permalink / raw)
To: torvalds; +Cc: akpm, netdev, linux-kernel
The bulk of this is a final syncup with the wireless folks, updates
to the BNA and BNX2X driver, and:
1) GRE tunnel ICMP error handler packet parser has wrong expectation
of where the IPv4 header is at this point, fix from Dmitry Kozlov.
2) rt->rt_tos --> iph->tos is not a valid conversion unless RT_TOS()
is applied to filter out iph->tos value, fix from Julian Anastasov.
3) Duplicate header include removals from Huang Weiyi.
4) Linkwatch del_timer_sync() fix from Stephen Hemminger.
5) Malformed STP config packets need to be ignored, from Stephen
Hemminger.
Please pull, thanks a lot!
The following changes since commit b6844e8f64920cdee620157252169ba63afb0c89:
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm (2011-07-24 10:20:54 -0700)
are available in the git repository at:
master.kernel.org:/pub/scm/linux/kernel/git/davem/net.git master
Amitkumar Karwar (3):
mwifiex: put multicast/broadcast packets to the same RA
mwifiex: check SDIO multi-port aggregation buffer room correctly
mwifiex: disable auto deep sleep before unloading the driver
Andy Shevchenko (3):
wireless: rtlwifi: throw away MAC_FMT and use %pM instead
wireless: ath9k: use %pM to print MAC
wireless: mwifiex: print hw address via %pM
Bing Zhao (1):
MAINTAINERS: add entry for Marvell mwifiex wireless driver
Christian Lamparter (3):
carl9170 firmware: update firmware headers
carl9170: move beacon_update into tx.c
carl9170: set beacon xmit power to the max
Daniel Drake (2):
libertas: mesh: misc cleanup
libertas: only enable mesh when interface is active
David S. Miller (2):
Merge branch 'for-davem' of ssh://master.kernel.org/.../linville/wireless-next-2.6
iwlwifi: Fix build with CONFIG_PM disabled.
Dmitry Kravkov (1):
bnx2x: dcb - send all unmapped priorities to same COS as L2
Eliad Peller (3):
mac80211: reconfigure tx on device reconfiguration
cfg80211: enter psm when working as p2p_cli
mac80211: check sta_info_get() return value
Emmanuel Grumbach (21):
iwlagn: move Tx datapath to transport layer
iwlagn: move the tasklet / irq to the transport layer
iwlagn: move sync_irq to transport layer
iwlagn: move the Rx dispatching to the upper layer
iwlagn: add comment to tx and get_tx_cmd in iwl_trans_ops
iwlagn: move rx transport functions to iwl-trans-rx-pcie.c
iwlagn: move tx transport functions to iwl-trans-tx-pcie.c
iwlagn: move iwlagn_stop_device to transport layer
iwlagn: move all the ICT related functions to iwl-trans-rx-pcie.c
iwlagn: add tx start API to transport layer
iwlagn: add kick_nic API to transport layer
iwlagn: kill iwlagn_rx_handler_setup
iwlagn: kill iwlagn_setup_deferred_work
iwlagn: SCD configuration for AMPDU moves to transport layer
iwlagn: move more functions from the start flow to the transport layer
iwlagn: move iwl_prepare_card_hw to the transport layer
iwlagn: transport layer receives struct iwl_trans*
iwlagn: simplify the bus architecture
iwlagn: iwl_bus holds drv_data as void * instead of iwl_priv
iwlagn: add comment to warn about WoWLAN in resume / suspend flows
iwlagn: probe would crash with DEBUG_SHIRQ
Felix Fietkau (2):
ath9k: improve reliability of MIC error detection
ath9k_hw: validate and fix broken eeprom chainmask settings
Fry, Donald H (1):
iwlagn: remove indirection for iwlagn_hw_valid_rtc_data_addr
Hsu, Kenny (1):
iwlagn: set default of uCode ownership to driver
Huang Weiyi (5):
bnad: remove duplicated #include
can: c_can: remove duplicated #include
igb: remove duplicated #include
qlge: remove duplicated #include
via-velocity: remove duplicated #include
Joe Perches (1):
rtlwifi: Convert printks to pr_<level>
Johannes Berg (15):
nl80211: advertise GTK rekey support, new triggers
mac80211: allow driver access to TKIP RX P1K
mac80211: let key iteration get keys in install order
mac80211: be more careful in suspend/resume
iwlagn: simplify TX flags assignments
cfg80211: allow userspace to control supported rates in scan
mac80211: implement scan supported rates
mac80211: sync driver before TX
cfg80211: fix scan crash on single-band cards
iwlagn: remove keyinfo cache
iwlagn: remove forgotten debugfs function
iwlagn: rewrite HW crypto
iwlagn: implement WoWLAN
iwlagn: track beacon interval sent to device
iwlagn: rename iwlagn_set_dynamic_key
John W. Linville (2):
bcma: fix 'SSB_PCICORE_BFL_NOPCI' undeclared build breakage
Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next-2.6 into for-davem
Julian Anastasov (1):
ipv4: use RT_TOS after some rt_tos conversions
Kalle Valo (1):
ieee80211: add few wmm tspec values
Luciano Coelho (3):
nl80211/cfg80211: add max_sched_scan_ssids in the hw description
nl80211/cfg80211: add max_sched_scan_ie_len in the hw description
MAINTAINERS: change maintainer of the wl1251 driver
Pavel Roskin (11):
orinoco: minor fixes for problems found by checkpatch.pl
carl9170: fix formatting issues found by checkpatch
ath: use get_unaligned_le{16,32} in ath_hw_keysetmac()
ath9k: use get_unaligned_{b16, le16, le32} where possible
ath9k: remove defines in reg.h that exist in ../reg.h
ath9k: use ath_opmode_to_string()
ath5k: merge ath5k_hw and ath5k_softc
carl9170: fix sparse warnings enabled by CONFIG_SPARSE_RCU_POINTER
ath5k: merge ath5k_{init, deinit}_hw() with their thin wrappers
ath5k: remove ath5k_hw_get_capability(), don't use VEOL on AR5210
ath5k: use get_unaligned_le32() in ath5k_write_pwr_to_pdadc_table()
Rafał Miłecki (25):
ssb: SPROM: add LED duty cycle fields
bcma: cc: set GPIOTIMER register
bcma: extract SPROM rev 9 the same way as rev 8
b43: bus: drop inline from SSB functions
b43: use agent R/W ops for BCMA_IOCTL
b43: HT-PHY: switch to channel after enabling radio
b43: HT-PHY: find channel entry with regs data
b43: HT-PHY: fix typo in 0x2059 radio init
bcma: handle alternative SPROM location
bcma: define IO status register
b43: bcma: define 80211 core specific IO status bits
b43: bcma: read info about supported bands
b43: HT-PHY: fix masks in radio ctl
b43: correctly display longer chipsets ids
bcma: move define of BCMA_CLKCTLST register
bcma: trivial: add helpers for masking/setting
bcma: allow setting FAST clockmode for a core
bcma: allow enabling PLL
b43: bcma: implement full core reset
b43: disable parity check on BCMA devices
ssb: return correct translation bit for 64-bit DMA
bcma: inform drivers about translation bits needed for the core
b43: bcma: get DMA translation bits
b43: (un)initialize driver on the BCMA bus
b43legacy: dma: cache translation (routing bits)
Rajkumar Manoharan (2):
ath9k: Fix sparse warnings
ath9k: Fix some smatch warnings
Rasesh Mody (10):
bna: Print Driver Version
bna: CheckPatch Cleanup
bna: IOC Event Notification Enhancement
bna: State Machine Fault Handling Cleanup
bna: Minor IRQ Index and Definition Change
bna: Mboxq Flush When IOC Disabled
bna: IOC Event Name Change
bna: Add HW Semaphore Unlock Logic
bna: HW Error Counter Fix
bna: Header File Consolidation
Sergei Shtylyov (2):
r8169: use pci_dev->subsystem_{vendor|device}
sbni: use pci_dev->subsystem_device
Shmulik Ravid (1):
bnx2x: enable internal target-read for 57712 and up only
Vladislav Zolotarov (3):
bnx2x: count statistic ramrods on EQ to prevent MC assert
bnx2x: fix bnx2x_stop_on_error flow in bnx2x_sp_rtnl_task
bnx2x: use pci_pcie_cap()
Wey-Yi Guy (13):
iwlagn: remove un-necessary file
iwlagn: remove dual-indirect call to simply the code
iwlagn: another double indirect removed
iwlagn: comments for iwl_cfg
iwlagn: calibration bitmap
iwlagn: set correct calibration flag
iwlagn: remove legacy calibration command
iwlagn: define valid init calibration mask
iwlagn: radio sensor offset in le16 format
iwlagn: testmode fixed rate available for testmode only
iwlagn: remove un-necessary "_agn"
iwlagn: write iq invert register for 105/135 device
iwlagn: remove "disable otp refresh" W/A
Yaniv Rosner (1):
bnx2x: fix loopback for non 10G link
Yogesh Ashok Powar (1):
mwl8k: Fixing sta dereference when ieee80211_tx_info->control.sta is NULL
stephen hemminger (6):
bridge: send proper message_age in config BPDU
bridge: ignore bogus STP config packets
bridge: notifier called with the wrong device
bridge: add notification over netlink when STP changes state
bridge: minor cleanups
net: allow netif_carrier to be called safely from IRQ
xeb@mail.ru (1):
gre: fix improper error handling
MAINTAINERS | 10 +-
drivers/bcma/core.c | 72 ++
drivers/bcma/driver_chipcommon.c | 14 +
drivers/bcma/driver_pci.c | 2 +
drivers/bcma/sprom.c | 14 +-
drivers/net/bna/bfa_cee.c | 65 +-
drivers/net/bna/bfa_cee.h | 3 +-
drivers/net/bna/{bfa_sm.h => bfa_cs.h} | 78 +-
drivers/net/bna/bfa_defs.h | 5 +-
drivers/net/bna/bfa_defs_mfg_comm.h | 20 +-
drivers/net/bna/bfa_defs_status.h | 134 +-
drivers/net/bna/bfa_ioc.c | 157 ++-
drivers/net/bna/bfa_ioc.h | 51 +-
drivers/net/bna/bfa_wc.h | 69 -
drivers/net/bna/bfi.h | 20 +-
drivers/net/bna/bna.h | 18 +-
drivers/net/bna/bna_ctrl.c | 45 +-
drivers/net/bna/bna_hw.h | 92 +-
drivers/net/bna/bna_txrx.c | 44 +-
drivers/net/bna/bna_types.h | 58 +-
drivers/net/bna/bnad.c | 65 +-
drivers/net/bna/bnad.h | 27 +-
drivers/net/bna/bnad_ethtool.c | 2 +-
drivers/net/bna/cna.h | 2 +-
drivers/net/bnx2x/bnx2x_dcb.c | 39 +-
drivers/net/bnx2x/bnx2x_main.c | 134 ++-
drivers/net/can/c_can/c_can.c | 1 -
drivers/net/can/c_can/c_can_platform.c | 1 -
drivers/net/igb/igb_main.c | 1 -
drivers/net/qlge/qlge_main.c | 1 -
drivers/net/r8169.c | 7 +-
drivers/net/via-velocity.c | 1 -
drivers/net/wan/sbni.c | 5 +-
drivers/net/wireless/ath/ath5k/ahb.c | 44 +-
drivers/net/wireless/ath/ath5k/ani.c | 84 +-
drivers/net/wireless/ath/ath5k/ath5k.h | 272 ++++-
drivers/net/wireless/ath/ath5k/attach.c | 31 +-
drivers/net/wireless/ath/ath5k/base.c | 1138 ++++++++---------
drivers/net/wireless/ath/ath5k/base.h | 205 +---
drivers/net/wireless/ath/ath5k/caps.c | 45 -
drivers/net/wireless/ath/ath5k/debug.c | 218 ++--
drivers/net/wireless/ath/ath5k/debug.h | 21 +-
drivers/net/wireless/ath/ath5k/desc.c | 10 +-
drivers/net/wireless/ath/ath5k/dma.c | 12 +-
drivers/net/wireless/ath/ath5k/eeprom.c | 4 +-
drivers/net/wireless/ath/ath5k/initvals.c | 2 +-
drivers/net/wireless/ath/ath5k/led.c | 68 +-
drivers/net/wireless/ath/ath5k/mac80211-ops.c | 257 ++--
drivers/net/wireless/ath/ath5k/pci.c | 38 +-
drivers/net/wireless/ath/ath5k/pcu.c | 24 +-
drivers/net/wireless/ath/ath5k/phy.c | 41 +-
drivers/net/wireless/ath/ath5k/qcu.c | 9 +-
drivers/net/wireless/ath/ath5k/reset.c | 44 +-
drivers/net/wireless/ath/ath5k/rfkill.c | 65 +-
drivers/net/wireless/ath/ath5k/sysfs.c | 32 +-
drivers/net/wireless/ath/ath5k/trace.h | 12 +-
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 12 +-
drivers/net/wireless/ath/ath9k/btcoex.c | 8 +-
drivers/net/wireless/ath/ath9k/debug.c | 22 +-
drivers/net/wireless/ath/ath9k/eeprom_4k.c | 12 +-
drivers/net/wireless/ath/ath9k/eeprom_9287.c | 12 +-
drivers/net/wireless/ath/ath9k/eeprom_def.c | 12 +-
drivers/net/wireless/ath/ath9k/hif_usb.c | 9 +-
drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 7 +-
drivers/net/wireless/ath/ath9k/hw.c | 22 +
drivers/net/wireless/ath/ath9k/init.c | 25 +-
drivers/net/wireless/ath/ath9k/recv.c | 53 +-
drivers/net/wireless/ath/ath9k/reg.h | 23 -
drivers/net/wireless/ath/ath9k/xmit.c | 4 +
drivers/net/wireless/ath/carl9170/carl9170.h | 10 +-
drivers/net/wireless/ath/carl9170/cmd.h | 4 +-
drivers/net/wireless/ath/carl9170/debug.c | 2 +-
drivers/net/wireless/ath/carl9170/fwdesc.h | 3 +
drivers/net/wireless/ath/carl9170/hw.h | 41 +-
drivers/net/wireless/ath/carl9170/led.c | 2 +-
drivers/net/wireless/ath/carl9170/mac.c | 129 --
drivers/net/wireless/ath/carl9170/main.c | 2 +-
drivers/net/wireless/ath/carl9170/phy.c | 6 +-
drivers/net/wireless/ath/carl9170/tx.c | 290 ++++-
drivers/net/wireless/ath/key.c | 7 +-
drivers/net/wireless/b43/b43.h | 7 +
drivers/net/wireless/b43/bus.c | 27 +-
drivers/net/wireless/b43/dma.c | 27 +-
drivers/net/wireless/b43/dma.h | 4 +
drivers/net/wireless/b43/main.c | 106 ++-
drivers/net/wireless/b43/phy_ht.c | 21 +-
drivers/net/wireless/b43/phy_n.c | 4 +-
drivers/net/wireless/b43/radio_2059.c | 9 +
drivers/net/wireless/b43legacy/b43legacy.h | 2 +
drivers/net/wireless/b43legacy/dma.c | 7 +-
drivers/net/wireless/iwlwifi/Makefile | 8 +-
drivers/net/wireless/iwlwifi/iwl-1000.c | 11 +-
drivers/net/wireless/iwlwifi/iwl-2000.c | 46 +-
drivers/net/wireless/iwlwifi/iwl-5000.c | 22 +-
drivers/net/wireless/iwlwifi/iwl-6000.c | 58 +-
drivers/net/wireless/iwlwifi/iwl-agn-calib.c | 65 +-
drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 210 ----
drivers/net/wireless/iwlwifi/iwl-agn-ict.c | 306 -----
drivers/net/wireless/iwlwifi/iwl-agn-lib.c | 504 +-------
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 115 ++-
drivers/net/wireless/iwlwifi/iwl-agn-sta.c | 380 +++----
drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 411 +------
drivers/net/wireless/iwlwifi/iwl-agn-ucode.c | 179 +---
drivers/net/wireless/iwlwifi/iwl-agn.c | 1240 ++++++++++---------
drivers/net/wireless/iwlwifi/iwl-agn.h | 65 +-
.../net/wireless/iwlwifi/{iwl-pci.h => iwl-bus.h} | 70 +
drivers/net/wireless/iwlwifi/iwl-commands.h | 180 +++-
drivers/net/wireless/iwlwifi/iwl-core.c | 28 +-
drivers/net/wireless/iwlwifi/iwl-core.h | 64 +-
drivers/net/wireless/iwlwifi/iwl-csr.h | 1 +
drivers/net/wireless/iwlwifi/iwl-debug.h | 10 +-
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 87 +-
drivers/net/wireless/iwlwifi/iwl-dev.h | 197 +--
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 10 +-
drivers/net/wireless/iwlwifi/iwl-hcmd.c | 271 ----
drivers/net/wireless/iwlwifi/iwl-io.h | 7 +-
drivers/net/wireless/iwlwifi/iwl-led.c | 4 +-
drivers/net/wireless/iwlwifi/iwl-pci.c | 101 +-
drivers/net/wireless/iwlwifi/iwl-power.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-prph.h | 82 +-
drivers/net/wireless/iwlwifi/iwl-rx.c | 212 +---
drivers/net/wireless/iwlwifi/iwl-scan.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-sta.c | 8 +-
drivers/net/wireless/iwlwifi/iwl-sta.h | 5 +-
drivers/net/wireless/iwlwifi/iwl-sv-open.c | 10 +-
drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h | 82 ++
drivers/net/wireless/iwlwifi/iwl-trans-rx-pcie.c | 979 +++++++++++++++
.../iwlwifi/{iwl-tx.c => iwl-trans-tx-pcie.c} | 484 +++++++-
drivers/net/wireless/iwlwifi/iwl-trans.c | 643 +++++++++-
drivers/net/wireless/iwlwifi/iwl-trans.h | 154 ++-
drivers/net/wireless/libertas/dev.h | 2 -
drivers/net/wireless/libertas/main.c | 2 +-
drivers/net/wireless/libertas/mesh.c | 1320 +++++++++-----------
drivers/net/wireless/libertas/mesh.h | 31 -
drivers/net/wireless/libertas/tx.c | 2 +-
drivers/net/wireless/mwifiex/debugfs.c | 33 +-
drivers/net/wireless/mwifiex/ioctl.h | 1 +
drivers/net/wireless/mwifiex/main.h | 1 +
drivers/net/wireless/mwifiex/sdio.c | 5 +-
drivers/net/wireless/mwifiex/sta_ioctl.c | 14 +
drivers/net/wireless/mwifiex/wmm.c | 2 +
drivers/net/wireless/mwl8k.c | 6 +-
drivers/net/wireless/orinoco/airport.c | 9 +-
drivers/net/wireless/orinoco/cfg.c | 6 +-
drivers/net/wireless/orinoco/fw.c | 7 +-
drivers/net/wireless/orinoco/fw.h | 2 +-
drivers/net/wireless/orinoco/hermes.c | 40 +-
drivers/net/wireless/orinoco/hermes.h | 37 +-
drivers/net/wireless/orinoco/hermes_dld.c | 8 +-
drivers/net/wireless/orinoco/hermes_dld.h | 12 +-
drivers/net/wireless/orinoco/hw.c | 48 +-
drivers/net/wireless/orinoco/hw.h | 2 +-
drivers/net/wireless/orinoco/main.c | 46 +-
drivers/net/wireless/orinoco/mic.c | 8 +-
drivers/net/wireless/orinoco/orinoco.h | 16 +-
drivers/net/wireless/orinoco/orinoco_cs.c | 6 +-
drivers/net/wireless/orinoco/orinoco_nortel.c | 3 +-
drivers/net/wireless/orinoco/orinoco_pci.c | 4 +-
drivers/net/wireless/orinoco/orinoco_plx.c | 6 +-
drivers/net/wireless/orinoco/orinoco_tmd.c | 2 +-
drivers/net/wireless/orinoco/orinoco_usb.c | 23 +-
drivers/net/wireless/orinoco/spectrum_cs.c | 10 +-
drivers/net/wireless/orinoco/wext.c | 14 +-
drivers/net/wireless/rtlwifi/base.c | 20 +-
drivers/net/wireless/rtlwifi/cam.c | 8 +-
drivers/net/wireless/rtlwifi/core.c | 6 +-
drivers/net/wireless/rtlwifi/debug.h | 5 -
drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c | 5 +-
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 2 +-
drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 69 +-
drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 11 +-
drivers/net/wireless/rtlwifi/rtl8192de/hw.c | 2 +-
drivers/net/wireless/rtlwifi/rtl8192de/sw.c | 8 +-
drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 12 +-
drivers/net/wireless/rtlwifi/rtl8192se/phy.c | 5 +-
drivers/net/wireless/rtlwifi/rtl8192se/rf.c | 4 +-
drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 6 +-
drivers/net/wireless/rtlwifi/usb.c | 12 +-
drivers/ssb/main.c | 5 +-
include/linux/bcma/bcma.h | 21 +
include/linux/bcma/bcma_driver_chipcommon.h | 13 +-
include/linux/bcma/bcma_regs.h | 27 +-
include/linux/ieee80211.h | 37 +
include/linux/nl80211.h | 33 +-
include/linux/ssb/ssb.h | 2 +
include/net/cfg80211.h | 33 +-
include/net/mac80211.h | 60 +
net/bridge/br_if.c | 2 +-
net/bridge/br_netlink.c | 2 +
net/bridge/br_private.h | 1 +
net/bridge/br_private_stp.h | 3 +-
net/bridge/br_stp.c | 31 +-
net/bridge/br_stp_bpdu.c | 15 +-
net/bridge/br_stp_if.c | 3 +
net/bridge/br_stp_timer.c | 1 +
net/core/link_watch.c | 2 +-
net/ipv4/gre.c | 21 +-
net/ipv4/ipmr.c | 2 +-
net/ipv4/route.c | 2 +-
net/mac80211/agg-rx.c | 10 +-
net/mac80211/cfg.c | 4 +
net/mac80211/driver-ops.h | 31 +
net/mac80211/driver-trace.h | 43 +
net/mac80211/ieee80211_i.h | 7 +-
net/mac80211/key.c | 2 +-
net/mac80211/mlme.c | 30 +-
net/mac80211/pm.c | 3 +
net/mac80211/scan.c | 6 +-
net/mac80211/tkip.c | 11 +
net/mac80211/util.c | 71 +-
net/mac80211/work.c | 28 +-
net/wireless/core.c | 7 +-
net/wireless/core.h | 4 +
net/wireless/nl80211.c | 109 ++-
net/wireless/scan.c | 4 +
net/wireless/util.c | 38 +
217 files changed, 8010 insertions(+), 6814 deletions(-)
rename drivers/net/bna/{bfa_sm.h => bfa_cs.h} (60%)
delete mode 100644 drivers/net/bna/bfa_wc.h
delete mode 100644 drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c
delete mode 100644 drivers/net/wireless/iwlwifi/iwl-agn-ict.c
rename drivers/net/wireless/iwlwifi/{iwl-pci.h => iwl-bus.h} (61%)
delete mode 100644 drivers/net/wireless/iwlwifi/iwl-hcmd.c
create mode 100644 drivers/net/wireless/iwlwifi/iwl-trans-int-pcie.h
create mode 100644 drivers/net/wireless/iwlwifi/iwl-trans-rx-pcie.c
rename drivers/net/wireless/iwlwifi/{iwl-tx.c => iwl-trans-tx-pcie.c} (53%)
^ permalink raw reply
* Re: [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: John W. Linville @ 2011-07-24 20:39 UTC (permalink / raw)
To: David Miller
Cc: johannes.berg, wey-yi.w.guy, linux-wireless, netdev, linux-kernel
In-Reply-To: <20110724.130840.1093555047179460794.davem@davemloft.net>
On Sun, Jul 24, 2011 at 01:08:40PM -0700, David Miller wrote:
> From: "John W. Linville" <linville@tuxdriver.com>
> Date: Sun, 24 Jul 2011 15:19:10 -0400
>
> > drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
> > drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
> > drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
> > drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
> >
> > This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
> >
> > Signed-off-by: John W. Linville <linville@tuxdriver.com>
>
> Since I already minimally fixed up my build locally last night I know
> that your patch leads to a set of warnings because the methods whose
> hookup are now commented out become completely unused and they are all
> marked "static". And recursively functions that those methods use
> become unused too.
>
> Did you turn off CONFIG_PM and test the build of this file to see
> what the compiler actually does with it?
>
> I'm checking in the following, but I expect much better from you John.
Sorry, Dave. I confess that I was hoping for a quick fix on a Sunday afternoon. :-)
Thanks for making it better!
John
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* LOAN UPDATE Email:fastwayloanlender@hotmail.com
From: Mary C Kuhns @ 2011-07-24 20:33 UTC (permalink / raw)
I am Patrick Fisher of the Fast Way Finance Company NIGERIA a Money
Lending Firm for real estate and any kind of business financing. We
offer Loan to individuals person(s), Firms and cooperate bodies
at 3% interest rate per annum. The Minimum amount you can borrow
is $2,000.00 to $700.000,000.00 US Dollars.
All replies should be forwarded to the Company's
E-mails:fastwayloanlender@hotmail.com
Contact Name: Mr Patrick Fisher
We are certified, trustworthy, reliable, efficient,
Fast and dynamic. A trial will convince you..... Provide us with
the
following:
* Name Of Applicant:.......
* Address:.................
* Country:.................
* Phone Number:............
* Amount Requested: .......
* Loan Duration/years:.....
* Occupation...............
* Have you applied for a Loan ONLINE..
In acknowledgment to this mail, we can start with the processing of
your
loan.
Contact us for more information via
Email:fastwayloanlender@hotmail.com
Mr.Patrick Fisher
Managing Director.
^ permalink raw reply
* [PATCH] Do not leave router anycast address for /127 prefixes.
From: yoshfuji @ 2011-07-24 21:44 UTC (permalink / raw)
To: netdev; +Cc: davem, YOSHIFUJI Hideaki, Bjørn Mork, Brian Haley
From: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Original commit 2bda8a0c8af... "Disable router anycast
address for /127 prefixes" says:
| No need for matching code in addrconf_leave_anycast() as it
| will silently ignore any attempt to leave an unknown anycast
| address.
After analysis, because 1) we may add two or more prefixes on the
same interface, or 2)user may have manually joined that anycast,
we may hit chances to have anycast address which as if we had
generated one by /127 prefix and we should not leave from subnet-
router anycast address unconditionally.
CC: Bjørn Mork <bjorn@mork.no>
CC: Brian Haley <brian.haley@hp.com>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
---
net/ipv6/addrconf.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index a06c53c..a55500c 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1481,6 +1481,8 @@ static void addrconf_join_anycast(struct inet6_ifaddr *ifp)
static void addrconf_leave_anycast(struct inet6_ifaddr *ifp)
{
struct in6_addr addr;
+ if (ifp->prefix_len == 127) /* RFC 6164 */
+ return;
ipv6_addr_prefix(&addr, &ifp->addr, ifp->prefix_len);
if (ipv6_addr_any(&addr))
return;
--
1.7.0.4
^ permalink raw reply related
* Re: Linux Kernel | Intel Driver Bug - please update
From: Jeff Kirsher @ 2011-07-24 22:47 UTC (permalink / raw)
To: Nicolás Sigal | LocalHost Soluciones Innovadoras
Cc: kristoffer@gaisler.com, Brandeburg, Jesse, Allan, Bruce W,
Ronciak, John, support, netdev
In-Reply-To: <0BE7A0BD7DFE4537AA0C03E333326E52@NOTENIKO>
[-- Attachment #1: Type: text/plain, Size: 2072 bytes --]
On Sun, 2011-07-24 at 13:28 -0700, Nicolás Sigal | LocalHost Soluciones
Innovadoras wrote:
> Please, can you update the e1000e driver of the kernel to v1.4.4?
>
> http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3299&DwnldID=15817&ProductFamily=Componentes+Ethernet&ProductLine=Controladores+Ethernet&ProductProduct=Controlador+Intel%C2%AE+82579+Gigabit+Ethernet&DownloadType=Controladoresspa
>
> This version have an important bug fixed:
> * 82579: Fix for Tx Hang on FTS ME Platform
>
> And we have this problem in all of our servers with this NIC and ME
> on.
>
> Debug:
>
> Jul 24 14:23:27 [kernel] e1000e 0000:00:19.0: eth0: Detected Hardware
> Unit Hang:
> Jul 24 14:23:27 [kernel] TDH <0>
> Jul 24 14:23:27 [kernel] TDT <16>
> Jul 24 14:23:27 [kernel] next_to_use <16>
> Jul 24 14:23:27 [kernel] next_to_clean <0>
> Jul 24 14:23:27 [kernel] buffer_info[next_to_clean]:
> Jul 24 14:23:27 [kernel] time_stamp <10282156f>
> Jul 24 14:23:27 [kernel] next_to_watch <0>
> Jul 24 14:23:27 [kernel] jiffies <102821aed>
> Jul 24 14:23:27 [kernel] next_to_watch.status <0>
> Jul 24 14:23:27 [kernel] MAC Status <80143>
> Jul 24 14:23:27 [kernel] PHY Status <796d>
> Jul 24 14:23:27 [kernel] PHY 1000BASE-T Status <0>
> Jul 24 14:23:27 [kernel] PHY Extended Status <3000>
> Jul 24 14:23:27 [kernel] PCI Status <10>
> Jul 24 14:23:28 [kernel] e1000e 0000:00:19.0: eth0: Reset adapter
> Jul 24 14:23:30 [kernel] e1000e: eth0 NIC Link is Up 100 Mbps Full
> Duplex, Flow Control: Rx/Tx
> Jul 24 14:23:30 [kernel] e1000e 0000:00:19.0: eth0: 10/100 speed:
> disabling TSO
>
[removed ixgbe/igb Intel maintainers, and Linus from the email thread]
Added a more appropriate mailing list (netdev)
We currently have the kernel patches in review and testing to update the
e1000e driver to v1.4.4. I should be able to push some, if not all of
the changes upstream later this week.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 490 bytes --]
^ permalink raw reply
* Re: [PATCH] iwlagn: wrap suspend/resume definitions in CONFIG_PM block
From: Guy, Wey-Yi @ 2011-07-24 23:01 UTC (permalink / raw)
To: John W. Linville
Cc: David Miller, Berg, Johannes,
linux-wireless-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <20110724203956.GA29630-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
On Sun, 2011-07-24 at 13:39 -0700, John W. Linville wrote:
> On Sun, Jul 24, 2011 at 01:08:40PM -0700, David Miller wrote:
> > From: "John W. Linville" <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
> > Date: Sun, 24 Jul 2011 15:19:10 -0400
> >
> > > drivers/net/wireless/iwlwifi/iwl-agn.c:3464: error: unknown field 'suspend' specified in initializer
> > > drivers/net/wireless/iwlwifi/iwl-agn.c:3464: warning: initialization from incompatible pointer type
> > > drivers/net/wireless/iwlwifi/iwl-agn.c:3465: error: unknown field 'resume' specified in initializer
> > > drivers/net/wireless/iwlwifi/iwl-agn.c:3465: warning: initialization from incompatible pointer type
> > >
> > > This was caused by commit c8ac61cf ("iwlagn: implement WoWLAN").
> > >
> > > Signed-off-by: John W. Linville <linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
> >
> > Since I already minimally fixed up my build locally last night I know
> > that your patch leads to a set of warnings because the methods whose
> > hookup are now commented out become completely unused and they are all
> > marked "static". And recursively functions that those methods use
> > become unused too.
> >
> > Did you turn off CONFIG_PM and test the build of this file to see
> > what the compiler actually does with it?
> >
> > I'm checking in the following, but I expect much better from you John.
>
> Sorry, Dave. I confess that I was hoping for a quick fix on a Sunday afternoon. :-)
>
> Thanks for making it better!
>
> John
My mistake to not catch this to begin with, sorry for cause all the
trouble.
Wey
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: Linux Kernel | Intel Driver Bug - please update
From: Nicolás Sigal | LocalHost Soluciones Innovadoras @ 2011-07-24 23:21 UTC (permalink / raw)
To: jeffrey.t.kirsher
Cc: kristoffer, Brandeburg, Jesse, Allan, Bruce W, Ronciak, John,
netdev
In-Reply-To: <1311547638.2835.72.camel@jtkirshe-mobl>
really really thanks Jeff!
we are fighting to this problem for a long time with the intel executive
series motherboards with amt that are failing for this bug in the driver..
Regards;
.................................................
Nicolás Sigal
CEO :: LocalHost Soluciones Innovadoras
Mendoza 2917 :: C1428DKY
Ciudad Autónoma de Buenos Aires :: Argentina
Tel/Fax: 0810 55 LOCALHOST :: (011) 4784.6993
http://www.localhost.net.ar/
nicolas.sigal@localhost.net.ar
----- Original Message -----
From: "Jeff Kirsher" <jeffrey.t.kirsher@intel.com>
To: "Nicolás Sigal | LocalHost Soluciones Innovadoras"
<nicolas.sigal@localhost.net.ar>
Cc: <kristoffer@gaisler.com>; "Brandeburg, Jesse"
<jesse.brandeburg@intel.com>; "Allan, Bruce W" <bruce.w.allan@intel.com>;
"Ronciak, John" <john.ronciak@intel.com>; <support@localhost.net.ar>;
"netdev" <netdev@vger.kernel.org>
Sent: Sunday, July 24, 2011 7:47 PM
Subject: Re: Linux Kernel | Intel Driver Bug - please update
^ permalink raw reply
* [PATCH 1/1] IPv4: Send gratuitous ARP for secondary IP addresses also
From: Zoltan, Kiss @ 2011-07-24 23:09 UTC (permalink / raw)
To: David S. Miller, Alexey Kuznetsov, Pekka Savola, James Morris,
Hideaki YOSHIFUJI
Cc: linux-kernel, Zoltan Kiss
From: Zoltan Kiss <schaman@sch.bme.hu>
If a device event generates gratuitous ARP messages, only primary
address is used for sending. This patch iterates through the whole
list. Tested with 2 IP addresses configuration on bonding interface.
Signed-off-by: Zoltan Kiss <schaman@sch.bme.hu>
---
net/ipv4/devinet.c | 16 ++++++++--------
1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 37b3c18..bc19bd0 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1134,15 +1134,15 @@ static void inetdev_send_gratuitous_arp(struct net_device *dev,
struct in_device *in_dev)
{
- struct in_ifaddr *ifa = in_dev->ifa_list;
-
- if (!ifa)
- return;
+ struct in_ifaddr *ifa;
- arp_send(ARPOP_REQUEST, ETH_P_ARP,
- ifa->ifa_local, dev,
- ifa->ifa_local, NULL,
- dev->dev_addr, NULL);
+ for (ifa = in_dev->ifa_list; ifa;
+ ifa = ifa->ifa_next) {
+ arp_send(ARPOP_REQUEST, ETH_P_ARP,
+ ifa->ifa_local, dev,
+ ifa->ifa_local, NULL,
+ dev->dev_addr, NULL);
+ }
}
/* Called only under RTNL semaphore */
--
1.7.4.1
^ permalink raw reply related
* Re: [PATCH net-next] skbuff: clear tx zero-copy flag
From: Herbert Xu @ 2011-07-25 0:42 UTC (permalink / raw)
To: Shirley Ma; +Cc: davem, mst, netdev, kvm, linux-kernel
In-Reply-To: <1310195566.25391.6.camel@localhost.localdomain>
Shirley Ma <mashirle@us.ibm.com> wrote:
>
> This patch clears tx zero-copy flag as needed.
>
> Sign-off-by: Shirley Ma <xma@us.ibm.com>
I think we also need to copy and clear this flag on the splice
read path as that takes a direct page reference.
I hope there isn't any other path that does this.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply
* Re: IPv6: autoconfiguration and suspend/resume or link down/up
From: Stephen Hemminger @ 2011-07-25 3:26 UTC (permalink / raw)
To: Nicolas de Pesloüan; +Cc: Herbert Xu, David Miller, jbohac, netdev
In-Reply-To: <4E2BD96E.4090101@gmail.com>
On Sun, 24 Jul 2011 10:35:58 +0200
Nicolas de Pesloüan <nicolas.2p.debian@gmail.com> wrote:
> Le 24/07/2011 02:18, Herbert Xu a écrit :
> > On Sat, Jul 23, 2011 at 09:37:43AM -0700, Stephen Hemminger wrote:
> >>
> >> Would it be possible to do live migration without dropping carrier
> >> or setting interface down?
> >
> > I think LM uses the same mechanism as suspend and resume so whatever
> > happens in one case will happen in the other case as well.
>
> So we need to distinguish between two kind of link events:
>
> 1/ Really having the link goes down then up. This should trigger a renegotiation.
>
> 2/ Having the system suspend then resume :
> 2a/ This should trigger link down/link up events to force a renegotiation, for normal suspend/resume
> where the network might have changed between suspend and resume.
> 2/ This should *not* trigger link down/link up events to avoid a renegotiation (for live migration)
> because it is assumed that the network didn't change while suspended.
>
> Can't we allow the user to set a global "link-down-link-up-timeout" and only force a renegotiation
> if the time between link down and link up events is longer than this timeout? Normal user would set
> this timeout close to 0 (default value). Live migration user would set this timeout to about twice
> the time it normally takes to do a live migration. That way, in a VM environment, if the
> suspend/resume cycle happens to take far more than a normal live migration time, the kernel would
> renegotiate, which sounds reasonable, from my point of view.
I hate building infrastructure where it is not needed.
Since virtual machines should be using virtio network devices, shouldn't
the suspend/resume in that device just work. It doesn't need to drop the link.
^ permalink raw reply
* Re: IPv6: autoconfiguration and suspend/resume or link down/up
From: Herbert Xu @ 2011-07-25 3:46 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Nicolas de Pesloüan, David Miller, jbohac, netdev
In-Reply-To: <20110724202620.1456e742@nehalam.ftrdhcpuser.net>
On Sun, Jul 24, 2011 at 08:26:20PM -0700, Stephen Hemminger wrote:
>
> Since virtual machines should be using virtio network devices, shouldn't
> the suspend/resume in that device just work. It doesn't need to drop the link.
The VM may also be using SRIOV.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply
* [PATCH] Fix little error for the man page of 'ip link'
From: Bin Li @ 2011-07-25 6:34 UTC (permalink / raw)
To: netdev
[-- Attachment #1: Type: text/plain, Size: 1168 bytes --]
Hi,
The original patch could found here.
http://git.kernel.org/?p=linux/kernel/git/shemminger/iproute2.git;a=commitdiff;h=df33d7a489e13b69caa8b55064e01e99bdabef15
And the below trunk shouldn't be delete. The correct should be "ip
link set DEVICE { .. | .. | ..}" instead of "ip link set DEVICE { .. |
.. | .."
-------------------------------------------------------------------
@@ -68,8 +96,6 @@ ip \- show / manipulate routing, devices, policy
routing and tunnels
.IR VLAN-QOS " ] ] ["
.B rate
.IR TXRATE " ]"
-.BR " }"
-
.ti -8
.B ip link show
-------------------------------------------------------------------
Please my patch in the attachment or below. Just add it back. Thanks!
-------------------------------------------------------------------
Index: iproute2/man/man8/ip.8
===================================================================
--- iproute2.orig/man/man8/ip.8
+++ iproute2/man/man8/ip.8
@@ -106,6 +106,8 @@ ip \- show / manipulate routing, devices
.IR DEVICE
.br
.B nomaster
+.BR " }"
+
.ti -8
.B ip link show
-------------------------------------------------------------------
Sincerely Yours,
Bin Li
http://zh.opensuse.org
[-- Attachment #2: ip_link_set_man.patch --]
[-- Type: text/x-patch, Size: 287 bytes --]
Index: iproute2/man/man8/ip.8
===================================================================
--- iproute2.orig/man/man8/ip.8
+++ iproute2/man/man8/ip.8
@@ -106,6 +106,8 @@ ip \- show / manipulate routing, devices
.IR DEVICE
.br
.B nomaster
+.BR " }"
+
.ti -8
.B ip link show
^ permalink raw reply
* Re: [PATCH net-next] skbuff: clear tx zero-copy flag
From: Michael S. Tsirkin @ 2011-07-25 8:07 UTC (permalink / raw)
To: Herbert Xu; +Cc: Shirley Ma, davem, netdev, kvm, linux-kernel
In-Reply-To: <20110725004200.GA25794@gondor.apana.org.au>
On Mon, Jul 25, 2011 at 08:42:00AM +0800, Herbert Xu wrote:
> Shirley Ma <mashirle@us.ibm.com> wrote:
> >
> > This patch clears tx zero-copy flag as needed.
> >
> > Sign-off-by: Shirley Ma <xma@us.ibm.com>
>
> I think we also need to copy and clear this flag on the splice
> read path as that takes a direct page reference.
>
> I hope there isn't any other path that does this.
>
> Cheers,
When there's a way for an skb to get into the
host networking stack, (e.g. when tap gains zero copy
support) we'll need to handle that.
However macvtap passes an skb directly to the
lower device, so as long as macvtap is the only user
of that interface, we are fine I think - there's
no way for an skb to get from macvtap to splice
read path I think.
Right?
> --
> Email: Herbert Xu <herbert@gondor.apana.org.au>
> Home Page: http://gondor.apana.org.au/~herbert/
> PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply
* Re: [PATCH net-next] skbuff: clear tx zero-copy flag
From: Herbert Xu @ 2011-07-25 8:40 UTC (permalink / raw)
To: Michael S. Tsirkin; +Cc: Shirley Ma, davem, netdev, kvm, linux-kernel
In-Reply-To: <20110725080743.GC7840@redhat.com>
On Mon, Jul 25, 2011 at 11:07:43AM +0300, Michael S. Tsirkin wrote:
>
> However macvtap passes an skb directly to the
> lower device, so as long as macvtap is the only user
> of that interface, we are fine I think - there's
> no way for an skb to get from macvtap to splice
> read path I think.
>
> Right?
Yes, as long as you can guarantee that the skb never loops back
then you should be fine.
However, does macvtap really bypass everything, including the
qdisc layer? The qdisc layer is certainly capable of looping
the skb back with the redirect action.
Cheers,
--
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
^ permalink raw reply
* [PATCH] net/smsc911x: add device tree probe support
From: Shawn Guo @ 2011-07-25 9:44 UTC (permalink / raw)
To: netdev
Cc: devicetree-discuss, linux-arm-kernel, patches, Shawn Guo,
Grant Likely, Steve Glendinning, David S. Miller
It adds device tree probe support for smsc911x driver.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Cc: Grant Likely <grant.likely@secretlab.ca>
Cc: Steve Glendinning <steve.glendinning@smsc.com>
Cc: David S. Miller <davem@davemloft.net>
---
Documentation/devicetree/bindings/net/smsc.txt | 34 +++++++
drivers/net/smsc911x.c | 123 +++++++++++++++++++-----
2 files changed, 132 insertions(+), 25 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/smsc.txt
diff --git a/Documentation/devicetree/bindings/net/smsc.txt b/Documentation/devicetree/bindings/net/smsc.txt
new file mode 100644
index 0000000..1920695
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/smsc.txt
@@ -0,0 +1,34 @@
+* Smart Mixed-Signal Connectivity (SMSC) LAN Controller
+
+Required properties:
+- compatible : Should be "smsc,lan<model>""smsc,lan"
+- reg : Address and length of the io space for SMSC LAN
+- smsc-int-gpios : Should specify the GPIO for SMSC LAN interrupt line
+- phy-mode : String, operation mode of the PHY interface.
+ Supported values are: "mii", "gmii", "sgmii", "tbi", "rmii",
+ "rgmii", "rgmii-id", "rgmii-rxid", "rgmii-txid", "rtbi", "smii".
+
+Optional properties:
+- smsc,irq-active-high : Indicates the IRQ polarity is active-low
+- smsc,irq-push-pull : Indicates the IRQ type is push-pull
+- smsc,register-needs-shift : Indicates the register access needs shift
+- smsc,access-in-32bit : Indicates the access to controller is in 32-bit
+ mode
+- smsc,force-internal-phy : Forces SMSC LAN controller to use
+ internal PHY
+- smsc,force-external-phy : Forces SMSC LAN controller to use
+ external PHY
+- smsc,save-mac-address : Indicates that mac address needs to be saved
+ before resetting the controller
+- local-mac-address : 6 bytes, mac address
+
+Examples:
+
+lan9220@f4000000 {
+ compatible = "smsc,lan9220", "smsc,lan";
+ reg = <0xf4000000 0x2000000>;
+ phy-mode = "mii";
+ smsc-int-gpios = <&gpio1 31 0>; /* GPIO2_31 */
+ smsc,irq-push-pull;
+ smsc,access-in-32bit;
+};
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index b9016a3..0097048 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -53,6 +53,10 @@
#include <linux/phy.h>
#include <linux/smsc911x.h>
#include <linux/device.h>
+#include <linux/of.h>
+#include <linux/of_device.h>
+#include <linux/of_gpio.h>
+#include <linux/of_net.h>
#include "smsc911x.h"
#define SMSC_CHIPNAME "smsc911x"
@@ -2095,25 +2099,67 @@ static const struct smsc911x_ops shifted_smsc911x_ops = {
.tx_writefifo = smsc911x_tx_writefifo_shift,
};
+#ifdef CONFIG_OF
+static int __devinit smsc911x_probe_config_dt(
+ struct smsc911x_platform_config *config,
+ struct device_node *np)
+{
+ const char *mac;
+
+ if (!np)
+ return -ENODEV;
+
+ config->phy_interface = of_get_phy_mode(np);
+
+ mac = of_get_mac_address(np);
+ if (mac)
+ memcpy(config->mac, mac, ETH_ALEN);
+
+ if (of_get_property(np, "smsc,irq-active-high", NULL))
+ config->irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_HIGH;
+
+ if (of_get_property(np, "smsc,irq-push-pull", NULL))
+ config->irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL;
+
+ if (of_get_property(np, "smsc,register-needs-shift", NULL))
+ config->shift = 1;
+
+ if (of_get_property(np, "smsc,access-in-32bit", NULL))
+ config->flags |= SMSC911X_USE_32BIT;
+
+ if (of_get_property(np, "smsc,force-internal-phy", NULL))
+ config->flags |= SMSC911X_FORCE_INTERNAL_PHY;
+
+ if (of_get_property(np, "smsc,force-external-phy", NULL))
+ config->flags |= SMSC911X_FORCE_EXTERNAL_PHY;
+
+ if (of_get_property(np, "smsc,save-mac-address", NULL))
+ config->flags |= SMSC911X_SAVE_MAC_ADDRESS;
+
+ return 0;
+}
+#else
+static inline int smsc911x_probe_config_dt(
+ struct smsc911x_platform_config *config,
+ struct device_node *np)
+{
+ return -ENODEV;
+}
+#endif /* CONFIG_OF */
+
static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
{
+ struct device_node *np = pdev->dev.of_node;
struct net_device *dev;
struct smsc911x_data *pdata;
struct smsc911x_platform_config *config = pdev->dev.platform_data;
struct resource *res, *irq_res;
unsigned int intcfg = 0;
- int res_size, irq_flags;
- int retval;
+ int irq_gpio, res_size, irq_flags = 0;
+ int retval = 0;
pr_info("Driver version %s\n", SMSC_DRV_VERSION);
- /* platform data specifies irq & dynamic bus configuration */
- if (!pdev->dev.platform_data) {
- pr_warn("platform_data not provided\n");
- retval = -ENODEV;
- goto out_0;
- }
-
res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
"smsc911x-memory");
if (!res)
@@ -2125,13 +2171,6 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
}
res_size = resource_size(res);
- irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- if (!irq_res) {
- pr_warn("Could not allocate irq resource\n");
- retval = -ENODEV;
- goto out_0;
- }
-
if (!request_mem_region(res->start, res_size, SMSC_CHIPNAME)) {
retval = -EBUSY;
goto out_0;
@@ -2148,26 +2187,53 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
pdata = netdev_priv(dev);
- dev->irq = irq_res->start;
- irq_flags = irq_res->flags & IRQF_TRIGGER_MASK;
- pdata->ioaddr = ioremap_nocache(res->start, res_size);
-
- /* copy config parameters across to pdata */
- memcpy(&pdata->config, config, sizeof(pdata->config));
+ if (np) {
+ irq_gpio = of_get_named_gpio(np, "smsc-int-gpios", 0);
+ retval = gpio_request_one(irq_gpio, GPIOF_IN, "smsc-int-gpio");
+ if (!retval)
+ dev->irq = gpio_to_irq(irq_gpio);
+ } else {
+ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
+ if (irq_res) {
+ dev->irq = irq_res->start;
+ irq_flags = irq_res->flags & IRQF_TRIGGER_MASK;
+ } else {
+ retval = -ENODEV;
+ }
+ }
- pdata->dev = dev;
- pdata->msg_enable = ((1 << debug) - 1);
+ if (retval) {
+ SMSC_WARN(pdata, probe, "Error smsc911x irq not found");
+ retval = -EINVAL;
+ goto out_free_netdev_2;
+ }
+ pdata->ioaddr = ioremap_nocache(res->start, res_size);
if (pdata->ioaddr == NULL) {
SMSC_WARN(pdata, probe, "Error smsc911x base address invalid");
retval = -ENOMEM;
goto out_free_netdev_2;
}
+ pdata->dev = dev;
+ pdata->msg_enable = ((1 << debug) - 1);
+
+ retval = smsc911x_probe_config_dt(&pdata->config, np);
+ if (retval && config) {
+ /* copy config parameters across to pdata */
+ memcpy(&pdata->config, config, sizeof(pdata->config));
+ retval = 0;
+ }
+
+ if (retval) {
+ SMSC_WARN(pdata, probe, "Error smsc911x config not found");
+ goto out_unmap_io_3;
+ }
+
/* assume standard, non-shifted, access to HW registers */
pdata->ops = &standard_smsc911x_ops;
/* apply the right access if shifting is needed */
- if (config->shift)
+ if (pdata->config.shift)
pdata->ops = &shifted_smsc911x_ops;
retval = smsc911x_init(dev);
@@ -2314,6 +2380,12 @@ static const struct dev_pm_ops smsc911x_pm_ops = {
#define SMSC911X_PM_OPS NULL
#endif
+static const struct of_device_id smsc_dt_ids[] = {
+ { .compatible = "smsc,lan", },
+ { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, smsc_dt_ids);
+
static struct platform_driver smsc911x_driver = {
.probe = smsc911x_drv_probe,
.remove = __devexit_p(smsc911x_drv_remove),
@@ -2321,6 +2393,7 @@ static struct platform_driver smsc911x_driver = {
.name = SMSC_CHIPNAME,
.owner = THIS_MODULE,
.pm = SMSC911X_PM_OPS,
+ .of_match_table = smsc_dt_ids,
},
};
--
1.7.4.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox