Re: [PATCH V2 00/26] use unified firmware and add ops in cfg

2016-01-25 Thread Greg KH
On Tue, Jan 26, 2016 at 11:44:30AM +0900, glen lee wrote:
> 
> 
> On 2016년 01월 26일 02:21, Greg KH wrote:
> >On Mon, Jan 25, 2016 at 03:15:31PM +0200, Kalle Valo wrote:
> >>Glen Lee  writes:
> >>
> >>>This patch series contains
> >>>* support suspend and resume functionality
> >>>* use a unified firmware for all mode of operations(station, ap, p2p)
> >>>* support Station/AP concurrency
> >>>* increase link speed
> >>>* add a cfg operation for adjusting the tx power
> >>>* fix bug on p2p, WEP security and chaning virtual interface
> >>>
> >>>Changes in V2: details in each patch files.
> >>>  - 0004-staging-wilc1000-add-sdio-resume-suspend.patch
> >>It's good practise to also add "staging: wilc1000: " prefix to the cover
> >>letter.
> >Yes please, otherwise it misses my filters when I go to apply patches
> >for a subsystem and I have to find it by hand :(
> 
> Oh, I see it helps to filter. I will add prefix also.
> Do I need to resend V3 patch series with adding prefix to cover letter?

No, I'll take it this time...
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH V2 00/26] use unified firmware and add ops in cfg

2016-01-25 Thread glen lee



On 2016년 01월 26일 02:21, Greg KH wrote:

On Mon, Jan 25, 2016 at 03:15:31PM +0200, Kalle Valo wrote:

Glen Lee  writes:


This patch series contains
* support suspend and resume functionality
* use a unified firmware for all mode of operations(station, ap, p2p)
* support Station/AP concurrency
* increase link speed
* add a cfg operation for adjusting the tx power
* fix bug on p2p, WEP security and chaning virtual interface

Changes in V2: details in each patch files.
  - 0004-staging-wilc1000-add-sdio-resume-suspend.patch

It's good practise to also add "staging: wilc1000: " prefix to the cover
letter.

Yes please, otherwise it misses my filters when I go to apply patches
for a subsystem and I have to find it by hand :(


Oh, I see it helps to filter. I will add prefix also.
Do I need to resend V3 patch series with adding prefix to cover letter?

regards,
glen lee.


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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


[PATCH 2/2] Staging: rts5208: Add missing dma_mapping_error

2016-01-25 Thread Shaun Ren
Signed-off-by: Shaun Ren 
---
 drivers/staging/rts5208/rtsx_transport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/rts5208/rtsx_transport.c 
b/drivers/staging/rts5208/rtsx_transport.c
index eff9a4b621..43787df 100644
--- a/drivers/staging/rts5208/rtsx_transport.c
+++ b/drivers/staging/rts5208/rtsx_transport.c
@@ -663,7 +663,7 @@ static int rtsx_transfer_buf(struct rtsx_chip *chip, u8 
card, void *buf,
return -ENXIO;
 
addr = dma_map_single(&rtsx->pci->dev, buf, len, dma_dir);
-   if (!addr)
+   if (dma_mapping_error(&rtsx->pci->dev, addr))
return -ENOMEM;
 
if (card == SD_CARD)
-- 
2.7.0

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


[PATCH 1/2] Staging: rts5208: Cleanup rtsx_transport.c

2016-01-25 Thread Shaun Ren
This patch fixes coding style issues in rtsx_transport.c.

Signed-off-by: Shaun Ren 
---
 drivers/staging/rts5208/rtsx_transport.c | 115 +--
 1 file changed, 65 insertions(+), 50 deletions(-)

diff --git a/drivers/staging/rts5208/rtsx_transport.c 
b/drivers/staging/rts5208/rtsx_transport.c
index f27491e..eff9a4b621 100644
--- a/drivers/staging/rts5208/rtsx_transport.c
+++ b/drivers/staging/rts5208/rtsx_transport.c
@@ -36,25 +36,30 @@
  * For non-scatter-gather transfers, srb->request_buffer points to the
  * transfer buffer itself and srb->request_bufflen is the buffer's length.)
  * Update the *index and *offset variables so that the next copy will
- * pick up from where this one left off. */
+ * pick up from where this one left off.
+ */
 
 unsigned int rtsx_stor_access_xfer_buf(unsigned char *buffer,
-   unsigned int buflen, struct scsi_cmnd *srb, unsigned int *index,
-   unsigned int *offset, enum xfer_buf_dir dir)
+  unsigned int buflen,
+  struct scsi_cmnd *srb,
+  unsigned int *index,
+  unsigned int *offset,
+  enum xfer_buf_dir dir)
 {
unsigned int cnt;
 
/* If not using scatter-gather, just transfer the data directly.
-* Make certain it will fit in the available buffer space. */
+* Make certain it will fit in the available buffer space.
+*/
if (scsi_sg_count(srb) == 0) {
if (*offset >= scsi_bufflen(srb))
return 0;
cnt = min(buflen, scsi_bufflen(srb) - *offset);
if (dir == TO_XFER_BUF)
-   memcpy((unsigned char *) scsi_sglist(srb) + *offset,
-   buffer, cnt);
+   memcpy((unsigned char *)scsi_sglist(srb) + *offset,
+  buffer, cnt);
else
-   memcpy(buffer, (unsigned char *) scsi_sglist(srb) +
+   memcpy(buffer, (unsigned char *)scsi_sglist(srb) +
*offset, cnt);
*offset += cnt;
 
@@ -64,31 +69,31 @@ unsigned int rtsx_stor_access_xfer_buf(unsigned char 
*buffer,
 * in kernel-addressable memory then kmap() will return its address.
 * If the page is not directly accessible -- such as a user buffer
 * located in high memory -- then kmap() will map it to a temporary
-* position in the kernel's virtual address space. */
+* position in the kernel's virtual address space.
+*/
} else {
struct scatterlist *sg =
-   (struct scatterlist *) scsi_sglist(srb)
+   (struct scatterlist *)scsi_sglist(srb)
+ *index;
 
/* This loop handles a single s-g list entry, which may
 * include multiple pages.  Find the initial page structure
 * and the starting offset within the page, and update
-* the *offset and *index values for the next loop. */
+* the *offset and *index values for the next loop.
+*/
cnt = 0;
while (cnt < buflen && *index < scsi_sg_count(srb)) {
struct page *page = sg_page(sg) +
((sg->offset + *offset) >> PAGE_SHIFT);
-   unsigned int poff =
-   (sg->offset + *offset) & (PAGE_SIZE-1);
+   unsigned int poff = (sg->offset + *offset) &
+   (PAGE_SIZE - 1);
unsigned int sglen = sg->length - *offset;
 
if (sglen > buflen - cnt) {
-
/* Transfer ends within this s-g entry */
sglen = buflen - cnt;
*offset += sglen;
} else {
-
/* Transfer continues to next s-g entry */
*offset = 0;
++*index;
@@ -97,7 +102,8 @@ unsigned int rtsx_stor_access_xfer_buf(unsigned char *buffer,
 
/* Transfer the data for all the pages in this
 * s-g entry.  For each page: call kmap(), do the
-* transfer, and call kunmap() immediately after. */
+* transfer, and call kunmap() immediately after.
+*/
while (sglen > 0) {
unsigned int plen = min(sglen, (unsigned int)
PAGE_SIZE - poff);
@@ -123,9 +129,10 @@ unsigned int rtsx_stor_access_xfer_buf(unsigned char 
*buffer,
 }
 
 /* Sto

[PATCH 0/2] Staging: rts5208: Coding style and dma mapping fixes

2016-01-25 Thread Shaun Ren
This set of patches fixes the coding style issues in rtsx_transport.c, and adds
a missing dma_mapping_error check.

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Huang, Ying
Dan Carpenter  writes:

> On Tue, Jan 26, 2016 at 08:32:48AM +0800, Huang, Ying wrote:
>> Dan Carpenter  writes:
>> 
>> > On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
>> >> Apart from the mail which Ying Huang sent to me last week for another 
>> >> error
>> >> (which actually turned out to be this one), i saw the first report by
>> >> Ying Huang on November.
>> >> https://lkml.org/lkml/2015/11/2/93
>> >
>> > Ying, could you CC the subsystem list for these reports?  This one was
>> > CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
>> > they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.
>> 
>> Sure.  But what is the best way to find the subsystem list for a patch?
>> Now we use author, committer, and the xxx-by: and Cc: list in patch to
>> find the recipient.
>
> For this one it's simple.  Get the filename from the git commit and
> use ./scripts/get_maintainer.pl -f $file.  That should work generally,
> the only issue is maybe some patches affect things across subsystems.
>
> Also I don't know if netdev wants these emails?  Do you guys CC them on
> 0day warnings?

Only if it appears in Cc: list of the commit.

Best Regards,
Huang, Ying

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Dan Carpenter
On Tue, Jan 26, 2016 at 08:32:48AM +0800, Huang, Ying wrote:
> Dan Carpenter  writes:
> 
> > On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
> >> Apart from the mail which Ying Huang sent to me last week for another error
> >> (which actually turned out to be this one), i saw the first report by
> >> Ying Huang on November.
> >> https://lkml.org/lkml/2015/11/2/93
> >
> > Ying, could you CC the subsystem list for these reports?  This one was
> > CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
> > they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.
> 
> Sure.  But what is the best way to find the subsystem list for a patch?
> Now we use author, committer, and the xxx-by: and Cc: list in patch to
> find the recipient.

For this one it's simple.  Get the filename from the git commit and
use ./scripts/get_maintainer.pl -f $file.  That should work generally,
the only issue is maybe some patches affect things across subsystems.

Also I don't know if netdev wants these emails?  Do you guys CC them on
0day warnings?

regards,
dan carpenter


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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Huang, Ying
Dan Carpenter  writes:

> On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
>> Apart from the mail which Ying Huang sent to me last week for another error
>> (which actually turned out to be this one), i saw the first report by
>> Ying Huang on November.
>> https://lkml.org/lkml/2015/11/2/93
>
> Ying, could you CC the subsystem list for these reports?  This one was
> CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
> they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.

Sure.  But what is the best way to find the subsystem list for a patch?
Now we use author, committer, and the xxx-by: and Cc: list in patch to
find the recipient.

Best Regards,
Huang, Ying
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 04/22] staging: iio: Fix dependencies for !HAS_IOMEM archs

2016-01-25 Thread Richard Weinberger
Not every arch has io memory.
So, unbreak the build by fixing the dependencies.

Signed-off-by: Richard Weinberger 
---
 drivers/staging/iio/adc/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/staging/iio/adc/Kconfig b/drivers/staging/iio/adc/Kconfig
index 58d4517..b9519be 100644
--- a/drivers/staging/iio/adc/Kconfig
+++ b/drivers/staging/iio/adc/Kconfig
@@ -6,6 +6,7 @@ menu "Analog to digital converters"
 config AD7606
tristate "Analog Devices AD7606 ADC driver"
depends on GPIOLIB || COMPILE_TEST
+   depends on HAS_IOMEM
select IIO_BUFFER
select IIO_TRIGGERED_BUFFER
help
-- 
1.8.4.5

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


Re: [PATCH] staging: nvec: replace led_classdev_register

2016-01-25 Thread Marc Dietrich
Am Donnerstag 21 Januar 2016, 10:23:46 schrieb Gujulan Elango, Hari Prasath:
> From: Hari Prasath Gujulan Elango 
> 
> Replace the led_classdev_register() with the platform managed version
> devm_led_classdev_register() & henceforth remove the redundant
> nvec_paz00_remove() function.
> 
> Signed-off-by: Hari Prasath Gujulan Elango 

Thanks!

Acked-by: Marc Dietrich 

> ---
>  drivers/staging/nvec/nvec_paz00.c | 12 +---
>  1 file changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/drivers/staging/nvec/nvec_paz00.c
> b/drivers/staging/nvec/nvec_paz00.c index 68146bf..cddbfd2 100644
> --- a/drivers/staging/nvec/nvec_paz00.c
> +++ b/drivers/staging/nvec/nvec_paz00.c
> @@ -63,7 +63,7 @@ static int nvec_paz00_probe(struct platform_device *pdev)
> 
>   platform_set_drvdata(pdev, led);
> 
> - ret = led_classdev_register(&pdev->dev, &led->cdev);
> + ret = devm_led_classdev_register(&pdev->dev, &led->cdev);
>   if (ret < 0)
>   return ret;
> 
> @@ -73,18 +73,8 @@ static int nvec_paz00_probe(struct platform_device *pdev)
> return 0;
>  }
> 
> -static int nvec_paz00_remove(struct platform_device *pdev)
> -{
> - struct nvec_led *led = platform_get_drvdata(pdev);
> -
> - led_classdev_unregister(&led->cdev);
> -
> - return 0;
> -}
> -
>  static struct platform_driver nvec_paz00_driver = {
>   .probe  = nvec_paz00_probe,
> - .remove = nvec_paz00_remove,
>   .driver = {
>   .name  = "nvec-paz00",
>   },


signature.asc
Description: This is a digitally signed message part.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Willy Tarreau
On Mon, Jan 25, 2016 at 06:19:44PM +0530, Sudip Mukherjee wrote:
> On Mon, Jan 25, 2016 at 03:40:41PM +0300, Dan Carpenter wrote:
> > Ying, could you CC the subsystem list for these reports?  This one was
> > CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
> > they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.
> 
> I only read the mails whose subject is interesting and something which
> I can understand. I am also still new to understand many of the things.
> I am sure Alan, Greg, Linus, they will read all the mails.

You could be disappointed then. Linus has always said that he doesn't
read it and even pretends he's not even subscribed. Greg probably doesn't
have the time given that he's flooded with the stable@ messages and
virtually every e-mail on the kernel where he's CC'd like this one. As
for Alan I'm not even sure he still manages to catch up with this volume.
I personally stopped 7 years ago after I didn't have this dedicated display
constantly on it anymore, and since then the traffic has doubled. And by
then I was only reading the subjects...

However LKML is great as a searchable public archive.

Willy

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


Re: [dm-devel] [PATCH 22/26] iscsi_tcp: Use ahash

2016-01-25 Thread Mike Christie
On 01/24/2016 07:19 AM, Herbert Xu wrote:
> This patch replaces uses of the long obsolete hash interface with
> ahash.
> 
> Signed-off-by: Herbert Xu 
> ---
> 
>  drivers/scsi/iscsi_tcp.c|   54 
> ++--
>  drivers/scsi/iscsi_tcp.h|4 +--
>  drivers/scsi/libiscsi_tcp.c |   29 +--
>  include/scsi/libiscsi_tcp.h |   13 +-
>  4 files changed, 58 insertions(+), 42 deletions(-)
> 

iSCSI parts look ok.

Reviewed-by: Mike Christie 

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


[PATCH] staging: unisys: visornic: remove useless memset

2016-01-25 Thread Hugo Camboulive
alloc_etherdev() calls alloc_netdev_mqs(), which
already uses kzalloc/vzalloc.

This clears a sparse warning :
drivers/staging/unisys/visornic/visornic_main.c:1366:15: warning: memset with 
byte count of 1460112

Signed-off-by: Hugo Camboulive 
---
 drivers/staging/unisys/visornic/visornic_main.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/staging/unisys/visornic/visornic_main.c 
b/drivers/staging/unisys/visornic/visornic_main.c
index 0519470..d894815 100644
--- a/drivers/staging/unisys/visornic/visornic_main.c
+++ b/drivers/staging/unisys/visornic/visornic_main.c
@@ -1363,7 +1363,6 @@ devdata_initialize(struct visornic_devdata *devdata, 
struct visor_device *dev)
 {
if (!devdata)
return NULL;
-   memset(devdata, '\0', sizeof(struct visornic_devdata));
devdata->dev = dev;
devdata->incarnation_id = get_jiffies_64();
return devdata;
-- 
2.7.0

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


Re: [PATCH net-next] hv_netvsc: Fix book keeping of skb during batching process

2016-01-25 Thread David Miller
From: Haiyang Zhang 
Date: Mon, 25 Jan 2016 09:49:31 -0800

> Since eliminating send_completion_tid from struct hv_netvsc_packet, we
> haven't add proper book keeping for the skb of the batched packet. This
> patch fixes this issue and allows the previous skb is properly freed.
> Otherwise, a panic may happen.
> Thanks to Simon Xiao  for bisecting and analysis.
> 
> Signed-off-by: Haiyang Zhang 
> Reviewed-by: K. Y. Srinivasan 

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


Re: [PATCH net-next] hv_netvsc: use skb_get_hash() instead of a homegrown implementation

2016-01-25 Thread David Miller
From: Vitaly Kuznetsov 
Date: Mon, 25 Jan 2016 16:00:41 +0100

> Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add
> VLAN ID to flow_keys")) introduced a performance regression in netvsc
> driver. Is problem is, however, not the above mentioned commit but the
> fact that netvsc_set_hash() function did some assumptions on the struct
> flow_keys data layout and this is wrong.
> 
> Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change
> will also imply switching to Jenkins hash from the currently used Toeplitz
> but it seems there is no good excuse for Toeplitz to stay.
> 
> Signed-off-by: Vitaly Kuznetsov 

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


Re: Move wlan-ng out of staging?

2016-01-25 Thread Dan Carpenter
On Mon, Jan 25, 2016 at 01:16:56PM +0100, Ksenija Stanojević wrote:
> Hi All,
> 
> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> wlan-ng driver is maybe ready to be moved out of staging. Are there
> any TODO tasks left to do beside checkpatch.pl clean-up?

I happened to look through this code recently.  It's terrible.

regards,
dan carpenter

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


Re: [PATCH 5/5] staging: media: lirc: use new parport device model

2016-01-25 Thread Mauro Carvalho Chehab
Em Mon, 25 Jan 2016 23:03:43 +0530
Sudip Mukherjee  escreveu:

> On Monday 25 January 2016 10:42 PM, Mauro Carvalho Chehab wrote:
> > Em Mon, 25 Jan 2016 22:32:31 +0530
> > Sudip Mukherjee  escreveu:
> >  
> >> On Mon, Jan 25, 2016 at 02:29:06PM -0200, Mauro Carvalho Chehab wrote:  
> >>> Em Fri, 18 Dec 2015 18:35:29 +0530
> >>> Sudip Mukherjee  escreveu:
> >>>  
>  Modify lirc_parallel driver to use the new parallel port device model.  
> >>>
> >>> Did you or someone else tested this patch?  
> >>
> >> Only build tested and tested by inserting and removing the module.
> >> But since the only change is in the way it registers and nothing else
> >> so it should not break.  
> >
> > It would be worth to wait for a while in the hope that someone could
> > test with a real hardware.  
> 
> Sure, we have lots of time for 4.6 merge window. May be if you have the 
> schematic somewhere then I can try to build one. Its a Homebrew one, so 
> maybe I can try.

Take a look at:
http://www.lirc.org/parallel.html

Regards,
Mauro
> 
> regards
> sudip
> 
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 5/5] staging: media: lirc: use new parport device model

2016-01-25 Thread Sudip Mukherjee

On Monday 25 January 2016 10:42 PM, Mauro Carvalho Chehab wrote:

Em Mon, 25 Jan 2016 22:32:31 +0530
Sudip Mukherjee  escreveu:


On Mon, Jan 25, 2016 at 02:29:06PM -0200, Mauro Carvalho Chehab wrote:

Em Fri, 18 Dec 2015 18:35:29 +0530
Sudip Mukherjee  escreveu:


Modify lirc_parallel driver to use the new parallel port device model.


Did you or someone else tested this patch?


Only build tested and tested by inserting and removing the module.
But since the only change is in the way it registers and nothing else
so it should not break.


It would be worth to wait for a while in the hope that someone could
test with a real hardware.


Sure, we have lots of time for 4.6 merge window. May be if you have the 
schematic somewhere then I can try to build one. Its a Homebrew one, so 
maybe I can try.


regards
sudip

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


Re: [PATCH V2 00/26] use unified firmware and add ops in cfg

2016-01-25 Thread Greg KH
On Mon, Jan 25, 2016 at 03:15:31PM +0200, Kalle Valo wrote:
> Glen Lee  writes:
> 
> > This patch series contains  
> > 
> > * support suspend and resume functionality  
> > 
> > * use a unified firmware for all mode of operations(station, ap, p2p)   
> > 
> > * support Station/AP concurrency
> > 
> > * increase link speed   
> > 
> > * add a cfg operation for adjusting the tx power
> > 
> > * fix bug on p2p, WEP security and chaning virtual interface
> >
> > Changes in V2: details in each patch files.
> >  - 0004-staging-wilc1000-add-sdio-resume-suspend.patch
> 
> It's good practise to also add "staging: wilc1000: " prefix to the cover
> letter.

Yes please, otherwise it misses my filters when I go to apply patches
for a subsystem and I have to find it by hand :(
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 5/5] staging: media: lirc: use new parport device model

2016-01-25 Thread Mauro Carvalho Chehab
Em Mon, 25 Jan 2016 22:32:31 +0530
Sudip Mukherjee  escreveu:

> On Mon, Jan 25, 2016 at 02:29:06PM -0200, Mauro Carvalho Chehab wrote:
> > Em Fri, 18 Dec 2015 18:35:29 +0530
> > Sudip Mukherjee  escreveu:
> >   
> > > Modify lirc_parallel driver to use the new parallel port device model.  
> > 
> > Did you or someone else tested this patch?  
> 
> Only build tested and tested by inserting and removing the module.
> But since the only change is in the way it registers and nothing else
> so it should not break.

It would be worth to wait for a while in the hope that someone could
test with a real hardware.

> 
> Only patch 1/5 is applying now. I will send v2 after removing patch 4/5.

I applied the other patches, with some fixes from my side.

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


Re: [PATCH net-next] hv_netvsc: use skb_get_hash() instead of a homegrown implementation

2016-01-25 Thread Eric Dumazet
On Mon, 2016-01-25 at 16:00 +0100, Vitaly Kuznetsov wrote:
> Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add
> VLAN ID to flow_keys")) introduced a performance regression in netvsc
> driver. Is problem is, however, not the above mentioned commit but the
> fact that netvsc_set_hash() function did some assumptions on the struct
> flow_keys data layout and this is wrong.
> 
> Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change
> will also imply switching to Jenkins hash from the currently used Toeplitz
> but it seems there is no good excuse for Toeplitz to stay.
> 
> Signed-off-by: Vitaly Kuznetsov 
> ---

Acked-by: Eric Dumazet 

Thanks !


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


Re: [PATCH 5/5] staging: media: lirc: use new parport device model

2016-01-25 Thread Sudip Mukherjee
On Mon, Jan 25, 2016 at 02:29:06PM -0200, Mauro Carvalho Chehab wrote:
> Em Fri, 18 Dec 2015 18:35:29 +0530
> Sudip Mukherjee  escreveu:
> 
> > Modify lirc_parallel driver to use the new parallel port device model.
> 
> Did you or someone else tested this patch?

Only build tested and tested by inserting and removing the module.
But since the only change is in the way it registers and nothing else
so it should not break.

Only patch 1/5 is applying now. I will send v2 after removing patch 4/5.

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


Re: [PATCH 5/5] staging: media: lirc: use new parport device model

2016-01-25 Thread Mauro Carvalho Chehab
Em Fri, 18 Dec 2015 18:35:29 +0530
Sudip Mukherjee  escreveu:

> Modify lirc_parallel driver to use the new parallel port device model.

Did you or someone else tested this patch?

Regards,
Mauro

> 
> Signed-off-by: Sudip Mukherjee 
> ---
>  drivers/staging/media/lirc/lirc_parallel.c | 100 
> +++--
>  1 file changed, 65 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/staging/media/lirc/lirc_parallel.c 
> b/drivers/staging/media/lirc/lirc_parallel.c
> index 0156114..20ec9b6 100644
> --- a/drivers/staging/media/lirc/lirc_parallel.c
> +++ b/drivers/staging/media/lirc/lirc_parallel.c
> @@ -629,43 +629,26 @@ static void kf(void *handle)
>   */
>  }
>  
> -/*** module initialization and cleanup ***/
> -
> -static int __init lirc_parallel_init(void)
> +static void lirc_parallel_attach(struct parport *port)
>  {
> - int result;
> + struct pardev_cb lirc_parallel_cb;
>  
> - result = platform_driver_register(&lirc_parallel_driver);
> - if (result) {
> - pr_notice("platform_driver_register returned %d\n", result);
> - return result;
> - }
> + if (port->base != io)
> + return;
>  
> - lirc_parallel_dev = platform_device_alloc(LIRC_DRIVER_NAME, 0);
> - if (!lirc_parallel_dev) {
> - result = -ENOMEM;
> - goto exit_driver_unregister;
> - }
> + pport = port;
> + memset(&lirc_parallel_cb, 0, sizeof(lirc_parallel_cb));
> + lirc_parallel_cb.preempt = pf;
> + lirc_parallel_cb.wakeup = kf;
> + lirc_parallel_cb.irq_func = lirc_lirc_irq_handler;
>  
> - result = platform_device_add(lirc_parallel_dev);
> - if (result)
> - goto exit_device_put;
> -
> - pport = parport_find_base(io);
> - if (!pport) {
> - pr_notice("no port at %x found\n", io);
> - result = -ENXIO;
> - goto exit_device_put;
> - }
> - ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
> -pf, kf, lirc_lirc_irq_handler, 0,
> -NULL);
> - parport_put_port(pport);
> + ppdevice = parport_register_dev_model(port, LIRC_DRIVER_NAME,
> +   &lirc_parallel_cb, 0);
>   if (!ppdevice) {
>   pr_notice("parport_register_device() failed\n");
> - result = -ENXIO;
> - goto exit_device_put;
> + return;
>   }
> +
>   if (parport_claim(ppdevice) != 0)
>   goto skip_init;
>   is_claimed = 1;
> @@ -693,18 +676,66 @@ static int __init lirc_parallel_init(void)
>  
>   is_claimed = 0;
>   parport_release(ppdevice);
> - skip_init:
> +
> +skip_init:
> + return;
> +}
> +
> +static void lirc_parallel_detach(struct parport *port)
> +{
> + if (port->base != io)
> + return;
> +
> + parport_unregister_device(ppdevice);
> +}
> +
> +static struct parport_driver lirc_parport_driver = {
> + .name = LIRC_DRIVER_NAME,
> + .match_port = lirc_parallel_attach,
> + .detach = lirc_parallel_detach,
> + .devmodel = true,
> +};
> +
> +/*** module initialization and cleanup ***/
> +
> +static int __init lirc_parallel_init(void)
> +{
> + int result;
> +
> + result = platform_driver_register(&lirc_parallel_driver);
> + if (result) {
> + pr_notice("platform_driver_register returned %d\n", result);
> + return result;
> + }
> +
> + lirc_parallel_dev = platform_device_alloc(LIRC_DRIVER_NAME, 0);
> + if (!lirc_parallel_dev) {
> + result = -ENOMEM;
> + goto exit_driver_unregister;
> + }
> +
> + result = platform_device_add(lirc_parallel_dev);
> + if (result)
> + goto exit_device_put;
> +
> + result = parport_register_driver(&lirc_parport_driver);
> + if (result) {
> + pr_notice("parport_register_driver returned %d\n", result);
> + goto exit_device_put;
> + }
> +
>   driver.dev = &lirc_parallel_dev->dev;
>   driver.minor = lirc_register_driver(&driver);
>   if (driver.minor < 0) {
>   pr_notice("register_chrdev() failed\n");
> - parport_unregister_device(ppdevice);
>   result = -EIO;
> - goto exit_device_put;
> + goto exit_unregister;
>   }
>   pr_info("installed using port 0x%04x irq %d\n", io, irq);
>   return 0;
>  
> +exit_unregister:
> + parport_unregister_driver(&lirc_parport_driver);
>  exit_device_put:
>   platform_device_put(lirc_parallel_dev);
>  exit_driver_unregister:
> @@ -714,9 +745,8 @@ exit_driver_unregister:
>  
>  static void __exit lirc_parallel_exit(void)
>  {
> - parport_unregister_device(ppdevice);
>   lirc_unregister_driver(driver.minor);
> -
> + parport_unregister_driver(&lirc_parport_driver);
>   platform_device_unregister(lirc_parallel_dev);
>   platform_driver_unregister(&lirc_pa

Re: [PATCH 4/5] staging: media: lirc: place operator on previous line

2016-01-25 Thread Mauro Carvalho Chehab
Em Fri, 18 Dec 2015 18:35:28 +0530
Sudip Mukherjee  escreveu:

> checkpatch complains about the logical operator, which should be on the
> previous line.

IMHO, this is a matter of personal taste. I prefer to keep the operator
on the next line, as it makes clearer to see why the logic was broken.

Anyway, this patch doesn't apply.

> 
> Signed-off-by: Sudip Mukherjee 
> ---
>  drivers/staging/media/lirc/lirc_parallel.c | 10 +-
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/staging/media/lirc/lirc_parallel.c 
> b/drivers/staging/media/lirc/lirc_parallel.c
> index e09894d..0156114 100644
> --- a/drivers/staging/media/lirc/lirc_parallel.c
> +++ b/drivers/staging/media/lirc/lirc_parallel.c
> @@ -157,9 +157,9 @@ static unsigned int init_lirc_timer(void)
>   count++;
>   level = newlevel;
>   do_gettimeofday(&now);
> - } while (count < 1000 && (now.tv_sec < tv.tv_sec
> -  || (now.tv_sec == tv.tv_sec
> -  && now.tv_usec < tv.tv_usec)));
> + } while (count < 1000 && (now.tv_sec < tv.tv_sec ||
> +   (now.tv_sec == tv.tv_sec &&
> +now.tv_usec < tv.tv_usec)));
>  
>   timeelapsed = (now.tv_sec + 1 - tv.tv_sec) * 100
>+ (now.tv_usec - tv.tv_usec);
> @@ -279,8 +279,8 @@ static void lirc_lirc_irq_handler(void *blah)
>   level = newlevel;
>  
>   /* giving up */
> - if (signal > timeout
> - || (check_pselecd && (in(1) & LP_PSELECD))) {
> + if (signal > timeout ||
> + (check_pselecd && (in(1) & LP_PSELECD))) {
>   signal = 0;
>   pr_notice("timeout\n");
>   break;
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 16/26] libceph: Use skcipher

2016-01-25 Thread Ilya Dryomov
On Sun, Jan 24, 2016 at 2:18 PM, Herbert Xu  wrote:
> This patch replaces uses of blkcipher with skcipher.
>
> Signed-off-by: Herbert Xu 
> ---
>
>  net/ceph/crypto.c |   97 
> +++---
>  1 file changed, 56 insertions(+), 41 deletions(-)

Could you get rid of ivsize instead of assigning to it - see the
attached diff?

Otherwise:

Acked-by: Ilya Dryomov 

Thanks,

Ilya
diff --git a/net/ceph/crypto.c b/net/ceph/crypto.c
index 42e8649c6e79..db2847ac5f12 100644
--- a/net/ceph/crypto.c
+++ b/net/ceph/crypto.c
@@ -4,7 +4,8 @@
 #include 
 #include 
 #include 
-#include 
+#include 
+#include 
 #include 
 
 #include 
@@ -79,9 +80,9 @@ int ceph_crypto_key_unarmor(struct ceph_crypto_key *key, 
const char *inkey)
return 0;
 }
 
-static struct crypto_blkcipher *ceph_crypto_alloc_cipher(void)
+static struct crypto_skcipher *ceph_crypto_alloc_cipher(void)
 {
-   return crypto_alloc_blkcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC);
+   return crypto_alloc_skcipher("cbc(aes)", 0, CRYPTO_ALG_ASYNC);
 }
 
 static const u8 *aes_iv = (u8 *)CEPH_AES_IV;
@@ -162,11 +163,10 @@ static int ceph_aes_encrypt(const void *key, int key_len,
 {
struct scatterlist sg_in[2], prealloc_sg;
struct sg_table sg_out;
-   struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
-   struct blkcipher_desc desc = { .tfm = tfm, .flags = 0 };
+   struct crypto_skcipher *tfm = ceph_crypto_alloc_cipher();
+   SKCIPHER_REQUEST_ON_STACK(req, tfm);
int ret;
-   void *iv;
-   int ivsize;
+   char iv[AES_BLOCK_SIZE];
size_t zero_padding = (0x10 - (src_len & 0x0f));
char pad[16];
 
@@ -184,10 +184,13 @@ static int ceph_aes_encrypt(const void *key, int key_len,
if (ret)
goto out_tfm;
 
-   crypto_blkcipher_setkey((void *)tfm, key, key_len);
-   iv = crypto_blkcipher_crt(tfm)->iv;
-   ivsize = crypto_blkcipher_ivsize(tfm);
-   memcpy(iv, aes_iv, ivsize);
+   crypto_skcipher_setkey((void *)tfm, key, key_len);
+   memcpy(iv, aes_iv, AES_BLOCK_SIZE);
+
+   skcipher_request_set_tfm(req, tfm);
+   skcipher_request_set_callback(req, 0, NULL, NULL);
+   skcipher_request_set_crypt(req, sg_in, sg_out.sgl,
+  src_len + zero_padding, iv);
 
/*
print_hex_dump(KERN_ERR, "enc key: ", DUMP_PREFIX_NONE, 16, 1,
@@ -197,8 +200,8 @@ static int ceph_aes_encrypt(const void *key, int key_len,
print_hex_dump(KERN_ERR, "enc pad: ", DUMP_PREFIX_NONE, 16, 1,
pad, zero_padding, 1);
*/
-   ret = crypto_blkcipher_encrypt(&desc, sg_out.sgl, sg_in,
-src_len + zero_padding);
+   ret = crypto_skcipher_encrypt(req);
+   skcipher_request_zero(req);
if (ret < 0) {
pr_err("ceph_aes_crypt failed %d\n", ret);
goto out_sg;
@@ -211,7 +214,7 @@ static int ceph_aes_encrypt(const void *key, int key_len,
 out_sg:
teardown_sgtable(&sg_out);
 out_tfm:
-   crypto_free_blkcipher(tfm);
+   crypto_free_skcipher(tfm);
return ret;
 }
 
@@ -222,11 +225,10 @@ static int ceph_aes_encrypt2(const void *key, int 
key_len, void *dst,
 {
struct scatterlist sg_in[3], prealloc_sg;
struct sg_table sg_out;
-   struct crypto_blkcipher *tfm = ceph_crypto_alloc_cipher();
-   struct blkcipher_desc desc = { .tfm = tfm, .flags = 0 };
+   struct crypto_skcipher *tfm = ceph_crypto_alloc_cipher();
+   SKCIPHER_REQUEST_ON_STACK(req, tfm);
int ret;
-   void *iv;
-   int ivsize;
+   char iv[AES_BLOCK_SIZE];
size_t zero_padding = (0x10 - ((src1_len + src2_len) & 0x0f));
char pad[16];
 
@@ -245,10 +247,13 @@ static int ceph_aes_encrypt2(const void *key, int 
key_len, void *dst,
if (ret)
goto out_tfm;
 
-   crypto_blkcipher_setkey((void *)tfm, key, key_len);
-   iv = crypto_blkcipher_crt(tfm)->iv;
-   ivsize = crypto_blkcipher_ivsize(tfm);
-   memcpy(iv, aes_iv, ivsize);
+   crypto_skcipher_setkey((void *)tfm, key, key_len);
+   memcpy(iv, aes_iv, AES_BLOCK_SIZE);
+
+   skcipher_request_set_tfm(req, tfm);
+   skcipher_request_set_callback(req, 0, NULL, NULL);
+   skcipher_request_set_crypt(req, sg_in, sg_out.sgl,
+  src1_len + src2_len + zero_padding, iv);
 
/*
print_hex_dump(KERN_ERR, "enc  key: ", DUMP_PREFIX_NONE, 16, 1,
@@ -260,8 +265,8 @@ static int ceph_aes_encrypt2(const void *key, int key_len, 
void *dst,
print_hex_dump(KERN_ERR, "enc  pad: ", DUMP_PREFIX_NONE, 16, 1,
pad, zero_padding, 1);
*/
-   ret = crypto_blkcipher_encrypt(&desc, sg_out.sgl, sg_in,
-src1_len + src2_len + zero_padding);
+   ret = crypto_skcipher_encrypt(req);
+   skcipher_request_zero(req);
if (ret 

[PATCH net-next] hv_netvsc: Fix book keeping of skb during batching process

2016-01-25 Thread Haiyang Zhang
Since eliminating send_completion_tid from struct hv_netvsc_packet, we
haven't add proper book keeping for the skb of the batched packet. This
patch fixes this issue and allows the previous skb is properly freed.
Otherwise, a panic may happen.
Thanks to Simon Xiao  for bisecting and analysis.

Signed-off-by: Haiyang Zhang 
Reviewed-by: K. Y. Srinivasan 
---
 drivers/net/hyperv/hyperv_net.h |1 +
 drivers/net/hyperv/netvsc.c |   33 ++---
 2 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index f4130af..fcb92c0 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -624,6 +624,7 @@ struct nvsp_message {
 #define RNDIS_PKT_ALIGN_DEFAULT 8
 
 struct multi_send_data {
+   struct sk_buff *skb; /* skb containing the pkt */
struct hv_netvsc_packet *pkt; /* netvsc pkt pending */
u32 count; /* counter of batched packets */
 };
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 059fc52..ec313fc 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -841,6 +841,18 @@ static inline int netvsc_send_pkt(
return ret;
 }
 
+/* Move packet out of multi send data (msd), and clear msd */
+static inline void move_pkt_msd(struct hv_netvsc_packet **msd_send,
+   struct sk_buff **msd_skb,
+   struct multi_send_data *msdp)
+{
+   *msd_skb = msdp->skb;
+   *msd_send = msdp->pkt;
+   msdp->skb = NULL;
+   msdp->pkt = NULL;
+   msdp->count = 0;
+}
+
 int netvsc_send(struct hv_device *device,
struct hv_netvsc_packet *packet,
struct rndis_message *rndis_msg,
@@ -855,6 +867,7 @@ int netvsc_send(struct hv_device *device,
unsigned int section_index = NETVSC_INVALID_INDEX;
struct multi_send_data *msdp;
struct hv_netvsc_packet *msd_send = NULL, *cur_send = NULL;
+   struct sk_buff *msd_skb = NULL;
bool try_batch;
bool xmit_more = (skb != NULL) ? skb->xmit_more : false;
 
@@ -897,10 +910,8 @@ int netvsc_send(struct hv_device *device,
   net_device->send_section_size) {
section_index = netvsc_get_next_send_section(net_device);
if (section_index != NETVSC_INVALID_INDEX) {
-   msd_send = msdp->pkt;
-   msdp->pkt = NULL;
-   msdp->count = 0;
-   msd_len = 0;
+   move_pkt_msd(&msd_send, &msd_skb, msdp);
+   msd_len = 0;
}
}
 
@@ -919,31 +930,31 @@ int netvsc_send(struct hv_device *device,
packet->total_data_buflen += msd_len;
}
 
-   if (msdp->pkt)
-   dev_kfree_skb_any(skb);
+   if (msdp->skb)
+   dev_kfree_skb_any(msdp->skb);
 
if (xmit_more && !packet->cp_partial) {
+   msdp->skb = skb;
msdp->pkt = packet;
msdp->count++;
} else {
cur_send = packet;
+   msdp->skb = NULL;
msdp->pkt = NULL;
msdp->count = 0;
}
} else {
-   msd_send = msdp->pkt;
-   msdp->pkt = NULL;
-   msdp->count = 0;
+   move_pkt_msd(&msd_send, &msd_skb, msdp);
cur_send = packet;
}
 
if (msd_send) {
-   m_ret = netvsc_send_pkt(msd_send, net_device, pb, skb);
+   m_ret = netvsc_send_pkt(msd_send, net_device, NULL, msd_skb);
 
if (m_ret != 0) {
netvsc_free_send_slot(net_device,
  msd_send->send_buf_index);
-   dev_kfree_skb_any(skb);
+   dev_kfree_skb_any(msd_skb);
}
}
 
-- 
1.7.4.1

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


[PATCH] iio: ade7753: avoid uninitialized data

2016-01-25 Thread Arnd Bergmann
The ade7753_spi_read_reg_16() will either successfully read a value
from SPI, or return a failure code without delivering data. However,
the ade7753_stop_device() and ade7753_reset() functions use the returned
data without checking for an error condition first. Gcc detects this
as a possible bug and warns about it:

drivers/staging/iio/meter/ade7753.c: In function 'ade7753_remove':
drivers/staging/iio/meter/ade7753.c:348:6: error: 'val' may be used 
uninitialized in this function [-Werror=maybe-uninitialized]
  val |= BIT(4);  /* AD converters can be turned off */
  ^
drivers/staging/iio/meter/ade7753.c:345:6: note: 'val' was declared here
  u16 val;
  ^
drivers/staging/iio/meter/ade7753.c: In function 'ade7753_probe':
drivers/staging/iio/meter/ade7753.c:222:6: error: 'val' may be used 
uninitialized in this function [-Werror=maybe-uninitialized]

In both cases, we can avoids the warning by checking the return code
before using the data.

Signed-off-by: Arnd Bergmann 
---
 drivers/staging/iio/meter/ade7753.c | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/iio/meter/ade7753.c 
b/drivers/staging/iio/meter/ade7753.c
index f129039bece3..69287108f793 100644
--- a/drivers/staging/iio/meter/ade7753.c
+++ b/drivers/staging/iio/meter/ade7753.c
@@ -217,8 +217,12 @@ error_ret:
 static int ade7753_reset(struct device *dev)
 {
u16 val;
+   int ret;
+
+   ret = ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val);
+   if (ret)
+   return ret;
 
-   ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val);
val |= BIT(6); /* Software Chip Reset */
 
return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val);
@@ -343,8 +347,12 @@ error_ret:
 static int ade7753_stop_device(struct device *dev)
 {
u16 val;
+   int ret;
+
+   ret = ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val);
+   if (ret)
+   return ret;
 
-   ade7753_spi_read_reg_16(dev, ADE7753_MODE, &val);
val |= BIT(4);  /* AD converters can be turned off */
 
return ade7753_spi_write_reg_16(dev, ADE7753_MODE, val);
-- 
2.7.0

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


[PATCH] staging: iio: ad5933: avoid uninitialized variable in error case

2016-01-25 Thread Arnd Bergmann
The ad5933_i2c_read function returns an error code to indicate
whether it could read data or not. However ad5933_work() ignores
this return code and just accesses the data unconditionally,
which gets detected by gcc as a possible bug:

drivers/staging/iio/impedance-analyzer/ad5933.c: In function 'ad5933_work':
drivers/staging/iio/impedance-analyzer/ad5933.c:649:16: warning: 'status' may 
be used uninitialized in this function [-Wmaybe-uninitialized]

This adds minimal error handling so we only evaluate the
data if it was correctly read.

Signed-off-by: Arnd Bergmann 
---
 drivers/staging/iio/impedance-analyzer/ad5933.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/iio/impedance-analyzer/ad5933.c 
b/drivers/staging/iio/impedance-analyzer/ad5933.c
index 10c43dda0f5a..304bb464e478 100644
--- a/drivers/staging/iio/impedance-analyzer/ad5933.c
+++ b/drivers/staging/iio/impedance-analyzer/ad5933.c
@@ -647,6 +647,7 @@ static void ad5933_work(struct work_struct *work)
__be16 buf[2];
int val[2];
unsigned char status;
+   int ret;
 
mutex_lock(&indio_dev->mlock);
if (st->state == AD5933_CTRL_INIT_START_FREQ) {
@@ -658,9 +659,9 @@ static void ad5933_work(struct work_struct *work)
return;
}
 
-   ad5933_i2c_read(st->client, AD5933_REG_STATUS, 1, &status);
+   ret = ad5933_i2c_read(st->client, AD5933_REG_STATUS, 1, &status);
 
-   if (status & AD5933_STAT_DATA_VALID) {
+   if (!ret && (status & AD5933_STAT_DATA_VALID)) {
int scan_count = bitmap_weight(indio_dev->active_scan_mask,
   indio_dev->masklength);
ad5933_i2c_read(st->client,
-- 
2.7.0

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


Re: Move skein out of staging?

2016-01-25 Thread Jason Cooper
Hi Ksenija,

On Mon, Jan 25, 2016 at 01:18:46PM +0100, Ksenija Stanojević wrote:
> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> skein driver is maybe ready to be moved out of staging. Are there
> any TODO tasks left to do beside checkpatch.pl clean-up?

Well, I haven't looked at the code recently.  But, iirc, most of the
major todo items were done.  I'm honestly not too worried about
checkpatch warnings at this point.

My biggest problem is -ETIME.  If someone creates a series to move it
over, I'll be happy to test and Ack.  Otherwise, we'll be waiting a bit.
:-/

I barely have time to keep up with my other maintainer duties, which are
hobby/freetime as well.

There's occasionally been interest in helping out, but it always seems
to peter out prior to the actual move.

thx,

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


[PATCH] staging: sm750fb, fix typos

2016-01-25 Thread Jiri Slaby
From: Matej Vasek 

The code contained typos like "structur", "fointers", etc. Fix that.

No code change, only comments.

Signed-off-by: Matej Vasek 
Cc: Sudip Mukherjee 
Cc: Teddy Wang 
Cc: Greg Kroah-Hartman 
Cc: 
Cc: 
Signed-off-by: Jiri Slaby 
---
 drivers/staging/sm750fb/ddk750_hwi2c.c  | 4 ++--
 drivers/staging/sm750fb/ddk750_mode.c   | 2 +-
 drivers/staging/sm750fb/ddk750_sii164.h | 5 -
 drivers/staging/sm750fb/sm750.c | 2 +-
 drivers/staging/sm750fb/sm750.h | 2 +-
 drivers/staging/sm750fb/sm750_accel.c   | 4 ++--
 drivers/staging/sm750fb/sm750_accel.h   | 2 +-
 drivers/staging/sm750fb/sm750_hw.c  | 2 +-
 8 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/sm750fb/ddk750_hwi2c.c 
b/drivers/staging/sm750fb/ddk750_hwi2c.c
index 7be2111284f4..29140949fde7 100644
--- a/drivers/staging/sm750fb/ddk750_hwi2c.c
+++ b/drivers/staging/sm750fb/ddk750_hwi2c.c
@@ -128,7 +128,7 @@ static unsigned int hw_i2c_write_data(
if (hw_i2c_wait_tx_done() != 0)
break;
 
-   /* Substract length */
+   /* Subtract length */
length -= (count + 1);
 
/* Total byte written */
@@ -195,7 +195,7 @@ static unsigned int hw_i2c_read_data(
for (i = 0; i <= count; i++)
*buf++ = PEEK32(I2C_DATA0 + i);
 
-   /* Substract length by 16 */
+   /* Subtract length by 16 */
length -= (count + 1);
 
/* Number of bytes read. */
diff --git a/drivers/staging/sm750fb/ddk750_mode.c 
b/drivers/staging/sm750fb/ddk750_mode.c
index fa35926680ab..58421898c83d 100644
--- a/drivers/staging/sm750fb/ddk750_mode.c
+++ b/drivers/staging/sm750fb/ddk750_mode.c
@@ -42,7 +42,7 @@ static unsigned long 
displayControlAdjust_SM750LE(mode_parameter_t *pModeParam,
dispControl &= FIELD_CLEAR(CRT_DISPLAY_CTRL, CLK);
 
/* Set bit 29:27 of display control register for the right clock */
-   /* Note that SM750LE only need to supported 7 resoluitons. */
+   /* Note that SM750LE only need to supported 7 resolutions. */
if (x == 800 && y == 600)
dispControl = FIELD_SET(dispControl, CRT_DISPLAY_CTRL, CLK, 
PLL41);
else if (x == 1024 && y == 768)
diff --git a/drivers/staging/sm750fb/ddk750_sii164.h 
b/drivers/staging/sm750fb/ddk750_sii164.h
index f2610c90eeb4..664ad089f753 100644
--- a/drivers/staging/sm750fb/ddk750_sii164.h
+++ b/drivers/staging/sm750fb/ddk750_sii164.h
@@ -39,7 +39,10 @@ unsigned char sii164IsConnected(void);
 unsigned char sii164CheckInterrupt(void);
 void sii164ClearInterrupt(void);
 #endif
-/* below register definination is used for Silicon Image SiI164 DVI controller 
chip */
+/*
+ * below register definition is used for
+ * Silicon Image SiI164 DVI controller chip
+ */
 /*
  * Vendor ID registers
  */
diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index c78421b5b0e7..9dac9ec95428 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -319,7 +319,7 @@ static int lynxfb_ops_set_par(struct fb_info *info)
var = &info->var;
fix = &info->fix;
 
-   /* fix structur is not so FIX ... */
+   /* fix structure is not so FIX ... */
line_length = var->xres_virtual * var->bits_per_pixel / 8;
line_length = ALIGN(line_length, crtc->line_pad);
fix->line_length = line_length;
diff --git a/drivers/staging/sm750fb/sm750.h b/drivers/staging/sm750fb/sm750.h
index b0a93cdc7292..b2089542862e 100644
--- a/drivers/staging/sm750fb/sm750.h
+++ b/drivers/staging/sm750fb/sm750.h
@@ -53,7 +53,7 @@ struct lynx_accel {
/* base virtual address of de data port */
volatile unsigned char __iomem *dpPortBase;
 
-   /* function fointers */
+   /* function pointers */
void (*de_init)(struct lynx_accel *);
 
int (*de_wait)(void);/* see if hardware ready to work */
diff --git a/drivers/staging/sm750fb/sm750_accel.c 
b/drivers/staging/sm750fb/sm750_accel.c
index 43e59725920c..e150680a8cd1 100644
--- a/drivers/staging/sm750fb/sm750_accel.c
+++ b/drivers/staging/sm750fb/sm750_accel.c
@@ -53,7 +53,7 @@ void hw_de_init(struct lynx_accel *accel)
FIELD_CLEAR(DE_STRETCH_FORMAT, ADDRESSING)&
FIELD_CLEAR(DE_STRETCH_FORMAT, SOURCE_HEIGHT);
 
-   /* DE_STRETCH bpp format need be initilized in setMode routine */
+   /* DE_STRETCH bpp format need be initialized in setMode routine */
write_dpr(accel, DE_STRETCH_FORMAT, (read_dpr(accel, DE_STRETCH_FORMAT) 
& clr) | reg);
 
/* disable clipping and transparent */
@@ -305,7 +305,7 @@ int hw_imageblit(struct lynx_accel *accel,
 u32 dx,
 u32 dy,   /* Starting coordinate of destination surface */
 u32 width,
-u32 height,   /* width and height of rectange in pixel value */
+u32 height,   /*

[PATCH net-next] hv_netvsc: use skb_get_hash() instead of a homegrown implementation

2016-01-25 Thread Vitaly Kuznetsov
Recent changes to 'struct flow_keys' (e.g commit d34af823ff40 ("net: Add
VLAN ID to flow_keys")) introduced a performance regression in netvsc
driver. Is problem is, however, not the above mentioned commit but the
fact that netvsc_set_hash() function did some assumptions on the struct
flow_keys data layout and this is wrong.

Get rid of netvsc_set_hash() by switching to skb_get_hash(). This change
will also imply switching to Jenkins hash from the currently used Toeplitz
but it seems there is no good excuse for Toeplitz to stay.

Signed-off-by: Vitaly Kuznetsov 
---
- This patch is an alternative to the previosely sent "hv_netvsc: don't make
 assumptions on struct flow_keys layout" and Haiyang's "hv_netvsc: Use simple
 parser for IPv4 and v6 headers".
---
 drivers/net/hyperv/netvsc_drv.c | 67 ++---
 1 file changed, 3 insertions(+), 64 deletions(-)

diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 1c8db9a..1d3a665 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -196,65 +196,6 @@ static void *init_ppi_data(struct rndis_message *msg, u32 
ppi_size,
return ppi;
 }
 
-union sub_key {
-   u64 k;
-   struct {
-   u8 pad[3];
-   u8 kb;
-   u32 ka;
-   };
-};
-
-/* Toeplitz hash function
- * data: network byte order
- * return: host byte order
- */
-static u32 comp_hash(u8 *key, int klen, void *data, int dlen)
-{
-   union sub_key subk;
-   int k_next = 4;
-   u8 dt;
-   int i, j;
-   u32 ret = 0;
-
-   subk.k = 0;
-   subk.ka = ntohl(*(u32 *)key);
-
-   for (i = 0; i < dlen; i++) {
-   subk.kb = key[k_next];
-   k_next = (k_next + 1) % klen;
-   dt = ((u8 *)data)[i];
-   for (j = 0; j < 8; j++) {
-   if (dt & 0x80)
-   ret ^= subk.ka;
-   dt <<= 1;
-   subk.k <<= 1;
-   }
-   }
-
-   return ret;
-}
-
-static bool netvsc_set_hash(u32 *hash, struct sk_buff *skb)
-{
-   struct flow_keys flow;
-   int data_len;
-
-   if (!skb_flow_dissect_flow_keys(skb, &flow, 0) ||
-   !(flow.basic.n_proto == htons(ETH_P_IP) ||
- flow.basic.n_proto == htons(ETH_P_IPV6)))
-   return false;
-
-   if (flow.basic.ip_proto == IPPROTO_TCP)
-   data_len = 12;
-   else
-   data_len = 8;
-
-   *hash = comp_hash(netvsc_hash_key, HASH_KEYLEN, &flow, data_len);
-
-   return true;
-}
-
 static u16 netvsc_select_queue(struct net_device *ndev, struct sk_buff *skb,
void *accel_priv, select_queue_fallback_t fallback)
 {
@@ -267,11 +208,9 @@ static u16 netvsc_select_queue(struct net_device *ndev, 
struct sk_buff *skb,
if (nvsc_dev == NULL || ndev->real_num_tx_queues <= 1)
return 0;
 
-   if (netvsc_set_hash(&hash, skb)) {
-   q_idx = nvsc_dev->send_table[hash % VRSS_SEND_TAB_SIZE] %
-   ndev->real_num_tx_queues;
-   skb_set_hash(skb, hash, PKT_HASH_TYPE_L3);
-   }
+   hash = skb_get_hash(skb);
+   q_idx = nvsc_dev->send_table[hash % VRSS_SEND_TAB_SIZE] %
+   ndev->real_num_tx_queues;
 
if (!nvsc_dev->chn_table[q_idx])
q_idx = 0;
-- 
2.5.0

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Joe Perches
On Mon, 2016-01-25 at 18:21 +0530, Sudip Mukherjee wrote:
> On Mon, Jan 25, 2016 at 04:47:26AM -0800, Joe Perches wrote:
> > On Mon, 2016-01-25 at 12:16 +0300, Dan Carpenter wrote:
> > > Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
> > > would have missed this bug in review, but it wasn't sent to the list so
> > > I guess we'll never know.
> > 
> > So when isn't usleep_range preferred over udelay?
> 
> inside a spin_lock or in some interrupt routine.

That's what timers-howto says and the checkpatch message
for this refers to it.

This message has been in checkpatch since 2010
commit 1a15a250862fda3fbdf8454cc7131e24de904e7c
Author: Patrick Pannuto 

Maybe the checkpatch message can have "when not atomic"
added or some such.

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Joe Perches
On Mon, 2016-01-25 at 12:16 +0300, Dan Carpenter wrote:
> Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
> would have missed this bug in review, but it wasn't sent to the list so
> I guess we'll never know.

So when isn't usleep_range preferred over udelay?
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: rtlwifi: rtl8821ae: Fix 5G failure when EEPROM is incorrectly encoded

2016-01-25 Thread Kalle Valo

> Recently, it has been reported that D-Link DWA-582 cards, which use an
> RTL8812AE chip are not able to scan for 5G networks. The problems started
> with kernel 4.2, which is the first version that had commit d10101a60372
> ("rtlwifi: rtl8821ae: Fix problem with regulatory information"). With this
> patch, the driver went from setting a default channel plan to using
> the value derived from EEPROM.
> 
> Bug reports at https://bugzilla.kernel.org/show_bug.cgi?id=111031 and
> https://bugzilla.redhat.com/show_bug.cgi?id=1279653 are examples of this
> problem.
> 
> The problem was solved once I learned that the internal country code was
> resulting in a regulatory set with only 2.4 GHz channels. With the RTL8821AE
> chips available to me, the country code was such that both 2.4 and 5 GHz
> channels are allowed. The fix is to allow both bands even when the EEPROM
> is incorrectly encoded.
> 
> Fixes: d10101a60372 ("rtlwifi: rtl8821ae: Fix problem with regulatory 
> information")
> Signed-off-by: Larry Finger 
> Cc: littlesmart...@gmail.com
> Cc: g...@codehaus.org
> Cc: Stable  [v4.2+]

Thanks, applied to wireless-drivers.git.

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


Re: [PATCH V2 00/26] use unified firmware and add ops in cfg

2016-01-25 Thread Kalle Valo
Glen Lee  writes:

> This patch series contains
>   
> * support suspend and resume functionality
>   
> * use a unified firmware for all mode of operations(station, ap, p2p) 
>   
> * support Station/AP concurrency  
>   
> * increase link speed 
>   
> * add a cfg operation for adjusting the tx power  
>   
> * fix bug on p2p, WEP security and chaning virtual interface
>
> Changes in V2: details in each patch files.
>  - 0004-staging-wilc1000-add-sdio-resume-suspend.patch

It's good practise to also add "staging: wilc1000: " prefix to the cover
letter.

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Sudip Mukherjee
On Mon, Jan 25, 2016 at 04:47:26AM -0800, Joe Perches wrote:
> On Mon, 2016-01-25 at 12:16 +0300, Dan Carpenter wrote:
> > Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
> > would have missed this bug in review, but it wasn't sent to the list so
> > I guess we'll never know.
> 
> So when isn't usleep_range preferred over udelay?

inside a spin_lock or in some interrupt routine.

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Sudip Mukherjee
On Mon, Jan 25, 2016 at 03:40:41PM +0300, Dan Carpenter wrote:
> On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
> > Apart from the mail which Ying Huang sent to me last week for another error
> > (which actually turned out to be this one), i saw the first report by
> > Ying Huang on November.
> > https://lkml.org/lkml/2015/11/2/93
> 
> Ying, could you CC the subsystem list for these reports?  This one was
> CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
> they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.

I only read the mails whose subject is interesting and something which
I can understand. I am also still new to understand many of the things.
I am sure Alan, Greg, Linus, they will read all the mails.

I am setting up a filter in my lkml mails so that these reports are
saved in a separate folder and I will keep and track the reports i
understand.

regards
sudip


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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Dan Carpenter
On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
> Apart from the mail which Ying Huang sent to me last week for another error
> (which actually turned out to be this one), i saw the first report by
> Ying Huang on November.
> https://lkml.org/lkml/2015/11/2/93

Ying, could you CC the subsystem list for these reports?  This one was
CC'd to Sirnam, Greg and LKML.  Sirnam is too new to understand what
they mean, Greg is too busy, and only Sudip and Alan Cox read LKML.

regards,
dan carpenter

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


Re: Move wlan-ng out of staging?

2016-01-25 Thread Sudip Mukherjee
On Mon, Jan 25, 2016 at 01:16:56PM +0100, Ksenija Stanojević wrote:
> Hi All,
> 
> I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
> wlan-ng driver is maybe ready to be moved out of staging. Are there
> any TODO tasks left to do beside checkpatch.pl clean-up?

I think the main part is still pending. using in-kernel wireless stack.

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


Move skein out of staging?

2016-01-25 Thread Ksenija Stanojević
Hi Jason,

I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
skein driver is maybe ready to be moved out of staging. Are there
any TODO tasks left to do beside checkpatch.pl clean-up?

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


Move wlan-ng out of staging?

2016-01-25 Thread Ksenija Stanojević
Hi All,

I'm helping Greg do a bit of cleanup in the staging tree, I noticed that
wlan-ng driver is maybe ready to be moved out of staging. Are there
any TODO tasks left to do beside checkpatch.pl clean-up?

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


Re: [PATCH 00/11] sync framework de-staging: part 1 - clean up

2016-01-25 Thread Maarten Lankhorst
Hey,

Op 21-01-16 om 13:49 schreef Gustavo Padovan:
> From: Gustavo Padovan 
>
> Hi,
>
> The following patches are some clean ups on the sync framework before
> we start the actual de-staging. The main changes here are the move of
> SW_SYNC_USER to debugfs. Removal of struct sync_pt in favor of direct
> use of struct fence. And the rename of sync_fence to sync_file, a name
> to better reflect what it is for, a struct that connects struct fence(s)
> to a file.
>
> Please review. Thanks.
>
> Gustavo Padovan (11):
>   staging/android: fix sync framework documentation
>   staging/android: sync: remove interfaces that are not used
>   staging/android: remove not used sync_timeline ops
>   staging/android: create a 'sync' dir for debugfs information
>   staging/android: move SW_SYNC_USER to a debugfs file
>   staging/android: rename sync_fence to sync_file
>   staging/android: rename 'sync_pt' to 'fence' in struct sync_fence_cb
>   staging/android: remove struct sync_pt
>   staging/android: remove unused var from sync_timeline_signal()
>   staging/android: remove pointless sync_timeline_signal at destroy
> phase
>   staging/android: remove sync_fence_create_dma()
>
For whole series:
Reviewed-by: Maarten Lankhorst 

Renaming sync_fence to sync_file makes sense, it should hopefully reduce 
confusion.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Dan Carpenter
On Mon, Jan 25, 2016 at 03:13:21PM +0530, Sudip Mukherjee wrote:
> On Mon, Jan 25, 2016 at 12:16:01PM +0300, Dan Carpenter wrote:
> > Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
> > would have missed this bug in review, but it wasn't sent to the list so
> > I guess we'll never know.
> 
> I can find the v1 of the patch in usb list.
> http://permalink.gmane.org/gmane.linux.usb.general/132712

That's so weird.  Linux-usb is the wrong list.

gmane doesn't let me see the thread.  When I hit search archive it
doesn't find the email.
http://search.gmane.org/?query=Staging%3A+panel&group=gmane.linux.usb.general
Everything is such crap...  :(

Google works though...  The bug was detected in review that same day.
http://www.spinics.net/lists/linux-usb/msg131737.html

Ugh...  What a stinking pile of fail.

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Sudip Mukherjee
On Mon, Jan 25, 2016 at 12:16:01PM +0300, Dan Carpenter wrote:
> Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
> would have missed this bug in review, but it wasn't sent to the list so
> I guess we'll never know.

I can find the v1 of the patch in usb list.
http://permalink.gmane.org/gmane.linux.usb.general/132712

Apart from the mail which Ying Huang sent to me last week for another error
(which actually turned out to be this one), i saw the first report by
Ying Huang on November.
https://lkml.org/lkml/2015/11/2/93

I think i will start keeping a list of errors sent by 0day to check if
they are getting fixed or not.

Or maybe Ying Huang has some mechanism. do you?

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Dan Carpenter
Anyway, I'll update Smatch to warn about these in the future.

regards,
dan carpenter

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


Re: [PATCH] Revert "Staging: panel: usleep_range is preferred over udelay"

2016-01-25 Thread Dan Carpenter
Ugh...  Checkpatch told us to introduce bugs...  :(  We almost certainly
would have missed this bug in review, but it wasn't sent to the list so
I guess we'll never know.

regards,
dan carpenter

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