1. 05 7月, 2014 8 次提交
  2. 26 6月, 2014 1 次提交
  3. 20 6月, 2014 4 次提交
  4. 17 6月, 2014 6 次提交
    • M
      [media] dib8000: export just one symbol · d44913c1
      Mauro Carvalho Chehab 提交于
      Exporting multiple symbols don't work as it causes compilation
      breakages, due to the way dvb_attach() works.
      
      The bug happens when:
              CONFIG_DVB_DIB8000=m
      	CONFIG_DVB_USB_DIB0700=y
      
      As a bonus, dib8000 won't be loaded anymore if the device uses
      a different frontend, reducing the memory footprint.
      
      Tested with both Pixelview PV-D231 and MyGica S870.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      d44913c1
    • M
      [media] dib8000: rename dib8000_attach to dib8000_init · b9bc7d59
      Mauro Carvalho Chehab 提交于
      Well, what we call as "foo_attach" is the method that should
      be called by the dvb_attach() macro.
      
      It should be noticed that the name "dvb_attach" is really a
      bad name and don't express what it does.
      
      dvb_attach() basically does three things, if the frontend is
      compiled as a module:
      - It lookups for the module that it is known to have the
        given symbol name and requests such module;
      - It increments the module usage (anonymously - so lsmod
        doesn't print who loaded the module);
      - after loading the module, it runs the function associated
        with the dynamic symbol.
      
      When compiled as builtin, it just calls the function given to it.
      
      As dvb_attach() increments refcount, it can't be (easily)
      called more than once for the same module, or the kernel
      will deny to remove the module, because refcount will never
      be zeroed.
      
      In other words, the function name given to dvb_attach()
      should be one single symbol that will always be called
      before any other function on that module to be used.
      
      For almost all DVB frontends, there's just one function,
      but, on dib8000, there are several exported symbols.
      
      We need to get rid of all those direct calls, because they
      cause compilation breakages when bridge is builtin and
      frontend is module, we'll need to add a new function that
      will be the first one to be called, whatever initialization
      is needed.
      
      So, let's rename this function, in order to prepare for
      a next patch that will add a new attach() function that
      will be the only one exported by this module.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      b9bc7d59
    • M
      [media] dib7000: export just one symbol · 8abe4a0a
      Mauro Carvalho Chehab 提交于
      Exporting multiple symbols don't work as it causes compilation
      breakages, due to the way dvb_attach() works.
      
      This were reported several times, like:
      
         drivers/built-in.o: In function `cxusb_dualdig4_rev2_tuner_attach':
      >> cxusb.c:(.text+0x27d4b5): undefined reference to `dib7000p_get_i2c_master'
         drivers/built-in.o: In function `dib7070_set_param_override':
         cxusb.c:(.text+0x27d5a5): undefined reference to `dib0070_wbd_offset'
      >> cxusb.c:(.text+0x27d5be): undefined reference to `dib7000p_set_wbd_ref'
         drivers/built-in.o: In function `dib7070_tuner_reset':
      >> cxusb.c:(.text+0x27d5f9): undefined reference to `dib7000p_set_gpio'
         drivers/built-in.o: In function `cxusb_dualdig4_rev2_frontend_attach':
      >> cxusb.c:(.text+0x27df5c): undefined reference to `dib7000p_i2c_enumeration'
      
      In this specific report:
      	CONFIG_DVB_USB_CXUSB=y
      	CONFIG_DVB_DIB7000P=m
      
      But the same type of bug can happen if:
      	CONFIG_DVB_DIB7000P=m
      and one of the bridge drivers is compiled builtin (cxusb, cx23885-dvb
      and/or dib0700).
      
      As a bonus, dib7000p won't be loaded anymore if the device uses
      a different frontend, reducing the memory footprint.
      
      Tested with Hauppauge Nova-TD (2 frontends).
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      8abe4a0a
    • M
      [media] dib7000p: rename dib7000p_attach to dib7000p_init · 7f67d96a
      Mauro Carvalho Chehab 提交于
      Well, what we call as "foo_attach" is the method that should
      be called by the dvb_attach() macro.
      
      It should be noticed that the name "dvb_attach" is really a
      bad name and don't express what it does.
      
      dvb_attach() basically does three things, if the frontend is
      compiled as a module:
      - It lookups for the module that it is known to have the
        given symbol name and requests such module;
      - It increments the module usage (anonymously - so lsmod
        doesn't print who loaded the module);
      - after loading the module, it runs the function associated
        with the dynamic symbol.
      
      When compiled as builtin, it just calls the function given to it.
      
      As dvb_attach() increments refcount, it can't be (easily)
      called more than once for the same module, or the kernel
      will deny to remove the module, because refcount will never
      be zeroed.
      
      In other words, the function name given to dvb_attach()
      should be one single symbol that will always be called
      before any other function on that module to be used.
      
      For almost all DVB frontends, there's just one function.
      
      However, the dib7000p initialization can require up to 3
      functions to be called:
      	- dib7000p_get_i2c_master;
      	- dib7000p_i2c_enumeration;
      	- dib7000p_init (before this patch dib7000_attach).
      
      (plus a bunch of other functions that the bridge driver will
      need to call).
      
      As we need to get rid of all those direct calls, because they
      cause compilation breakages when bridge is builtin and
      frontend is module, we'll need to add a new function that
      will be the first one to be called, whatever initialization
      is needed.
      
      So, let's rename the function that probes and init the hardware
      to dib7000p_init.
      
      A latter patch will add a new dib7000p_attach that will be
      used as originally conceived by dvb_attach() way.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      7f67d96a
    • M
      [media] lmedm04: rs2000 check if interrupt urb is over due · 3a370222
      Malcolm Priestley 提交于
      Change handling of signal_lock on rs2000. Use ibuf[2] to detect
      lock as there is a longer wait for lock to appear in ibuf[6].
      
      Remove last_key and key_timeout and use jiffies plus 60ms
      to detect that streaming is still active.
      
      If the current jiffies is time_after the interrupt urb overdue and
      clear signal lock.
      
      This results in far faster recovery of lock and streaming.
      Signed-off-by: NMalcolm Priestley <tvboxspy@gmail.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      3a370222
    • A
      [media] usbtv: fix leak at failure path in usbtv_probe() · ebdae650
      Alexey Khoroshilov 提交于
      Error handling code in usbtv_probe() misses usb_put_dev().
      
      Found by Linux Driver Verification project (linuxtesting.org).
      Signed-off-by: NAlexey Khoroshilov <khoroshilov@ispras.ru>
      Acked-by: NLubomir Rintel <lkundrak@v3.sk>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      ebdae650
  5. 05 6月, 2014 1 次提交
  6. 26 5月, 2014 5 次提交
    • M
      [media] au0828: reset streaming when a new frequency is set · f6fef863
      Mauro Carvalho Chehab 提交于
      As reported by Trevor, doing several opening/streaming/closing
      operations to the demux causes it to fail.
      
      I was able to simulate this bug too. I also noticed that,
      sometimes, changing channels with au0828, the same thing
      happens.
      
      Most of the issues seem to be due to some hardware bug, that
      causes the device to not fill all the URBs allocated. When
      the bug happens, the only known fix is to either replug the
      device, or to send an USB reset to it.
      
      There's also a hack a the au0828 driver that starts a thread
      that tries to reset the device when a package doesn't start
      with a sync.
      
      One of the culpits for this bad hardware behavior seem to be
      caused by the lack of stopping and restarting the stream every
      time a new channel is set.
      
      This patch warrants that the stream will be properly reset
      every time the set_frontend callback is called, partially
      solving the problem.
      
      A complete fix, however, would also need to check the PM
      conditions for the tuner and demux.
      Reported-by: NTrevor Graffa <tlgraffa@gmail.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      f6fef863
    • M
      [media] au0828: Improve debug messages for urb_completion · c35fbd03
      Mauro Carvalho Chehab 提交于
      Sometimes, it helps to know how much data was received by
      urb_completion. Add that information to the optional debug
      log.
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      c35fbd03
    • C
      [media] au0828: Cancel stream-restart operation if frontend is disconnected · d9e091fe
      Changbing Xiong 提交于
      If the tuner is already disconnected, It is meaningless to go on doing the
      stream-restart operation, It is better to cancel this operation.
      Signed-off-by: NChangbing Xiong <cb.xiong@samsung.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      d9e091fe
    • M
      [media] dib0700: fix RC support on Hauppauge Nova-TD · c4018fa2
      Mauro Carvalho Chehab 提交于
      The RC support o Nova-TD is broken, as the RC endpoint there
      is an interrupt endpoint.
      
      That produces an ugly calltrace at the Kernel logs:
      
      	WARNING: CPU: 2 PID: 56 at drivers/usb/core/urb.c:450 usb_submit_urb+0x1fd/0x5c0()
      	usb 1-1.2: BOGUS urb xfer, pipe 3 != type 1
      	Modules linked in: rc_dib0700_rc5(OF) dvb_usb_dib0700(OF) dib9000(OF) dib8000(OF) dib7000m(OF) dib0090(OF) dib0070(OF) dib7000p(OF) dib3000mc(OF) dibx000_common(OF) dvb_usb(OF) rc_core(OF) snd_usb_audio snd_usbmidi_lib snd_hwdep snd_rawmidi snd_seq snd_seq_device snd_pcm snd_timer snd soundcore bnep bluetooth 6lowpan_iphc rfkill au0828(OF) xc5000(OF) au8522_dig(OF) au8522_common(OF) tveeprom(OF) dvb_core(OF) nouveau i915 mxm_wmi ttm i2c_algo_bit drm_kms_helper drm r8169 mii i2c_core video wmi [last unloaded: au0828]
      	CPU: 2 PID: 56 Comm: khubd Tainted: GF          O 3.14.2-200.fc20.x86_64 #1
      	Hardware name: SAMSUNG ELECTRONICS CO., LTD. 550P5C/550P7C/SAMSUNG_NP1234567890, BIOS P05ABI.016.130917.dg 09/17/2013
      	 0000000000000000 00000000610866bc ffff880223703860 ffffffff816eec92
      	 ffff8802237038a8 ffff880223703898 ffffffff8108a1bd ffff8800916a2180
      	 ffff8801d5b16000 0000000000000003 0000000000000003 0000000000000020
      	Call Trace:
      	 [<ffffffff816eec92>] dump_stack+0x45/0x56
      	 [<ffffffff8108a1bd>] warn_slowpath_common+0x7d/0xa0
      	 [<ffffffff8108a23c>] warn_slowpath_fmt+0x5c/0x80
      	 [<ffffffff814e3ebd>] usb_submit_urb+0x1fd/0x5c0
      	 [<ffffffffa0445925>] dib0700_rc_setup+0xb5/0x120 [dvb_usb_dib0700]
      	 [<ffffffffa0445a58>] dib0700_probe+0xc8/0x130 [dvb_usb_dib0700]
      	...
      
      Fix it by detecting if the endpoint is bulk or interrupt.
      
      Tested with both Hauppauge Nova-TD model 52009 (interrupt) and with a
      		 Prolink Pixelview SBTVD model PV-D231U (bulk).
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      c4018fa2
    • M
      [media] az6027: Added the PID for a new revision of the Elgato EyeTV Sat DVB-S Tuner · 44f83144
      Manuel Schönlaub 提交于
      There is another clone of AZ6027. This patch adds the relevant PID.
      Signed-off-by: NManuel Schönlaub <manuel.schoenlaub@gmail.com>
      Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
      44f83144
  7. 25 5月, 2014 2 次提交
  8. 24 5月, 2014 13 次提交