[staging:staging-testing] BUILD SUCCESS 7b2d7faa09fcbd0184634544f732f4b2da0b20a8

2020-01-19 Thread kbuild test robot
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 
 staging-testing
branch HEAD: 7b2d7faa09fcbd0184634544f732f4b2da0b20a8  Merge tag 'iio-for-5.6b' 
of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next

elapsed time: 337m

configs tested: 163
configs skipped: 0

The following configs have been built successfully.
More configs may be tested in the coming days.

riscvallmodconfig
riscv allnoconfig
riscvallyesconfig
riscv   defconfig
riscvnommu_virt_defconfig
riscv  rv32_defconfig
c6x  randconfig-a001-20200120
h8300randconfig-a001-20200120
microblaze   randconfig-a001-20200120
nios2randconfig-a001-20200120
sparc64  randconfig-a001-20200120
sh   allmodconfig
shallnoconfig
sh  rsk7269_defconfig
sh  sh7785lcr_32bit_defconfig
shtitan_defconfig
h8300 edosk2674_defconfig
h8300h8300h-sim_defconfig
h8300   h8s-sim_defconfig
m68k allmodconfig
m68k   m5475evb_defconfig
m68k  multi_defconfig
m68k   sun3_defconfig
arc  allyesconfig
arc defconfig
microblaze  mmu_defconfig
microblazenommu_defconfig
powerpc   allnoconfig
powerpc defconfig
powerpc   ppc64_defconfig
powerpc  rhel-kconfig
x86_64   randconfig-d001-20200120
x86_64   randconfig-d002-20200120
x86_64   randconfig-d003-20200120
i386 randconfig-d001-20200120
i386 randconfig-d002-20200120
i386 randconfig-d003-20200120
arm  allmodconfig
arm64allmodconfig
csky randconfig-a001-20200120
openrisc randconfig-a001-20200120
s390 randconfig-a001-20200120
sh   randconfig-a001-20200120
xtensa   randconfig-a001-20200120
s390 alldefconfig
s390 allmodconfig
s390  allnoconfig
s390 allyesconfig
s390  debug_defconfig
s390defconfig
s390   zfcpdump_defconfig
i386 allyesconfig
c6x  allyesconfig
c6xevmc6678_defconfig
nios2 10m50_defconfig
nios2 3c120_defconfig
openriscor1ksim_defconfig
openrisc simple_smp_defconfig
xtensa   common_defconfig
xtensa  iss_defconfig
x86_64   randconfig-f001-20200120
x86_64   randconfig-f002-20200120
x86_64   randconfig-f003-20200120
i386 randconfig-f001-20200120
i386 randconfig-f002-20200120
i386 randconfig-f003-20200120
ia64 alldefconfig
ia64 allmodconfig
ia64  allnoconfig
ia64 allyesconfig
ia64defconfig
um  defconfig
um i386_defconfig
um   x86_64_defconfig
i386 alldefconfig
i386  allnoconfig
i386defconfig
pariscallnoconfig
pariscallyesonfig
parisc b180_defconfig
pariscc3000_defconfig
parisc  defconfig
x86_64   randconfig-b001-20200120
x86_64   randconfig-b002-20200120
x86_64   randconfig-b003-20200120
i386 randconfig-b001-20200120
i386 randconfig-b002-20200120
i386 randconfig-b003-20200120
alpha   defconfig
cskydefconfig
nds32 allnoconfig
nds32   defconfig
alpharandconfig-a001-20200120
m68k randconfig-a001-20200120
mips randconfig-a001-20200120
nds32randconfig-a001-20200120
parisc   randconfig-a001-20200120
x86_64  fedora-25
x86_64  kexec
x86_64  

HELLO

2020-01-19 Thread Favor Desmond
Hello Dear
Greetings to you,I am Favor Desmond from Ivory coast currently living
in  Togo Republic,I would like to know you more, so that i can tell
you little amount myself and my photo, email address is
favord...@email.com
Thanks
Favor
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 3/3] Staging: comedi: usbdux: cleanup long line and align it

2020-01-19 Thread Joe Perches
On Sun, 2020-01-19 at 11:52 +0800, Simon Fong wrote:
> Clean up long line and align it
[]
> diff --git a/drivers/staging/comedi/drivers/usbdux.c 
> b/drivers/staging/comedi/drivers/usbdux.c
[]
> @@ -204,7 +204,8 @@ struct usbdux_private {
>   struct mutex mut;
>  };
>  
> -static void usbdux_unlink_urbs(struct urb **urbs, int num_urbs)

Why do you believe this to be a long line?
It's only 63 characters.

 1 2 3 4 5 6 7
1234567890123456789012345678901234567890123456789012345678901234567890

static void usbdux_unlink_urbs(struct urb **urbs, int num_urbs)

> +static void usbdux_unlink_urbs(struct urb **urbs,
> +int num_urbs)
>  {
>   int i;
>   

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


Re: [PATCH] staging: media: rkisp1: make links immutable by default

2020-01-19 Thread Helen Koike


On 1/17/20 8:36 PM, Niklas Söderlund wrote:
> Hi Helen,
> 
> Thanks for your work.
> 
> On 2020-01-17 17:12:18 -0300, Helen Koike wrote:
>> The only places which make sese to allow users to enable or disable
>> links are:
>>
>> * between sensors and isp:
>> So users can select which sensor should be used while streaming
>>
>> * between isp and the resizers:
>>   |
>>   v here
>> rkisp1_isp:2 -> rkisp1_resizer_mainpath -> rkisp1_mainpath (capture)
>> \-> rkisp1_resizer_selfpath -> rkisp1_selfpath (capture)
>>   ^ here
>>   |
>>
>> So users can disable one of the capture paths when unused, to avoid
>> worring about matching formats.
>>
>> Make the following links immutable to simplify userspace:
>>
>> rkisp1_resizer_mainpath -> rkisp1_mainpath
>> rkisp1_resizer_selfpath -> rkisp1_selfpath
>> rkisp1_params   -> rkisp1_isp
>> rkisp1_isp  -> rkisp1_stats
>>
>> Signed-off-by: Helen Koike 
>>
>> ---
>> This is the topology graph after disabling all the links with
>> media -r
>> http://col.la/rkisp1immutable
>>
>> Dashed links are the only one can can be enabled/disabled, the others
>> are immutable.
>>
>>  drivers/staging/media/rkisp1/rkisp1-dev.c | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/staging/media/rkisp1/rkisp1-dev.c 
>> b/drivers/staging/media/rkisp1/rkisp1-dev.c
>> index 558126e66465..4030d5e71af1 100644
>> --- a/drivers/staging/media/rkisp1/rkisp1-dev.c
>> +++ b/drivers/staging/media/rkisp1/rkisp1-dev.c
>> @@ -145,14 +145,15 @@ static int rkisp1_create_links(struct rkisp1_device 
>> *rkisp1)
>>  flags = 0;
>>  }
>>  
>> -flags = MEDIA_LNK_FL_ENABLED;
>> +flags = MEDIA_LNK_FL_ENABLED | MEDIA_LNK_FL_IMMUTABLE;
>>  
>>  /* create ISP->RSZ->CAP links */
>>  for (i = 0; i < 2; i++) {
>>  source = >isp.sd.entity;
>>  sink = >resizer_devs[i].sd.entity;
> 
> nit: To keep with the style of the rest of the function I would set 
> flags here and once more bellow in the same loop.


Do you mean this: http://ix.io/27Pm ?
hmm, I don't see why to assign flags inside the loop.
the previous loop is a different case, since it sets the link
to the first sensor as enabled, but the other sensor links are disabled
(in case there are more then one link).

> 
> With or without this fixed,
> 
> Reviewed-by: Niklas Söderlund 

Thanks,
Helen

> 
>>  ret = media_create_pad_link(source, RKISP1_ISP_PAD_SOURCE_VIDEO,
>> -sink, RKISP1_RSZ_PAD_SINK, flags);
>> +sink, RKISP1_RSZ_PAD_SINK,
>> +MEDIA_LNK_FL_ENABLED);
>>  if (ret)
>>  return ret;
>>  
>> -- 
>> 2.24.0
>>
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] staging: qlge: fix missing a blank line after declaration

2020-01-19 Thread Valery Ivanov
This patch fixes "WARNING: Missing a blank lin after declarations"
Issue found by checkpatch.pl

Signed-off-by: Valery Ivanov 
---
 drivers/staging/qlge/qlge_ethtool.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/staging/qlge/qlge_ethtool.c 
b/drivers/staging/qlge/qlge_ethtool.c
index 56d116d79e56..2872b7120e36 100644
--- a/drivers/staging/qlge/qlge_ethtool.c
+++ b/drivers/staging/qlge/qlge_ethtool.c
@@ -412,6 +412,7 @@ static void ql_get_drvinfo(struct net_device *ndev,
   struct ethtool_drvinfo *drvinfo)
 {
struct ql_adapter *qdev = netdev_priv(ndev);
+
strlcpy(drvinfo->driver, qlge_driver_name, sizeof(drvinfo->driver));
strlcpy(drvinfo->version, qlge_driver_version,
sizeof(drvinfo->version));
@@ -703,12 +704,14 @@ static int ql_set_pauseparam(struct net_device *netdev,
 static u32 ql_get_msglevel(struct net_device *ndev)
 {
struct ql_adapter *qdev = netdev_priv(ndev);
+
return qdev->msg_enable;
 }
 
 static void ql_set_msglevel(struct net_device *ndev, u32 value)
 {
struct ql_adapter *qdev = netdev_priv(ndev);
+
qdev->msg_enable = value;
 }
 
-- 
2.17.1

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


Re: [PATCH 3/3] Staging: comedi: usbdux: cleanup long line and align it

2020-01-19 Thread Greg KH
On Sun, Jan 19, 2020 at 01:50:24PM +0100, Greg KH wrote:
> On Sun, Jan 19, 2020 at 11:52:43AM +0800, Simon Fong wrote:
> > Clean up long line and align it
> > 
> > Signed-off-by: Simon Fong 
> > ---
> >  drivers/staging/comedi/drivers/usbdux.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/staging/comedi/drivers/usbdux.c 
> > b/drivers/staging/comedi/drivers/usbdux.c
> > index 0350f303d557..b9c0b1a1d86e 100644
> > --- a/drivers/staging/comedi/drivers/usbdux.c
> > +++ b/drivers/staging/comedi/drivers/usbdux.c
> > @@ -204,7 +204,8 @@ struct usbdux_private {
> > struct mutex mut;
> >  };
> >  
> > -static void usbdux_unlink_urbs(struct urb **urbs, int num_urbs)
> > +static void usbdux_unlink_urbs(struct urb **urbs,
> > +  int num_urbs)
> 
> As Joe said, there is no reason to change this line that I can see, why
> do you want to do that?

Also, where are patches 1 and 2 of this 3 patch series?

thanks,

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


Re: [PATCH 3/3] Staging: comedi: usbdux: cleanup long line and align it

2020-01-19 Thread Greg KH
On Sun, Jan 19, 2020 at 11:52:43AM +0800, Simon Fong wrote:
> Clean up long line and align it
> 
> Signed-off-by: Simon Fong 
> ---
>  drivers/staging/comedi/drivers/usbdux.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/comedi/drivers/usbdux.c 
> b/drivers/staging/comedi/drivers/usbdux.c
> index 0350f303d557..b9c0b1a1d86e 100644
> --- a/drivers/staging/comedi/drivers/usbdux.c
> +++ b/drivers/staging/comedi/drivers/usbdux.c
> @@ -204,7 +204,8 @@ struct usbdux_private {
>   struct mutex mut;
>  };
>  
> -static void usbdux_unlink_urbs(struct urb **urbs, int num_urbs)
> +static void usbdux_unlink_urbs(struct urb **urbs,
> +int num_urbs)

As Joe said, there is no reason to change this line that I can see, why
do you want to do that?

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


[PATCH 4/5] staging: vt6656: Just check NEWRSR_DECRYPTOK for RX_FLAG_DECRYPTED.

2020-01-19 Thread Malcolm Priestley
At present the driver does a number of checks for RX_FLAG_DECRYPTED.

Remove all these and just pass check NEWRSR_DECRYPTOK mac80211
will handle the processing of the sk_buff and dispose of it.

This means that mac80211 can do unsupported encryption modes
on stack.

Signed-off-by: Malcolm Priestley 
---
 drivers/staging/vt6656/dpc.c | 18 ++
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index 981de5687341..821aae8ca402 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -30,10 +30,8 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
struct ieee80211_supported_band *sband;
struct sk_buff *skb;
struct ieee80211_rx_status *rx_status;
-   struct ieee80211_hdr *hdr;
struct vnt_rx_header *head;
struct vnt_rx_tail *tail;
-   __le16 fc;
u32 frame_size;
int ii;
u16 rx_bitrate, pay_load_with_padding;
@@ -115,22 +113,10 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
if (!(tail->rsr & RSR_CRCOK))
rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
 
-   hdr = (struct ieee80211_hdr *)(skb->data);
-   fc = hdr->frame_control;
-
rx_status->rate_idx = rate_idx;
 
-   if (ieee80211_has_protected(fc)) {
-   if (priv->local_id > REV_ID_VT3253_A1) {
-   rx_status->flag |= RX_FLAG_DECRYPTED;
-
-   /* Drop packet */
-   if (!(tail->new_rsr & NEWRSR_DECRYPTOK)) {
-   dev_kfree_skb(skb);
-   return true;
-   }
-   }
-   }
+   if (tail->new_rsr & NEWRSR_DECRYPTOK)
+   rx_status->flag |= RX_FLAG_DECRYPTED;
 
ieee80211_rx_irqsafe(priv->hw, skb);
 
-- 
2.24.0
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 5/5] staging: vt6656: Remove memory buffer from vnt_download_firmware.

2020-01-19 Thread Malcolm Priestley
The memory buffer is being done twice here as vnt_control_out passes
it straight to kmemdup.

Remove buffer and add const to the variable in vnt_control_out to pass
the pointer to it.

Signed-off-by: Malcolm Priestley 
---
 drivers/staging/vt6656/firmware.c | 14 ++
 drivers/staging/vt6656/usbpipe.c  |  2 +-
 drivers/staging/vt6656/usbpipe.h  |  2 +-
 3 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/vt6656/firmware.c 
b/drivers/staging/vt6656/firmware.c
index 60a00af250bf..70358d427211 100644
--- a/drivers/staging/vt6656/firmware.c
+++ b/drivers/staging/vt6656/firmware.c
@@ -30,7 +30,6 @@ int vnt_download_firmware(struct vnt_private *priv)
 {
struct device *dev = >usb->dev;
const struct firmware *fw;
-   void *buffer = NULL;
u16 length;
int ii;
int ret = 0;
@@ -44,26 +43,17 @@ int vnt_download_firmware(struct vnt_private *priv)
goto end;
}
 
-   buffer = kmalloc(FIRMWARE_CHUNK_SIZE, GFP_KERNEL);
-   if (!buffer) {
-   ret = -ENOMEM;
-   goto free_fw;
-   }
-
for (ii = 0; ii < fw->size; ii += FIRMWARE_CHUNK_SIZE) {
length = min_t(int, fw->size - ii, FIRMWARE_CHUNK_SIZE);
-   memcpy(buffer, fw->data + ii, length);
 
ret = vnt_control_out(priv, 0, 0x1200 + ii, 0x, length,
- buffer);
+ fw->data + ii);
if (ret)
-   goto free_buffer;
+   goto free_fw;
 
dev_dbg(dev, "Download firmware...%d %zu\n", ii, fw->size);
}
 
-free_buffer:
-   kfree(buffer);
 free_fw:
release_firmware(fw);
 end:
diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c
index d977d4777e4f..7bfccc48a366 100644
--- a/drivers/staging/vt6656/usbpipe.c
+++ b/drivers/staging/vt6656/usbpipe.c
@@ -34,7 +34,7 @@
 #define USB_CTL_WAIT   500 /* ms */
 
 int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
-   u16 index, u16 length, u8 *buffer)
+   u16 index, u16 length, const u8 *buffer)
 {
int ret = 0;
u8 *usb_buffer;
diff --git a/drivers/staging/vt6656/usbpipe.h b/drivers/staging/vt6656/usbpipe.h
index b65d9c01a211..4e3341bc3221 100644
--- a/drivers/staging/vt6656/usbpipe.h
+++ b/drivers/staging/vt6656/usbpipe.h
@@ -21,7 +21,7 @@
 #define VNT_REG_BLOCK_SIZE 64
 
 int vnt_control_out(struct vnt_private *priv, u8 request, u16 value,
-   u16 index, u16 length, u8 *buffer);
+   u16 index, u16 length, const u8 *buffer);
 int vnt_control_in(struct vnt_private *priv, u8 request, u16 value,
   u16 index, u16 length,  u8 *buffer);
 
-- 
2.24.0
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 3/5] staging: vt6656: Use vnt_rx_tail struct for tail variables.

2020-01-19 Thread Malcolm Priestley
Place tsf_time, sq, new_rsr, rssi, rsr and sq3 packed in the structure.

Unused variables are removed along with skb_data and structure is
placed beyond vnt_rx_header + pay_load_with_padding on skb->data.

Signed-off-by: Malcolm Priestley 
---
 drivers/staging/vt6656/device.h |  9 +
 drivers/staging/vt6656/dpc.c| 33 -
 2 files changed, 17 insertions(+), 25 deletions(-)

diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h
index 84d170420c8a..fe6c11266123 100644
--- a/drivers/staging/vt6656/device.h
+++ b/drivers/staging/vt6656/device.h
@@ -213,6 +213,15 @@ struct vnt_rx_header {
u16 pay_load_len;
 } __packed;
 
+struct vnt_rx_tail {
+   __le64 tsf_time;
+   u8 sq;
+   u8 new_rsr;
+   u8 rssi;
+   u8 rsr;
+   u8 sq_3;
+} __packed;
+
 /* RCB (Receive Control Block) */
 struct vnt_rcb {
void *priv;
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index 8fbb911144c6..981de5687341 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -32,13 +32,10 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
struct ieee80211_rx_status *rx_status;
struct ieee80211_hdr *hdr;
struct vnt_rx_header *head;
+   struct vnt_rx_tail *tail;
__le16 fc;
-   u8 *rsr, *new_rsr, *rssi;
-   __le64 *tsf_time;
u32 frame_size;
int ii;
-   u8 *sq, *sq_3;
-   u8 *skb_data;
u16 rx_bitrate, pay_load_with_padding;
u8 rate_idx = 0;
long rx_dbm;
@@ -62,8 +59,6 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
return false;
}
 
-   skb_data = (u8 *)skb->data;
-
/* real Frame Size = USBframe_size -4WbkStatus - 4RxStatus */
/* -8TSF - 4RSR - 4SQ3 - ?Padding */
 
@@ -96,26 +91,14 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
pay_load_with_padding = ((head->pay_load_len / 4) +
((head->pay_load_len % 4) ? 1 : 0)) * 4;
 
-   tsf_time = (__le64 *)(skb_data + 8 + pay_load_with_padding);
-
-   priv->tsf_time = le64_to_cpu(*tsf_time);
-
-   if (priv->bb_type == BB_TYPE_11G) {
-   sq_3 = skb_data + 8 + pay_load_with_padding + 12;
-   sq = sq_3;
-   } else {
-   sq = skb_data + 8 + pay_load_with_padding + 8;
-   sq_3 = sq;
-   }
-
-   new_rsr = skb_data + 8 + pay_load_with_padding + 9;
-   rssi = skb_data + 8 + pay_load_with_padding + 10;
+   tail = (struct vnt_rx_tail *)(skb->data +
+ sizeof(*head) + pay_load_with_padding);
+   priv->tsf_time = le64_to_cpu(tail->tsf_time);
 
-   rsr = skb_data + 8 + pay_load_with_padding + 11;
-   if (*rsr & (RSR_IVLDTYP | RSR_IVLDLEN))
+   if (tail->rsr & (RSR_IVLDTYP | RSR_IVLDLEN))
return false;
 
-   vnt_rf_rssi_to_dbm(priv, *rssi, _dbm);
+   vnt_rf_rssi_to_dbm(priv, tail->rssi, _dbm);
 
priv->bb_pre_ed_rssi = (u8)rx_dbm + 1;
priv->current_rssi = priv->bb_pre_ed_rssi;
@@ -129,7 +112,7 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
rx_status->flag = 0;
rx_status->freq = hw->conf.chandef.chan->center_freq;
 
-   if (!(*rsr & RSR_CRCOK))
+   if (!(tail->rsr & RSR_CRCOK))
rx_status->flag |= RX_FLAG_FAILED_FCS_CRC;
 
hdr = (struct ieee80211_hdr *)(skb->data);
@@ -142,7 +125,7 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
rx_status->flag |= RX_FLAG_DECRYPTED;
 
/* Drop packet */
-   if (!(*new_rsr & NEWRSR_DECRYPTOK)) {
+   if (!(tail->new_rsr & NEWRSR_DECRYPTOK)) {
dev_kfree_skb(skb);
return true;
}
-- 
2.24.0
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 2/5] staging: vt6656: create vnt rx header for sk_buff.

2020-01-19 Thread Malcolm Priestley
vnt_rx_header contains the structure of the original variables
wbk_status, rx_sts, rx_rate and pay_load_len packed.

Replace all the old variables for the ones in this.

Signed-off-by: Malcolm Priestley 
---
 drivers/staging/vt6656/device.h |  7 +++
 drivers/staging/vt6656/dpc.c| 29 -
 2 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h
index 2f6567d92b83..84d170420c8a 100644
--- a/drivers/staging/vt6656/device.h
+++ b/drivers/staging/vt6656/device.h
@@ -206,6 +206,13 @@ enum {
CONTEXT_BEACON_PACKET
 };
 
+struct vnt_rx_header {
+   u32 wbk_status;
+   u8 rx_sts;
+   u8 rx_rate;
+   u16 pay_load_len;
+} __packed;
+
 /* RCB (Receive Control Block) */
 struct vnt_rcb {
void *priv;
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index a55e2f6b09e3..8fbb911144c6 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -31,15 +31,14 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
struct sk_buff *skb;
struct ieee80211_rx_status *rx_status;
struct ieee80211_hdr *hdr;
+   struct vnt_rx_header *head;
__le16 fc;
u8 *rsr, *new_rsr, *rssi;
__le64 *tsf_time;
u32 frame_size;
int ii;
u8 *sq, *sq_3;
-   u32 wbk_status;
u8 *skb_data;
-   u16 *pay_load_len;
u16 rx_bitrate, pay_load_with_padding;
u8 rate_idx = 0;
long rx_dbm;
@@ -48,8 +47,8 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
rx_status = IEEE80211_SKB_RXCB(skb);
 
/* [31:16]RcvByteCount ( not include 4-byte Status ) */
-   wbk_status = *((u32 *)(skb->data));
-   frame_size = wbk_status >> 16;
+   head = (struct vnt_rx_header *)skb->data;
+   frame_size = head->wbk_status >> 16;
frame_size += 4;
 
if (bytes_received != frame_size) {
@@ -70,19 +69,17 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
 
/* if SQ3 the range is 24~27, if no SQ3 the range is 20~23 */
 
-   pay_load_len = (u16 *)(skb_data + 6);
-
/*Fix hardware bug => PLCP_Length error */
-   if (((bytes_received - (*pay_load_len)) > 27) ||
-   ((bytes_received - (*pay_load_len)) < 24) ||
-   (bytes_received < (*pay_load_len))) {
+   if (((bytes_received - head->pay_load_len) > 27) ||
+   ((bytes_received - head->pay_load_len) < 24) ||
+   (bytes_received < head->pay_load_len)) {
dev_dbg(>usb->dev, "Wrong PLCP Length %x\n",
-   *pay_load_len);
+   head->pay_load_len);
return false;
}
 
sband = hw->wiphy->bands[hw->conf.chandef.chan->band];
-   rx_bitrate = *(skb_data + 5) * 5; /* rx_rate * 5 */
+   rx_bitrate = head->rx_rate * 5; /* rx_rate * 5 */
 
for (ii = 0; ii < sband->n_bitrates; ii++) {
if (sband->bitrates[ii].bitrate == rx_bitrate) {
@@ -96,8 +93,8 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
return false;
}
 
-   pay_load_with_padding = ((*pay_load_len / 4) +
-   ((*pay_load_len % 4) ? 1 : 0)) * 4;
+   pay_load_with_padding = ((head->pay_load_len / 4) +
+   ((head->pay_load_len % 4) ? 1 : 0)) * 4;
 
tsf_time = (__le64 *)(skb_data + 8 + pay_load_with_padding);
 
@@ -118,15 +115,13 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
if (*rsr & (RSR_IVLDTYP | RSR_IVLDLEN))
return false;
 
-   frame_size = *pay_load_len;
-
vnt_rf_rssi_to_dbm(priv, *rssi, _dbm);
 
priv->bb_pre_ed_rssi = (u8)rx_dbm + 1;
priv->current_rssi = priv->bb_pre_ed_rssi;
 
-   skb_pull(skb, 8);
-   skb_trim(skb, frame_size);
+   skb_pull(skb, sizeof(*head));
+   skb_trim(skb, head->pay_load_len);
 
rx_status->mactime = priv->tsf_time;
rx_status->band = hw->conf.chandef.chan->band;
-- 
2.24.0
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 1/5] staging: vt6656: Simplify RX finding bit rates

2020-01-19 Thread Malcolm Priestley
The bit rate can be found by multiplying the rate value by 5.

Use rx_bitrate to compared to sband bitrates removing the need
to find it by hw_value.

Signed-off-by: Malcolm Priestley 
---
 drivers/staging/vt6656/device.h |  1 -
 drivers/staging/vt6656/dpc.c| 21 ++---
 2 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h
index e2fabe818b19..2f6567d92b83 100644
--- a/drivers/staging/vt6656/device.h
+++ b/drivers/staging/vt6656/device.h
@@ -264,7 +264,6 @@ struct vnt_private {
struct usb_interface *intf;
 
u64 tsf_time;
-   u8 rx_rate;
 
u32 rx_buf_sz;
int mc_list_count;
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index 2bcb29b11883..a55e2f6b09e3 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -35,14 +35,13 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
u8 *rsr, *new_rsr, *rssi;
__le64 *tsf_time;
u32 frame_size;
-   int ii, r;
-   u8 *rx_rate, *sq, *sq_3;
+   int ii;
+   u8 *sq, *sq_3;
u32 wbk_status;
u8 *skb_data;
u16 *pay_load_len;
-   u16 pay_load_with_padding;
+   u16 rx_bitrate, pay_load_with_padding;
u8 rate_idx = 0;
-   u8 rate[MAX_RATE] = {2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108};
long rx_dbm;
 
skb = ptr_rcb->skb;
@@ -66,8 +65,6 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
 
skb_data = (u8 *)skb->data;
 
-   rx_rate = skb_data + 5;
-
/* real Frame Size = USBframe_size -4WbkStatus - 4RxStatus */
/* -8TSF - 4RSR - 4SQ3 - ?Padding */
 
@@ -85,23 +82,17 @@ int vnt_rx_data(struct vnt_private *priv, struct vnt_rcb 
*ptr_rcb,
}
 
sband = hw->wiphy->bands[hw->conf.chandef.chan->band];
-
-   for (r = RATE_1M; r < MAX_RATE; r++) {
-   if (*rx_rate == rate[r])
-   break;
-   }
-
-   priv->rx_rate = r;
+   rx_bitrate = *(skb_data + 5) * 5; /* rx_rate * 5 */
 
for (ii = 0; ii < sband->n_bitrates; ii++) {
-   if (sband->bitrates[ii].hw_value == r) {
+   if (sband->bitrates[ii].bitrate == rx_bitrate) {
rate_idx = ii;
break;
}
}
 
if (ii == sband->n_bitrates) {
-   dev_dbg(>usb->dev, "Wrong RxRate %x\n", *rx_rate);
+   dev_dbg(>usb->dev, "Wrong Rx Bit Rate %d\n", rx_bitrate);
return false;
}
 
-- 
2.24.0
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[driver-core:driver-core-next] BUILD SUCCESS f3c19481820cca412a768ae1d6737f59b68acfed

2020-01-19 Thread kbuild test robot
tree/branch: 
https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git  
driver-core-next
branch HEAD: f3c19481820cca412a768ae1d6737f59b68acfed  cpu-topology: Don't 
error on more than CONFIG_NR_CPUS CPUs in device tree

elapsed time: 2369m

configs tested: 152
configs skipped: 0

The following configs have been built successfully.
More configs may be tested in the coming days.

x86_64   randconfig-f001-20200119
x86_64   randconfig-f002-20200119
x86_64   randconfig-f003-20200119
i386 randconfig-f001-20200119
i386 randconfig-f002-20200119
i386 randconfig-f003-20200119
x86_64   randconfig-g001-20200119
x86_64   randconfig-g002-20200119
x86_64   randconfig-g003-20200119
i386 randconfig-g001-20200119
i386 randconfig-g002-20200119
i386 randconfig-g003-20200119
i386 alldefconfig
i386  allnoconfig
i386 allyesconfig
i386defconfig
sparcallyesconfig
ia64 alldefconfig
ia64 allmodconfig
ia64  allnoconfig
ia64 allyesconfig
ia64defconfig
um   x86_64_defconfig
um i386_defconfig
um  defconfig
x86_64   randconfig-h001-20200119
x86_64   randconfig-h002-20200119
x86_64   randconfig-h003-20200119
i386 randconfig-h001-20200119
i386 randconfig-h002-20200119
i386 randconfig-h003-20200119
csky randconfig-a001-20200119
openrisc randconfig-a001-20200119
s390 randconfig-a001-20200119
sh   randconfig-a001-20200119
xtensa   randconfig-a001-20200119
x86_64   randconfig-a001-20200119
x86_64   randconfig-a002-20200119
x86_64   randconfig-a003-20200119
i386 randconfig-a001-20200119
i386 randconfig-a002-20200119
i386 randconfig-a003-20200119
openriscor1ksim_defconfig
pariscallnoconfig
pariscallyesonfig
parisc b180_defconfig
pariscc3000_defconfig
parisc  defconfig
riscvallmodconfig
riscv allnoconfig
riscvallyesconfig
riscv   defconfig
riscvnommu_virt_defconfig
riscv  rv32_defconfig
c6x  allyesconfig
c6xevmc6678_defconfig
nios2 10m50_defconfig
nios2 3c120_defconfig
openrisc simple_smp_defconfig
xtensa   common_defconfig
xtensa  iss_defconfig
arm  allmodconfig
arm at91_dt_defconfig
arm64   defconfig
armmulti_v5_defconfig
arm  allyesconfig
arm64allyesconfig
arm   allnoconfig
arm   efm32_defconfig
arm   sunxi_defconfig
arm64 allnoconfig
arm64allmodconfig
arm  exynos_defconfig
armshmobile_defconfig
armmulti_v7_defconfig
alpha   defconfig
cskydefconfig
nds32 allnoconfig
nds32   defconfig
arc  allyesconfig
arc defconfig
microblaze  mmu_defconfig
microblazenommu_defconfig
powerpc   allnoconfig
powerpc defconfig
powerpc   ppc64_defconfig
powerpc  rhel-kconfig
x86_64   randconfig-d001-20200119
x86_64   randconfig-d002-20200119
x86_64   randconfig-d003-20200119
i386 randconfig-d001-20200119
i386 randconfig-d002-20200119
i386 randconfig-d003-20200119
x86_64  fedora-25
x86_64  kexec
x86_64lkp
x86_64   rhel
x86_64   rhel-7.6
sh   allmodconfig
shallnoconfig
sh