Re: [PATCH] ov772x: add support S_CROP operation.
On Fri, 30 Jan 2009, morimoto.kunin...@renesas.com wrote: On my opinion, not only calling set_bus_param but also try_fmt is important for tw9910. Because tw9910 needs INTERLACE mode, and sh_mobile_ceu sets is_interlace flag in try_fmt. Ooh, this is wrong. As we discussed before - try_fmt shall not perform any configuration, it only tries, i.e., tests, whether the specified configuration is possible. This has to be moved to S_FMT. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] tw9910: color format check is added on set_fmt
Signed-off-by: Kuninori Morimoto morimoto.kunin...@renesas.com --- drivers/media/video/tw9910.c | 13 + 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/tw9910.c b/drivers/media/video/tw9910.c index 1a9c6fd..57027c0 100644 --- a/drivers/media/video/tw9910.c +++ b/drivers/media/video/tw9910.c @@ -647,6 +647,19 @@ static int tw9910_set_fmt(struct soc_camera_device *icd, __u32 pixfmt, struct tw9910_priv *priv = container_of(icd, struct tw9910_priv, icd); int ret = -EINVAL; u8 val; + int i; + + /* +* check color format +*/ + for (i = 0 ; i ARRAY_SIZE(tw9910_color_fmt) ; i++) { + if (pixfmt == tw9910_color_fmt[i].fourcc) { + ret = 0; + break; + } + } + if (ret 0) + goto tw9910_set_fmt_error; /* * select suitable norm -- 1.5.6.3 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] sh_mobile_ceu: SOCAM flags are prepared at itself.
Signed-off-by: Kuninori Morimoto morimoto.kunin...@renesas.com Signed-off-by: Magnus Damm d...@igel.co.jp --- drivers/media/video/sh_mobile_ceu_camera.c | 27 +-- include/media/sh_mobile_ceu.h |5 +++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index 9cde91a..07b7b4c 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c @@ -101,6 +101,29 @@ struct sh_mobile_ceu_dev { const struct soc_camera_data_format *camera_fmt; }; +static unsigned long make_bus_param(struct sh_mobile_ceu_dev *pcdev) +{ + unsigned long flags; + + flags = SOCAM_SLAVE | + SOCAM_PCLK_SAMPLE_RISING | + SOCAM_HSYNC_ACTIVE_HIGH | + SOCAM_HSYNC_ACTIVE_LOW | + SOCAM_VSYNC_ACTIVE_HIGH | + SOCAM_VSYNC_ACTIVE_LOW; + + if (pcdev-pdata-flags SH_CEU_FLAG_USE_8BIT_BUS) + flags |= SOCAM_DATAWIDTH_8; + + if (pcdev-pdata-flags SH_CEU_FLAG_USE_16BIT_BUS) + flags |= SOCAM_DATAWIDTH_16; + + if (flags SOCAM_DATAWIDTH_MASK) + return flags; + + return 0; +} + static void ceu_write(struct sh_mobile_ceu_dev *priv, unsigned long reg_offs, u32 data) { @@ -396,7 +419,7 @@ static int sh_mobile_ceu_set_bus_param(struct soc_camera_device *icd, camera_flags = icd-ops-query_bus_param(icd); common_flags = soc_camera_bus_param_compatible(camera_flags, - pcdev-pdata-flags); + make_bus_param(pcdev)); if (!common_flags) return -EINVAL; @@ -517,7 +540,7 @@ static int sh_mobile_ceu_try_bus_param(struct soc_camera_device *icd) camera_flags = icd-ops-query_bus_param(icd); common_flags = soc_camera_bus_param_compatible(camera_flags, - pcdev-pdata-flags); + make_bus_param(pcdev)); if (!common_flags) return -EINVAL; diff --git a/include/media/sh_mobile_ceu.h b/include/media/sh_mobile_ceu.h index b5dbefe..0f3524c 100644 --- a/include/media/sh_mobile_ceu.h +++ b/include/media/sh_mobile_ceu.h @@ -1,10 +1,11 @@ #ifndef __ASM_SH_MOBILE_CEU_H__ #define __ASM_SH_MOBILE_CEU_H__ -#include media/soc_camera.h +#define SH_CEU_FLAG_USE_8BIT_BUS (1 0) /* use 8bit bus width */ +#define SH_CEU_FLAG_USE_16BIT_BUS (1 1) /* use 16bit bus width */ struct sh_mobile_ceu_info { - unsigned long flags; /* SOCAM_... */ + unsigned long flags; }; #endif /* __ASM_SH_MOBILE_CEU_H__ */ -- 1.5.6.3 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/2] soc_camera: Add FLDPOL flags
Signed-off-by: Kuninori Morimoto morimoto.kunin...@renesas.com --- include/media/soc_camera.h |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index 7440d92..2c7ecdf 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h @@ -231,6 +231,8 @@ static inline struct v4l2_queryctrl const *soc_camera_find_qctrl( #define SOCAM_PCLK_SAMPLE_FALLING (1 13) #define SOCAM_DATA_ACTIVE_HIGH (1 14) #define SOCAM_DATA_ACTIVE_LOW (1 15) +#define SOCAM_FLDPOL_ACTIVE_HIGH (1 16) +#define SOCAM_FLDPOL_ACTIVE_LOW(1 17) #define SOCAM_DATAWIDTH_MASK (SOCAM_DATAWIDTH_4 | SOCAM_DATAWIDTH_8 | \ SOCAM_DATAWIDTH_9 | SOCAM_DATAWIDTH_10 | \ -- 1.5.6.3 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/2] sh_mobile_ceu: Add FLDPOL operation
Signed-off-by: Kuninori Morimoto morimoto.kunin...@renesas.com --- drivers/media/video/sh_mobile_ceu_camera.c |7 +++ include/media/sh_mobile_ceu.h |2 ++ 2 files changed, 9 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index 07b7b4c..366e5f5 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c @@ -118,6 +118,12 @@ static unsigned long make_bus_param(struct sh_mobile_ceu_dev *pcdev) if (pcdev-pdata-flags SH_CEU_FLAG_USE_16BIT_BUS) flags |= SOCAM_DATAWIDTH_16; + if (pcdev-pdata-flags SH_CEU_FLAG_USE_FLDPOL_HIGH) + flags |= SOCAM_FLDPOL_ACTIVE_HIGH; + + if (pcdev-pdata-flags SH_CEU_FLAG_USE_FLDPOL_LOW) + flags |= SOCAM_FLDPOL_ACTIVE_LOW; + if (flags SOCAM_DATAWIDTH_MASK) return flags; @@ -474,6 +480,7 @@ static int sh_mobile_ceu_set_bus_param(struct soc_camera_device *icd, icd-current_fmt-fourcc == V4L2_PIX_FMT_NV61) value ^= 0x0100; /* swap U, V to change from NV1x-NVx1 */ + value |= common_flags SOCAM_FLDPOL_ACTIVE_LOW ? 1 16 : 0; value |= common_flags SOCAM_VSYNC_ACTIVE_LOW ? 1 1 : 0; value |= common_flags SOCAM_HSYNC_ACTIVE_LOW ? 1 0 : 0; value |= buswidth == 16 ? 1 12 : 0; diff --git a/include/media/sh_mobile_ceu.h b/include/media/sh_mobile_ceu.h index 0f3524c..1549401 100644 --- a/include/media/sh_mobile_ceu.h +++ b/include/media/sh_mobile_ceu.h @@ -3,6 +3,8 @@ #define SH_CEU_FLAG_USE_8BIT_BUS (1 0) /* use 8bit bus width */ #define SH_CEU_FLAG_USE_16BIT_BUS (1 1) /* use 16bit bus width */ +#define SH_CEU_FLAG_USE_FLDPOL_HIGH(1 2) /* top field if FLD is high */ +#define SH_CEU_FLAG_USE_FLDPOL_LOW (1 3) /* top field if FLD is low */ struct sh_mobile_ceu_info { unsigned long flags; -- 1.5.6.3 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PULL] bttv driver improvements
On Thu, 29 Jan 2009, Devin Heitmueller wrote: On Thu, Jan 29, 2009 at 8:19 PM, Trent Piepho xy...@speakeasy.org wrote: I haven't been able to test this code. It seems my bt848 card doesn't work with my SATA controller and I sort of need the latter to access the harddrive. But I think everything should work. It cuts the the bttv driver to less than half its current size. A number of the changes are for specialized cards that likely have few if any users left. I'm pretty sure some have been broken for quite a while now. Please pull from http://linuxtv.org/hg/~tap/bttv bttv-cards.c | 1323 ++ bttv-driver.c | 90 +-- bttv-i2c.c|6 bttv-if.c | 18 bttv-risc.c |4 bttv-vbi.c|2 bttv.h| 84 ++- bttvp.h | 19 8 files changed, 640 insertions(+), 906 deletions(-) Perhaps I am misunderstanding what you said in this email, but are you submitting a PULL request for 1500 lines of code that have had no testing? Bugs?! In my code? I think not! If you look at the patches you'll see it's not nearly as large as it might seem. -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] ov772x: add support S_CROP operation.
On Fri, 30 Jan 2009, morimoto.kunin...@renesas.com wrote: Dear Guennadi On my opinion, not only calling set_bus_param but also try_fmt is important for tw9910. Because tw9910 needs INTERLACE mode, and sh_mobile_ceu sets is_interlace flag in try_fmt. Ooh, this is wrong. As we discussed before - try_fmt shall not perform any configuration, it only tries, i.e., tests, whether the specified configuration is possible. This has to be moved to S_FMT. Indeed. But set_fmt doesn't called with filed now. Can I fix it ? Hm, ok, I was thinking about this several times, to use struct v4l2_format *fmt instead of __u32 pixfmt as a second parameter to set_fmt in both host and device structs. The disadvantage of this is, that then the information in the third parameter struct v4l2_rect *rect becomes redundant in case of S_FMT... I think, it might be better to finally separate S_FMT and S_CROP, i.e., add new set_crop methods to both host and device structs and switch all drivers to use them... Looks like this would be a cleaner solution than keeping them together and struggling to differentiate between the two... Specific drivers can then decide to implement them using the same function internally, like, e.g., mt9m001 which doesn't use pixfmt at all, or mt9v022, which only uses it to check validity. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[linux-dvb] saa716x: HC82 does not work
hey, i have a avermedia hc82. This one should be working with the saa716x driver, but it isnt. Im trying to get it working on a 64bit Ubuntu System. I installed the latest driver and loaded kernel moduls saa716x_core and saa716x_hybrid, but there still is no /dev/dvb directory. The output of lsmod | grep saa716x is: saa716x_hybrid 19464 0 tda1004x 26244 1 saa716x_hybrid saa716x_core 67892 1 saa716x_hybrid dvb_core 113324 2 saa716x_hybrid,saa716x_core i2c_core 36128 2 tda1004x,saa716x_core so the modules are loaded. Any ideas? Anything I can do to make it work? Thanks, Martin -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Howto obtain sysfs-pathes for DVB devices?
Am Fri, 30 Jan 2009 03:07:07 +0100 schrieb hermann pitton hermann-pit...@arcor.de: Hi, Am Mittwoch, den 28.01.2009, 16:46 +0100 schrieb Carsten Meier: Hello again, now I've managed to obtain syfs-pathes for v4l2-devices. But what about dvb? I haven't found something like bus_info in the dvb-api-docs. (I'm new to it) Any hints for this? Thanks, Carsten I'm also still new on it ... Maybe anything useful here? cat /sys/class/dvb/dvb0.frontend0/uevent MAJOR=212 MINOR=0 PHYSDEVPATH=/devices/pci:00/:00:08.0/:01:07.0 PHYSDEVBUS=pci PHYSDEVDRIVER=saa7134 Cheers, Hermann Hi, IMHO there is no other way (not counting other daemons) than scanning the dvb-device-files, stat() them, and compare major and minor numbers with sysfs-contents. Anyway, I think I'll switch to HAL for that... Cheers, Carsten -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Howto obtain sysfs-pathes for DVB devices?
On Freitag, 30. Januar 2009, Carsten Meier wrote: Am Fri, 30 Jan 2009 03:07:07 +0100 schrieb hermann pitton hermann-pit...@arcor.de: Hi, Am Mittwoch, den 28.01.2009, 16:46 +0100 schrieb Carsten Meier: Hello again, now I've managed to obtain syfs-pathes for v4l2-devices. But what about dvb? I haven't found something like bus_info in the dvb-api-docs. (I'm new to it) Any hints for this? Thanks, Carsten I'm also still new on it ... Maybe anything useful here? cat /sys/class/dvb/dvb0.frontend0/uevent MAJOR=212 MINOR=0 PHYSDEVPATH=/devices/pci:00/:00:08.0/:01:07.0 PHYSDEVBUS=pci PHYSDEVDRIVER=saa7134 Cheers, Hermann Hi, IMHO there is no other way (not counting other daemons) than scanning the dvb-device-files, stat() them, and compare major and minor numbers with sysfs-contents. Anyway, I think I'll switch to HAL for that... One way of asking udev is this: udevadm info -q path -n /dev/dvb/adapter0/frontend0 Regards Matthias -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Howto obtain sysfs-pathes for DVB devices?
Am Fri, 30 Jan 2009 12:51:03 +0100 schrieb Matthias Schwarzott z...@gentoo.org: On Freitag, 30. Januar 2009, Carsten Meier wrote: Am Fri, 30 Jan 2009 03:07:07 +0100 schrieb hermann pitton hermann-pit...@arcor.de: Hi, Am Mittwoch, den 28.01.2009, 16:46 +0100 schrieb Carsten Meier: Hello again, now I've managed to obtain syfs-pathes for v4l2-devices. But what about dvb? I haven't found something like bus_info in the dvb-api-docs. (I'm new to it) Any hints for this? Thanks, Carsten I'm also still new on it ... Maybe anything useful here? cat /sys/class/dvb/dvb0.frontend0/uevent MAJOR=212 MINOR=0 PHYSDEVPATH=/devices/pci:00/:00:08.0/:01:07.0 PHYSDEVBUS=pci PHYSDEVDRIVER=saa7134 Cheers, Hermann Hi, IMHO there is no other way (not counting other daemons) than scanning the dvb-device-files, stat() them, and compare major and minor numbers with sysfs-contents. Anyway, I think I'll switch to HAL for that... One way of asking udev is this: udevadm info -q path -n /dev/dvb/adapter0/frontend0 Regards Matthias Ok, then I think I'm gonna use it... :) It's much more simple than struggling through dbus-/hal-libs and the various unfinished c++ bindings, although I normally don't like to start system-tools from c++. Or is there any c-api for it? I haven't found one. Thanks, Carsten -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Howto obtain sysfs-pathes for DVB devices?
On Freitag, 30. Januar 2009, Carsten Meier wrote: Am Fri, 30 Jan 2009 12:51:03 +0100 One way of asking udev is this: udevadm info -q path -n /dev/dvb/adapter0/frontend0 Regards Matthias Ok, then I think I'm gonna use it... :) It's much more simple than struggling through dbus-/hal-libs and the various unfinished c++ bindings, although I normally don't like to start system-tools from c++. Or is there any c-api for it? I haven't found one. There is a in development version of libudev contained since udev-127. But its API is not yet stable I think. Regards Matthias -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PULL] http://mercurial.intuxication.org/hg/v4l-dvb-commits
Mauro, Please pull from http://mercurial.intuxication.org/hg/v4l-dvb-commits/v4l-dvb-commits for the following changeset: 01/01: Bug fix: Restore HVR-4000 tuning. http://mercurial.intuxication.org/hg/v4l-dvb-commits/v4l-dvb-commits?cmd=changeset;node=0d95f94028cb cx24116.c |7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) Thanks, Igor -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PULL] bttv driver improvements
On Fri, 30 Jan 2009 08:27:20 -0500 Devin Heitmueller devin.heitmuel...@gmail.com wrote: On Fri, Jan 30, 2009 at 4:20 AM, Trent Piepho xy...@speakeasy.org wrote: On Thu, 29 Jan 2009, Devin Heitmueller wrote: On Thu, Jan 29, 2009 at 8:19 PM, Trent Piepho xy...@speakeasy.org wrote: I haven't been able to test this code. It seems my bt848 card doesn't work with my SATA controller and I sort of need the latter to access the harddrive. But I think everything should work. It cuts the the bttv driver to less than half its current size. A number of the changes are for specialized cards that likely have few if any users left. I'm pretty sure some have been broken for quite a while now. Please pull from http://linuxtv.org/hg/~tap/bttv bttv-cards.c | 1323 ++ bttv-driver.c | 90 +-- bttv-i2c.c|6 bttv-if.c | 18 bttv-risc.c |4 bttv-vbi.c|2 bttv.h| 84 ++- bttvp.h | 19 8 files changed, 640 insertions(+), 906 deletions(-) Perhaps I am misunderstanding what you said in this email, but are you submitting a PULL request for 1500 lines of code that have had no testing? Bugs?! In my code? I think not! If you look at the patches you'll see it's not nearly as large as it might seem. When I make a five line code change for a given chipset, I won't submit it unless it's tested against at least three cards. In this case, it's 1500 lines, and you have tested it on zero cards. You make one typo or screw up one pointer and we'll have potentially hundreds of people reporting kernel panics. I don't care how safe you think the change is. If it isn't tested it under at least one card, then it cannot be that important a change as to incur the risk of regressions. This isn't a one-line change to a comment. I'm just one developer and my opinion doesn't count for much, but checking in a large body of code blindly is a colossally stupid idea. Devin, I have one bttv hardware installed here available for testing. This one has 4 bttv chips and uses 2 different board entries. I intend to test the changeset before applying. Anyway, it is good if more people could test it, especially with the exotic hardware. Unfortunately, my other bttv hardwares are on another city, so I can't test on them. Cheers, Mauro -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Support for Technisat SkyStar USB 2 HD CI (take 2)
Hi Everybody, i realized that i did not give enough Information in the last mail. I added a page on the v4l-wiki about the above device, its here: http://linuxtv.org/wiki/index.php/Technisat_SkyStar_USB_2_HD_CI There you can find the usb-id. What should i do to get more information of the device (eg chipset/tuner used, ...)?. Thank you Jan Kreuzer -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [linux-dvb] S2API (pctv452e) artefacts in video stream
Hi Manu, Hello together, in the meantime I was able to test the device on windows. It works without any problems for over an hour. Also I tried again different SAT- und USB-cables. Also with all other USB-devices dettached - the error still comes. First I'm getting TS continuity errors and after a while (let's say 15 minutest) ... Jan 30 14:42:20 vdr dvb-usb: bulk message failed: -110 (8/0) Jan 30 14:42:20 vdr ttusb2: there might have been an error during control message transfer. (rlen = 4, was 0) Jan 30 14:42:20 vdr ttusb2: i2c transfer failed. Jan 30 14:42:22 vdr dvb-usb: bulk message failed: -110 (9/0) Jan 30 14:42:22 vdr ttusb2: there might have been an error during control message transfer. (rlen = 3, was 0) Jan 30 14:42:22 vdr ttusb2: i2c transfer failed. Jan 30 14:42:24 vdr dvb-usb: bulk message failed: -110 (8/0) Jan 30 14:42:24 vdr ttusb2: there might have been an error during control message transfer. (rlen = 4, was 0) Thanks for your help! darav -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PULL] bttv driver improvements
On Fri, Jan 30, 2009 at 8:58 AM, Mauro Carvalho Chehab Devin, I have one bttv hardware installed here available for testing. This one has 4 bttv chips and uses 2 different board entries. I intend to test the changeset before applying. Anyway, it is good if more people could test it, especially with the exotic hardware. Unfortunately, my other bttv hardwares are on another city, so I can't test on them. Cheers, Mauro Great. Thanks, Mauro. Devin -- Devin J. Heitmueller http://www.devinheitmueller.com AIM: devinheitmueller -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[OMAPZOOM][PATCH v2 0/6] Add support for Sony imx046 sensor.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 0/6] Add support for Sony imx046 sensor. This set of patches adds support for the Sony IMX046 camera. Submitting version 2 with comments from: - Vaibhav Hiremath - Hans Verkuil Driver supports: - Sensor output format RAW10 (YUV conversion through CCDC) - Output resolution - 3280x2464 @ 7.5fps (8MP) - 3280x616 - 820x616 @ 30fps - Frame rate control - Exposure Gain control - Platforms: SDP3430 Zoom2 thanks dom -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[OMAPZOOM][PATCH v2 2/6] Increase isp workaround buffer size for 8MP sensor.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 2/6] Increase isp workaround buffer size for 8MP sensor. A temporary buffer is created to hold the image while it is written by Previewer module and then read by Resizer module. This is called LSC Workaround. To take into account the Sony IMX046 8MP sensor that buffer needs to be increased in size. Changed the #defines to be upper case. Patch also fixes the initialization of a couple of CCDC values. Signed-off-by: Dominic Curran dcur...@ti.com --- drivers/media/video/isp/isp.c | 10 +- drivers/media/video/isp/isp.h |7 +-- drivers/media/video/isp/ispccdc.c |2 ++ drivers/media/video/isp/ispmmu.h |3 +++ 4 files changed, 15 insertions(+), 7 deletions(-) Index: omapzoom04/drivers/media/video/isp/isp.c === --- omapzoom04.orig/drivers/media/video/isp/isp.c +++ omapzoom04/drivers/media/video/isp/isp.c @@ -1172,20 +1172,20 @@ void omapisp_unset_callback() **/ u32 isp_buf_allocation(void) { - buff_addr = (void *) vmalloc(buffer_size); + buff_addr = (void *) vmalloc(ISP_BUFFER_MAX_SIZE); if (!buff_addr) { printk(KERN_ERR Cannot allocate memory ); return -ENOMEM; } - sglist_alloc = videobuf_vmalloc_to_sg(buff_addr, no_of_pages); + sglist_alloc = videobuf_vmalloc_to_sg(buff_addr, ISP_BUFFER_MAX_PAGES); if (!sglist_alloc) { printk(KERN_ERR videobuf_vmalloc_to_sg error); return -ENOMEM; } - num_sc = dma_map_sg(NULL, sglist_alloc, no_of_pages, 1); - buff_addr_mapped = ispmmu_map_sg(sglist_alloc, no_of_pages); + num_sc = dma_map_sg(NULL, sglist_alloc, ISP_BUFFER_MAX_PAGES, 1); + buff_addr_mapped = ispmmu_map_sg(sglist_alloc, ISP_BUFFER_MAX_PAGES); if (!buff_addr_mapped) { printk(KERN_ERR ispmmu_map_sg mapping failed ); return -ENOMEM; @@ -1217,7 +1217,7 @@ void isp_buf_free(void) { if (alloc_done == 1) { ispmmu_unmap(buff_addr_mapped); - dma_unmap_sg(NULL, sglist_alloc, no_of_pages, 1); + dma_unmap_sg(NULL, sglist_alloc, ISP_BUFFER_MAX_PAGES, 1); kfree(sglist_alloc); vfree(buff_addr); alloc_done = 0; Index: omapzoom04/drivers/media/video/isp/isp.h === --- omapzoom04.orig/drivers/media/video/isp/isp.h +++ omapzoom04/drivers/media/video/isp/isp.h @@ -26,6 +26,9 @@ #define OMAP_ISP_TOP_H #include media/videobuf-dma-sg.h #include linux/videodev2.h + +#include ispmmu.h + #define OMAP_ISP_CCDC (1 0) #define OMAP_ISP_PREVIEW (1 1) #define OMAP_ISP_RESIZER (1 2) @@ -69,8 +72,8 @@ #define NUM_ISP_CAPTURE_FORMATS(sizeof(isp_formats) /\ sizeof(isp_formats[0])) #define ISP_WORKAROUND 1 -#define buffer_size (1024 * 1024 * 10) -#define no_of_pages (buffer_size / (4 * 1024)) +#define ISP_BUFFER_MAX_SIZE (1024 * 1024 * 16) +#define ISP_BUFFER_MAX_PAGES (ISP_BUFFER_MAX_SIZE / ISPMMU_PAGE_SIZE) typedef int (*isp_vbq_callback_ptr) (struct videobuf_buffer *vb); typedef void (*isp_callback_t) (unsigned long status, Index: omapzoom04/drivers/media/video/isp/ispccdc.c === --- omapzoom04.orig/drivers/media/video/isp/ispccdc.c +++ omapzoom04/drivers/media/video/isp/ispccdc.c @@ -1265,6 +1265,8 @@ int ispccdc_config_size(u32 input_w, u32 } if (ispccdc_obj.ccdc_outfmt == CCDC_OTHERS_VP) { + ispccdc_obj.ccdcin_woffset = 0; + ispccdc_obj.ccdcin_hoffset = 0; omap_writel((ispccdc_obj.ccdcin_woffset ISPCCDC_FMT_HORZ_FMTSPH_SHIFT) | (ispccdc_obj.ccdcin_w Index: omapzoom04/drivers/media/video/isp/ispmmu.h === --- omapzoom04.orig/drivers/media/video/isp/ispmmu.h +++ omapzoom04/drivers/media/video/isp/ispmmu.h @@ -59,6 +59,9 @@ /* Number of entries per L2 Page table */ #define ISPMMU_L2D_ENTRIES_NR 256 +/* Size of MMU page in bytes */ +#define ISPMMU_PAGE_SIZE 4096 + /* * Statically allocate 16KB for L2 page tables. 16KB can be used for * up to 16 L2 page tables which cover up to 16MB space. We use an array of 16 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[OMAPZOOM][PATCH v2 3/6] IMX046: Add support for Sony imx046 sensor.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 3/6] IMX046: Add support for Sony imx046 sensor. This patch adds the driver files for the Sony IMX046 8MP camera sensor. Driver sets up the sensor to send frame data via the MIPI CSI2 i/f. Sensor is setup to output the following base sizes: - 3280 x 2464 (8MP) - 3280 x 616 (2MP) - 820 x 616 Sensor's output image format is Bayer10 (GrR/BGb). Driver has V4L2 controls for: - Exposure - Analog Gain Signed-off-by: Greg Hofer greg.ho...@hp.com Signed-off-by: Dominic Curran dcur...@ti.com --- drivers/media/video/Kconfig |7 drivers/media/video/Makefile |1 drivers/media/video/imx046.c | 1632 +++ drivers/media/video/imx046.h | 326 4 files changed, 1966 insertions(+) create mode 100644 drivers/media/video/imx046.c create mode 100644 drivers/media/video/imx046.h Index: omapzoom04/drivers/media/video/Kconfig === --- omapzoom04.orig/drivers/media/video/Kconfig +++ omapzoom04/drivers/media/video/Kconfig @@ -334,6 +334,13 @@ config VIDEO_OV3640_CSI2 This enables the use of the CSI2 serial bus for the ov3640 camera. +config VIDEO_IMX046 + tristate Sony IMX046 sensor driver (8MP) + depends on I2C VIDEO_V4L2 + ---help--- + This is a Video4Linux2 sensor-level driver for the Sony + IMX046 camera. + config VIDEO_SAA7110 tristate Philips SAA7110 video decoder depends on VIDEO_V4L1 I2C Index: omapzoom04/drivers/media/video/Makefile === --- omapzoom04.orig/drivers/media/video/Makefile +++ omapzoom04/drivers/media/video/Makefile @@ -115,6 +115,7 @@ obj-$(CONFIG_VIDEO_OV9640) += ov9640.o obj-$(CONFIG_VIDEO_MT9P012)+= mt9p012.o obj-$(CONFIG_VIDEO_DW9710) += dw9710.o obj-$(CONFIG_VIDEO_OV3640) += ov3640.o +obj-$(CONFIG_VIDEO_IMX046) += imx046.o obj-$(CONFIG_USB_DABUSB)+= dabusb.o obj-$(CONFIG_USB_OV511) += ov511.o Index: omapzoom04/drivers/media/video/imx046.c === --- /dev/null +++ omapzoom04/drivers/media/video/imx046.c @@ -0,0 +1,1632 @@ +/* + * drivers/media/video/imx046.c + * + * Sony imx046 sensor driver + * + * + * Copyright (C) 2008 Hewlett Packard + * + * Leverage mt9p012.c + * + * This file is licensed under the terms of the GNU General Public License + * version 2. This program is licensed as is without any warranty of any + * kind, whether express or implied. + */ + +#include linux/i2c.h +#include linux/delay.h + +#include media/v4l2-int-device.h + +#include imx046.h +#include omap34xxcam.h +#include isp/isp.h +#include isp/ispcsi2.h + + +#define IMX046_DRIVER_NAME imx046 +#define IMX046_MOD_NAME IMX046: + +#define I2C_M_WR 0 + + +/* from IMX046ES_registerSetting_I2C_MIPI_2lane_def_080925.xls */ +const static struct imx046_reg initial_list[] = { + {IMX046_REG_IMAGE_ORIENTATION, 0x03, I2C_8BIT}, + {IMX046_REG_COARSE_INT_TIME, 0x0120, I2C_16BIT}, + {IMX046_REG_ANALOG_GAIN_GLOBAL, 0x80, I2C_16BIT}, + {0x300A, 0x80, I2C_8BIT}, + {IMX046_REG_Y_OPBADDR_START_DI, 0x08, I2C_8BIT}, + {IMX046_REG_Y_OPBADDR_END_DI, 0x37, I2C_8BIT}, + {IMX046_REG_CHCODE_OUTCHSINGLE, 0x60, I2C_8BIT}, + {IMX046_REG_OUTIF, 0x01, I2C_8BIT}, + {IMX046_REG_RGPOF_RGPOFV2, 0x28, I2C_8BIT}, + {IMX046_REG_CPCKAUTOEN, 0x00, I2C_8BIT}, + {IMX046_REG_RGCPVFB, 0x60, I2C_8BIT}, + {IMX046_REG_RGAZPDRV, 0x24, I2C_8BIT}, + {IMX046_REG_RGAZTEST, 0x34, I2C_8BIT}, + {IMX046_REG_RGVSUNLV, 0x3B, I2C_8BIT}, + {IMX046_REG_CLPOWER, 0x30, I2C_8BIT}, + {IMX046_REG_CLPOWERSP, 0x00, I2C_8BIT}, + {IMX046_REG_ACLDIRV_TVADDCLP, 0x00, I2C_8BIT}, + {IMX046_REG_OPB_CTRL, 0x0080, I2C_16BIT}, + {0x30AB, 0x1C, I2C_8BIT}, + {0x30B0, 0x32, I2C_8BIT}, + {0x30B2, 0x83, I2C_8BIT}, + {IMX046_REG_RAW10CH2V2P_LO, 0xD8, I2C_8BIT}, + {IMX046_REG_RAW10CH2V2D_LO, 0x17, I2C_8BIT}, + {IMX046_REG_COMP8CH1V2P_LO, 0xCF, I2C_8BIT}, + {IMX046_REG_COMP8CH1V2D_LO, 0xF1, I2C_8BIT}, + {IMX046_REG_RAW10CH1V2P_LO, 0xD8, I2C_8BIT}, + {IMX046_REG_RAW10CH1V2D_LO, 0x17, I2C_8BIT}, + {0x3302, 0x0A, I2C_8BIT}, + {0x3303, 0x09, I2C_8BIT}, + {IMX046_REG_RGTLPX, 0x05, I2C_8BIT}, + {IMX046_REG_RGTCLKPREPARE, 0x04, I2C_8BIT}, + {IMX046_REG_RGTCLKZERO, 0x15, I2C_8BIT}, + {IMX046_REG_RGTCLKPRE, 0x03, I2C_8BIT}, + {IMX046_REG_RGTCLKPOST, 0x13, I2C_8BIT}, + {IMX046_REG_RGTCLKTRAIL, 0x05, I2C_8BIT}, + {IMX046_REG_RGTHSEXIT, 0x0B, I2C_8BIT}, + {0x302B, 0x38, I2C_8BIT}, /* for 18Mhz xclk */ + {I2C_REG_TERM, I2C_VAL_TERM, I2C_LEN_TERM} +}; + +/** + * struct imx046_sensor - main structure for storage of sensor information + * @pdata: access functions and data for
[OMAPZOOM][PATCH v2 4/6] Add support for Sony imx046 to OMAP3430 SDP board.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 4/6] Add support for Sony imx046 to OMAP3430 SDP board. Support for the Sony IMX046 sensor on the OMAP3430 SDP board. Signed-off-by: Greg Hofer greg.ho...@hp.com Signed-off-by: Dominic Curran dcur...@ti.com --- arch/arm/mach-omap2/board-3430sdp.c | 197 1 file changed, 197 insertions(+) Index: omapzoom04/arch/arm/mach-omap2/board-3430sdp.c === --- omapzoom04.orig/arch/arm/mach-omap2/board-3430sdp.c +++ omapzoom04/arch/arm/mach-omap2/board-3430sdp.c @@ -45,6 +45,9 @@ #include ti-compat.h #ifdef CONFIG_VIDEO_OMAP3 +#ifndef CONFIG_TWL4030_CORE +#error no power companion board defined! +#endif #include media/v4l2-int-device.h #include ../drivers/media/video/omap34xxcam.h #include ../drivers/media/video/isp/ispreg.h @@ -52,9 +55,11 @@ #define FPGA_SPR_GPIO1_3v3 (0x1 14) #define FPGA_GPIO6_DIR_CTRL(0x1 6) static void __iomem *fpga_map_addr; + #if defined(CONFIG_VIDEO_MT9P012) || defined(CONFIG_VIDEO_MT9P012_MODULE) #include ../drivers/media/video/mt9p012.h #endif + #if defined(CONFIG_VIDEO_OV3640) || defined(CONFIG_VIDEO_OV3640_MODULE) #include ../drivers/media/video/ov3640.h #include ../drivers/media/video/isp/ispcsi2.h @@ -71,6 +76,22 @@ static struct omap34xxcam_hw_config *hwc #define OV3640_CSI2_PHY_TCLK_MISS 1 #define OV3640_CSI2_PHY_TCLK_SETTLE14 #endif + +#if defined(CONFIG_VIDEO_IMX046) || defined(CONFIG_VIDEO_IMX046_MODULE) +#include ../drivers/media/video/imx046.h +#include ../drivers/media/video/isp/ispcsi2.h +#define IMX046_CSI2_CLOCK_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_DATA0_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_DATA1_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_CLOCK_LANE 1/* Clock lane position: 1 */ +#define IMX046_CSI2_DATA0_LANE 2/* Data0 lane position: 2 */ +#define IMX046_CSI2_DATA1_LANE 3/* Data1 lane position: 3 */ +#define IMX046_CSI2_PHY_THS_TERM 2 +#define IMX046_CSI2_PHY_THS_SETTLE 23 +#define IMX046_CSI2_PHY_TCLK_TERM 0 +#define IMX046_CSI2_PHY_TCLK_MISS 1 +#define IMX046_CSI2_PHY_TCLK_SETTLE14 +#endif #endif #ifdef CONFIG_VIDEO_DW9710 @@ -926,6 +947,176 @@ static struct ov3640_platform_data sdp34 #endif + +#if defined(CONFIG_VIDEO_IMX046) || defined(CONFIG_VIDEO_IMX046_MODULE) + +static struct omap34xxcam_sensor_config imx046_hwc = { + .sensor_isp = 0, + .xclk= OMAP34XXCAM_XCLK_B, + .capture_mem = PAGE_ALIGN(3280 * 2464 * 2) * 2, +}; + +static int imx046_sensor_set_prv_data(void *priv) +{ + struct omap34xxcam_hw_config *hwc = priv; + + hwc-u.sensor.xclk = imx046_hwc.xclk; + hwc-u.sensor.sensor_isp = imx046_hwc.sensor_isp; + hwc-dev_index = 2; + hwc-dev_minor = 5; + hwc-dev_type = OMAP34XXCAM_SLAVE_SENSOR; + hwc-interface_type = ISP_CSIA; + + hwc-csi2.hw_csi2.lanes.clock.polarity = IMX046_CSI2_CLOCK_POLARITY; + hwc-csi2.hw_csi2.lanes.clock.position = IMX046_CSI2_CLOCK_LANE; + hwc-csi2.hw_csi2.lanes.data[0].polarity = IMX046_CSI2_DATA0_POLARITY; + hwc-csi2.hw_csi2.lanes.data[0].position = IMX046_CSI2_DATA0_LANE; + hwc-csi2.hw_csi2.lanes.data[1].polarity = IMX046_CSI2_DATA1_POLARITY; + hwc-csi2.hw_csi2.lanes.data[1].position = IMX046_CSI2_DATA1_LANE; + hwc-csi2.hw_csi2.phy.ths_term= IMX046_CSI2_PHY_THS_TERM; + hwc-csi2.hw_csi2.phy.ths_settle = IMX046_CSI2_PHY_THS_SETTLE; + hwc-csi2.hw_csi2.phy.tclk_term = IMX046_CSI2_PHY_TCLK_TERM; + hwc-csi2.hw_csi2.phy.tclk_miss = IMX046_CSI2_PHY_TCLK_MISS; + hwc-csi2.hw_csi2.phy.tclk_settle = IMX046_CSI2_PHY_TCLK_SETTLE; + return 0; +} + +static struct isp_interface_config imx046_if_config = { + .ccdc_par_ser = ISP_CSIA, + .dataline_shift = 0x0, + .hsvs_syncdetect= ISPCTRL_SYNC_DETECT_VSRISE, + .vdint0_timing = 0x0, + .vdint1_timing = 0x0, + .strobe = 0x0, + .prestrobe = 0x0, + .shutter= 0x0, + .prev_sph = 2, + .prev_slv = 0, + .wenlog = ISPCCDC_CFG_WENLOG_OR, + .dcsub = IMX046_BLACK_LEVEL_AVG, + .u.csi.crc = 0x0, + .u.csi.mode = 0x0, + .u.csi.edge = 0x0, + .u.csi.signalling = 0x0, + .u.csi.strobe_clock_inv = 0x0, + .u.csi.vs_edge = 0x0, + .u.csi.channel = 0x0, + .u.csi.vpclk= 0x2, + .u.csi.data_start = 0x0, + .u.csi.data_size= 0x0, + .u.csi.format = V4L2_PIX_FMT_SGRBG10, +}; + + +static int imx046_sensor_power_set(enum
[OMAPZOOM][PATCH v2 5/6] ZOOM2: Rename the zoom2 i2c struct.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 5/6] ZOOM2: Rename the zoom2 i2c struct. Rename i2c structures to something sensible. This patch is not specific for imx046 sensor. Do this in preparation for i2c changes for imx046 sensor. Signed-off-by: Greg Hofer greg.ho...@hp.com Signed-off-by: Dominic Curran dcur...@ti.com --- arch/arm/mach-omap2/board-zoom2.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) Index: omapzoom04/arch/arm/mach-omap2/board-zoom2.c === --- omapzoom04.orig/arch/arm/mach-omap2/board-zoom2.c +++ omapzoom04/arch/arm/mach-omap2/board-zoom2.c @@ -472,7 +472,7 @@ static struct twl4030_platform_data ldp_ .keypad = ldp_kp_twl4030_data, }; -static struct i2c_board_info __initdata ldp_i2c_boardinfo[] = { +static struct i2c_board_info __initdata zoom2_i2c_bus1_info[] = { { I2C_BOARD_INFO(twl4030, 0x48), .flags = I2C_CLIENT_WAKE, @@ -507,7 +507,7 @@ static struct synaptics_i2c_rmi_platform .power = synaptics_power, }; -static struct i2c_board_info __initdata ldp3430_i2c_board_info[] = { +static struct i2c_board_info __initdata zoom2_i2c_bus2_info[] = { { I2C_BOARD_INFO(SYNAPTICS_I2C_RMI_NAME, SYNAPTICS_I2C_ADDR), .platform_data = ldp3430_synaptics_platform_data, @@ -518,12 +518,12 @@ static struct i2c_board_info __initdata static int __init omap_i2c_init(void) { - omap_register_i2c_bus(1, 2600, ldp_i2c_boardinfo, - ARRAY_SIZE(ldp_i2c_boardinfo)); + omap_register_i2c_bus(1, 2600, zoom2_i2c_bus1_info, + ARRAY_SIZE(zoom2_i2c_bus1_info)); #ifdef CONFIG_TOUCHSCREEN_SYNAPTICS - ldp3430_i2c_board_info[0].irq = OMAP_GPIO_IRQ(OMAP_SYNAPTICS_GPIO); - omap_register_i2c_bus(2, 100, ldp3430_i2c_board_info, - ARRAY_SIZE(ldp3430_i2c_board_info)); + zoom2_i2c_bus2_info[0].irq = OMAP_GPIO_IRQ(OMAP_SYNAPTICS_GPIO); + omap_register_i2c_bus(2, 100, zoom2_i2c_bus2_info, + ARRAY_SIZE(zoom2_i2c_bus2_info)); #endif omap_register_i2c_bus(3, 400, NULL, 0); return 0; -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[OMAPZOOM][PATCH v2 6/6] Add support for Sony imx046 to OMAP zoom2 board.
From: Dominic Curran dcur...@ti.com Subject: [OMAPZOOM][PATCH v2 6/6] Add support for Sony imx046 to OMAP zoom2 board. Support for the Sony IMX046 sensor on the OMAP Zoom2 board. Signed-off-by: Dominic Curran dcur...@ti.com --- arch/arm/configs/omap_zoom2_defconfig |1 arch/arm/mach-omap2/board-zoom2.c | 206 +- 2 files changed, 205 insertions(+), 2 deletions(-) Index: omapzoom04/arch/arm/configs/omap_zoom2_defconfig === --- omapzoom04.orig/arch/arm/configs/omap_zoom2_defconfig +++ omapzoom04/arch/arm/configs/omap_zoom2_defconfig @@ -994,6 +994,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_MT9P012 is not set # CONFIG_VIDEO_DW9710 is not set # CONFIG_VIDEO_OV3640 is not set +CONFIG_VIDEO_IMX046=y # CONFIG_VIDEO_SAA711X is not set # CONFIG_VIDEO_SAA717X is not set # CONFIG_VIDEO_TVP5150 is not set Index: omapzoom04/arch/arm/mach-omap2/board-zoom2.c === --- omapzoom04.orig/arch/arm/mach-omap2/board-zoom2.c +++ omapzoom04/arch/arm/mach-omap2/board-zoom2.c @@ -23,6 +23,7 @@ #include linux/synaptics_i2c_rmi.h #include linux/spi/spi.h #include linux/i2c/twl4030.h +#include linux/mm.h #include mach/hardware.h #include asm/mach-types.h @@ -50,6 +51,30 @@ #include mach/prcm_34xx.h #endif +#ifdef CONFIG_VIDEO_OMAP3 +#include media/v4l2-int-device.h +#include ../drivers/media/video/omap34xxcam.h +#include ../drivers/media/video/isp/ispreg.h +#if defined(CONFIG_VIDEO_IMX046) || defined(CONFIG_VIDEO_IMX046_MODULE) +#include ../drivers/media/video/imx046.h +#include ../drivers/media/video/isp/ispcsi2.h +#define IMX046_CSI2_CLOCK_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_DATA0_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_DATA1_POLARITY 0 /* +/- pin order */ +#define IMX046_CSI2_CLOCK_LANE 1/* Clock lane position: 1 */ +#define IMX046_CSI2_DATA0_LANE 2/* Data0 lane position: 2 */ +#define IMX046_CSI2_DATA1_LANE 3/* Data1 lane position: 3 */ +#define IMX046_CSI2_PHY_THS_TERM 2 +#define IMX046_CSI2_PHY_THS_SETTLE 23 +#define IMX046_CSI2_PHY_TCLK_TERM 0 +#define IMX046_CSI2_PHY_TCLK_MISS 1 +#define IMX046_CSI2_PHY_TCLK_SETTLE14 +#ifndef CONFIG_TWL4030_CORE +#error no power companion board defined! +#endif +#endif +#endif + #ifdef CONFIG_TOUCHSCREEN_SYNAPTICS #define OMAP_SYNAPTICS_GPIO163 #endif @@ -301,6 +326,175 @@ static struct twl4030_keypad_data ldp_kp .irq= TWL4030_MODIRQ_KEYPAD, }; +#if defined(CONFIG_VIDEO_IMX046) || defined(CONFIG_VIDEO_IMX046_MODULE) + +static struct omap34xxcam_sensor_config imx046_hwc = { + .sensor_isp = 0, + .xclk= OMAP34XXCAM_XCLK_B, + .capture_mem = PAGE_ALIGN(3280 * 2464 * 2) * 2, +}; + +static int imx046_sensor_set_prv_data(void *priv) +{ + struct omap34xxcam_hw_config *hwc = priv; + + hwc-u.sensor.xclk = imx046_hwc.xclk; + hwc-u.sensor.sensor_isp = imx046_hwc.sensor_isp; + hwc-dev_index = 2; + hwc-dev_minor = 5; + hwc-dev_type = OMAP34XXCAM_SLAVE_SENSOR; + hwc-interface_type = ISP_CSIA; + + hwc-csi2.hw_csi2.lanes.clock.polarity = IMX046_CSI2_CLOCK_POLARITY; + hwc-csi2.hw_csi2.lanes.clock.position = IMX046_CSI2_CLOCK_LANE; + hwc-csi2.hw_csi2.lanes.data[0].polarity = IMX046_CSI2_DATA0_POLARITY; + hwc-csi2.hw_csi2.lanes.data[0].position = IMX046_CSI2_DATA0_LANE; + hwc-csi2.hw_csi2.lanes.data[1].polarity = IMX046_CSI2_DATA1_POLARITY; + hwc-csi2.hw_csi2.lanes.data[1].position = IMX046_CSI2_DATA1_LANE; + hwc-csi2.hw_csi2.phy.ths_term= IMX046_CSI2_PHY_THS_TERM; + hwc-csi2.hw_csi2.phy.ths_settle = IMX046_CSI2_PHY_THS_SETTLE; + hwc-csi2.hw_csi2.phy.tclk_term = IMX046_CSI2_PHY_TCLK_TERM; + hwc-csi2.hw_csi2.phy.tclk_miss = IMX046_CSI2_PHY_TCLK_MISS; + hwc-csi2.hw_csi2.phy.tclk_settle = IMX046_CSI2_PHY_TCLK_SETTLE; + return 0; +} + +static struct isp_interface_config imx046_if_config = { + .ccdc_par_ser = ISP_CSIA, + .dataline_shift = 0x0, + .hsvs_syncdetect= ISPCTRL_SYNC_DETECT_VSRISE, + .vdint0_timing = 0x0, + .vdint1_timing = 0x0, + .strobe = 0x0, + .prestrobe = 0x0, + .shutter= 0x0, + .prev_sph = 2, + .prev_slv = 0, + .wenlog = ISPCCDC_CFG_WENLOG_OR, + .dcsub = IMX046_BLACK_LEVEL_AVG, + .u.csi.crc = 0x0, + .u.csi.mode = 0x0, + .u.csi.edge = 0x0, + .u.csi.signalling = 0x0, + .u.csi.strobe_clock_inv = 0x0, + .u.csi.vs_edge = 0x0, + .u.csi.channel
Re: DUTV005 USB DVB-T dongle
On 01:19 Sat 31 Jan 2009, Jan Grmela wrote: I've bought some cheap DVB-T USB dongle at eBay last month but after some unsuccessful tries to get it working, I've figured out that there's no Linux driver for the device available since the chipset is quite new. There are a lot of other people complaining that they need to use Windows to watch TV. Moosy's got a lot of info, USB dumps and datasheets at http://sites.google.com/site/moosyresearch/dutv005 I'm ready to lend the device to a developer willing to create a Linux driver for it because it's basically useless for me now. (please ignore the previous e-mails sent from a wrong e-mail address) CC'ing the linux-media list which includes the DVB developers. Perhaps someone from that list has some idea about the device or would be interested in helping out. Cheers, Brandon -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html