Re: What ever happened to standardizing signal level?

2010-05-30 Thread VDR User
On Sat, May 29, 2010 at 10:52 PM, hermann pitton
hermann-pit...@arcor.de wrote:

...troll spam removed...


Hermann, you're a known troll with clearly nothing to contribute to
this thread therefore you're comments are unwelcome.  Your mostly
incoherent rant sounds like the ramblings of somebody who has consumed
too much alcohol, and you're obviously using this mailing list as a
cry for attention.  I'll ask you kindly to stop wasting everyones time
with your moronic nonsense and direct your harassment elsewhere.  I'm
sure you can find something better to do with your time then polluting
this mailing list and making yourself look foolish.

To everyone else, please disregard this post and the imbecile in which
I'm replying to.
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread VDR User
On Sat, May 29, 2010 at 2:09 AM, Mike Booth mike_boot...@iprimus.com.au wrote:
 i think someone is too concerned about being precisely accurate. So much so
 that no-one can see the woods for the trees any more.

 Its not important to me that accuracy is spot on. I only want to know that
 when tuning the dish I'm getting \better or worse.

I tend to agree with this.  Ultimately what's important is not
necessarily that the readings are 100% accurate, but rather simply put
into some kind of universal scale that provides useful output to the
user.  Many users were happy to see some activity addressing this
issue and unfortunately it seems to have stalled out but I'm not sure
why.  I honestly felt there was enough common ground being discussed
that we'd have a solution by now.

Regards.
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Hans Verkuil
On Sunday 30 May 2010 09:07:46 VDR User wrote:
 On Sat, May 29, 2010 at 2:09 AM, Mike Booth mike_boot...@iprimus.com.au 
 wrote:
  i think someone is too concerned about being precisely accurate. So much so
  that no-one can see the woods for the trees any more.
 
  Its not important to me that accuracy is spot on. I only want to know that
  when tuning the dish I'm getting \better or worse.
 
 I tend to agree with this.  Ultimately what's important is not
 necessarily that the readings are 100% accurate, but rather simply put
 into some kind of universal scale that provides useful output to the
 user.  Many users were happy to see some activity addressing this
 issue and unfortunately it seems to have stalled out but I'm not sure
 why.  I honestly felt there was enough common ground being discussed
 that we'd have a solution by now.

To the best of my knowledge Mike Krufky intended to work on this but he
clearly no longer has time to do that work.

Mike, can you perhaps explain what you wanted to do? Hopefully someone else
can find the time to implement it.

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Markus Rechberger
Hi,

A little bit more ontopic, did anyone get around to read the
signallevel of the tda18721?
I wonder the register does not return any signallevel as indicated in
the specifications.

Markus
--
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: Tentative agenda for Helsinki mini-summit

2010-05-30 Thread Hans Verkuil
On Sunday 23 May 2010 20:02:59 Guennadi Liakhovetski wrote:
 On Sun, 23 May 2010, Hans Verkuil wrote:
 
  Hi all,
  
  This is a tentative agenda for the Helsinki mini-summit on June 14-16.
  
  Please reply to this thread if you have comments or want to add topics.
 
 [snip]
 
  8) soc-camera status. Particularly with regards to the remaining soc-camera
 dependencies in sensor drivers. Guennadi Liakhovetski.
 
 Don't think a formal presentation is needed, but I can tell a couple of 
 words to clarify the current status a bit.
 
  Comments? Topics I missed?
 
 No idea whether this is a worthy and suitable topic for this meeting, but:
 
 V4L(2) video output vs. framebuffer.
 
 Problem: Currently the standard way to provide graphical output on various 
 (embedded) displays like LCDs is to use a framebuffer driver. The 
 interface is well supported and widely adopted in the user-space, many 
 applications, including the X-server, various libraries like directfb, 
 gstreamer, mplayer, etc. In the kernel space, however, the subsystem has a 
 number of problems. It is unmaintained. The infrastructure is not being 
 further developed, every specific hardware driver is being supported by 
 the respective architecture community. But as video output hardware 
 evolves, more complex displays and buses appear and have to be supported, 
 the subsystem shows its aging. For example, there is currently no way to 
 write reusable across multiple platforms display drivers.
 
 OTOH V4L2 has a standard vodeo output driver support, it is not very 
 widely used, in the userspace I know only of gstreamer, that somehow 
 supports video-output v4l2 devices in latest versions. But, being a part 
 of the v4l2 subsystem, these drivers already now can take a full advantage 
 of all v4l2 APIs, including the v4l2-subdev API for the driver reuse.
 
 So, how can we help graphics driver developers on the one hand by 
 providing them with a capable driver framework (v4l2) and on the other 
 hand by simplifying the task of interfacing to the user-space?
 
 How about a v4l2-output - fbdev translation layer? You write a v4l2-output 
 driver and get a framebuffer device free of charge... TBH, I haven't given 
 this too much of a thought, but so far I don't see anything that would 
 make this impossible in principle. The video buffer management is quite 
 different between the two systems, but maybe we can teach video-output 
 drivers to work with just one buffer too? Anyway, feel free to tell me why 
 this is an absolutely impossible / impractical idea;)

I've added this to the agenda. I think this probably doesn't need a presentation
but will be more an open discussion.

I also think this is a very interesting topic to discuss more in-depth on
Tuesday.

Sakari, does Nokia have any framebuffer experts that might be interested in
discussing this as well on Tuesday?

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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: Tentative agenda for Helsinki mini-summit

2010-05-30 Thread Hans Verkuil
On Sunday 30 May 2010 09:59:59 Hans Verkuil wrote:
 On Wednesday 26 May 2010 17:46:16 Pawel Osciak wrote:
  Hi Hans,
  
  thank you for your work on this!
  
  Hans Verkuil wrote:
  
  3) videobuf/videobuf2: what are the shortcomings, what are the requirements
  for a 'proper' videobuf implementation, can the existing videobuf be fixed 
  or
  do we need a videobuf2. If the latter, what would be needed to convert
  existing drivers over to a videobuf2. Laurent Pinchart and Pawel Osciak. 
  This I'm
  sure requires a presentation.
  
  As Laurent volunteered to prepare the videobuf problems presentation, I 
  will
  hopefully make it before the summit with an initial (general) design for 
  the new
  videobuf2 - requirements, API, things like that. So I'm thinking about a 
  short
  presentation on this. What do you think?
 
 That's OK.
 
  4) Multi-planar support. Pawel Osciak.
  
  Yes. Will provide a short status update. Is a presentation of the whole 
  concept
  required? If so, I can conduct one as well.
 
 I don't think a presentation is required.
 
  9) Driver compliance. We need a framework for V4L2 driver compliance. Hans
 Verkuil.
  
  I am very interested in this!
  
  10) Discuss list of 'reference' programs to test against. Mauro?
  
  
  Ditto.
  
  During the memory handling brainstorming session earlier this year we also
  touched on creating some sort of a generic buffer model allowing for easy
  exchange between v4l buffers, framebuffers, texture buffers, etc. It is my
  opinion that we should not discuss this in Helsinki. The list of topics is
  already quite long and I think it is too early to start working on that. We
  probably need another brainstorming session first in order to come up with
  a reasonable proposal.
  
  I agree.
  
  Comments? Topics I missed?
  
  It would be great to touch on the following subjects if we find some time
  (and if people would be interested, I had little feedback on the list):
  
  1) Custom/pluggable allocators
  As most of us are aware there are important problems with memory allocation
  in videobuf that most of us have already faced.
  For those unfamiliar with the topic, please see my recent RFC:
  http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/19581
  
  I'd like to provide a design of an API:
  * for videobuf that would allow drivers to plug-in their own memory 
  allocation
routines,
  * future-proof enough to be usable with videobuf2 as well.
  
  Hoping for a (short-ish) discussion on that.
  
  2) Out-of-order buffer dequeuing and per-buffer wait queues in videobuf. 
  See:
  RFC: http://www.mail-archive.com/linux-media@vger.kernel.org/msg17319.html
  Patches: 
  http://www.mail-archive.com/linux-media@vger.kernel.org/msg17886.html
 
 These topics should all be folded into the videobuf topic. Due to the 
 importance
 of videobuf I expect that a considerable amount of time will be spend on this.
 
 On the first day I will probably put this topic last on the list and try to 
 get
 through the other topics fairly quickly so that we hopefully have 2-3 hours 
 for
 this topic.
 
 What makes this a difficult topic is that you have this list of relatively
 small sub-topics (like allocators, out-of-order dequeuing, videobuf 
 improvements,
 caching, etc. etc.), but it is not always easy to see the big picture: i.e.
 what is the goal that you are working towards and what is the purpose for 
 these
 smaller sub-topics in the bigger picture.
 
 I know that was difficult for me in the beginning, so I think it will probably
 help people if you also provide the big picture and the context within which 
 to
 place these sub-topics. The 'big picture' also includes the memory pool idea.
 Not that we will discuss this in Helsinki, but people should be aware that it
 will be part of a next phase.
 
 BTW, the videobuf presentation(s) can be longer than 10 minutes if needed.
 This is the 'big topic' of the summit, so we will have more time for this.

I just realized this is the second time I replied to your post :-)

Still, my comments at the end of my second reply are hopefully still useful.

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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


Version 2: Tentative agenda for Helsinki mini-summit

2010-05-30 Thread Hans Verkuil
Hi all,

This is the second version of a tentative agenda for the Helsinki mini-summit
on June 14-16.

Please reply to this thread if you have comments or want to add topics.

If you want to attend the summit then contact Sakari Ailus
(sakari.ai...@maxwell.research.nokia.com). We are very full already (over 20
attendees), so I'm not sure if there is still room left.

The overall layout of the summit is to use the first day to go through all
topics and either come to a conclusion quickly for the 'simple' topics, or
discuss enough so that everyone understands the problem for the more complex
issues.

The second day will be used for in-depth discussions on those complex topics
and on the third day we will go through all topics again and translate the
discussions into something concrete like a time-line, action items, etc.

We have a lot to discuss, so we almost certainly have to split the second day
into two tracks, each discussing different topics. If we do split up, then one
track will touch on the videobuf-related topics and the other on the remaining
topics.

The first day will also feature a few short presentations on various topics.
Presentations shouldn't be longer than, say, 10 minutes tops. Please keep them
as short and to the point as possible. These presentations are meant to get
everyone up to speed quickly. Most of us have an extensive background in video
hardware and the v4l subsystem, so you don't need to spend time explaining
things.

After each topic I've put the names of the main developers active in that area.
If you see your name, then make sure you know the status of that topic so you
can explain it to everyone else. If I think it warrants a presentation, then I
will mention that. Of course, if you disagree, or want/don't want to do a
presentation then just say so. It's a tentative agenda only.

The topics below are in no particular order except for the first one. I am
very pleased that Qualcomm has joined this project so I think it would be
nice to start the meeting off with a presentation on their HW architecture.

1) Presentation on the Qualcomm video hw architecture. Most of us have no
   experience with Qualcomm hardware, so I've asked Jeff Zhong to give a short
   overview of their video hardware.

2) Removal of V4L1: status of driver conversion in the kernel, status of
   moving v4l1-v4l2 conversion into libv4l1. What needs to be done, when
   will it be done and who will do it. Driver conversion: Hans Verkuil,
   libv4l1 conversion: Hans de Goede.

3) videobuf/videobuf2: what are the shortcomings, what are the requirements for
   a 'proper' videobuf implementation, can the existing videobuf be fixed or do
   we need a videobuf2. If the latter, what would be needed to convert existing
   drivers over to a videobuf2. Related topics (custom/pluggable allocators,
   out-of-order buffer dequeuing and per-buffer wait queues) will also be part
   of this topic.
   Laurent Pinchart and Pawel Osciak with presentations.

4) Multi-planar support. Pawel Osciak.

5) Media Controller Roadmap. Laurent Pinchart has a presentation.

6) TO DO list regarding V4L2 core framework including the new control framework.
   Hans Verkuil. Will be a presentation.

7) Status of the Texas Instruments drivers: omapX (Laurent Pinchart/Hiremath 
Vaibhav)
   and DM (Sergio Aguirre). Probably should be a short presentation.

8) soc-camera status. Particularly with regards to the remaining soc-camera
   dependencies in sensor drivers. Guennadi Liakhovetski.

9) Driver compliance. We need a framework for V4L2 driver compliance. Hans
   Verkuil.

10) Discuss list of 'reference' programs to test against. Mauro Carvalho Chehab.

11) Adopting old V4L1 programs and converting to V4L2. Hans de Goede?

12) Status of intel drivers. Xiaolin Zhang.

13) Remote Controllers. Presentation by Mauro Carvalho Chehab.

14) V4L2 video output vs. framebuffer. Guennadi Liakhovetski.

15) A processing plugin API for libv4l. Hans de Goede.
See: http://www.mail-archive.com/linux-media@vger.kernel.org/msg18993.html

It is my understanding that we will also have X11 and gstreamer experts on hand.
Topics relating to that are welcome.

During the memory handling brainstorming session earlier this year we also
touched on creating some sort of a generic buffer model allowing for easy
exchange between v4l buffers, framebuffers, texture buffers, etc. It is my
opinion that we should not discuss this in Helsinki. The list of topics is
already quite long and I think it is too early to start working on that. We
probably need another brainstorming session first in order to come up with
a reasonable proposal.

Comments? Topics I missed?

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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: TBS 6980 Dual Tuner PCI-e card.....not in Wiki at all?

2010-05-30 Thread Davor Emard
 hello, i can't comment on your questions about the Wiki, but i made
 the driver for TBS 6980 and i can ensure you that the driver will be
 released as open-source under GPL as soon as i have permission to do
 that, but compared to other cards at least even at the moment you can

Does this card need some firmware (and if it needs is it open or closed 
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: [PATCH v3 0/4] WL1273 FM Radio Driver

2010-05-30 Thread Hans Verkuil
On Monday 24 May 2010 14:21:39 Matti J. Aaltonen wrote:
 Hello again.
 
 And thanks for the comments.
 
 It the first patch I'm kind of suggesting a couple of additions to the
 general interface: signal level stuff in the hw seek struct and then a 
 function / IOCTL for asking for minimum and maximum for the level.
 
 There are many changes I'll follow by commenting to Hans's comments:
 
  1. WL1273_CID_FM_REGION for setting the region. This may not be a good
  candidate for standardization as the region control shouldn't exist 
  in the kernel in general...
 
 Is this region relevant for receive, transmit or both?
 
 Region is relevant for receiving only. Now I've changes the naming to band
 because TI uses that in their latest document version.

Based on this article: http://en.wikipedia.org/wiki/FM_broadcasting, there
seem to be only three bands for FM radio in practice: 87.5-108, 76-90 (Japan)
and 65-74 (former Soviet republics, some former eastern bloc countries).

So this should be a standard control. Since the latter band is being phased
out I think a menu control with just the two other bands is sufficient.

And I also think this should be a control of a new FM_RX class.

I know, that's not what I said last time. So sue me :-)

BTW: don't forget to update the V4L2 spec when adding new controls!
 
  2. WL1273_CID_FM_SEEK_SPACING: defines what resolution is used when 
  scanning 
  automatically for stations (50KHz, 100KHz or 200KHz). This could be
  useful in general. Could this be a field in the v4l2_hw_freq_seek struct?
 
 I think this belongs in v4l2_hw_freq_seek.
 
 I've added spacing to the hw seek struct.
 
  3. WL1273_CID_FM_RDS_CTRL for turning on and off the RDS reception / 
  transmission. To me this seems like a useful standard control...
 
 This already exists. You can enable/disable RDS by setting the 
  V4L2_TUNER_SUB_RDS subchannel bit when calling S_TUNER or S_MODULATOR.
 
 I did this.
 
  4. WL1273_CID_SEARCH_LVL for setting the threshold level when detecting 
  radio
  channels when doing automatic scan. This could be useful for fine tuning
  because automatic  scanning seems to be kind of problematic... This could 
  also be a field in the v4l2_hw_freq_seek struct?
 
 This too seems reasonable to add to v4l2_hw_freq_seek. Although what sort of
 unit this level would have might be tricky. What is the unit for your 
 hardware?
 
 I've added this as well. The unit is some kind of dB value: 8 bit signed
 number in 2أ�s complement format Each LSB = 1.5051 dBuV. I also added min
 and max values for the level.

I'm uncertain about this. I wonder if this shouldn't be something that is
hardcoded in the driver. Setting these levels to sensible values is not a
trivial exercise. It is also very much device specific.

I think it is best to do hardcode it now and once we can expose controls
that are sub-device specific (this is being worked on), then we can add
WL1273-specific controls for this.

 
 
  Could the VIDIOC_S_MODULATOR and VIDIOC_S_TUNER IOCTLs be used for setting
  the TX/RX mode?
 
 Not entirely sure what you want to achieve here. I gather that the radio is
 either receiving, transmitting or off? So it can't receive and transmit at 
 the
 same time, right?
 
 Yes the radio can only transmit or receive at a time. And the states are:
 On (RX or TX), Off and Suspended. In the suspended mode that firmware patch
 is kept in the memory and it doesn't need to get uploaded again when operation
 resumes.
 
  would expect in that case that calling S_TUNER or S_MODULATOR would switch 
  it
  to either receive or transmit mode. S_HW_FREQ_SEEK would of course also 
  switch
  it to receive mode.
 
 I added this...
 
  There isn't anything to turn off the radio at the moment. Perhaps you can 
  just
  automatically turn it off if nobody has the radio device or alsa device 
  open?
 
 Yes that can be done. Also volume control could be used. But also there's
 nothing to put the radio to stand-by (suspension).

Is there a difference in power consumption between the 'off' and 'suspend' state
of the device? I assume that 'off' has the lowest power consumption.

In that case I would have the driver go to suspend when no one has opened the
radioX device. And if the driver is asked to go to suspend (that's the linux
suspend state), then the driver can turn off the radio and on resume it will
reload the firmware.

Does that sound reasonable?
  
  Now there already exits a class for fm transmitters: V4L2_CTRL_CLASS_FM_TX.
  Should a corresponding class be created for FM tuners?
 
 I'm not sure that we need any. I think the only control that we need is to 
 set
 the region, and I think that is more appropriate as a private (?) user 
 control
 since it is definitely something that users should be easily able to change.
 
 OK, that's fine by me
 
 This probably should be discussed a bit more.
 
 Ok.
 
 There's also two new things. The chip supports in addition to the normal
 HW seek a HW block seek, which 

Re: [PATCH v3 1/4] V4L2: Add features to the interface.

2010-05-30 Thread Hans Verkuil
On Monday 24 May 2010 14:21:40 Matti J. Aaltonen wrote:
 Add fields spacing, level_min, level_max and level to struct 
 v4l2_hw_freq_seek.
 The level is used for determining which channels are considered receivable
 during HW scan.

As mentioned I don't think the level stuff should be added at the moment.
The spacing field is no problem, but don't forget to update the V4L2 spec as
well. Also document there what should happen if spacing == 0 (which is the
case for existing apps). It basically boils down to the fact that the driver
uses the spacing as a hint only and will adjust it to whatever the hardware
supports.

 Add  VIDIOC_G_HW_FREQ_SEEK to IOCTL codes. This is used for getting the 
 minimum and
 maximum values for the level field in the v4l2_hw_freq_seek struct.

Without level support we can drop this for now.

Regards,

Hans

 
 Signed-off-by: Matti J. Aaltonen matti.j.aalto...@nokia.com
 ---
  include/linux/videodev2.h  |6 +-
  include/media/v4l2-ioctl.h |2 ++
  2 files changed, 7 insertions(+), 1 deletions(-)
 
 diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
 index 418dacf..7a81a9c 100644
 --- a/include/linux/videodev2.h
 +++ b/include/linux/videodev2.h
 @@ -1377,7 +1377,11 @@ struct v4l2_hw_freq_seek {
   enum v4l2_tuner_type  type;
   __u32 seek_upward;
   __u32 wrap_around;
 - __u32 reserved[8];
 + __u32 spacing;
 + __s32 level_min;
 + __s32 level_max;
 + __s32 level;
 + __u32 reserved[4];
  };
  
  /*
 diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
 index e8ba0f2..828cf13 100644
 --- a/include/media/v4l2-ioctl.h
 +++ b/include/media/v4l2-ioctl.h
 @@ -220,6 +220,8 @@ struct v4l2_ioctl_ops {
   /* Log status ioctl */
   int (*vidioc_log_status)   (struct file *file, void *fh);
  
 + int (*vidioc_g_hw_freq_seek)   (struct file *file, void *fh,
 + struct v4l2_hw_freq_seek *a);
   int (*vidioc_s_hw_freq_seek)   (struct file *file, void *fh,
   struct v4l2_hw_freq_seek *a);
  
 

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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 v3 4/4] V4L2: WL1273 FM Radio: Controls for the FM radio.

2010-05-30 Thread Hans Verkuil
On Monday 24 May 2010 14:21:43 Matti J. Aaltonen wrote:
 This file implements V4L2 controls for using the Texas Instruments
 WL1273 FM Radio.
 
 Signed-off-by: Matti J. Aaltonen matti.j.aalto...@nokia.com
 ---
  drivers/media/radio/Kconfig|   15 +
  drivers/media/radio/Makefile   |1 +
  drivers/media/radio/radio-wl1273.c | 1876 
 
  3 files changed, 1892 insertions(+), 0 deletions(-)
  create mode 100644 drivers/media/radio/radio-wl1273.c
 
 diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
 index 83567b8..209fd37 100644
 --- a/drivers/media/radio/Kconfig
 +++ b/drivers/media/radio/Kconfig
 @@ -452,4 +452,19 @@ config RADIO_TIMBERDALE
 found behind the Timberdale FPGA on the Russellville board.
 Enabling this driver will automatically select the DSP and tuner.
  
 +config RADIO_WL1273
 + tristate Texas Instruments WL1273 I2C FM Radio
 +depends on I2C  VIDEO_V4L2  SND
 + select FW_LOADER
 + ---help---
 +   Choose Y here if you have this FM radio chip.
 +
 +   In order to control your radio card, you will need to use programs
 +   that are compatible with the Video For Linux 2 API.  Information on
 +   this API and pointers to v4l2 programs may be found at
 +   file:Documentation/video4linux/API.html.
 +
 +   To compile this driver as a module, choose M here: the
 +   module will be called radio-wl1273.
 +
  endif # RADIO_ADAPTERS
 diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
 index f615583..d297074 100644
 --- a/drivers/media/radio/Makefile
 +++ b/drivers/media/radio/Makefile
 @@ -26,5 +26,6 @@ obj-$(CONFIG_RADIO_TEA5764) += radio-tea5764.o
  obj-$(CONFIG_RADIO_SAA7706H) += saa7706h.o
  obj-$(CONFIG_RADIO_TEF6862) += tef6862.o
  obj-$(CONFIG_RADIO_TIMBERDALE) += radio-timb.o
 +obj-$(CONFIG_RADIO_WL1273) += radio-wl1273.o
  
  EXTRA_CFLAGS += -Isound
 diff --git a/drivers/media/radio/radio-wl1273.c 
 b/drivers/media/radio/radio-wl1273.c
 new file mode 100644
 index 000..f19b100
 --- /dev/null
 +++ b/drivers/media/radio/radio-wl1273.c
 @@ -0,0 +1,1876 @@
 +/*
 + * Driver for the Texas Instruments WL1273 FM radio.
 + *
 + * Copyright (C) Nokia Corporation
 + * Author: Matti J. Aaltonen matti.j.aalto...@nokia.com
 + *
 + * This program is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU General Public License
 + * version 2 as published by the Free Software Foundation.
 + *
 + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 + */
 +
 +#undef DEBUG
 +
 +#include asm/unaligned.h
 +#include linux/delay.h
 +#include linux/firmware.h
 +#include linux/mfd/wl1273-core.h
 +#include linux/platform_device.h
 +#include media/v4l2-common.h
 +#include media/v4l2-device.h
 +#include media/v4l2-ioctl.h
 +
 +#define DRIVER_DESC Wl1273 FM Radio - V4L2
 +
 +#define WL1273_POWER_SET_OFF 0
 +#define WL1273_POWER_SET_FM  (1  0)
 +#define WL1273_POWER_SET_RDS (1  1)
 +#define WL1273_POWER_SET_RETENTION   (1  4)
 +
 +#define WL1273_PUPD_SET_OFF  0x00
 +#define WL1273_PUPD_SET_ON   0x01
 +#define WL1273_PUPD_SET_RETENTION0x10
 +
 +#define WL1273_FREQ_MULT (1 / 625)
 +#define WL1273_INV_FREQ_MULT (625 / 1)
 +/*
 + * static unsigned char radio_band - Band
 + *
 + * The bands are 0=Japan, 1=USA-Europe. USA-Europe is the default.
 + */
 +static unsigned char radio_band = 1;
 +module_param(radio_band, byte, 0);
 +MODULE_PARM_DESC(radio_band, Band: 0=Japan, 1=USA-Europe*);
 +
 +/*
 + * static int radio_nr - The number of the radio device
 + *
 + * The default is 0.
 + */
 +static int radio_nr = -1;
 +module_param(radio_nr, int, 0);
 +MODULE_PARM_DESC(radio_nr, Radio Nr);
 +
 +struct wl1273_device {
 + struct v4l2_device v4l2dev;
 + struct video_device videodev;
 + struct device *dev;
 + struct wl1273_core *core;
 + bool rds_on;
 +};
 +
 +static int wl1273_fm_set_tx_freq(struct wl1273_core *core, unsigned int freq)
 +{
 + int r = 0;
 +
 + if (freq  core-bands[core-band].bottom_frequency) {
 + dev_err(core-i2c_dev-dev,
 + Frequency out of range: %d  %d\n,
 + freq, core-bands[core-band].bottom_frequency);
 + return -EDOM;
 + }
 +
 + if (freq  core-bands[core-band].top_frequency) {
 + dev_err(core-i2c_dev-dev,
 + Frequency out of range: %d  %d\n,
 + freq, core-bands[core-band].top_frequency);
 + 

PROBLEM: 2.6.34-rc7 kernel panics BUG: unable to handle kernel NULL pointer dereference at (null) while channel scan running

2010-05-30 Thread Silamael
Hi there,

When i try to scan for available DBV-S channels kernel panics:
BUG: unable to handle kernel NULL pointer dereference at (null)

I'm trying to setup a TV box. Contains an Intel Atom N270 CPU, 2GB RAM,
1 TB SATA Hard-Drive. Mainboard is a MSI IM-945GSE Mini-ITX motherboard.
The DVB-S card is a WinTV Nexus-S Rev 2.3 card.
Kernel is a custom built kernel:
Linux version 2.6.34-rc7 (r...@filmdose) (gcc version 4.4.4 (Debian
4.4.4-1) ) #7 SMP Fri May 21 18:06:19 CEST 2010

Channel scan starts fine, finds some channels and after a random
duration it crashes. I already tried starting the kernel with nosmp,
noapic, and noacpi options but that does not change anything.

Kernel trace:
---
[  773.280361] IP: [f825a7ba] saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
[  773.280361] *pde = 
[  773.280361] Oops:  [#1] SMP
[  773.280361] last sysfs file: /sys/module/nfsd/initstate
[  773.280361] Modules linked in: nfsd exportfs nfs lockd nfs_acl
auth_rpcgss sunrpc f71882fg coretemp loop lnbp21 stv0299 dvb_ttpci
snd_hda_codec_realtek dvb_core saa7146_vv videodev v4l1_compat
snd_hda_intel saa7146 snd_hda_codec videobuf_dma_sg snd_hwdep
videobuf_core snd_pcm i2c_i801 ttpci_eeprom psmouse snd_timer intel_agp
evdev pcspkr snd i2c_core serio_raw agpgart video processor rng_core
soundcore button output snd_page_alloc usb_storage uhci_hcd ehci_hcd
thermal sd_mod crc_t10dif thermal_sys usbcore nls_base e1000e [last
unloaded: scsi_wait_scan]
[  773.280361]
[  773.280361] Pid: 0, comm: swapper Not tainted 2.6.34-rc7 #7
A9830IMS/A9830IMS
[  773.280361] EIP: 0060:[f825a7ba] EFLAGS: 00010246 CPU: 0
[  773.280361] EIP is at saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
[  773.280361] EAX: f68b3008 EBX: f733d900 ECX: 0001 EDX: 0002
[  773.280361] ESI: ffd4 EDI: f68b3000 EBP:  ESP: c135fefc
[  773.280361]  DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
[  773.280361] Process swapper (pid: 0, ti=c135e000 task=c138cb60
task.ti=c135e000)
[  773.280361] Stack:
[  773.280361]  f68b3000 f733d900 c13640bc 000a f825e5f6 f733d900
fff7fbf7 f825a759
[  773.280361] 0 f733d900  f812bdfc fff7fbf7 f6a1e240 
c106793a 
[  773.280361] 0  c1364080 000a c13640bc c135ff80 c1069072
000a 000a
[  773.280361] Call Trace:
[  773.280361]  [f825e5f6] ? vbi_irq_done+0x99/0x9f [saa7146_vv]
[  773.280361]  [f825a759] ? vv_callback+0x10f/0x112 [saa7146_vv]
[  773.280361]  [f812bdfc] ? interrupt_hw+0x9f/0x1a8 [saa7146]
[  773.280361]  [c106793a] ? handle_IRQ_event+0x49/0xe7
[  773.280361]  [c1069072] ? handle_level_irq+0x55/0x9e
[  773.280361]  [c10044cb] ? handle_irq+0x17/0x1c
[  773.280361]  [c1003da9] ? do_IRQ+0x38/0x8e
[  773.280361]  [c1002d30] ? common_interrupt+0x30/0x38
[  773.280361]  [c10086e6] ? mwait_idle+0x59/0x5e
[  773.280361]  [c1001ae7] ? cpu_idle+0x91/0xaa
[  773.280361]  [c13b9881] ? start_kernel+0x31c/0x321
[  773.280361] Code: 50 fc 25 f8 e8 9d 0e 01 c9 83 c4 1c 8b 43 44 89 c2
c1 fa 08 38 c2 75 04 0f 0b eb fe 8b 77 08 8d 47 08 39 c6 74 6b 83 ee 2c
31 ed 8b 4e 2c 8b 56 30 89 51 04 89 0a c7 46 2c 00 01 10 00 c7 46 30
[  773.280361] EIP: [f825a7ba] saa7146_buffer_next+0x5e/0x1ed
[saa7146_vv] SS:ESP 0068:c135fefc
[  773.280361] CR2: 
[  773.985900] ---[ end trace ec43c18100749f7e ]---
[  773.999765] Kernel panic - not syncing: Fatal exception in interrupt
[  774.018832] Pid: 0, comm: swapper Tainted: G  D2.6.34-rc7 #7
[  774.037908] Call Trace:
[  774.045272]  [c126b5c4] ? panic+0x37/0xa8
[  774.057844]  [c10050e0] ? oops_end+0x88/0x93
[  774.071195]  [c1019bfd] ? no_context+0x10d/0x116
[  774.085581]  [c1019f62] ? do_page_fault+0x0/0x242
[  774.100232]  [c1019d04] ? bad_area_nosemaphore+0xa/0xc
[  774.116194]  [c126d6c3] ? error_code+0x73/0x78
[  774.130077]  [f825a7ba] ? saa7146_buffer_next+0x5e/0x1ed [saa7146_vv]
[  774.149941]  [f825e5f6] ? vbi_irq_done+0x99/0x9f [saa7146_vv]
[  774.167718]  [f825a759] ? vv_callback+0x10f/0x112 [saa7146_vv]
[  774.185762]  [f812bdfc] ? interrupt_hw+0x9f/0x1a8 [saa7146]
[  774.203023]  [c106793a] ? handle_IRQ_event+0x49/0xe7
[  774.218459]  [c1069072] ? handle_level_irq+0x55/0x9e
[  774.233890]  [c10044cb] ? handle_irq+0x17/0x1c
[  774.247758]  [c1003da9] ? do_IRQ+0x38/0x8e
[  774.260590]  [c1002d30] ? common_interrupt+0x30/0x38
[  774.276023]  [c10086e6] ? mwait_idle+0x59/0x5e
[  774.289890]  [c1001ae7] ? cpu_idle+0x91/0xaa
[  774.303243]  [c13b9881] ? start_kernel+0x31c/0x321

I can easily reproduce this panic using following command:
scan -v /usr/share/dvb/dvb-s/Astra-19.2E

Environment:

scripts/ver_linux output:
Linux filmdose 2.6.34-rc7 #7 SMP Fri May 21 18:06:19 CEST 2010 i686
GNU/Linux

Gnu C  4.4.4
Gnu make   3.81
binutils   2.20.1
util-linux scripts/ver_linux: 23: fdformat: not found
mount  support

Re: Idea of a v4l - fb interface driver

2010-05-30 Thread Dave Airlie
On Sat, May 29, 2010 at 6:06 AM, Ville Syrjälä syrj...@sci.fi wrote:
 On Fri, May 28, 2010 at 03:41:46PM -0400, Alex Deucher wrote:
 On Fri, May 28, 2010 at 3:15 PM, Florian Tobias Schandinat
  If he wants different (independent) content on each output, just provide
  multiple /dev/fbX devices. I admit that we could use a controlling 
  interface
  here that decides which user (application) might draw at a time to the
  interface which they currently only do if they are the active VT.
  If you want 2 or more outputs to be merged as one just configure this in 
  the
  driver.
  The only thing that is impossible to do in fbdev is controlling 2 or more
  independent display outputs that access the same buffer. But that's not an
  issue I think.
  The things above only could use a unification of how to set them up on
  module load time (as only limited runtime changes are permited given that 
  we
  must always be able to support a mode that we once entered during runtime).
 

 What about changing outputs on the fly (turn off VGA, turn on DVI,
 switch between multi-head and single-head, etc) or encoders shared
 between multiple connectors (think a single dac shared between a VGA
 and a TV port); how do you expose them easily as separate fbdevs?
 Lots of stuff is doable with fbdev, but it's nicer with kms.

 But actually getting your data onto the screen is a lot easier with
 fbdev. There's no standard API in drm to actually allocate the
 framebuffer and manipulate it. You always need a user space driver
 to go along with the kernel bits.

 I'm not saying fbdev is better than drm/kms but at least it can be
 used to write simple applications that work across different
 hardware. Perhaps that's something that should be addressed in the
 drm API.


http://www.mail-archive.com/dri-de...@lists.sourceforge.net/msg48461.html

I started writing a dumb API for KMS, it got stuck on whether to
expose cursors or not, I must dig out the branch.

It basically was a create + map API. I'll see if I can get it finished off.

The main reason we avoided a fully generic interface is there isn't
really a generic way to abstract acceleration on a modern GPU, and
buffer allocation on most modern GPUs doesn't want a linear simple
buffer. We felt doing a compromised generic interface would lead
people down the wrong path into believing they could easily move from
the dumb interface to a real accelerated one.

There is a userspace library called libkms that abstracts this stuff,
but I'd like to just have the kernel do it.

Dave.
--
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/3] tm6000: rewrite init and fini

2010-05-30 Thread stefan . ringel
From: Stefan Ringel stefan.rin...@arcor.de

rewrite tm6000_audio_init and tm6000_audio_fini

Signed-off-by: Stefan Ringel stefan.rin...@arcor.de
---
 drivers/staging/tm6000/tm6000-alsa.c |  127 +-
 drivers/staging/tm6000/tm6000.h  |   15 
 2 files changed, 63 insertions(+), 79 deletions(-)

diff --git a/drivers/staging/tm6000/tm6000-alsa.c 
b/drivers/staging/tm6000/tm6000-alsa.c
index ce081cd..477dd78 100644
--- a/drivers/staging/tm6000/tm6000-alsa.c
+++ b/drivers/staging/tm6000/tm6000-alsa.c
@@ -35,29 +35,6 @@
} while (0)
 
 /
-   Data type declarations - Can be moded to a header file later
- /
-
-struct snd_tm6000_card {
-   struct snd_card*card;
-
-   spinlock_t reg_lock;
-
-   atomic_t   count;
-
-   unsigned int   period_size;
-   unsigned int   num_periods;
-
-   struct tm6000_core *core;
-   struct tm6000_buffer   *buf;
-
-   intbufsize;
-
-   struct snd_pcm_substream *substream;
-};
-
-
-/
Module global static vars
  /
 
@@ -311,21 +288,6 @@ static struct snd_pcm_ops snd_tm6000_pcm_ops = {
 /*
  * create a PCM device
  */
-static int __devinit snd_tm6000_pcm(struct snd_tm6000_card *chip,
-   int device, char *name)
-{
-   int err;
-   struct snd_pcm *pcm;
-
-   err = snd_pcm_new(chip-card, name, device, 0, 1, pcm);
-   if (err  0)
-   return err;
-   pcm-private_data = chip;
-   strcpy(pcm-name, name);
-   snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, snd_tm6000_pcm_ops);
-
-   return 0;
-}
 
 /* FIXME: Control interface - How to control volume/mute? */
 
@@ -336,73 +298,64 @@ static int __devinit snd_tm6000_pcm(struct 
snd_tm6000_card *chip,
 /*
  * Alsa Constructor - Component probe
  */
-
-int tm6000_audio_init(struct tm6000_core *dev, int idx)
+int tm6000_audio_init(struct tm6000_core *dev)
 {
-   struct snd_card *card;
-   struct snd_tm6000_card  *chip;
-   int rc, len;
-   charcomponent[14];
+   struct snd_card *card;
+   struct snd_tm6000_card  *chip;
+   int rc;
+   static int  devnr;
+   charcomponent[14];
+   struct snd_pcm  *pcm;
+
+   if (!dev)
+   return 0;
 
-   if (idx = SNDRV_CARDS)
+   if (devnr = SNDRV_CARDS)
return -ENODEV;
 
-   if (!enable[idx])
+   if (!enable[devnr])
return -ENOENT;
 
-   rc = snd_card_create(index[idx], id[idx], THIS_MODULE, 0, card);
+   rc = snd_card_create(index[devnr], id[devnr], THIS_MODULE, 0, card);
if (rc  0) {
-   snd_printk(KERN_ERR cannot create card instance %d\n, idx);
+   snd_printk(KERN_ERR cannot create card instance %d\n, devnr);
return rc;
}
 
-   chip = kzalloc(sizeof(*chip), GFP_KERNEL);
+   chip = kzalloc(sizeof(struct snd_tm6000_card), GFP_KERNEL);
if (!chip) {
rc = -ENOMEM;
goto error;
}
 
-   chip-core = dev;
-   chip-card = card;
-
-   strcpy(card-driver, tm6000-alsa);
sprintf(component, USB%04x:%04x,
le16_to_cpu(dev-udev-descriptor.idVendor),
le16_to_cpu(dev-udev-descriptor.idProduct));
-   snd_component_add(card, component);
-
-   if (dev-udev-descriptor.iManufacturer)
-   len = usb_string(dev-udev,
-dev-udev-descriptor.iManufacturer,
-card-longname, sizeof(card-longname));
-   else
-   len = 0;
-
-   if (len  0)
-   strlcat(card-longname,  , sizeof(card-longname));
+   snd_component_add(card, component); 
 
-   strlcat(card-longname, card-shortname, sizeof(card-longname));
-
-   len = strlcat(card-longname,  at , sizeof(card-longname));
-
-   if (len  sizeof(card-longname))
-   usb_make_path(dev-udev, card-longname + len,
- sizeof(card-longname) - len);
-
-   strlcat(card-longname,
-   dev-udev-speed == USB_SPEED_LOW ? , low speed :
-   dev-udev-speed == USB_SPEED_FULL ? , full speed :
-  , high speed,
-   sizeof(card-longname));
-
-   rc = snd_tm6000_pcm(chip, 0, tm6000 Digital);
+   spin_lock_init(chip-reg_lock);
+   rc = snd_pcm_new(card, TM6000 Audio, 0, 0, 1, pcm);
if (rc  

[PATCH 3/3] tm6000: move dvb into a separate kern module

2010-05-30 Thread stefan . ringel
From: Stefan Ringel stefan.rin...@arcor.de

move dvb into a separate kern module


Signed-off-by: Stefan Ringel stefan.rin...@arcor.de
---
 drivers/staging/tm6000/Kconfig|4 +-
 drivers/staging/tm6000/Makefile   |5 +--
 drivers/staging/tm6000/tm6000-cards.c |   31 +---
 drivers/staging/tm6000/tm6000-core.c  |1 +
 drivers/staging/tm6000/tm6000-dvb.c   |   83 -
 drivers/staging/tm6000/tm6000.h   |1 +
 6 files changed, 89 insertions(+), 36 deletions(-)

diff --git a/drivers/staging/tm6000/Kconfig b/drivers/staging/tm6000/Kconfig
index 3657e33..c725356 100644
--- a/drivers/staging/tm6000/Kconfig
+++ b/drivers/staging/tm6000/Kconfig
@@ -26,8 +26,8 @@ config VIDEO_TM6000_ALSA
  module will be called tm6000-alsa.
 
 config VIDEO_TM6000_DVB
-   bool DVB Support for tm6000 based TV cards
-   depends on VIDEO_TM6000  DVB_CORE  EXPERIMENTAL
+   tristate DVB Support for tm6000 based TV cards
+   depends on VIDEO_TM6000  DVB_CORE  USB  EXPERIMENTAL
select DVB_ZL10353
---help---
  This adds support for DVB cards based on the tm5600/tm6000 chip.
diff --git a/drivers/staging/tm6000/Makefile b/drivers/staging/tm6000/Makefile
index 93370fc..4129c18 100644
--- a/drivers/staging/tm6000/Makefile
+++ b/drivers/staging/tm6000/Makefile
@@ -4,12 +4,9 @@ tm6000-objs := tm6000-cards.o \
   tm6000-video.o \
   tm6000-stds.o
 
-ifeq ($(CONFIG_VIDEO_TM6000_DVB),y)
-tm6000-objs += tm6000-dvb.o
-endif
-
 obj-$(CONFIG_VIDEO_TM6000) += tm6000.o
 obj-$(CONFIG_VIDEO_TM6000_ALSA) += tm6000-alsa.o
+obj-$(CONFIG_VIDEO_TM6000_DVB) += tm6000-dvb.o
 
 EXTRA_CFLAGS = -Idrivers/media/video
 EXTRA_CFLAGS += -Idrivers/media/common/tuners
diff --git a/drivers/staging/tm6000/tm6000-cards.c 
b/drivers/staging/tm6000/tm6000-cards.c
index 553ebe4..87b0bc4 100644
--- a/drivers/staging/tm6000/tm6000-cards.c
+++ b/drivers/staging/tm6000/tm6000-cards.c
@@ -346,7 +346,7 @@ int tm6000_xc5000_callback(void *ptr, int component, int 
command, int arg)
}
return (rc);
 }
-
+EXPORT_SYMBOL_GPL(tm6000_xc5000_callback);
 
 /* Tuner callback to provide the proper gpio changes needed for xc2028 */
 
@@ -436,6 +436,7 @@ int tm6000_tuner_callback(void *ptr, int component, int 
command, int arg)
}
return rc;
 }
+EXPORT_SYMBOL_GPL(tm6000_tuner_callback);
 
 int tm6000_cards_setup(struct tm6000_core *dev)
 {
@@ -693,31 +694,12 @@ static int tm6000_init_dev(struct tm6000_core *dev)
goto err;
 
tm6000_add_into_devlist(dev);
-
tm6000_init_extension(dev);
 
-   if (dev-caps.has_dvb) {
-   dev-dvb = kzalloc(sizeof(*(dev-dvb)), GFP_KERNEL);
-   if (!dev-dvb) {
-   rc = -ENOMEM;
-   goto err2;
-   }
-
-#ifdef CONFIG_VIDEO_TM6000_DVB
-   rc = tm6000_dvb_register(dev);
-   if (rc  0) {
-   kfree(dev-dvb);
-   dev-dvb = NULL;
-   goto err2;
-   }
-#endif
}
mutex_unlock(dev-lock);
return 0;
 
-err2:
-   v4l2_device_unregister(dev-v4l2_dev);
-
 err:
mutex_unlock(dev-lock);
return rc;
@@ -918,13 +900,6 @@ static void tm6000_usb_disconnect(struct usb_interface 
*interface)
 
mutex_lock(dev-lock);
 
-#ifdef CONFIG_VIDEO_TM6000_DVB
-   if (dev-dvb) {
-   tm6000_dvb_unregister(dev);
-   kfree(dev-dvb);
-   }
-#endif
-
if (dev-gpio.power_led) {
switch (dev-model) {
case TM6010_BOARD_HAUPPAUGE_900H:
@@ -954,8 +929,8 @@ static void tm6000_usb_disconnect(struct usb_interface 
*interface)
 
usb_put_dev(dev-udev);
 
-   tm6000_remove_from_devlist(dev);
tm6000_close_extension(dev);
+   tm6000_remove_from_devlist(dev);
 
mutex_unlock(dev-lock);
kfree(dev);
diff --git a/drivers/staging/tm6000/tm6000-core.c 
b/drivers/staging/tm6000/tm6000-core.c
index b5965a8..cd87b14 100644
--- a/drivers/staging/tm6000/tm6000-core.c
+++ b/drivers/staging/tm6000/tm6000-core.c
@@ -396,6 +396,7 @@ int tm6000_init_digital_mode (struct tm6000_core *dev)
 
return 0;
 }
+EXPORT_SYMBOL(tm6000_init_digial_mode);
 
 struct reg_init {
u8 req;
diff --git a/drivers/staging/tm6000/tm6000-dvb.c 
b/drivers/staging/tm6000/tm6000-dvb.c
index b9e9ef1..7830826 100644
--- a/drivers/staging/tm6000/tm6000-dvb.c
+++ b/drivers/staging/tm6000/tm6000-dvb.c
@@ -38,6 +38,19 @@
dev-name, __FUNCTION__, ##arg);\
} while (0)
 
+MODULE_DESCRIPTION(DVB driver extension module for tm5600/6000/6010 based TV 
cards);
+MODULE_AUTHOR(Mauro Carvalho Chehab mche...@redhat.com);
+MODULE_LICENSE(GPL);
+
+MODULE_SUPPORTED_DEVICE({{Trident, tm5600},
+   {{Trident, tm6000},
+   {{Trident, tm6010});
+
+static int debug
+

Re: ir-core multi-protocol decode and mceusb

2010-05-30 Thread Mauro Carvalho Chehab
Em 29-05-2010 23:24, Jarod Wilson escreveu:
 On Sat, May 29, 2010 at 4:01 PM, Andy Walls awa...@md.metrocast.net wrote:
 On Sat, 2010-05-29 at 12:58 -0400, Jarod Wilson wrote:
 On Sat, May 29, 2010 at 8:39 AM, Andy Walls awa...@md.metrocast.net wrote:
 On Fri, 2010-05-28 at 00:47 -0400, Jarod Wilson wrote:
 So I'm inching closer to a viable mceusb driver submission -- both a
 first-gen and a third-gen transceiver are now working perfectly with
 multiple different mce remotes. However, that's only when I make sure
 the mceusb driver is loaded w/only the rc6 decoder loaded. When
 ir-core comes up, it requests all decoders to load, starting with the
 nec decoder, followed by the rc5 decoder, then the rc6 decoder and so
 on (init_decoders() in ir-raw-event.c). When I call
 ir_raw_event_handle, all decoders get run on the ir data buffer,
 starting with nec. Well, the nec decoder doesn't like the rc6 data, so
 it pukes. The RUN_DECODER macro break's out of the routine when that
 happens, and the rc6 decoder never gets a chance to run. (Similarly,
 if only ir-nec-decoder has been removed, the rc5 decoder pukes on the
 rc6 data, same problem).

 Yes, if the system kernel is going to attempt to discriminate between
 various input singals, it needs to let all its correlators run and
 produce a confidence number from each.

 Then ideally one would take the result with the highest confidence.

 Right now it looks like all the confidence determinations are boolean (0
 or -EINVAL) and there is no chance to deal with the case that two
 different decoders validly decode something.  The first decoder that
 declares a match wins and sends an event.

 Yeah, it does look that way. I wonder how likely it is that e.g. a
 valid RC6 signal would be decoded to something by say the NEC decoder,

 NEC is a pulse position code and RC-6 is manchester encoded, so that
 particular case would be unlikely.

 I would think one would have a better chance of false positiive
 detections between similar encoding types: pulse position, pulse width,
 or manchester.

 Looking at slide 11 of this:

http://www.audiodevelopers.com/temp/Remote_Controls.ppt

 It looks like the pulse position protocols with a header space of 8T
 (where 8T is about 4ms) would be the only ones that could get confused.

 Since these are streaming decoders, it looks like JVC would come up with
 false detections first, since it has the shortest payload of the pulse
 position protocols.  I think JVC will always claim to decode an NEC
 pulse train.  (I'll try to test that sometime.)


 with a resulting value that matched an entry in the (RC6) keymap
 loaded for the remote... Certainly seems like something that *could*
 happen somehow, but probably unlikely? I dunno...

 I don't know either.  There appears to be a chance for the first 16 bits
 of a transmitted NEC (Addr:Addr') or Extended NEC (AddrHi:AddrLo)
 sequence, to be interpreted as JVC (Addr:Cmd), and the JVC decoder
 matching a scancode in the keytable for the NEC remote.




  We do have the
 option to disable all but the relevant protocol handler on a
 per-device basis though, if that's a problem. Hrm, the key tables also
 have a protocol tied to them, not sure if that's taken into account
 when doing matching... Still getting to know the code. :)

 It does not look like

ir_keydown()
ir_g_keycode_from_table()
ir_getkeycode()

 bother to check the ir_type (e.g. IR_TYPE_NEC) of the keymap against the
 decoders type.  Neither do the decoders themselves.


 If a decoder decodes something and thinks its valid, it tries to send a
 key event with ir_keydown().  ir_keydown() won't send a key event if the
 lookup comes back KEY_RESERVED, but it doesn't tell the decoder about
 the failure to find a key mapping.  A decoder can come back saying it
 did it's job, without knowing whether or not the decoding corresponded
 to a valid key in the loaded keymap. :(


 You will have to deal with the case that two or more decoders may match
 and each sends an IR event.  (Unless the ir-core already deals with this
 somehow...)

 Well, its gotta decode correctly to a value, and then match a value in
 the loaded key table for an input event to get sent through. At least
 for the RC6 MCE remotes, I haven't seen any of the other decoders take
 the signal and interpret it as valid -- which ought to be by design,
 if you consider that people use several different remotes with varying
 ir signals with different devices all receiving them all the time
 without problems (usually). And if we're not already, we could likely
 add some logic to give higher precedence to values arrived at using
 the protocol decoder that matches the key table we've got loaded for a
 given device.

 After looking at things, the only potential problem I can see right now
 is with the JVC decoder and NEC remotes.

 I think that problem is most easily eliminated either by

 a. having ir_keydown() (or the functions 

Re: schedule inside spin_lock_irqsave?

2010-05-30 Thread Jiri Slaby
On 05/30/2010 04:52 PM, Richard Zidlicky wrote:
 Hi,
 
 came across following snippet of code 
 (2.6.34:drivers/media/dvb/siano/smscoreapi.c) and 
 since prepare_to_wait is new for me I am wondering if this is can work?
 
 struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev)
 {
   struct smscore_buffer_t *cb = NULL;
   unsigned long flags;
 
   DEFINE_WAIT(wait);
 
   spin_lock_irqsave(coredev-bufferslock, flags);
 
   /* This function must return a valid buffer, since the buffer list is
* finite, we check that there is an available buffer, if not, we wait
* until such buffer become available.
*/
 
   prepare_to_wait(coredev-buffer_mng_waitq, wait, TASK_INTERRUPTIBLE);
 
   if (list_empty(coredev-buffers))
   schedule();
 
   finish_wait(coredev-buffer_mng_waitq, wait);
 
   cb = (struct smscore_buffer_t *) coredev-buffers.next;
   list_del(cb-entry);
 
   spin_unlock_irqrestore(coredev-bufferslock, flags);


Yep, that's a double bug.
1) If the waiting is interrupted, it will die because the list is still
empty.
2) If there is no entry in the list, it will deadlock at least on UP.
This should be
wait_event(coredev-buffer_mng_waitq, cb = get_entry());
with get_entry like:
struct smscore_buffer_t *get_entry(void)
{
  struct smscore_buffer_t *cb = NULL;
  spin_lock_irqsave(coredev-bufferslock, flags);
  if (!list_empty(coredev-buffers)) {
cb = (struct smscore_buffer_t *) coredev-buffers.next;
list_del(cb-entry);
  }
  spin_unlock_irqrestore(coredev-bufferslock, flags);
  return cb;
}

regards,
-- 
js
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Hans Verkuil
On Sunday 30 May 2010 17:18:25 Michael Krufky wrote:
 Hans Verkuil wrote:
  On Sunday 30 May 2010 09:07:46 VDR User wrote:
  On Sat, May 29, 2010 at 2:09 AM, Mike Booth mike_boot...@iprimus.com.au 
  wrote:
  i think someone is too concerned about being precisely accurate. So much 
  so
  that no-one can see the woods for the trees any more.
 
  Its not important to me that accuracy is spot on. I only want to know that
  when tuning the dish I'm getting \better or worse.
  I tend to agree with this.  Ultimately what's important is not
  necessarily that the readings are 100% accurate, but rather simply put
  into some kind of universal scale that provides useful output to the
  user.  Many users were happy to see some activity addressing this
  issue and unfortunately it seems to have stalled out but I'm not sure
  why.  I honestly felt there was enough common ground being discussed
  that we'd have a solution by now.
  
  To the best of my knowledge Mike Krufky intended to work on this but he
  clearly no longer has time to do that work.
  
  Mike, can you perhaps explain what you wanted to do? Hopefully someone else
  can find the time to implement it.
  
  Regards,
  
  Hans
  
 
 
 ...clearly no longer has time -- please do not speak on my behalf -- I 
 have taken a break from v4l-dvb, and I will return when I have time for 
 it again.

My apologies, that was poorly phrased. 'appears to have little time' would
have been much better. Sorry about that.

 
 I already did a lot of the work for standardizing signal level, but I 
 need to clean it up, consider new demod modules, push trees and send 
 pull requests.  Right now, correct -- I don't have time for it.  I'll 
 likely get to this by mid-august -- I will have more time again by then.
 
 I have a plethora of changes in my queue that I have to burn through and 
 merge, including j-rod's lgdt3304 support.  I used to get this stuff 
 done very quickly, but there is a lot of change going on in my life 
 right now... When things settle down here, I'll be back in full force.  :-)

Looking forward to that!

Regards,

Hans

-- 
Hans Verkuil - video4linux developer - sponsored by TANDBERG, part of Cisco
--
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: schedule inside spin_lock_irqsave?

2010-05-30 Thread Jiri Slaby
On 05/30/2010 05:24 PM, Jiri Slaby wrote:
 struct smscore_buffer_t *get_entry(void)
 {
   struct smscore_buffer_t *cb = NULL;
   spin_lock_irqsave(coredev-bufferslock, flags);
   if (!list_empty(coredev-buffers)) {
 cb = (struct smscore_buffer_t *) coredev-buffers.next;

Looking at the smscore_buffer_t definition, this is really ugly since it
relies on entry being the first in the structure. It should be
list_first_entry(coredev-buffers, ...) instead, cast-less.

 list_del(cb-entry);
   }
   spin_unlock_irqrestore(coredev-bufferslock, flags);
   return cb;
 }


-- 
js
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Michael Krufky

Hans Verkuil wrote:

On Sunday 30 May 2010 09:07:46 VDR User wrote:

On Sat, May 29, 2010 at 2:09 AM, Mike Booth mike_boot...@iprimus.com.au wrote:

i think someone is too concerned about being precisely accurate. So much so
that no-one can see the woods for the trees any more.

Its not important to me that accuracy is spot on. I only want to know that
when tuning the dish I'm getting \better or worse.

I tend to agree with this.  Ultimately what's important is not
necessarily that the readings are 100% accurate, but rather simply put
into some kind of universal scale that provides useful output to the
user.  Many users were happy to see some activity addressing this
issue and unfortunately it seems to have stalled out but I'm not sure
why.  I honestly felt there was enough common ground being discussed
that we'd have a solution by now.


To the best of my knowledge Mike Krufky intended to work on this but he
clearly no longer has time to do that work.

Mike, can you perhaps explain what you wanted to do? Hopefully someone else
can find the time to implement it.

Regards,

Hans




...clearly no longer has time -- please do not speak on my behalf -- I 
have taken a break from v4l-dvb, and I will return when I have time for 
it again.


I already did a lot of the work for standardizing signal level, but I 
need to clean it up, consider new demod modules, push trees and send 
pull requests.  Right now, correct -- I don't have time for it.  I'll 
likely get to this by mid-august -- I will have more time again by then.


I have a plethora of changes in my queue that I have to burn through and 
merge, including j-rod's lgdt3304 support.  I used to get this stuff 
done very quickly, but there is a lot of change going on in my life 
right now... When things settle down here, I'll be back in full force.  :-)


Regards,

Mike Krufky

Regards,

Mike
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Michael Krufky

Markus Rechberger wrote:

Hi,

A little bit more ontopic, did anyone get around to read the
signallevel of the tda18721?
I wonder the register does not return any signallevel as indicated in
the specifications.

Markus


There is a power level value that can be read from the tda18271 -- I 
had a patch that enabled reading of this value, for testing purposes, 
but it wasn't as useful as I had hoped, so I never bothered to merge it.


If you'd like to play with it, I pushed up some code last year:

http://kernellabs.com/hg/~mkrufky/tda18271-pl/rev/4373874cff29

Let me know how this works for you, or if you choose to change it.  I If 
you find it valuable, we can merge it in somehow.


Regards,

Mike
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread hermann-pitton
 


- Original Nachricht 
Von: VDR User user@gmail.com
An:  hermann pitton hermann-pit...@arcor.de
Datum:   30.05.2010 09:01
Betreff: Re: What ever happened to standardizing signal level?

 On Sat, May 29, 2010 at 10:52 PM, hermann pitton
 hermann-pit...@arcor.de wrote:
 
 ...troll spam removed...
 
 
 Hermann, you're a known troll with clearly nothing to contribute to
 this thread therefore you're comments are unwelcome.  

On requests without success

http://linuxtv.org/pipermail/linux-dvb/2009-August/032299.html

you are well known for being in good company soon.

http://linuxtv.org/pipermail/linux-dvb/2008-December/030704.html

I wonder, if this will ever change, but hope so.

Hermann


Und was machen Sie heute abend? Alles Events Ihrer Gegend auf einen Blick im 
Arcor.de-Veranstaltungskalender: http://www.arcor.de/rd/footer.events
--
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: What ever happened to standardizing signal level?

2010-05-30 Thread Markus Rechberger
On Sun, May 30, 2010 at 5:21 PM, Michael Krufky mkru...@linuxtv.org wrote:
 Markus Rechberger wrote:

 Hi,

 A little bit more ontopic, did anyone get around to read the
 signallevel of the tda18721?
 I wonder the register does not return any signallevel as indicated in
 the specifications.

 Markus

 There is a power level value that can be read from the tda18271 -- I had a
 patch that enabled reading of this value, for testing purposes, but it
 wasn't as useful as I had hoped, so I never bothered to merge it.

 If you'd like to play with it, I pushed up some code last year:

 http://kernellabs.com/hg/~mkrufky/tda18271-pl/rev/4373874cff29

 Let me know how this works for you, or if you choose to change it.  I If you
 find it valuable, we can merge it in somehow.


hmm.. I somewhat tried the same but the register kept flipping back
and the powerlevel register returned 0.

Markus
--
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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Ondrej Zary
On Sunday 30 May 2010 13:34:55 Jean-Francois Moine wrote:
 On Sat, 29 May 2010 21:32:07 +0200

 Ondrej Zary li...@rainbow-software.org wrote:
  The Color Space/Compression reported by the driver is only one: RGB 24
  The driver also uses these files which may (or may not) be related to
  used compression: iyuv_32.dll, msh263.drv, msyuv.dll, tsbyuv.dll
  In standalone mode, the camera records video in MJPEG format.

 Hello Ondrej,

 Bad news, the images are compressed by an unknown algorithm (unknown
 from Linux point of vue). The decompression function could be found in
 some part of the ms-win driver, but:
 - first, I have no time to search and disassemble this function,
 - then, I did have this problem with an other webcam (17a1:0118), and
   after searching for a long time, nobody could find the function, and
   the driver is in stand-by since 2 years,
 - eventually, is this legal?

That's bad...

The driver contains file sp5x_32.dll which is registered in system.ini file as
[drivers32]
VIDC.SP54=SP5X_32.DLL

Seems that the codec is called SP54 - hope that it's used to decompress the 
data.

 All I can do is to code the driver and let you or anyone find the
 decompression function...

Maybe we can dump some data, create AVI file from that and try to decode the 
file using that codec.

-- 
Ondrej Zary
--
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 for 2.6.34] saa7134: add support for Compro VideoMate M1F

2010-05-30 Thread Mauro Carvalho Chehab
Em 26-05-2010 17:30, Pavel Osnova escreveu:
 Sorry for the line breakages.

Patch doesn't apply:

$ test_patch 
patching file Documentation/video4linux/CARDLIST.saa7134
Hunk #1 FAILED at 176.
1 out of 1 hunk FAILED -- saving rejects to file 
Documentation/video4linux/CARDLIST.saa7134.rej
patching file drivers/media/IR/keymaps/Makefile
Hunk #1 FAILED at 61.
1 out of 1 hunk FAILED -- saving rejects to file 
drivers/media/IR/keymaps/Makefile.rej
patching file drivers/media/IR/keymaps/rc-videomate-m1f.c
patching file drivers/media/video/saa7134/saa7134-cards.c
Hunk #1 FAILED at 5428.
Hunk #2 FAILED at 6890.
2 out of 2 hunks FAILED -- saving rejects to file 
drivers/media/video/saa7134/saa7134-cards.c.rej
patching file drivers/media/video/saa7134/saa7134.h
Hunk #1 FAILED at 303.
1 out of 1 hunk FAILED -- saving rejects to file 
drivers/media/video/saa7134/saa7134.h.rej
patching file drivers/media/video/saa7134/saa7134-input.c
Hunk #1 FAILED at 815.
1 out of 1 hunk FAILED -- saving rejects to file 
drivers/media/video/saa7134/saa7134-input.c.rej
patching file include/media/rc-map.h
Hunk #1 succeeded at 112 (offset 1 line).
 Patch 
 patches/lmml_102504_for_2_6_34_saa7134_add_support_for_compro_videomate_m1f.patch
  doesn't apply

 
 diff -uprN v4l-dvb_orig/Documentation/video4linux/CARDLIST.saa7134 
 v4l-dvb/Documentation/video4linux/CARDLIST.saa7134
 --- v4l-dvb_orig/Documentation/video4linux/CARDLIST.saa7134 2010-05-26 
 20:34:06.0 +0300
 +++ v4l-dvb/Documentation/video4linux/CARDLIST.saa7134  2010-05-26 
 21:12:28.247684250 +0300
 @@ -176,5 +176,6 @@
  175 - Leadtek Winfast DTV1000S [107d:6655]
  176 - Beholder BeholdTV 505 RDS[:5051]
  177 - Hawell HW-404M7
 -179 - Beholder BeholdTV H7[5ace:7190]
 -180 - Beholder BeholdTV A7[5ace:7090]
 +178 - Beholder BeholdTV H7[5ace:7190]
 +179 - Beholder BeholdTV A7[5ace:7090]
 +180 - Compro VideoMate M1F[185b:c900]
 diff -uprN v4l-dvb_orig/drivers/media/IR/keymaps/Makefile 
 v4l-dvb/drivers/media/IR/keymaps/Makefile
 --- v4l-dvb_orig/drivers/media/IR/keymaps/Makefile  2010-05-26 
 20:34:09.0 +0300
 +++ v4l-dvb/drivers/media/IR/keymaps/Makefile   2010-05-26 21:09:41.498117258 
 +0300
 @@ -61,6 +61,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t
 rc-terratec-cinergy-xs.o \
 rc-tevii-nec.o \
 rc-tt-1500.o \
 +   rc-videomate-m1f.o \
 rc-videomate-s350.o \
 rc-videomate-tv-pvr.o \
 rc-winfast.o \
 diff -uprN v4l-dvb_orig/drivers/media/IR/keymaps/rc-videomate-m1f.c 
 v4l-dvb/drivers/media/IR/keymaps/rc-videomate-m1f.c
 --- v4l-dvb_orig/drivers/media/IR/keymaps/rc-videomate-m1f.c1970-01-01 
 03:00:00.0 +0300
 +++ v4l-dvb/drivers/media/IR/keymaps/rc-videomate-m1f.c 2010-05-26 
 22:27:31.99335 +0300
 @@ -0,0 +1,92 @@
 +/* videomate-m1f.h - Keytable for videomate_m1f Remote Controller
 + *
 + * keymap imported from ir-keymaps.c
 + *
 + * Copyright (c) 2010 by Pavel Osnova pvosn...@gmail.com
 + *
 + * 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.
 + */
 +
 +#include media/rc-map.h
 +
 +static struct ir_scancode videomate_m1f[] = {
 +   { 0x01, KEY_POWER },
 +   { 0x31, KEY_TUNER },
 +   { 0x33, KEY_VIDEO },
 +   { 0x2f, KEY_RADIO },
 +   { 0x30, KEY_CAMERA },
 +   { 0x2d, KEY_NEW }, /* TV record button */
 +   { 0x17, KEY_CYCLEWINDOWS },
 +   { 0x2c, KEY_ANGLE },
 +   { 0x2b, KEY_LANGUAGE },
 +   { 0x32, KEY_SEARCH }, /* '...' button */
 +   { 0x11, KEY_UP },
 +   { 0x13, KEY_LEFT },
 +   { 0x15, KEY_OK },
 +   { 0x14, KEY_RIGHT },
 +   { 0x12, KEY_DOWN },
 +   { 0x16, KEY_BACKSPACE },
 +   { 0x02, KEY_ZOOM }, /* WIN key */
 +   { 0x04, KEY_INFO },
 +   { 0x05, KEY_VOLUMEUP },
 +   { 0x03, KEY_MUTE },
 +   { 0x07, KEY_CHANNELUP },
 +   { 0x06, KEY_VOLUMEDOWN },
 +   { 0x08, KEY_CHANNELDOWN },
 +   { 0x0c, KEY_RECORD },
 +   { 0x0e, KEY_STOP },
 +   { 0x0a, KEY_BACK },
 +   { 0x0b, KEY_PLAY },
 +   { 0x09, KEY_FORWARD },
 +   { 0x10, KEY_PREVIOUS },
 +   { 0x0d, KEY_PAUSE },
 +   { 0x0f, KEY_NEXT },
 +   { 0x1e, KEY_1 },
 +   { 0x1f, KEY_2 },
 +   { 0x20, KEY_3 },
 +   { 0x21, KEY_4 },
 +   { 0x22, KEY_5 },
 +   { 0x23, KEY_6 },
 +   { 0x24, KEY_7 },
 +   { 0x25, KEY_8 },
 +   { 0x26, KEY_9 },
 +   { 0x2a, KEY_NUMERIC_STAR }, /* * key */
 +   { 0x1d, KEY_0 },
 +   { 0x29, KEY_SUBTITLE }, /* # key */
 +   { 0x27, KEY_CLEAR },
 +   { 0x34, KEY_SCREEN },
 +   { 0x28, 

Re: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Jean-Francois Moine
On Sun, 30 May 2010 19:55:22 +0200
Ondrej Zary li...@rainbow-software.org wrote:

 That's bad...
 
 The driver contains file sp5x_32.dll which is registered in
 system.ini file as [drivers32]
 VIDC.SP54=SP5X_32.DLL
 
 Seems that the codec is called SP54 - hope that it's used to
 decompress the data.
 
  All I can do is to code the driver and let you or anyone find the
  decompression function...
 
 Maybe we can dump some data, create AVI file from that and try to
 decode the file using that codec.

It is easy to get images from the usbsnoop files. I join an image
extracted from your file usbsnoop-video-capture-640x480.log. If you
want more images, they are in IsoPackets. The first 2 bytes of each isoc
packet mean:
- '02 80' or '02 81': first of intermediate part of the image ('0' or
  '1' is the image sequence number)
- '02 82' or '02 83': last part of the image

Someone had an idea to try and guess the compression algorithm: do
usbsnoop's with full black and full white images. But this idea did not
work with the other webcam: the images were quite the same!

-- 
Ken ar c'hentañ | ** Breizh ha Linux atav! **
Jef |   http://moinejf.free.fr/


image640.dat
Description: Binary data


Re: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Andy Walls
On Sun, 2010-05-30 at 13:34 +0200, Jean-Francois Moine wrote:
 On Sat, 29 May 2010 21:32:07 +0200
 Ondrej Zary li...@rainbow-software.org wrote:
 
  The Color Space/Compression reported by the driver is only one: RGB 24
  The driver also uses these files which may (or may not) be related to
  used compression: iyuv_32.dll, msh263.drv, msyuv.dll, tsbyuv.dll
  In standalone mode, the camera records video in MJPEG format.
 
 Hello Ondrej,
 
 Bad news, the images are compressed by an unknown algorithm (unknown
 from Linux point of vue). The decompression function could be found in
 some part of the ms-win driver, but:
 - first, I have no time to search and disassemble this function,
 - then, I did have this problem with an other webcam (17a1:0118), and
   after searching for a long time, nobody could find the function, and
   the driver is in stand-by since 2 years,
 - eventually, is this legal?
 
 All I can do is to code the driver and let you or anyone find the
 decompression function...

I ran into this with my daughetr's cheap little Sakar webcam based on a
Jeilin chip.  After some investigation about the chip and learning it
being only able to perform JPEG compression, it was rather easy to
figure out it was just sending MJPEG data with the headers stripped off.

This thread from last year tells most of the story

http://www.mail-archive.com/linux-media@vger.kernel.org/msg06766.html

(Many thanks to Theodore for doing the legwork on experiments and a new
GSPCA driver - jeilinj)

Since your camera records MJPEG in stand-alone mode (mine recorded MJPEG
in an AVI container in stand-alone mode), it stands to reason, your
camera may be doing the same sort of thing.  The payload of MJPEG data
will look very random since the compressed data is Huffman (entropy)
encoded in the final step of encoding.


Regards,
Andy



--
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


[cron job] v4l-dvb daily build 2.6.22 and up: ERRORS, 2.6.16-2.6.21: ERRORS

2010-05-30 Thread Hans Verkuil
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:Sun May 30 19:00:24 CEST 2010
path:http://www.linuxtv.org/hg/v4l-dvb
changeset:   14875:304cfde05b3f
git master:   f6760aa024199cfbce564311dc4bc4d47b6fb349
git media-master: 4fcfa8824391ef0f9cff82122067f31c6d920921
gcc version:  i686-linux-gcc (GCC) 4.4.3
host hardware:x86_64
host os:  2.6.32.5

linux-2.6.32.6-armv5: OK
linux-2.6.33-armv5: OK
linux-2.6.34-armv5: ERRORS
linux-2.6.32.6-armv5-davinci: OK
linux-2.6.33-armv5-davinci: OK
linux-2.6.34-armv5-davinci: ERRORS
linux-2.6.32.6-armv5-ixp: OK
linux-2.6.33-armv5-ixp: OK
linux-2.6.34-armv5-ixp: ERRORS
linux-2.6.32.6-armv5-omap2: OK
linux-2.6.33-armv5-omap2: OK
linux-2.6.34-armv5-omap2: ERRORS
linux-2.6.22.19-i686: ERRORS
linux-2.6.23.17-i686: ERRORS
linux-2.6.24.7-i686: WARNINGS
linux-2.6.25.20-i686: WARNINGS
linux-2.6.26.8-i686: WARNINGS
linux-2.6.27.44-i686: WARNINGS
linux-2.6.28.10-i686: WARNINGS
linux-2.6.29.1-i686: WARNINGS
linux-2.6.30.10-i686: WARNINGS
linux-2.6.31.12-i686: OK
linux-2.6.32.6-i686: OK
linux-2.6.33-i686: OK
linux-2.6.34-i686: ERRORS
linux-2.6.32.6-m32r: OK
linux-2.6.33-m32r: OK
linux-2.6.34-m32r: ERRORS
linux-2.6.32.6-mips: OK
linux-2.6.33-mips: OK
linux-2.6.34-mips: ERRORS
linux-2.6.32.6-powerpc64: OK
linux-2.6.33-powerpc64: OK
linux-2.6.34-powerpc64: ERRORS
linux-2.6.22.19-x86_64: ERRORS
linux-2.6.23.17-x86_64: ERRORS
linux-2.6.24.7-x86_64: WARNINGS
linux-2.6.25.20-x86_64: WARNINGS
linux-2.6.26.8-x86_64: WARNINGS
linux-2.6.27.44-x86_64: WARNINGS
linux-2.6.28.10-x86_64: WARNINGS
linux-2.6.29.1-x86_64: WARNINGS
linux-2.6.30.10-x86_64: WARNINGS
linux-2.6.31.12-x86_64: OK
linux-2.6.32.6-x86_64: OK
linux-2.6.33-x86_64: OK
linux-2.6.34-x86_64: ERRORS
linux-git-armv5: WARNINGS
linux-git-armv5-davinci: WARNINGS
linux-git-armv5-ixp: WARNINGS
linux-git-armv5-omap2: WARNINGS
linux-git-i686: WARNINGS
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-x86_64: WARNINGS
spec: ERRORS
spec-git: OK
sparse: ERRORS
linux-2.6.16.62-i686: ERRORS
linux-2.6.17.14-i686: ERRORS
linux-2.6.18.8-i686: ERRORS
linux-2.6.19.7-i686: ERRORS
linux-2.6.20.21-i686: ERRORS
linux-2.6.21.7-i686: ERRORS
linux-2.6.16.62-x86_64: ERRORS
linux-2.6.17.14-x86_64: ERRORS
linux-2.6.18.8-x86_64: ERRORS
linux-2.6.19.7-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/Sunday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Sunday.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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Andy Walls
On Sun, 2010-05-30 at 19:55 +0200, Ondrej Zary wrote:
 On Sunday 30 May 2010 13:34:55 Jean-Francois Moine wrote:
  On Sat, 29 May 2010 21:32:07 +0200
 
  Ondrej Zary li...@rainbow-software.org wrote:
   The Color Space/Compression reported by the driver is only one: RGB 24
   The driver also uses these files which may (or may not) be related to
   used compression: iyuv_32.dll, msh263.drv, msyuv.dll, tsbyuv.dll
   In standalone mode, the camera records video in MJPEG format.
 
  Hello Ondrej,
 
  Bad news, the images are compressed by an unknown algorithm (unknown
  from Linux point of vue). The decompression function could be found in
  some part of the ms-win driver, but:
  - first, I have no time to search and disassemble this function,
  - then, I did have this problem with an other webcam (17a1:0118), and
after searching for a long time, nobody could find the function, and
the driver is in stand-by since 2 years,
  - eventually, is this legal?
 
 That's bad...
 
 The driver contains file sp5x_32.dll which is registered in system.ini file as
 [drivers32]
 VIDC.SP54=SP5X_32.DLL
 
 Seems that the codec is called SP54 - hope that it's used to decompress the 
 data.
 
  All I can do is to code the driver and let you or anyone find the
  decompression function...


SP54 is Sunplus' ( http://www.sunplus.com.tw/ ) FourCC code for a
version of MJPEG with the headers removed according to 

http://www.fourcc.org/


 Maybe we can dump some data, create AVI file from that and try to decode the 
 file using that codec.

FourCC.org points to this page:

http://libland.fr.st/download.html

which points to a utility to conver the data back into an MJPEG:
 
http://mxhaard.free.fr/spca50x/Download/sp54convert.tar.gz


I have no idea if any of the above is true, 'cause I read it on the
Internet. ;)

Regards,
Andy

--
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: ir-core multi-protocol decode and mceusb

2010-05-30 Thread Jarod Wilson
On Sun, May 30, 2010 at 10:02 AM, Mauro Carvalho Chehab
mche...@redhat.com wrote:
 Em 29-05-2010 23:24, Jarod Wilson escreveu:
 On Sat, May 29, 2010 at 4:01 PM, Andy Walls awa...@md.metrocast.net wrote:
...
  We do have the
 option to disable all but the relevant protocol handler on a
 per-device basis though, if that's a problem. Hrm, the key tables also
 have a protocol tied to them, not sure if that's taken into account
 when doing matching... Still getting to know the code. :)

 It does not look like

        ir_keydown()
                ir_g_keycode_from_table()
                        ir_getkeycode()

 bother to check the ir_type (e.g. IR_TYPE_NEC) of the keymap against the
 decoders type.  Neither do the decoders themselves.


 If a decoder decodes something and thinks its valid, it tries to send a
 key event with ir_keydown().  ir_keydown() won't send a key event if the
 lookup comes back KEY_RESERVED, but it doesn't tell the decoder about
 the failure to find a key mapping.  A decoder can come back saying it
 did it's job, without knowing whether or not the decoding corresponded
 to a valid key in the loaded keymap. :(


 You will have to deal with the case that two or more decoders may match
 and each sends an IR event.  (Unless the ir-core already deals with this
 somehow...)

 Well, its gotta decode correctly to a value, and then match a value in
 the loaded key table for an input event to get sent through. At least
 for the RC6 MCE remotes, I haven't seen any of the other decoders take
 the signal and interpret it as valid -- which ought to be by design,
 if you consider that people use several different remotes with varying
 ir signals with different devices all receiving them all the time
 without problems (usually). And if we're not already, we could likely
 add some logic to give higher precedence to values arrived at using
 the protocol decoder that matches the key table we've got loaded for a
 given device.

 After looking at things, the only potential problem I can see right now
 is with the JVC decoder and NEC remotes.

 I think that problem is most easily eliminated either by

 a. having ir_keydown() (or the functions it calls) check to see that the
 decoder matches the loaded keymap, or

 b. only calling the decoder that matches the loaded keymap's protocol

 Of the above, b. saves processor cycles and frees up the global
 ir_raw_handler spin lock sooner.  That spin lock is serializing pulse
 decoding for all the IR receivers in the system  (pulse decoding can
 still be interleaved, just only one IR receiver's pulses are be
 processed at any time).  What's the point of running decoders that
 should never match the loaded keymap?

 For the daily use case where a known-good keymap is in place, I'm
 coming to the conclusion that there's no point, we're only wasting
 resources. For initial figure out what this remote is type of stuff,
 running all decoders makes sense. One thought I had was that perhaps
 we start by running through the decoder that is listed in the keymap.
 If it decodes to a scancode and we find a valid key in the key table
 (i.e., not KEY_RESERVED), we're done. If decoding fails or we don't
 find a valid key, then try the other decoders. However, this is
 possibly also wasteful -- most people with any somewhat involved htpc
 setup are going to be constantly sending IR signals intended for other
 devices that we pick up and try to decode.

 So I'd say we go with your option b, and only call the decoder that
 matches the loaded keymap. One could either pass in a modparam or
 twiddle a sysfs attr or use ir-keytable to put the receiver into a
 mode that called all decoders -- i.e., set protocol to
 IR_TYPE_UNKNOWN, with the intention being to figure it out based on
 running all decoders, and create a new keymap where IR_TYPE_FOO is
 known.

 There's no need to extra parameters. Decoders can be disabled by userspace,
 per each rc sysfs node. Btw, the current version of ir-keytable already sets
 the enabled protocols based on the protocol reported by the rc keymap.

 What it makes sense is to add a patch at RC core that will properly 
 enable/disable
 the protocols based on IR_TYPE, when the rc-map is stored in-kernel.

Ah, yeah, that does make sense. And if we add that, ir-keytable
doesn't actually have to worry about doing similar itself any longer.
If you're not already working on it, I can try to whip something up,
though I'm knee-deep in an ir-lirc-codec bridge right now...

-- 
Jarod Wilson
ja...@wilsonet.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: [PATCH for 2.6.34] saa7134: add support for Compro VideoMate M1F

2010-05-30 Thread hermann-pitton
 
Hi,

- Original Nachricht 
Von: Mauro Carvalho Chehab mche...@redhat.com
An:  Pavel Osnova pvosn...@gmail.com
Datum:   30.05.2010 20:05
Betreff: Re: [PATCH for 2.6.34] saa7134: add support for Compro VideoMate
 M1F

 Em 26-05-2010 17:30, Pavel Osnova escreveu:
  Sorry for the line breakages.
 
 Patch doesn't apply:


Pavel, please send a new version against current.

You diff against changes not documented in the master repo.

We also better would know, which tuner is on it exactly.

We can expect at least three different ones.
PAL/SECAM, NTSC/System-M and Japan.

http://www.comprousa.com/en/product/m1f/m1f-Specifications.html

The tuner size is small, like a MK5, but you say LG API is fine, even on UHF 
and no tda9886.
It is not a LG PAL NEW TAPC, just something compatible I guess.

Then they would have a lot of different tuners for the PAL/SECAM region, like 
in the old days.

A little hard to believe, without knowing more about chips and filters on that 
tuner, or at least
that something under the Compro sticker says Pal BG/DK only or so, which would 
make us aware to 
expect different tuners on PAL-I, SECAM etc.

http://www.comprousa.com/en/product/m1f/m1f-hardware.html

Please also identify the IR decoder chip and its xtal, the blue RF filter and 
the chip above it.

Cheers,
Hermann


 $ test_patch 
 patching file Documentation/video4linux/CARDLIST.saa7134
 Hunk #1 FAILED at 176.
 1 out of 1 hunk FAILED -- saving rejects to file
 Documentation/video4linux/CARDLIST.saa7134.rej
 patching file drivers/media/IR/keymaps/Makefile
 Hunk #1 FAILED at 61.
 1 out of 1 hunk FAILED -- saving rejects to file
 drivers/media/IR/keymaps/Makefile.rej
 patching file drivers/media/IR/keymaps/rc-videomate-m1f.c
 patching file drivers/media/video/saa7134/saa7134-cards.c
 Hunk #1 FAILED at 5428.
 Hunk #2 FAILED at 6890.
 2 out of 2 hunks FAILED -- saving rejects to file
 drivers/media/video/saa7134/saa7134-cards.c.rej
 patching file drivers/media/video/saa7134/saa7134.h
 Hunk #1 FAILED at 303.
 1 out of 1 hunk FAILED -- saving rejects to file
 drivers/media/video/saa7134/saa7134.h.rej
 patching file drivers/media/video/saa7134/saa7134-input.c
 Hunk #1 FAILED at 815.
 1 out of 1 hunk FAILED -- saving rejects to file
 drivers/media/video/saa7134/saa7134-input.c.rej
 patching file include/media/rc-map.h
 Hunk #1 succeeded at 112 (offset 1 line).
  Patch
 patches/lmml_102504_for_2_6_34_saa7134_add_support_for_compro_videomate_m1f.
 patch doesn't apply
 
  
  diff -uprN v4l-dvb_orig/Documentation/video4linux/CARDLIST.saa7134
 v4l-dvb/Documentation/video4linux/CARDLIST.saa7134
  --- v4l-dvb_orig/Documentation/video4linux/CARDLIST.saa7134 2010-05-26
 20:34:06.0 +0300
  +++ v4l-dvb/Documentation/video4linux/CARDLIST.saa7134  2010-05-26
 21:12:28.247684250 +0300
  @@ -176,5 +176,6 @@
   175 - Leadtek Winfast DTV1000S [107d:6655]
   176 - Beholder BeholdTV 505 RDS[:5051]
   177 - Hawell HW-404M7
  -179 - Beholder BeholdTV H7[5ace:7190]
  -180 - Beholder BeholdTV A7[5ace:7090]
  +178 - Beholder BeholdTV H7[5ace:7190]
  +179 - Beholder BeholdTV A7[5ace:7090]
  +180 - Compro VideoMate M1F[185b:c900]
  diff -uprN v4l-dvb_orig/drivers/media/IR/keymaps/Makefile
 v4l-dvb/drivers/media/IR/keymaps/Makefile
  --- v4l-dvb_orig/drivers/media/IR/keymaps/Makefile  2010-05-26
 20:34:09.0 +0300
  +++ v4l-dvb/drivers/media/IR/keymaps/Makefile   2010-05-26
 21:09:41.498117258 +0300
  @@ -61,6 +61,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t
  rc-terratec-cinergy-xs.o \
  rc-tevii-nec.o \
  rc-tt-1500.o \
  +   rc-videomate-m1f.o \
  rc-videomate-s350.o \
  rc-videomate-tv-pvr.o \
  rc-winfast.o \
  diff -uprN v4l-dvb_orig/drivers/media/IR/keymaps/rc-videomate-m1f.c
 v4l-dvb/drivers/media/IR/keymaps/rc-videomate-m1f.c
  --- v4l-dvb_orig/drivers/media/IR/keymaps/rc-videomate-m1f.c1970-01-01
 03:00:00.0 +0300
  +++ v4l-dvb/drivers/media/IR/keymaps/rc-videomate-m1f.c 2010-05-26
 22:27:31.99335 +0300
  @@ -0,0 +1,92 @@
  +/* videomate-m1f.h - Keytable for videomate_m1f Remote Controller
  + *
  + * keymap imported from ir-keymaps.c
  + *
  + * Copyright (c) 2010 by Pavel Osnova pvosn...@gmail.com
  + *
  + * 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.
  + */
  +
  +#include media/rc-map.h
  +
  +static struct ir_scancode videomate_m1f[] = {
  +   { 0x01, KEY_POWER },
  +   { 0x31, KEY_TUNER },
  +   { 0x33, KEY_VIDEO },
  +   { 0x2f, KEY_RADIO },
  +   { 0x30, KEY_CAMERA 

Re: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Ondrej Zary
On Sunday 30 May 2010 21:26:14 Andy Walls wrote:
 On Sun, 2010-05-30 at 19:55 +0200, Ondrej Zary wrote:
  On Sunday 30 May 2010 13:34:55 Jean-Francois Moine wrote:
   On Sat, 29 May 2010 21:32:07 +0200
  
   Ondrej Zary li...@rainbow-software.org wrote:
The Color Space/Compression reported by the driver is only one: RGB
24 The driver also uses these files which may (or may not) be related
to used compression: iyuv_32.dll, msh263.drv, msyuv.dll, tsbyuv.dll
In standalone mode, the camera records video in MJPEG format.
  
   Hello Ondrej,
  
   Bad news, the images are compressed by an unknown algorithm (unknown
   from Linux point of vue). The decompression function could be found in
   some part of the ms-win driver, but:
   - first, I have no time to search and disassemble this function,
   - then, I did have this problem with an other webcam (17a1:0118), and
 after searching for a long time, nobody could find the function, and
 the driver is in stand-by since 2 years,
   - eventually, is this legal?
 
  That's bad...
 
  The driver contains file sp5x_32.dll which is registered in system.ini
  file as [drivers32]
  VIDC.SP54=SP5X_32.DLL
 
  Seems that the codec is called SP54 - hope that it's used to decompress
  the data.
 
   All I can do is to code the driver and let you or anyone find the
   decompression function...

 SP54 is Sunplus' ( http://www.sunplus.com.tw/ ) FourCC code for a
 version of MJPEG with the headers removed according to

   http://www.fourcc.org/

  Maybe we can dump some data, create AVI file from that and try to decode
  the file using that codec.

 FourCC.org points to this page:

   http://libland.fr.st/download.html

 which points to a utility to conver the data back into an MJPEG:

   http://mxhaard.free.fr/spca50x/Download/sp54convert.tar.gz


 I have no idea if any of the above is true, 'cause I read it on the
 Internet. ;)

Modified that utility to work on raw video frame extracted from usbsnoop file. 
The bad news is that the resulting jpeg file is not readable.

I also deleted the sp5x_32.dll file and the camera still works...

-- 
Ondrej Zary
--
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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Andy Walls
On Sun, 2010-05-30 at 23:28 +0200, Ondrej Zary wrote:
 On Sunday 30 May 2010 21:26:14 Andy Walls wrote:
  On Sun, 2010-05-30 at 19:55 +0200, Ondrej Zary wrote:
   On Sunday 30 May 2010 13:34:55 Jean-Francois Moine wrote:

 
  SP54 is Sunplus' ( http://www.sunplus.com.tw/ ) FourCC code for a
  version of MJPEG with the headers removed according to
 
  http://www.fourcc.org/
 
   Maybe we can dump some data, create AVI file from that and try to decode
   the file using that codec.
 
  FourCC.org points to this page:
 
  http://libland.fr.st/download.html
 
  which points to a utility to conver the data back into an MJPEG:
 
  http://mxhaard.free.fr/spca50x/Download/sp54convert.tar.gz
 
 
  I have no idea if any of the above is true, 'cause I read it on the
  Internet. ;)
 
 Modified that utility to work on raw video frame extracted from usbsnoop 
 file. 
 The bad news is that the resulting jpeg file is not readable.
 
 I also deleted the sp5x_32.dll file and the camera still works...

I would try extracting a JPEG header from one of the files captured by
the camera in stand alone mode (either a JPEG still or MJPEG file), and
put that header together with the image data from the USB capture.  It
may not look perfect, but hopefully you will get something you
recognize.

Attached was Theodore's first attempt of such a procedure with a header
extracted from a standalone image file from my Jeilin based camera and
USB snoop data from the same camera.  It wasn't perfect, but it was
recognizable.


I did look at the image data file Jean-Francois provided from your
usbsnoop logs.  To my eye the data looks like it is Huffman coded
(indicating JPEG).  Maybe I'm just seeing what I want to see.


Regards,
Andy
attachment: frame_one.jpg

Re: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Ondrej Zary
On Sunday 30 May 2010 23:58:11 Andy Walls wrote:
 On Sun, 2010-05-30 at 23:28 +0200, Ondrej Zary wrote:
  On Sunday 30 May 2010 21:26:14 Andy Walls wrote:
   On Sun, 2010-05-30 at 19:55 +0200, Ondrej Zary wrote:
On Sunday 30 May 2010 13:34:55 Jean-Francois Moine wrote:
  
   SP54 is Sunplus' ( http://www.sunplus.com.tw/ ) FourCC code for a
   version of MJPEG with the headers removed according to
  
 http://www.fourcc.org/
  
Maybe we can dump some data, create AVI file from that and try to
decode the file using that codec.
  
   FourCC.org points to this page:
  
 http://libland.fr.st/download.html
  
   which points to a utility to conver the data back into an MJPEG:
  
 http://mxhaard.free.fr/spca50x/Download/sp54convert.tar.gz
  
  
   I have no idea if any of the above is true, 'cause I read it on the
   Internet. ;)
 
  Modified that utility to work on raw video frame extracted from usbsnoop
  file. The bad news is that the resulting jpeg file is not readable.
 
  I also deleted the sp5x_32.dll file and the camera still works...

 I would try extracting a JPEG header from one of the files captured by
 the camera in stand alone mode (either a JPEG still or MJPEG file), and
 put that header together with the image data from the USB capture.  It
 may not look perfect, but hopefully you will get something you
 recognize.

Just thought about the same thing so I uploaded a video file: 
http://www.rainbow-software.org/linux_files/spca1528/sunp0003.avi

 Attached was Theodore's first attempt of such a procedure with a header
 extracted from a standalone image file from my Jeilin based camera and
 USB snoop data from the same camera.  It wasn't perfect, but it was
 recognizable.

Thanks, I'll try that tomorrow.

 I did look at the image data file Jean-Francois provided from your
 usbsnoop logs.  To my eye the data looks like it is Huffman coded
 (indicating JPEG).  Maybe I'm just seeing what I want to see.


 Regards,
 Andy

-- 
Ondrej Zary
--
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


[PATH 0/3] gspca-gl860 driver update

2010-05-30 Thread Olivier Lorin
Hello

Here is three patches for the gspca_gl860 driver.
The main patch is the second one, it is a rewrite for the sensor MI2020.

These patches have been proposed on February 28th and refused some days
later because of a concern about the use of udelay instead of
msleep.
Compared to February, there is no more use of udelay. I also 
mapped a new setting to an already existing one in V4L2 instead of the
new one.

--
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/3] Gspca-gl860 driver update

2010-05-30 Thread Olivier Lorin
gspca - gl860: minor fixes

From: Olivier Lorin o.lo...@laposte.net

- Change of rounded image resolutions to the real ones
- Fix for an irrelevant OV9655 image resolution identifier name
- Extra spaces to align some variable names and a defined value

Priority: normal

Signed-off-by: Olivier Lorin o.lo...@laposte.net

diff -rupN der_gl860b/gl860.c gl860/gl860.c
--- der_gl860b/gl860.c  2010-03-27 10:08:16.0 +0100
+++ gl860/gl860.c   2010-04-28 23:26:53.0 +0200
@@ -235,9 +235,9 @@ static struct v4l2_pix_format mi2020_mod
.colorspace = V4L2_COLORSPACE_SRGB,
.priv = 0
},
-   { 800,  600, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
+   { 800,  598, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
.bytesperline = 800,
-   .sizeimage = 800 * 600,
+   .sizeimage = 800 * 598,
.colorspace = V4L2_COLORSPACE_SRGB,
.priv = 1
},
@@ -247,9 +247,9 @@ static struct v4l2_pix_format mi2020_mod
.colorspace = V4L2_COLORSPACE_SRGB,
.priv = 2
},
-   {1600, 1200, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
+   {1600, 1198, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
.bytesperline = 1600,
-   .sizeimage = 1600 * 1200,
+   .sizeimage = 1600 * 1198,
.colorspace = V4L2_COLORSPACE_SRGB,
.priv = 3
},
diff -rupN der_gl860b/gl860.h gl860/gl860.h
--- der_gl860b/gl860.h  2010-03-27 10:08:25.0 +0100
+++ gl860/gl860.h   2010-04-28 13:56:51.0 +0200
@@ -44,7 +44,7 @@
 #define IMAGE_640   0
 #define IMAGE_800   1
 #define IMAGE_1280  2
-#define IMAGE_1600 3
+#define IMAGE_1600  3
 
 struct sd_gl860 {
u16 backlight;
@@ -75,10 +75,10 @@ struct sd {
int  (*dev_camera_settings)(struct gspca_dev *);
 
u8   swapRB;
-   u8  mirrorMask;
-   u8  sensor;
-   s32 nbIm;
-   s32 nbRightUp;
+   u8   mirrorMask;
+   u8   sensor;
+   s32  nbIm;
+   s32  nbRightUp;
u8   waitSet;
 };
 
diff -rupN der_gl860b/gl860-ov9655.c gl860/gl860-ov9655.c
--- der_gl860b/gl860-ov9655.c   2010-03-27 10:08:16.0 +0100
+++ gl860/gl860-ov9655.c2010-04-28 13:39:14.0 +0200
@@ -69,7 +69,7 @@ static u8 *tbl_640[] = {
\xd0\x01\xd1\x08\xd2\xe0\xd3\x01 \xd4\x10\xd5\x80
 };
 
-static u8 *tbl_800[] = {
+static u8 *tbl_1280[] = {
\x00\x40\x07\x6a\x06\xf3\x0d\x6a \x10\x10\xc1\x01
,
\x12\x80\x00\x00\x01\x98\x02\x80 \x03\x12\x04\x01\x0b\x57\x0e\x61
@@ -217,7 +217,7 @@ static int ov9655_init_post_alt(struct g
 
ctrl_out(gspca_dev, 0x40, 5, 0x0001, 0x, 0, NULL);
 
-   tbl = (reso == IMAGE_640) ? tbl_640 : tbl_800;
+   tbl = (reso == IMAGE_640) ? tbl_640 : tbl_1280;
 
ctrl_out(gspca_dev, 0x40, 3, 0x, 0x0200,
tbl_length[0], tbl[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


[PATCH 2/3] Gspca-gl860 - MI2030 sensor subdriver rewrite

2010-05-30 Thread Olivier Lorin
gspca - gl860: new driver for MI2020 sensor

From: Olivier Lorin o.lo...@laposte.net

- new MI2020 driver version made from a webcam given to me
- remove all previous flavors of this driver

Priority: normal

Signed-off-by: Olivier Lorin o.lo...@laposte.net

diff -urpN der_gl860i1/gl860.c gl860/gl860.c
--- der_gl860i1/gl860.c 2010-04-28 23:26:53.0 +0200
+++ gl860/gl860.c   2010-04-29 21:01:15.0 +0200
@@ -91,7 +91,6 @@ SD_SETGET(contrast)
 /* control table */
 static struct ctrl sd_ctrls_mi1320[GL860_NCTRLS];
 static struct ctrl sd_ctrls_mi2020[GL860_NCTRLS];
-static struct ctrl sd_ctrls_mi2020b[GL860_NCTRLS];
 static struct ctrl sd_ctrls_ov2640[GL860_NCTRLS];
 static struct ctrl sd_ctrls_ov9655[GL860_NCTRLS];
 
@@ -121,8 +120,6 @@ static int gl860_build_control_table(str
sd_ctrls = sd_ctrls_mi1320;
else if (_MI2020_)
sd_ctrls = sd_ctrls_mi2020;
-   else if (_MI2020b_)
-   sd_ctrls = sd_ctrls_mi2020b;
else if (_OV2640_)
sd_ctrls = sd_ctrls_ov2640;
else if (_OV9655_)
@@ -187,19 +184,6 @@ static const struct sd_desc sd_desc_mi20
.dq_callback = sd_callback,
 };
 
-static const struct sd_desc sd_desc_mi2020b = {
-   .name= MODULE_NAME,
-   .ctrls   = sd_ctrls_mi2020b,
-   .nctrls  = GL860_NCTRLS,
-   .config  = sd_config,
-   .init= sd_init,
-   .isoc_init   = sd_isoc_init,
-   .start   = sd_start,
-   .stop0   = sd_stop0,
-   .pkt_scan= sd_pkt_scan,
-   .dq_callback = sd_callback,
-};
-
 static const struct sd_desc sd_desc_ov2640 = {
.name= MODULE_NAME,
.ctrls   = sd_ctrls_ov2640,
@@ -344,8 +328,6 @@ static int sd_config(struct gspca_dev *g
sd-sensor = ID_OV9655;
else if (strcmp(sensor, MI2020) == 0)
sd-sensor = ID_MI2020;
-   else if (strcmp(sensor, MI2020b) == 0)
-   sd-sensor = ID_MI2020b;
 
/* Get sensor and set the suitable init/start/../stop functions */
if (gl860_guess_sensor(gspca_dev, vendor_id, product_id) == -1)
@@ -369,13 +351,6 @@ static int sd_config(struct gspca_dev *g
dev_init_settings   = mi2020_init_settings;
break;
 
-   case ID_MI2020b:
-   gspca_dev-sd_desc = sd_desc_mi2020b;
-   cam-cam_mode = mi2020_mode;
-   cam-nmodes = ARRAY_SIZE(mi2020_mode);
-   dev_init_settings   = mi2020_init_settings;
-   break;
-
case ID_OV2640:
gspca_dev-sd_desc = sd_desc_ov2640;
cam-cam_mode = ov2640_mode;
@@ -620,7 +595,7 @@ int gl860_RTx(struct gspca_dev *gspca_de
else if (len  1  r  len)
PDEBUG(D_ERR, short ctrl transfer %d/%d, r, len);
 
-   if ((_MI2020_ || _MI2020b_ || _MI2020c_)  (val || index))
+   if (_MI2020_  (val || index))
msleep(1);
if (_OV2640_)
msleep(1);
@@ -767,8 +742,6 @@ static int gl860_guess_sensor(struct gsp
PDEBUG(D_PROBE, 05e3:f191 sensor MI1320 (1.3M));
} else if (_MI2020_) {
PDEBUG(D_PROBE, 05e3:0503 sensor MI2020 (2.0M));
-   } else if (_MI2020b_) {
-   PDEBUG(D_PROBE, 05e3:0503 sensor MI2020 alt. driver (2.0M));
} else if (_OV9655_) {
PDEBUG(D_PROBE, 05e3:0503 sensor OV9655 (1.3M));
} else if (_OV2640_) {
diff -urpN der_gl860i1/gl860.h gl860/gl860.h
--- der_gl860i1/gl860.h 2010-04-28 13:56:51.0 +0200
+++ gl860/gl860.h   2010-04-28 13:36:36.0 +0200
@@ -32,12 +32,9 @@
 #define ID_OV2640   2
 #define ID_OV9655   4
 #define ID_MI2020   8
-#define ID_MI2020b 16
 
 #define _MI1320_  (((struct sd *) gspca_dev)-sensor == ID_MI1320)
 #define _MI2020_  (((struct sd *) gspca_dev)-sensor == ID_MI2020)
-#define _MI2020b_ (((struct sd *) gspca_dev)-sensor == ID_MI2020b)
-#define _MI2020c_ 0
 #define _OV2640_  (((struct sd *) gspca_dev)-sensor == ID_OV2640)
 #define _OV9655_  (((struct sd *) gspca_dev)-sensor == ID_OV9655)
 
diff -urpN der_gl860i1/gl860-mi2020.c gl860/gl860-mi2020.c
--- der_gl860i1/gl860-mi2020.c  2009-12-30 18:19:11.0 +0100
+++ gl860/gl860-mi2020.c2010-05-30 23:41:56.0 +0200
@@ -1,6 +1,7 @@
 /* Subdriver for the GL860 chip with the MI2020 sensor
- * Author Olivier LORIN, from Ice/Soro2005's logs(A), Fret_saw/Hulkie's
- * logs(B) and Tricids logs(C). With the help of
Kytrix/BUGabundo/Blazercist.
+ * Author Olivier LORIN, from logs by Iceman/Soro2005 +
Fret_saw/Hulkie/Tricid
+ * with the help of Kytrix/BUGabundo/Blazercist.
+ * Driver achieved thanks to a webcam gift by Kytrix.
  *
  * 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
@@ -20,47 +21,70 @@
 
 #include gl860.h
 
+static u8 dat_wbal1[] = {0x8c, 0xa2, 0x0c};
+
 static u8 dat_bright1[] = {0x8c, 0xa2, 

[PATCH 3/3] Gspca-gl860 driver update

2010-05-30 Thread Olivier Lorin
gspca - gl860: minor functional changes

From: Olivier Lorin o.lo...@laposte.net

- Setting changes applied after an end of image marker reception
  This is the way MI2020 sensor works.
  It seems to be logical to wait for a complete image before 
  to change a setting.
- 1 ms msleep applied to each sensor after USB control data exchange
  This was done for two sensors because these exchanges were known to
  be too quick depending on laptop model.
  It should be fairly logical to apply this delay to each sensor
  in order to prevent from having errors with untested hardwares.

Priority: normal

Signed-off-by: Olivier Lorin o.lo...@laposte.net

diff -urpN der_gl860i3/gl860.c gl860/gl860.c
--- der_gl860i3/gl860.c 2010-04-29 21:01:15.0 +0200
+++ gl860/gl860.c   2010-04-28 23:45:19.0 +0200
@@ -63,7 +63,7 @@ static int sd_set_##thename(struct gspca
 \
sd-vcur.thename = val;\
if (gspca_dev-streaming)\
-   sd-dev_camera_settings(gspca_dev);\
+   sd-waitSet = 1;\
return 0;\
 } \
 static int sd_get_##thename(struct gspca_dev *gspca_dev, s32 *val)\
@@ -595,10 +595,7 @@ int gl860_RTx(struct gspca_dev *gspca_de
else if (len  1  r  len)
PDEBUG(D_ERR, short ctrl transfer %d/%d, r, len);
 
-   if (_MI2020_  (val || index))
-   msleep(1);
-   if (_OV2640_)
-   msleep(1);
+   msleep(1);
 
return r;
 }


--
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: mt9m111 swap_rgb_red_blue

2010-05-30 Thread Robert Jarzmik
Sascha Hauer s.ha...@pengutronix.de writes:

 Hi Robert,

 I have digged around in the Datasheet and if I understand it correctly
 the PXA swaps red/blue in RGB mode. So if we do not use rgb mode but yuv
 (which should be a pass through) we should be able to support rgb on PXA
 aswell. Robert, can you confirm that with the following patch applied
 you still get an image but with red/blue swapped?
I can confirm the color swap.
If you want to follow that path, I would suggest instead :
   cicr1 |= CICR1_COLOR_SP_VAL(0);

There is no difference from a processing point of view, it's just that
CICR1_COLOR_SP_VAL(0) is raw colorspace, with means pass through, and that
seems to be your goal here.

Note that the patch would have to be completed with the BGR565 into RGB565
conversion, if the sensor was to provide only BGR565. But that could very well
be for another patch.

Cheers.

--
Robert
--
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] Compro Videomate T750F Vista digital+analog support

2010-05-30 Thread Davor Emard
HI!

I have downloaded latest hg v4l and adapted the compro 
t750f support patch. The patch is the same but v4l code is
newer so there's some improvement

Restarting VDR is now stable. Tried it cca 10x VDR restarts, 
DVB-T tuner always worked. Remote still has 10% keys lost.

ALSA device now appears with alsa=1 in the list
arecord -l (but I haven't tried to capture anything yet)

Someone mentioned that MCE-alike remote is the same to all 
f-series of the cards so I called it rc-videomate-f.

Here's the patch

diff -r 304cfde05b3f linux/drivers/media/IR/keymaps/Makefile
--- a/linux/drivers/media/IR/keymaps/Makefile   Tue May 25 23:50:51 2010 -0400
+++ b/linux/drivers/media/IR/keymaps/Makefile   Mon May 31 01:18:12 2010 +0200
@@ -63,5 +63,6 @@
rc-tt-1500.o \
rc-videomate-s350.o \
rc-videomate-tv-pvr.o \
+   rc-videomate-f.o \
rc-winfast.o \
rc-winfast-usbii-deluxe.o
diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Tue May 25 23:50:51 
2010 -0400
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Mon May 31 01:18:12 
2010 +0200
@@ -4920,12 +4920,14 @@
},
[SAA7134_BOARD_VIDEOMATE_T750] = {
/* John Newbigin j...@it.swin.edu.au */
+   /* Emard 2010-05-10 v18-v4l davorem...@gmail.com */
.name   = Compro VideoMate T750,
.audio_clock= 0x00187de7,
.tuner_type = TUNER_XC2028,
.radio_type = UNSET,
-   .tuner_addr = ADDR_UNSET,
+   .tuner_addr = 0x61,
.radio_addr = ADDR_UNSET,
+   .mpeg   = SAA7134_MPEG_DVB,
.inputs = {{
.name   = name_tv,
.vmux   = 3,
@@ -6752,6 +6754,11 @@
msleep(10);
saa7134_set_gpio(dev, 18, 1);
break;
+   case SAA7134_BOARD_VIDEOMATE_T750:
+   saa7134_set_gpio(dev, 20, 0);
+   msleep(10);
+   saa7134_set_gpio(dev, 20, 1);
+   break;
}
return 0;
}
@@ -7171,6 +7178,11 @@
saa_andorl(SAA7134_GPIO_GPMODE0  2,   0xC000, 0xC000);
saa_andorl(SAA7134_GPIO_GPSTATUS0  2, 0xC000, 0xC000);
break;
+   case SAA7134_BOARD_VIDEOMATE_T750:
+   dev-has_remote = SAA7134_REMOTE_GPIO;
+   saa_andorl(SAA7134_GPIO_GPMODE0  2,   0x8000, 0x8000);
+   saa_andorl(SAA7134_GPIO_GPSTATUS0  2, 0x8000, 0x8000);
+   break;
}
return 0;
 }
diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-dvb.c
--- a/linux/drivers/media/video/saa7134/saa7134-dvb.c   Tue May 25 23:50:51 
2010 -0400
+++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c   Mon May 31 01:18:12 
2010 +0200
@@ -55,6 +55,7 @@
 #include tda8290.h
 
 #include zl10353.h
+#include qt1010.h
 
 #include zl10036.h
 #include zl10039.h
@@ -886,6 +887,17 @@
.disable_i2c_gate_ctrl = 1,
 };
 
+static struct zl10353_config videomate_t750_zl10353_config = {
+   .demod_address  = 0x0f,
+   .no_tuner = 1,
+   .parallel_ts = 1,
+};
+
+static struct qt1010_config videomate_t750_qt1010_config = {
+   .i2c_address = 0x62
+};
+
+
 /* ==
  * tda10086 based DVB-S cards, helper functions
  */
@@ -1569,6 +1581,21 @@
__func__);
 
break;
+   case SAA7134_BOARD_VIDEOMATE_T750:
+   printk(Compro VideoMate T750 DVB setup\n);
+   fe0-dvb.frontend = dvb_attach(zl10353_attach,
+   videomate_t750_zl10353_config,
+   dev-i2c_adap);
+   if (fe0-dvb.frontend != NULL) {
+   // if there is a gate function then the i2c bus 
breaks.!
+   fe0-dvb.frontend-ops.i2c_gate_ctrl = 0;
+   if (dvb_attach(qt1010_attach,
+   fe0-dvb.frontend,
+   dev-i2c_adap,
+   videomate_t750_qt1010_config) == NULL)
+   wprintk(error attaching QT1010\n);
+   }
+   break;
case SAA7134_BOARD_ZOLID_HYBRID_PCI:
fe0-dvb.frontend = dvb_attach(tda10048_attach,
   zolid_tda10048_config,
diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c Tue May 25 23:50:51 
2010 -0400
+++ 

Re: [PATCH] Compro Videomate T750F Vista digital+analog support

2010-05-30 Thread hermann pitton

Hi Davor,

Am Montag, den 31.05.2010, 01:48 +0200 schrieb Davor Emard:
 HI!
 
 I have downloaded latest hg v4l and adapted the compro 
 t750f support patch. The patch is the same but v4l code is
 newer so there's some improvement
 
 Restarting VDR is now stable. Tried it cca 10x VDR restarts, 
 DVB-T tuner always worked. Remote still has 10% keys lost.
 
 ALSA device now appears with alsa=1 in the list
 arecord -l (but I haven't tried to capture anything yet)
 
 Someone mentioned that MCE-alike remote is the same to all 
 f-series of the cards so I called it rc-videomate-f.
 
 Here's the patch

likely one of the most difficult cards on that driver during the last
time.

Does't look such bad to me, after all, without having one.

Hmm, somehow its #define in the saa7134.h header is missing?

I'm also wondering, why we don't see the usual three lines offset on the
end of current patches.

Cheers,
Hermann


 diff -r 304cfde05b3f linux/drivers/media/IR/keymaps/Makefile
 --- a/linux/drivers/media/IR/keymaps/Makefile Tue May 25 23:50:51 2010 -0400
 +++ b/linux/drivers/media/IR/keymaps/Makefile Mon May 31 01:18:12 2010 +0200
 @@ -63,5 +63,6 @@
   rc-tt-1500.o \
   rc-videomate-s350.o \
   rc-videomate-tv-pvr.o \
 + rc-videomate-f.o \
   rc-winfast.o \
   rc-winfast-usbii-deluxe.o
 diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-cards.c
 --- a/linux/drivers/media/video/saa7134/saa7134-cards.c   Tue May 25 
 23:50:51 2010 -0400
 +++ b/linux/drivers/media/video/saa7134/saa7134-cards.c   Mon May 31 
 01:18:12 2010 +0200
 @@ -4920,12 +4920,14 @@
   },
   [SAA7134_BOARD_VIDEOMATE_T750] = {
   /* John Newbigin j...@it.swin.edu.au */
 + /* Emard 2010-05-10 v18-v4l davorem...@gmail.com */
   .name   = Compro VideoMate T750,
   .audio_clock= 0x00187de7,
   .tuner_type = TUNER_XC2028,
   .radio_type = UNSET,
 - .tuner_addr = ADDR_UNSET,
 + .tuner_addr = 0x61,
   .radio_addr = ADDR_UNSET,
 + .mpeg   = SAA7134_MPEG_DVB,
   .inputs = {{
   .name   = name_tv,
   .vmux   = 3,
 @@ -6752,6 +6754,11 @@
   msleep(10);
   saa7134_set_gpio(dev, 18, 1);
   break;
 + case SAA7134_BOARD_VIDEOMATE_T750:
 + saa7134_set_gpio(dev, 20, 0);
 + msleep(10);
 + saa7134_set_gpio(dev, 20, 1);
 + break;
   }
   return 0;
   }
 @@ -7171,6 +7178,11 @@
   saa_andorl(SAA7134_GPIO_GPMODE0  2,   0xC000, 0xC000);
   saa_andorl(SAA7134_GPIO_GPSTATUS0  2, 0xC000, 0xC000);
   break;
 + case SAA7134_BOARD_VIDEOMATE_T750:
 + dev-has_remote = SAA7134_REMOTE_GPIO;
 + saa_andorl(SAA7134_GPIO_GPMODE0  2,   0x8000, 0x8000);
 + saa_andorl(SAA7134_GPIO_GPSTATUS0  2, 0x8000, 0x8000);
 + break;
   }
   return 0;
  }
 diff -r 304cfde05b3f linux/drivers/media/video/saa7134/saa7134-dvb.c
 --- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Tue May 25 23:50:51 
 2010 -0400
 +++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Mon May 31 01:18:12 
 2010 +0200
 @@ -55,6 +55,7 @@
  #include tda8290.h
  
  #include zl10353.h
 +#include qt1010.h
  
  #include zl10036.h
  #include zl10039.h
 @@ -886,6 +887,17 @@
   .disable_i2c_gate_ctrl = 1,
  };
  
 +static struct zl10353_config videomate_t750_zl10353_config = {
 + .demod_address  = 0x0f,
 + .no_tuner = 1,
 + .parallel_ts = 1,
 +};
 +
 +static struct qt1010_config videomate_t750_qt1010_config = {
 + .i2c_address = 0x62
 +};
 +
 +
  /* ==
   * tda10086 based DVB-S cards, helper functions
   */
 @@ -1569,6 +1581,21 @@
   __func__);
  
   break;
 + case SAA7134_BOARD_VIDEOMATE_T750:
 + printk(Compro VideoMate T750 DVB setup\n);
 + fe0-dvb.frontend = dvb_attach(zl10353_attach,
 + videomate_t750_zl10353_config,
 + dev-i2c_adap);
 + if (fe0-dvb.frontend != NULL) {
 + // if there is a gate function then the i2c bus 
 breaks.!
 + fe0-dvb.frontend-ops.i2c_gate_ctrl = 0;
 + if (dvb_attach(qt1010_attach,
 + fe0-dvb.frontend,
 + dev-i2c_adap,
 + videomate_t750_qt1010_config) == NULL)
 + wprintk(error attaching QT1010\n);
 + }
 +   

Re: [PATCH] Compro Videomate T750F Vista digital+analog support

2010-05-30 Thread hermann pitton

 
 Hmm, somehow its #define in the saa7134.h header is missing?
 
 I'm also wondering, why we don't see the usual three lines offset on the
 end of current patches.

Forget about the later, is in new file mode.

Hermann



--
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] Compro Videomate T750F Vista digital+analog support

2010-05-30 Thread Davor Emard
HI

 
 Forget about the later, is in new file mode.

I wanted the new file but I don't know hg diff too much
so I just manually cat  to append to the hg diff output...

d.
--
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] Compro Videomate T750F Vista digital+analog support

2010-05-30 Thread Davor Emard
HI!

Can you also try this GPIO settings? It's my try to use last summer's
registers dump to setup gpio mask and value

case SAA7134_BOARD_VIDEOMATE_T750:
dev-has_remote = SAA7134_REMOTE_GPIO;
saa_andorl(SAA7134_GPIO_GPMODE0  2,   0x8082c000, 0x8082c000);
saa_andorl(SAA7134_GPIO_GPSTATUS0  2, 0x8082c000, 0x0080c000);
break;
--
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: TBS 6980 Dual Tuner PCI-e card.....not in Wiki at all?

2010-05-30 Thread Emmanuel

Konstantin Dimitrov a écrit :

hello, i can't comment on your questions about the Wiki, but i made
the driver for TBS 6980 and i can ensure you that the driver will be
released as open-source under GPL as soon as i have permission to do
that, but compared to other cards at least even at the moment you can
use the card in Linux and it's very easy to add support for it using
the binary modules even to the latest V4L code from repository and so
those blobs are actually not so big limitation.

also, you are very wrong about the price - as far as i know retails
price is less than 200 USD, for example TBS online shop gives a price
of 158.99 USD:

http://www.buydvb.net/pcie-dvbs2-dual-tuner-tv-card_p11.html

and i believe the dual DVB-S2 card with price of 1000 USD that you're
talking about is the NetUP one and not the TurboSight TBS 6980 dual
DVB-S2 card.
  
I have two questions for you: do these board support (or will support in 
the near future) a CI interface for pay TV, and what is the best symbol 
rate they can achieve in DVB-S2 (I think I need QPSK only but could be 
8PSK) RELIABLY.

TIA
Bye
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


Re: TBS 6980 Dual Tuner PCI-e card.....not in Wiki at all?

2010-05-30 Thread Konstantin Dimitrov
On Mon, May 31, 2010 at 5:05 AM, Emmanuel eall...@gmail.com wrote:
 Konstantin Dimitrov a écrit :

 hello, i can't comment on your questions about the Wiki, but i made
 the driver for TBS 6980 and i can ensure you that the driver will be
 released as open-source under GPL as soon as i have permission to do
 that, but compared to other cards at least even at the moment you can
 use the card in Linux and it's very easy to add support for it using
 the binary modules even to the latest V4L code from repository and so
 those blobs are actually not so big limitation.

 also, you are very wrong about the price - as far as i know retails
 price is less than 200 USD, for example TBS online shop gives a price
 of 158.99 USD:

 http://www.buydvb.net/pcie-dvbs2-dual-tuner-tv-card_p11.html

 and i believe the dual DVB-S2 card with price of 1000 USD that you're
 talking about is the NetUP one and not the TurboSight TBS 6980 dual
 DVB-S2 card.


 I have two questions for you: do these board support (or will support in the
 near future) a CI interface for pay TV, and what is the best symbol rate
 they can achieve in DVB-S2 (I think I need QPSK only but could be 8PSK)

TBS 6980 specifications are:

DVB-S QPKS: 1000 - 45000 kSps

DVB-S2 QPSK and 8PSK: 2000 - 36000 kSps

but i personally have tested DVB-S2 8PSK up to 33500 kSps and it works
fine. so, DVB-S2 symbol rate range is still better than what most
other cards can offer i believe, which usually support 1 - 3
kSps for DVB-S2. TBS are developing card that will support 1000 -
45000 kSps for DVB-S2 (both QPSK and 8PSK), but i believe it won't be
released any time soon.

 RELIABLY.
 TIA
 Bye
 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

--
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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Andy Walls
On Sun, 2010-05-30 at 20:13 +0200, Jean-Francois Moine wrote:
 On Sun, 30 May 2010 19:55:22 +0200
 Ondrej Zary li...@rainbow-software.org wrote:
 
  That's bad...
  
  The driver contains file sp5x_32.dll which is registered in
  system.ini file as [drivers32]
  VIDC.SP54=SP5X_32.DLL
  
  Seems that the codec is called SP54 - hope that it's used to
  decompress the data.
  
   All I can do is to code the driver and let you or anyone find the
   decompression function...
  
  Maybe we can dump some data, create AVI file from that and try to
  decode the file using that codec.
 
 It is easy to get images from the usbsnoop files. I join an image
 extracted from your file usbsnoop-video-capture-640x480.log. If you
 want more images, they are in IsoPackets. The first 2 bytes of each isoc
 packet mean:
 - '02 80' or '02 81': first of intermediate part of the image ('0' or
   '1' is the image sequence number)
 - '02 82' or '02 83': last part of the image
 
 Someone had an idea to try and guess the compression algorithm: do
 usbsnoop's with full black and full white images. But this idea did not
 work with the other webcam: the images were quite the same!

I have attached an image I constructed from the image data file you
provided, the MJPEG headers in the AVI file Ondrej provided, and the
Huffman table in the jpeg.h file in the gspca driver.

If you zoom in, there is an small pattern in the top left portion of the
scan.

I doesn't look quite like an whole image, but it does look like the
start of one.

Regards,
Andy


attachment: test1.jpg000: ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01  ..JFIF..
010: 00 01 00 00 ff db 00 c5 00 0a 07 07 08 07 06 0a  
020: 08 08 08 0b 0a 0a 0b 0e 18 10 0e 0d 0d 0e 1d 15  
030: 16 11 18 23 1f 25 24 22 1f 22 21 26 2b 37 2f 26  ...#.%$.!+7/
040: 29 34 29 21 22 30 41 31 34 39 3b 3e 3e 3e 25 2e  )4)!0A149;%.
050: 44 49 43 3c 48 37 3d 3e 3b 01 0a 0b 0b 0e 0d 0e  DICH7=;...
060: 1c 10 10 1c 3b 28 22 28 3b 3b 3b 3b 3b 3b 3b 3b  ;((
070: 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b  
080: 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b  
090: 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 02 17 18 18 24 21  ;;$!
0a0: 24 47 26 26 47 99 66 56 66 99 99 99 99 99 99 99  $GG.fVf...
0b0: 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99  
0c0: 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99  
0d0: 99 99 99 99 99 99 99 99 99 99 99 ff c4 01 a2 00  
0e0: 00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00  
0f0: 00 01 02 03 04 05 06 07 08 09 0a 0b 01 00 03 01  
100: 01 01 01 01 01 01 01 01 00 00 00 00 00 00 01 02  
110: 03 04 05 06 07 08 09 0a 0b 10 00 02 01 03 03 02  
120: 04 03 05 05 04 04 00 00 01 7d 01 02 03 00 04 11  .}..
130: 05 12 21 31 41 06 13 51 61 07 22 71 14 32 81 91  ..!1A..Qa.q.2..
140: a1 08 23 42 b1 c1 15 52 d1 f0 24 33 62 72 82 09  ..#B...R..$3br..
150: 0a 16 17 18 19 1a 25 26 27 28 29 2a 34 35 36 37  ..%'()*4567
160: 38 39 3a 43 44 45 46 47 48 49 4a 53 54 55 56 57  89:CDEFGHIJSTUVW
170: 58 59 5a 63 64 65 66 67 68 69 6a 73 74 75 76 77  XYZcdefghijstuvw
180: 78 79 7a 83 84 85 86 87 88 89 8a 92 93 94 95 96  xyz.
190: 97 98 99 9a a2 a3 a4 a5 a6 a7 a8 a9 aa b2 b3 b4  
1a0: b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6 c7 c8 c9 ca d2  
1b0: d3 d4 d5 d6 d7 d8 d9 da e1 e2 e3 e4 e5 e6 e7 e8  
1c0: e9 ea f1 f2 f3 f4 f5 f6 f7 f8 f9 fa 11 00 02 01  
1d0: 02 04 04 03 04 07 05 04 04 00 01 02 77 00 01 02  w...
1e0: 03 11 04 05 21 31 06 12 41 51 07 61 71 13 22 32  !1..AQ.aq.2
1f0: 81 08 14 42 91 a1 b1 c1 09 23 33 52 f0 15 62 72  ...B.#3R..br
200: d1 0a 16 24 34 e1 25 f1 17 18 19 1a 26 27 28 29  ...$4.%.'()
210: 2a 35 36 37 38 39 3a 43 44 45 46 47 48 49 4a 53  *56789:CDEFGHIJS
220: 54 55 56 57 58 59 5a 63 64 65 66 67 68 69 6a 73  TUVWXYZcdefghijs
230: 74 75 76 77 78 79 7a 82 83 84 85 86 87 88 89 8a  tuvwxyz.
240: 92 93 94 95 96 97 98 99 9a a2 a3 a4 a5 a6 a7 a8  
250: a9 aa b2 b3 b4 b5 b6 b7 b8 b9 ba c2 c3 c4 c5 c6  
260: c7 c8 c9 ca d2 d3 d4 d5 d6 d7 d8 d9 da e2 e3 e4  
270: e5 e6 e7 e8 e9 ea f2 f3 f4 f5 f6 f7 f8 f9 fa ff  
280: c0 00 11 08 01 e0 02 80 03 01 21 00 02 11 01 03  ..!.
290: 11 01 ff da 00 0c 03 01 00 02 11 03 11 00 3f 00  ..?.


Re: What ever happened to standardizing signal level?

2010-05-30 Thread Michael Krufky

Markus Rechberger wrote:

On Sun, May 30, 2010 at 5:21 PM, Michael Krufky mkru...@linuxtv.org wrote:

Markus Rechberger wrote:

Hi,

A little bit more ontopic, did anyone get around to read the
signallevel of the tda18721?
I wonder the register does not return any signallevel as indicated in
the specifications.

Markus

There is a power level value that can be read from the tda18271 -- I had a
patch that enabled reading of this value, for testing purposes, but it
wasn't as useful as I had hoped, so I never bothered to merge it.

If you'd like to play with it, I pushed up some code last year:

http://kernellabs.com/hg/~mkrufky/tda18271-pl/rev/4373874cff29

Let me know how this works for you, or if you choose to change it.  I If you
find it valuable, we can merge it in somehow.



hmm.. I somewhat tried the same but the register kept flipping back
and the powerlevel register returned 0.

Markus


...I think it only works on the c2 rev silicon.  Not sure about that, 
though.


-Mike

--
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: TBS 6980 Dual Tuner PCI-e card.....not in Wiki at all?

2010-05-30 Thread Emmanuel

Konstantin Dimitrov a écrit :



On Mon, May 31, 2010 at 5:05 AM, Emmanuel eall...@gmail.com 
mailto:eall...@gmail.com wrote:


Konstantin Dimitrov a écrit :

hello, i can't comment on your questions about the Wiki, but i
made
the driver for TBS 6980 and i can ensure you that the driver
will be
released as open-source under GPL as soon as i have permission
to do
that, but compared to other cards at least even at the moment
you can
use the card in Linux and it's very easy to add support for it
using
the binary modules even to the latest V4L code from repository
and so
those blobs are actually not so big limitation.

also, you are very wrong about the price - as far as i know
retails
price is less than 200 USD, for example TBS online shop gives
a price
of 158.99 USD:

http://www.buydvb.net/pcie-dvbs2-dual-tuner-tv-card_p11.html

and i believe the dual DVB-S2 card with price of 1000 USD that
you're
talking about is the NetUP one and not the TurboSight TBS 6980
dual
DVB-S2 card.
 


I have two questions for you: do these board support (or will
support in the near future) a CI interface for pay TV, and what is
the best symbol rate they can achieve in DVB-S2 (I think I need
QPSK only but could be 8PSK) RELIABLY.


TBS 6980 specifications are:

DVB-S QPKS: 1000 - 45000 kSps

DVB-S2 QPSK and 8PSK: 2000 - 36000 kSps

but i personally have tested DVB-S2 8PSK up to 33500 kSps and it works 
fine. so, DVB-S2 symbol rate range is still better than what most 
other cards can offer i believe, which usually support 1 - 3 
kSps for DVB-S2. TBS are developing card that will support 1000 - 
45000 kSps for DVB-S2 (both QPSK and 8PSK), but i believe it won't be 
released any time soon.
OK Thansks. I am interested in a DVB-S2 card able to tune to 45000kSps 
rate with CI support (yes my provider here did things so that it is hard 
to get rid of their STB :( )
The only one for now are the cards based upon stv0900 like the mystique 
satix, but I am not sure about the driver supporting CI.

Bye
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


Re: What ever happened to standardizing signal level?

2010-05-30 Thread hermann pitton
Hi,

Am Sonntag, den 30.05.2010, 23:02 -0400 schrieb Michael Krufky:
 Markus Rechberger wrote:
  On Sun, May 30, 2010 at 5:21 PM, Michael Krufky mkru...@linuxtv.org wrote:
  Markus Rechberger wrote:
  Hi,
 
  A little bit more ontopic, did anyone get around to read the
  signallevel of the tda18721?
  I wonder the register does not return any signallevel as indicated in
  the specifications.
 
  Markus
  There is a power level value that can be read from the tda18271 -- I had 
  a
  patch that enabled reading of this value, for testing purposes, but it
  wasn't as useful as I had hoped, so I never bothered to merge it.
 
  If you'd like to play with it, I pushed up some code last year:
 
  http://kernellabs.com/hg/~mkrufky/tda18271-pl/rev/4373874cff29
 
  Let me know how this works for you, or if you choose to change it.  I If 
  you
  find it valuable, we can merge it in somehow.
 
  
  hmm.. I somewhat tried the same but the register kept flipping back
  and the powerlevel register returned 0.
  
  Markus
 
 ...I think it only works on the c2 rev silicon.  Not sure about that, 
 though.
 
 -Mike
 

that is such stuff that really happens and nobody has any intentions
to hide better signal/SNR measurements from the users.

Some multiple subscribed trolls may take it for a next round, but it is
_nowhere_ any better.

Even worse, on S2, the whole previous model of doing so, will come under
pressure, if I'm not totally blind.

Best,
Hermann


--
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: SPCA1527A/SPCA1528 (micro)SD camera in webcam mode

2010-05-30 Thread Theodore Kilgore


On Sun, 30 May 2010, Andy Walls wrote:

 On Sun, 2010-05-30 at 20:13 +0200, Jean-Francois Moine wrote:
  On Sun, 30 May 2010 19:55:22 +0200
  Ondrej Zary li...@rainbow-software.org wrote:
  
   That's bad...
   
   The driver contains file sp5x_32.dll which is registered in
   system.ini file as [drivers32]
   VIDC.SP54=SP5X_32.DLL
   
   Seems that the codec is called SP54 - hope that it's used to
   decompress the data.
   
All I can do is to code the driver and let you or anyone find the
decompression function...
   
   Maybe we can dump some data, create AVI file from that and try to
   decode the file using that codec.
  
  It is easy to get images from the usbsnoop files. I join an image
  extracted from your file usbsnoop-video-capture-640x480.log. If you
  want more images, they are in IsoPackets. The first 2 bytes of each isoc
  packet mean:
  - '02 80' or '02 81': first of intermediate part of the image ('0' or
'1' is the image sequence number)
  - '02 82' or '02 83': last part of the image
  
  Someone had an idea to try and guess the compression algorithm: do
  usbsnoop's with full black and full white images. But this idea did not
  work with the other webcam: the images were quite the same!
 
 I have attached an image I constructed from the image data file you
 provided, the MJPEG headers in the AVI file Ondrej provided, and the
 Huffman table in the jpeg.h file in the gspca driver.
 
 If you zoom in, there is an small pattern in the top left portion of the
 scan.
 
 I doesn't look quite like an whole image, but it does look like the
 start of one.
 
 Regards,
 Andy

Downloaded it. And, hmmm. Here are the error messages on trying to look at 
the output:

kilg...@khayyam:~$ display test1.jpg
display: Corrupt JPEG data: premature end of data segment `test1.jpg' @ 
warning/jpeg.c/EmitMessage/228.
display: Unsupported marker type 0x3a `test1.jpg' @ 
error/jpeg.c/EmitMessage/233.
kilg...@khayyam:~$ 

Quite possibly it _is_ going down strips or such. That is what the 
JL2005C cameras are doing. Each vertical strip of 16 bytes from the 
picture is in fact a separate JPEG image, and needs to be separately 
processed, and then the results glued together into an image. This is even 
seen in the raw data, once one is so wise that it is all figured out. The 
data for each strip ends with FF D9. So one suggestion here would be to 
see how many times the FF D9 is coming up in the data. There may be a 
pattern to that.

Theodore Kilgore
--
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


2.6.35-rc1 fails to boot: OOPS in ir_register_class

2010-05-30 Thread Torsten Kaiser
Trying to boot the new -rc1 it fails with the following OOPS:
[3.454804] IR NEC protocol handler initialized
[3.461310] IR RC5(x) protocol handler initialized
[3.467865] IR RC6 protocol handler initialized
[3.474070] IR JVC protocol handler initialized
[3.480257] IR Sony protocol handler initialized
[3.480259] Linux video capture interface: v2.00
[3.480722] bttv: driver version 0.9.18 loaded
[3.480724] bttv: using 8 buffers with 2080k (520 pages) each for capture
[3.507950] bttv: Bt8xx card found (0).
[3.513845] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 19
[3.521339] bttv :05:06.0: PCI INT A - Link[LNKC] - GSI 19
(level, low) - IRQ 19
[3.531039] bttv0: Bt878 (rev 17) at :05:06.0, irq: 19,
latency: 64, mmio: 0xeefff000
[3.541062] bttv0: detected: Hauppauge WinTV [card=10], PCI
subsystem ID is 0070:13eb
[3.550946] bttv0: using: Hauppauge (bt878) [card=10,autodetected]
[3.561433] bttv0: Hauppauge/Voodoo msp34xx: reset line init [5]
[3.593765] usb 2-6: new low speed USB device using ohci_hcd and address 2
[3.599016] tveeprom 4-0050: Hauppauge model 61344, rev D421, serial# 3902813
[3.599018] tveeprom 4-0050: tuner model is Philips FM1216 (idx 21, type 5)
[3.599021] tveeprom 4-0050: TV standards PAL(B/G) (eeprom 0x04)
[3.599022] tveeprom 4-0050: audio processor is MSP3415 (idx 6)
[3.599024] tveeprom 4-0050: has radio
[3.599025] bttv0: Hauppauge eeprom indicates model#61344
[3.599027] bttv0: tuner type=5
[3.609618] msp3400 4-0040: MSP3415D-B3 found @ 0x80 (bt878 #0 [sw])
[3.609620] msp3400 4-0040: msp3400 supports nicam, mode is autodetect
[3.621863] tuner 4-0061: chip found @ 0xc2 (bt878 #0 [sw])
[3.622168] tuner-simple 4-0061: creating new instance
[3.622170] tuner-simple 4-0061: type set to 5 (Philips PAL_BG
(FI1216 and compatibles))
[3.622882] bttv0: registered device video0
[3.622940] bttv0: registered device vbi0
[3.622997] bttv0: registered device radio0
[3.632337] bttv0: PLL: 28636363 = 35468950 .. ok
[3.683096] Registered IR keymap rc-rc5-tv
[3.683110] BUG: unable to handle kernel NULL pointer dereference at (null)
[3.683113] IP: [813ebe79] ir_register_class+0x59/0x160
[3.683122] PGD 0
[3.683124] Oops:  [#1] SMP
[3.683125] last sysfs file:
[3.683127] CPU 2
[3.683129] Modules linked in:
[3.683130]
[3.683133] Pid: 1, comm: swapper Not tainted 2.6.35-rc1 #1 KFN5-D
SLI/KFN5-D SLI
[3.683135] RIP: 0010:[813ebe79]  [813ebe79]
ir_register_class+0x59/0x160
[3.683139] RSP: 0018:88011ff09cd0  EFLAGS: 00010246
[3.683141] RAX:  RBX: 88011f3c1a00 RCX: 81a5baa0
[3.683142] RDX:  RSI: 817d24f0 RDI: 88011f3c1a00
[3.683144] RBP:  R08:  R09: 
[3.683146] R10:  R11: 0021 R12: 817d6960
[3.683147] R13: 88011f223000 R14: 88011f3c1a00 R15: 88011f3c1b40
[3.683150] FS:  010f8870() GS:88008020()
knlGS:
[3.683151] CS:  0010 DS:  ES:  CR0: 8005003b
[3.683153] CR2:  CR3: 01a05000 CR4: 06e0
[3.683155] DR0:  DR1:  DR2: 
[3.683157] DR3:  DR6: 0ff0 DR7: 0400
[3.683159] Process swapper (pid: 1, threadinfo 88011ff08000,
task 88007ff48000)
[3.683160] Stack:
[3.683162]  88011f223000 81a5ab30 88011f223000
817d6960
[3.683164] 0 0021 813eb90a 88010028
817d240e
[3.683166] 0 88011f3c1b68 0282 8800070b54e0
88011f35f100
[3.683169] Call Trace:
[3.683174]  [813eb90a] ? __ir_input_register+0x2ba/0x350
[3.683178]  [8141730a] ? ir_probe+0x36a/0x4f0
[3.683181]  [81416fa0] ? ir_probe+0x0/0x4f0
[3.683185]  [813d9bca] ? i2c_device_probe+0xea/0x120
[3.683188]  [813367aa] ? driver_sysfs_add+0x5a/0x80
[3.683190]  [813368d3] ? driver_probe_device+0x83/0x190
[3.683193]  [813d9c54] ? i2c_device_match+0x54/0x70
[3.683195]  [81336d03] ? __driver_attach+0x93/0xa0
[3.683197]  [81336c70] ? __driver_attach+0x0/0xa0
[3.683201]  [81335bf8] ? bus_for_each_dev+0x58/0x80
[3.683203]  [81335ea0] ? bus_add_driver+0xb0/0x250
[3.683206]  [81336e4a] ? driver_register+0x6a/0x130
[3.683209]  [812124a0] ? __pci_register_driver+0x80/0xc0
[3.683212]  [813daa30] ? i2c_register_driver+0x30/0xb0
[3.683217]  [81ae990d] ? bttv_init_module+0x0/0xde
[3.683220]  [81ae9b09] ? ir_init+0x0/0x14
[3.683224]  [810001d4] ? do_one_initcall+0x34/0x190
[3.683227]  [81ac36d6] ?