aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-03[media] drivers: media: i2c: constify v4l2_subdev_* structuresBhumika Goyal4-13/+13
v4l2_subdev_{core/pad/video}_ops structures are stored in the fields of the v4l2_subdev_ops structure which are of type const. Also, v4l2_subdev_ops structure is passed to a function having its argument of type const. As these structures are never modified, so declare them as const. Done using Coccinelle: (One of the scripts used) @r1 disable optional_qualifier @ identifier i; position p; @@ static struct v4l2_subdev_video_ops i@p = {...}; @ok1@ identifier r1.i; position p; struct v4l2_subdev_ops obj; @@ obj.video=&i@p; @bad@ position p!={r1.p,ok1.p}; identifier r1.i; @@ i@p @depends on !bad disable optional_qualifier@ identifier r1.i; @@ +const struct v4l2_subdev_video_ops i; File sizes before: text data bss dec hex filename 7810 736 16 8562 2172 drivers/media/i2c/mt9p031.o 9652 736 24 10412 28ac drivers/media/i2c/mt9v032.o 4613 552 20 5185 1441 drivers/media/i2c/noon010pc30.o 2615 552 8 3175 c67 drivers/media/i2c/s5k6a3.o File sizes after: text data bss dec hex filename 8322 232 16 8570 217a drivers/media/i2c/mt9p031.o 10164 232 24 10420 28b4 drivers/media/i2c/mt9v032.o 4933 232 20 5185 1441 drivers/media/i2c/noon010pc30.o 2935 232 8 3175 c67 drivers/media/i2c/s5k6a3.o Signed-off-by: Bhumika Goyal <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] media: platform: xilinx: xilinx-tpg: constify v4l2_subdev_* structuresBhumika Goyal1-4/+4
v4l2_subdev_{core/pad/video}_ops structures are stored in the fields of the v4l2_subdev_ops structure which are of type const. Also, v4l2_subdev_ops structure is passed to a function having its argument of type const. As these structures are never modified, so declare them as const. Done using Coccinelle: (One of the scripts used) @r1 disable optional_qualifier @ identifier i; position p; @@ static struct v4l2_subdev_video_ops i@p = {...}; @ok1@ identifier r1.i; position p; struct v4l2_subdev_ops obj; @@ obj.video=&i@p; @bad@ position p!={r1.p,ok1.p}; identifier r1.i; @@ i@p @depends on !bad disable optional_qualifier@ identifier r1.i; @@ +const struct v4l2_subdev_video_ops i; File size before: text data bss dec hex filename 6170 2752 144 9066 236a media/platform/xilinx/xilinx-tpg.o File size after: text data bss dec hex filename 6666 2384 8 9058 2362 media/platform/xilinx/xilinx-tpg.o Signed-off-by: Bhumika Goyal <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] bt8xx: Delete unnecessary variable initialisations in ca_send_message()Markus Elfring1-3/+2
Two local variables will be set to an appropriate value a bit later. Thus omit the explicit initialisation at the beginning. Signed-off-by: Markus Elfring <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] bt8xx: Delete two error messages for a failed memory allocationMarkus Elfring1-4/+2
Omit extra messages for a memory allocation failure in two functions. Link: http://events.linuxfoundation.org/sites/events/files/slides/LCJ16-Refactor_Strings-WSang_0.pdf Signed-off-by: Markus Elfring <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] v4l: async: make v4l2 coexist with devicetree nodes in a dt overlayJavi Merino1-1/+2
In asds configured with V4L2_ASYNC_MATCH_OF, the v4l2 subdev can be part of a devicetree overlay, for example: &media_bridge { ... my_port: port@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; ep: endpoint@0 { remote-endpoint = <&camera0>; }; }; }; / { fragment@0 { target = <&i2c0>; __overlay__ { my_cam { compatible = "foo,bar"; port { camera0: endpoint { remote-endpoint = <&my_port>; ... }; }; }; }; }; }; Each time the overlay is applied, its of_node pointer will be different. We are not interested in matching the pointer, what we want to match is that the path is the one we are expecting. Change to use of_node_cmp() so that we continue matching after the overlay has been removed and reapplied. Cc: Mauro Carvalho Chehab <[email protected]> Cc: Sakari Ailus <[email protected]> Signed-off-by: Javi Merino <[email protected]> Reviewed-by: Javier Martinez Canillas <[email protected]> Reviewed-by: Sylwester Nawrocki <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] media: pci: meye: set error code on failuresPan Bian1-0/+1
The value of return variable ret is 0 on some error paths, for example, when pci_resource_start() returns a NULL pointer. 0 means no error in this context, which is contrary to the fact. This patch fixes the bug. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=189011 Signed-off-by: Pan Bian <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] media: platform: sti: return -ENOMEM on errorsPan Bian1-1/+1
Function bdisp_debugfs_create() returns 0 even on errors. So its caller cannot detect the errors. It may be better to return "-ENOMEM" on the exception paths. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188801 Signed-off-by: Pan Bian <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] mtk-vcodec: use V4L2_DEC_CMD_STOP to implement flushTiffany Lin3-50/+117
Also remove the code using size-0 OUTPUT buffer to flush. Signed-off-by: Tiffany Lin <[email protected]> Signed-off-by: Wu-Cheng Li <[email protected]> Reviewed-by: Kuang-che Wu <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] lmedm04: make lme2510_powerup a little smallerRasmus Villemoes1-4/+1
gcc isn't smart enough to realize it can share most of the argument buildup and the actual function call between the two branches, so help it a little. Signed-off-by: Rasmus Villemoes <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] lmedm04: make some string arrays staticRasmus Villemoes1-3/+4
It takes more .text to initialize these on the stack than they occupy in .rodata, so just make them static const. Signed-off-by: Rasmus Villemoes <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] lmedm04: change some static variables to automaticRasmus Villemoes1-1/+1
ibuf and rbuf in lme2510_int_response are always assigned to before they are read, and their addresses do not escape the function, so they have no reason to be static. Signed-off-by: Rasmus Villemoes <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] lmedm04: use %phN for hex dumpRasmus Villemoes1-3/+1
Using the %ph printf extension for hex dumps like this makes the generated code quite a bit smaller. Signed-off-by: Rasmus Villemoes <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] media: Protect enable_source and disable_source handler code pathsShuah Khan4-26/+47
Drivers might try to access and run enable_source and disable_source handlers when the driver that implements these handlers is clearing the handlers during its unregister. Fix the following race condition: process 1 process 2 request video streaming unbind au0828 v4l2 checks if tuner is free ... ... au0828_unregister_media_device() ... ... (doesn't hold graph_mutex) mdev->enable_source = NULL; if (mdev && mdev->enable_source) mdev->disable_source = NULL; mdev->enable_source() (enable_source holds graph_mutex) As shown above enable_source check is done without holding the graph_mutex. If unbind happens to be in progress, au0828 could clear enable_source and disable_source handlers leading to null pointer de-reference. Fix it by protecting enable_source and disable_source set and clear and protecting enable_source and disable_source handler access and the call itself. process 1 process 2 request video streaming unbind au0828 v4l2 checks if tuner is free ... ... au0828_unregister_media_device() ... ... (hold graph_mutex while clearing) mdev->enable_source = NULL; if (mdev) mdev->disable_source = NULL; (hold graph_mutex to check and call enable_source) if (mdev->enable_source) mdev->enable_source() If graph_mutex is held to just heck for handler being null and needs to be released before calling the handler, there will be another window for the handlers to be cleared. Hence, enable_source and disable_source handlers no longer hold the graph_mutex and expect callers to hold it to avoid forcing them release the graph_mutex before calling the handlers. Signed-off-by: Shuah Khan <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] tw686x: silent -Wformat-security warningNicolas Iooss1-1/+1
Using sprintf() with a non-literal string makes some compiler complain when building with -Wformat-security (eg. clang reports "format string is not a string literal (potentially insecure)"). Here sprintf() format parameter is indirectly a literal string so there is no security issue. Nevertheless adding a "%s" format string to silent the warning helps to detect real bugs in the kernel. Signed-off-by: Nicolas Iooss <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] media: ti-vpe: vpdma: fix a timeout loopDan Carpenter1-1/+1
The check assumes that we end on zero but actually we end on -1. Change the post-op to a pre-op so that we do end on zero. Techinically now we only loop 499 times instead of 500 but that's fine. Fixes: dc12b124353b ("[media] media: ti-vpe: vpdma: Add abort channel desc and cleanup APIs") Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Benoit Parrot <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] Staging: media: platform: davinci: - Fix for memory leakShailendra Verma1-0/+2
Fix to avoid possible memory leak if the decoder initialization got failed. Free the allocated memory for file handle object before return in case decoder initialization fails. Signed-off-by: Shailendra Verma <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] b2c2: use IS_REACHABLE() instead of open-coding itArnd Bergmann1-2/+1
The FE_SUPPORTED() macro is basically the same as IS_REACHABLE, except that it causes a warning with gcc-7: common/b2c2/flexcop-fe-tuner.c:30:1: error: this use of "defined" may not be portable [-Werror=expansion-to-defined] common/b2c2/flexcop-fe-tuner.c:30:1: error: this use of "defined" may not be portable [-Werror=expansion-to-defined] common/b2c2/flexcop-fe-tuner.c:30:1: error: this use of "defined" may not be portable [-Werror=expansion-to-defined] Using IS_REACHABLE() to define it avoids the warning. Fixes: 3785bc170f79 ("[media] b2c2: break it into common/pci/usb directories") Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] ivtv: mark DVB "borrowed" ioctls as deprecatedMauro Carvalho Chehab3-18/+46
changeset da8ec560e3b4 ("[media] ivtv: implement new decoder command ioctls") implemented proper support for mpeg audio and video control at V4L2 API. Since then, the usage of the the DVB APIs is deprecated. However, we never actually marked it as deprecated nor provided any way to disable it. Let's do it now. This patch prepares for the removal of this bad usage on a couple of Kernel versions. Fixes: da8ec560e3b4 ("[media] ivtv: implement new decoder command ioctls") Acked-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] MAINTAINERS: remove hd29l2Antti Palosaari6-1242/+0
Remove unused demod driver. Device that used it never went public. If someone later decide to add support for a device using this chipset, it should be easy enough to retrieve it from git history. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] mt2060: implement sleepAntti Palosaari2-2/+31
I saw from ZyDAS ZD1301 sniffs it sets chip sleeping by using REG_MISC_CTRL. That has very huge effect for power management, around 0.9W. Sleep is still disabled for all the old hardware just to avoid possible regression as meaning of register bits are unknown. I tested it also with some other devices and it seems to be working, but I still consider it to be too risky to change it default. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] MAINTAINERS: add zd1301 DVB USB interface driverAntti Palosaari1-0/+9
DVB USB interface driver for ZyDAS ZD1301 chip. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] zd1301: ZyDAS ZD1301 DVB USB interface driverAntti Palosaari4-0/+306
ZyDAS ZD1301 is chip having USB interface and DVB-T demodulator integrated. This driver is for USB interface part. Device has USB ID 0ace:13a1. Used tuner is MT2060. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] MAINTAINERS: add zd1301_demod driverAntti Palosaari1-0/+9
DVB-T demodulator driver for ZyDAS ZD1301 chip. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] zd1301_demod: ZyDAS ZD1301 DVB-T demodulator driverAntti Palosaari4-0/+614
ZyDAS ZD1301 is chip having USB interface and DVB-T demodulator integrated. This driver is for demodulator part. Driver is very reduced, just basic demodulator functionality, no statistics at all. It registers as a platform driver to driver core. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] mt2060: add param to split long i2c writesAntti Palosaari3-4/+21
Add configuration parameter to split long i2c writes as some I2C adapters cannot write 10 bytes used as a one go. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-02-03[media] mt2060: add i2c bindingsAntti Palosaari3-0/+105
Add proper i2c driver model bindings. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] ivtv: use pr_foo() instead of calling printk() directlyMauro Carvalho Chehab3-15/+14
pr_foo() provides a convenient way for printk's, enforcing that they'll all prepend the error message with the driver's name. Use it inside ivtv. Signed-off-by: Mauro Carvalho Chehab <[email protected]> Acked-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] ivtv: prepare to convert to pr_foo()Mauro Carvalho Chehab6-61/+42
Move the pr_fmt() macro to ivtv_driver.h and ensure that it will be the first file to be included on all ivtv files. While here, put the includes inside ivtv-driver.h on alphabetic order. Signed-off-by: Mauro Carvalho Chehab <[email protected]> Acked-by: Hans Verkuil <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] st-hva: hva_dbg_summary() should be staticMauro Carvalho Chehab1-1/+1
As reported by gcc: drivers/media/platform/sti/hva/hva-v4l2.c:227:6: warning: no previous prototype for 'hva_dbg_summary' [-Wmissing-prototypes] void hva_dbg_summary(struct hva_ctx *ctx) ^~~~~~~~~~~~~~~ This function is used only internally, so make it static. Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] st-hva: add debug file systemJean-Christophe Trotin7-3/+594
This patch creates 4 static debugfs entries to dump: - the device-related information ("st-hva/device") - the list of registered encoders ("st-hva/encoders") - the current values of the hva registers ("st-hva/regs") - the information about the last closed instance ("st-hva/last") It also creates dynamically a debugfs entry for each opened instance, ("st-hva/<instance identifier>") to dump: - the information about the frame (format, resolution) - the information about the stream (format, profile, level, resolution) - the control parameters (bitrate mode, framerate, GOP size...) - the potential (system, encoding...) errors - the performance information about the encoding (HW processing duration, average bitrate, average framerate...) Each time a running instance is closed, its context (including the debug information) is saved to feed, on demand, the last closed instance debugfs entry. Signed-off-by: Yannick Fertre <[email protected]> Acked-by: Hans Verkuil <[email protected]> Signed-off-by: Jean-Christophe Trotin <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] st-hva: encoding summary at instance releaseJean-Christophe Trotin5-11/+62
This patch adds a short summary about the encoding operation at each instance closing, for debug purpose (through dev_dbg()): - information about the frame (format, resolution) - information about the stream (format, profile, level, resolution) - number of encoded frames - potential (system, encoding...) errors Signed-off-by: Yannick Fertre <[email protected]> Acked-by: Hans Verkuil <[email protected]> Signed-off-by: Jean-Christophe Trotin <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] ov9650: use msleep() for uncritical long delayNicholas Mc Guire1-2/+2
ulseep_range() uses hrtimers and provides no advantage over msleep() for larger delays. Fix up the 25ms delays here to use msleep() and reduce the load on the hrtimer subsystem. Link: http://lkml.org/lkml/2017/1/11/377 Reviwed-by: Laurent Pinchart <[email protected]> Signed-off-by: Nicholas Mc Guire <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] v4l: mt9v032: Remove unneeded gpiod NULL checkLaurent Pinchart1-2/+1
The gpiod API checks for NULL descriptors, there's no need to duplicate the check in the driver. Signed-off-by: Laurent Pinchart <[email protected]> Acked-by: Sakari Ailus <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31Revert "[media] coda/imx-vdoa: constify structs"Mauro Carvalho Chehab1-2/+2
Despite checkpatch comments, it seems that ARM doesn't like to use constified structs. As reported by kernel build robot: In file included from drivers/media/platform/coda/imx-vdoa.c:22:0: drivers/media/platform/coda/imx-vdoa.c: In function 'vdoa_driver_init': >> include/linux/device.h:1461:20: warning: passing argument 1 of '__platform_driver_register' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return __register(&(__driver) , ##__VA_ARGS__); \ ^ include/linux/platform_device.h:198:29: note: in definition of macro 'platform_driver_register' __platform_driver_register(drv, THIS_MODULE) ^~~ include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^~~~~~~~~~~~~ >> drivers/media/platform/coda/imx-vdoa.c:333:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(vdoa_driver); ^~~~~~~~~~~~~~~~~~~~~~ include/linux/platform_device.h:199:12: note: expected 'struct platform_driver *' but argument is of type 'const struct platform_driver *' extern int __platform_driver_register(struct platform_driver *, ^~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/media/platform/coda/imx-vdoa.c:18:0: drivers/media/platform/coda/imx-vdoa.c: In function 'vdoa_driver_exit': >> include/linux/device.h:1466:15: warning: passing argument 1 of 'platform_driver_unregister' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] __unregister(&(__driver) , ##__VA_ARGS__); \ ^ include/linux/platform_device.h:228:2: note: in expansion of macro 'module_driver' module_driver(__platform_driver, platform_driver_register, \ ^~~~~~~~~~~~~ >> drivers/media/platform/coda/imx-vdoa.c:333:1: note: in expansion of macro 'module_platform_driver' module_platform_driver(vdoa_driver); ^~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/media/platform/coda/imx-vdoa.c:22:0: include/linux/platform_device.h:201:13: note: expected 'struct platform_driver *' but argument is of type 'const struct platform_driver *' extern void platform_driver_unregister(struct platform_driver *); ^~~~~~~~~~~~~~~~~~~~~~~~~~ So, let's just remove it. This reverts commit 126f52b02e6ec6a25f0b32058a91648304922d4a. Reported-by: kbuild test robot <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] v4l: omap4iss: Clean up file handle in open() and release()Shailendra Verma1-0/+2
Both functions initialize the file handle with v4l2_fh_init() and thus need to call clean up with v4l2_fh_exit() as appropriate. Fix it. Signed-off-by: Shailendra Verma <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] v4l: omap3isp: Clean up file handle in open() and release()Shailendra Verma1-0/+2
Both functions initialize the file handle with v4l2_fh_init() and thus need to call clean up with v4l2_fh_exit() as appropriate. Fix it. Signed-off-by: Shailendra Verma <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] uvcvideo: Change result code of debugfs_init to voidJaejoong Kim2-11/+8
The device driver should keep going even if debugfs initialization fails. So, change the return type to void. Signed-off-by: Jaejoong Kim <[email protected]> Reviewed-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] uvcvideo: Fix a wrong macroGuennadi Liakhovetski1-1/+1
Don't mix up UVC_BUF_STATE_* and VB2_BUF_STATE_* codes. Fixes: 6998b6fb4b1c ("[media] uvcvideo: Use videobuf2-vmalloc") Cc: [email protected] Signed-off-by: Guennadi Liakhovetski <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] uvcvideo: (cosmetic) Remove a superfluous assignmentGuennadi Liakhovetski1-2/+1
Remove a superfluous assignment to a local variable at the end of a function. Signed-off-by: Guennadi Liakhovetski <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] uvcvideo: (cosmetic) Add and use an inline functionGuennadi Liakhovetski1-3/+8
Add an inline function to obtain a struct uvc_buffer pointer from a struct vb2_v4l2_buffer one. Signed-off-by: Guennadi Liakhovetski <[email protected]> Signed-off-by: Laurent Pinchart <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9033: estimate cnr from formulaAntti Palosaari2-123/+42
Use formulas for cnr estimates and get rid of old lut-based estimate. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9035: correct demod i2c addressesAntti Palosaari1-8/+9
Chip uses so called 8-bit i2c addresses, but on bus there is of course correct 7-bit addresses with rw bit as lsb - verified with oscilloscope. Lets still use correct addresses in driver. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] it913x: add chip device ids for bindingAntti Palosaari3-10/+14
Driver supports 2 different device versions, AX and BX. Use device IDs to pass chip version information to driver. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9035: register it9133 tuner using platform bindingAntti Palosaari2-64/+62
it913x tuner driver is changed to platform model so we need bind it using platform_device_register_data(). Also remove hacks from I2C adapter where fake tuner driver address (addr >> 1) were used as those are no longer needed. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] it913x: change driver model from i2c to platformAntti Palosaari2-70/+48
That tuner is integrated to demodulator and communicates via demodulators address space. We cannot register both demodulator and tuner having same address to same I2C bus, so better to change it platform driver in order to implement I2C adapter correctly. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9033: return regmap for integrated IT913x tuner driverAntti Palosaari2-0/+7
IT9130 series contains integrated tuner driver, which uses that demodulator address space. Return regmap in order to allow it913x driver communication. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9033: style related and minor changesAntti Palosaari3-172/+184
Fix coding style and other small issues. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9033: use 64-bit div macro where possibleAntti Palosaari2-72/+32
Replace Booth's binary division algo with 64-bit multiply and division. Fix related IF calculations. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9033: convert to regmap apiAntti Palosaari3-277/+145
Use regmap to cover I2C register operations. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
2017-01-31[media] af9035: read and store whole eepromAntti Palosaari2-71/+60
Read eeprom content to chip state and read values there when needed. Also debug dump eeprom content. Signed-off-by: Antti Palosaari <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>