summaryrefslogtreecommitdiff
path: root/drivers/media/usb/au0828/au0828-input.c
AgeCommit message (Collapse)AuthorFilesLines
2016-09-22[media] rc: split nec protocol into its three variantsSean Young1-1/+2
Currently we do not know what variant (bit length) of the nec protocol is used, other than from guessing from the length of the scancode. Now nec will be handled the same way as the sony protocol or the rc6 protocol; one variant per bit length. In the future we might want to expose the rc protocol type to userspace and we don't want to be introducing this world of pain into userspace too. Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-03-31[media] au0828: Fix dev_state handlingMauro Carvalho Chehab1-2/+2
The au0828 dev_state is actually a bit mask. It should not be checking with "==" but, instead, with a logic and. There are some places where it was doing it wrong. Fix that by replacing the dev_state set/clear/test with the bitops. As reviewed by Shuah: "Looks good. Tested running bind/unbind au0828 loop for 1000 times. Didn't see any problems and the v4l2_querycap() problem has been fixed with this patch. After the above test, ran bind/unbind snd_usb_audio 1000 times. Didn't see any problems. Generated media graph and the graph looks good." Cc: stable@vger.kernel.org Reviewed-by: Shuah Khan <shuahkh@osg.samsung.com> Tested-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2014-11-25[media] media/au0828: Fix IR stop, poll to not access device during disconnectShuah Khan1-2/+9
au0828 IR stop and poll routines continue to access device while usb disconnect is in progress. There is small window between device disconnect and usb interface is set to null. This results in filling the log with several of the following error messages. Fix it to detect device disconnect condition and avoid device access. Nov 20 18:58:02 anduin kernel: [ 102.949819] au0828: au0828_usb_disconnect() Nov 20 18:58:02 anduin kernel: [ 102.950046] au0828: send_control_msg() Failed sending control message, error -71. Nov 20 18:58:02 anduin kernel: [ 102.950052] au0828: send_control_msg() Failed sending control message, error -19. Nov 20 18:58:02 anduin kernel: [ 102.950056] au0828: send_control_msg() Failed sending control message, error -19. Nov 20 18:58:02 anduin kernel: [ 102.950061] au0828: send_control_msg() Failed sending control message, error -19. Nov 20 18:58:02 anduin kernel: [ 102.950065] au0828: recv_control_msg() Failed receiving control message, error -19. Nov 20 18:58:02 anduin kernel: [ 102.950069] au0828: recv_control_msg() Failed receiving control message, error -19. Nov 20 18:58:02 anduin kernel: [ 102.950072] au0828: recv_control_msg() Failed receiving control message, error -19. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2014-11-25[media] USB: Deletion of unnecessary checks before three function callsMarkus Elfring1-2/+1
GIT_AUTHOR_DATE=1416486805 The functions pvr2_hdw_destroy(), rc_unregister_device() and vfree() perform also input parameter validation. Thus the test around the call is not needed. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2014-08-22[media] au0828: add pr_info to track au0828 suspend/resume codeMauro Carvalho Chehab1-0/+4
Suspend/resume conditions can be very tricky. Add some info printk's to help tracking what's happening there. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: use pr_foo macrosMauro Carvalho Chehab1-2/+2
Instead of using printk(KERN_foo, use pr_foo() macros. No functional changes. Note: we should do the same for dprintk(), but that would require to remove the dprintk levels. So, for now, let's not touch on it. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: Remove a bad whitespaceMauro Carvalho Chehab1-1/+1
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: handle IR int during suspend/resumeMauro Carvalho Chehab1-0/+6
It doesn't make sense to handle an IR code given before suspending after the device resume. So, turn off IR int while suspending. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: avoid race conditions at RC stopMauro Carvalho Chehab1-2/+2
As the RC kthread can re-enable IR int, we should first cancel the kthread and then disable IR int. While here, remove a temporary debug printk. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828-input: Be sure that IR is enabled at pollingMauro Carvalho Chehab1-2/+10
When the DVB code sets the frontend, it disables the IR INT, probably due to some hardware bug, as there's no code there at au8522 frontend that writes on register 0xe0. Fixing it at au8522 code is hard, as it doesn't know if the IR is enabled or disabled, and just restoring the value of register 0xe0 could cause other nasty effects. So, better to add a hack at au0828-input polling interval to enable int, if disabled. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: add an option to disable IR via modprobe parameterMauro Carvalho Chehab1-1/+5
The IR code increases the power consumption of the device. Allow to disable it via modprobe parameter. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-08-22[media] au0828: no need to sleep at the IR codeMauro Carvalho Chehab1-2/+0
This sleep was doing some debouncing on the original driver. This is not needed on Linux, because the RC core and the input layer already takes care of it. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-07-30[media] au0828: add support for IR on HVR-950QMauro Carvalho Chehab1-0/+386
HVR-950Q uses an I2C remote controller at address 0x47 (7-bits notation). Add support for it. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>