Re: uvcvideo kernel panic when using libv4l
That sould be the correct. Pablo, note that using svv.c with read method as implemented there, should work ok. http://moinejf.free.fr/svv.c On Wed, Dec 16, 2009 at 7:51 AM, Pablo Baena pba...@gmail.com wrote: With that patch, libv4l throws an error at some point, no crashes so far though: libv4l2: error dequeuing buf: Invalid argument read error 22, Invalid argument On Tue, Dec 15, 2009 at 9:12 PM, Laurent Pinchart laurent.pinch...@ideasonboard.com wrote: Hi Leandro and Pablo, could you please try the following patch ? It closes a race window that I believe could be at the core of your kernel panic. diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_queue.c --- a/linux/drivers/media/video/uvc/uvc_queue.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_queue.c Wed Dec 16 01:10:21 2009 +0100 @@ -59,7 +59,7 @@ * returns immediately. * * When the buffer is full, the completion handler removes it from the irq - * queue, marks it as ready (UVC_BUF_STATE_DONE) and wakes its wait queue. + * queue, marks it as ready (UVC_BUF_STATE_READY) and wakes its wait queue. * At that point, any process waiting on the buffer will be woken up. If a * process tries to dequeue a buffer after it has been marked ready, the * dequeing will succeed immediately. @@ -196,11 +196,12 @@ switch (buf-state) { case UVC_BUF_STATE_ERROR: - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: v4l2_buf-flags |= V4L2_BUF_FLAG_DONE; break; case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: v4l2_buf-flags |= V4L2_BUF_FLAG_QUEUED; break; case UVC_BUF_STATE_IDLE: @@ -341,13 +342,14 @@ uvc_trace(UVC_TRACE_CAPTURE, [W] Corrupted data (transmission error).\n); ret = -EIO; - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: buf-state = UVC_BUF_STATE_IDLE; break; case UVC_BUF_STATE_IDLE: case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: default: uvc_trace(UVC_TRACE_CAPTURE, [E] Invalid buffer state %u (driver bug?).\n, buf-state); @@ -383,7 +385,7 @@ buf = list_first_entry(queue-mainqueue, struct uvc_buffer, stream); poll_wait(file, buf-wait, wait); - if (buf-state == UVC_BUF_STATE_DONE || + if (buf-state == UVC_BUF_STATE_READY || buf-state == UVC_BUF_STATE_ERROR) mask |= POLLIN | POLLRDNORM; @@ -489,6 +491,7 @@ spin_lock_irqsave(queue-irqlock, flags); list_del(buf-queue); + buf-state = UVC_BUF_STATE_READY; if (!list_empty(queue-irqqueue)) nextbuf = list_first_entry(queue-irqqueue, struct uvc_buffer, queue); diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_video.c --- a/linux/drivers/media/video/uvc/uvc_video.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_video.c Wed Dec 16 01:10:21 2009 +0100 @@ -578,8 +578,7 @@ uvc_video_decode_end(stream, buf, mem, urb-iso_frame_desc[i].actual_length); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } } @@ -637,8 +636,7 @@ if (!stream-bulk.skip_payload buf != NULL) { uvc_video_decode_end(stream, buf, stream-bulk.header, stream-bulk.payload_size); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } diff -r c1f376eae978 linux/drivers/media/video/uvc/uvcvideo.h --- a/linux/drivers/media/video/uvc/uvcvideo.h Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvcvideo.h Wed Dec 16 01:10:21 2009 +0100 @@ -370,7 +370,8 @@ UVC_BUF_STATE_QUEUED = 1, UVC_BUF_STATE_ACTIVE = 2, UVC_BUF_STATE_DONE = 3, - UVC_BUF_STATE_ERROR = 4, + UVC_BUF_STATE_READY = 4, + UVC_BUF_STATE_ERROR = 5, }; struct uvc_buffer { -- Regards, Laurent Pinchart -- Not possessing the gift of reflection, a dog does not know that he does not know, and does not understand that he understands nothing; we, on the other hand, are aware of both. If we behave otherwise, it is from stupidity, or else from
Re: uvcvideo kernel panic when using libv4l
Hi Pablo, On Wednesday 16 December 2009 07:51:20 Pablo Baena wrote: With that patch, libv4l throws an error at some point, no crashes so far though: libv4l2: error dequeuing buf: Invalid argument read error 22, Invalid argument Could you please try this updated patch ? diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_queue.c --- a/linux/drivers/media/video/uvc/uvc_queue.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_queue.c Wed Dec 16 11:47:40 2009 +0100 @@ -59,7 +59,7 @@ *returns immediately. * *When the buffer is full, the completion handler removes it from the irq - *queue, marks it as ready (UVC_BUF_STATE_DONE) and wakes its wait queue. + *queue, marks it as ready (UVC_BUF_STATE_READY) and wakes its wait queue. *At that point, any process waiting on the buffer will be woken up. If a *process tries to dequeue a buffer after it has been marked ready, the *dequeing will succeed immediately. @@ -196,11 +196,12 @@ switch (buf-state) { case UVC_BUF_STATE_ERROR: - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: v4l2_buf-flags |= V4L2_BUF_FLAG_DONE; break; case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: v4l2_buf-flags |= V4L2_BUF_FLAG_QUEUED; break; case UVC_BUF_STATE_IDLE: @@ -295,13 +296,15 @@ { if (nonblocking) { return (buf-state != UVC_BUF_STATE_QUEUED - buf-state != UVC_BUF_STATE_ACTIVE) + buf-state != UVC_BUF_STATE_ACTIVE + buf-state != UVC_BUF_STATE_DONE) ? 0 : -EAGAIN; } return wait_event_interruptible(buf-wait, buf-state != UVC_BUF_STATE_QUEUED - buf-state != UVC_BUF_STATE_ACTIVE); + buf-state != UVC_BUF_STATE_ACTIVE + buf-state != UVC_BUF_STATE_DONE); } /* @@ -341,13 +344,14 @@ uvc_trace(UVC_TRACE_CAPTURE, [W] Corrupted data (transmission error).\n); ret = -EIO; - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: buf-state = UVC_BUF_STATE_IDLE; break; case UVC_BUF_STATE_IDLE: case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: default: uvc_trace(UVC_TRACE_CAPTURE, [E] Invalid buffer state %u (driver bug?).\n, buf-state); @@ -383,7 +387,7 @@ buf = list_first_entry(queue-mainqueue, struct uvc_buffer, stream); poll_wait(file, buf-wait, wait); - if (buf-state == UVC_BUF_STATE_DONE || + if (buf-state == UVC_BUF_STATE_READY || buf-state == UVC_BUF_STATE_ERROR) mask |= POLLIN | POLLRDNORM; @@ -489,6 +493,7 @@ spin_lock_irqsave(queue-irqlock, flags); list_del(buf-queue); + buf-state = UVC_BUF_STATE_READY; if (!list_empty(queue-irqqueue)) nextbuf = list_first_entry(queue-irqqueue, struct uvc_buffer, queue); diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_video.c --- a/linux/drivers/media/video/uvc/uvc_video.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_video.c Wed Dec 16 11:47:40 2009 +0100 @@ -578,8 +578,7 @@ uvc_video_decode_end(stream, buf, mem, urb-iso_frame_desc[i].actual_length); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } } @@ -637,8 +636,7 @@ if (!stream-bulk.skip_payload buf != NULL) { uvc_video_decode_end(stream, buf, stream-bulk.header, stream-bulk.payload_size); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } diff -r c1f376eae978 linux/drivers/media/video/uvc/uvcvideo.h --- a/linux/drivers/media/video/uvc/uvcvideo.h Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvcvideo.h Wed Dec 16 11:47:40 2009 +0100 @@ -370,7 +370,8 @@ UVC_BUF_STATE_QUEUED= 1, UVC_BUF_STATE_ACTIVE= 2, UVC_BUF_STATE_DONE = 3, - UVC_BUF_STATE_ERROR = 4, + UVC_BUF_STATE_READY = 4, + UVC_BUF_STATE_ERROR = 5, }; struct uvc_buffer { -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line
Re: no locking on dvb-s2 22000 2/3 8PSK transponder on Astra 19.2E with tt s2-3200
Am 15.12.2009 20:44, schrieb Newsy Paper: yes, this transponder is working again at blog.ors.at they say that they updated the modulator. It is working now again but driver still has this bug, so it's interesting what the update of the modulator changed exactly. Today I received an answer from Peter Knorr, ORS, where he told me that when they activated their modulator on 3 Dec 2009, it was set up to output an inverted spectrum. What they did to fix our issue was to switch off this inversion. For me, personally, the issue with 19.2°/11302.75h is closed. Maybe someone with knowledge about handling STB6100/STB0899 will be able to finally solve the issue with transponders that have an inverted spectrum. – 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
Anyone capable of fixing inverted spectrum issue on tt s2-3200?
Hi, as the problem with the ORF HD transponder on Astra is now figured out and ORF switched inversion off again, we know know where the bug in the driver is. I don't know if the problem also occours on dvb-s(1) transponders but I'll try to figure that out. Is anyone able to fix that dvb-s2 problem? Perhaps it would also solve the problem with some transponders on 1° west? regards Newsy __ Do You Yahoo!? Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. http://mail.yahoo.com -- 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: Anyone capable of fixing inverted spectrum issue on tt s2-3200?
On Wed, Dec 16, 2009 at 4:15 PM, Newsy Paper newspaperman_germ...@yahoo.com wrote: Hi, as the problem with the ORF HD transponder on Astra is now figured out and ORF switched inversion off again, we know know where the bug in the driver is. I don't know if the problem also occours on dvb-s(1) transponders but I'll try to figure that out. Is anyone able to fix that dvb-s2 problem? Perhaps it would also solve the problem with some transponders on 1° west? To verify whether an inversion will solve the issue: Please try changing line: #1313 .inversion = IQ_SWAP_ON, /* 1 */ to IQ_SWAP_OFF in http://linuxtv.org/hg/v4l-dvb/file/79fc32bba0a0/linux/drivers/media/dvb/ttpci/budget-ci.c and check whether that solves your inversion issue. Please report your findings. Regards, Manu -- 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] V4L/DVB: use correct size in put_v4l2_window32()
Although these sizes may be the same it is better to calculate the size of the source, than the destiny. Signed-off-by: Roel Kluin roel.kl...@gmail.com --- diff --git a/drivers/media/video/v4l2-compat-ioctl32.c b/drivers/media/video/v4l2-compat-ioctl32.c index 997975d..23ad218 100644 --- a/drivers/media/video/v4l2-compat-ioctl32.c +++ b/drivers/media/video/v4l2-compat-ioctl32.c @@ -288,7 +288,7 @@ static int get_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user static int put_v4l2_window32(struct v4l2_window *kp, struct v4l2_window32 __user *up) { - if (copy_to_user(up-w, kp-w, sizeof(up-w)) || + if (copy_to_user(up-w, kp-w, sizeof(kp-w)) || put_user(kp-field, up-field) || put_user(kp-chromakey, up-chromakey) || put_user(kp-clipcount, up-clipcount)) -- 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
[GIT PULL for 2.6.33] V4L/DVB fixes
Linus, Please pull from: ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git for_linus For the following 116 patches: - ir: improvements for selecting IR protocols based on the IR table, and start preparing the existing IR code to be generic; - v4l2 core: cleanups at video device name reports; - v4l2 API: add ioctl's to properly work with HDTV formats; - v4l2-spec: Adds EBUSY error code for S_STD and QUERYSTD ioctls; - v4l2 API: Add a 10-bit monochrome and missing 8- and 10-bit Bayer fourcc codes; - v4l KABI: add a media-bus API for configuring v4l2 subdev pixel and frame formats; - videobuf_dma_contig: fixes for working with non-aligned offsets; - driver improvements/fixes/cleanups at radio drivers, gspca, smsusb, em28xx, dib0700, dib8000, dvb-usb-friio, genpix, cpia, pwc, cpia2, ov511, bttv, vpss, sh_mobile_ceu, vpfe, vpif, uvc, stv0900, tw9910, soc_camera, rj54n1cb0c, mt9t031, lnbp21, stv090x, lgs9gxx, sanio-ms, cx231xx, au8522, pms. - Add mediabus KABI to be used by drivers that support several different ways to configure their internal streaming buses; - New drivers: - dib0090 frontend driver for ISDB-T devices; - mt9t112 sensor. Cheers, Mauro. --- Documentation/DocBook/Makefile | 21 +- Documentation/DocBook/media-entities.tmpl | 18 + Documentation/DocBook/media-indices.tmpl |4 + Documentation/DocBook/v4l/common.xml | 35 + Documentation/DocBook/v4l/compat.xml | 16 +- Documentation/DocBook/v4l/v4l2.xml | 26 +- Documentation/DocBook/v4l/videodev2.h.xml | 116 ++- .../DocBook/v4l/vidioc-enum-dv-presets.xml | 238 +++ Documentation/DocBook/v4l/vidioc-enuminput.xml | 36 +- Documentation/DocBook/v4l/vidioc-enumoutput.xml| 36 +- Documentation/DocBook/v4l/vidioc-g-dv-preset.xml | 111 ++ Documentation/DocBook/v4l/vidioc-g-dv-timings.xml | 224 +++ Documentation/DocBook/v4l/vidioc-g-std.xml |6 + .../DocBook/v4l/vidioc-query-dv-preset.xml | 85 ++ Documentation/DocBook/v4l/vidioc-querystd.xml |6 + Documentation/video4linux/gspca.txt| 34 +- Documentation/video4linux/sh_mobile_ceu_camera.txt | 157 ++ Documentation/video4linux/v4l2-framework.txt | 16 +- arch/sh/boards/mach-ap325rxa/setup.c | 41 +- arch/sh/boards/mach-kfr2r09/setup.c| 13 +- arch/sh/boards/mach-migor/setup.c | 32 +- drivers/media/IR/Kconfig |9 + drivers/media/IR/Makefile |5 + drivers/media/{common = IR}/ir-functions.c| 20 +- drivers/media/{common = IR}/ir-keymaps.c | 219 ++- drivers/media/{common = IR}/ir-keytable.c | 90 +- drivers/media/Kconfig |1 + drivers/media/Makefile |2 +- drivers/media/common/Makefile |2 - drivers/media/common/saa7146_fops.c| 60 +- drivers/media/dvb/dm1105/dm1105.c | 14 +- drivers/media/dvb/dvb-usb/Kconfig |8 +- drivers/media/dvb/dvb-usb/dib0700.h| 26 +- drivers/media/dvb/dvb-usb/dib0700_core.c | 101 ++- drivers/media/dvb/dvb-usb/dib0700_devices.c| 725 +++--- drivers/media/dvb/dvb-usb/dibusb-common.c | 15 +- drivers/media/dvb/dvb-usb/dvb-usb-ids.h|3 + drivers/media/dvb/dvb-usb/dw2102.c | 456 -- drivers/media/dvb/dvb-usb/friio-fe.c | 10 +- drivers/media/dvb/dvb-usb/gp8psk-fe.c |4 +- drivers/media/dvb/frontends/Kconfig|9 + drivers/media/dvb/frontends/Makefile |1 + drivers/media/dvb/frontends/au8522_decoder.c |4 +- drivers/media/dvb/frontends/dib0070.c | 674 +- drivers/media/dvb/frontends/dib0070.h |4 +- drivers/media/dvb/frontends/dib0090.c | 1522 drivers/media/dvb/frontends/dib0090.h | 108 ++ drivers/media/dvb/frontends/dib8000.c | 137 ++- drivers/media/dvb/frontends/dib8000.h | 32 +- drivers/media/dvb/frontends/dibx000_common.c | 15 +- drivers/media/dvb/frontends/dibx000_common.h | 71 +- drivers/media/dvb/frontends/lgs8gxx.c |4 +- drivers/media/dvb/frontends/lnbp21.c | 28 +- drivers/media/dvb/frontends/stv0900_core.c | 13 + drivers/media/dvb/frontends/stv090x.c |7 +- drivers/media/dvb/frontends/stv090x.h |2 + drivers/media/dvb/siano/smsdvb.c |4 +- drivers/media/dvb/siano/smssdio.c |8 +- drivers/media/dvb/siano/smsusb.c | 18 +-
[PATCH] gspca: Fix tests of unsigned
val and sd-gain are unsigned so the tests did not work. Signed-off-by: Roel Kluin roel.kl...@gmail.com --- Found using coccinelle: http://coccinelle.lip6.fr/ diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c index 4dbb882..f5d1f18 100644 --- a/drivers/media/video/gspca/ov534.c +++ b/drivers/media/video/gspca/ov534.c @@ -1536,7 +1536,7 @@ static void setsharpness_96(struct gspca_dev *gspca_dev) u8 val; val = sd-sharpness; - if (val 0) { /* auto */ + if (val == -1) {/* auto */ val = sccb_reg_read(gspca_dev, 0x42); /* com17 */ sccb_reg_write(gspca_dev, 0xff, 0x00); sccb_reg_write(gspca_dev, 0x42, val | 0x40); diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c index b1944a7..7ebabe7 100644 --- a/drivers/media/video/gspca/sn9c20x.c +++ b/drivers/media/video/gspca/sn9c20x.c @@ -2319,7 +2319,7 @@ static void do_autogain(struct gspca_dev *gspca_dev, u16 avg_lum) } } if (avg_lum MAX_AVG_LUM) { - if (sd-gain - 1 = 0) { + if (sd-gain = 1) { sd-gain--; set_gain(gspca_dev); } -- 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: Anyone capable of fixing inverted spectrum issue on tt s2-3200?
thx Manu for your quick answer. I tried that patch, at least on those 8psk 3 3/4 on thor 1 West it didn't solve the problem, but I'm not sure if they really use inverted spectrum on that transponder. ORF switched inverted spectrum off again, so I'm in search of an dvb-s2 transponder that has set inverted spectrum on in order to test your change. :( regards Newsy --- Manu Abraham abraham.m...@gmail.com schrieb am Mi, 16.12.2009: Von: Manu Abraham abraham.m...@gmail.com Betreff: Re: Anyone capable of fixing inverted spectrum issue on tt s2-3200? An: Newsy Paper newspaperman_germ...@yahoo.com CC: linux-media@vger.kernel.org Datum: Mittwoch, 16. Dezember 2009, 14:10 On Wed, Dec 16, 2009 at 4:15 PM, Newsy Paper newspaperman_germ...@yahoo.com wrote: Hi, as the problem with the ORF HD transponder on Astra is now figured out and ORF switched inversion off again, we know know where the bug in the driver is. I don't know if the problem also occours on dvb-s(1) transponders but I'll try to figure that out. Is anyone able to fix that dvb-s2 problem? Perhaps it would also solve the problem with some transponders on 1° west? To verify whether an inversion will solve the issue: Please try changing line: #1313 .inversion = IQ_SWAP_ON, /* 1 */ to IQ_SWAP_OFF in http://linuxtv.org/hg/v4l-dvb/file/79fc32bba0a0/linux/drivers/media/dvb/ttpci/budget-ci.c and check whether that solves your inversion issue. Please report your findings. Regards, Manu __ Do You Yahoo!? Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. http://mail.yahoo.com -- 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: USB MAssage Storage drivers
(gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #4 PREEMPT Tue Dec 15 18:10:24 EST 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM644x EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm6446 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 50800 I have compile the kernel 2.6.32 and boot up the target. But when I plug in the mass storage like external HDD or Pendrive it is not recognizing. Any help appreciated. - GG -Original Message- From: Philby John [mailto:pj...@in.mvista.com] Sent: Wednesday, December 16, 2009 2:22 AM To: Gopala Gottumukkala Cc: davinci-linux-open-sou...@linux.davincidsp.com; linux-media@vger.kernel.org Subject: Re: USB MAssage Storage drivers On Tue, 2009-12-15 at 18:46 -0500, Gopala Gottumukkala wrote: My target is not recognizing the USB massage storage. I am working the 2.6.32 Davinci kernel Any suggestion and ideas. ahah, this information isn't enough. Your Vendor/Product ID for this device is compared in a lookup a table. If no match is found, your device probably won't be detected as mass storage. You could check in the unusual_devs.h to see if your device is included there, if your device is relatively new you could submit a Vendor/Product ID to the USB dev list for inclusion. Regards, Philby -- 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: USB MAssage Storage drivers
Hi, Gopala Gottumukkala wrote: (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #4 PREEMPT Tue Dec 15 18:10:24 EST 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM644x EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm6446 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 50800 I have compile the kernel 2.6.32 and boot up the target. But when I plug in the mass storage like external HDD or Pendrive it is not recognizing. Do you compile the usb support? Do you have in your config? Michael Any help appreciated. - GG -Original Message- From: Philby John [mailto:pj...@in.mvista.com] Sent: Wednesday, December 16, 2009 2:22 AM To: Gopala Gottumukkala Cc: davinci-linux-open-sou...@linux.davincidsp.com; linux-media@vger.kernel.org Subject: Re: USB MAssage Storage drivers On Tue, 2009-12-15 at 18:46 -0500, Gopala Gottumukkala wrote: My target is not recognizing the USB massage storage. I am working the 2.6.32 Davinci kernel Any suggestion and ideas. ahah, this information isn't enough. Your Vendor/Product ID for this device is compared in a lookup a table. If no match is found, your device probably won't be detected as mass storage. You could check in the unusual_devs.h to see if your device is included there, if your device is relatively new you could submit a Vendor/Product ID to the USB dev list for inclusion. Regards, Philby -- 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 -- 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] vivi: Fix test of unsigned in vivi_create_instance()
video_nr is unsigned so the test did not work. Signed-off-by: Roel Kluin roel.kl...@gmail.com --- Found using coccinelle: http://coccinelle.lip6.fr/ diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c index 7705fc6..328af3a 100644 --- a/drivers/media/video/vivi.c +++ b/drivers/media/video/vivi.c @@ -1375,7 +1375,7 @@ static int __init vivi_create_instance(int inst) snprintf(vfd-name, sizeof(vfd-name), %s (%i), vivi_template.name, vfd-num); - if (video_nr = 0) + if (video_nr != -1) video_nr++; dev-vfd = vfd; -- 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 3/7] V4L/DVB sh_mobile_ceu: don't check platform_get_irq's return value against zero
platform_get_irq returns -ENXIO on failure, so !irq was probably always true. Better use (int)irq = 0. Note that a return value of zero is still handled as error even though this could mean irq0. This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that changed the return value of platform_get_irq from 0 to -ENXIO on error. Signed-off-by: Uwe Kleine-König u.kleine-koe...@pengutronix.de Cc: David Vrabel dvra...@arcom.com Cc: Greg Kroah-Hartman gre...@suse.de Cc: Mauro Carvalho Chehab mche...@infradead.org Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Magnus Damm d...@igel.co.jp Cc: Kuninori Morimoto morimoto.kunin...@renesas.com Cc: Paul Mundt let...@linux-sh.org Cc: linux-media@vger.kernel.org --- drivers/media/video/sh_mobile_ceu_camera.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index 961e448..f18e674 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c @@ -1709,7 +1709,7 @@ static int __devinit sh_mobile_ceu_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_MEM, 0); irq = platform_get_irq(pdev, 0); - if (!res || !irq) { + if (!res || (int)irq = 0) { dev_err(pdev-dev, Not enough CEU platform resources.\n); err = -ENODEV; goto exit; -- 1.6.5.2 -- 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/7] V4L/DVB mx1_camera: don't check platform_get_irq's return value against zero
platform_get_irq returns -ENXIO on failure, so !irq was probably always true. Better use (int)irq = 0. Note that a return value of zero is still handled as error even though this could mean irq0. This is a followup to 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 that changed the return value of platform_get_irq from 0 to -ENXIO on error. Signed-off-by: Uwe Kleine-König u.kleine-koe...@pengutronix.de Cc: David Vrabel dvra...@arcom.com Cc: Greg Kroah-Hartman gre...@suse.de Cc: Mauro Carvalho Chehab mche...@infradead.org Cc: Guennadi Liakhovetski g.liakhovet...@gmx.de Cc: Antonio Ospite osp...@studenti.unina.it Cc: Paulius Zaleckas paulius.zalec...@teltonika.lt Cc: linux-media@vger.kernel.org --- drivers/media/video/mx1_camera.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c index 7280229..f7a472f 100644 --- a/drivers/media/video/mx1_camera.c +++ b/drivers/media/video/mx1_camera.c @@ -650,7 +650,7 @@ static int __init mx1_camera_probe(struct platform_device *pdev) res = platform_get_resource(pdev, IORESOURCE_MEM, 0); irq = platform_get_irq(pdev, 0); - if (!res || !irq) { + if (!res || (int)irq = 0) { err = -ENODEV; goto exit; } -- 1.6.5.2 -- 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: USB MAssage Storage drivers
Gopala, You would need to use the patch I circulated earlier that updates the correct DRVVBUS GPIO for DaVinci. Pl. search it in the archives or else I will mail it tomorrow. regards swami From: davinci-linux-open-source-bounces+swami.iyer=ti@linux.davincidsp.com [davinci-linux-open-source-bounces+swami.iyer=ti@linux.davincidsp.com] On Behalf Of Gopala Gottumukkala [ggott...@cernium.com] Sent: Wednesday, December 16, 2009 9:23 PM To: Philby John Cc: davinci-linux-open-sou...@linux.davincidsp.com; linux-media@vger.kernel.org Subject: RE: USB MAssage Storage drivers (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #4 PREEMPT Tue Dec 15 18:10:24 EST 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM644x EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm6446 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 50800 I have compile the kernel 2.6.32 and boot up the target. But when I plug in the mass storage like external HDD or Pendrive it is not recognizing. Any help appreciated. - GG -Original Message- From: Philby John [mailto:pj...@in.mvista.com] Sent: Wednesday, December 16, 2009 2:22 AM To: Gopala Gottumukkala Cc: davinci-linux-open-sou...@linux.davincidsp.com; linux-media@vger.kernel.org Subject: Re: USB MAssage Storage drivers On Tue, 2009-12-15 at 18:46 -0500, Gopala Gottumukkala wrote: My target is not recognizing the USB massage storage. I am working the 2.6.32 Davinci kernel Any suggestion and ideas. ahah, this information isn't enough. Your Vendor/Product ID for this device is compared in a lookup a table. If no match is found, your device probably won't be detected as mass storage. You could check in the unusual_devs.h to see if your device is included there, if your device is relatively new you could submit a Vendor/Product ID to the USB dev list for inclusion. Regards, Philby ___ Davinci-linux-open-source mailing list davinci-linux-open-sou...@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source-- 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: USB MAssage Storage drivers
Hello. Gopala Gottumukkala wrote: (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #4 PREEMPT Tue Dec 15 18:10:24 EST 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM644x EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm6446 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 50800 I have compile the kernel 2.6.32 and boot up the target. But when I plug in the mass storage like external HDD or Pendrive it is not recognizing. Any help appreciated. Try this patch: http://marc.info/?l=linux-usbm=126087668419996 WBR, Sergei -- 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: USB MAssage Storage drivers
On Wed, 2009-12-16 at 10:53 -0500, Gopala Gottumukkala wrote: (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #4 PREEMPT Tue Dec 15 18:10:24 EST 2009 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DaVinci DM644x EVM Memory policy: ECC disabled, Data cache writeback DaVinci dm6446 variant 0x0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 50800 And what good is this above boot log? The log that would be of interest is the one generated the moment you connect a USB Pen drive. A cat /proc/bus/usb/devices would also give you related information on the connected device. Please take a look. Regards, Philby -- 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 - v1 4/6] V4L - vpfe_capture bug fix and enhancements
hans, Yes, isif_config_bclamp() set values in the register. Huh? That does not explain why apparently bc-horz.win_h_sz_calc can be larger than ISIF_HORZ_BC_WIN_H_SIZE_MASK. because the values come from the user and since we can't use the enum for the types, I have to make sure the value is within range. Other way to do is to check the value in the validate() function. I am inclined to do the validation so that the statements with masks can be removed while setting it in the register. Regards, Hans It would be interesting to know if people know of good ways of making awkward code like this more elegant (or at least less awkward). Regards, Hans -- Hans Verkuil - video4linux developer - sponsored by TANDBERG -- Hans Verkuil - video4linux developer - sponsored by TANDBERG -- 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: uvcvideo kernel panic when using libv4l
Yes! This patch worked. So far I got no kernel panic, and image is correct. Will be testing today to see if something comes up, but so far it's doing great. Thank you! On Wed, Dec 16, 2009 at 7:49 AM, Laurent Pinchart laurent.pinch...@ideasonboard.com wrote: Hi Pablo, On Wednesday 16 December 2009 07:51:20 Pablo Baena wrote: With that patch, libv4l throws an error at some point, no crashes so far though: libv4l2: error dequeuing buf: Invalid argument read error 22, Invalid argument Could you please try this updated patch ? diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_queue.c --- a/linux/drivers/media/video/uvc/uvc_queue.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_queue.c Wed Dec 16 11:47:40 2009 +0100 @@ -59,7 +59,7 @@ * returns immediately. * * When the buffer is full, the completion handler removes it from the irq - * queue, marks it as ready (UVC_BUF_STATE_DONE) and wakes its wait queue. + * queue, marks it as ready (UVC_BUF_STATE_READY) and wakes its wait queue. * At that point, any process waiting on the buffer will be woken up. If a * process tries to dequeue a buffer after it has been marked ready, the * dequeing will succeed immediately. @@ -196,11 +196,12 @@ switch (buf-state) { case UVC_BUF_STATE_ERROR: - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: v4l2_buf-flags |= V4L2_BUF_FLAG_DONE; break; case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: v4l2_buf-flags |= V4L2_BUF_FLAG_QUEUED; break; case UVC_BUF_STATE_IDLE: @@ -295,13 +296,15 @@ { if (nonblocking) { return (buf-state != UVC_BUF_STATE_QUEUED - buf-state != UVC_BUF_STATE_ACTIVE) + buf-state != UVC_BUF_STATE_ACTIVE + buf-state != UVC_BUF_STATE_DONE) ? 0 : -EAGAIN; } return wait_event_interruptible(buf-wait, buf-state != UVC_BUF_STATE_QUEUED - buf-state != UVC_BUF_STATE_ACTIVE); + buf-state != UVC_BUF_STATE_ACTIVE + buf-state != UVC_BUF_STATE_DONE); } /* @@ -341,13 +344,14 @@ uvc_trace(UVC_TRACE_CAPTURE, [W] Corrupted data (transmission error).\n); ret = -EIO; - case UVC_BUF_STATE_DONE: + case UVC_BUF_STATE_READY: buf-state = UVC_BUF_STATE_IDLE; break; case UVC_BUF_STATE_IDLE: case UVC_BUF_STATE_QUEUED: case UVC_BUF_STATE_ACTIVE: + case UVC_BUF_STATE_DONE: default: uvc_trace(UVC_TRACE_CAPTURE, [E] Invalid buffer state %u (driver bug?).\n, buf-state); @@ -383,7 +387,7 @@ buf = list_first_entry(queue-mainqueue, struct uvc_buffer, stream); poll_wait(file, buf-wait, wait); - if (buf-state == UVC_BUF_STATE_DONE || + if (buf-state == UVC_BUF_STATE_READY || buf-state == UVC_BUF_STATE_ERROR) mask |= POLLIN | POLLRDNORM; @@ -489,6 +493,7 @@ spin_lock_irqsave(queue-irqlock, flags); list_del(buf-queue); + buf-state = UVC_BUF_STATE_READY; if (!list_empty(queue-irqqueue)) nextbuf = list_first_entry(queue-irqqueue, struct uvc_buffer, queue); diff -r c1f376eae978 linux/drivers/media/video/uvc/uvc_video.c --- a/linux/drivers/media/video/uvc/uvc_video.c Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvc_video.c Wed Dec 16 11:47:40 2009 +0100 @@ -578,8 +578,7 @@ uvc_video_decode_end(stream, buf, mem, urb-iso_frame_desc[i].actual_length); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } } @@ -637,8 +636,7 @@ if (!stream-bulk.skip_payload buf != NULL) { uvc_video_decode_end(stream, buf, stream-bulk.header, stream-bulk.payload_size); - if (buf-state == UVC_BUF_STATE_DONE || - buf-state == UVC_BUF_STATE_ERROR) + if (buf-state == UVC_BUF_STATE_DONE) buf = uvc_queue_next_buffer(stream-queue, buf); } diff -r c1f376eae978 linux/drivers/media/video/uvc/uvcvideo.h --- a/linux/drivers/media/video/uvc/uvcvideo.h Sat Dec 12 18:57:17 2009 +0100 +++ b/linux/drivers/media/video/uvc/uvcvideo.h Wed Dec 16 11:47:40 2009 +0100 @@ -370,7 +370,8 @@ UVC_BUF_STATE_QUEUED
[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS
This message is generated daily by a cron job that builds v4l-dvb for the kernels and architectures in the list below. Results of the daily build of v4l-dvb: date:Wed Dec 16 19:00:10 CET 2009 path:http://www.linuxtv.org/hg/v4l-dvb changeset: 13821:783912da1ad0 gcc version: gcc (GCC) 4.3.1 hardware:x86_64 host os: 2.6.26 linux-2.6.30-armv5: OK linux-2.6.31-armv5: OK linux-2.6.32-armv5: OK linux-2.6.32-armv5-davinci: OK linux-2.6.30-armv5-ixp: ERRORS linux-2.6.31-armv5-ixp: ERRORS linux-2.6.32-armv5-ixp: ERRORS linux-2.6.30-armv5-omap2: OK linux-2.6.31-armv5-omap2: OK linux-2.6.32-armv5-omap2: OK linux-2.6.22.19-i686: ERRORS linux-2.6.23.12-i686: ERRORS linux-2.6.24.7-i686: ERRORS linux-2.6.25.11-i686: ERRORS linux-2.6.26-i686: ERRORS linux-2.6.27-i686: ERRORS linux-2.6.28-i686: ERRORS linux-2.6.29.1-i686: ERRORS linux-2.6.30-i686: ERRORS linux-2.6.31-i686: ERRORS linux-2.6.32-i686: ERRORS linux-2.6.30-m32r: OK linux-2.6.31-m32r: OK linux-2.6.32-m32r: OK linux-2.6.30-mips: WARNINGS linux-2.6.31-mips: OK linux-2.6.32-mips: OK linux-2.6.30-powerpc64: ERRORS linux-2.6.31-powerpc64: ERRORS linux-2.6.32-powerpc64: ERRORS linux-2.6.22.19-x86_64: ERRORS linux-2.6.23.12-x86_64: ERRORS linux-2.6.24.7-x86_64: ERRORS linux-2.6.25.11-x86_64: ERRORS linux-2.6.26-x86_64: ERRORS linux-2.6.27-x86_64: ERRORS linux-2.6.28-x86_64: ERRORS linux-2.6.29.1-x86_64: ERRORS linux-2.6.30-x86_64: ERRORS linux-2.6.31-x86_64: ERRORS linux-2.6.32-x86_64: ERRORS spec: OK sparse (linux-2.6.32): ERRORS linux-2.6.16.61-i686: ERRORS linux-2.6.17.14-i686: ERRORS linux-2.6.18.8-i686: ERRORS linux-2.6.19.5-i686: ERRORS linux-2.6.20.21-i686: ERRORS linux-2.6.21.7-i686: ERRORS linux-2.6.16.61-x86_64: ERRORS linux-2.6.17.14-x86_64: ERRORS linux-2.6.18.8-x86_64: ERRORS linux-2.6.19.5-x86_64: ERRORS linux-2.6.20.21-x86_64: ERRORS linux-2.6.21.7-x86_64: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Wednesday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Wednesday.tar.bz2 The V4L-DVB specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/media.html -- 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] SheevaBox as a media Server and a Fit-PC as a streaming client?
Hi, I've got sheeva plug device. It works as file server over smb. I didn't check how it works with Full HD movies but there is no problem with HD Ready movies. I can check things like max transfer rate and let you know what this thing can do. Best Regards -- Tomasz Belina Dnia 2009-12-16 o godz. 16:12 Lothar Behrens lothar.behr...@lollisoft.de napisał(a): Hi, I am new here and start with a setup question. The media or NAS server I think about: http://plugcomputer.org/ It has a high speed USB 2.0 port and a gigabit Lan. Using Linux and VLC as the streaming server, would this be good for streaming full HD videos from a attached USB hard drive? The streaming client in mind: http://www.fit-pc.com/web/ Would it be possible to use this box (the cheapest one is about 299 € + shipping in germany) with XBMC or other stuff? I mean saving the hard drives in the client box when a SAN is used. Both could use Linux and thus fully controlled and tweaked for best performing as a media center solution. The reason why I ask is because my brother want's to save money and don't like to waste money for hardware components that may not really needed. Other devices in mind were these components: http://www.openpr.de/news/365458/Movie-Cube-S800H-Genuss-fuer-Augen-und-Ohren.html http://www.tomsnetworking.de/content/aktuelles/news_beitrag/news/3828/index.html But is there the opportunity to use the media from the movie cube to be streamed to other computers? Thanks for your help, Lothar -- | Rapid Prototyping | XSLT Codegeneration | http://www.lollisoft.de Lothar Behrens Heinrich-Scheufelen-Platz 2 73252 Lenningen ___ linux-dvb users mailing list For V4L/DVB development, please use instead linux- me...@vger.kernel.org linux-...@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb -- 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/RFC] tmio_mmc: keep card-detect interrupts enabled
On Sat, 28 Nov 2009, Guennadi Liakhovetski wrote: On Tue, 10 Nov 2009, Ian Molton wrote: Well if they are only masked they shouldnt stop being asserted. But we should unmask them again. Im not really sure we should mask them anyway, with the card possibly being gone... Will need to look into it further. Hi Ian What's the status of this patch? Are you going to queue it for 2.6.33? Ian, ping? I still don't see this patch in any (Linus' / next) upstream tree and the merge window will be closing soon. Any update? Thanks Guennadi Thanks Guennadi 2009/11/9 Guennadi Liakhovetski g.liakhovet...@gmx.de: (re-adding accidentally dropped ML) On Mon, 9 Nov 2009, Ian Molton wrote: Well, I presume we want to know when the card gets removed :) Sure, that's why we shouldn't mask those interrupts:-) If they do get masked and missed, I do not know, if the interrupt remains pending in this case, because they never get detected then:) 2009/11/9 Guennadi Liakhovetski g.liakhovet...@gmx.de: Hi Ian Why did you drop all CCs? On Mon, 9 Nov 2009, Ian Molton wrote: I havent looked at the consequences for the driver if a insert IRQ occurs during IO, however it seems logical that we should not permanently mask the IRQ. I presume that the IRQ remains pending? Don't know, never checked. Is this important to know? Thanks Guennadi 2009/11/6 Guennadi Liakhovetski g.liakhovet...@gmx.de: On SuperH platforms the SDHI controller does not produce any command IRQs after a completed IO. This leads to card-detect interrupts staying disabled. Do not disable card-detect interrupts on DATA IRQs. Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de --- Marked as RFC because I'm not really sure this is a correct approach to fix this problem, and whether this will have negative effect on other tmio_mmc MFD users. diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index c676767..0b31d44 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h @@ -55,10 +55,8 @@ /* Define some IRQ masks */ /* This is the mask used at reset by the chip */ #define TMIO_MASK_ALL 0x837f031d -#define TMIO_MASK_READOP (TMIO_STAT_RXRDY | TMIO_STAT_DATAEND | \ - TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT) -#define TMIO_MASK_WRITEOP (TMIO_STAT_TXRQ | TMIO_STAT_DATAEND | \ - TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT) +#define TMIO_MASK_READOP (TMIO_STAT_RXRDY | TMIO_STAT_DATAEND) +#define TMIO_MASK_WRITEOP (TMIO_STAT_TXRQ | TMIO_STAT_DATAEND) #define TMIO_MASK_CMD (TMIO_STAT_CMDRESPEND | TMIO_STAT_CMDTIMEOUT | \ TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT) #define TMIO_MASK_IRQ (TMIO_MASK_READOP | TMIO_MASK_WRITEOP | TMIO_MASK_CMD) Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- Ian Molton Linux, Automotive, and other hacking: http://www.mnementh.co.uk/ --- Guennadi Liakhovetski --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- 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 0/4 v12] Support for TVP7002 in DM365
This series of patches provide support for the TVP7002 decoder in DM365. Support includes: * Inclusion of the chip in v4l2 definitions * Definition of TVP7002 specific data structures * Kconfig and Makefile support This series corrects many issued pointed out by Snehaprabha Narnakaje, Muralidharan Karicheri, Vaibhav Hiremath and Hans Verkuil and solves testing problems. Tested on DM365 TI EVM with resolutions 720p, 10...@60, 576P and 480P with video capture application and video output in 480P, 576P, 720P and 1080I. This driver depends upon board-dm365-evm.c and vpfe_capture.c to be ready for complete integration. Uses the new V4L2 DV API sent by Muralidharan Karicheri. Removed shadow register values. Removed unnecesary power down and up of the device (tests work fine). Improved readability. Uses Murali's preset helper function. -- Santiago Nunez-Corrales, Eng. RidgeRun Engineering, LLC Guayabos, Curridabat San Jose, Costa Rica +(506) 2271 1487 +(506) 8313 0536 http://www.ridgerun.com -- 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/4 v12] Support for TVP7002 in v4l2 definitions
From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides required chip identification definitions within v4l2. Included only definitions for TVP7002. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- include/media/v4l2-chip-ident.h |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/include/media/v4l2-chip-ident.h b/include/media/v4l2-chip-ident.h index cf16689..7e80c4f 100644 --- a/include/media/v4l2-chip-ident.h +++ b/include/media/v4l2-chip-ident.h @@ -129,6 +129,9 @@ enum { V4L2_IDENT_SAA6752HS = 6752, V4L2_IDENT_SAA6752HS_AC3 = 6753, + /* module tvp7002: just ident 7002 */ + V4L2_IDENT_TVP7002 = 7002, + /* module adv7170: just ident 7170 */ V4L2_IDENT_ADV7170 = 7170, -- 1.6.0.4 -- 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/4 v12] Definitions for TVP7002 in DM365
From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides the required definitions for the TVP7002 driver in DM365. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- drivers/media/video/tvp7002_reg.h | 150 + include/media/tvp7002.h | 56 ++ 2 files changed, 206 insertions(+), 0 deletions(-) create mode 100644 drivers/media/video/tvp7002_reg.h create mode 100644 include/media/tvp7002.h diff --git a/drivers/media/video/tvp7002_reg.h b/drivers/media/video/tvp7002_reg.h new file mode 100644 index 000..0e34ca9 --- /dev/null +++ b/drivers/media/video/tvp7002_reg.h @@ -0,0 +1,150 @@ +/* Texas Instruments Triple 8-/10-BIT 165-/110-MSPS Video and Graphics + * Digitizer with Horizontal PLL registers + * + * Copyright (C) 2009 Texas Instruments Inc + * Author: Santiago Nunez-Corrales santiago.nu...@ridgerun.com + * + * This code is partially based upon the TVP5150 driver + * written by Mauro Carvalho Chehab (mche...@infradead.org), + * the TVP514x driver written by Vaibhav Hiremath hvaib...@ti.com + * and the TVP7002 driver in the TI LSP 2.10.00.14 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* Naming conventions + * -- + * + * FDBK: Feedback + * DIV: Divider + * CTL: Control + * SEL: Select + * IN:Input + * OUT: Output + * R: Red + * G: Green + * B: Blue + * OFF: Offset + * THRS: Threshold + * DGTL: Digital + * LVL: Level + * PWR: Power + * MVIS: Macrovision + * W: Width + * H: Height + * ALGN: Alignment + * CLK: Clocks + * TOL: Tolerance + * BWTH: Bandwidth + * COEF: Coefficient + * STAT: Status + * AUTO: Automatic + * FLD: Field + * L:Line + */ + +#define TVP7002_CHIP_REV 0x00 +#define TVP7002_HPLL_FDBK_DIV_MSBS 0x01 +#define TVP7002_HPLL_FDBK_DIV_LSBS 0x02 +#define TVP7002_HPLL_CRTL 0x03 +#define TVP7002_HPLL_PHASE_SEL 0x04 +#define TVP7002_CLAMP_START0x05 +#define TVP7002_CLAMP_W0x06 +#define TVP7002_HSYNC_OUT_W0x07 +#define TVP7002_B_FINE_GAIN0x08 +#define TVP7002_G_FINE_GAIN0x09 +#define TVP7002_R_FINE_GAIN0x0a +#define TVP7002_B_FINE_OFF_MSBS0x0b +#define TVP7002_G_FINE_OFF_MSBS 0x0c +#define TVP7002_R_FINE_OFF_MSBS 0x0d +#define TVP7002_SYNC_CTL_1 0x0e +#define TVP7002_HPLL_AND_CLAMP_CTL 0x0f +#define TVP7002_SYNC_ON_G_THRS 0x10 +#define TVP7002_SYNC_SEPARATOR_THRS0x11 +#define TVP7002_HPLL_PRE_COAST 0x12 +#define TVP7002_HPLL_POST_COAST0x13 +#define TVP7002_SYNC_DETECT_STAT 0x14 +#define TVP7002_OUT_FORMATTER 0x15 +#define TVP7002_MISC_CTL_1 0x16 +#define TVP7002_MISC_CTL_2 0x17 +#define TVP7002_MISC_CTL_3 0x18 +#define TVP7002_IN_MUX_SEL_1 0x19 +#define TVP7002_IN_MUX_SEL_20x1a +#define TVP7002_B_AND_G_COARSE_GAIN0x1b +#define TVP7002_R_COARSE_GAIN 0x1c +#define TVP7002_FINE_OFF_LSBS 0x1d +#define TVP7002_B_COARSE_OFF 0x1e +#define TVP7002_G_COARSE_OFF0x1f +#define TVP7002_R_COARSE_OFF0x20 +#define TVP7002_HSOUT_OUT_START0x21 +#define TVP7002_MISC_CTL_4 0x22 +#define TVP7002_B_DGTL_ALC_OUT_LSBS0x23 +#define TVP7002_G_DGTL_ALC_OUT_LSBS 0x24 +#define TVP7002_R_DGTL_ALC_OUT_LSBS 0x25 +#define TVP7002_AUTO_LVL_CTL_ENABLE0x26 +#define TVP7002_DGTL_ALC_OUT_MSBS 0x27 +#define TVP7002_AUTO_LVL_CTL_FILTER0x28 +/* Reserved 0x29*/ +#define TVP7002_FINE_CLAMP_CTL 0x2a +#define TVP7002_PWR_CTL0x2b +#define TVP7002_ADC_SETUP 0x2c +#define TVP7002_COARSE_CLAMP_CTL 0x2d +#define TVP7002_SOG_CLAMP 0x2e +#define TVP7002_RGB_COARSE_CLAMP_CTL 0x2f +#define TVP7002_SOG_COARSE_CLAMP_CTL 0x30 +#define TVP7002_ALC_PLACEMENT 0x31 +/* Reserved 0x32 */ +/* Reserved 0x33 */ +#define TVP7002_MVIS_STRIPPER_W0x34 +#define TVP7002_VSYNC_ALGN 0x35 +#define TVP7002_SYNC_BYPASS0x36 +#define TVP7002_L_FRAME_STAT_LSBS 0x37 +#define TVP7002_L_FRAME_STAT_MSBS 0x38 +#define
[PATCH 3/4 v12] TVP7002 driver for DM365
From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides the implementation of the TVP7002 decoder driver for DM365. Implemented using the V4L2 DV presets API. Removed shadow register values. Testing shows that the device needs not to be powered down and up for correct behaviour. Improved readability. Uses helper function for preset information. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- drivers/media/video/tvp7002.c | 1189 + 1 files changed, 1189 insertions(+), 0 deletions(-) create mode 100644 drivers/media/video/tvp7002.c diff --git a/drivers/media/video/tvp7002.c b/drivers/media/video/tvp7002.c new file mode 100644 index 000..6ce57b6 --- /dev/null +++ b/drivers/media/video/tvp7002.c @@ -0,0 +1,1189 @@ +/* Texas Instruments Triple 8-/10-BIT 165-/110-MSPS Video and Graphics + * Digitizer with Horizontal PLL registers + * + * Copyright (C) 2009 Texas Instruments Inc + * Author: Santiago Nunez-Corrales santiago.nu...@ridgerun.com + * + * This code is partially based upon the TVP5150 driver + * written by Mauro Carvalho Chehab (mche...@infradead.org), + * the TVP514x driver written by Vaibhav Hiremath hvaib...@ti.com + * and the TVP7002 driver in the TI LSP 2.10.00.14. Revisions by + * Muralidharan Karicheri and Snehaprabha Narnakaje (TI). + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#include linux/delay.h +#include linux/i2c.h +#include linux/videodev2.h +#include media/tvp7002.h +#include media/v4l2-device.h +#include media/v4l2-chip-ident.h +#include media/v4l2-common.h +#include tvp7002_reg.h + +MODULE_DESCRIPTION(TI TVP7002 Video and Graphics Digitizer driver); +MODULE_AUTHOR(Santiago Nunez-Corrales santiago.nu...@ridgerun.com); +MODULE_LICENSE(GPL); + +/* Module Name */ +#define TVP7002_MODULE_NAMEtvp7002 + +/* I2C retry attempts */ +#define I2C_RETRY_COUNT(5) + +/* End of registers */ +#define TVP7002_EOR0x5c + +/* Read write definition for registers */ +#define TVP7002_READ 0 +#define TVP7002_WRITE 1 +#define TVP7002_RESERVED 2 + +/* Interlaced vs progressive mask and shift */ +#define TVP7002_IP_SHIFT 5 +#define TVP7002_INPR_MASK (0x01 TVP7002_IP_SHIFT) + +/* Shift for CPL and LPF registers */ +#define TVP7002_CL_SHIFT 8 +#define TVP7002_CL_MASK0x0f + +/* Debug functions */ +static int debug; +module_param(debug, bool, 0644); +MODULE_PARM_DESC(debug, Debug level (0-2)); + +/* Structure for register values */ +struct i2c_reg_value { + u8 reg; + u8 value; + u8 type; +}; + +/* + * Register default values (according to tvp7002 datasheet) + * In the case of read-only registers, the value (0xff) is + * never written. R/W functionality is controlled by the + * writable bit in the register struct definition. + */ +static const struct i2c_reg_value tvp7002_init_default[] = { + { TVP7002_CHIP_REV, 0xff, TVP7002_READ }, + { TVP7002_HPLL_FDBK_DIV_MSBS, 0x67, TVP7002_WRITE }, + { TVP7002_HPLL_FDBK_DIV_LSBS, 0x20, TVP7002_WRITE }, + { TVP7002_HPLL_CRTL, 0xa0, TVP7002_WRITE }, + { TVP7002_HPLL_PHASE_SEL, 0x80, TVP7002_WRITE }, + { TVP7002_CLAMP_START, 0x32, TVP7002_WRITE }, + { TVP7002_CLAMP_W, 0x20, TVP7002_WRITE }, + { TVP7002_HSYNC_OUT_W, 0x60, TVP7002_WRITE }, + { TVP7002_B_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_G_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_R_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_B_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_G_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_R_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_SYNC_CTL_1, 0x20, TVP7002_WRITE }, + { TVP7002_HPLL_AND_CLAMP_CTL, 0x2e, TVP7002_WRITE }, + { TVP7002_SYNC_ON_G_THRS, 0x5d, TVP7002_WRITE }, + { TVP7002_SYNC_SEPARATOR_THRS, 0x47, TVP7002_WRITE }, + { TVP7002_HPLL_PRE_COAST, 0x00, TVP7002_WRITE }, + { TVP7002_HPLL_POST_COAST, 0x00, TVP7002_WRITE }, + { TVP7002_SYNC_DETECT_STAT, 0xff, TVP7002_READ }, + { TVP7002_OUT_FORMATTER, 0x47, TVP7002_WRITE }, + { TVP7002_MISC_CTL_1, 0x01, TVP7002_WRITE }, + { TVP7002_MISC_CTL_2, 0x00, TVP7002_WRITE }, + { TVP7002_MISC_CTL_3, 0x01, TVP7002_WRITE
[PATCH 4/4 v12] Menu support for TVP7002 in DM365
From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides menu configuration options for the TVP7002 decoder driver in DM365. Includes only TVP7002. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- drivers/media/video/Kconfig |9 + drivers/media/video/Makefile |1 + 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index e6186b3..25f5735 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@ -392,6 +392,15 @@ config VIDEO_TVP5150 To compile this driver as a module, choose M here: the module will be called tvp5150. +config VIDEO_TVP7002 + tristate Texas Instruments TVP7002 video decoder + depends on VIDEO_V4L2 I2C + ---help--- + Support for the Texas Instruments TVP7002 video decoder. + + To compile this driver as a module, choose M here: the + module will be called tvp7002. + config VIDEO_VPX3220 tristate vpx3220a, vpx3216b vpx3214c video decoders depends on VIDEO_V4L2 I2C diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index e541932..a4fff2a 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile @@ -56,6 +56,7 @@ obj-$(CONFIG_VIDEO_THS7303) += ths7303.o obj-$(CONFIG_VIDEO_VINO) += indycam.o obj-$(CONFIG_VIDEO_TVP5150) += tvp5150.o obj-$(CONFIG_VIDEO_TVP514X) += tvp514x.o +obj-$(CONFIG_VIDEO_TVP7002) += tvp7002.o obj-$(CONFIG_VIDEO_MSP3400) += msp3400.o obj-$(CONFIG_VIDEO_CS5345) += cs5345.o obj-$(CONFIG_VIDEO_CS53L32A) += cs53l32a.o -- 1.6.0.4 -- 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: [Bugme-new] [Bug 14564] New: capture-example sleeping function called from invalid context at arch/x86/mm/fault.c
Thanks, that patch definitely traps the bug. Unfortunately there are so many debug messages that the capture-example.c times out trying to connect to the webcam. The debug messages slow down the process enough to make that happen. But if I modify your patch and take out the extra debug messages, it works well. The modified patch is below. Reproducing the bug in four separate instances I got: ohci_hcd :00:0a.0: poisoned hash at c67a285c ohci_hcd :00:0a.0: poisoned hash at c67b875c ohci_hcd :00:0a.0: poisoned hash at c67a179c ohci_hcd :00:0a.0: poisoned hash at c679c79c Sean Lazar --- ohci-mem.c.orig2009-12-16 22:57:49.0 + +++ ohci-mem.c2009-12-16 22:49:37.0 + @@ -103,8 +103,13 @@ { struct td**prev = hc-td_hash [TD_HASH_FUNC (td-td_dma)]; -while (*prev *prev != td) +while (*prev *prev != td) { +if ((unsigned long) *prev == 0xa7a7a7a7) { +ohci_info(hc, poisoned hash at %p\n, prev); +return; +} prev = (*prev)-td_hash; +} if (*prev) *prev = td-td_hash; else if ((td-hwINFO cpu_to_hc32(hc, TD_DONE)) != 0) Alan Stern wrote: On Wed, 2 Dec 2009, Sean wrote: Is there anything I can do to help? This is a show stopping bug for me. Here's a patch you can try. It will add a _lot_ of debugging information to the system log. Maybe it will help pin down the source of the problem. Alan Stern Index: 2.6.31/drivers/usb/host/ohci-hcd.c === --- 2.6.31.orig/drivers/usb/host/ohci-hcd.c +++ 2.6.31/drivers/usb/host/ohci-hcd.c @@ -197,7 +197,7 @@ static int ohci_urb_enqueue ( /* allocate the TDs (deferring hash chain updates) */ for (i = 0; i size; i++) { - urb_priv-td [i] = td_alloc (ohci, mem_flags); + urb_priv-td [i] = td_alloc (ohci, mem_flags, urb-dev, urb-ep); if (!urb_priv-td [i]) { urb_priv-length = i; urb_free_priv (ohci, urb_priv); Index: 2.6.31/drivers/usb/host/ohci-mem.c === --- 2.6.31.orig/drivers/usb/host/ohci-mem.c +++ 2.6.31/drivers/usb/host/ohci-mem.c @@ -82,7 +82,8 @@ dma_to_td (struct ohci_hcd *hc, dma_addr /* TDs ... */ static struct td * -td_alloc (struct ohci_hcd *hc, gfp_t mem_flags) +td_alloc (struct ohci_hcd *hc, gfp_t mem_flags, struct usb_device *udev, + struct usb_host_endpoint *ep) { dma_addr_t dma; struct td *td; @@ -94,6 +95,8 @@ td_alloc (struct ohci_hcd *hc, gfp_t mem td-hwNextTD = cpu_to_hc32 (hc, dma); td-td_dma = dma; /* hashed in td_fill */ + ohci_info(hc, td alloc for %s ep%x: %p\n, + udev-devpath, ep-desc.bEndpointAddress, td); } return td; } @@ -103,8 +106,14 @@ td_free (struct ohci_hcd *hc, struct td { struct td **prev = hc-td_hash [TD_HASH_FUNC (td-td_dma)]; - while (*prev *prev != td) + ohci_info(hc, td free %p\n, td); + while (*prev *prev != td) { + if ((unsigned long) *prev == 0xa7a7a7a7) { + ohci_info(hc, poisoned hash at %p\n, prev); + return; + } prev = (*prev)-td_hash; + } if (*prev) *prev = td-td_hash; else if ((td-hwINFO cpu_to_hc32(hc, TD_DONE)) != 0) Index: 2.6.31/drivers/usb/host/ohci-q.c === --- 2.6.31.orig/drivers/usb/host/ohci-q.c +++ 2.6.31/drivers/usb/host/ohci-q.c @@ -403,7 +403,7 @@ static struct ed *ed_get ( } /* dummy td; end of td list for ed */ - td = td_alloc (ohci, GFP_ATOMIC); + td = td_alloc (ohci, GFP_ATOMIC, udev, ep); if (!td) { /* out of memory */ ed_free (ohci, ed); -- 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 -- 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://linuxtv.org/hg/~pinchartl/uvcvideo/
Mauro, Please pull from http://linuxtv.org/hg/~pinchartl/uvcvideo/ for the following 6 changesets: 01/06: uvcvideo: Fix controls blacklisting http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=0826158f044c 02/06: uvcvideo: Switch to a monotonic clock for V4L2 buffers timestamps http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=101e9906760b 03/06: uvcvideo: Make the quirks module parameter override the built-in quirks http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=655336840534 04/06: uvcvideo: Fix alternate setting selection in isochronous mode http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=033b5968aa1a 05/06: uvcvideo: add another YUYV format GUID for iSight cameras http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=c1f376eae978 06/06: uvcvideo: Fix oops caused by a race condition in buffer dequeuing http://linuxtv.org/hg/~pinchartl/uvcvideo/?cmd=changeset;node=fc9c55827738 The last changeset is a high-prio one, and should probably be backported to the stable kernel line. uvc_ctrl.c |9 +++- uvc_driver.c | 65 ++- uvc_queue.c | 14 uvc_video.c | 55 ++--- uvcvideo.h |9 ++-- 5 files changed, 113 insertions(+), 39 deletions(-) -- Thanks, Laurent Pinchart -- 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
Question about the signal of struct v4l2_tuner to set value
Hi, all. I wonder about the usage of the signal variable of struct v4l2_tuner. I have found only to use it to get the signal strength on drivers. The si470x radio device can set the seek threshold value of RSSI(Received Signal Strength Indicator) when the device scans the channels, so if the current RSSI value is low than the seek threshold value, the device decides the frequency is nonvalidate channel. So, i need v4l2 interface to set the best seek threshold value and i want to use the signal of struct v4l2_tuner for it. Can the signal variable be used to set the value? -- 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 3/4 v12] TVP7002 driver for DM365
Hi Santiago, I found just a few small things. So when those are fixed, then I will make a hg tree for this driver and ask Mauro to pull from it. On Wednesday 16 December 2009 22:32:02 santiago.nu...@ridgerun.com wrote: From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides the implementation of the TVP7002 decoder driver for DM365. Implemented using the V4L2 DV presets API. Removed shadow register values. Testing shows that the device needs not to be powered down and up for correct behaviour. Improved readability. Uses helper function for preset information. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- drivers/media/video/tvp7002.c | 1189 + 1 files changed, 1189 insertions(+), 0 deletions(-) create mode 100644 drivers/media/video/tvp7002.c diff --git a/drivers/media/video/tvp7002.c b/drivers/media/video/tvp7002.c new file mode 100644 index 000..6ce57b6 --- /dev/null +++ b/drivers/media/video/tvp7002.c @@ -0,0 +1,1189 @@ +/* Texas Instruments Triple 8-/10-BIT 165-/110-MSPS Video and Graphics + * Digitizer with Horizontal PLL registers + * + * Copyright (C) 2009 Texas Instruments Inc + * Author: Santiago Nunez-Corrales santiago.nu...@ridgerun.com + * + * This code is partially based upon the TVP5150 driver + * written by Mauro Carvalho Chehab (mche...@infradead.org), + * the TVP514x driver written by Vaibhav Hiremath hvaib...@ti.com + * and the TVP7002 driver in the TI LSP 2.10.00.14. Revisions by + * Muralidharan Karicheri and Snehaprabha Narnakaje (TI). + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#include linux/delay.h +#include linux/i2c.h +#include linux/videodev2.h +#include media/tvp7002.h +#include media/v4l2-device.h +#include media/v4l2-chip-ident.h +#include media/v4l2-common.h +#include tvp7002_reg.h + +MODULE_DESCRIPTION(TI TVP7002 Video and Graphics Digitizer driver); +MODULE_AUTHOR(Santiago Nunez-Corrales santiago.nu...@ridgerun.com); +MODULE_LICENSE(GPL); + +/* Module Name */ +#define TVP7002_MODULE_NAME tvp7002 + +/* I2C retry attempts */ +#define I2C_RETRY_COUNT (5) + +/* End of registers */ +#define TVP7002_EOR 0x5c + +/* Read write definition for registers */ +#define TVP7002_READ 0 +#define TVP7002_WRITE1 +#define TVP7002_RESERVED 2 + +/* Interlaced vs progressive mask and shift */ +#define TVP7002_IP_SHIFT 5 +#define TVP7002_INPR_MASK(0x01 TVP7002_IP_SHIFT) + +/* Shift for CPL and LPF registers */ +#define TVP7002_CL_SHIFT 8 +#define TVP7002_CL_MASK 0x0f + +/* Debug functions */ +static int debug; +module_param(debug, bool, 0644); +MODULE_PARM_DESC(debug, Debug level (0-2)); + +/* Structure for register values */ +struct i2c_reg_value { + u8 reg; + u8 value; + u8 type; +}; + +/* + * Register default values (according to tvp7002 datasheet) + * In the case of read-only registers, the value (0xff) is + * never written. R/W functionality is controlled by the + * writable bit in the register struct definition. + */ +static const struct i2c_reg_value tvp7002_init_default[] = { + { TVP7002_CHIP_REV, 0xff, TVP7002_READ }, + { TVP7002_HPLL_FDBK_DIV_MSBS, 0x67, TVP7002_WRITE }, + { TVP7002_HPLL_FDBK_DIV_LSBS, 0x20, TVP7002_WRITE }, + { TVP7002_HPLL_CRTL, 0xa0, TVP7002_WRITE }, + { TVP7002_HPLL_PHASE_SEL, 0x80, TVP7002_WRITE }, + { TVP7002_CLAMP_START, 0x32, TVP7002_WRITE }, + { TVP7002_CLAMP_W, 0x20, TVP7002_WRITE }, + { TVP7002_HSYNC_OUT_W, 0x60, TVP7002_WRITE }, + { TVP7002_B_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_G_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_R_FINE_GAIN, 0x00, TVP7002_WRITE }, + { TVP7002_B_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_G_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_R_FINE_OFF_MSBS, 0x80, TVP7002_WRITE }, + { TVP7002_SYNC_CTL_1, 0x20, TVP7002_WRITE }, + { TVP7002_HPLL_AND_CLAMP_CTL, 0x2e, TVP7002_WRITE }, + { TVP7002_SYNC_ON_G_THRS, 0x5d, TVP7002_WRITE }, + { TVP7002_SYNC_SEPARATOR_THRS, 0x47, TVP7002_WRITE }, + { TVP7002_HPLL_PRE_COAST, 0x00, TVP7002_WRITE }, + { TVP7002_HPLL_POST_COAST, 0x00,
Re: [PATCH 2/4 v12] Definitions for TVP7002 in DM365
On Wednesday 16 December 2009 22:31:54 santiago.nu...@ridgerun.com wrote: From: Santiago Nunez-Corrales santiago.nu...@ridgerun.com This patch provides the required definitions for the TVP7002 driver in DM365. Signed-off-by: Santiago Nunez-Corrales santiago.nu...@ridgerun.com --- drivers/media/video/tvp7002_reg.h | 150 + include/media/tvp7002.h | 56 ++ 2 files changed, 206 insertions(+), 0 deletions(-) create mode 100644 drivers/media/video/tvp7002_reg.h create mode 100644 include/media/tvp7002.h diff --git a/drivers/media/video/tvp7002_reg.h b/drivers/media/video/tvp7002_reg.h new file mode 100644 index 000..0e34ca9 --- /dev/null +++ b/drivers/media/video/tvp7002_reg.h @@ -0,0 +1,150 @@ +/* Texas Instruments Triple 8-/10-BIT 165-/110-MSPS Video and Graphics + * Digitizer with Horizontal PLL registers + * + * Copyright (C) 2009 Texas Instruments Inc + * Author: Santiago Nunez-Corrales santiago.nu...@ridgerun.com + * + * This code is partially based upon the TVP5150 driver + * written by Mauro Carvalho Chehab (mche...@infradead.org), + * the TVP514x driver written by Vaibhav Hiremath hvaib...@ti.com + * and the TVP7002 driver in the TI LSP 2.10.00.14 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +/* Naming conventions + * -- + * + * FDBK: Feedback + * DIV: Divider + * CTL: Control + * SEL: Select + * IN:Input + * OUT: Output + * R: Red + * G: Green + * B: Blue + * OFF: Offset + * THRS: Threshold + * DGTL: Digital + * LVL: Level + * PWR: Power + * MVIS: Macrovision + * W: Width + * H: Height + * ALGN: Alignment + * CLK: Clocks + * TOL: Tolerance + * BWTH: Bandwidth + * COEF: Coefficient + * STAT: Status + * AUTO: Automatic + * FLD: Field + * L: Line + */ + +#define TVP7002_CHIP_REV 0x00 +#define TVP7002_HPLL_FDBK_DIV_MSBS 0x01 +#define TVP7002_HPLL_FDBK_DIV_LSBS 0x02 +#define TVP7002_HPLL_CRTL0x03 +#define TVP7002_HPLL_PHASE_SEL 0x04 +#define TVP7002_CLAMP_START 0x05 +#define TVP7002_CLAMP_W 0x06 +#define TVP7002_HSYNC_OUT_W 0x07 +#define TVP7002_B_FINE_GAIN 0x08 +#define TVP7002_G_FINE_GAIN 0x09 +#define TVP7002_R_FINE_GAIN 0x0a +#define TVP7002_B_FINE_OFF_MSBS 0x0b +#define TVP7002_G_FINE_OFF_MSBS 0x0c +#define TVP7002_R_FINE_OFF_MSBS 0x0d +#define TVP7002_SYNC_CTL_1 0x0e +#define TVP7002_HPLL_AND_CLAMP_CTL 0x0f +#define TVP7002_SYNC_ON_G_THRS 0x10 +#define TVP7002_SYNC_SEPARATOR_THRS 0x11 +#define TVP7002_HPLL_PRE_COAST 0x12 +#define TVP7002_HPLL_POST_COAST 0x13 +#define TVP7002_SYNC_DETECT_STAT 0x14 +#define TVP7002_OUT_FORMATTER0x15 +#define TVP7002_MISC_CTL_1 0x16 +#define TVP7002_MISC_CTL_2 0x17 +#define TVP7002_MISC_CTL_3 0x18 +#define TVP7002_IN_MUX_SEL_1 0x19 +#define TVP7002_IN_MUX_SEL_20x1a +#define TVP7002_B_AND_G_COARSE_GAIN 0x1b +#define TVP7002_R_COARSE_GAIN0x1c +#define TVP7002_FINE_OFF_LSBS0x1d +#define TVP7002_B_COARSE_OFF 0x1e +#define TVP7002_G_COARSE_OFF0x1f +#define TVP7002_R_COARSE_OFF0x20 +#define TVP7002_HSOUT_OUT_START 0x21 +#define TVP7002_MISC_CTL_4 0x22 +#define TVP7002_B_DGTL_ALC_OUT_LSBS 0x23 +#define TVP7002_G_DGTL_ALC_OUT_LSBS 0x24 +#define TVP7002_R_DGTL_ALC_OUT_LSBS 0x25 +#define TVP7002_AUTO_LVL_CTL_ENABLE 0x26 +#define TVP7002_DGTL_ALC_OUT_MSBS0x27 +#define TVP7002_AUTO_LVL_CTL_FILTER 0x28 +/* Reserved 0x29*/ +#define TVP7002_FINE_CLAMP_CTL 0x2a +#define TVP7002_PWR_CTL 0x2b +#define TVP7002_ADC_SETUP0x2c +#define TVP7002_COARSE_CLAMP_CTL 0x2d +#define TVP7002_SOG_CLAMP0x2e +#define TVP7002_RGB_COARSE_CLAMP_CTL 0x2f +#define TVP7002_SOG_COARSE_CLAMP_CTL 0x30 +#define TVP7002_ALC_PLACEMENT0x31 +/* Reserved 0x32 */ +/* Reserved 0x33 */ +#define TVP7002_MVIS_STRIPPER_W 0x34