Re: ASUS U3100 Mini
The trick was with bad reception indoors. I went testing to the balcony and framedrop dissapeared, and I get a clear picture. It seems that the Antenna is too weak in my apartment to have a clear signal. Kind regards, Jan On Sat, Apr 14, 2012 at 4:43 PM, Jan Prunk janpr...@gmail.com wrote: Hello Oliver, Thank you for your hint. I have written up a WIKI page for this device, which hasn't been written earlier. I am willing to test the device further, if any of the devs can give me further hints for that. It's still not in a full working mode. I mean video is somehow partially visible with VLC, but I am no expert in fine-tuning the device. The wiki page is located at http://linuxtv.org/wiki/index.php/ASUS_My_Cinema-U3100_Mini I will update the information there, if I will receive any further hints. Kind regards, Jan On Tue, Apr 10, 2012 at 11:32 AM, Oliver Schinagl oliver+l...@schinagl.nl wrote: Unfortunatly I am not familiar with the dib0700 device, so not sure if you need firmware (I assume so, check linuxtv wiki on any dib0700 device. To test the device in its most basic level, I think w_scan is the best bet, as it works without any other extra files. Oliver On 07-04-12 23:32Hello , Jan Prunk wrote: Hi Oliver ! Thank you for your quick response. I assume that mine is a non-plus version. Do you know how I could proceed tuning the channel list, which I could then use in the combination with MPlayer ? Kind regards, Jan On Sat, Apr 7, 2012 at 10:15 PM, Oliver Schinagloliverl...@schinagl.nl wrote: Hi Jan, That page is probably not supported by linux-media and shows support (currently not working afaik) forthe U3100 mini PLUS. yes, minor difference in name, huge difference inside. The non-plus is a dib0700 based device, whereas the Plus is a af9035 based device. The non-plus should work out of the box on most distro's. Oliver On 07-04-12 20:21, Jan Prunk wrote: Hi ! I have ASUS U3100 Mini USB Dongle and I would like to watch DVB-T TV streams with it on Debian. The dongle when its plugged in lights with the green light. Performing (dvb)scan segfaults. I (partially) followed these guides: http://linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T I am using debian testing and it seems the device gets somehow recognised: [15120.976095] usb 3-1: USB disconnect, device number 2 [15124.716041] usb 1-3: new high-speed USB device number 5 using ehci_hcd [15124.848958] usb 1-3: New USB device found, idVendor=0b05, idProduct=173f [15124.848964] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [15124.848970] usb 1-3: Product: ASUS DVBT Tuner [15124.848974] usb 1-3: Manufacturer: ASUSTeK [15124.848977] usb 1-3: SerialNumber: 8500500875 [15125.344564] IR NEC protocol handler initialized [15125.370992] IR RC5(x) protocol handler initialized [15125.409376] dib0700: loaded with support for 21 different device-types [15125.409588] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner' in cold state, will try to load a firmware [15125.412893] IR RC6 protocol handler initialized [15125.440888] IR JVC protocol handler initialized [15125.463698] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw' [15125.465236] IR Sony protocol handler initialized [15125.468745] IR MCE Keyboard/mouse protocol handler initialized [15125.473597] lirc_dev: IR Remote Control driver registered, major 249 [15125.474883] IR LIRC bridge handler initialized [15125.671203] dib0700: firmware started successfully. [15126.172240] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner' in warm state. [15126.172346] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [15126.172902] DVB: registering new adapter (ASUS My Cinema U3100 Mini DVBT Tuner) [15126.390206] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)... [15126.607078] DiB0070: successfully identified [15126.708031] Registered IR keymap rc-dib0700-rc5 [15126.708271] input: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0/input12 [15126.709054] rc0: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0 [15126.710265] dvb-usb: schedule remote query interval to 50 msecs. [15126.710273] dvb-usb: ASUS My Cinema U3100 Mini DVBT Tuner successfully initialized and connected. [15126.710492] usbcore: registered new interface driver dvb_usb_dib0700 [15557.359129] scan[3798]: segfault at 3 ip b7620aa6 sp bfc268ac error 4 in libc-2.13.so[b75e2000+156000] [15650.161033] scan[3836]: segfault at 3 ip b766faa6 sp bf9974dc error 4 in libc-2.13.so[b7631000+156000] After this I used the guide at: http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Which resulted into: yang@vaio:~$ scan /usr/share/dvb/dvb-t/si-Ljubljana ~/.tzap/channels.conf scanning /usr/share/dvb/dvb-t/si-Ljubljana using '/dev/dvb/adapter0/frontend0' and
[RFC] b2c2_flexcop_pci: Add suspend/resume support
Dear linux-dvb developers, dear Matthias, proper suspend and resume support for the b2c2_flexcop_pci driver is still missing as pointed out by these two bug reports: https://bugs.gentoo.org/show_bug.cgi?id=288267 https://bugzilla.kernel.org/show_bug.cgi?id=14394 The first report contains a proposed patch to add suspend/resume support written by Matthias Schwarzott z...@gentoo.org. I and some others (see first bug report) confirm that it's actually working. Behaviour without the patch: b2c2_flexcop_pci must be unloaded before suspending (means TV applications must be closed), and reloaded after resuming. Behaviour with the patch: No module unloading/reloading necessary any more. Known issues: TV application still needs to be closed before suspend. Otherwise the device is not functional (kaffeine shows only black screen) after resume. Reloading the module revives the device in that case. I'd kindly ask you to review the attached patch by Matthias and consider its upstream inclusion after the issues are sorted out. I'm more than willing to assist and test as I can. Kind regards, Stefan Bauer ---8--- diff --git a/drivers/media/dvb/b2c2/flexcop-common.h b/drivers/media/dvb/b2c2/flexcop-common.h index 437912e..c5f11a6 100644 --- a/drivers/media/dvb/b2c2/flexcop-common.h +++ b/drivers/media/dvb/b2c2/flexcop-common.h @@ -117,6 +117,9 @@ int flexcop_device_initialize(struct flexcop_device *); void flexcop_device_exit(struct flexcop_device *fc); void flexcop_reset_block_300(struct flexcop_device *fc); +void flexcop_device_suspend(struct flexcop_device *fc); +void flexcop_device_resume(struct flexcop_device *fc); + /* from flexcop-dma.c */ int flexcop_dma_allocate(struct pci_dev *pdev, struct flexcop_dma *dma, u32 size); diff --git a/drivers/media/dvb/b2c2/flexcop-pci.c b/drivers/media/dvb/b2c2/flexcop-pci.c index 44f8fb5..1ef4b82 100644 --- a/drivers/media/dvb/b2c2/flexcop-pci.c +++ b/drivers/media/dvb/b2c2/flexcop-pci.c @@ -293,8 +293,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci) info(card revision %x, fc_pci-pdev-revision); - if ((ret = pci_enable_device(fc_pci-pdev)) != 0) - return ret; pci_set_master(fc_pci-pdev); if ((ret = pci_request_regions(fc_pci-pdev, DRIVER_NAME)) != 0) @@ -308,7 +306,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci) goto err_pci_release_regions; } - pci_set_drvdata(fc_pci-pdev, fc_pci); spin_lock_init(fc_pci-irq_lock); if ((ret = request_irq(fc_pci-pdev-irq, flexcop_pci_isr, IRQF_SHARED, DRIVER_NAME, fc_pci)) != 0) @@ -319,7 +316,6 @@ static int flexcop_pci_init(struct flexcop_pci *fc_pci) err_pci_iounmap: pci_iounmap(fc_pci-pdev, fc_pci-io_mem); - pci_set_drvdata(fc_pci-pdev, NULL); err_pci_release_regions: pci_release_regions(fc_pci-pdev); err_pci_disable_device: @@ -332,9 +328,7 @@ static void flexcop_pci_exit(struct flexcop_pci *fc_pci) if (fc_pci-init_state FC_PCI_INIT) { free_irq(fc_pci-pdev-irq, fc_pci); pci_iounmap(fc_pci-pdev, fc_pci-io_mem); - pci_set_drvdata(fc_pci-pdev, NULL); pci_release_regions(fc_pci-pdev); - pci_disable_device(fc_pci-pdev); } fc_pci-init_state = ~FC_PCI_INIT; } @@ -373,6 +367,11 @@ static int flexcop_pci_probe(struct pci_dev *pdev, /* bus specific part */ fc_pci-pdev = pdev; + ret = pci_enable_device(pdev); + if (ret != 0) + goto err_kfree; + + pci_set_drvdata(pdev, fc_pci); if ((ret = flexcop_pci_init(fc_pci)) != 0) goto err_kfree; @@ -398,6 +397,7 @@ err_fc_exit: err_pci_exit: flexcop_pci_exit(fc_pci); err_kfree: + pci_set_drvdata(pdev, NULL); flexcop_device_kfree(fc); return ret; } @@ -415,9 +415,74 @@ static void flexcop_pci_remove(struct pci_dev *pdev) flexcop_pci_dma_exit(fc_pci); flexcop_device_exit(fc_pci-fc_dev); flexcop_pci_exit(fc_pci); + pci_set_drvdata(pdev, NULL); + pci_disable_device(pdev); flexcop_device_kfree(fc_pci-fc_dev); } +#ifdef CONFIG_PM +static int flexcop_pci_suspend(struct pci_dev *pdev, pm_message_t mesg) +{ + struct flexcop_pci *fc_pci = pci_get_drvdata(pdev); + struct flexcop_device *fc = fc_pci-fc_dev; + + /* most parts are from flexcop_pci_remove */ + + if (irq_chk_intv 0) + cancel_delayed_work(fc_pci-irq_check_work); + + flexcop_pci_dma_exit(fc_pci); + flexcop_device_suspend(fc); + flexcop_pci_exit(fc_pci); + + pci_save_state(pdev); + + pci_disable_device(pdev); + pci_set_power_state(pdev, pci_choose_state(pdev, mesg)); + + return 0; +} + +static int flexcop_pci_resume(struct pci_dev *pdev) +{ + int ret; + struct flexcop_pci *fc_pci =
[PATCH 1/6] m88ds3103, montage dvb-s/s2 demodulator driver
Montage m88ds3103 demodulator and ts2022 tuner driver. Signed-off-by: Max nibble nibble@gmail.com --- drivers/media/dvb/frontends/Kconfig |7 + drivers/media/dvb/frontends/Makefile|2 + drivers/media/dvb/frontends/m88ds3103.c | 1851 +++ drivers/media/dvb/frontends/m88ds3103.h | 53 + 4 files changed, 1913 insertions(+) create mode 100644 drivers/media/dvb/frontends/m88ds3103.c create mode 100644 drivers/media/dvb/frontends/m88ds3103.h diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig index e11adb6..d2bb312 100644 --- a/drivers/media/dvb/frontends/Kconfig +++ b/drivers/media/dvb/frontends/Kconfig @@ -214,6 +214,13 @@ config DVB_CX24116 help A DVB-S/S2 tuner module. Say Y when you want to support this frontend. +config DVB_M88DS3103 + tristate Montage DS3103 based + depends on DVB_CORE I2C + default m if DVB_FE_CUSTOMISE + help + A DVB-S/S2 tuner module. Say Y when you want to support this frontend. + config DVB_SI21XX tristate Silicon Labs SI21XX based depends on DVB_CORE I2C diff --git a/drivers/media/dvb/frontends/Makefile b/drivers/media/dvb/frontends/Makefile index 6ca7557..84ddf41 100644 --- a/drivers/media/dvb/frontends/Makefile +++ b/drivers/media/dvb/frontends/Makefile @@ -98,5 +98,7 @@ obj-$(CONFIG_DVB_A8293) += a8293.o obj-$(CONFIG_DVB_TDA10071) += tda10071.o obj-$(CONFIG_DVB_RTL2830) += rtl2830.o obj-$(CONFIG_DVB_M88RS2000) += m88rs2000.o +obj-$(CONFIG_DVB_M88DS3103) += m88ds3103.o obj-$(CONFIG_DVB_AF9033) += af9033.o + diff --git a/drivers/media/dvb/frontends/m88ds3103.c b/drivers/media/dvb/frontends/m88ds3103.c new file mode 100644 index 000..a186ba0 --- /dev/null +++ b/drivers/media/dvb/frontends/m88ds3103.c @@ -0,0 +1,1851 @@ +/* +Montage Technology M88DS3103/M88TS2022 - DVBS/S2 Satellite demod/tuner driver + +Copyright (C) 2011 Max nibblenibble@gmail.com +Copyright (C) 2010 Montage Technologywww.montage-tech.com +Copyright (C) 2009 Konstantin Dimitrov. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include linux/slab.h +#include linux/kernel.h +#include linux/module.h +#include linux/moduleparam.h +#include linux/init.h +#include linux/firmware.h + +#include dvb_frontend.h +#include m88ds3103.h + +static int debug; +module_param(debug, int, 0644); +MODULE_PARM_DESC(debug, Activates frontend debugging (default:0)); + +#define dprintk(args...) \ + do { \ + if (debug) \ + printk(KERN_INFO m88ds3103: args); \ + } while (0) + +#define FW_DOWN_SIZE 32 +#define FW_DOWN_LOOP (8192/FW_DOWN_SIZE) +#define DS3103_DEFAULT_FIRMWARE dvb-fe-ds3103.fw +#define DS3000_DEFAULT_FIRMWARE dvb-fe-ds300x.fw +#define MT_FE_MCLK_KHZ 96000 /* in kHz */ +#define MT_FE_CRYSTAL_KHZ 27000 /* in kHz */ +#define FREQ_OFFSET_AT_SMALL_SYM_RATE_KHz 3000 +#define DS3000_ID 0x3000 +#define DS3103_ID 0x3103 +#define TS2020_ID 0x2020 +#define TS2022_ID 0x2022 +#define UNKNOW_ID 0x + +/* For M88DS3103 demod dvbs mode.*/ +static u8 ds3103_dvbs_init_tab[] = { + 0x23, 0x07, + 0x08, 0x03, + 0x0c, 0x02, + 0x21, 0x54, + 0x25, 0x82, + 0x27, 0x31, + 0x30, 0x08, + 0x31, 0x40, + 0x32, 0x32, + 0x33, 0x35, + 0x35, 0xff, + 0x3a, 0x00, + 0x37, 0x10, + 0x38, 0x10, + 0x39, 0x02, + 0x42, 0x60, + 0x4a, 0x80, + 0x4b, 0x04, + 0x4d, 0x91, + 0x5d, 0xc8, + 0x50, 0x36, + 0x51, 0x36, + 0x52, 0x36, + 0x53, 0x36, + 0x63, 0x0f, + 0x64, 0x30, + 0x65, 0x40, + 0x68, 0x26, + 0x69, 0x4c, + 0x70, 0x20, + 0x71, 0x70, + 0x72, 0x04, + 0x73, 0x00, + 0x70, 0x40, + 0x71, 0x70, + 0x72, 0x04, + 0x73, 0x00, + 0x70, 0x60, + 0x71, 0x70, + 0x72, 0x04, + 0x73, 0x00, + 0x70, 0x80, + 0x71, 0x70, + 0x72, 0x04, + 0x73, 0x00, + 0x70, 0xa0, + 0x71, 0x70, + 0x72, 0x04, + 0x73, 0x00, + 0x70, 0x1f, + 0x76, 0x38, + 0x77, 0xa6, + 0x78, 0x0c, + 0x79, 0x80, + 0x7f, 0x14, + 0x7c, 0x00, + 0xae, 0x82, +
[PATCH 2/6] m88ds3103, dvbsky dvb-s2 usb box.
dvbsky dvb-s2 usb box based on montage m88ds3103 demodulator. Signed-off-by: Max nibble nibble@gmail.com --- drivers/media/dvb/dvb-usb/Kconfig |1 + drivers/media/dvb/dvb-usb/dw2102.c | 236 +++- 2 files changed, 236 insertions(+), 1 deletion(-) diff --git a/drivers/media/dvb/dvb-usb/Kconfig b/drivers/media/dvb/dvb-usb/Kconfig index be1db75..bf63f29 100644 --- a/drivers/media/dvb/dvb-usb/Kconfig +++ b/drivers/media/dvb/dvb-usb/Kconfig @@ -279,6 +279,7 @@ config DVB_USB_DW2102 select DVB_STV0288 if !DVB_FE_CUSTOMISE select DVB_STB6000 if !DVB_FE_CUSTOMISE select DVB_CX24116 if !DVB_FE_CUSTOMISE + select DVB_M88DS3103 if !DVB_FE_CUSTOMISE select DVB_SI21XX if !DVB_FE_CUSTOMISE select DVB_TDA10023 if !DVB_FE_CUSTOMISE select DVB_MT312 if !DVB_FE_CUSTOMISE diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c index 451c5a7..0b1bbd2 100644 --- a/drivers/media/dvb/dvb-usb/dw2102.c +++ b/drivers/media/dvb/dvb-usb/dw2102.c @@ -19,6 +19,7 @@ #include stb6000.h #include eds1547.h #include cx24116.h +#include m88ds3103.h #include tda1002x.h #include mt312.h #include zl10039.h @@ -882,6 +883,44 @@ static int s660_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) return 0; } +static int bstusb_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) +{ + + struct dvb_usb_adapter *udev_adap = + (struct dvb_usb_adapter *)(fe-dvb-priv); + + u8 obuf[3] = { 0xe, 0x80, 0 }; + u8 ibuf[] = { 0 }; + + info(US6830: %s!\n, __func__); + + if (voltage == SEC_VOLTAGE_OFF) + obuf[2] = 0; + else + obuf[2] = 1; + + if (dvb_usb_generic_rw(udev_adap-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x0e transfer failed.); + + return 0; +} + +static int bstusb_restart(struct dvb_frontend *fe) +{ + + struct dvb_usb_adapter *udev_adap = + (struct dvb_usb_adapter *)(fe-dvb-priv); + + u8 obuf[3] = { 0x36, 3, 0 }; + u8 ibuf[] = { 0 }; + + + if (dvb_usb_generic_rw(udev_adap-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x36 transfer failed.); + + return 0; +} + static void dw210x_led_ctrl(struct dvb_frontend *fe, int offon) { static u8 led_off[] = { 0 }; @@ -987,6 +1026,24 @@ static struct ds3000_config su3000_ds3000_config = { .ci_mode = 1, }; +static struct m88ds3103_config US6830_ds3103_config = { + .demod_address = 0x68, + .ci_mode = 1, + .pin_ctrl = 0x83, + .ts_mode = 0, + .start_ctrl = bstusb_restart, + .set_voltage = bstusb_set_voltage, +}; + +static struct m88ds3103_config US6832_ds3103_config = { + .demod_address = 0x68, + .ci_mode = 1, + .pin_ctrl = 0x80, + .ts_mode = 0, + .start_ctrl = bstusb_restart, + .set_voltage = bstusb_set_voltage, +}; + static int dw2104_frontend_attach(struct dvb_usb_adapter *d) { struct dvb_tuner_ops *tuner_ops = NULL; @@ -1214,6 +1271,72 @@ static int su3000_frontend_attach(struct dvb_usb_adapter *d) return 0; } +static int US6830_frontend_attach(struct dvb_usb_adapter *d) +{ + u8 obuf[3] = { 0xe, 0x83, 0 }; + u8 ibuf[] = { 0 }; + + + info(US6830: %s!\n, __func__); + + if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x0e transfer failed.); + + obuf[0] = 0xe; + obuf[1] = 0x83; + obuf[2] = 1; + + if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x0e transfer failed.); + + obuf[0] = 0x51; + + if (dvb_usb_generic_rw(d-dev, obuf, 1, ibuf, 1, 0) 0) + err(command 0x51 transfer failed.); + + d-fe_adap[0].fe = dvb_attach(m88ds3103_attach, US6830_ds3103_config, + d-dev-i2c_adap); + if (d-fe_adap[0].fe == NULL) + return -EIO; + + info(Attached M88DS3103!\n); + + return 0; +} + +static int US6832_frontend_attach(struct dvb_usb_adapter *d) +{ + u8 obuf[3] = { 0xe, 0x83, 0 }; + u8 ibuf[] = { 0 }; + + + info(US6832: %s!\n, __func__); + + if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x0e transfer failed.); + + obuf[0] = 0xe; + obuf[1] = 0x83; + obuf[2] = 1; + + if (dvb_usb_generic_rw(d-dev, obuf, 3, ibuf, 1, 0) 0) + err(command 0x0e transfer failed.); + + obuf[0] = 0x51; + + if (dvb_usb_generic_rw(d-dev, obuf, 1, ibuf, 1, 0) 0) + err(command 0x51 transfer failed.); + + d-fe_adap[0].fe = dvb_attach(m88ds3103_attach, US6832_ds3103_config, + d-dev-i2c_adap); + if (d-fe_adap[0].fe ==
[PATCH 3/6] m88ds3103, dvbsky dvb-s2 cx23883 pci card.
dvbsky dvb-s2 pci based on montage m88ds3103 demodulator. Signed-off-by: Max nibble nibble@gmail.com --- drivers/media/video/cx88/Kconfig |1 + drivers/media/video/cx88/cx88-cards.c | 22 + drivers/media/video/cx88/cx88-dvb.c | 85 + drivers/media/video/cx88/cx88-input.c |4 ++ drivers/media/video/cx88/cx88.h |1 + 5 files changed, 113 insertions(+) diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig index 3598dc0..0daef63 100644 --- a/drivers/media/video/cx88/Kconfig +++ b/drivers/media/video/cx88/Kconfig @@ -57,6 +57,7 @@ config VIDEO_CX88_DVB select DVB_ISL6421 if !DVB_FE_CUSTOMISE select DVB_S5H1411 if !DVB_FE_CUSTOMISE select DVB_CX24116 if !DVB_FE_CUSTOMISE + select DVB_M88DS3103 if !DVB_FE_CUSTOMISE select DVB_STV0299 if !DVB_FE_CUSTOMISE select DVB_STV0288 if !DVB_FE_CUSTOMISE select DVB_STB6000 if !DVB_FE_CUSTOMISE diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index cbd5d11..059b22d 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c @@ -2309,6 +2309,18 @@ static const struct cx88_board cx88_boards[] = { } }, .mpeg = CX88_MPEG_DVB, }, + [CX88_BOARD_BST_PS8312] = { + .name = Bestunar PS8312 DVB-S/S2, + .tuner_type = UNSET, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .input = {{ + .type = CX88_VMUX_DVB, + .vmux = 0, + } }, + .mpeg = CX88_MPEG_DVB, + }, }; /* -- */ @@ -2813,6 +2825,10 @@ static const struct cx88_subid cx88_subids[] = { .subvendor = 0x1822, .subdevice = 0x0023, .card = CX88_BOARD_TWINHAN_VP1027_DVBS, + }, { + .subvendor = 0x14f1, + .subdevice = 0x8312, + .card = CX88_BOARD_BST_PS8312, }, }; @@ -3547,6 +3563,12 @@ static void cx88_card_setup(struct cx88_core *core) cx_write(MO_SRST_IO, 1); msleep(100); break; + case CX88_BOARD_BST_PS8312: + cx_write(MO_GP1_IO, 0x808000); + msleep(100); + cx_write(MO_GP1_IO, 0x808080); + msleep(100); + break; } /*end switch() */ diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index 003937c..5e19ef3 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c @@ -54,6 +54,7 @@ #include stv0288.h #include stb6000.h #include cx24116.h +#include m88ds3103.h #include stv0900.h #include stb6100.h #include stb6100_proc.h @@ -458,6 +459,56 @@ static int tevii_dvbs_set_voltage(struct dvb_frontend *fe, return core-prev_set_voltage(fe, voltage); return 0; } +/*CX88_BOARD_BST_PS8312*/ +static int bst_dvbs_set_voltage(struct dvb_frontend *fe, + fe_sec_voltage_t voltage) +{ + struct cx8802_dev *dev= fe-dvb-priv; + struct cx88_core *core = dev-core; + + cx_write(MO_GP1_IO, 0x11); + switch (voltage) { + case SEC_VOLTAGE_13: + cx_write(MO_GP1_IO, 0x020200); + break; + case SEC_VOLTAGE_18: + cx_write(MO_GP1_IO, 0x020202); + break; + case SEC_VOLTAGE_OFF: + cx_write(MO_GP1_IO, 0x00); + break; + } + + if (core-prev_set_voltage) + return core-prev_set_voltage(fe, voltage); + return 0; +} + +static int bst_dvbs_set_voltage_v2(struct dvb_frontend *fe, + fe_sec_voltage_t voltage) +{ + struct cx8802_dev *dev= fe-dvb-priv; + struct cx88_core *core = dev-core; + + cx_write(MO_GP1_IO, 0x01); + switch (voltage) { + case SEC_VOLTAGE_13: + cx_write(MO_GP1_IO, 0x020200); + break; + case SEC_VOLTAGE_18: + + cx_write(MO_GP1_IO, 0x020202); + break; + case SEC_VOLTAGE_OFF: + + cx_write(MO_GP1_IO, 0x10); + break; + } + + if (core-prev_set_voltage) + return core-prev_set_voltage(fe, voltage); + return 0; +} static int vp1027_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) @@ -700,6 +751,11 @@ static struct ds3000_config
[PATCH 4/6] m88ds3103, dvbsky dvb-s2 cx23885 pcie card.
dvbsky dvb-s2 pcie based on montage m88ds3103 demodulator. Signed-off-by: Max nibble nibble@gmail.com --- drivers/media/video/cx23885/Kconfig |1 + drivers/media/video/cx23885/cx23885-cards.c | 107 +++ drivers/media/video/cx23885/cx23885-dvb.c | 52 + drivers/media/video/cx23885/cx23885-f300.c | 55 ++ drivers/media/video/cx23885/cx23885-f300.h |6 ++ drivers/media/video/cx23885/cx23885-input.c | 15 drivers/media/video/cx23885/cx23885.h |3 + 7 files changed, 239 insertions(+) diff --git a/drivers/media/video/cx23885/Kconfig b/drivers/media/video/cx23885/Kconfig index b391e9b..20337c7 100644 --- a/drivers/media/video/cx23885/Kconfig +++ b/drivers/media/video/cx23885/Kconfig @@ -20,6 +20,7 @@ config VIDEO_CX23885 select DVB_LNBP21 if !DVB_FE_CUSTOMISE select DVB_STV6110 if !DVB_FE_CUSTOMISE select DVB_CX24116 if !DVB_FE_CUSTOMISE + select DVB_M88DS3103 if !DVB_FE_CUSTOMISE select DVB_STV0900 if !DVB_FE_CUSTOMISE select DVB_DS3000 if !DVB_FE_CUSTOMISE select DVB_STV0367 if !DVB_FE_CUSTOMISE diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c index 19b5499..fdf9d0f 100644 --- a/drivers/media/video/cx23885/cx23885-cards.c +++ b/drivers/media/video/cx23885/cx23885-cards.c @@ -497,6 +497,20 @@ struct cx23885_board cx23885_boards[] = { .name = TerraTec Cinergy T PCIe Dual, .portb = CX23885_MPEG_DVB, .portc = CX23885_MPEG_DVB, + }, + + [CX23885_BOARD_BST_PS8512] = { + .name = Bestunar PS8512, + .portb = CX23885_MPEG_DVB, + }, + [CX23885_BOARD_DVBSKY_S950] = { + .name = DVBSKY S950, + .portb = CX23885_MPEG_DVB, + }, + [CX23885_BOARD_DVBSKY_S952] = { + .name = DVBSKY S952, + .portb = CX23885_MPEG_DVB, + .portc = CX23885_MPEG_DVB, } }; const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards); @@ -705,6 +719,18 @@ struct cx23885_subid cx23885_subids[] = { .subvendor = 0x153b, .subdevice = 0x117e, .card = CX23885_BOARD_TERRATEC_CINERGY_T_PCIE_DUAL, + }, { + .subvendor = 0x14f1, + .subdevice = 0x8512, + .card = CX23885_BOARD_BST_PS8512, + }, { + .subvendor = 0x4254, + .subdevice = 0x0950, + .card = CX23885_BOARD_DVBSKY_S950, + }, { + .subvendor = 0x4254, + .subdevice = 0x0952, + .card = CX23885_BOARD_DVBSKY_S952, }, }; const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids); @@ -1216,9 +1242,57 @@ void cx23885_gpio_setup(struct cx23885_dev *dev) /* enable irq */ cx_write(GPIO_ISM, 0x);/* INTERRUPTS active low*/ break; + case CX23885_BOARD_DVBSKY_S950: + case CX23885_BOARD_BST_PS8512: + cx23885_gpio_enable(dev, GPIO_2, 1); + cx23885_gpio_clear(dev, GPIO_2); + msleep(100); + cx23885_gpio_set(dev, GPIO_2); + break; + case CX23885_BOARD_DVBSKY_S952: + cx_write(MC417_CTL, 0x0037);/* enable GPIO3-18 pins */ + + cx23885_gpio_enable(dev, GPIO_2, 1); + cx23885_gpio_enable(dev, GPIO_11, 1); + + cx23885_gpio_clear(dev, GPIO_2); + cx23885_gpio_clear(dev, GPIO_11); + msleep(100); + cx23885_gpio_set(dev, GPIO_2); + cx23885_gpio_set(dev, GPIO_11); + + break; } } +static int cx23885_ir_patch(struct i2c_adapter *i2c, u8 reg, u8 mask) +{ + struct i2c_msg msgs[2]; + u8 tx_buf[2], rx_buf[1]; + /* Write register address */ + tx_buf[0] = reg; + msgs[0].addr = 0x4c; + msgs[0].flags = 0; + msgs[0].len = 1; + msgs[0].buf = (char *) tx_buf; + /* Read data from register */ + msgs[1].addr = 0x4c; + msgs[1].flags = I2C_M_RD; + msgs[1].len = 1; + msgs[1].buf = (char *) rx_buf; + + i2c_transfer(i2c, msgs, 2); + + tx_buf[0] = reg; + tx_buf[1] = rx_buf[0] | mask; + msgs[0].addr = 0x4c; + msgs[0].flags = 0; + msgs[0].len = 2; + msgs[0].buf = (char *) tx_buf; + + return i2c_transfer(i2c, msgs, 1); +} + int cx23885_ir_init(struct cx23885_dev *dev) { static struct v4l2_subdev_io_pin_config ir_rxtx_pin_cfg[] = { @@ -1301,6 +1375,20 @@ int cx23885_ir_init(struct cx23885_dev *dev)
cron job: media_tree daily build: WARNINGS
This message is generated daily by a cron job that builds media_tree for the kernels and architectures in the list below. Results of the daily build of media_tree: date:Sun Apr 15 19:00:19 CEST 2012 git hash:f4d4e7656b26a6013bc5072c946920d2e2c44e8e gcc version: i686-linux-gcc (GCC) 4.6.3 host hardware:x86_64 host os: 3.1-2.slh.1-amd64 linux-git-arm-eabi-exynos: WARNINGS linux-git-arm-eabi-omap: WARNINGS linux-git-armv5-ixp: WARNINGS linux-git-i686: OK linux-git-m32r: OK linux-git-mips: WARNINGS linux-git-powerpc64: OK linux-git-x86_64: WARNINGS linux-2.6.31.12-i686: WARNINGS linux-2.6.32.6-i686: WARNINGS linux-2.6.33-i686: WARNINGS linux-2.6.34-i686: WARNINGS linux-2.6.35.3-i686: WARNINGS linux-2.6.36-i686: WARNINGS linux-2.6.37-i686: WARNINGS linux-2.6.38.2-i686: WARNINGS linux-2.6.39.1-i686: WARNINGS linux-3.0-i686: OK linux-3.1-i686: OK linux-3.2.1-i686: OK linux-3.3-i686: WARNINGS linux-2.6.31.12-x86_64: WARNINGS linux-2.6.32.6-x86_64: WARNINGS linux-2.6.33-x86_64: WARNINGS linux-2.6.34-x86_64: WARNINGS linux-2.6.35.3-x86_64: WARNINGS linux-2.6.36-x86_64: WARNINGS linux-2.6.37-x86_64: WARNINGS linux-2.6.38.2-x86_64: WARNINGS linux-2.6.39.1-x86_64: WARNINGS linux-3.0-x86_64: WARNINGS linux-3.1-x86_64: WARNINGS linux-3.2.1-x86_64: WARNINGS linux-3.3-x86_64: WARNINGS apps: WARNINGS spec-git: WARNINGS sparse: ERRORS Detailed results are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.log Full logs are available here: http://www.xs4all.nl/~hverkuil/logs/Sunday.tar.bz2 The V4L-DVB specification from this daily build is here: http://www.xs4all.nl/~hverkuil/spec/media.html -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: ASUS U3100 Mini
That makes a lot of sense. I had the same issue initially with the plus, where I would only receive signals if the antenna was near the window. On 04/15/12 10:26, Jan Prunk wrote: The trick was with bad reception indoors. I went testing to the balcony and framedrop dissapeared, and I get a clear picture. It seems that the Antenna is too weak in my apartment to have a clear signal. Kind regards, Jan On Sat, Apr 14, 2012 at 4:43 PM, Jan Prunkjanpr...@gmail.com wrote: Hello Oliver, Thank you for your hint. I have written up a WIKI page for this device, which hasn't been written earlier. I am willing to test the device further, if any of the devs can give me further hints for that. It's still not in a full working mode. I mean video is somehow partially visible with VLC, but I am no expert in fine-tuning the device. The wiki page is located at http://linuxtv.org/wiki/index.php/ASUS_My_Cinema-U3100_Mini I will update the information there, if I will receive any further hints. Kind regards, Jan On Tue, Apr 10, 2012 at 11:32 AM, Oliver Schinagl oliver+l...@schinagl.nl wrote: Unfortunatly I am not familiar with the dib0700 device, so not sure if you need firmware (I assume so, check linuxtv wiki on any dib0700 device. To test the device in its most basic level, I think w_scan is the best bet, as it works without any other extra files. Oliver On 07-04-12 23:32Hello , Jan Prunk wrote: Hi Oliver ! Thank you for your quick response. I assume that mine is a non-plus version. Do you know how I could proceed tuning the channel list, which I could then use in the combination with MPlayer ? Kind regards, Jan On Sat, Apr 7, 2012 at 10:15 PM, Oliver Schinagloliverl...@schinagl.nl wrote: Hi Jan, That page is probably not supported by linux-media and shows support (currently not working afaik) forthe U3100 mini PLUS. yes, minor difference in name, huge difference inside. The non-plus is a dib0700 based device, whereas the Plus is a af9035 based device. The non-plus should work out of the box on most distro's. Oliver On 07-04-12 20:21, Jan Prunk wrote: Hi ! I have ASUS U3100 Mini USB Dongle and I would like to watch DVB-T TV streams with it on Debian. The dongle when its plugged in lights with the green light. Performing (dvb)scan segfaults. I (partially) followed these guides: http://linuxtv.org/wiki/index.php/Asus_U3100_Mini_plus_DVB-T I am using debian testing and it seems the device gets somehow recognised: [15120.976095] usb 3-1: USB disconnect, device number 2 [15124.716041] usb 1-3: new high-speed USB device number 5 using ehci_hcd [15124.848958] usb 1-3: New USB device found, idVendor=0b05, idProduct=173f [15124.848964] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [15124.848970] usb 1-3: Product: ASUS DVBT Tuner [15124.848974] usb 1-3: Manufacturer: ASUSTeK [15124.848977] usb 1-3: SerialNumber: 8500500875 [15125.344564] IR NEC protocol handler initialized [15125.370992] IR RC5(x) protocol handler initialized [15125.409376] dib0700: loaded with support for 21 different device-types [15125.409588] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner' in cold state, will try to load a firmware [15125.412893] IR RC6 protocol handler initialized [15125.440888] IR JVC protocol handler initialized [15125.463698] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw' [15125.465236] IR Sony protocol handler initialized [15125.468745] IR MCE Keyboard/mouse protocol handler initialized [15125.473597] lirc_dev: IR Remote Control driver registered, major 249 [15125.474883] IR LIRC bridge handler initialized [15125.671203] dib0700: firmware started successfully. [15126.172240] dvb-usb: found a 'ASUS My Cinema U3100 Mini DVBT Tuner' in warm state. [15126.172346] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. [15126.172902] DVB: registering new adapter (ASUS My Cinema U3100 Mini DVBT Tuner) [15126.390206] DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)... [15126.607078] DiB0070: successfully identified [15126.708031] Registered IR keymap rc-dib0700-rc5 [15126.708271] input: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0/input12 [15126.709054] rc0: IR-receiver inside an USB DVB receiver as /devices/pci:00/:00:1d.7/usb1/1-3/rc/rc0 [15126.710265] dvb-usb: schedule remote query interval to 50 msecs. [15126.710273] dvb-usb: ASUS My Cinema U3100 Mini DVBT Tuner successfully initialized and connected. [15126.710492] usbcore: registered new interface driver dvb_usb_dib0700 [15557.359129] scan[3798]: segfault at 3 ip b7620aa6 sp bfc268ac error 4 in libc-2.13.so[b75e2000+156000] [15650.161033] scan[3836]: segfault at 3 ip b766faa6 sp bf9974dc error 4 in libc-2.13.so[b7631000+156000] After this I used the guide at: http://www.linuxtv.org/wiki/index.php/Testing_your_DVB_device Which resulted into: yang@vaio:~$ scan /usr/share/dvb/dvb-t/si-Ljubljana ~/.tzap/channels.conf scanning
Re: [PATCH 2/2] ARM: mach-shmobile: sh7372 CEU supports up to 8188x8188 images
On Wed, Mar 14, 2012 at 04:02:24PM +0100, Guennadi Liakhovetski wrote: Signed-off-by: Guennadi Liakhovetski g.liakhovet...@gmx.de Reviewed-by: Simon Horman ho...@verge.net.au --- This patch we can push some time after the first one in this series gets in, no breakage is caused. arch/arm/mach-shmobile/board-ap4evb.c |2 ++ arch/arm/mach-shmobile/board-mackerel.c |2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index aab0a34..f67aa03 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c @@ -1009,6 +1009,8 @@ static struct sh_mobile_ceu_companion csi2 = { static struct sh_mobile_ceu_info sh_mobile_ceu_info = { .flags = SH_CEU_FLAG_USE_8BIT_BUS, + .max_width = 8188, + .max_height = 8188, .csi2 = csi2, }; diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 9b42fbd..f790772 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c @@ -1270,6 +1270,8 @@ static void mackerel_camera_del(struct soc_camera_device *icd) static struct sh_mobile_ceu_info sh_mobile_ceu_info = { .flags = SH_CEU_FLAG_USE_8BIT_BUS, + .max_width = 8188, + .max_height = 8188, }; static struct resource ceu_resources[] = { -- 1.7.2.5 -- To unsubscribe from this list: send the line unsubscribe linux-sh in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] dib0700: add new USB PID for the Elgato EyeTV DTT stick
Hi, This patch works fine, but the IR sensor doesn't seem to be enabled. It's not a problem, because the stick isn't sold with a remote control. Sincerely, Daniel On 14/04/2012 15:14, Gianluca Gennari wrote: Reported working here: http://ubuntuforums.org/archive/index.php/t-1510188.html http://ubuntuforums.org/archive/index.php/t-1756828.html https://sites.google.com/site/slackwarestuff/home/elgato-eyetv Signed-off-by: Gianluca Gennarigennar...@gmail.com --- drivers/media/dvb/dvb-usb/dib0700_devices.c |7 ++- drivers/media/dvb/dvb-usb/dvb-usb-ids.h |1 + 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index f9e966a..510001d 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c @@ -3569,6 +3569,7 @@ struct usb_device_id dib0700_usb_id_table[] = { { USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE7090E) }, { USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE7790E) }, /* 80 */{ USB_DEVICE(USB_VID_DIBCOM,USB_PID_DIBCOM_TFE8096P) }, + { USB_DEVICE(USB_VID_ELGATO,USB_PID_ELGATO_EYETV_DTT_2) }, { 0 } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); @@ -3832,7 +3833,7 @@ struct dvb_usb_device_properties dib0700_devices[] = { }, }, - .num_device_descs = 11, + .num_device_descs = 12, .devices = { { DiBcom STK7070P reference design, {dib0700_usb_id_table[15], NULL }, @@ -3878,6 +3879,10 @@ struct dvb_usb_device_properties dib0700_devices[] = { {dib0700_usb_id_table[50], NULL }, { NULL }, }, + { Elgato EyeTV DTT rev. 2, + {dib0700_usb_id_table[81], NULL }, + { NULL }, + }, }, .rc.core = { diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h index 94d3f8a..2418e41 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h +++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h @@ -335,6 +335,7 @@ #define USB_PID_MYGICA_D689 0xd811 #define USB_PID_ELGATO_EYETV_DIVERSITY0x0011 #define USB_PID_ELGATO_EYETV_DTT 0x0021 +#define USB_PID_ELGATO_EYETV_DTT_2 0x003f #define USB_PID_ELGATO_EYETV_DTT_Dlx 0x0020 #define USB_PID_ELGATO_EYETV_SAT 0x002a #define USB_PID_DVB_T_USB_STICK_HIGH_SPEED_COLD 0x5000 -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html