diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-13 18:01:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-13 18:01:08 -0400 |
commit | 886e03bed1af61c9d605a88c14d7d16b7dc55eed (patch) | |
tree | 6b415de607083f6765440116a9d86daf17bf5284 /drivers/staging | |
parent | e66eded8309ebf679d3d3c1f5820d1f2ca332c71 (diff) | |
parent | 564c526a1bed5e42b5cd52cfe1752c4296ef17a6 (diff) |
Merge tag 'staging-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging tree fixes from Greg Kroah-Hartman:
"Here are some drivers/staging and drivers/iio fixes for 3.9 (the two
are still pretty intertwined, hence them coming both from my tree
still.) Nothing major, just a few things that have been reported by
users, all of these have been in linux-next for a while."
* tag 'staging-3.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
staging: comedi: dt9812: use CR_CHAN() for channel number
staging/vt6656: Fix too large integer constant warning on 32-bit
staging: comedi: drivers: usbduxsigma.c: fix DMA buffers on stack
staging: imx/drm: request irq only after adding the crtc
staging: comedi: drivers: usbduxfast.c: fix for DMA buffers on stack
staging: comedi: drivers: usbdux.c: fix DMA buffers on stack
staging: vt6656: Fix oops on resume from suspend.
iio:common:st_sensors fixed all warning messages about uninitialized variables
iio: Fix build error seen if IIO_TRIGGER is defined but IIO_BUFFER is not
iio/imu: inv_mpu6050 depends on IIO_BUFFER
iio:ad5064: Initialize register cache correctly
iio:ad5064: Fix off by one in DAC value range check
iio:ad5064: Fix address of the second channel for ad5065/ad5045/ad5025
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/comedi/drivers/dt9812.c | 16 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/usbdux.c | 31 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/usbduxfast.c | 30 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/usbduxsigma.c | 27 | ||||
-rw-r--r-- | drivers/staging/imx-drm/ipuv3-crtc.c | 23 | ||||
-rw-r--r-- | drivers/staging/vt6656/card.c | 2 | ||||
-rw-r--r-- | drivers/staging/vt6656/main_usb.c | 4 |
7 files changed, 77 insertions, 56 deletions
diff --git a/drivers/staging/comedi/drivers/dt9812.c b/drivers/staging/comedi/drivers/dt9812.c index 192cf088f834..57b451904791 100644 --- a/drivers/staging/comedi/drivers/dt9812.c +++ b/drivers/staging/comedi/drivers/dt9812.c | |||
@@ -947,12 +947,13 @@ static int dt9812_di_rinsn(struct comedi_device *dev, | |||
947 | unsigned int *data) | 947 | unsigned int *data) |
948 | { | 948 | { |
949 | struct comedi_dt9812 *devpriv = dev->private; | 949 | struct comedi_dt9812 *devpriv = dev->private; |
950 | unsigned int channel = CR_CHAN(insn->chanspec); | ||
950 | int n; | 951 | int n; |
951 | u8 bits = 0; | 952 | u8 bits = 0; |
952 | 953 | ||
953 | dt9812_digital_in(devpriv->slot, &bits); | 954 | dt9812_digital_in(devpriv->slot, &bits); |
954 | for (n = 0; n < insn->n; n++) | 955 | for (n = 0; n < insn->n; n++) |
955 | data[n] = ((1 << insn->chanspec) & bits) != 0; | 956 | data[n] = ((1 << channel) & bits) != 0; |
956 | return n; | 957 | return n; |
957 | } | 958 | } |
958 | 959 | ||
@@ -961,12 +962,13 @@ static int dt9812_do_winsn(struct comedi_device *dev, | |||
961 | unsigned int *data) | 962 | unsigned int *data) |
962 | { | 963 | { |
963 | struct comedi_dt9812 *devpriv = dev->private; | 964 | struct comedi_dt9812 *devpriv = dev->private; |
965 | unsigned int channel = CR_CHAN(insn->chanspec); | ||
964 | int n; | 966 | int n; |
965 | u8 bits = 0; | 967 | u8 bits = 0; |
966 | 968 | ||
967 | dt9812_digital_out_shadow(devpriv->slot, &bits); | 969 | dt9812_digital_out_shadow(devpriv->slot, &bits); |
968 | for (n = 0; n < insn->n; n++) { | 970 | for (n = 0; n < insn->n; n++) { |
969 | u8 mask = 1 << insn->chanspec; | 971 | u8 mask = 1 << channel; |
970 | 972 | ||
971 | bits &= ~mask; | 973 | bits &= ~mask; |
972 | if (data[n]) | 974 | if (data[n]) |
@@ -981,13 +983,13 @@ static int dt9812_ai_rinsn(struct comedi_device *dev, | |||
981 | unsigned int *data) | 983 | unsigned int *data) |
982 | { | 984 | { |
983 | struct comedi_dt9812 *devpriv = dev->private; | 985 | struct comedi_dt9812 *devpriv = dev->private; |
986 | unsigned int channel = CR_CHAN(insn->chanspec); | ||
984 | int n; | 987 | int n; |
985 | 988 | ||
986 | for (n = 0; n < insn->n; n++) { | 989 | for (n = 0; n < insn->n; n++) { |
987 | u16 value = 0; | 990 | u16 value = 0; |
988 | 991 | ||
989 | dt9812_analog_in(devpriv->slot, insn->chanspec, &value, | 992 | dt9812_analog_in(devpriv->slot, channel, &value, DT9812_GAIN_1); |
990 | DT9812_GAIN_1); | ||
991 | data[n] = value; | 993 | data[n] = value; |
992 | } | 994 | } |
993 | return n; | 995 | return n; |
@@ -998,12 +1000,13 @@ static int dt9812_ao_rinsn(struct comedi_device *dev, | |||
998 | unsigned int *data) | 1000 | unsigned int *data) |
999 | { | 1001 | { |
1000 | struct comedi_dt9812 *devpriv = dev->private; | 1002 | struct comedi_dt9812 *devpriv = dev->private; |
1003 | unsigned int channel = CR_CHAN(insn->chanspec); | ||
1001 | int n; | 1004 | int n; |
1002 | u16 value; | 1005 | u16 value; |
1003 | 1006 | ||
1004 | for (n = 0; n < insn->n; n++) { | 1007 | for (n = 0; n < insn->n; n++) { |
1005 | value = 0; | 1008 | value = 0; |
1006 | dt9812_analog_out_shadow(devpriv->slot, insn->chanspec, &value); | 1009 | dt9812_analog_out_shadow(devpriv->slot, channel, &value); |
1007 | data[n] = value; | 1010 | data[n] = value; |
1008 | } | 1011 | } |
1009 | return n; | 1012 | return n; |
@@ -1014,10 +1017,11 @@ static int dt9812_ao_winsn(struct comedi_device *dev, | |||
1014 | unsigned int *data) | 1017 | unsigned int *data) |
1015 | { | 1018 | { |
1016 | struct comedi_dt9812 *devpriv = dev->private; | 1019 | struct comedi_dt9812 *devpriv = dev->private; |
1020 | unsigned int channel = CR_CHAN(insn->chanspec); | ||
1017 | int n; | 1021 | int n; |
1018 | 1022 | ||
1019 | for (n = 0; n < insn->n; n++) | 1023 | for (n = 0; n < insn->n; n++) |
1020 | dt9812_analog_out(devpriv->slot, insn->chanspec, data[n]); | 1024 | dt9812_analog_out(devpriv->slot, channel, data[n]); |
1021 | return n; | 1025 | return n; |
1022 | } | 1026 | } |
1023 | 1027 | ||
diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index 1a0062a04456..6aac1f60bc42 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c | |||
@@ -730,10 +730,14 @@ static void usbduxsub_ao_IsocIrq(struct urb *urb) | |||
730 | static int usbduxsub_start(struct usbduxsub *usbduxsub) | 730 | static int usbduxsub_start(struct usbduxsub *usbduxsub) |
731 | { | 731 | { |
732 | int errcode = 0; | 732 | int errcode = 0; |
733 | uint8_t local_transfer_buffer[16]; | 733 | uint8_t *local_transfer_buffer; |
734 | |||
735 | local_transfer_buffer = kmalloc(1, GFP_KERNEL); | ||
736 | if (!local_transfer_buffer) | ||
737 | return -ENOMEM; | ||
734 | 738 | ||
735 | /* 7f92 to zero */ | 739 | /* 7f92 to zero */ |
736 | local_transfer_buffer[0] = 0; | 740 | *local_transfer_buffer = 0; |
737 | errcode = usb_control_msg(usbduxsub->usbdev, | 741 | errcode = usb_control_msg(usbduxsub->usbdev, |
738 | /* create a pipe for a control transfer */ | 742 | /* create a pipe for a control transfer */ |
739 | usb_sndctrlpipe(usbduxsub->usbdev, 0), | 743 | usb_sndctrlpipe(usbduxsub->usbdev, 0), |
@@ -751,22 +755,25 @@ static int usbduxsub_start(struct usbduxsub *usbduxsub) | |||
751 | 1, | 755 | 1, |
752 | /* Timeout */ | 756 | /* Timeout */ |
753 | BULK_TIMEOUT); | 757 | BULK_TIMEOUT); |
754 | if (errcode < 0) { | 758 | if (errcode < 0) |
755 | dev_err(&usbduxsub->interface->dev, | 759 | dev_err(&usbduxsub->interface->dev, |
756 | "comedi_: control msg failed (start)\n"); | 760 | "comedi_: control msg failed (start)\n"); |
757 | return errcode; | 761 | |
758 | } | 762 | kfree(local_transfer_buffer); |
759 | return 0; | 763 | return errcode; |
760 | } | 764 | } |
761 | 765 | ||
762 | static int usbduxsub_stop(struct usbduxsub *usbduxsub) | 766 | static int usbduxsub_stop(struct usbduxsub *usbduxsub) |
763 | { | 767 | { |
764 | int errcode = 0; | 768 | int errcode = 0; |
769 | uint8_t *local_transfer_buffer; | ||
765 | 770 | ||
766 | uint8_t local_transfer_buffer[16]; | 771 | local_transfer_buffer = kmalloc(1, GFP_KERNEL); |
772 | if (!local_transfer_buffer) | ||
773 | return -ENOMEM; | ||
767 | 774 | ||
768 | /* 7f92 to one */ | 775 | /* 7f92 to one */ |
769 | local_transfer_buffer[0] = 1; | 776 | *local_transfer_buffer = 1; |
770 | errcode = usb_control_msg(usbduxsub->usbdev, | 777 | errcode = usb_control_msg(usbduxsub->usbdev, |
771 | usb_sndctrlpipe(usbduxsub->usbdev, 0), | 778 | usb_sndctrlpipe(usbduxsub->usbdev, 0), |
772 | /* bRequest, "Firmware" */ | 779 | /* bRequest, "Firmware" */ |
@@ -781,12 +788,12 @@ static int usbduxsub_stop(struct usbduxsub *usbduxsub) | |||
781 | 1, | 788 | 1, |
782 | /* Timeout */ | 789 | /* Timeout */ |
783 | BULK_TIMEOUT); | 790 | BULK_TIMEOUT); |
784 | if (errcode < 0) { | 791 | if (errcode < 0) |
785 | dev_err(&usbduxsub->interface->dev, | 792 | dev_err(&usbduxsub->interface->dev, |
786 | "comedi_: control msg failed (stop)\n"); | 793 | "comedi_: control msg failed (stop)\n"); |
787 | return errcode; | 794 | |
788 | } | 795 | kfree(local_transfer_buffer); |
789 | return 0; | 796 | return errcode; |
790 | } | 797 | } |
791 | 798 | ||
792 | static int usbduxsub_upload(struct usbduxsub *usbduxsub, | 799 | static int usbduxsub_upload(struct usbduxsub *usbduxsub, |
diff --git a/drivers/staging/comedi/drivers/usbduxfast.c b/drivers/staging/comedi/drivers/usbduxfast.c index 4bf5dd094dc9..1ba0e3df492d 100644 --- a/drivers/staging/comedi/drivers/usbduxfast.c +++ b/drivers/staging/comedi/drivers/usbduxfast.c | |||
@@ -436,10 +436,14 @@ static void usbduxfastsub_ai_Irq(struct urb *urb) | |||
436 | static int usbduxfastsub_start(struct usbduxfastsub_s *udfs) | 436 | static int usbduxfastsub_start(struct usbduxfastsub_s *udfs) |
437 | { | 437 | { |
438 | int ret; | 438 | int ret; |
439 | unsigned char local_transfer_buffer[16]; | 439 | unsigned char *local_transfer_buffer; |
440 | |||
441 | local_transfer_buffer = kmalloc(1, GFP_KERNEL); | ||
442 | if (!local_transfer_buffer) | ||
443 | return -ENOMEM; | ||
440 | 444 | ||
441 | /* 7f92 to zero */ | 445 | /* 7f92 to zero */ |
442 | local_transfer_buffer[0] = 0; | 446 | *local_transfer_buffer = 0; |
443 | /* bRequest, "Firmware" */ | 447 | /* bRequest, "Firmware" */ |
444 | ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), | 448 | ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), |
445 | USBDUXFASTSUB_FIRMWARE, | 449 | USBDUXFASTSUB_FIRMWARE, |
@@ -450,22 +454,25 @@ static int usbduxfastsub_start(struct usbduxfastsub_s *udfs) | |||
450 | local_transfer_buffer, | 454 | local_transfer_buffer, |
451 | 1, /* Length */ | 455 | 1, /* Length */ |
452 | EZTIMEOUT); /* Timeout */ | 456 | EZTIMEOUT); /* Timeout */ |
453 | if (ret < 0) { | 457 | if (ret < 0) |
454 | dev_err(&udfs->interface->dev, | 458 | dev_err(&udfs->interface->dev, |
455 | "control msg failed (start)\n"); | 459 | "control msg failed (start)\n"); |
456 | return ret; | ||
457 | } | ||
458 | 460 | ||
459 | return 0; | 461 | kfree(local_transfer_buffer); |
462 | return ret; | ||
460 | } | 463 | } |
461 | 464 | ||
462 | static int usbduxfastsub_stop(struct usbduxfastsub_s *udfs) | 465 | static int usbduxfastsub_stop(struct usbduxfastsub_s *udfs) |
463 | { | 466 | { |
464 | int ret; | 467 | int ret; |
465 | unsigned char local_transfer_buffer[16]; | 468 | unsigned char *local_transfer_buffer; |
469 | |||
470 | local_transfer_buffer = kmalloc(1, GFP_KERNEL); | ||
471 | if (!local_transfer_buffer) | ||
472 | return -ENOMEM; | ||
466 | 473 | ||
467 | /* 7f92 to one */ | 474 | /* 7f92 to one */ |
468 | local_transfer_buffer[0] = 1; | 475 | *local_transfer_buffer = 1; |
469 | /* bRequest, "Firmware" */ | 476 | /* bRequest, "Firmware" */ |
470 | ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), | 477 | ret = usb_control_msg(udfs->usbdev, usb_sndctrlpipe(udfs->usbdev, 0), |
471 | USBDUXFASTSUB_FIRMWARE, | 478 | USBDUXFASTSUB_FIRMWARE, |
@@ -474,13 +481,12 @@ static int usbduxfastsub_stop(struct usbduxfastsub_s *udfs) | |||
474 | 0x0000, /* Index */ | 481 | 0x0000, /* Index */ |
475 | local_transfer_buffer, 1, /* Length */ | 482 | local_transfer_buffer, 1, /* Length */ |
476 | EZTIMEOUT); /* Timeout */ | 483 | EZTIMEOUT); /* Timeout */ |
477 | if (ret < 0) { | 484 | if (ret < 0) |
478 | dev_err(&udfs->interface->dev, | 485 | dev_err(&udfs->interface->dev, |
479 | "control msg failed (stop)\n"); | 486 | "control msg failed (stop)\n"); |
480 | return ret; | ||
481 | } | ||
482 | 487 | ||
483 | return 0; | 488 | kfree(local_transfer_buffer); |
489 | return ret; | ||
484 | } | 490 | } |
485 | 491 | ||
486 | static int usbduxfastsub_upload(struct usbduxfastsub_s *udfs, | 492 | static int usbduxfastsub_upload(struct usbduxfastsub_s *udfs, |
diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c index d066351a71b2..a728c8fc32a2 100644 --- a/drivers/staging/comedi/drivers/usbduxsigma.c +++ b/drivers/staging/comedi/drivers/usbduxsigma.c | |||
@@ -681,7 +681,11 @@ static void usbduxsub_ao_IsocIrq(struct urb *urb) | |||
681 | static int usbduxsub_start(struct usbduxsub *usbduxsub) | 681 | static int usbduxsub_start(struct usbduxsub *usbduxsub) |
682 | { | 682 | { |
683 | int errcode = 0; | 683 | int errcode = 0; |
684 | uint8_t local_transfer_buffer[16]; | 684 | uint8_t *local_transfer_buffer; |
685 | |||
686 | local_transfer_buffer = kmalloc(16, GFP_KERNEL); | ||
687 | if (!local_transfer_buffer) | ||
688 | return -ENOMEM; | ||
685 | 689 | ||
686 | /* 7f92 to zero */ | 690 | /* 7f92 to zero */ |
687 | local_transfer_buffer[0] = 0; | 691 | local_transfer_buffer[0] = 0; |
@@ -702,19 +706,22 @@ static int usbduxsub_start(struct usbduxsub *usbduxsub) | |||
702 | 1, | 706 | 1, |
703 | /* Timeout */ | 707 | /* Timeout */ |
704 | BULK_TIMEOUT); | 708 | BULK_TIMEOUT); |
705 | if (errcode < 0) { | 709 | if (errcode < 0) |
706 | dev_err(&usbduxsub->interface->dev, | 710 | dev_err(&usbduxsub->interface->dev, |
707 | "comedi_: control msg failed (start)\n"); | 711 | "comedi_: control msg failed (start)\n"); |
708 | return errcode; | 712 | |
709 | } | 713 | kfree(local_transfer_buffer); |
710 | return 0; | 714 | return errcode; |
711 | } | 715 | } |
712 | 716 | ||
713 | static int usbduxsub_stop(struct usbduxsub *usbduxsub) | 717 | static int usbduxsub_stop(struct usbduxsub *usbduxsub) |
714 | { | 718 | { |
715 | int errcode = 0; | 719 | int errcode = 0; |
720 | uint8_t *local_transfer_buffer; | ||
716 | 721 | ||
717 | uint8_t local_transfer_buffer[16]; | 722 | local_transfer_buffer = kmalloc(16, GFP_KERNEL); |
723 | if (!local_transfer_buffer) | ||
724 | return -ENOMEM; | ||
718 | 725 | ||
719 | /* 7f92 to one */ | 726 | /* 7f92 to one */ |
720 | local_transfer_buffer[0] = 1; | 727 | local_transfer_buffer[0] = 1; |
@@ -732,12 +739,12 @@ static int usbduxsub_stop(struct usbduxsub *usbduxsub) | |||
732 | 1, | 739 | 1, |
733 | /* Timeout */ | 740 | /* Timeout */ |
734 | BULK_TIMEOUT); | 741 | BULK_TIMEOUT); |
735 | if (errcode < 0) { | 742 | if (errcode < 0) |
736 | dev_err(&usbduxsub->interface->dev, | 743 | dev_err(&usbduxsub->interface->dev, |
737 | "comedi_: control msg failed (stop)\n"); | 744 | "comedi_: control msg failed (stop)\n"); |
738 | return errcode; | 745 | |
739 | } | 746 | kfree(local_transfer_buffer); |
740 | return 0; | 747 | return errcode; |
741 | } | 748 | } |
742 | 749 | ||
743 | static int usbduxsub_upload(struct usbduxsub *usbduxsub, | 750 | static int usbduxsub_upload(struct usbduxsub *usbduxsub, |
diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c b/drivers/staging/imx-drm/ipuv3-crtc.c index 4b3a019409b5..b028b0d1317b 100644 --- a/drivers/staging/imx-drm/ipuv3-crtc.c +++ b/drivers/staging/imx-drm/ipuv3-crtc.c | |||
@@ -483,17 +483,6 @@ static int ipu_get_resources(struct ipu_crtc *ipu_crtc, | |||
483 | goto err_out; | 483 | goto err_out; |
484 | } | 484 | } |
485 | 485 | ||
486 | ipu_crtc->irq = ipu_idmac_channel_irq(ipu, ipu_crtc->ipu_ch, | ||
487 | IPU_IRQ_EOF); | ||
488 | ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0, | ||
489 | "imx_drm", ipu_crtc); | ||
490 | if (ret < 0) { | ||
491 | dev_err(ipu_crtc->dev, "irq request failed with %d.\n", ret); | ||
492 | goto err_out; | ||
493 | } | ||
494 | |||
495 | disable_irq(ipu_crtc->irq); | ||
496 | |||
497 | return 0; | 486 | return 0; |
498 | err_out: | 487 | err_out: |
499 | ipu_put_resources(ipu_crtc); | 488 | ipu_put_resources(ipu_crtc); |
@@ -504,6 +493,7 @@ err_out: | |||
504 | static int ipu_crtc_init(struct ipu_crtc *ipu_crtc, | 493 | static int ipu_crtc_init(struct ipu_crtc *ipu_crtc, |
505 | struct ipu_client_platformdata *pdata) | 494 | struct ipu_client_platformdata *pdata) |
506 | { | 495 | { |
496 | struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); | ||
507 | int ret; | 497 | int ret; |
508 | 498 | ||
509 | ret = ipu_get_resources(ipu_crtc, pdata); | 499 | ret = ipu_get_resources(ipu_crtc, pdata); |
@@ -522,6 +512,17 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc, | |||
522 | goto err_put_resources; | 512 | goto err_put_resources; |
523 | } | 513 | } |
524 | 514 | ||
515 | ipu_crtc->irq = ipu_idmac_channel_irq(ipu, ipu_crtc->ipu_ch, | ||
516 | IPU_IRQ_EOF); | ||
517 | ret = devm_request_irq(ipu_crtc->dev, ipu_crtc->irq, ipu_irq_handler, 0, | ||
518 | "imx_drm", ipu_crtc); | ||
519 | if (ret < 0) { | ||
520 | dev_err(ipu_crtc->dev, "irq request failed with %d.\n", ret); | ||
521 | goto err_put_resources; | ||
522 | } | ||
523 | |||
524 | disable_irq(ipu_crtc->irq); | ||
525 | |||
525 | return 0; | 526 | return 0; |
526 | 527 | ||
527 | err_put_resources: | 528 | err_put_resources: |
diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c index 22918a106d73..d2479b766450 100644 --- a/drivers/staging/vt6656/card.c +++ b/drivers/staging/vt6656/card.c | |||
@@ -790,7 +790,7 @@ u64 CARDqGetNextTBTT(u64 qwTSF, WORD wBeaconInterval) | |||
790 | if ((~uLowNextTBTT) < uLowRemain) | 790 | if ((~uLowNextTBTT) < uLowRemain) |
791 | qwTSF = ((qwTSF >> 32) + 1) << 32; | 791 | qwTSF = ((qwTSF >> 32) + 1) << 32; |
792 | 792 | ||
793 | qwTSF = (qwTSF & 0xffffffff00000000UL) | | 793 | qwTSF = (qwTSF & 0xffffffff00000000ULL) | |
794 | (u64)(uLowNextTBTT + uLowRemain); | 794 | (u64)(uLowNextTBTT + uLowRemain); |
795 | 795 | ||
796 | return (qwTSF); | 796 | return (qwTSF); |
diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c index d5f53e1a74a2..a5063a6f64d9 100644 --- a/drivers/staging/vt6656/main_usb.c +++ b/drivers/staging/vt6656/main_usb.c | |||
@@ -669,8 +669,6 @@ static int vt6656_suspend(struct usb_interface *intf, pm_message_t message) | |||
669 | if (device->flags & DEVICE_FLAGS_OPENED) | 669 | if (device->flags & DEVICE_FLAGS_OPENED) |
670 | device_close(device->dev); | 670 | device_close(device->dev); |
671 | 671 | ||
672 | usb_put_dev(interface_to_usbdev(intf)); | ||
673 | |||
674 | return 0; | 672 | return 0; |
675 | } | 673 | } |
676 | 674 | ||
@@ -681,8 +679,6 @@ static int vt6656_resume(struct usb_interface *intf) | |||
681 | if (!device || !device->dev) | 679 | if (!device || !device->dev) |
682 | return -ENODEV; | 680 | return -ENODEV; |
683 | 681 | ||
684 | usb_get_dev(interface_to_usbdev(intf)); | ||
685 | |||
686 | if (!(device->flags & DEVICE_FLAGS_OPENED)) | 682 | if (!(device->flags & DEVICE_FLAGS_OPENED)) |
687 | device_open(device->dev); | 683 | device_open(device->dev); |
688 | 684 | ||