1. 18 5月, 2010 1 次提交
  2. 27 2月, 2010 3 次提交
    • S
      V4L/DVB: firedtv: reduce memset()s · 1e4348c8
      Stefan Richter 提交于
      Before each FCP transdaction, the entire 512 bytes of the FCP frame were
      cleared, then values filled in.
      
      Clear only the bytes between filled-in bytes and end of the
        - request frame, or
        - response frame if data from a larger response will be needed, or
        - whole frame if data from a variable length response will be taken.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      1e4348c8
    • S
      V4L/DVB: firedtv: remove check for interrupting signal · 6385c5bf
      Stefan Richter 提交于
      FCP transactions as well as CMP transactions were serialized with
      mutex_lock_interruptible.  It is extremely unlikly though that a signal
      will arrive while a concurrent process holds the mutex.  And even if one
      does, the duration of a transaction is reasonably short (1.2 seconds if
      all retries time out, usually much shorter).
      
      Hence simplify the code to plain mutex_lock.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      6385c5bf
    • S
      V4L/DVB: firedtv: do not DMA-map stack addresses · 3fb80ef3
      Stefan Richter 提交于
      This is a portability fix and reduces stack usage.
      
      The DMA mapping API cannot map on-stack addresses, as explained in
      Documentation/DMA-mapping.txt.  Convert the two cases of on-stack packet
      payload buffers in firedtv (payload of write requests in avc_write and
      of lock requests in cmp_lock) to slab-allocated memory.
      
      We use the 512 bytes sized FCP frame buffer in struct firedtv for this
      purpose.  Previously it held only incoming FCP responses, now it holds
      pending FCP requests and is then overwriten by an FCP response from the
      tuner subunit.  Ditto for CMP lock requests and responses.  Accesses to
      the payload buffer are serialized by fdtv->avc_mutex.
      
      As a welcome side effect, stack usage of the AV/C transaction functions
      is reduced by 512 bytes.
      
      Alas, avc_register_remote_control() is a special case:  It previously
      did not wait for a response.  To fit better in with the other FCP
      transactions, let it wait for an interim response.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      3fb80ef3
  3. 06 12月, 2009 2 次提交
  4. 07 11月, 2009 1 次提交
  5. 12 9月, 2009 3 次提交
    • S
      V4L/DVB (12583): firedtv: combine some debug logging code · 96e242a5
      Stefan Richter 提交于
      Shrinks source and kernel object size a bit.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      96e242a5
    • H
      V4L/DVB (12582): The current AVC debugging can clog the log down a lot since many · 15344779
      Henrik Kurelid 提交于
      applications tend to check the signal strength very often.  This patch
      enables users to select which AVC messages to log using a bitmask.  In
      addition, it also enables the possibility to debug application PMTs sent
      to the driver.  This will be usable since the CA support is still poorly
      tested for lots of CAMs and CA systems.
      Signed-off-by: NHenrik Kurelid <henrik@kurelid.se>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      15344779
    • H
      V4L/DVB (12482): firedtv: add PID filtering for SW zigzag retune · 166987c6
      Henrik Kurelid 提交于
      The AVC protocol uses the same command for tuning and PID filtering and
      since dvb-core uses a software zigzagging to do automatic retuning this
      could cause all PID filters to be cleared.  PID filter information is
      now included in all DSD commands to the card.
      
      Background:
      
      There is a problem in the firedtv driver that causes recordings to stop
      if the SW zigzag algorithm in dvb-core kicks in with a retune after the
      application has set up the PID filters.  Since tuning and setting PID
      filters uses the same AVC command (DSD) and only the replace subfunction
      is supported by the card, it is not possible to do a retune without
      setting the PID filters.  This means that the PID filtering has to be
      sent in each tune.
      
      This problem applies to C and T cards since S and S2 cards tune using a
      vendor specific command.  The patch corrects the problem by sending the
      PID list in each tune.  I have tested it on my T card with a good
      result.
      
      How to trigger problem:  Zap to a channel and output AV to a file, e.g.
      "tzap -c channels.conf SVT1 -r -o SVT1.ts".  After a short while, pull
      the antenna cable from the card.  The lock on the channel will disappear
      and the TS file will stop increasing in size. Wait a couple of seconds.
      Replug the cable again.  You will get a lock on the channel again, but
      the TS file will never increase in size agains sinze no PIDS are
      filtered.
      
      Tested with kaffeine with DVB-T and DVB-C:  Fixes retuning after antenna
      was plugged out and back in with DVB-T.  Does not fix this with DVB-C,
      but also doesn't regress on DVB-C.
      Signed-off-by: NHenrik Kurelid <henrik@kurelid.se>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      166987c6
  6. 07 4月, 2009 1 次提交
  7. 30 3月, 2009 1 次提交
  8. 28 3月, 2009 1 次提交
  9. 25 3月, 2009 1 次提交
  10. 24 2月, 2009 1 次提交
    • S
      firedtv: massive refactoring · 15490795
      Stefan Richter 提交于
      Combination of the following changes:
      
      Mon, 23 Feb 2009 14:21:10 +0100 (CET)
      firedtv: reinstate debug logging option
      
          Henrik Kurelid tells me that FCP debug logging (which I removed during
          cleanups) is still useful when working on driver issues together with
          end users.  So bring it back in an updated form with only 60% of the
          original code footprint.
      
          Logging can be enabled with
          # echo -1 > /sys/module/firedtv/parameters/debug
      
          1 instead of -1 enables only FCP header logging,
          2 instead of -1 enables only hexdumps of the entire FCP frames.
          0 switches logging off again.
      
      Fri, 20 Feb 2009 20:54:27 +0100 (CET)
      firedtv: build fix for INPUT=m and DVB_FIREDTV=y
      
      Thu, 19 Feb 2009 20:40:39 +0100
      firedtv: use msecs_to_jiffies
      
          Pointed out by Mauro Carvalho Chehab.
      
      Sun Feb 15 20:50:46 CET 2009
      firedtv: some more housekeeping
      
          Fix an old checkpatch warning and a new compiler warning.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: rename a file once more
      
          At the moment, about a third of avc.c is specific to FireDTVs rather
          than generic AV/C code.  Rename it to firedtv-avc.c.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: more compact channels backing store
      
          Replace struct firedtv_channel { bool active; int pid; } channel[16];
          by unsigned long channel_active; u16 channel_pid[16];.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: some simplifications
      
          c->active was unnecessarily cleared twice.
      
          Also, by marking the channel inactive before the for loop,
          the loop becomes identical with fdtv_channel_collect().
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: remove a bogus loop
      
          This loop is unnecessary because
            - only active channel[].pid's will be sent to the device,
            - when a channel is activated, its pid is set to dvbdmxfeed->pid.
      
          Perhaps the original code was there because it was initially not fully
          covered by the fdtv->demux_mutex.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: fix mutex protection
      
          fdtv_start_feed() accessed the channel list unsafely.
          Fully serialize it with itself and fdtv_stop_feed().
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: dvb demux: fix missing braces
      
          Original code was:
                  ...
                  case DMX_TS_PES_OTHER:
                          //Dirty fix to keep firesat->channel pid-list up to date
                          for(k=0;k<16;k++){
                                  if(firesat->channel[k].active == 0)
                                          firesat->channel[k].pid =
                                                  dvbdmxfeed->pid;
                                          break;
                          }
                          channel = firesat_channel_allocate(firesat);
                          break;
                  default:
                  ...
      
          Looks bogus in several respects. For now let's just add braces to the if
          because that seems to be what the author meant.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: allow build without input subsystem
      
          !CONFIG_INPUT is very unlikely on systems on which firedtv is of
          interest.  But we can easily support it.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: replace EXTRA_CFLAGS by ccflags
      
          The former are deprecated.
          The latter can depend on Kconfig variables.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: concentrate ieee1394 dependencies
      
          Move the entire interface with drivers/ieee1394 to firedtv-1394.c.
          Move 1394-independent module initialization code to firedtv-dvb.c.
      
          This prepares interfacing with drivers/firewire.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: amend Kconfig menu prompt
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: remove kernel version compatibility macro
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: combine header files
      
          avc.h and firedtv-*.h are small and currently not shared with other
          drivers, hence concatenate them all into firedtv.h.
      
      Sun Feb 15 15:33:17 CET 2009
      firedtv: misc style touch-ups
      
          Standardize on lower-case hexadecimal constants.  Adjust whitespace.
          Omit unnecessary pointer type casts and an unnecessary list head
          initialization.  Use dev_printk.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc, ci: remove unused constants
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from read descriptor response operands
      
          Don't use bitfields in struct types of on-the-wire data.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from DSD command operands
      
          Don't use bitfields in struct types of on-the-wire data.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: header file cleanup
      
          Remove unused constants and declarations.
          Move privately used constants into .c files.
      
      Wed Feb 11 21:21:04 CET 2009
      firedtv: avc: remove bitfields from FCP frame types
      
          Don't use bitfields in struct types of on-the-wire data.
      
          Also move many privately used constants from avc.h to avc.c
          and remove some unused constants.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: avc: fix offset in avc_tuner_get_ts
      
          The parentheses were wrong.  It didn't matter though because this code
          only writes a 0 into an area which is already initialized to 0.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: avc: reduce stack usage, remove two typedefs
      
          It is safe to share a memory buffer for command frame and response frame
          because the response data come in after the command frame was last used.
      
          Even less stack would be required if only the actual required frame size
          instead of the entire FCP register size was allocated.
      
          Also, rename the defined types AVCCmdFrm and AVCRspFrm to
          struct avc_command_frame and struct avc_response_frame.
          TODO:  Remove the bitfields in these types.
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: cmp: move code to avc
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: move code to firedtv-1394
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: remove unnecessary struct type definitions
      
      Sun, 18 Jan 2009 16:30:00 +0100 (CET)
      firedtv: iso: style changes and fixlets
      
          Add cleanup after failure in setup_iso_channel.
          Replace printk() by dv_err().
          Decrease indentation level in rawiso_activity_cb().
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      15490795