1. 29 4月, 2011 1 次提交
  2. 23 3月, 2011 2 次提交
  3. 03 3月, 2011 1 次提交
  4. 31 1月, 2011 2 次提交
  5. 19 1月, 2011 2 次提交
  6. 29 12月, 2010 5 次提交
  7. 21 12月, 2010 8 次提交
    • J
      [media] mceusb: set a default rx timeout · 501aaa11
      Jarod Wilson 提交于
      Its possible for the call to read rx timeout from the hardware to fail,
      in which case we end up with a bogus rx timeout value. Set a default one
      when filling in the rc struct, and we'll just overwrite it later w/the
      value from hardware, but if that read fails, we've at least got a sane
      rx timeout value to work with (1000ms is the default value I've seen
      returned on most if not all mceusb hardware).
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      501aaa11
    • J
      [media] mceusb: fix inverted mask inversion logic · d8cc7fd7
      Jarod Wilson 提交于
      As it turns out, somewhere along the way, we managed to invert the
      meaning of the tx_mask_inverted flag. Looking back over the old lirc
      driver, tx_mask_inverted was set to 0 if the device was in tx_mask_list.
      Now we have a tx_mask_inverted flag set to 1 for all the devices that
      were in the list, and set tx_mask_inverted to that flag value, which is
      actually the opposite of what we used to set, causing set_tx_mask to use
      the wrong mask setting option. Since there seem to be more devices with
      inverted masks than not (using the original device as the baseline for
      inverted vs. normal), lets just call the ones currently marked as
      inverted normal instead, and flip the if/else actions that key off of
      the inverted flag.
      
      Note: the problem only cropped up if a call to set_tx_mask was made, if
      no mask was set, the device would work just fine, which is why this
      managed to slip though w/o getting noticed until now.
      
      Tested successfully by myself and Dennis Gilmore.
      Reported-by: NDennis Gilmore <dgilmore@redhat.com>
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      d8cc7fd7
    • J
      fbb1f1b0
    • P
      [media] rc: fix sysfs entry for mceusb and streamzap · 635f76b2
      Paul Bender 提交于
      When trying to create persistent device names for mceusb and streamzap
      devices, I noticed that their respective drivers are not creating the rc
      device as a child of the USB device. Rather it creates it as virtual
      device. As a result, udev cannot use the USB device information to
      create persistent device names for event and lirc devices associated
      with the rc device. Not having persistent device names makes it more
      difficult to make use of the devices in userspace as their names can
      change.
      Signed-off-by: NPaul Bender <pebender@gmail.com>
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      635f76b2
    • J
      [media] mceusb: fix keybouce issue after parser simplification · 2ee95db2
      Jarod Wilson 提交于
      Something I failed to notice while testing the mceusb RLE buffer
      decoding simplification patches was that we were getting an extra event
      from the previously pressed key.
      
      As was pointed out to me on irc by Maxim, this is actually due to using
      ir_raw_event_store_with_filter without having set up a timeout value.
      The hardware has a timeout value we're now reading and storing, which
      properly enables the transition to idle in the raw event storage
      process, and makes IR decode behave correctly w/o keybounce.
      
      Also remove no-longer-used ir_raw_event struct from mceusb_dev struct
      and add as-yet-unused enable flags for carrier reports and learning
      mode, which I'll hopefully start wiring up sooner than later. While
      looking into that, found evidence that 0x9f 0x15 responses are only
      non-zero when the short-range learning sensor is used, so correct the
      debug spew message, and then suppress it when using the standard
      long-range sensor.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      2ee95db2
    • J
      [media] mceusb: buffer parsing fixups for 1st-gen device · 29b4494b
      Jarod Wilson 提交于
      If we pass in an offset, we shouldn't skip 2 bytes. And the first-gen
      hardware generates a constant stream of interrupts, always with two
      header bytes, and if there's been no IR, with nothing else. Bail from
      ir processing without calling ir_handle_raw_event when we get such a
      buffer delivered to us.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      29b4494b
    • J
      [media] mceusb: fix up reporting of trailing space · 1cd50f25
      Jarod Wilson 提交于
      We were storing a bunch of spaces at the end of each signal, rather than
      a single long space. The in-kernel decoders were actually okay with
      this, but lirc isn't. As suggested by David Härdeman, switch to storing
      samples using ir_raw_event_store_with_filter, which auto-merges the
      consecutive space samples for us. This also allows us to bypass having
      to store rawir samples in our device struct, further simplifying the
      buffer parsing state machine. Both in-kernel decoders and lirc are happy
      again with this change.
      
      Also included in this patch is proper parsing of 0x9f 0x01 commands, the
      removal of some magic number usage and some printk spew fixups.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      1cd50f25
    • J
      [media] mceusb: add support for Conexant Hybrid TV RDU253S · 6f6c625d
      Jarod Wilson 提交于
      Another multi-function Conexant device. Interface 0 is IR, though on
      this model, TX isn't wired up at all, so I've mixed in support for
      models without TX (and verified that lircd says TX isn't supported when
      trying to send w/this device).
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6f6c625d
  8. 23 10月, 2010 6 次提交
  9. 21 10月, 2010 2 次提交
  10. 28 9月, 2010 1 次提交
  11. 09 8月, 2010 2 次提交
  12. 03 8月, 2010 8 次提交
    • J
      V4L/DVB: IR/mceusb: more streamlining of device init · 22b0766b
      Jarod Wilson 提交于
      Spent a while last night getting device initialization packet captures
      under Windows for all generations of devices. There are a few places
      where we were doing things differently, and few things we were doing
      that we don't need to do, particularly on gen3 hardware, and I *think*
      one of those things is what was locking up my pinnacle hw from time to
      time -- at least, its been perfectly well behaved every time its been
      plugged in since making this change.
      
      First up, we're adding a bit more to the gen1 init routine here. Its
      not absolutely necessary, the hardware works the same both with and
      without it, but I'd like to be consistent w/Windows here.
      
      Second, DEVICE_RESET is never called when initializing either of my
      gen3 devices, its only called for gen1 and gen2. The bits in the gen3
      init after removing that, are safe (and interesting) to run on all
      hardware, so there's no more gen3-specific init done, there's instead
      a generic mceusb_get_parameters() that is run for all hardware.
      
      Third, the gen3 flag isn't needed. We only care if hardware is gen3
      during probe, so I've dropped that from the device flags struct.
      
      Successfully tested on all three generations of mceusb hardware.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      22b0766b
    • M
      V4L/DVB: IR/mceusb: remove unused vars from gen1 init · ca17a4f0
      Mauro Carvalho Chehab 提交于
      Prior init unification/simplification patch made these unused, forgot
      to remove them, so this silences:
      
      drivers/media/IR/mceusb.c: In function ‘mceusb_gen1_init’:
      drivers/media/IR/mceusb.c:769: warning: unused variable ‘partial’
      drivers/media/IR/mceusb.c:768: warning: unused variable ‘i’
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      ca17a4f0
    • J
      V4L/DVB: IR/mceusb: unify and simplify different gen device init · b48592e4
      Jarod Wilson 提交于
      Started out as an effort to try to tackle the last remaining issue I'm
      having with this damned pinnacle device getting wedged the first time
      its plugged in after an indeterminate length of not being plugged in.
      Didn't get that solved yet, but did streamline the init code a bit more
      and remove some superfluous gunk. Nukes a completely unneeded call to
      usb_device_init() and several lines of overly complex crap in the gen1
      device init path.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      b48592e4
    • J
      V4L/DVB: IR/mceusb: add tx callback functions and wire up · e23fb964
      Jarod Wilson 提交于
      mchehab: merged with IR/mceusb: userspace buffer copy moved out of driver
      
          Userspace buffer copy moved out of driver and into lirc bridge driver
      
      [mchehab@redhat.com: merged the patch to avoid compilation errors with allyesconfig ]
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e23fb964
    • J
      V4L/DVB: IR/mceusb: kill pinnacle-device-specific nonsense · d732a72d
      Jarod Wilson 提交于
      I have pinnacle hardware now. None of this pinnacle-specific crap is at
      all necessary (in fact, some of it needed to be removed to actually make
      it work). The only thing unique about this device is that it often
      transfers inbound data w/a header of 0x90, meaning 16 bytes of IR data
      following it, so I had to make adjustments for that, and now its working
      perfectly fine.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      d732a72d
    • J
      V4L/DVB: IR/mceusb: misc cleanups and init fixes · 657290b6
      Jarod Wilson 提交于
      The first-gen mceusb device init code, while mostly functional, had a few
      issues in it. This patch does the following:
      
      1) removes use of magic numbers
      2) eliminates mapping of memory from stack
      3) makes debug spew translator functional
      
      Additionally, this clean-up revealed that we cannot read the proper default
      tx blaster bitmask from the device, we do actually have to initialize it
      ourselves, which requires use of a somewhat gross list-based mask inversion
      check.
      
      This patch also removes the entirely unnecessary use of struct ir_input_state.
      
      Also supersedes two earlier patches that also touched on first-gen
      cleanup, but were partially botched. This one actually compiles, works,
      etc., I swear. ;)
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      657290b6
    • J
      V4L/DVB: IR/mceusb: use the proper ir-core device unregister function · bd3881b1
      Jarod Wilson 提交于
      Was using input_unregister_device directly, instead of using
      ir_input_unregister, which tears down a bunch of other things in
      addition to eventually calling input_unregister_device.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      bd3881b1
    • J
      V4L/DVB: IR: add mceusb IR receiver driver · 66e89522
      Jarod Wilson 提交于
      This is a new driver for the Windows Media Center Edition/eHome
      Infrared Remote transceiver devices. Its a port of the current
      lirc_mceusb driver to ir-core, and currently lacks transmit support,
      but will grow it back soon enough... This driver also differs from
      lirc_mceusb in that it borrows heavily from a simplified IR buffer
      decode routine found in Jon Smirl's earlier ir-mceusb port.
      
      This driver has been tested on the original first-generation MCE IR
      device with the MS vendor ID, as well as a current-generation device
      with a Topseed vendor ID. Every receiver supported by lirc_mceusb
      should work equally well. Testing was done primarily with RC6 MCE
      remotes, but also briefly with a Hauppauge RC5 remote, and all works
      as expected.
      
      v2: fix call to ir_raw_event_handle so repeats work as they should.
      Signed-off-by: NJarod Wilson <jarod@redhat.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      66e89522