[staging:staging-testing] BUILD SUCCESS 7b2d7faa09fcbd0184634544f732f4b2da0b20a8
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
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
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
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
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
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
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.
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.
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.
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.
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
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
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