Re: [PATCH] staging: qlge: Fix multiple WARNING and CHECK relating to formatting

2019-12-11 Thread Scott Schafer
On Wed, Dec 11, 2019 at 08:31:36AM +0100, Greg Kroah-Hartman wrote:
> On Tue, Dec 10, 2019 at 07:47:59PM -0600, Scott Schafer wrote:
> > CHECK: Please don't use multiple blank lines
> > CHECK: Blank lines aren't necessary before a close brace '}'
> > CHECK: Blank lines aren't necessary after an open brace '{'
> > WARNING: Missing a blank line after declarations
> > CHECK: No space is necessary after a cast
> > CHECK: braces {} should be used on all arms of this statement
> > CHECK: Unbalanced braces around else statement
> > WARNING: please, no space before tabs
> > CHECK: spaces preferred around that '/' (ctx:VxV)
> > CHECK: spaces preferred around that '+' (ctx:VxV)
> > CHECK: spaces preferred around that '%' (ctx:VxV)
> > CHECK: spaces preferred around that '|' (ctx:VxV)
> > CHECK: spaces preferred around that '*' (ctx:VxV)
> > WARNING: Unnecessary space before function pointer arguments
> > WARNING: please, no spaces at the start of a line
> > WARNING: Block comments use a trailing */ on a separate line
> > ERROR: trailing whitespace
> > 
> > In files qlge.h, qlge_dbg.c, qlge_ethtool.c, qlge_main.c, and qlge_mpi.c
> > 
> > Signed-off-by: Scott Schafer 
> > ---
> >  drivers/staging/qlge/qlge.h |  45 ++---
> >  drivers/staging/qlge/qlge_dbg.c |  41 ++-
> >  drivers/staging/qlge/qlge_ethtool.c |  20 --
> >  drivers/staging/qlge/qlge_main.c| 101 ++--
> >  drivers/staging/qlge/qlge_mpi.c |  37 +-
> >  5 files changed, 125 insertions(+), 119 deletions(-)
> 
> Hi,
> 
> This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
> a patch that has triggered this response.  He used to manually respond
> to these common problems, but in order to save his sanity (he kept
> writing the same thing over and over, yet to different people), I was
> created.  Hopefully you will not take offence and will fix the problem
> in your patch and resubmit it so that it can be accepted into the Linux
> kernel tree.
> 
> You are receiving this message because of the following common error(s)
> as indicated below:
> 
> - Your patch did many different things all at once, making it difficult
>   to review.  All Linux kernel patches need to only do one thing at a
>   time.  If you need to do multiple things (such as clean up all coding
>   style issues in a file/driver), do it in a sequence of patches, each
>   one doing only one thing.  This will make it easier to review the
>   patches to ensure that they are correct, and to help alleviate any
>   merge issues that larger patches can cause.
> 
> If you wish to discuss this problem further, or you have questions about
> how to resolve this issue, please feel free to respond to this email and
> Greg will reply once he has dug out from the pending patches received
> from other developers.
> 
> thanks,
> 
> greg k-h's patch email bot

I was wondering how I would go about chaning the patch. I know I should
switch to a patchset but how would I go about doing that? Also where
would I place the new patches? Would I, create a new patch series or
would I split the patch into new (smaller) patches and reply to this
thread?

Thanks, 
Scott Schafer
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] staging: qlge: Fix multiple WARNING and CHECK relating to formatting

2019-12-11 Thread Greg Kroah-Hartman
On Wed, Dec 11, 2019 at 02:28:39AM -0600, Scott Schafer wrote:
> On Wed, Dec 11, 2019 at 08:31:36AM +0100, Greg Kroah-Hartman wrote:
> > On Tue, Dec 10, 2019 at 07:47:59PM -0600, Scott Schafer wrote:
> > > CHECK: Please don't use multiple blank lines
> > > CHECK: Blank lines aren't necessary before a close brace '}'
> > > CHECK: Blank lines aren't necessary after an open brace '{'
> > > WARNING: Missing a blank line after declarations
> > > CHECK: No space is necessary after a cast
> > > CHECK: braces {} should be used on all arms of this statement
> > > CHECK: Unbalanced braces around else statement
> > > WARNING: please, no space before tabs
> > > CHECK: spaces preferred around that '/' (ctx:VxV)
> > > CHECK: spaces preferred around that '+' (ctx:VxV)
> > > CHECK: spaces preferred around that '%' (ctx:VxV)
> > > CHECK: spaces preferred around that '|' (ctx:VxV)
> > > CHECK: spaces preferred around that '*' (ctx:VxV)
> > > WARNING: Unnecessary space before function pointer arguments
> > > WARNING: please, no spaces at the start of a line
> > > WARNING: Block comments use a trailing */ on a separate line
> > > ERROR: trailing whitespace
> > > 
> > > In files qlge.h, qlge_dbg.c, qlge_ethtool.c, qlge_main.c, and qlge_mpi.c
> > > 
> > > Signed-off-by: Scott Schafer 
> > > ---
> > >  drivers/staging/qlge/qlge.h |  45 ++---
> > >  drivers/staging/qlge/qlge_dbg.c |  41 ++-
> > >  drivers/staging/qlge/qlge_ethtool.c |  20 --
> > >  drivers/staging/qlge/qlge_main.c| 101 ++--
> > >  drivers/staging/qlge/qlge_mpi.c |  37 +-
> > >  5 files changed, 125 insertions(+), 119 deletions(-)
> > 
> > Hi,
> > 
> > This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
> > a patch that has triggered this response.  He used to manually respond
> > to these common problems, but in order to save his sanity (he kept
> > writing the same thing over and over, yet to different people), I was
> > created.  Hopefully you will not take offence and will fix the problem
> > in your patch and resubmit it so that it can be accepted into the Linux
> > kernel tree.
> > 
> > You are receiving this message because of the following common error(s)
> > as indicated below:
> > 
> > - Your patch did many different things all at once, making it difficult
> >   to review.  All Linux kernel patches need to only do one thing at a
> >   time.  If you need to do multiple things (such as clean up all coding
> >   style issues in a file/driver), do it in a sequence of patches, each
> >   one doing only one thing.  This will make it easier to review the
> >   patches to ensure that they are correct, and to help alleviate any
> >   merge issues that larger patches can cause.
> > 
> > If you wish to discuss this problem further, or you have questions about
> > how to resolve this issue, please feel free to respond to this email and
> > Greg will reply once he has dug out from the pending patches received
> > from other developers.
> > 
> > thanks,
> > 
> > greg k-h's patch email bot
> 
> I was wondering how I would go about chaning the patch.

Break it up into "one patch per logical change".

See the many other patchsets on this mailing list for examples of how
this is done.

> I know I should switch to a patchset but how would I go about doing
> that?

What exactly do you mean by "how"?

> Also where would I place the new patches?

You email them here :)

> Would I, create a new patch series or would I split the patch into new
> (smaller) patches and reply to this thread?

Just a whole new patch series is good.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Greg KH
On Wed, Dec 11, 2019 at 04:57:28PM +0800, Jack Ping CHNG wrote:
> This driver enables the Intel's LGM SoC GSWIP block.
> GSWIP is a core module tailored for L2/L3/L4+ data plane and QoS functions.
> It allows CPUs and other accelerators connected to the SoC datapath
> to enqueue and dequeue packets through DMAs.
> Most configuration values are stored in tables such as
> Parsing and Classification Engine tables, Buffer Manager tables and
> Pseudo MAC tables.

Odd line wrapping :(

> Signed-off-by: Jack Ping CHNG 
> Signed-off-by: Amireddy Mallikarjuna reddy 
> 
> ---
> Changes on v2:
> - Renamed intel-dpa to intel-gwdpa
> - Added intel-gwdpa.txt(Intel Gateway Datapath Architecture)
> - Added TODO (upstream plan)

I don't see a real plan here.

>  drivers/staging/intel-gwdpa/TODO   |  52 ++

Good, a TODO file!  Let's look at it:

> --- /dev/null
> +++ b/drivers/staging/intel-gwdpa/TODO
> @@ -0,0 +1,52 @@
> +Intel gateway datapath architecture framework (gwdpa)
> +=
> +
> +Drivers for gwdpa
> +-
> +1. drivers/staging/intel-gwdpa/gswip
> +patch: switch driver (GSWIP)
> +
> +2. drivers/staging/intel-gwdpa/cqm
> +patch: queue manager (CQM)
> +
> +3. drivers/staging/intel-gwdpa/pp
> +patch: packet processor (pp)
> +
> +4. drivers/staging/intel-gwdpa/dpm
> +patch: datapath manager (DPM)
> +dependencies: GSWIP, CQM, PP
> +
> +5. driver/net/ethernet/intel
> +patch: ethernet driver
> +dependencies: DPM
> +
> +6. drivers/staging/intel-gwdpa/dcdp
> +patch: direct connect datapath (DCDP)
> +dependencies: DPM
> +
> +7.1 drivers/net/wireless
> +7.2 drivers/net/wan
> +patch: wireless driver and DSL driver
> +dependencies: DCDP

I don't understand any of the above at all.  What does it mean?  Why is
it here?

If I can't understand it, how can someone new to the kernel know what
this is for?

> +Upstream plan
> +--
> +
> +  GSWIP  CQM  PP  DPM DCDP
> +| ||   ||
> +| ||   ||
> +V VV   VV
> +-( drivers/staging/intel-gwdpa/* 
> )
> +|  (move to soc folder)
> +V
> +-( drivers/soc/intel/gwdpa-*/* )
> +
> +Eth driver  Wireless/
> +|   WAN driver
> +| |
> +V V
> + ( drivers/net/ethernet/intel )
> + ( drivers/net/wireless )
> + ( drivers/net/wan)
> +
> +* Each driver will have a TODO list.

Again, what kind of plan is this?  It's just a "these files need to be
moved to this location" plan?

Why not do that today?

What is keeping this code from being accepted in the "correct" place
today?  And why do you want it in staging?  You know it takes even more
work to do things here, right?  Are you ready to sign up for that work
(hint, you didn't add your names to the MAINTAINER file, so I worry
about that...)

> diff --git a/drivers/staging/intel-gwdpa/gswip/TODO 
> b/drivers/staging/intel-gwdpa/gswip/TODO
> new file mode 100644
> index ..fa46170c8260
> --- /dev/null
> +++ b/drivers/staging/intel-gwdpa/gswip/TODO
> @@ -0,0 +1,4 @@
> +- Add debugfs for core and mac.

Why is this a requirement for upstream support?  No code functionality
should ever depend on debugfs for working properly, it's just there for
debugging at random times.

> +- Expand APIs for PCE, BM and PMAC tables to support
> +  QoS, OMCI.

What does this mean?

> +- Add ops for core.

What does this mean?

Please provide much better descriptions here of exactly what needs to be
done, that explains why this code needs to go in this part of the kernel
now instead of the "real" part.

As it is, I can not take this patch now.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Greg KH
On Wed, Dec 11, 2019 at 04:57:28PM +0800, Jack Ping CHNG wrote:
> - Added TODO (upstream plan)

Wait, your TODO file references things not even in this patch:

> ---
>  drivers/staging/Kconfig|   2 +
>  drivers/staging/Makefile   |   1 +
>  drivers/staging/intel-gwdpa/Kconfig|  22 +
>  drivers/staging/intel-gwdpa/Makefile   |   5 +
>  drivers/staging/intel-gwdpa/TODO   |  52 ++
>  drivers/staging/intel-gwdpa/gswip/Makefile |  10 +
>  drivers/staging/intel-gwdpa/gswip/TODO |   4 +
>  drivers/staging/intel-gwdpa/gswip/gswip.h  | 399 +
>  drivers/staging/intel-gwdpa/gswip/gswip_core.c | 755 
> +
>  drivers/staging/intel-gwdpa/gswip/gswip_core.h | 106 
>  drivers/staging/intel-gwdpa/gswip/gswip_dev.c  | 184 ++
>  drivers/staging/intel-gwdpa/gswip/gswip_dev.h  |  18 +
>  drivers/staging/intel-gwdpa/gswip/gswip_mac.c  | 225 
>  drivers/staging/intel-gwdpa/gswip/gswip_port.c | 296 ++
>  drivers/staging/intel-gwdpa/gswip/gswip_reg.h  | 487 
>  drivers/staging/intel-gwdpa/gswip/gswip_tbl.c  | 345 +++
>  drivers/staging/intel-gwdpa/gswip/gswip_tbl.h  | 195 +++
>  drivers/staging/intel-gwdpa/gswip/lmac.c   |  46 ++
>  drivers/staging/intel-gwdpa/gswip/mac_cfg.c| 491 
>  drivers/staging/intel-gwdpa/gswip/mac_common.h | 237 
>  drivers/staging/intel-gwdpa/gswip/mac_dev.c| 265 +
>  drivers/staging/intel-gwdpa/gswip/xgmac.c  | 636 +
>  drivers/staging/intel-gwdpa/gswip/xgmac.h  | 239 
>  drivers/staging/intel-gwdpa/intel-gwdpa.txt| 264 +
>  24 files changed, 5284 insertions(+)



> --- /dev/null
> +++ b/drivers/staging/intel-gwdpa/TODO
> @@ -0,0 +1,52 @@
> +Intel gateway datapath architecture framework (gwdpa)
> +=
> +
> +Drivers for gwdpa
> +-
> +1. drivers/staging/intel-gwdpa/gswip
> +patch: switch driver (GSWIP)
> +
> +2. drivers/staging/intel-gwdpa/cqm
> +patch: queue manager (CQM)

Where is this directory?

> +3. drivers/staging/intel-gwdpa/pp
> +patch: packet processor (pp)

And this one?

> +4. drivers/staging/intel-gwdpa/dpm
> +patch: datapath manager (DPM)
> +dependencies: GSWIP, CQM, PP

And this one?

> +5. driver/net/ethernet/intel
> +patch: ethernet driver
> +dependencies: DPM

Why is this listed?

> +6. drivers/staging/intel-gwdpa/dcdp
> +patch: direct connect datapath (DCDP)
> +dependencies: DPM

Where is this one?

> +7.1 drivers/net/wireless
> +7.2 drivers/net/wan
> +patch: wireless driver and DSL driver
> +dependencies: DCDP

What does this even mean?

Have you worked with the Intel Linux networking developers to try to get
this all working properly?

totally confused,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Dan Carpenter
This should just be sent to netdev.  I spotted a couple bugs.

1) enable/disable we flipped xgmac_set_xgmii_2500_speed()
2) retries wasn't reset in a couple places.

I had a few tiny style nits as well but there is no reason to send it to
staging.

regards,
dan carpenter

On Wed, Dec 11, 2019 at 04:57:28PM +0800, Jack Ping CHNG wrote:
> diff --git a/drivers/staging/intel-gwdpa/gswip/TODO 
> b/drivers/staging/intel-gwdpa/gswip/TODO
> new file mode 100644
> index ..fa46170c8260
> --- /dev/null
> +++ b/drivers/staging/intel-gwdpa/gswip/TODO
> @@ -0,0 +1,4 @@
> +- Add debugfs for core and mac.
> +- Expand APIs for PCE, BM and PMAC tables to support
> +  QoS, OMCI.
> +- Add ops for core.

None of this seems like staging material.  We aren't supposed to add
new features while code is in staging, it's just for cleaning up
existing code ASAP so it can be merged.  Adding new features would only
delay the merging.

> diff --git a/drivers/staging/intel-gwdpa/gswip/gswip.h 
> b/drivers/staging/intel-gwdpa/gswip/gswip.h
> new file mode 100644
> index ..4ba967430f4e
> --- /dev/null
> +++ b/drivers/staging/intel-gwdpa/gswip/gswip.h
> @@ -0,0 +1,399 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/* Copyright (c) 2016-2019 Intel Corporation. */
> +#ifndef _DATAPATH_GSWIP_H_
> +#define _DATAPATH_GSWIP_H_
> +
> +#include 
> +#include 
> +
> +#define BR_PORT_MAP_NUM  16
> +#define PMAC_BSL_THRES_NUM   3
> +#define PMAC_HEADER_NUM  8
> +
> +enum gswip_cpu_parser_hdr_cfg {
> + GSWIP_CPU_PARSER_NIL,
> + GSWIP_CPU_PARSER_FLAGS,
> + GSWIP_CPU_PARSER_OFFSETS_FLAGS,
> + GSWIP_CPU_PARSER_RESERVED,
> +};
> +
> +struct gswip_cpu_port_cfg {
> + u8 lpid;
> + bool is_cpu_port;
> + bool spec_tag_ig;
> + bool spec_tag_eg;
> + bool fcs_chk;
> + bool fcs_generate;
> + enum gswip_cpu_parser_hdr_cfg no_mpe_parser_cfg;
> + enum gswip_cpu_parser_hdr_cfg mpe1_parser_cfg;
> + enum gswip_cpu_parser_hdr_cfg mpe2_parser_cfg;
> + enum gswip_cpu_parser_hdr_cfg mpe3_parser_cfg;
> + bool ts_rm_ptp_pkt;
> + bool ts_rm_non_ptp_pkt;
> +};
> +
> +enum gswip_pmac_short_frm_chk {
> + GSWIP_PMAC_SHORT_LEN_DIS,
> + GSWIP_PMAC_SHORT_LEN_ENA_UNTAG,
> + GSWIP_PMAC_SHORT_LEN_ENA_TAG,
> + GSWIP_PMAC_SHORT_LEN_RESERVED,
> +};
> +
> +enum gswip_pmac_proc_flags_eg_cfg {
> + GSWIP_PMAC_PROC_FLAGS_NONE,
> + GSWIP_PMAC_PROC_FLAGS_TC,
> + GSWIP_PMAC_PROC_FLAGS_FLAG,
> + GSWIP_PMAC_PROC_FLAGS_MIX,
> +};
> +
> +struct gswip_pmac_glb_cfg {
> + u8 pmac_id;
> + bool apad_en;
> + bool pad_en;
> + bool vpad_en;
> + bool svpad_en;
> + bool rx_fcs_dis;
> + bool tx_fcs_dis;
> + bool ip_trans_chk_reg_dis;
> + bool ip_trans_chk_ver_dis;
> + bool jumbo_en;
> + u16 max_jumbo_len;
> + u16 jumbo_thresh_len;
> + bool long_frm_chk_dis;
> + enum gswip_pmac_short_frm_chk short_frm_chk_type;
> + bool proc_flags_eg_cfg_en;
> + enum gswip_pmac_proc_flags_eg_cfg proc_flags_eg_cfg;
> + u16 bsl_thresh[PMAC_BSL_THRES_NUM];
> +};
> +
> +struct gswip_pmac_bp_map {
> + u8 pmac_id;
> + u8 tx_dma_chan_id;
> + u32 tx_q_mask;
> + u32 rx_port_mask;
> +};
> +
> +enum gswip_pmac_ig_cfg_src {
> + GSWIP_PMAC_IG_CFG_SRC_DMA_DESC,
> + GSWIP_PMAC_IG_CFG_SRC_DEF_PMAC,
> + GSWIP_PMAC_IG_CFG_SRC_PMAC,
> +};
> +
> +struct gswip_pmac_ig_cfg {
> + u8 pmac_id;
> + u8 tx_dma_chan_id;
> + bool err_pkt_disc;
> + bool class_def;
> + bool class_en;
> + enum gswip_pmac_ig_cfg_src sub_id;
> + bool src_port_id_def;
> + bool pmac_present;
> + u8 def_pmac_hdr[PMAC_HEADER_NUM];
> +};
> +
> +struct gswip_pmac_eg_cfg {
> + u8 pmac_id;
> + u8 dst_port_id;
> + u8 tc;
> + bool mpe1;
> + bool mpe2;
> + bool decrypt;
> + bool encrypt;
> + u8 flow_id_msb;
> + bool process_sel;
> + u8 rx_dma_chan_id;
> + bool rm_l2_hdr;
> + u8 num_byte_rm;
> + bool fcs_en;
> + bool pmac_en;
> + bool redir_en;
> + bool bsl_seg_disable;
> + u8 bsl_tc;
> + bool resv_dw1_en;
> + u8 resv_dw1;
> + bool resv_1dw0_en;
> + u8 resv_1dw0;
> + bool resv_2dw0_en;
> + u8 resv_2dw0;
> + bool tc_en;
> +};
> +
> +struct gswip_lpid2gpid {
> + u16 lpid;
> + u16 first_gpid;
> + u16 num_gpid;
> + u8 valid_bits;
> +};
> +
> +struct gswip_gpid2lpid {
> + u16 gpid;
> + u16 lpid;
> + u8 subif_grp_field;
> + bool subif_grp_field_ovr;
> +};
> +
> +enum gswip_ctp_port_config_mask {
> + GSWIP_CTP_PORT_CONFIG_MASK_BRIDGE_PORT_ID   = BIT(0),
> + GSWIP_CTP_PORT_CONFIG_MASK_FORCE_TRAFFIC_CLASS  = BIT(1),
> + GSWIP_CTP_PORT_CONFIG_MASK_INGRESS_VLAN = BIT(2),
> + GSWIP_CTP_PORT_CONFIG_MASK_INGRESS_VLAN_IGMP= BIT(3),
> + GSWIP_CTP_PORT_CONFIG_MASK_EGRESS_VLAN  = BIT(4),
> + GSWIP_CTP_PORT_CONFIG_MASK_EGRESS_VLAN_IGMP = BIT(5),
> + GSWIP_CTP_P

Re: [PATCH] media: imx7-mipi-csis: Add the missed v4l2_async_notifier_cleanup in remove

2019-12-11 Thread Rui Miguel Silva
Hi Chuhong,
Thanks for the patch.

On Mon, Dec 09, 2019 at 04:58:28PM +0800, Chuhong Yuan wrote:
> All drivers in imx call v4l2_async_notifier_cleanup() after unregistering
> the notifier except this driver.
> This should be a miss and we need to add the call to fix it.
> 
> Signed-off-by: Chuhong Yuan 

Reviewed-by: Rui Miguel Silva 

--
Cheers,
 Rui
> ---
>  drivers/staging/media/imx/imx7-mipi-csis.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c 
> b/drivers/staging/media/imx/imx7-mipi-csis.c
> index 99166afca071..2bfa85bb84e7 100644
> --- a/drivers/staging/media/imx/imx7-mipi-csis.c
> +++ b/drivers/staging/media/imx/imx7-mipi-csis.c
> @@ -1105,6 +1105,7 @@ static int mipi_csis_remove(struct platform_device 
> *pdev)
>   mipi_csis_debugfs_exit(state);
>   v4l2_async_unregister_subdev(&state->mipi_sd);
>   v4l2_async_notifier_unregister(&state->subdev_notifier);
> + v4l2_async_notifier_cleanup(&state->subdev_notifier);
>  
>   pm_runtime_disable(&pdev->dev);
>   mipi_csis_pm_suspend(&pdev->dev, true);
> -- 
> 2.24.0
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: FW: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Greg KH
On Wed, Dec 11, 2019 at 06:37:42PM +0800, Chng, Jack Ping wrote:
> Hi Greg,
> 
> > -Original Message-
> > From: Greg KH 
> > Sent: Wednesday, December 11, 2019 5:28 PM
> > To: Chng, Jack Ping 
> > Cc: de...@driverdev.osuosl.org; Kim, Cheol Yong ; 
> > Shevchenko, Andriy ; net...@vger.kernel.org; 
> > linux-ker...@vger.kernel.org; Amireddy Mallikarjuna reddy 
> > ; da...@davemloft.net
> > Subject: Re: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit 
> > Ethernet Switch (GSWIP) device driver
> > 
> > On Wed, Dec 11, 2019 at 04:57:28PM +0800, Jack Ping CHNG wrote:
> > > This driver enables the Intel's LGM SoC GSWIP block.
> > > GSWIP is a core module tailored for L2/L3/L4+ data plane and QoS 
> > > functions.
> > > It allows CPUs and other accelerators connected to the SoC datapath to
> > > enqueue and dequeue packets through DMAs.
> > > Most configuration values are stored in tables such as Parsing and
> > > Classification Engine tables, Buffer Manager tables and Pseudo MAC
> > > tables.
> > Odd line wrapping :(
> > 
> > > Signed-off-by: Jack Ping CHNG 
> > > Signed-off-by: Amireddy Mallikarjuna reddy
> > > 
> > > ---
> > > Changes on v2:
> > > - Renamed intel-dpa to intel-gwdpa
> > > - Added intel-gwdpa.txt(Intel Gateway Datapath Architecture)
> > > - Added TODO (upstream plan)
> > 
> > > +Upstream plan
> > > +--
> > > +
> > > +  GSWIP  CQM  PP  DPM DCDP
> > > +| ||   ||
> > > +| ||   ||
> > > +V VV   VV
> > > +-( 
> > > drivers/staging/intel-gwdpa/* )
> > > +|  (move to soc folder)
> > > +V
> > > +-(
> > > + drivers/soc/intel/gwdpa-*/* )
> > > +
> > > +Eth driver  Wireless/
> > > +|   WAN driver
> > > +| |
> > > +V V
> > > + ( 
> > > drivers/net/ethernet/intel )
> > > + ( drivers/net/wireless )
> > > + ( drivers/net/wan)
> > > +
> > > +* Each driver will have a TODO list.
> > Again, what kind of plan is this?  It's just a "these files need to be 
> > moved to this location" plan?
> > 
> > Why not do that today?
> > 
> > What is keeping this code from being accepted in the "correct" place today? 
> >  And why do you want it in staging?  You know it takes even more work to do 
> > things here, right?  Are you ready to sign up for that work (hint, you 
> > didn't add your names to the MAINTAINER file, so I worry about that...)
> 
> Thanks for the reply.
> 
> We are trying to upstream the datapath code for Intel new NoC gateway
> (please refer to intel-gwdpa.txt at the end of the patch). It consists of
> ethernet, WIFI and passive optics handling. Since the code is quite huge, we
> have broken it into parts for internal review.
> 
> As we have seen past upstream example such as fsl/dpaa, we thought that it
> is better for us to start the upstreaming of the driver into staging folder
> to get feedback from the community.
> 
> Is this the right approach? Or do we upstream all the drivers into
> drivers/soc folder when we have all the drivers ready?

Why is drivers/soc/ the place to put networking drivers?

Please please please work with the Intel Linux kernel developers who
know how to do this type of thing and do not require the kernel
community to teach you all the proper development model and methods
here.

thanks,

greg k-h
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 4/4] [RFC] staging/net: move AF_X25 into drivers/staging

2019-12-11 Thread Andrew Lunn
On Wed, Dec 11, 2019 at 08:10:34AM +0100, Krzysztof HaƂasa wrote:
> Arnd,
> 
> Arnd Bergmann  writes:
> 
> > - Most other supported HDLC hardware that we supoprt is for the ISA or
> >   PCI buses.
> 
> I would be surprised if there is anybody left with ISA sync serial
> stuff, but the PCI hardware still has some users - these machines don't
> need to be upgraded yearly. Most people have migrated away, though.

Hi Krzysztof, Arnd

I have a use case for hdlc_cisco and hdlc_raw_eth. But it uses a lot
of out of tree code, the DAHDI driver framework for E1 cards, and an
E1 card which is not part of DAHDI.

Given how much of this is out of tree, i would understand if you
eventually decide to remove this HDLC code.

   Andrew
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH AUTOSEL 5.4 107/134] Drivers: hv: vmbus: Fix crash handler reset of Hyper-V synic

2019-12-11 Thread Sasha Levin
From: Michael Kelley 

[ Upstream commit 7a1323b5dfe44a9013a2cc56ef2973034a00bf88 ]

The crash handler calls hv_synic_cleanup() to shutdown the
Hyper-V synthetic interrupt controller.  But if the CPU
that calls hv_synic_cleanup() has a VMbus channel interrupt
assigned to it (which is likely the case in smaller VM sizes),
hv_synic_cleanup() returns an error and the synthetic
interrupt controller isn't shutdown.  While the lack of
being shutdown hasn't caused a known problem, it still
should be fixed for highest reliability.

So directly call hv_synic_disable_regs() instead of
hv_synic_cleanup(), which ensures that the synic is always
shutdown.

Signed-off-by: Michael Kelley 
Reviewed-by: Vitaly Kuznetsov 
Reviewed-by: Dexuan Cui 
Signed-off-by: Sasha Levin 
---
 drivers/hv/vmbus_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 53a60c81e220d..05ead1735c6e3 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -2308,7 +2308,7 @@ static void hv_crash_handler(struct pt_regs *regs)
vmbus_connection.conn_state = DISCONNECTED;
cpu = smp_processor_id();
hv_stimer_cleanup(cpu);
-   hv_synic_cleanup(cpu);
+   hv_synic_disable_regs(cpu);
hyperv_cleanup();
 };
 
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: FW: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Andrew Lunn
> > We are trying to upstream the datapath code for Intel new NoC gateway
> > (please refer to intel-gwdpa.txt at the end of the patch). It consists of
> > ethernet, WIFI and passive optics handling. Since the code is quite huge, we
> > have broken it into parts for internal review.
> > 
> > As we have seen past upstream example such as fsl/dpaa, we thought that it
> > is better for us to start the upstreaming of the driver into staging folder
> > to get feedback from the community.
> > 
> > Is this the right approach? Or do we upstream all the drivers into
> > drivers/soc folder when we have all the drivers ready?
> 
> Why is drivers/soc/ the place to put networking drivers?
> 
> Please please please work with the Intel Linux kernel developers who
> know how to do this type of thing and do not require the kernel
> community to teach you all the proper development model and methods
> here.

I see a lot in common with dpaa2 here. You have a non traditional
hardware architecture. That means it does not nicely fit into the tree
as other drivers do.

There also appears to of been a huge amount of code development behind
closed doors, same as dpaa2. And because of the non traditional
architecture, you have had to make all sorts of design decisions. And
because that happened behind closed door, i'm sure some are
wrong. dpaa2 has been in staging for around 2 1/2 years now. It takes
that amount of time to discuss how non traditional hardware should be
supported in Linux, an re-write the drivers as needed because of the
wrong design decisions.

I kind of expect you are going to have a similar experience. So as
well as getting the Intel Linux kernel developers involved for process
and architecture support, you might want to look at how the dpaa2
drivers have evolved, what they got wrong, what they got right. How is
your hardware similar and different. And look at what parts of dpaa2
have moved out of staging, and maybe consider that code as a good
model to follow.

  Andrew
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 02/23] staging: qlge: Fix CHECK: Alignment should match open parenthesis

2019-12-11 Thread Scott Schafer
Fix CHECK: Alignment should match open parenthesis in qlge_dbg.c,
qlge_ethtool.c, qlge_main.c, and qlge_mpi.c. Also made changes to
the following lines:

WARNING: quoted string split across lines
FILE: drivers/staging/qlge/qlge_main.c:81

WARNING: quoted string split across lines
FILE: drivers/staging/qlge/qlge_main.c:87

WARNING: quoted string split across lines
FILE: drivers/staging/qlge/qlge_main.c:3528

WARNING: quoted string split across lines
FILE: drivers/staging/qlge/qlge_main.c:3536

CHECK: spaces preferred around that '*' (ctx:VxV)
drivers/staging/qlge/qlge_main.c:4102

I made these changes due to touching these lines in the original fix

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c |   8 +-
 drivers/staging/qlge/qlge_ethtool.c |  34 +++--
 drivers/staging/qlge/qlge_main.c| 184 +---
 drivers/staging/qlge/qlge_mpi.c |  21 ++--
 4 files changed, 117 insertions(+), 130 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index c82a38c1b770..ed55ec3e6ea1 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -144,7 +144,8 @@ static int ql_get_serdes_regs(struct ql_adapter *qdev,
 
/* The XAUI needs to be read out per port */
status = ql_read_other_func_serdes_reg(qdev,
-   XG_SERDES_XAUI_HSS_PCS_START, &temp);
+  XG_SERDES_XAUI_HSS_PCS_START,
+  &temp);
if (status)
temp = XG_SERDES_ADDR_XAUI_PWR_DOWN;
 
@@ -480,7 +481,8 @@ static int ql_get_mpi_shadow_regs(struct ql_adapter *qdev, 
u32 *buf)
int status;
 
for (i = 0; i < MPI_CORE_SH_REGS_CNT; i++, buf++) {
-   status = ql_write_mpi_reg(qdev, RISC_124,
+   status = ql_write_mpi_reg(qdev,
+ RISC_124,
(SHADOW_OFFSET | i << SHADOW_REG_SHIFT));
if (status)
goto end;
@@ -1106,7 +1108,7 @@ int ql_core_dump(struct ql_adapter *qdev, struct 
ql_mpi_coredump *mpi_coredump)
+ sizeof(mpi_coredump->nic_routing_words),
"Routing Words");
status = ql_get_routing_entries(qdev,
-   &mpi_coredump->nic_routing_words[0]);
+   &mpi_coredump->nic_routing_words[0]);
if (status)
goto err;
 
diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index 792b4d754ab8..f1654671ce80 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -196,8 +196,7 @@ static int ql_update_ring_coalescing(struct ql_adapter 
*qdev)
 */
cqicb = (struct cqicb *)&qdev->rx_ring[qdev->rss_ring_count];
if (le16_to_cpu(cqicb->irq_delay) != qdev->tx_coalesce_usecs ||
-   le16_to_cpu(cqicb->pkt_delay) !=
-   qdev->tx_max_coalesced_frames) {
+   le16_to_cpu(cqicb->pkt_delay) != qdev->tx_max_coalesced_frames) {
for (i = qdev->rss_ring_count; i < qdev->rx_ring_count; i++) {
rx_ring = &qdev->rx_ring[i];
cqicb = (struct cqicb *)rx_ring;
@@ -206,7 +205,7 @@ static int ql_update_ring_coalescing(struct ql_adapter 
*qdev)
cpu_to_le16(qdev->tx_max_coalesced_frames);
cqicb->flags = FLAGS_LI;
status = ql_write_cfg(qdev, cqicb, sizeof(*cqicb),
-   CFG_LCQ, rx_ring->cq_id);
+ CFG_LCQ, rx_ring->cq_id);
if (status) {
netif_err(qdev, ifup, qdev->ndev,
  "Failed to load CQICB.\n");
@@ -218,8 +217,7 @@ static int ql_update_ring_coalescing(struct ql_adapter 
*qdev)
/* Update the inbound (RSS) handler queues if they changed. */
cqicb = (struct cqicb *)&qdev->rx_ring[0];
if (le16_to_cpu(cqicb->irq_delay) != qdev->rx_coalesce_usecs ||
-   le16_to_cpu(cqicb->pkt_delay) !=
-   qdev->rx_max_coalesced_frames) {
+   le16_to_cpu(cqicb->pkt_delay) != qdev->rx_max_coalesced_frames) {
for (i = 0; i < qdev->rss_ring_count; i++, rx_ring++) {
rx_ring = &qdev->rx_ring[i];
cqicb = (struct cqicb *)rx_ring;
@@ -228,7 +226,7 @@ static int ql_update_ring_coalescing(struct ql_adapter 
*qdev)
cpu_to_le16(qdev->rx_max_coalesced_frames);
cqicb->flags = FLAGS_LI;
status = ql_write_cfg(qdev, cqicb, sizeof(*cqicb),
-   CFG_LCQ, rx_ring->cq_id);
+ 

[PATCH v2 03/23] staging:qlge: Fix WARNING: Missing a blank line after declarations

2019-12-11 Thread Scott Schafer
Fix WARNING: Missing a blank line after declarations for the follig
files:
qlge.h
qlge_dbg.c
qlge_main.c
qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h  |  1 +
 drivers/staging/qlge/qlge_dbg.c  |  5 +
 drivers/staging/qlge/qlge_main.c | 13 +
 drivers/staging/qlge/qlge_mpi.c  |  6 ++
 4 files changed, 25 insertions(+)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 4bc5d5fce9bf..89502a8300f6 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -2227,6 +2227,7 @@ static inline void ql_write_db_reg_relaxed(u32 val, void 
__iomem *addr)
 static inline u32 ql_read_sh_reg(__le32  *addr)
 {
u32 reg;
+   
reg =  le32_to_cpu(*addr);
rmb();
return reg;
diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index ed55ec3e6ea1..cbca38c602bc 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -499,6 +499,7 @@ static int ql_get_mpi_regs(struct ql_adapter *qdev, u32 
*buf,
   u32 offset, u32 count)
 {
int i, status = 0;
+   
for (i = 0; i < count; i++, buf++) {
status = ql_read_mpi_reg(qdev, offset + i, buf);
if (status)
@@ -1352,6 +1353,7 @@ static void ql_dump_intr_states(struct ql_adapter *qdev)
 {
int i;
u32 value;
+   
for (i = 0; i < qdev->intr_count; i++) {
ql_write32(qdev, INTR_EN, qdev->intr_context[i].intr_read_mask);
value = ql_read32(qdev, INTR_EN);
@@ -1437,6 +1439,7 @@ void ql_dump_routing_entries(struct ql_adapter *qdev)
 {
int i;
u32 value;
+   
i = ql_sem_spinlock(qdev, SEM_RT_IDX_MASK);
if (i)
return;
@@ -1587,6 +1590,7 @@ void ql_dump_stat(struct ql_adapter *qdev)
 void ql_dump_qdev(struct ql_adapter *qdev)
 {
int i;
+   
DUMP_QDEV_FIELD(qdev, "%lx", flags);
DUMP_QDEV_FIELD(qdev, "%p", vlgrp);
DUMP_QDEV_FIELD(qdev, "%p", pdev);
@@ -1672,6 +1676,7 @@ void ql_dump_tx_ring(struct tx_ring *tx_ring)
 void ql_dump_ricb(struct ricb *ricb)
 {
int i;
+   
pr_err("= Dumping ricb ===\n");
pr_err("Dumping ricb stuff...\n");
 
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 0a0e50f8e26c..80c0fb4746d5 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -143,6 +143,7 @@ static int ql_sem_trylock(struct ql_adapter *qdev, u32 
sem_mask)
 int ql_sem_spinlock(struct ql_adapter *qdev, u32 sem_mask)
 {
unsigned int wait_count = 30;
+   
do {
if (!ql_sem_trylock(qdev, sem_mask))
return 0;
@@ -1210,6 +1211,7 @@ static void ql_unmap_send(struct ql_adapter *qdev,
  struct tx_ring_desc *tx_ring_desc, int mapped)
 {
int i;
+   
for (i = 0; i < mapped; i++) {
if (i == 0 || (i == 7 && mapped > 7)) {
/*
@@ -1290,6 +1292,7 @@ static int ql_map_send(struct ql_adapter *qdev,
 */
for (frag_idx = 0; frag_idx < frag_cnt; frag_idx++, map_idx++) {
skb_frag_t *frag = &skb_shinfo(skb)->frags[frag_idx];
+   
tbd++;
if (frag_idx == 6 && frag_cnt > 7) {
/* Let's tack on an sglist.
@@ -1649,6 +1652,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
(ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) {
/* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data;
+   
if (!(iph->frag_off &
htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -1818,6 +1822,7 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter 
*qdev,
 *  eventually be in trouble.
 */
int size, i = 0;
+   
sbq_desc = qlge_get_curr_buf(&rx_ring->sbq);
pci_unmap_single(qdev->pdev, sbq_desc->dma_addr,
 SMALL_BUF_MAP_SIZE, PCI_DMA_FROMDEVICE);
@@ -1936,6 +1941,7 @@ static void ql_process_mac_split_rx_intr(struct 
ql_adapter *qdev,
(ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) {
/* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data;
+   
if (!(iph->frag_off &
htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -2391,6 +2397,7 @@ static void qlge_restore_vlan(struct ql_adapter *qdev)
 static irqreturn_t qlge_msix_rx_isr

[PATCH v2 07/23] staging: qlge: Fix WARNING: quoted string split across lines

2019-12-11 Thread Scott Schafer
Fix WARNING: quoted string split across lines in the following files:

qlge_dbg.c
qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c  | 19 +--
 drivers/staging/qlge/qlge_main.c | 13 ++---
 2 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 6b740a712943..1d4de39a2a70 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -1331,16 +1331,15 @@ void ql_mpi_core_to_log(struct work_struct *work)
 "Core is dumping to log file!\n");
 
for (i = 0; i < count; i += 8) {
-   pr_err("%.08x: %.08x %.08x %.08x %.08x %.08x "
-   "%.08x %.08x %.08x\n", i,
-   tmp[i + 0],
-   tmp[i + 1],
-   tmp[i + 2],
-   tmp[i + 3],
-   tmp[i + 4],
-   tmp[i + 5],
-   tmp[i + 6],
-   tmp[i + 7]);
+   pr_err("%.08x: %.08x %.08x %.08x %.08x %.08x %.08x %.08x 
%.08x\n", i,
+  tmp[i + 0],
+  tmp[i + 1],
+  tmp[i + 2],
+  tmp[i + 3],
+  tmp[i + 4],
+  tmp[i + 5],
+  tmp[i + 6],
+  tmp[i + 7]);
msleep(5);
}
 }
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index f5cc235e9854..a103d491bbb1 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -2095,9 +2095,9 @@ static void ql_process_chip_ae_intr(struct ql_adapter 
*qdev,
break;
 
case PCI_ERR_ANON_BUF_RD:
-   netdev_err(qdev->ndev, "PCI error occurred when reading "
-   "anonymous buffers from rx_ring %d.\n",
-   ib_ae_rsp->q_id);
+   netdev_err(qdev->ndev,
+  "PCI error occurred when reading anonymous buffers 
from rx_ring %d.\n",
+  ib_ae_rsp->q_id);
ql_queue_asic_error(qdev);
break;
 
@@ -2428,8 +2428,8 @@ static irqreturn_t qlge_isr(int irq, void *dev_id)
ql_queue_asic_error(qdev);
netdev_err(qdev->ndev, "Got fatal error, STS = %x.\n", var);
var = ql_read32(qdev, ERR_STS);
-   netdev_err(qdev->ndev, "Resetting chip. "
-   "Error Status Register = 0x%x\n", var);
+   netdev_err(qdev->ndev, "Resetting chip. Error Status Register = 
0x%x\n",
+  var);
return IRQ_HANDLED;
}
 
@@ -3749,8 +3749,7 @@ static void ql_display_dev_info(struct net_device *ndev)
struct ql_adapter *qdev = netdev_priv(ndev);
 
netif_info(qdev, probe, qdev->ndev,
-  "Function #%d, Port %d, NIC Roll %d, NIC Rev = %d, "
-  "XG Roll = %d, XG Rev = %d.\n",
+  "Function #%d, Port %d, NIC Roll %d, NIC Rev = %d, XG Roll = 
%d, XG Rev = %d.\n",
   qdev->func,
   qdev->port,
   qdev->chip_rev_id & 0x000f,
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 05/23] staging: qlge: Fix CHECK: Blank lines aren't necessary before a close brace '}'

2019-12-11 Thread Scott Schafer
Fix CHECK: Blank lines aren't necessary before a close brace '}' in the
following files:

qlge_dbg.c
qlge_main.c
qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c  | 3 ---
 drivers/staging/qlge/qlge_main.c | 3 ---
 drivers/staging/qlge/qlge_mpi.c  | 2 --
 3 files changed, 8 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 71fce1f850c7..b44f80e93b27 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -553,7 +553,6 @@ static int ql_get_probe_dump(struct ql_adapter *qdev, 
unsigned int *buf)
buf = ql_get_probe(qdev, PRB_MX_ADDR_FC_CLOCK,
   PRB_MX_ADDR_VALID_FC_MOD, buf);
return 0;
-
 }
 
 /* Read out the routing index registers */
@@ -1205,7 +1204,6 @@ int ql_core_dump(struct ql_adapter *qdev, struct 
ql_mpi_coredump *mpi_coredump)
 err:
ql_sem_unlock(qdev, SEM_PROC_REG_MASK); /* does flush too */
return status;
-
 }
 
 static void ql_get_core_dump(struct ql_adapter *qdev)
@@ -1860,7 +1858,6 @@ void ql_dump_tx_desc(struct tx_buf_desc *tbd)
pr_err("tbd->flags = %s %s\n",
   tbd->len & TX_DESC_C ? "C" : ".",
   tbd->len & TX_DESC_E ? "E" : ".");
-
 }
 
 void ql_dump_ob_mac_iocb(struct ob_mac_iocb_req *ob_mac_iocb)
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 34786e2c0247..1a5b82b68b44 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -775,7 +775,6 @@ static int ql_get_8012_flash_params(struct ql_adapter *qdev)
  "Error reading flash.\n");
goto exit;
}
-
}
 
status = ql_validate_flash(qdev,
@@ -1244,7 +1243,6 @@ static void ql_unmap_send(struct ql_adapter *qdev,
 maplen), PCI_DMA_TODEVICE);
}
}
-
 }
 
 /* Map the buffers for this transmit.  This will return
@@ -1358,7 +1356,6 @@ static int ql_map_send(struct ql_adapter *qdev,
dma_unmap_addr_set(&tx_ring_desc->map[map_idx], mapaddr, map);
dma_unmap_len_set(&tx_ring_desc->map[map_idx], maplen,
  skb_frag_size(frag));
-
}
/* Save the number of segments we've mapped. */
tx_ring_desc->map_cnt = map_idx;
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 22ebd6cb8525..0f9bd9a8b523 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -122,7 +122,6 @@ int ql_own_firmware(struct ql_adapter *qdev)
return 1;
 
return 0;
-
 }
 
 static int ql_get_mb_sts(struct ql_adapter *qdev, struct mbox_params *mbcp)
@@ -363,7 +362,6 @@ static int ql_aen_lost(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
  i, mbcp->mbox_out[i]);
 
}
-
return status;
 }
 
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 08/23] staging: qlge: Fix CHECK: Unnecessary parentheses around mpi_coredump->mpi_global_header

2019-12-11 Thread Scott Schafer
Fix CHECK: Unnecessary parentheses around
mpi_coredump->mpi_global_header in file qlge_dbg.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 1d4de39a2a70..f8b2f105592f 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -737,7 +737,7 @@ int ql_core_dump(struct ql_adapter *qdev, struct 
ql_mpi_coredump *mpi_coredump)
}
 
/* Insert the global header */
-   memset(&(mpi_coredump->mpi_global_header), 0,
+   memset(&mpi_coredump->mpi_global_header, 0,
   sizeof(struct mpi_coredump_global_header));
mpi_coredump->mpi_global_header.cookie = MPI_COREDUMP_COOKIE;
mpi_coredump->mpi_global_header.header_size =
@@ -1225,7 +1225,7 @@ static void ql_gen_reg_dump(struct ql_adapter *qdev,
 {
int i, status;
 
-   memset(&(mpi_coredump->mpi_global_header), 0,
+   memset(&mpi_coredump->mpi_global_header, 0,
   sizeof(struct mpi_coredump_global_header));
mpi_coredump->mpi_global_header.cookie = MPI_COREDUMP_COOKIE;
mpi_coredump->mpi_global_header.header_size =
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 01/23] staging: qlge: Fix CHECK extra blank lines in many files

2019-12-11 Thread Scott Schafer
Fix CHECK: Please don't use multiple blank lines in qlge.h, qlge_dbg.c,
qlge_ethtool.c, qlge_main.c, and qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h | 1 -
 drivers/staging/qlge/qlge_dbg.c | 4 
 drivers/staging/qlge/qlge_ethtool.c | 1 -
 drivers/staging/qlge/qlge_main.c| 2 --
 drivers/staging/qlge/qlge_mpi.c | 5 -
 5 files changed, 13 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 57884aac308f..4bc5d5fce9bf 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -63,7 +63,6 @@
 #define UDELAY_COUNT 3
 #define UDELAY_DELAY 100
 
-
 #define TX_DESC_PER_IOCB 8
 
 #if ((MAX_SKB_FRAGS - TX_DESC_PER_IOCB) + 2) > 0
diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 1fe16602ece8..c82a38c1b770 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -142,7 +142,6 @@ static int ql_get_serdes_regs(struct ql_adapter *qdev,
u32 *direct_ptr, temp;
u32 *indirect_ptr;
 
-
/* The XAUI needs to be read out per port */
status = ql_read_other_func_serdes_reg(qdev,
XG_SERDES_XAUI_HSS_PCS_START, &temp);
@@ -297,7 +296,6 @@ static int ql_get_serdes_regs(struct ql_adapter *qdev,
ql_get_both_serdes(qdev, i, direct_ptr, indirect_ptr,
   xfi_direct_valid, xfi_indirect_valid);
 
-
/* Get XAUI_XFI_HSS_PLL register block. */
if (qdev->func & 1) {
direct_ptr =
@@ -1227,7 +1225,6 @@ static void ql_gen_reg_dump(struct ql_adapter *qdev,
 {
int i, status;
 
-
memset(&(mpi_coredump->mpi_global_header), 0,
   sizeof(struct mpi_coredump_global_header));
mpi_coredump->mpi_global_header.cookie = MPI_COREDUMP_COOKIE;
@@ -1238,7 +1235,6 @@ static void ql_gen_reg_dump(struct ql_adapter *qdev,
strncpy(mpi_coredump->mpi_global_header.id_string, "MPI Coredump",
sizeof(mpi_coredump->mpi_global_header.id_string));
 
-
/* segment 16 */
ql_build_coredump_seg_header(&mpi_coredump->misc_nic_seg_hdr,
 MISC_NIC_INFO_SEG_NUM,
diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index ea7bc6f2dde2..792b4d754ab8 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -32,7 +32,6 @@
 #include 
 #include 
 
-
 #include "qlge.h"
 
 struct ql_stats {
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 29861f01ca26..b2f826822a51 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -207,7 +207,6 @@ static int ql_wait_cfg(struct ql_adapter *qdev, u32 bit)
return -ETIMEDOUT;
 }
 
-
 /* Used to issue init control blocks to hw. Maps control block,
  * sets address, triggers download, waits for completion.
  */
@@ -2641,7 +2640,6 @@ static netdev_tx_t qlge_send(struct sk_buff *skb, struct 
net_device *ndev)
return NETDEV_TX_OK;
 }
 
-
 static void ql_free_shadow_space(struct ql_adapter *qdev)
 {
if (qdev->rx_ring_shadow_reg_area) {
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 9e4226ab..843b32240a73 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -544,7 +544,6 @@ static int ql_mailbox_command(struct ql_adapter *qdev, 
struct mbox_params *mbcp)
if (status)
goto end;
 
-
/* If we're generating a system error, then there's nothing
 * to wait for.
 */
@@ -730,7 +729,6 @@ int ql_mb_set_port_cfg(struct ql_adapter *qdev)
mbcp->mbox_in[1] = qdev->link_config;
mbcp->mbox_in[2] = qdev->max_frame_size;
 
-
status = ql_mailbox_command(qdev, mbcp);
if (status)
return status;
@@ -768,7 +766,6 @@ static int ql_mb_dump_ram(struct ql_adapter *qdev, u64 
req_dma, u32 addr,
mbcp->mbox_in[7] = LSW(MSD(req_dma));
mbcp->mbox_in[8] = MSW(addr);
 
-
status = ql_mailbox_command(qdev, mbcp);
if (status)
return status;
@@ -850,7 +847,6 @@ int ql_mb_wol_mode(struct ql_adapter *qdev, u32 wol)
mbcp->mbox_in[0] = MB_CMD_SET_WOL_MODE;
mbcp->mbox_in[1] = wol;
 
-
status = ql_mailbox_command(qdev, mbcp);
if (status)
return status;
@@ -965,7 +961,6 @@ int ql_mb_set_led_cfg(struct ql_adapter *qdev, u32 
led_config)
mbcp->mbox_in[0] = MB_CMD_SET_LED_CFG;
mbcp->mbox_in[1] = led_config;
 
-
status = ql_mailbox_command(qdev, mbcp);
if (status)
return status;
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 00/23] V2: Break up from one patch to multiple

2019-12-11 Thread Scott Schafer
I broke up the changes from one patch to many so each patch has more
defined changes. I also added a few other patches for formatting issues
I missed in the original patch. 

Scott Schafer (23):
  staging: qlge: Fix CHECK extra blank lines in many files
  staging: qlge: Fix CHECK: Alignment should match open parenthesis
  staging:qlge: Fix WARNING: Missing a blank line after declarations
  staging: qlge: Fix WARNING: Missing a blank line after declarations
  staging: qlge: Fix CHECK: Blank lines aren't necessary before a close
brace '}'
  staging: qlge: Fix CHECK: Blank lines aren't necessary after an open
brace '{'
  staging: qlge: Fix WARNING: quoted string split across lines
  staging: qlge: Fix CHECK: Unnecessary parentheses around
mpi_coredump->mpi_global_header
  staging: qlge: Fix CHECK: No space is necessary after a cast
  staging: qlge: Fix CHECK: blank line after function/struct/union/enum
declarations
  staging: qlge: Fix CHECK: braces {} should be used on all arms of this
statement
  staging: qlge: Fix WARNING: please, no space before tabs in qlge.h
  staging: qlge: Fix CHECK: spaces preferred around that (ctx:VxV)
  staging: qlge: Fix WARNING: Unnecessary space before function pointer
arguments
  staging: qlge: Fix WARNING: please, no spaces at the start of a line
  staging: qlge: Fix WARNING: Block comments use a trailing */ on a
separate line
  staging: qlge: Fix WARNING: else is not generally useful after a break
or return
  staging: qlge: Fix CHECK: Prefer using the BIT macro
  staging: qlge: Fix WARNING: msleep < 20ms can sleep for up to 20ms
  staging: qlge: Fix CHECK: usleep_range is preferred over udelay
  staging: qlge: Fix WARNING: suspect code indent for conditional
statements
  staging: qlge: Fix CHECK: Unbalanced braces around else statement
  staging: qlge: Fix WARNING: Avoid multiple line dereference

 drivers/staging/qlge/qlge.h |  43 ++--
 drivers/staging/qlge/qlge_dbg.c |  97 
 drivers/staging/qlge/qlge_ethtool.c |  60 ++---
 drivers/staging/qlge/qlge_main.c| 336 +---
 drivers/staging/qlge/qlge_mpi.c |  71 +++---
 5 files changed, 293 insertions(+), 314 deletions(-)

-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 10/23] staging: qlge: Fix CHECK: blank line after function/struct/union/enum declarations

2019-12-11 Thread Scott Schafer
Fix CHECK: Please use a blank line after function/struct/union/enum
declarations in qlge_ethtool.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_ethtool.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index f1654671ce80..794962ae642c 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -178,6 +178,7 @@ static const struct ql_stats ql_gstrings_stats[] = {
 static const char ql_gstrings_test[][ETH_GSTRING_LEN] = {
"Loopback test  (offline)"
 };
+
 #define QLGE_TEST_LEN (sizeof(ql_gstrings_test) / ETH_GSTRING_LEN)
 #define QLGE_STATS_LEN ARRAY_SIZE(ql_gstrings_stats)
 #define QLGE_RCV_MAC_ERR_STATS 7
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 06/23] staging: qlge: Fix CHECK: Blank lines aren't necessary after an open brace '{'

2019-12-11 Thread Scott Schafer
Fix CHECK: Blank lines aren't necessary after an open brace '{' in the
following files:

qlge.h
qlge_dbg.c
qlge_main.c
qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h  | 3 ---
 drivers/staging/qlge/qlge_dbg.c  | 1 -
 drivers/staging/qlge/qlge_main.c | 6 --
 drivers/staging/qlge/qlge_mpi.c  | 2 --
 4 files changed, 12 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index d45c53a053c2..ede767a70b10 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -119,7 +119,6 @@ enum {
  * Processor Address Register (PROC_ADDR) bit definitions.
  */
 enum {
-
/* Misc. stuff */
MAILBOX_COUNT = 16,
MAILBOX_TIMEOUT = 5,
@@ -1762,7 +1761,6 @@ struct ql_nic_misc {
 };
 
 struct ql_reg_dump {
-
/* segment 0 */
struct mpi_coredump_global_header mpi_global_header;
 
@@ -2059,7 +2057,6 @@ enum {
 };
 
 struct nic_operations {
-
int (*get_flash) (struct ql_adapter *);
int (*port_initialize) (struct ql_adapter *);
 };
diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index b44f80e93b27..6b740a712943 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -610,7 +610,6 @@ static void ql_get_mac_protocol_registers(struct ql_adapter 
*qdev, u32 *buf)
 
for (type = 0; type < MAC_ADDR_TYPE_COUNT; type++) {
switch (type) {
-
case 0: /* CAM */
initial_val |= MAC_ADDR_ADR;
max_index = MAC_ADDR_MAX_CAM_ENTRIES;
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 1a5b82b68b44..f5cc235e9854 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -2119,7 +2119,6 @@ static int ql_clean_outbound_rx_ring(struct rx_ring 
*rx_ring)
struct tx_ring *tx_ring;
/* While there are entries in the completion queue. */
while (prod != rx_ring->cnsmr_idx) {
-
netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev,
 "cq_id = %d, prod = %d, cnsmr = %d\n",
 rx_ring->cq_id, prod, rx_ring->cnsmr_idx);
@@ -2127,7 +2126,6 @@ static int ql_clean_outbound_rx_ring(struct rx_ring 
*rx_ring)
net_rsp = (struct ob_mac_iocb_rsp *)rx_ring->curr_entry;
rmb();
switch (net_rsp->opcode) {
-
case OPCODE_OB_MAC_TSO_IOCB:
case OPCODE_OB_MAC_IOCB:
ql_process_mac_tx_intr(qdev, net_rsp);
@@ -2166,7 +2164,6 @@ static int ql_clean_inbound_rx_ring(struct rx_ring 
*rx_ring, int budget)
 
/* While there are entries in the completion queue. */
while (prod != rx_ring->cnsmr_idx) {
-
netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev,
 "cq_id = %d, prod = %d, cnsmr = %d\n",
 rx_ring->cq_id, prod, rx_ring->cnsmr_idx);
@@ -2479,7 +2476,6 @@ static irqreturn_t qlge_isr(int irq, void *dev_id)
 
 static int ql_tso(struct sk_buff *skb, struct ob_mac_tso_iocb_req 
*mac_iocb_ptr)
 {
-
if (skb_is_gso(skb)) {
int err;
__be16 l3_proto = vlan_get_protocol(skb);
@@ -2886,7 +2882,6 @@ static void ql_free_rx_resources(struct ql_adapter *qdev,
 static int ql_alloc_rx_resources(struct ql_adapter *qdev,
 struct rx_ring *rx_ring)
 {
-
/*
 * Allocate the completion queue for this rx_ring.
 */
@@ -3815,7 +3810,6 @@ static int ql_wol(struct ql_adapter *qdev)
 
 static void ql_cancel_all_work_sync(struct ql_adapter *qdev)
 {
-
/* Don't kill the reset worker thread if we
 * are in the process of recovery.
 */
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 0f9bd9a8b523..4f8365cf2092 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -360,7 +360,6 @@ static int ql_aen_lost(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
for (i = 0; i < mbcp->out_count; i++)
netif_err(qdev, drv, qdev->ndev, "mbox_out[%d] = 
0x%.08x.\n",
  i, mbcp->mbox_out[i]);
-
}
return status;
 }
@@ -407,7 +406,6 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
}
 
switch (mbcp->mbox_out[0]) {
-
/* This case is only active when we arrive here
 * as a result of issuing a mailbox command to
 * the firmware.
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 09/23] staging: qlge: Fix CHECK: No space is necessary after a cast

2019-12-11 Thread Scott Schafer
Fix CHECK: No space is necessary after a cast in qlge_dbg.c and
qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c  | 28 +++
 drivers/staging/qlge/qlge_main.c | 38 
 2 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index f8b2f105592f..3324f0650286 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -1640,9 +1640,9 @@ void ql_dump_wqicb(struct wqicb *wqicb)
   le16_to_cpu(wqicb->cq_id_rss));
pr_err("wqicb->rid = 0x%x\n", le16_to_cpu(wqicb->rid));
pr_err("wqicb->wq_addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(wqicb->addr));
+  (unsigned long long)le64_to_cpu(wqicb->addr));
pr_err("wqicb->wq_cnsmr_idx_addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(wqicb->cnsmr_idx_addr));
+  (unsigned long long)le64_to_cpu(wqicb->cnsmr_idx_addr));
 }
 
 void ql_dump_tx_ring(struct tx_ring *tx_ring)
@@ -1653,7 +1653,7 @@ void ql_dump_tx_ring(struct tx_ring *tx_ring)
   tx_ring->wq_id);
pr_err("tx_ring->base = %p\n", tx_ring->wq_base);
pr_err("tx_ring->base_dma = 0x%llx\n",
-  (unsigned long long) tx_ring->wq_base_dma);
+  (unsigned long long)tx_ring->wq_base_dma);
pr_err("tx_ring->cnsmr_idx_sh_reg, addr = 0x%p, value = %d\n",
   tx_ring->cnsmr_idx_sh_reg,
   tx_ring->cnsmr_idx_sh_reg
@@ -1707,21 +1707,21 @@ void ql_dump_cqicb(struct cqicb *cqicb)
pr_err("cqicb->flags = %x\n", cqicb->flags);
pr_err("cqicb->len = %d\n", le16_to_cpu(cqicb->len));
pr_err("cqicb->addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(cqicb->addr));
+  (unsigned long long)le64_to_cpu(cqicb->addr));
pr_err("cqicb->prod_idx_addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(cqicb->prod_idx_addr));
+  (unsigned long long)le64_to_cpu(cqicb->prod_idx_addr));
pr_err("cqicb->pkt_delay = 0x%.04x\n",
   le16_to_cpu(cqicb->pkt_delay));
pr_err("cqicb->irq_delay = 0x%.04x\n",
   le16_to_cpu(cqicb->irq_delay));
pr_err("cqicb->lbq_addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(cqicb->lbq_addr));
+  (unsigned long long)le64_to_cpu(cqicb->lbq_addr));
pr_err("cqicb->lbq_buf_size = 0x%.04x\n",
   le16_to_cpu(cqicb->lbq_buf_size));
pr_err("cqicb->lbq_len = 0x%.04x\n",
   le16_to_cpu(cqicb->lbq_len));
pr_err("cqicb->sbq_addr = 0x%llx\n",
-  (unsigned long long) le64_to_cpu(cqicb->sbq_addr));
+  (unsigned long long)le64_to_cpu(cqicb->sbq_addr));
pr_err("cqicb->sbq_buf_size = 0x%.04x\n",
   le16_to_cpu(cqicb->sbq_buf_size));
pr_err("cqicb->sbq_len = 0x%.04x\n",
@@ -1749,7 +1749,7 @@ void ql_dump_rx_ring(struct rx_ring *rx_ring)
pr_err("rx_ring->cqicb = %p\n", &rx_ring->cqicb);
pr_err("rx_ring->cq_base = %p\n", rx_ring->cq_base);
pr_err("rx_ring->cq_base_dma = %llx\n",
-  (unsigned long long) rx_ring->cq_base_dma);
+  (unsigned long long)rx_ring->cq_base_dma);
pr_err("rx_ring->cq_size = %d\n", rx_ring->cq_size);
pr_err("rx_ring->cq_len = %d\n", rx_ring->cq_len);
pr_err("rx_ring->prod_idx_sh_reg, addr = 0x%p, value = %d\n",
@@ -1757,7 +1757,7 @@ void ql_dump_rx_ring(struct rx_ring *rx_ring)
   rx_ring->prod_idx_sh_reg
? ql_read_sh_reg(rx_ring->prod_idx_sh_reg) : 0);
pr_err("rx_ring->prod_idx_sh_reg_dma = %llx\n",
-  (unsigned long long) rx_ring->prod_idx_sh_reg_dma);
+  (unsigned long long)rx_ring->prod_idx_sh_reg_dma);
pr_err("rx_ring->cnsmr_idx_db_reg = %p\n",
   rx_ring->cnsmr_idx_db_reg);
pr_err("rx_ring->cnsmr_idx = %d\n", rx_ring->cnsmr_idx);
@@ -1834,7 +1834,7 @@ void ql_dump_hw_cb(struct ql_adapter *qdev, int size, u32 
bit, u16 q_id)
 void ql_dump_tx_desc(struct tx_buf_desc *tbd)
 {
pr_err("tbd->addr  = 0x%llx\n",
-  le64_to_cpu((u64) tbd->addr));
+  le64_to_cpu((u64)tbd->addr));
pr_err("tbd->len   = %d\n",
   le32_to_cpu(tbd->len & TX_DESC_LEN_MASK));
pr_err("tbd->flags = %s %s\n",
@@ -1842,7 +1842,7 @@ void ql_dump_tx_desc(struct tx_buf_desc *tbd)
   tbd->len & TX_DESC_E ? "E" : ".");
tbd++;
pr_err("tbd->addr  = 0x%llx\n",
-  le64_to_cpu((u64) tbd->addr));
+  le64_to_cpu((u64)tbd->addr));
pr_err("tbd->len   = %d\n",
   le32_to_cpu(tbd->len & TX_DESC_LEN_MASK));
pr_err("tbd->flags = %s %s\n",
@@ -1850,7 +1850,7 @@ void ql_dump_tx_desc(struct tx_buf_desc *tbd)
   tbd->len & TX_DESC_E ? "E" : ".");
tbd++;

[PATCH v2 12/23] staging: qlge: Fix WARNING: please, no space before tabs in qlge.h

2019-12-11 Thread Scott Schafer
Fix WARNING: please, no space before tabs in qlge.h

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h | 24 
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index ede767a70b10..63642cb9e624 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -16,8 +16,8 @@
 /*
  * General definitions...
  */
-#define DRV_NAME   "qlge"
-#define DRV_STRING "QLogic 10 Gigabit PCI-E Ethernet Driver "
+#define DRV_NAME   "qlge"
+#define DRV_STRING "QLogic 10 Gigabit PCI-E Ethernet Driver "
 #define DRV_VERSION"1.00.00.35"
 
 #define WQ_ADDR_ALIGN  0x3 /* 4 byte alignment */
@@ -1076,8 +1076,8 @@ struct tx_buf_desc {
  * IOCB Definitions...
  */
 
-#define OPCODE_OB_MAC_IOCB 0x01
-#define OPCODE_OB_MAC_TSO_IOCB 0x02
+#define OPCODE_OB_MAC_IOCB 0x01
+#define OPCODE_OB_MAC_TSO_IOCB 0x02
 #define OPCODE_IB_MAC_IOCB 0x20
 #define OPCODE_IB_MPI_IOCB 0x21
 #define OPCODE_IB_AE_IOCB  0x3f
@@ -1179,8 +1179,8 @@ struct ib_mac_iocb_rsp {
 #define IB_MAC_IOCB_RSP_M_MASK 0x60/* Multicast info */
 #define IB_MAC_IOCB_RSP_M_NONE 0x00/* Not mcast frame */
 #define IB_MAC_IOCB_RSP_M_HASH 0x20/* HASH mcast frame */
-#define IB_MAC_IOCB_RSP_M_REG  0x40/* Registered mcast frame */
-#define IB_MAC_IOCB_RSP_M_PROM 0x60/* Promiscuous mcast frame */
+#define IB_MAC_IOCB_RSP_M_REG  0x40/* Registered mcast frame */
+#define IB_MAC_IOCB_RSP_M_PROM 0x60/* Promiscuous mcast frame */
 #define IB_MAC_IOCB_RSP_B  0x80/* Broadcast frame */
u8 flags2;
 #define IB_MAC_IOCB_RSP_P  0x01/* Promiscuous frame */
@@ -1200,8 +1200,8 @@ struct ib_mac_iocb_rsp {
 #define IB_MAC_IOCB_RSP_M_NONE 0x00/* No RSS match */
 #define IB_MAC_IOCB_RSP_M_IPV4 0x04/* IPv4 RSS match */
 #define IB_MAC_IOCB_RSP_M_IPV6 0x02/* IPv6 RSS match */
-#define IB_MAC_IOCB_RSP_M_TCP_V4   0x05/* TCP with IPv4 */
-#define IB_MAC_IOCB_RSP_M_TCP_V6   0x03/* TCP with IPv6 */
+#define IB_MAC_IOCB_RSP_M_TCP_V4   0x05/* TCP with IPv4 */
+#define IB_MAC_IOCB_RSP_M_TCP_V6   0x03/* TCP with IPv6 */
 #define IB_MAC_IOCB_RSP_V4 0x08/* IPV4 */
 #define IB_MAC_IOCB_RSP_V6 0x10/* IPV6 */
 #define IB_MAC_IOCB_RSP_IH 0x20/* Split after IP header */
@@ -1238,10 +1238,10 @@ struct ib_ae_iocb_rsp {
 #define SOFT_ECC_ERROR_EVENT   0x07
 #define MGMT_ERR_EVENT 0x08
 #define TEN_GIG_MAC_EVENT  0x09
-#define GPI0_H2L_EVENT 0x10
-#define GPI0_L2H_EVENT 0x20
-#define GPI1_H2L_EVENT 0x11
-#define GPI1_L2H_EVENT 0x21
+#define GPI0_H2L_EVENT 0x10
+#define GPI0_L2H_EVENT 0x20
+#define GPI1_H2L_EVENT 0x11
+#define GPI1_L2H_EVENT 0x21
 #define PCI_ERR_ANON_BUF_RD0x40
u8 q_id;
__le32 reserved[15];
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 14/23] staging: qlge: Fix WARNING: Unnecessary space before function pointer arguments

2019-12-11 Thread Scott Schafer
WARNING: Unnecessary space before function pointer arguments in qlge.h

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 9ab4c7ce7714..010d39b4b30d 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -2057,8 +2057,8 @@ enum {
 };
 
 struct nic_operations {
-   int (*get_flash) (struct ql_adapter *);
-   int (*port_initialize) (struct ql_adapter *);
+   int (*get_flash)(struct ql_adapter *);
+   int (*port_initialize)(struct ql_adapter *);
 };
 
 /*
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 13/23] staging: qlge: Fix CHECK: spaces preferred around that (ctx:VxV)

2019-12-11 Thread Scott Schafer
Fix CHECK: spaces preferred around that (ctx:VxV) in qlge.h and
qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h  |  6 +++---
 drivers/staging/qlge/qlge_main.c | 18 +-
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 63642cb9e624..9ab4c7ce7714 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -59,7 +59,7 @@
 #define MAX_CQ 128
 #define DFLT_COALESCE_WAIT 100 /* 100 usec wait for coalescing */
 #define MAX_INTER_FRAME_WAIT 10/* 10 usec max interframe-wait for 
coalescing */
-#define DFLT_INTER_FRAME_WAIT (MAX_INTER_FRAME_WAIT/2)
+#define DFLT_INTER_FRAME_WAIT (MAX_INTER_FRAME_WAIT / 2)
 #define UDELAY_COUNT 3
 #define UDELAY_DELAY 100
 
@@ -1366,7 +1366,7 @@ struct tx_ring_desc {
struct tx_ring_desc *next;
 };
 
-#define QL_TXQ_IDX(qdev, skb) (smp_processor_id()%(qdev->tx_ring_count))
+#define QL_TXQ_IDX(qdev, skb) (smp_processor_id() % (qdev->tx_ring_count))
 
 struct tx_ring {
/*
@@ -1790,7 +1790,7 @@ struct ql_reg_dump {
 
/* segment 34 */
struct mpi_coredump_segment_header ets_seg_hdr;
-   u32 ets[8+2];
+   u32 ets[8 + 2];
 };
 
 struct ql_mpi_coredump {
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 4dc4edbb2de5..38d217ae4002 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -706,7 +706,7 @@ static int ql_get_8000_flash_params(struct ql_adapter *qdev)
 
size = sizeof(struct flash_params_8000) / sizeof(u32);
for (i = 0; i < size; i++, p++) {
-   status = ql_read_flash_word(qdev, i+offset, p);
+   status = ql_read_flash_word(qdev, i + offset, p);
if (status) {
netif_err(qdev, ifup, qdev->ndev,
  "Error reading flash.\n");
@@ -769,7 +769,7 @@ static int ql_get_8012_flash_params(struct ql_adapter *qdev)
return -ETIMEDOUT;
 
for (i = 0; i < size; i++, p++) {
-   status = ql_read_flash_word(qdev, i+offset, p);
+   status = ql_read_flash_word(qdev, i + offset, p);
if (status) {
netif_err(qdev, ifup, qdev->ndev,
  "Error reading flash.\n");
@@ -1544,7 +1544,7 @@ static void ql_process_mac_rx_page(struct ql_adapter 
*qdev,
struct iphdr *iph =
(struct iphdr *)((u8 *)addr + hlen);
if (!(iph->frag_off &
-   htons(IP_MF|IP_OFFSET))) {
+   htons(IP_MF | IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG,
 qdev->ndev,
@@ -1651,7 +1651,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
struct iphdr *iph = (struct iphdr *)skb->data;
 
if (!(iph->frag_off &
-   htons(IP_MF|IP_OFFSET))) {
+   htons(IP_MF | IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG,
 qdev->ndev,
@@ -1940,7 +1940,7 @@ static void ql_process_mac_split_rx_intr(struct 
ql_adapter *qdev,
struct iphdr *iph = (struct iphdr *)skb->data;
 
if (!(iph->frag_off &
-   htons(IP_MF|IP_OFFSET))) {
+   htons(IP_MF | IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG, 
qdev->ndev,
 "TCP checksum done!\n");
@@ -4560,7 +4560,7 @@ static void ql_timer(struct timer_list *t)
return;
}
 
-   mod_timer(&qdev->timer, jiffies + (5*HZ));
+   mod_timer(&qdev->timer, jiffies + (5 * HZ));
 }
 
 static int qlge_probe(struct pci_dev *pdev,
@@ -4632,7 +4632,7 @@ static int qlge_probe(struct pci_dev *pdev,
 * the bus goes dead
 */
timer_setup(&qdev->timer, ql_timer, TIMER_DEFERRABLE);
-   mod_timer(&qdev->timer, jiffies + (5*HZ));
+   mod_timer(&qdev->timer, jiffies + (5 * HZ));
ql_link_off(qdev);
ql_display_dev_info(ndev);
atomic_set(&qdev->lb_count, 0);
@@ -4766,7 +4766,7 @@ static void qlge_io_resume(struct pci_dev *pdev)
netif_err(qdev, ifup, qdev->ndev,
  "Device was not running prior to EEH.\n");
}
-   mod_timer(&qdev->timer, jiffies + (5*HZ));
+   mod_timer(&qdev->timer, jiffies + (5 * HZ));
netif_device_attach(ndev);
 }
 

[PATCH v2 04/23] staging: qlge: Fix WARNING: Missing a blank line after declarations

2019-12-11 Thread Scott Schafer
Fix WARNING: Missing a blank line after declarations in the following
files:
qlge.h
qlge_dbg.c
qlge_main.c
qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h  |  2 +-
 drivers/staging/qlge/qlge_dbg.c  | 10 +-
 drivers/staging/qlge/qlge_main.c | 26 +-
 drivers/staging/qlge/qlge_mpi.c  | 12 ++--
 4 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 89502a8300f6..d45c53a053c2 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -2227,7 +2227,7 @@ static inline void ql_write_db_reg_relaxed(u32 val, void 
__iomem *addr)
 static inline u32 ql_read_sh_reg(__le32  *addr)
 {
u32 reg;
-   
+
reg =  le32_to_cpu(*addr);
rmb();
return reg;
diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index cbca38c602bc..71fce1f850c7 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -499,7 +499,7 @@ static int ql_get_mpi_regs(struct ql_adapter *qdev, u32 
*buf,
   u32 offset, u32 count)
 {
int i, status = 0;
-   
+
for (i = 0; i < count; i++, buf++) {
status = ql_read_mpi_reg(qdev, offset + i, buf);
if (status)
@@ -1353,7 +1353,7 @@ static void ql_dump_intr_states(struct ql_adapter *qdev)
 {
int i;
u32 value;
-   
+
for (i = 0; i < qdev->intr_count; i++) {
ql_write32(qdev, INTR_EN, qdev->intr_context[i].intr_read_mask);
value = ql_read32(qdev, INTR_EN);
@@ -1439,7 +1439,7 @@ void ql_dump_routing_entries(struct ql_adapter *qdev)
 {
int i;
u32 value;
-   
+
i = ql_sem_spinlock(qdev, SEM_RT_IDX_MASK);
if (i)
return;
@@ -1590,7 +1590,7 @@ void ql_dump_stat(struct ql_adapter *qdev)
 void ql_dump_qdev(struct ql_adapter *qdev)
 {
int i;
-   
+
DUMP_QDEV_FIELD(qdev, "%lx", flags);
DUMP_QDEV_FIELD(qdev, "%p", vlgrp);
DUMP_QDEV_FIELD(qdev, "%p", pdev);
@@ -1676,7 +1676,7 @@ void ql_dump_tx_ring(struct tx_ring *tx_ring)
 void ql_dump_ricb(struct ricb *ricb)
 {
int i;
-   
+
pr_err("= Dumping ricb ===\n");
pr_err("Dumping ricb stuff...\n");
 
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 80c0fb4746d5..34786e2c0247 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -143,7 +143,7 @@ static int ql_sem_trylock(struct ql_adapter *qdev, u32 
sem_mask)
 int ql_sem_spinlock(struct ql_adapter *qdev, u32 sem_mask)
 {
unsigned int wait_count = 30;
-   
+
do {
if (!ql_sem_trylock(qdev, sem_mask))
return 0;
@@ -1211,7 +1211,7 @@ static void ql_unmap_send(struct ql_adapter *qdev,
  struct tx_ring_desc *tx_ring_desc, int mapped)
 {
int i;
-   
+
for (i = 0; i < mapped; i++) {
if (i == 0 || (i == 7 && mapped > 7)) {
/*
@@ -1292,7 +1292,7 @@ static int ql_map_send(struct ql_adapter *qdev,
 */
for (frag_idx = 0; frag_idx < frag_cnt; frag_idx++, map_idx++) {
skb_frag_t *frag = &skb_shinfo(skb)->frags[frag_idx];
-   
+
tbd++;
if (frag_idx == 6 && frag_cnt > 7) {
/* Let's tack on an sglist.
@@ -1652,7 +1652,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
(ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) {
/* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data;
-   
+
if (!(iph->frag_off &
htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -1822,7 +1822,7 @@ static struct sk_buff *ql_build_rx_skb(struct ql_adapter 
*qdev,
 *  eventually be in trouble.
 */
int size, i = 0;
-   
+
sbq_desc = qlge_get_curr_buf(&rx_ring->sbq);
pci_unmap_single(qdev->pdev, sbq_desc->dma_addr,
 SMALL_BUF_MAP_SIZE, PCI_DMA_FROMDEVICE);
@@ -1941,7 +1941,7 @@ static void ql_process_mac_split_rx_intr(struct 
ql_adapter *qdev,
(ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) {
/* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data;
-   
+
if (!(iph->frag_off &
htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY;
@@ -2397,7 +2397,7 @@ static void qlge_restor

[PATCH v2 21/23] staging: qlge: Fix WARNING: suspect code indent for conditional statements

2019-12-11 Thread Scott Schafer
Fix indentation for conditionals in qlge_ethtool.c and qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_ethtool.c |  4 ++--
 drivers/staging/qlge/qlge_main.c| 18 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index abed932c3694..0bb70b465389 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -529,8 +529,8 @@ void ql_check_lb_frame(struct ql_adapter *qdev,
if ((*(skb->data + 3) == 0xFF) &&
(*(skb->data + frame_size / 2 + 10) == 0xBE) &&
(*(skb->data + frame_size / 2 + 12) == 0xAF)) {
-   atomic_dec(&qdev->lb_count);
-   return;
+   atomic_dec(&qdev->lb_count);
+   return;
}
 }
 
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 9427386e4a1e..102da1fe9899 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -4121,11 +4121,11 @@ static struct net_device_stats *qlge_get_stats(struct 
net_device
/* Get RX stats. */
pkts = mcast = dropped = errors = bytes = 0;
for (i = 0; i < qdev->rss_ring_count; i++, rx_ring++) {
-   pkts += rx_ring->rx_packets;
-   bytes += rx_ring->rx_bytes;
-   dropped += rx_ring->rx_dropped;
-   errors += rx_ring->rx_errors;
-   mcast += rx_ring->rx_multicast;
+   pkts += rx_ring->rx_packets;
+   bytes += rx_ring->rx_bytes;
+   dropped += rx_ring->rx_dropped;
+   errors += rx_ring->rx_errors;
+   mcast += rx_ring->rx_multicast;
}
ndev->stats.rx_packets = pkts;
ndev->stats.rx_bytes = bytes;
@@ -4136,9 +4136,9 @@ static struct net_device_stats *qlge_get_stats(struct 
net_device
/* Get TX stats. */
pkts = errors = bytes = 0;
for (i = 0; i < qdev->tx_ring_count; i++, tx_ring++) {
-   pkts += tx_ring->tx_packets;
-   bytes += tx_ring->tx_bytes;
-   errors += tx_ring->tx_errors;
+   pkts += tx_ring->tx_packets;
+   bytes += tx_ring->tx_bytes;
+   errors += tx_ring->tx_errors;
}
ndev->stats.tx_packets = pkts;
ndev->stats.tx_bytes = bytes;
@@ -4432,7 +4432,7 @@ static int ql_init_device(struct pci_dev *pdev, struct 
net_device *ndev,
} else {
err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
if (!err)
-  err = pci_set_consistent_dma_mask(pdev, 
DMA_BIT_MASK(32));
+   err = pci_set_consistent_dma_mask(pdev, 
DMA_BIT_MASK(32));
}
 
if (err) {
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 22/23] staging: qlge: Fix CHECK: Unbalanced braces around else statement

2019-12-11 Thread Scott Schafer
Fix CHECK: Unbalanced braces around else statement in file qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_mpi.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index ba8ce3506a59..c9d45c8feabe 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -244,12 +244,12 @@ static int ql_idc_cmplt_aen(struct ql_adapter *qdev)
netif_err(qdev, drv, qdev->ndev,
  "Could not read MPI, resetting RISC!\n");
ql_queue_fw_error(qdev);
-   } else
+   } else {
/* Wake up the sleeping mpi_idc_work thread that is
 * waiting for this event.
 */
complete(&qdev->ide_completion);
-
+   }
return status;
 }
 
@@ -353,8 +353,7 @@ static int ql_aen_lost(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
status = ql_get_mb_sts(qdev, mbcp);
if (status) {
netif_err(qdev, drv, qdev->ndev, "Lost AEN broken!\n");
-   }
-   else {
+   } else {
int i;
 
netif_err(qdev, drv, qdev->ndev, "Lost AEN detected.\n");
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 11/23] staging: qlge: Fix CHECK: braces {} should be used on all arms of this statement

2019-12-11 Thread Scott Schafer
Fix CHECK: braces {} should be used on all arms of this statement in
qlge_ethtool.c and qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_ethtool.c | 18 --
 drivers/staging/qlge/qlge_mpi.c |  9 ++---
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index 794962ae642c..b9e1e154d646 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -260,8 +260,9 @@ static void ql_update_stats(struct ql_adapter *qdev)
  "Error reading status register 0x%.04x.\n",
  i);
goto end;
-   } else
+   } else {
*iter = data;
+   }
iter++;
}
 
@@ -274,8 +275,9 @@ static void ql_update_stats(struct ql_adapter *qdev)
  "Error reading status register 0x%.04x.\n",
  i);
goto end;
-   } else
+   } else {
*iter = data;
+   }
iter++;
}
 
@@ -291,8 +293,9 @@ static void ql_update_stats(struct ql_adapter *qdev)
  "Error reading status register 0x%.04x.\n",
  i);
goto end;
-   } else
+   } else {
*iter = data;
+   }
iter++;
}
 
@@ -305,8 +308,9 @@ static void ql_update_stats(struct ql_adapter *qdev)
  "Error reading status register 0x%.04x.\n",
  i);
goto end;
-   } else
+   } else {
*iter = data;
+   }
iter++;
}
 
@@ -317,8 +321,9 @@ static void ql_update_stats(struct ql_adapter *qdev)
netif_err(qdev, drv, qdev->ndev,
  "Error reading status register 0x%.04x.\n", i);
goto end;
-   } else
+   } else {
*iter = data;
+   }
 end:
ql_sem_unlock(qdev, qdev->xg_sem_mask);
 quit:
@@ -489,8 +494,9 @@ static int ql_start_loopback(struct ql_adapter *qdev)
if (netif_carrier_ok(qdev->ndev)) {
set_bit(QL_LB_LINK_UP, &qdev->flags);
netif_carrier_off(qdev->ndev);
-   } else
+   } else {
clear_bit(QL_LB_LINK_UP, &qdev->flags);
+   }
qdev->link_config |= CFG_LOOPBACK_PCS;
return ql_mb_set_port_cfg(qdev);
 }
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 4f8365cf2092..4cff0907625b 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -278,8 +278,9 @@ static void ql_link_up(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
netif_err(qdev, ifup, qdev->ndev,
  "Failed to init CAM/Routing tables.\n");
return;
-   } else
+   } else {
clear_bit(QL_CAM_RT_SET, &qdev->flags);
+   }
}
 
/* Queue up a worker to check the frame
@@ -351,8 +352,9 @@ static int ql_aen_lost(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
mbcp->out_count = 6;
 
status = ql_get_mb_sts(qdev, mbcp);
-   if (status)
+   if (status) {
netif_err(qdev, drv, qdev->ndev, "Lost AEN broken!\n");
+   }
else {
int i;
 
@@ -996,8 +998,9 @@ int ql_mb_get_led_cfg(struct ql_adapter *qdev)
netif_err(qdev, drv, qdev->ndev,
  "Failed to get LED Configuration.\n");
status = -EIO;
-   } else
+   } else {
qdev->led_config = mbcp->mbox_out[1];
+   }
 
return status;
 }
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 17/23] staging: qlge: Fix WARNING: else is not generally useful after a break or return

2019-12-11 Thread Scott Schafer
Fix WARNING: else is not generally useful after a break or return in,
qlge_dbg.c, qlge_main.c, and qlge_mpi.c

Moved everything out of the else block wothout changing any logic

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c  | 23 ++-
 drivers/staging/qlge/qlge_main.c | 10 --
 drivers/staging/qlge/qlge_mpi.c  | 13 +
 3 files changed, 19 insertions(+), 27 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 3324f0650286..0f1e1b62662d 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -1409,12 +1409,11 @@ static void ql_dump_cam_entries(struct ql_adapter *qdev)
pr_err("%s: Failed read of mac index register\n",
   __func__);
return;
-   } else {
-   if (value[0])
-   pr_err("%s: CAM index %d CAM Lookup Lower = 
0x%.08x:%.08x, Output = 0x%.08x\n",
-  qdev->ndev->name, i, value[1], value[0],
-  value[2]);
}
+   if (value[0])
+   pr_err("%s: CAM index %d CAM Lookup Lower = 
0x%.08x:%.08x, Output = 0x%.08x\n",
+  qdev->ndev->name, i, value[1], value[0],
+  value[2]);
}
for (i = 0; i < 32; i++) {
if (ql_get_mac_addr_reg
@@ -1422,11 +1421,10 @@ static void ql_dump_cam_entries(struct ql_adapter *qdev)
pr_err("%s: Failed read of mac index register\n",
   __func__);
return;
-   } else {
-   if (value[0])
-   pr_err("%s: MCAST index %d CAM Lookup Lower = 
0x%.08x:%.08x\n",
-  qdev->ndev->name, i, value[1], value[0]);
}
+   if (value[0])
+   pr_err("%s: MCAST index %d CAM Lookup Lower = 
0x%.08x:%.08x\n",
+  qdev->ndev->name, i, value[1], value[0]);
}
ql_sem_unlock(qdev, SEM_MAC_ADDR_MASK);
 }
@@ -1445,11 +1443,10 @@ void ql_dump_routing_entries(struct ql_adapter *qdev)
pr_err("%s: Failed read of routing index register\n",
   __func__);
return;
-   } else {
-   if (value)
-   pr_err("%s: Routing Mask %d = 0x%.08x\n",
-  qdev->ndev->name, i, value);
}
+   if (value)
+   pr_err("%s: Routing Mask %d = 0x%.08x\n",
+  qdev->ndev->name, i, value);
}
ql_sem_unlock(qdev, SEM_RT_IDX_MASK);
 }
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 90509fd1d95c..c6e26a757268 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -3788,14 +3788,12 @@ static int ql_wol(struct ql_adapter *qdev)
  "Failed to set magic packet on %s.\n",
  qdev->ndev->name);
return status;
-   } else
-   netif_info(qdev, drv, qdev->ndev,
-  "Enabled magic packet successfully on %s.\n",
-  qdev->ndev->name);
-
+   }
+   netif_info(qdev, drv, qdev->ndev,
+  "Enabled magic packet successfully on %s.\n",
+  qdev->ndev->name);
wol |= MB_WOL_MAGIC_PKT;
}
-
if (qdev->wol) {
wol |= MB_WOL_MODE_ON;
status = ql_mb_wol_mode(qdev, wol);
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 15c97c935618..ba8ce3506a59 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -278,9 +278,8 @@ static void ql_link_up(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
netif_err(qdev, ifup, qdev->ndev,
  "Failed to init CAM/Routing tables.\n");
return;
-   } else {
-   clear_bit(QL_CAM_RT_SET, &qdev->flags);
}
+   clear_bit(QL_CAM_RT_SET, &qdev->flags);
}
 
/* Queue up a worker to check the frame
@@ -940,13 +939,11 @@ static int ql_idc_wait(struct ql_adapter *qdev)
netif_err(qdev, drv, qdev->ndev, "IDC Success.\n");
status = 0;
break;
-   } else {
-   netif_err(qdev, drv, qdev->ndev,
- "IDC: Invalid State 0x%.04x.\n",
- mbcp

[PATCH v2 20/23] staging: qlge: Fix CHECK: usleep_range is preferred over udelay

2019-12-11 Thread Scott Schafer
chage udelay() to usleep_range()

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index e18aa335c899..9427386e4a1e 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -147,7 +147,7 @@ int ql_sem_spinlock(struct ql_adapter *qdev, u32 sem_mask)
do {
if (!ql_sem_trylock(qdev, sem_mask))
return 0;
-   udelay(100);
+   usleep_range(100, 200);
} while (--wait_count);
return -ETIMEDOUT;
 }
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 15/23] staging: qlge: Fix WARNING: please, no spaces at the start of a line

2019-12-11 Thread Scott Schafer
Fix WARNING: please, no spaces at the start of a line in qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_main.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 38d217ae4002..024c77518af3 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -52,16 +52,16 @@ MODULE_LICENSE("GPL");
 MODULE_VERSION(DRV_VERSION);
 
 static const u32 default_msg =
-NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK |
+   NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK |
 /* NETIF_MSG_TIMER |   */
-NETIF_MSG_IFDOWN |
-NETIF_MSG_IFUP |
-NETIF_MSG_RX_ERR |
-NETIF_MSG_TX_ERR |
+   NETIF_MSG_IFDOWN |
+   NETIF_MSG_IFUP |
+   NETIF_MSG_RX_ERR |
+   NETIF_MSG_TX_ERR |
 /*  NETIF_MSG_TX_QUEUED | */
 /*  NETIF_MSG_INTR | NETIF_MSG_TX_DONE | NETIF_MSG_RX_STATUS | */
 /* NETIF_MSG_PKTDATA | */
-NETIF_MSG_HW | NETIF_MSG_WOL | 0;
+   NETIF_MSG_HW | NETIF_MSG_WOL | 0;
 
 static int debug = -1; /* defaults above */
 module_param(debug, int, 0664);
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 16/23] staging: qlge: Fix WARNING: Block comments use a trailing */ on a separate line

2019-12-11 Thread Scott Schafer
Fix WARNING: Block comments use a trailing */ on a separate line in
qlge_main.c and qlge_mpi.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_main.c |  3 ++-
 drivers/staging/qlge/qlge_mpi.c  | 10 ++
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 024c77518af3..90509fd1d95c 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -3255,7 +3255,8 @@ static void ql_set_irq_mask(struct ql_adapter *qdev, 
struct intr_context *ctx)
 */
ctx->irq_mask = (1 << qdev->rx_ring[vect].cq_id);
/* Add the TX ring(s) serviced by this vector
-* to the mask. */
+* to the mask.
+*/
for (j = 0; j < tx_rings_per_vector; j++) {
ctx->irq_mask |=
(1 << qdev->rx_ring[qdev->rss_ring_count +
diff --git a/drivers/staging/qlge/qlge_mpi.c b/drivers/staging/qlge/qlge_mpi.c
index 4cff0907625b..15c97c935618 100644
--- a/drivers/staging/qlge/qlge_mpi.c
+++ b/drivers/staging/qlge/qlge_mpi.c
@@ -391,7 +391,8 @@ static void ql_init_fw_done(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
  *  This can get called iteratively from the mpi_work thread
  *  when events arrive via an interrupt.
  *  It also gets called when a mailbox command is polling for
- *  it's completion. */
+ *  it's completion.
+ */
 static int ql_mpi_handler(struct ql_adapter *qdev, struct mbox_params *mbcp)
 {
int status;
@@ -521,7 +522,7 @@ static int ql_mpi_handler(struct ql_adapter *qdev, struct 
mbox_params *mbcp)
 * changed when a mailbox command is waiting
 * for a response and an AEN arrives and
 * is handled.
-* */
+*/
mbcp->out_count = orig_count;
return status;
 }
@@ -556,7 +557,8 @@ static int ql_mailbox_command(struct ql_adapter *qdev, 
struct mbox_params *mbcp)
 * here because some AEN might arrive while
 * we're waiting for the mailbox command to
 * complete. If more than 5 seconds expire we can
-* assume something is wrong. */
+* assume something is wrong.
+*/
count = jiffies + HZ * MAILBOX_TIMEOUT;
do {
/* Wait for the interrupt to come in. */
@@ -1180,7 +1182,7 @@ void ql_mpi_idc_work(struct work_struct *work)
/* Signal the resulting link up AEN
 * that the frame routing and mac addr
 * needs to be set.
-* */
+*/
set_bit(QL_CAM_RT_SET, &qdev->flags);
/* Do ACK if required */
if (timeout) {
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 18/23] staging: qlge: Fix CHECK: Prefer using the BIT macro

2019-12-11 Thread Scott Schafer
Fix CHECK: Prefer using the BIT macro

changed (1<<4) to BIT(4) in 2 places in qlge.h

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/qlge/qlge.h b/drivers/staging/qlge/qlge.h
index 010d39b4b30d..de9e836c2788 100644
--- a/drivers/staging/qlge/qlge.h
+++ b/drivers/staging/qlge/qlge.h
@@ -1274,7 +1274,7 @@ struct net_req_iocb {
  */
 struct wqicb {
__le16 len;
-#define Q_LEN_V(1 << 4)
+#define Q_LEN_VBIT(4)
 #define Q_LEN_CPP_CONT 0x
 #define Q_LEN_CPP_16   0x0001
 #define Q_LEN_CPP_32   0x0002
@@ -1309,7 +1309,7 @@ struct cqicb {
 #define FLAGS_LI   0x40
 #define FLAGS_LC   0x80
__le16 len;
-#define LEN_V  (1 << 4)
+#define LEN_V  BIT(4)
 #define LEN_CPP_CONT   0x
 #define LEN_CPP_32 0x0001
 #define LEN_CPP_64 0x0002
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 23/23] staging: qlge: Fix WARNING: Avoid multiple line dereference

2019-12-11 Thread Scott Schafer
Fix WARNING: Avoid multiple line dereference in qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_main.c | 12 +---
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index 102da1fe9899..725db7262a9a 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -399,9 +399,8 @@ static int ql_set_mac_addr_reg(struct ql_adapter *qdev, u8 
*addr, u32 type,
 * the route field to NIC core.
 */
cam_output = (CAM_OUT_ROUTE_NIC |
- (qdev->
-  func << CAM_OUT_FUNC_SHIFT) |
-   (0 << CAM_OUT_CQ_ID_SHIFT));
+ (qdev->func << CAM_OUT_FUNC_SHIFT) |
+ (0 << CAM_OUT_CQ_ID_SHIFT));
if (qdev->ndev->features & NETIF_F_HW_VLAN_CTAG_RX)
cam_output |= CAM_OUT_RV;
/* route to NIC core */
@@ -3428,10 +3427,9 @@ static int ql_request_irq(struct ql_adapter *qdev)
 &qdev->rx_ring[0]);
status =
request_irq(pdev->irq, qlge_isr,
-   test_bit(QL_MSI_ENABLED,
-&qdev->
-flags) ? 0 : IRQF_SHARED,
-   intr_context->name, &qdev->rx_ring[0]);
+   test_bit(QL_MSI_ENABLED, &qdev->flags)
+   ? 0 : IRQF_SHARED, intr_context->name,
+   &qdev->rx_ring[0]);
if (status)
goto err_irq;
 
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2 19/23] staging: qlge: Fix WARNING: msleep < 20ms can sleep for up to 20ms

2019-12-11 Thread Scott Schafer
Fix WARNING: msleep < 20ms can sleep for up to 20ms by changing msleep
to usleep_range() in qlge_dbg.c, qlge_ethtool.c, and  qlge_main.c

Signed-off-by: Scott Schafer 
---
 drivers/staging/qlge/qlge_dbg.c | 2 +-
 drivers/staging/qlge/qlge_ethtool.c | 2 +-
 drivers/staging/qlge/qlge_main.c| 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/qlge/qlge_dbg.c b/drivers/staging/qlge/qlge_dbg.c
index 0f1e1b62662d..ba801de02109 100644
--- a/drivers/staging/qlge/qlge_dbg.c
+++ b/drivers/staging/qlge/qlge_dbg.c
@@ -1340,7 +1340,7 @@ void ql_mpi_core_to_log(struct work_struct *work)
   tmp[i + 5],
   tmp[i + 6],
   tmp[i + 7]);
-   msleep(5);
+   usleep_range(5000, 6000);
}
 }
 
diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index b9e1e154d646..abed932c3694 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -555,7 +555,7 @@ static int ql_run_loopback_test(struct ql_adapter *qdev)
atomic_inc(&qdev->lb_count);
}
/* Give queue time to settle before testing results. */
-   msleep(2);
+   usleep_range(2000, 3000);
ql_clean_lb_rx_ring(&qdev->rx_ring[0], 128);
return atomic_read(&qdev->lb_count) ? -EIO : 0;
 }
diff --git a/drivers/staging/qlge/qlge_main.c b/drivers/staging/qlge/qlge_main.c
index c6e26a757268..e18aa335c899 100644
--- a/drivers/staging/qlge/qlge_main.c
+++ b/drivers/staging/qlge/qlge_main.c
@@ -3924,7 +3924,7 @@ static int qlge_close(struct net_device *ndev)
 * (Rarely happens, but possible.)
 */
while (!test_bit(QL_ADAPTER_UP, &qdev->flags))
-   msleep(1);
+   usleep_range(1000, 2000);
 
/* Make sure refill_work doesn't re-enable napi */
for (i = 0; i < qdev->rss_ring_count; i++)
-- 
2.20.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v1 6/7] staging: axis-fifo: add unspecified HAS_IOMEM dependency

2019-12-11 Thread Brendan Higgins
Currently CONFIG_XIL_AXIS_FIFO=y implicitly depends on
CONFIG_HAS_IOMEM=y; consequently, on architectures without IOMEM we get
the following build error:

ld: drivers/staging/axis-fifo/axis-fifo.o: in function `axis_fifo_probe':
drivers/staging/axis-fifo/axis-fifo.c:809: undefined reference to 
`devm_ioremap_resource'

Fix the build error by adding the unspecified dependency.

Reported-by: Brendan Higgins 
Signed-off-by: Brendan Higgins 
---
 drivers/staging/axis-fifo/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/axis-fifo/Kconfig 
b/drivers/staging/axis-fifo/Kconfig
index 3fffe4d6f327f..f180a8e9f58af 100644
--- a/drivers/staging/axis-fifo/Kconfig
+++ b/drivers/staging/axis-fifo/Kconfig
@@ -4,7 +4,7 @@
 #
 config XIL_AXIS_FIFO
tristate "Xilinx AXI-Stream FIFO IP core driver"
-   depends on OF
+   depends on OF && HAS_IOMEM
help
  This adds support for the Xilinx AXI-Stream FIFO IP core driver.
  The AXI Streaming FIFO allows memory mapped access to a AXI Streaming
-- 
2.24.0.525.g8f36a354ae-goog

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v2] staging: intel-gwdpa: gswip: Introduce Gigabit Ethernet Switch (GSWIP) device driver

2019-12-11 Thread Chng, Jack Ping

Hi Dan,

On 11/12/2019 6:58 PM, Dan Carpenter wrote:


This should just be sent to netdev.  I spotted a couple bugs.

1) enable/disable we flipped xgmac_set_xgmii_2500_speed()
2) retries wasn't reset in a couple places.

I had a few tiny style nits as well but there is no reason to send it to
staging.

regards,
dan carpenter


Thanks for the review and comments.
We will fix the bug and address the comments.

Best regards,
Chng Jack Ping

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel