1. 06 1月, 2012 3 次提交
  2. 05 1月, 2012 7 次提交
    • M
      [media] dvb: get rid of fepriv->parameters_in · e399ce77
      Mauro Carvalho Chehab 提交于
      This var were used during DVBv3 times, in order to keep a copy
      of the parameters used by the events. This is not needed anymore,
      as the parameters are now dynamically generated from the DVBv5
      structure.
      
      So, just get rid of it. That means that a DVBv5 pure call won't
      use anymore any DVBv3 parameters.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      e399ce77
    • M
      [media] dvb-core: Fix ISDB-T defaults · a520ca97
      Mauro Carvalho Chehab 提交于
      using -1 for ISDB-T parameters do the wrong thing. Fix it.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      a520ca97
    • M
      [media] dvb_frontend: Fix DVBv3 emulation · 04be0f76
      Mauro Carvalho Chehab 提交于
      For frontends with ISDB-T, DVB-T2, CMDBTH, etc, some code is
      needed, in order to provide emulation. Add such code, and check
      if the desired delivery system is supported by the frontend.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      04be0f76
    • M
      [media] dvb_frontend: Don't use ops->info.type anymore · 5bfaadde
      Mauro Carvalho Chehab 提交于
      Get rid of using ops->info.type defined on DVB drivers,
      as it doesn't apply anymore.
      
      Currently, one driver (cxd2820) supports more than one different
      info.type, as it can be used for DVB-T/T2 and DVB-C. There are more
      drivers like that to come. So, the same frontend will have
      
      different DVBv3 types, depending on the current delivery system.
      
      This breaks the existing logic at dvb_frontend, that assumes that
      just one delivery system DVBv3 type is supported by all delsys.
      
      In order to easy the DVBv3->DVBv5 conversion, an ancillary function
      that maps DVBv3 delivery systems into DVBv5 were added.
      
      Also, on all places, except for the event logic, the DVBv5 cache
      will be used to check parameters, instead of the DVBv5 copy.
      
      This patch simplifies the cache sync logic, and warrants that the
      cache will be in a clear state at DVB frontend register. This way,
      ops->info.type will be filled to reflect the first delivery system,
      providing backward compatibility support for it.
      
      For example, in the cases like cxd2820, where the delivery systems
      are defined as:
              .delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A },
      
      A pure DVBv3 will be able to use both DVB-T and DVB-T2, as, at
      DVB cache clear, the ops->info.type will be equal to FE_OFDM.
      
      However, DVB-C won't be visible. A quick workaround would be to
      do a DVBv5 call to set the delivery system to SYS_DVBC_ANNEX_A.
      
      After such call, ops->info.type will be equal to FE_QAM, and a
      DVBv3 application will see the frontend as a DVB-C one.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      5bfaadde
    • M
      [media] dvb: move dvb_set_frontend logic into a separate routine · 9682cea2
      Mauro Carvalho Chehab 提交于
      This change is there in order to prepare the code to avoid calling
       dvb_frontend_ioctl_legacy() from FE_SET_PROPERTY.
      
      A call to dvb_frontend_ioctl_legacy() would require to update the
      DVBv3 cache without need, mangling calls for newer delivery system
      without any reason.
      
      No functional changes here.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      9682cea2
    • M
      [media] dvb_frontend: Handle all possible DVBv3 values for bandwidth · 9a27e6a0
      Mauro Carvalho Chehab 提交于
      Due to DVB-T2, several new possible values for bandwidth were added.
      As the DVBv3 struct were updated to handle them, the core needs to
      handle all of them, as a DVBv3 application might try to use it.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      9a27e6a0
    • M
      [media] dvb: Initialize all cache values · 26c924fe
      Mauro Carvalho Chehab 提交于
      By default, initialize the frontend current delivery system with
      the first one. This warrants that a DVBv3 application will be able
      to tune to it, after the removal of ops->init.type filling at
      the drivers.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      26c924fe
  3. 31 12月, 2011 15 次提交
  4. 20 12月, 2011 1 次提交
  5. 13 12月, 2011 1 次提交
  6. 11 11月, 2011 1 次提交
    • M
      [media] dvb: Allow select between DVB-C Annex A and Annex C · 39ce61a8
      Mauro Carvalho Chehab 提交于
      DVB-C, as defined by ITU-T J.83 has 3 annexes. The differences between
      Annex A and Annex C is that Annex C uses a subset of the modulation
      types, and uses a different rolloff factor. A different rolloff means
      that the bandwidth required is slicely different, and may affect the
      saw filter configuration at the tuners. Also, some demods have different
      configurations, depending on using Annex A or Annex C.
      
      So, allow userspace to specify it, by changing the rolloff factor.
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      39ce61a8
  7. 07 9月, 2011 1 次提交
  8. 04 9月, 2011 3 次提交
  9. 03 9月, 2011 4 次提交
  10. 28 7月, 2011 3 次提交
  11. 14 7月, 2011 1 次提交
    • D
      [media] dvb_frontend: fix race condition in stopping/starting frontend · 2d196931
      Devin Heitmueller 提交于
      Attached is a patch which addresses a race condition in the DVB core
      related to closing/reopening the DVB frontend device in quick
      succession.  This is the reason that devices such as the HVR-1300,
      HVR-3000, and HVR-4000 have been failing to scan properly under MythTV
      and w_scan.
      
      The gory details of the race are described in the patch.
      
      Devin
      
      There is a race condition exhibited when channel scanners such as w_scan and
      MythTV quickly close and then reopen the frontend device node.
      
      Under normal conditions, the behavior is as follows:
      
      1.  Application closes the device node
      2.  DVB frontend ioctl calls dvb_frontend_release which sets
          fepriv->release_jiffies
      3.  DVB frontend thread *eventually* calls dvb_frontend_is_exiting() which
          compares fepriv->release_jiffies, and shuts down the thread if timeout has
          expired
      4.  Thread goes away
      5.  Application opens frontend device
      6.  DVB frontend ioctl() calls ts_bus_ctrl(1)
      7.  DVB frontend ioctl() creates new frontend thread, which calls
          dvb_frontend_init(), which has demod driver init() routine setup initial
          register state for demod chip.
      8.  Tuning request is issued.
      
      The race occurs when the application in step 5 performs the new open() call
      before the frontend thread is shutdown.  In this case the ts_bus_ctrl() call
      is made, which strobes the RESET pin on the demodulator, but the
      dvb_frontend_init() function never gets called because the frontend thread
      hasn't gone away yet.  As a result, the initial register config for the demod
      is *never* setup, causing subsequent tuning requests to fail.
      
      If there is time between the close and open (enough for the dvb frontend
      thread to be torn down), then in that case the new frontend thread is created
      and thus the dvb_frontend_init() function does get called.
      
      The fix is to set the flag which forces reinitialization if we did in fact
      call ts_bus_ctrl().
      
      This problem has been seen on the HVR-1300, HVR-3000, and HVR-4000, and is
      likely occuring on other designs as well where ts_bus_ctrl() actually strobes
      the reset pin on the demodulator.
      
      Note that this patch should supercede any patches submitted for the
      1300/3000/4000 which remove the code that removes GPIO code in
      cx8802_dvb_advise_acquire(), which have been circulating by users for some
      time now...
      
      Canonical tracking this issue in Launchpad 439163:
      
      Thanks to Jon Sayers from Hauppauge and Florent Audebert from Anevia S.A. for
      providing hardware to test/debug with.
      Signed-off-by: NDevin Heitmueller <dheitmueller@kernellabs.com>
      Cc: Jon Sayers <j.sayers@hauppauge.co.uk>
      Cc: Florent Audebert <florent.audebert@anevia.com>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      2d196931