1. 30 3月, 2009 24 次提交
    • H
      V4L/DVB (11281): bttv: move saa6588 config to the helper chip config · ffe84b7a
      Hans Verkuil 提交于
      saa6588 can also be used by other drivers than just bttv. Move it to a
      new RDS decoders category and add it as helper chip to bttv.
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ffe84b7a
    • H
      V4L/DVB (11279): bttv: tda9875 is no longer used by bttv, so remove from bt8xx/Kconfig. · 893cce04
      Hans Verkuil 提交于
      Since tda9875 support was merged into tvaudio the bttv driver no
      longer needs tda9875 as helper driver.
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      893cce04
    • H
      V4L/DVB (11278): bttv: convert to v4l2_subdev since i2c autoprobing will disappear. · 859f0277
      Hans Verkuil 提交于
      Since i2c autoprobing will disappear bttv needs to be converted to use
      v4l2_subdev instead.
      
      Without autoprobing the autoload module option has become obsolete. A warning
      is generated if it is set, but it is otherwise ignored.
      
      Since the bttv card definitions are of questionable value a new option was
      introduced to allow the user to control which audio module is selected:
      msp3400, tda7432 or tvaudio (or none at all).
      
      By default bttv will use the card definitions and fallback on tvaudio as the
      last resort.
      
      If no audio device was found a warning is printed.
      
      The saa6588 RDS device is now also explicitly probed since it is no longer
      possible to autoprobe it. A new saa6588 module option was added to override
      the card definition since I suspect more cards have this device than one
      would guess from the card definitions.
      
      Note that the probe addresses of the i2c modules are hardcoded in this
      driver. Once all v4l drivers are converted to v4l2_subdev this will be
      cleaned up. Such data belongs in an i2c driver header.
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      859f0277
    • T
      V4L/DVB (11262): bttv: Remove buffer type check from vidioc_g_parm · 601bc298
      Trent Piepho 提交于
      The v4l2-ioctl core only allows buffer types for which the corresponding
      ->vidioc_try_fmt_xxx() methods are defined to be used with
      vidioc_(q|dq|query)bufs(), vidioc_reqbufs() and now vidioc_(s|g)_parm.
      
      The driver was only allowing VIDEO_CAPTURE buffers for g_parm, but since
      the driver defines ->vidioc_try_fmt_vid_overlay() and
      ->vidioc_try_fmt_vbi_cap() it will now allow VIDEO_OVERLAY and VBI_CAPTURE
      buffers as well.  This should be fine as the driver only fills in the frame
      rate field, which is just as valid for video overlay and vbi capture as it
      is for video capture.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      601bc298
    • A
      V4L/DVB (11124): Add support for ProVideo PV-183 to bttv · dceaddb9
      Alan McIvor 提交于
      Add support for ProVideo PV-183 to bttv
      
      This patch adds support for the ProVideo PV-183 card to the bttv
      device driver. The PV-183 is a PCI card with 8 BT878 devices plus a Hint
      Corp HiNT HB4 PCI-PCI Bridge. Each BT878 has two composite input channels
      available. There are no tuners on this card.
      Signed-off-by: NAlan McIvor <alan.mcivor@reveal.co.nz>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      dceaddb9
    • H
    • H
      74fc7bd9
    • R
      V4L/DVB (10944): Conceptronic CTVFMI2 PCI Id · 76ecf459
      Robert Millan 提交于
      My BTTV_BOARD_CONCEPTRONIC_CTVFMI2 card wasn't auto-detected, here's a patch
      that adds its PCI id.
      
      lspci -nnv output:
      
      05:06.0 Multimedia video controller [0400]: Brooktree Corporation Bt878 Video Capture [109e:036e] (rev 11)
      05:06.1 Multimedia controller [0480]: Brooktree Corporation Bt878 Audio Capture [109e:0878] (rev 11)
      
      Press <break> within 3 seconds if this is wrong.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      76ecf459
    • M
    • B
      V4L/DVB (10827): Add support for GeoVision GV-800(S) · 0c5db425
      Bruno Christo 提交于
      I have a GeoVision GV-800(S) card, it has 4 CONEXANT BT878A chips.
      It has 16 video inputs and 4 audio inputs, and it is almost identical
      to the GV-800, as seen on http://bttv-gallery.de .
      The only difference appears to be the analog mux, it has a CD22M3494
      in place of the MT8816AP. The card has a blue PCB, as seen in this
      picture: http://www.gsbr.com.br/imagem/kits/GeoVision%20GV%20800.jpg .
      
      This card wasn't originally supported, and it was detected as
      UNKNOWN/GENERIC. The video inputs weren't working, so I tried
      "forcing" a few cards like the GeoVision GV-600, but there was still
      no video. So I made a patch to support this card, based on the Kodicom
      4400r.
      
      The GV-800(S) is identified as follows:
      
      ...
      02:00.0 Multimedia video controller: Brooktree Corporation Bt878 Video
      Capture (rev 11)
      02:00.1 Multimedia controller: Brooktree Corporation Bt878 Audio
      Capture (rev 11)
      02:04.0 Multimedia video controller: Brooktree Corporation Bt878 Video
      Capture (rev 11)
      02:04.1 Multimedia controller: Brooktree Corporation Bt878 Audio
      Capture (rev 11)
      02:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video
      Capture (rev 11)
      02:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio
      Capture (rev 11)
      02:0c.0 Multimedia video controller: Brooktree Corporation Bt878 Video
      Capture (rev 11)
      02:0c.1 Multimedia controller: Brooktree Corporation Bt878 Audio
      Capture (rev 11)
      
      ...
      02:00.0 0400: 109e:036e (rev 11)
             Subsystem: 800a:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdfff000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
             Kernel modules: bttv
      
      02:00.1 0480: 109e:0878 (rev 11)
             Subsystem: 800a:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdffe000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
      
      02:04.0 0400: 109e:036e (rev 11)
             Subsystem: 800b:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdffd000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
             Kernel modules: bttv
      
      02:04.1 0480: 109e:0878 (rev 11)
             Subsystem: 800b:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdffc000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
      
      02:08.0 0400: 109e:036e (rev 11)
             Subsystem: 800c:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdffb000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
             Kernel modules: bttv
      
      02:08.1 0480: 109e:0878 (rev 11)
             Subsystem: 800c:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdffa000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
      
      02:0c.0 0400: 109e:036e (rev 11)
             Subsystem: 800d:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdff9000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
             Kernel modules: bttv
      
      02:0c.1 0480: 109e:0878 (rev 11)
             Subsystem: 800d:763d
             Flags: bus master, medium devsel, latency 32, IRQ 10
             Memory at cdff8000 (32-bit, prefetchable) [size=4K]
             Capabilities: [44] Vital Product Data <?>
             Capabilities: [4c] Power Management version 2
      
      As you can see, the GV-800(S) card is almost identical to the GV-800
      on bttv-gallery, so this patch might also work for that card. If not,
      only a few changes should be required on the gv800s_write() function.
      
      After this patch, the video inputs work correctly on linux 2.6.24 and
      2.6.27 using the software 'motion'. The input order may seem a little
      odd, but it's the order the original software/driver uses, and I decided
      to keep that order to get the most out of the card.
      
      I tried to get the audio working with the snd-bt87x module, but I only
      get noise from every audio input, even after selecting a different mux
      with alsamixer. Also, after trying to play sound from those sources, I
      randomly get a RISC error about an invalid RISC opcode, and then that
      output stops working. I also can't change the sampling rate when
      recording. Any pointers to adding audio support are welcome.
      Signed-off-by: NBruno Christo <bchristo@inf.ufsm.br>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      0c5db425
    • T
      V4L/DVB (10815): bttv: Don't need to zero ioctl parameter fields · 522a5f14
      Trent Piepho 提交于
      The v4l2 core code in v4l2_ioctl will zero out the structure the driver is
      supposed to fill in for read-only ioctls.  For read/write ioctls, all the
      fields which aren't supplied from userspace will be zeroed out.
      
      Zeroing code is removed from enum_input and g_tuner.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      522a5f14
    • T
      V4L/DVB (10813): v4l2: New function v4l2_video_std_frame_period · 51f0b8d5
      Trent Piepho 提交于
      Some code was calling v4l2_video_std_construct() when all it cared about
      was the frame period.  So make a function that just returns that and have
      v4l2_video_std_construct() use it.
      
      At this point there are no users of v4l2_video_std_construct() left outside
      of v4l2-ioctl, so it could be un-exported and made static.
      
      Change v4l2_video_std_construct() so that it doesn't zero out the struct
      v4l2_standard passed in.  It's already been zeroed out in the common ioctl
      code.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      51f0b8d5
    • T
      V4L/DVB (10568): bttv: dynamically allocate device data · 4b10d3b6
      Trent Piepho 提交于
      The bttv driver had static array of structures for up to 16 possible bttv
      devices, even though few users have more than one or two.  The structures
      were quite large and this resulted in a huge BSS segment.
      
      Change the driver to allocate the bttv device data dynamically, which
      changes "struct bttv bttvs[BTTV_MAX]" to "struct bttv *bttvs[BTTV_MAX]".
      It would be nice to get ride of "bttvs" entirely but there are some
      complications with gpio access from the audio & mpeg drivers.
      
      To help bttvs removal along anyway, I changed the open() methods use the
      video device's drvdata to get the driver data instead of looking it up in
      the bttvs array.  This is also more efficient.  Some WARN_ON()s are added
      in cases the device node exists by the bttv device doesn't, which I don't
      think should be possible.
      
      The gpio access functions need to check if bttvs[card] is NULL now.  Though
      calling them on a non-existent card in the first place is wrong, but hard
      to solve given the fundamental problems in how the gpio access code works.
      
      This patch reduces the bss size by 66560 bytes on ia32.  Overall change is a
      reduction of 66398 bytes, as the WARN_ON()s add some 198 bytes.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      4b10d3b6
    • T
      V4L/DVB (10567): bttv: shrink muxsel data in card database · 6f98700a
      Trent Piepho 提交于
      Over half of the card database was used to store muxsel data.  64 bytes
      were used to store one 32 bit word for each of up to 16 inputs.
      
      The Bt8x8 only has two bits to control its mux, so muxsel data for 16
      inputs will fit into a single 32 bit word.  There were a couple cards that
      had special muxsel data that didn't fit in two bits, but I cleaned them up
      in earlier patches.
      
      Unfortunately, C doesn't allow us to have an array of bit fields.  This
      makes initializing the structure more of a pain.  But with some cpp magic,
      we can do it by changing:
      	.muxsel = { 2, 3, 0, 1 },
      	.muxsel = { 2, 2, 2, 2, 3, 3, 3, 3, 1, 1 },
      Into:
      	.muxsel = MUXSEL(2, 3, 0, 1),
      	.muxsel = MUXSEL(2, 2, 2, 2, 3, 3, 3, 3, 1, 1),
      
      That's not so bad.  MUXSEL is a fancy macro that packs the arguments (of
      which there can be one to sixteen!) into a single word two bits at a time.
      It's a compile time constant (a variadic function wouldn't be) so we can
      use it to initialize the structure.  It's important the the arguments to
      the macro only be plain decimal integers.  Stuff like "0x01", "(2)", or
      "MUX3" won't work properly.
      
      I also created an accessor function, bttv_muxsel(btv, input), that gets the
      mux bits for the selected input.  It makes it cleaner to change the way the
      muxsel data is stored.
      
      This patch doesn't change the code size and decreases the datasegment by
      9440 bytes.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6f98700a
    • T
      V4L/DVB (10566): bttv: clean up mux code for IDS Eagle · 430390e6
      Trent Piepho 提交于
      This card apparently uses an external mux and the Bt878's mux should always
      be set to MUX2.  The values for the external mux control bits were stored
      in the muxsel field.  This meant that when changing inputs the driver would
      switch the Bt878's mux to whatever value the external mux was supposed to
      be set to, then eagle_muxsel() would switch it back to MUX2 and program the
      external mux.  This creates an unnecessary switch of the Bt878's mux.
      
      So change muxsel to be 2 for each input.  The external mux bits are just
      "input&3" so they don't really need to be stored anywhere.  This also
      eliminates the last non-standard use of the muxsel data.
      
      Cc: M G Berberich <berberic@fmi.uni-passau.de>
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      430390e6
    • T
      V4L/DVB (10565): bttv: fix external mux for RemoteVision MX · 13afaefc
      Trent Piepho 提交于
      Old versions of the bttv driver would use the high nibble of an input's
      muxsel value to program the GPIO lines enabled via gpiomask2.  Apparently
      this was supposed to be for switching external audio muxes.  Anyway, the
      code that did this was removed sometime in the pre-git 2.6 series.
      
      The RemoteVision MX board used this feature to control an external video
      mux and I guess no one noticed when they removed the code.
      
      Move the extra gpio mux data out of the high nibble of muxsel and to
      rv605_muxsel(), then have that function set the gpio lines with it.
      
      From looking at the CD22M3494E datasheet, it seems like the mdelay(1) is a
      much longer delay than necessary.  It looks like only around 20 ns is
      necessary.
      
      Cc: Miguel Freitas <miguel@cetuc.puc-rio.br>
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      13afaefc
    • T
      V4L/DVB (10564): bttv: fix external mux for PHYTEC VD-009 · 15f8eeb2
      Trent Piepho 提交于
      Old versions of the bttv driver would use the high nibble of an input's
      muxsel value to program the GPIO lines enabled via gpiomask2.  Apparently
      this was supposed to be for switching external audio muxes.  Anyway, the
      code that did this was removed sometime in the pre-git 2.6 series.
      
      These phytec boards used this feature to control an external video mux and
      I guess no one noticed when they removed the code.
      
      So add a muxsel_hook for these boards that does the necessary gpio setting.
      
      BTW, I doubt the needs_tvaudio setting for these cards is correct.
      
      Cc: Dirk Heer <d.heer@phytec.de>
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      15f8eeb2
    • T
      V4L/DVB (10563): bttv: clean up mux code for IVC-120G · fb5deb1b
      Trent Piepho 提交于
      The card data for BTTV_BOARD_IVC120 set muxsel to a bunch of bogus values
      (1 to 16), which the common mux code would use to set the Bt878's mux to
      some random value.  Then the custom code in ivc120_muxsel() would change
      the Bt878's mux to the right value (always MUX0).
      
      Better to just make the muxsel data correct (all zeros, easy!) and get the
      mux right to begin with.  Then the extra Bt878 mux setting code in
      ivc120_muxsel() can be eliminated (the rest of the code for the IVC-120G's
      external mux is still there of course).
      
      This will help me clean up muxsel for some other changes.  It should also
      get rid of an unnecessary mux switch when changing from certain inputs to
      certain other inputs on the IVC-120G.
      
      Cc: Alan Garfield <alan@fromorbit.com>
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      fb5deb1b
    • T
      V4L/DVB (10562): bttv: rework the way digital inputs are indicated · 5221e21e
      Trent Piepho 提交于
      The code was using a muxsel value of -1U to indicate a digital input.  A
      couple places in were checking of muxsel < 0 to detect this, which doesn't
      work of course because muxsel is unsigned and can't be negative.
      
      Only a couple cards had digital inputs and it was always the last one, so
      for the card database create a one bit field that indicates the last input
      is digital.  On init, this is used to set a new field in the bttv struct to
      the digital input's number or UNSET for none.  This makes it easier to
      check if the current input is digital.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      5221e21e
    • T
      V4L/DVB (10561): bttv: store card database more efficiently · 4c548d4b
      Trent Piepho 提交于
      The bttv card database is quite large and the data structure used to store
      it wasn't very efficient.  Most of the field are only used at card
      initialization time so it doesn't matter if they aren't efficient to
      access.
      
      Overall the changes reduce code size by 60 bytes in ia32.  The data size is
      decreased by 5024 byes.  It is probably even more for 64-bit kernels.
      
      Move the fields in the struct around to be sorted from largest to smallest.
      This saves on padding space used for alignment.
      
      Get rid of the unused digital_mode field.  Leave the setting as a comment
      in the few cards entries that set it, in case someone ever writes the code.
      
      Get rid of the unused audio_inputs field.  Leave the values in the card
      entries in case someone ever writes code that might use it.
      
      Get ride of the unused radio_addr field.  No card entries even set it to
      anything interesting so it's not left as comments.  All the code that used
      it was removed in commit v2.6.14-3466-g291d1d73 from Nov 8th 2005.
      
      Reduce video_inputs to u8 as no card has more than 255 inputs (the most is
      16).
      
      Change tuner_addr to u8.  I2C addresses are only seven bits and 255 means
      ADDR_UNSET, so everything fits.
      
      Make has_radio a one bit flag.
      
      Make the pll setting a two bit field.
      
      Reduce svhs to four bits as no card has an s-video input above 9.  Change
      the value for no s-video input from UNSET (which is -1U and out of range of
      four bits) to NO_SVHS (which is now 15).
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      4c548d4b
    • T
      V4L/DVB (10560): bttv: make tuner card info more consistent · abb0362f
      Trent Piepho 提交于
      The bttv card database structure had a "tuner" field that was the input
      number of the tuner input or UNSET for no tuner.  However, the only values
      it could ever be are 0 and UNSET.  Having a tuner on an input other than 0
      didn't work and was never used.
      
      There is also a "tuner_type" field that can be set to TUNER_ABSENT to
      indicate no tuner, which makes "tuner = UNSET" redundant.  In many cases,
      tuner_type was set to UNSET when there was no tuner, which isn't quite
      correct.  tuner_type == UNSET is supposed to mean the tuner type isn't yet
      known.
      
      So, I changed cards where "tuner == UNSET" to always have tuner_type of
      TUNER_ABSENT.  At this point the tuner field is redundant, so I deleted it.
      
      I have the card setup code set the card's tuner_type (not the card type's
      tuner_type!) to TUNER_ABSENT if it hasn't yet been set at the end of the
      setup code.  Various places that check if the card has a tuner will now
      look for this instead of checking the card type's "tuner" field.
      
      Also autoload the tuner module before issuing the TUNER_SET_TYPE_ADDR I2C
      client call instead of after issuing it.
      
      Overall, on ia32 this decreases compiled code size by about 24 bytes and
      reduces the data size by 640 bytes.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      abb0362f
    • T
      V4L/DVB (10559): bttv: Fix TDA9880 norm setting code · 72134a6d
      Trent Piepho 提交于
      The code to set the norm for the TDA9880 analog demod was comparing
      btv->norm, an index into the bttv driver's norm array, to V4L2_STD_NTSC,
      which is a bit flag that's part of the V4L2 API.  This doesn't work of
      course and results in the PAL path always being taken.
      
      What's more, it modified the bttv_tvcards[] entries for cards using the
      TDA9880.  This is wrong because changing the norm on one card will also
      affect other cards of the same type.  Writing to bttv_tvcards is also bad
      because it should be read-only or even devinitdata.
      
      Changing the norm would also cause the audio to become unmuted.
      
      Have the code get called for both norm setting and audio input setting
      (which where the gpios are set) to avoid needed to modify bttv_tvcards.
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      72134a6d
    • T
      V4L/DVB (10558): bttv: norm value should be unsigned · 4ef2ccc2
      Trent Piepho 提交于
      The norm value in the driver is an index into an array and the the driver
      doesn't allow it to be negative or otherwise invalid.  It should be
      unsigned but wasn't in all places.
      
      Fix some structs and functions to have the norm be unsigned.  Get rid of
      useless checks for "< 0".  Most of the driver code can't handle a norm
      value that's out of range, so change some ">= BTTV_TVNORMS" checks to
      BUG_ON().  There's no point in silently ignoring invalid driver state just
      to crash because of it later.
      Reported-by: NRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: NTrent Piepho <xyzzy@speakeasy.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      4ef2ccc2
    • D
      V4L/DVB (10299): bttv: Add support for IVCE-8784 support for V4L2 bttv driver · ade0815c
      Douglas Kosovic 提交于
      It's a quad Bt878 PCI-e x1 capture board that's basically the same as the
      IVC-200 (quad Bt878 PCI) capture board that's currently supported in
      the V4L2 bttv driver.
      
      Manufacturer's web page for IVCE-8784 with photo and info:
        http://www.iei.com.tw/en/product_IPC.asp?model=IVCE-8784Signed-off-by: NDouglas Kosovic <douglask@itee.uq.edu.au>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ade0815c
  2. 03 1月, 2009 3 次提交
  3. 30 12月, 2008 4 次提交
  4. 22 10月, 2008 1 次提交
    • H
      V4L/DVB (9327): v4l: use video_device.num instead of minor in video%d · c6330fb8
      Hans Verkuil 提交于
      The kernel number of a v4l2 node (e.g. videoX, radioX or vbiX) is now
      independent of the minor number. So instead of using the minor field
      of the video_device struct one has to use the num field: this always
      contains the kernel number of the device node.
      
      I forgot about this when I did the v4l2 core change, so this patch
      converts all drivers that use it in one go. Luckily the change is
      trivial.
      
      Cc: michael@mihu.de
      Cc: mchehab@infradead.org
      Cc: corbet@lwn.net
      Cc: luca.risolia@studio.unibo.it
      Cc: isely@pobox.com
      Cc: pe1rxq@amsat.org
      Cc: royale@zerezo.com
      Cc: mkrufky@linuxtv.org
      Cc: stoth@linuxtv.org
      Signed-off-by: NHans Verkuil <hverkuil@xs4all.nl>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      c6330fb8
  5. 13 10月, 2008 1 次提交
  6. 12 10月, 2008 5 次提交
  7. 05 10月, 2008 1 次提交
    • J
      V4L/DVB (8955): bttv: Prevent NULL pointer dereference in radio_open · c37396c1
      Jean Delvare 提交于
      Fix the following crash in the bttv driver:
      
      BUG: unable to handle kernel NULL pointer dereference at 000000000000036c
      IP: [<ffffffffa037860a>] radio_open+0x3a/0x170 [bttv]
      
      This happens because radio_open assumes that all present bttv devices
      have a radio function. If a bttv device without radio and one with
      radio are installed on the same system, and the one without radio is
      registered first, then radio_open checks for the radio device number
      of a bttv device that has no radio function, and this breaks. All we
      have to do to fix it is to skip bttv devices without a radio function.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      c37396c1
  8. 05 9月, 2008 1 次提交
    • T
      V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay · c4e3fd94
      Thierry MERLE 提交于
      b2c2-flexcop, dvb/bt8xx and video/bt8xx fails to build on ARM with:
      
      __bad_udelay is specifically designed on ARM to fail when udelay is
      called in a bad way.  arch/arm/include/asm/delay.h has this to say
      about __bad_udelay:
      
      /*
       * This function intentionally does not exist; if you see references to
       * it, it means that you're calling udelay() with an out of range value.
       *
       * With currently imposed limits, this means that we support a max delay
       * of 2000us. Further limits: HZ<=1000 and bogomips<=3355
       */
      extern void __bad_udelay(void);
      
      Solution is to replace udelay by a mdelay and udelay with value less than 2000
      Signed-off-by: NThierry MERLE <thierry.merle@free.fr>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      c4e3fd94