* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
@ 2008-08-08 12:32 Albert Comerma
[not found] ` <489CCD82.5030406@gmail.com>
0 siblings, 1 reply; 14+ messages in thread
From: Albert Comerma @ 2008-08-08 12:32 UTC (permalink / raw)
To: linux-dvb, zeph7r
[-- Attachment #1.1: Type: text/plain, Size: 526 bytes --]
Just to clarify things...
Xceive chips are just tunners, RF chips, mostly analogue with some digital
interface, they don't do anything with usb or comunication with the
computer, for this reason you need the dibcom chip, it's a usb bridge +
decoder + something else...
To start to develop something you must first be sure of what chips it's
using.
If not you can try blindly if modifying the code for the U3000-Mini works or
Pinnacle 320cx (dibcom 7700 + xceive2028) work (you just need to add your
device usb id's).
Albert
[-- Attachment #1.2: Type: text/html, Size: 589 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
[not found] ` <489CCD82.5030406@gmail.com>
@ 2008-08-10 9:51 ` Albert Comerma
2008-08-11 11:22 ` zePh7r
2008-08-11 12:39 ` zePh7r
0 siblings, 2 replies; 14+ messages in thread
From: Albert Comerma @ 2008-08-10 9:51 UTC (permalink / raw)
To: zePh7r; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 1919 bytes --]
Sorry, I didn't explained much... it also took some time to me to understand
how it's working... Since xc2028 is the tunner it has no Id information on
the code. The id's are on the usb bridge code. You should add your deviece
id's at;
/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h and then insert your
device at
/v4l-dvb/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c first the
device descriptors (at arround line 1120) and then the device itself, I
would try it around line 1418. This last file, has already the include to
the xc2028 code and calls the tunner funcions. Looking the code around this
lines I guess you will understand how it works.
Albert
2008/8/9 zePh7r <zeph7r@gmail.com>
> Albert Comerma escreveu:
>
> Just to clarify things...
>>
>> Xceive chips are just tunners, RF chips, mostly analogue with some digital
>> interface, they don't do anything with usb or comunication with the
>> computer, for this reason you need the dibcom chip, it's a usb bridge +
>> decoder + something else...
>> To start to develop something you must first be sure of what chips it's
>> using.
>> If not you can try blindly if modifying the code for the U3000-Mini works
>> or Pinnacle 320cx (dibcom 7700 + xceive2028) work (you just need to add your
>> device usb id's).
>>
>> Albert
>>
> Thank you for replying Albert.
> I've been exploring the files downloaded through the mercurial repository
> and though I have found files which seem like they relate to that purpose in
> /v4l-dvb/linux/drivers/media/common/tuners (which are tuner-xc2028.c ,
> tuner-xc2028.h and tuner-xc2028-types.h) I can't find any section in the
> above files with some sort of list of device ID's so as to resemble them.
> There should be something like an xc2028-cards.c right?
> This must seem a noob question but this whole process looks like something
> someone who's not deeply into this project couldn't do easily..
>
[-- Attachment #1.2: Type: text/html, Size: 2445 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-10 9:51 ` Albert Comerma
@ 2008-08-11 11:22 ` zePh7r
2008-08-11 12:39 ` zePh7r
1 sibling, 0 replies; 14+ messages in thread
From: zePh7r @ 2008-08-11 11:22 UTC (permalink / raw)
To: Albert Comerma; +Cc: linux-dvb
Albert Comerma escreveu:
> Sorry, I didn't explained much... it also took some time to me to
> understand how it's working... Since xc2028 is the tunner it has no Id
> information on the code. The id's are on the usb bridge code. You
> should add your deviece id's at;
> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h and then insert
> your device at
> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c first
> the device descriptors (at arround line 1120) and then the device
> itself, I would try it around line 1418. This last file, has already
> the include to the xc2028 code and calls the tunner funcions. Looking
> the code around this lines I guess you will understand how it works.
>
> Albert
>
> 2008/8/9 zePh7r <zeph7r@gmail.com <mailto:zeph7r@gmail.com>>
>
> Albert Comerma escreveu:
>
> Just to clarify things...
>
> Xceive chips are just tunners, RF chips, mostly analogue with
> some digital interface, they don't do anything with usb or
> comunication with the computer, for this reason you need the
> dibcom chip, it's a usb bridge + decoder + something else...
> To start to develop something you must first be sure of what
> chips it's using.
> If not you can try blindly if modifying the code for the
> U3000-Mini works or Pinnacle 320cx (dibcom 7700 + xceive2028)
> work (you just need to add your device usb id's).
>
> Albert
>
> Thank you for replying Albert.
> I've been exploring the files downloaded through the mercurial
> repository and though I have found files which seem like they
> relate to that purpose in
> /v4l-dvb/linux/drivers/media/common/tuners (which are
> tuner-xc2028.c , tuner-xc2028.h and tuner-xc2028-types.h) I can't
> find any section in the above files with some sort of list of
> device ID's so as to resemble them. There should be something like
> an xc2028-cards.c right?
> This must seem a noob question but this whole process looks like
> something someone who's not deeply into this project couldn't do
> easily..
>
>
Thank you for being assisting me on this task Albert.
I've been exploring the files you mentioned and I'm a bit puzzled about
this specific string: &dib0700_usb_id_table[32] (where 32 is the value
for one of the cards). I couldn't find any correlation envolved with it.
Is there any special place I should look at to get the proper value for
this string?
Also, the last section seemed the right one to add the entry for my
device. Do you agree?
Thanks..
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-10 9:51 ` Albert Comerma
2008-08-11 11:22 ` zePh7r
@ 2008-08-11 12:39 ` zePh7r
2008-08-11 13:29 ` Albert Comerma
1 sibling, 1 reply; 14+ messages in thread
From: zePh7r @ 2008-08-11 12:39 UTC (permalink / raw)
To: Albert Comerma; +Cc: linux-dvb
Albert Comerma escreveu:
> Sorry, I didn't explained much... it also took some time to me to
> understand how it's working... Since xc2028 is the tunner it has no Id
> information on the code. The id's are on the usb bridge code. You
> should add your deviece id's at;
> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h and then insert
> your device at
> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c first
> the device descriptors (at arround line 1120) and then the device
> itself, I would try it around line 1418. This last file, has already
> the include to the xc2028 code and calls the tunner funcions. Looking
> the code around this lines I guess you will understand how it works.
>
> Albert
>
> 2008/8/9 zePh7r <zeph7r@gmail.com <mailto:zeph7r@gmail.com>>
>
> Albert Comerma escreveu:
>
> Just to clarify things...
>
> Xceive chips are just tunners, RF chips, mostly analogue with
> some digital interface, they don't do anything with usb or
> comunication with the computer, for this reason you need the
> dibcom chip, it's a usb bridge + decoder + something else...
> To start to develop something you must first be sure of what
> chips it's using.
> If not you can try blindly if modifying the code for the
> U3000-Mini works or Pinnacle 320cx (dibcom 7700 + xceive2028)
> work (you just need to add your device usb id's).
>
> Albert
>
> Thank you for replying Albert.
> I've been exploring the files downloaded through the mercurial
> repository and though I have found files which seem like they
> relate to that purpose in
> /v4l-dvb/linux/drivers/media/common/tuners (which are
> tuner-xc2028.c , tuner-xc2028.h and tuner-xc2028-types.h) I can't
> find any section in the above files with some sort of list of
> device ID's so as to resemble them. There should be something like
> an xc2028-cards.c right?
> This must seem a noob question but this whole process looks like
> something someone who's not deeply into this project couldn't do
> easily..
>
>
When I try to compile the drivers I get this:
zeph7r@zeph7r-laptop:~/v4l/v4l-dvb> make all
make -C /home/zeph7r/v4l/v4l-dvb/v4l all
make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
Updating/Creating .config
Preparing to compile for kernel version 2.6.25
File not found: /lib/modules/2.6.25.11-0.1-default/build/.config at
./scripts/make_kconfig.pl line 32, <IN> line 4.
make[1]: *** No rule to make target `.myconfig', needed by
`config-compat.h'. Stop.
make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
make: *** [all] Error 2
any hints on what might be causing this? I went look at that dir and
found a makedumpfile.config , perhaps I should edit config-compat.h and
set it to go look for that file instead..
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-11 12:39 ` zePh7r
@ 2008-08-11 13:29 ` Albert Comerma
2008-08-11 15:28 ` zePh7r
0 siblings, 1 reply; 14+ messages in thread
From: Albert Comerma @ 2008-08-11 13:29 UTC (permalink / raw)
To: zePh7r; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 3453 bytes --]
If you look around line 1082 of dib0700_devices.c you will find the table of
the cards, which refers to the id's you added on dvb-usb-ids.h. So you must
add an entry to that table. I send you the modified files, so you can see. I
also send you a .config file you must copy on v4l-dvb/v4l/ folder. Then go
into v4l-dvb and just type make, and then as root make install. That should
work without problems. To try all of this you need the dibcom and xceive
firmware at /lib/firmware
Albert
2008/8/11 zePh7r <zeph7r@gmail.com>
> Albert Comerma escreveu:
>
>> Sorry, I didn't explained much... it also took some time to me to
>> understand how it's working... Since xc2028 is the tunner it has no Id
>> information on the code. The id's are on the usb bridge code. You should add
>> your deviece id's at;
>> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h and then insert
>> your device at
>> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c first the
>> device descriptors (at arround line 1120) and then the device itself, I
>> would try it around line 1418. This last file, has already the include to
>> the xc2028 code and calls the tunner funcions. Looking the code around this
>> lines I guess you will understand how it works.
>>
>> Albert
>>
>> 2008/8/9 zePh7r <zeph7r@gmail.com <mailto:zeph7r@gmail.com>>
>>
>> Albert Comerma escreveu:
>>
>> Just to clarify things...
>>
>> Xceive chips are just tunners, RF chips, mostly analogue with
>> some digital interface, they don't do anything with usb or
>> comunication with the computer, for this reason you need the
>> dibcom chip, it's a usb bridge + decoder + something else...
>> To start to develop something you must first be sure of what
>> chips it's using.
>> If not you can try blindly if modifying the code for the
>> U3000-Mini works or Pinnacle 320cx (dibcom 7700 + xceive2028)
>> work (you just need to add your device usb id's).
>>
>> Albert
>>
>> Thank you for replying Albert.
>> I've been exploring the files downloaded through the mercurial
>> repository and though I have found files which seem like they
>> relate to that purpose in
>> /v4l-dvb/linux/drivers/media/common/tuners (which are
>> tuner-xc2028.c , tuner-xc2028.h and tuner-xc2028-types.h) I can't
>> find any section in the above files with some sort of list of
>> device ID's so as to resemble them. There should be something like
>> an xc2028-cards.c right?
>> This must seem a noob question but this whole process looks like
>> something someone who's not deeply into this project couldn't do
>> easily..
>>
>>
>> When I try to compile the drivers I get this:
>
> zeph7r@zeph7r-laptop:~/v4l/v4l-dvb> make all
> make -C /home/zeph7r/v4l/v4l-dvb/v4l all
> make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> Updating/Creating .config
> Preparing to compile for kernel version 2.6.25
> File not found: /lib/modules/2.6.25.11-0.1-default/build/.config at
> ./scripts/make_kconfig.pl line 32, <IN> line 4.
> make[1]: *** No rule to make target `.myconfig', needed by
> `config-compat.h'. Stop.
> make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> make: *** [all] Error 2
>
> any hints on what might be causing this? I went look at that dir and found
> a makedumpfile.config , perhaps I should edit config-compat.h and set it to
> go look for that file instead..
>
[-- Attachment #1.2: Type: text/html, Size: 4562 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: dvb-usb-ids.h --]
[-- Type: text/x-chdr; name=dvb-usb-ids.h, Size: 8767 bytes --]
/* dvb-usb-ids.h is part of the DVB USB library.
*
* Copyright (C) 2004-5 Patrick Boettcher (patrick.boettcher@desy.de) see
* dvb-usb-init.c for copyright information.
*
* a header file containing define's for the USB device supported by the
* various drivers.
*/
#ifndef _DVB_USB_IDS_H_
#define _DVB_USB_IDS_H_
/* Vendor IDs */
#define USB_VID_ADSTECH 0x06e1
#define USB_VID_AFATECH 0x15a4
#define USB_VID_ALCOR_MICRO 0x058f
#define USB_VID_ALINK 0x05e3
#define USB_VID_AMT 0x1c73
#define USB_VID_ANCHOR 0x0547
#define USB_VID_ANSONIC 0x10b9
#define USB_VID_ANUBIS_ELECTRONIC 0x10fd
#define USB_VID_ASUS 0x0b05
#define USB_VID_AVERMEDIA 0x07ca
#define USB_VID_COMPRO 0x185b
#define USB_VID_COMPRO_UNK 0x145f
#define USB_VID_CYPRESS 0x04b4
#define USB_VID_DIBCOM 0x10b8
#define USB_VID_DPOSH 0x1498
#define USB_VID_DVICO 0x0fe9
#define USB_VID_EMPIA 0xeb1a
#define USB_VID_GENPIX 0x09c0
#define USB_VID_GRANDTEC 0x5032
#define USB_VID_HANFTEK 0x15f4
#define USB_VID_HAUPPAUGE 0x2040
#define USB_VID_HYPER_PALTEK 0x1025
#define USB_VID_KWORLD 0xeb2a
#define USB_VID_KYE 0x0458
#define USB_VID_LEADTEK 0x0413
#define USB_VID_LITEON 0x04ca
#define USB_VID_MEDION 0x1660
#define USB_VID_MIGLIA 0x18f3
#define USB_VID_MSI 0x0db0
#define USB_VID_OPERA1 0x695c
#define USB_VID_PINNACLE 0x2304
#define USB_VID_TECHNOTREND 0x0b48
#define USB_VID_TERRATEC 0x0ccd
#define USB_VID_VISIONPLUS 0x13d3
#define USB_VID_TWINHAN 0x1822
#define USB_VID_ULTIMA_ELECTRONIC 0x05d8
#define USB_VID_UNIWILL 0x1584
#define USB_VID_WIDEVIEW 0x14aa
#define USB_VID_GIGABYTE 0x1044
#define USB_VID_YUAN 0x1164
/* Product IDs */
#define USB_PID_ADSTECH_USB2_COLD 0xa333
#define USB_PID_ADSTECH_USB2_WARM 0xa334
#define USB_PID_AFATECH_AF9005 0x9020
#define USB_VID_ALINK_DTU 0xf170
#define USB_PID_ANSONIC_DVBT_USB 0x6000
#define USB_PID_ANYSEE 0x861f
#define USB_PID_AVERMEDIA_DVBT_USB_COLD 0x0001
#define USB_PID_AVERMEDIA_DVBT_USB_WARM 0x0002
#define USB_PID_AVERMEDIA_DVBT_USB2_COLD 0xa800
#define USB_PID_AVERMEDIA_DVBT_USB2_WARM 0xa801
#define USB_PID_COMPRO_DVBU2000_COLD 0xd000
#define USB_PID_COMPRO_DVBU2000_WARM 0xd001
#define USB_PID_COMPRO_DVBU2000_UNK_COLD 0x010c
#define USB_PID_COMPRO_DVBU2000_UNK_WARM 0x010d
#define USB_PID_COMPRO_VIDEOMATE_U500 0x1e78
#define USB_PID_COMPRO_VIDEOMATE_U500_PC 0x1e80
#define USB_PID_DIBCOM_HOOK_DEFAULT 0x0064
#define USB_PID_DIBCOM_HOOK_DEFAULT_REENUM 0x0065
#define USB_PID_DIBCOM_MOD3000_COLD 0x0bb8
#define USB_PID_DIBCOM_MOD3000_WARM 0x0bb9
#define USB_PID_DIBCOM_MOD3001_COLD 0x0bc6
#define USB_PID_DIBCOM_MOD3001_WARM 0x0bc7
#define USB_PID_DIBCOM_STK7700P 0x1e14
#define USB_PID_DIBCOM_STK7700P_PC 0x1e78
#define USB_PID_DIBCOM_STK7700D 0x1ef0
#define USB_PID_DIBCOM_STK7700_U7000 0x7001
#define USB_PID_DIBCOM_STK7070P 0x1ebc
#define USB_PID_DIBCOM_STK7070PD 0x1ebe
#define USB_PID_DIBCOM_ANCHOR_2135_COLD 0x2131
#define USB_PID_DPOSH_M9206_COLD 0x9206
#define USB_PID_DPOSH_M9206_WARM 0xa090
#define USB_PID_UNIWILL_STK7700P 0x6003
#define USB_PID_GRANDTEC_DVBT_USB_COLD 0x0fa0
#define USB_PID_GRANDTEC_DVBT_USB_WARM 0x0fa1
#define USB_PID_KWORLD_VSTREAM_COLD 0x17de
#define USB_PID_KWORLD_VSTREAM_WARM 0x17df
#define USB_PID_TERRATEC_CINERGY_T_USB_XE 0x0055
#define USB_PID_TWINHAN_VP7041_COLD 0x3201
#define USB_PID_TWINHAN_VP7041_WARM 0x3202
#define USB_PID_TWINHAN_VP7020_COLD 0x3203
#define USB_PID_TWINHAN_VP7020_WARM 0x3204
#define USB_PID_TWINHAN_VP7045_COLD 0x3205
#define USB_PID_TWINHAN_VP7045_WARM 0x3206
#define USB_PID_TWINHAN_VP7021_COLD 0x3207
#define USB_PID_TWINHAN_VP7021_WARM 0x3208
#define USB_PID_DNTV_TINYUSB2_COLD 0x3223
#define USB_PID_DNTV_TINYUSB2_WARM 0x3224
#define USB_PID_ULTIMA_TVBOX_COLD 0x8105
#define USB_PID_ULTIMA_TVBOX_WARM 0x8106
#define USB_PID_ULTIMA_TVBOX_AN2235_COLD 0x8107
#define USB_PID_ULTIMA_TVBOX_AN2235_WARM 0x8108
#define USB_PID_ULTIMA_TVBOX_ANCHOR_COLD 0x2235
#define USB_PID_ULTIMA_TVBOX_USB2_COLD 0x8109
#define USB_PID_ULTIMA_TVBOX_USB2_WARM 0x810a
#define USB_PID_ARTEC_T14_COLD 0x810b
#define USB_PID_ARTEC_T14_WARM 0x810c
#define USB_PID_ARTEC_T14BR 0x810f
#define USB_PID_ULTIMA_TVBOX_USB2_FX_COLD 0x8613
#define USB_PID_ULTIMA_TVBOX_USB2_FX_WARM 0x1002
#define USB_PID_UNK_HYPER_PALTEK_COLD 0x005e
#define USB_PID_UNK_HYPER_PALTEK_WARM 0x005f
#define USB_PID_HANFTEK_UMT_010_COLD 0x0001
#define USB_PID_HANFTEK_UMT_010_WARM 0x0015
#define USB_PID_DTT200U_COLD 0x0201
#define USB_PID_DTT200U_WARM 0x0301
#define USB_PID_WT220U_ZAP250_COLD 0x0220
#define USB_PID_WT220U_COLD 0x0222
#define USB_PID_WT220U_WARM 0x0221
#define USB_PID_WT220U_FC_COLD 0x0225
#define USB_PID_WT220U_FC_WARM 0x0226
#define USB_PID_WT220U_ZL0353_COLD 0x022a
#define USB_PID_WT220U_ZL0353_WARM 0x022b
#define USB_PID_WINTV_NOVA_T_USB2_COLD 0x9300
#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301
#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941
#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950
#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050
#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060
#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070
#define USB_PID_HAUPPAUGE_MYTV_T 0x7080
#define USB_PID_HAUPPAUGE_NOVA_TD_STICK 0x9580
#define USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009 0x5200
#define USB_PID_AVERMEDIA_EXPRESS 0xb568
#define USB_PID_AVERMEDIA_VOLAR 0xa807
#define USB_PID_AVERMEDIA_VOLAR_2 0xb808
#define USB_PID_AVERMEDIA_VOLAR_A868R 0xa868
#define USB_PID_AVERMEDIA_MCE_USB_M038 0x1228
#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R 0x0039
#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_ATSC 0x1039
#define USB_PID_AVERMEDIA_HYBRID_ULTRA_USB_M039R_DVBT 0x2039
#define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006
#define USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY 0x005a
#define USB_PID_TERRATEC_CINERGY_HT_USB_XE 0x0058
#define USB_PID_TERRATEC_CINERGY_HT_EXPRESS 0x0060
#define USB_PID_TERRATEC_CINERGY_T_XXS 0x0078
#define USB_PID_PINNACLE_EXPRESSCARD_320CX 0x022e
#define USB_PID_PINNACLE_PCTV2000E 0x022c
#define USB_PID_PINNACLE_PCTV_DVB_T_FLASH 0x0228
#define USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T 0x0229
#define USB_PID_PINNACLE_PCTV72E 0x0236
#define USB_PID_PINNACLE_PCTV73E 0x0237
#define USB_PID_PCTV_200E 0x020e
#define USB_PID_PCTV_400E 0x020f
#define USB_PID_PCTV_450E 0x0222
#define USB_PID_NEBULA_DIGITV 0x0201
#define USB_PID_DVICO_BLUEBIRD_LGDT 0xd820
#define USB_PID_DVICO_BLUEBIRD_LG064F_COLD 0xd500
#define USB_PID_DVICO_BLUEBIRD_LG064F_WARM 0xd501
#define USB_PID_DVICO_BLUEBIRD_LGZ201_COLD 0xdb00
#define USB_PID_DVICO_BLUEBIRD_LGZ201_WARM 0xdb01
#define USB_PID_DVICO_BLUEBIRD_TH7579_COLD 0xdb10
#define USB_PID_DVICO_BLUEBIRD_TH7579_WARM 0xdb11
#define USB_PID_DVICO_BLUEBIRD_DUAL_1_COLD 0xdb50
#define USB_PID_DVICO_BLUEBIRD_DUAL_1_WARM 0xdb51
#define USB_PID_DVICO_BLUEBIRD_DUAL_2_COLD 0xdb58
#define USB_PID_DVICO_BLUEBIRD_DUAL_2_WARM 0xdb59
#define USB_PID_DVICO_BLUEBIRD_DUAL_4 0xdb78
#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2 0xdb70
#define USB_PID_DVICO_BLUEBIRD_DVB_T_NANO_2_NFW_WARM 0xdb71
#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_COLD 0xdb54
#define USB_PID_DIGITALNOW_BLUEBIRD_DUAL_1_WARM 0xdb55
#define USB_PID_MEDION_MD95700 0x0932
#define USB_PID_MSI_MEGASKY580 0x5580
#define USB_PID_MSI_MEGASKY580_55801 0x5581
#define USB_PID_KYE_DVB_T_COLD 0x701e
#define USB_PID_KYE_DVB_T_WARM 0x701f
#define USB_PID_LITEON_DVB_T_COLD 0xf000
#define USB_PID_LITEON_DVB_T_WARM 0xf001
#define USB_PID_DIGIVOX_MINI_SL_COLD 0xe360
#define USB_PID_DIGIVOX_MINI_SL_WARM 0xe361
#define USB_PID_GRANDTEC_DVBT_USB2_COLD 0x0bc6
#define USB_PID_GRANDTEC_DVBT_USB2_WARM 0x0bc7
#define USB_PID_WINFAST_DTV_DONGLE_COLD 0x6025
#define USB_PID_WINFAST_DTV_DONGLE_WARM 0x6026
#define USB_PID_WINFAST_DTV_DONGLE_STK7700P 0x6f00
#define USB_PID_WINFAST_DTV_DONGLE_STK7700P_2 0x6f01
#define USB_PID_GENPIX_8PSK_REV_1_COLD 0x0200
#define USB_PID_GENPIX_8PSK_REV_1_WARM 0x0201
#define USB_PID_GENPIX_8PSK_REV_2 0x0202
#define USB_PID_GENPIX_SKYWALKER_1 0x0203
#define USB_PID_GENPIX_SKYWALKER_CW3K 0x0204
#define USB_PID_SIGMATEK_DVB_110 0x6610
#define USB_PID_MSI_DIGI_VOX_MINI_II 0x1513
#define USB_PID_OPERA1_COLD 0x2830
#define USB_PID_OPERA1_WARM 0x3829
#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_COLD 0x0514
#define USB_PID_LIFEVIEW_TV_WALKER_TWIN_WARM 0x0513
#define USB_PID_GIGABYTE_U7000 0x7001
#define USB_PID_ASUS_U3000 0x171f
#define USB_PID_ASUS_U3000H 0x1736
#define USB_PID_ASUS_U3100 0x173f
#define USB_PID_YUAN_EC372S 0x1edc
#define USB_PID_DW2102 0x2102
#endif
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: dib0700_devices.c --]
[-- Type: text/x-csrc; name=dib0700_devices.c, Size: 40873 bytes --]
/* Linux driver for devices based on the DiBcom DiB0700 USB bridge
*
* 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, version 2.
*
* Copyright (C) 2005-7 DiBcom, SA
*/
#include "dib0700.h"
#include "dib3000mc.h"
#include "dib7000m.h"
#include "dib7000p.h"
#include "mt2060.h"
#include "mt2266.h"
#include "tuner-xc2028.h"
#include "dib0070.h"
static int force_lna_activation;
module_param(force_lna_activation, int, 0644);
MODULE_PARM_DESC(force_lna_activation, "force the activation of Low-Noise-Amplifyer(s) (LNA), "
"if applicable for the device (default: 0=automatic/off).");
struct dib0700_adapter_state {
int (*set_param_save) (struct dvb_frontend *, struct dvb_frontend_parameters *);
};
/* Hauppauge Nova-T 500 (aka Bristol)
* has a LNA on GPIO0 which is enabled by setting 1 */
static struct mt2060_config bristol_mt2060_config[2] = {
{
.i2c_address = 0x60,
.clock_out = 3,
}, {
.i2c_address = 0x61,
}
};
static struct dibx000_agc_config bristol_dib3000p_mt2060_agc_config = {
.band_caps = BAND_VHF | BAND_UHF,
.setup = (1 << 8) | (5 << 5) | (0 << 4) | (0 << 3) | (0 << 2) | (2 << 0),
.agc1_max = 42598,
.agc1_min = 17694,
.agc2_max = 45875,
.agc2_min = 0,
.agc1_pt1 = 0,
.agc1_pt2 = 59,
.agc1_slope1 = 0,
.agc1_slope2 = 69,
.agc2_pt1 = 0,
.agc2_pt2 = 59,
.agc2_slope1 = 111,
.agc2_slope2 = 28,
};
static struct dib3000mc_config bristol_dib3000mc_config[2] = {
{ .agc = &bristol_dib3000p_mt2060_agc_config,
.max_time = 0x196,
.ln_adc_level = 0x1cc7,
.output_mpeg2_in_188_bytes = 1,
},
{ .agc = &bristol_dib3000p_mt2060_agc_config,
.max_time = 0x196,
.ln_adc_level = 0x1cc7,
.output_mpeg2_in_188_bytes = 1,
}
};
static int bristol_frontend_attach(struct dvb_usb_adapter *adap)
{
struct dib0700_state *st = adap->dev->priv;
if (adap->id == 0) {
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(10);
if (force_lna_activation)
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
else
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 0);
if (dib3000mc_i2c_enumeration(&adap->dev->i2c_adap, 2, DEFAULT_DIB3000P_I2C_ADDRESS, bristol_dib3000mc_config) != 0) {
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(10);
return -ENODEV;
}
}
st->mt2060_if1[adap->id] = 1220;
return (adap->fe = dvb_attach(dib3000mc_attach, &adap->dev->i2c_adap,
(10 + adap->id) << 1, &bristol_dib3000mc_config[adap->id])) == NULL ? -ENODEV : 0;
}
static int eeprom_read(struct i2c_adapter *adap,u8 adrs,u8 *pval)
{
struct i2c_msg msg[2] = {
{ .addr = 0x50, .flags = 0, .buf = &adrs, .len = 1 },
{ .addr = 0x50, .flags = I2C_M_RD, .buf = pval, .len = 1 },
};
if (i2c_transfer(adap, msg, 2) != 2) return -EREMOTEIO;
return 0;
}
static int bristol_tuner_attach(struct dvb_usb_adapter *adap)
{
struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
struct i2c_adapter *tun_i2c = dib3000mc_get_tuner_i2c_master(adap->fe, 1);
s8 a;
int if1=1220;
if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_500_2)) {
if (!eeprom_read(prim_i2c,0x59 + adap->id,&a)) if1=1220+a;
}
return dvb_attach(mt2060_attach,adap->fe, tun_i2c,&bristol_mt2060_config[adap->id],
if1) == NULL ? -ENODEV : 0;
}
/* STK7700D: Pinnacle/Terratec/Hauppauge Dual DVB-T Diversity */
/* MT226x */
static struct dibx000_agc_config stk7700d_7000p_mt2266_agc_config[2] = {
{
BAND_UHF, // band_caps
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=1, P_agc_inv_pwm1=1, P_agc_inv_pwm2=1,
* P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=2, P_agc_write=0 */
(0 << 15) | (0 << 14) | (1 << 11) | (1 << 10) | (1 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), // setup
1130, // inv_gain
21, // time_stabiliz
0, // alpha_level
118, // thlock
0, // wbd_inv
3530, // wbd_ref
1, // wbd_sel
0, // wbd_alpha
65535, // agc1_max
33770, // agc1_min
65535, // agc2_max
23592, // agc2_min
0, // agc1_pt1
62, // agc1_pt2
255, // agc1_pt3
64, // agc1_slope1
64, // agc1_slope2
132, // agc2_pt1
192, // agc2_pt2
80, // agc2_slope1
80, // agc2_slope2
17, // alpha_mant
27, // alpha_exp
23, // beta_mant
51, // beta_exp
1, // perform_agc_softsplit
}, {
BAND_VHF | BAND_LBAND, // band_caps
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=1, P_agc_inv_pwm1=1, P_agc_inv_pwm2=1,
* P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=2, P_agc_write=0 */
(0 << 15) | (0 << 14) | (1 << 11) | (1 << 10) | (1 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (2 << 1) | (0 << 0), // setup
2372, // inv_gain
21, // time_stabiliz
0, // alpha_level
118, // thlock
0, // wbd_inv
3530, // wbd_ref
1, // wbd_sel
0, // wbd_alpha
65535, // agc1_max
0, // agc1_min
65535, // agc2_max
23592, // agc2_min
0, // agc1_pt1
128, // agc1_pt2
128, // agc1_pt3
128, // agc1_slope1
0, // agc1_slope2
128, // agc2_pt1
253, // agc2_pt2
81, // agc2_slope1
0, // agc2_slope2
17, // alpha_mant
27, // alpha_exp
23, // beta_mant
51, // beta_exp
1, // perform_agc_softsplit
}
};
static struct dibx000_bandwidth_config stk7700d_mt2266_pll_config = {
60000, 30000, // internal, sampling
1, 8, 3, 1, 0, // pll_cfg: prediv, ratio, range, reset, bypass
0, 0, 1, 1, 2, // misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc, modulo
(3 << 14) | (1 << 12) | (524 << 0), // sad_cfg: refsel, sel, freq_15k
0, // ifreq
20452225, // timf
};
static struct dib7000p_config stk7700d_dib7000p_mt2266_config[] = {
{ .output_mpeg2_in_188_bytes = 1,
.hostbus_diversity = 1,
.tuner_is_baseband = 1,
.agc_config_count = 2,
.agc = stk7700d_7000p_mt2266_agc_config,
.bw = &stk7700d_mt2266_pll_config,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
},
{ .output_mpeg2_in_188_bytes = 1,
.hostbus_diversity = 1,
.tuner_is_baseband = 1,
.agc_config_count = 2,
.agc = stk7700d_7000p_mt2266_agc_config,
.bw = &stk7700d_mt2266_pll_config,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
}
};
static struct mt2266_config stk7700d_mt2266_config[2] = {
{ .i2c_address = 0x60
},
{ .i2c_address = 0x60
}
};
static int stk7700P2_frontend_attach(struct dvb_usb_adapter *adap)
{
if (adap->id == 0) {
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
msleep(10);
dib7000p_i2c_enumeration(&adap->dev->i2c_adap,1,18,stk7700d_dib7000p_mt2266_config);
}
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,0x80+(adap->id << 1),
&stk7700d_dib7000p_mt2266_config[adap->id]);
return adap->fe == NULL ? -ENODEV : 0;
}
static int stk7700d_frontend_attach(struct dvb_usb_adapter *adap)
{
if (adap->id == 0) {
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
dib7000p_i2c_enumeration(&adap->dev->i2c_adap,2,18,stk7700d_dib7000p_mt2266_config);
}
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap,0x80+(adap->id << 1),
&stk7700d_dib7000p_mt2266_config[adap->id]);
return adap->fe == NULL ? -ENODEV : 0;
}
static int stk7700d_tuner_attach(struct dvb_usb_adapter *adap)
{
struct i2c_adapter *tun_i2c;
tun_i2c = dib7000p_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1);
return dvb_attach(mt2266_attach, adap->fe, tun_i2c,
&stk7700d_mt2266_config[adap->id]) == NULL ? -ENODEV : 0;;
}
/* STK7700-PH: Digital/Analog Hybrid Tuner, e.h. Cinergy HT USB HE */
static struct dibx000_agc_config xc3028_agc_config = {
BAND_VHF | BAND_UHF, /* band_caps */
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=0,
* P_agc_inv_pwm1=0, P_agc_inv_pwm2=0, P_agc_inh_dc_rv_est=0,
* P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=2, P_agc_write=0 */
(0 << 15) | (0 << 14) | (0 << 11) | (0 << 10) | (0 << 9) | (0 << 8) |
(3 << 5) | (0 << 4) | (2 << 1) | (0 << 0), /* setup */
712, /* inv_gain */
21, /* time_stabiliz */
0, /* alpha_level */
118, /* thlock */
0, /* wbd_inv */
2867, /* wbd_ref */
0, /* wbd_sel */
2, /* wbd_alpha */
0, /* agc1_max */
0, /* agc1_min */
39718, /* agc2_max */
9930, /* agc2_min */
0, /* agc1_pt1 */
0, /* agc1_pt2 */
0, /* agc1_pt3 */
0, /* agc1_slope1 */
0, /* agc1_slope2 */
0, /* agc2_pt1 */
128, /* agc2_pt2 */
29, /* agc2_slope1 */
29, /* agc2_slope2 */
17, /* alpha_mant */
27, /* alpha_exp */
23, /* beta_mant */
51, /* beta_exp */
1, /* perform_agc_softsplit */
};
/* PLL Configuration for COFDM BW_MHz = 8.00 with external clock = 30.00 */
static struct dibx000_bandwidth_config xc3028_bw_config = {
60000, 30000, /* internal, sampling */
1, 8, 3, 1, 0, /* pll_cfg: prediv, ratio, range, reset, bypass */
0, 0, 1, 1, 0, /* misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc,
modulo */
(3 << 14) | (1 << 12) | (524 << 0), /* sad_cfg: refsel, sel, freq_15k */
(1 << 25) | 5816102, /* ifreq = 5.200000 MHz */
20452225, /* timf */
30000000, /* xtal_hz */
};
static struct dib7000p_config stk7700ph_dib7700_xc3028_config = {
.output_mpeg2_in_188_bytes = 1,
.tuner_is_baseband = 1,
.agc_config_count = 1,
.agc = &xc3028_agc_config,
.bw = &xc3028_bw_config,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
};
static int stk7700ph_xc3028_callback(void *ptr, int command, int arg)
{
struct dvb_usb_adapter *adap = ptr;
switch (command) {
case XC2028_TUNER_RESET:
/* Send the tuner in then out of reset */
dib7000p_set_gpio(adap->fe, 8, 0, 0); msleep(10);
dib7000p_set_gpio(adap->fe, 8, 0, 1);
break;
case XC2028_RESET_CLK:
break;
default:
err("%s: unknown command %d, arg %d\n", __func__,
command, arg);
return -EINVAL;
}
return 0;
}
static struct xc2028_ctrl stk7700ph_xc3028_ctrl = {
.fname = XC2028_DEFAULT_FIRMWARE,
.max_len = 64,
.demod = XC3028_FE_DIBCOM52,
};
static struct xc2028_config stk7700ph_xc3028_config = {
.i2c_addr = 0x61,
.callback = stk7700ph_xc3028_callback,
.ctrl = &stk7700ph_xc3028_ctrl,
};
static int stk7700ph_frontend_attach(struct dvb_usb_adapter *adap)
{
struct usb_device_descriptor *desc = &adap->dev->udev->descriptor;
if (desc->idVendor == cpu_to_le16(USB_VID_PINNACLE) &&
desc->idProduct == cpu_to_le16(USB_PID_PINNACLE_EXPRESSCARD_320CX))
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
else
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
msleep(20);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
msleep(20);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
msleep(10);
dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
&stk7700ph_dib7700_xc3028_config);
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80,
&stk7700ph_dib7700_xc3028_config);
return adap->fe == NULL ? -ENODEV : 0;
}
static int stk7700ph_tuner_attach(struct dvb_usb_adapter *adap)
{
struct i2c_adapter *tun_i2c;
tun_i2c = dib7000p_get_i2c_master(adap->fe,
DIBX000_I2C_INTERFACE_TUNER, 1);
stk7700ph_xc3028_config.i2c_adap = tun_i2c;
stk7700ph_xc3028_config.video_dev = adap;
return dvb_attach(xc2028_attach, adap->fe, &stk7700ph_xc3028_config)
== NULL ? -ENODEV : 0;
}
#define DEFAULT_RC_INTERVAL 150
static u8 rc_request[] = { REQUEST_POLL_RC, 0 };
/* Number of keypresses to ignore before start repeating */
#define RC_REPEAT_DELAY 2
static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
{
u8 key[4];
int i;
struct dvb_usb_rc_key *keymap = d->props.rc_key_map;
struct dib0700_state *st = d->priv;
*event = 0;
*state = REMOTE_NO_KEY_PRESSED;
i=dib0700_ctrl_rd(d,rc_request,2,key,4);
if (i<=0) {
err("RC Query Failed");
return -1;
}
/* losing half of KEY_0 events from Philipps rc5 remotes.. */
if (key[0]==0 && key[1]==0 && key[2]==0 && key[3]==0) return 0;
/* info("%d: %2X %2X %2X %2X",dvb_usb_dib0700_ir_proto,(int)key[3-2],(int)key[3-3],(int)key[3-1],(int)key[3]); */
dib0700_rc_setup(d); /* reset ir sensor data to prevent false events */
switch (dvb_usb_dib0700_ir_proto) {
case 0: {
/* NEC protocol sends repeat code as 0 0 0 FF */
if ((key[3-2] == 0x00) && (key[3-3] == 0x00) &&
(key[3] == 0xFF)) {
st->rc_counter++;
if (st->rc_counter > RC_REPEAT_DELAY) {
*event = d->last_event;
*state = REMOTE_KEY_PRESSED;
st->rc_counter = RC_REPEAT_DELAY;
}
return 0;
}
for (i=0;i<d->props.rc_key_map_size; i++) {
if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) {
st->rc_counter = 0;
*event = keymap[i].event;
*state = REMOTE_KEY_PRESSED;
d->last_event = keymap[i].event;
return 0;
}
}
break;
}
default: {
/* RC-5 protocol changes toggle bit on new keypress */
for (i = 0; i < d->props.rc_key_map_size; i++) {
if (keymap[i].custom == key[3-2] && keymap[i].data == key[3-3]) {
if (d->last_event == keymap[i].event &&
key[3-1] == st->rc_toggle) {
st->rc_counter++;
/* prevents unwanted double hits */
if (st->rc_counter > RC_REPEAT_DELAY) {
*event = d->last_event;
*state = REMOTE_KEY_PRESSED;
st->rc_counter = RC_REPEAT_DELAY;
}
return 0;
}
st->rc_counter = 0;
*event = keymap[i].event;
*state = REMOTE_KEY_PRESSED;
st->rc_toggle = key[3-1];
d->last_event = keymap[i].event;
return 0;
}
}
break;
}
}
err("Unknown remote controller key: %2X %2X %2X %2X", (int) key[3-2], (int) key[3-3], (int) key[3-1], (int) key[3]);
d->last_event = 0;
return 0;
}
static struct dvb_usb_rc_key dib0700_rc_keys[] = {
/* Key codes for the tiny Pinnacle remote*/
{ 0x07, 0x00, KEY_MUTE },
{ 0x07, 0x01, KEY_MENU }, // Pinnacle logo
{ 0x07, 0x39, KEY_POWER },
{ 0x07, 0x03, KEY_VOLUMEUP },
{ 0x07, 0x09, KEY_VOLUMEDOWN },
{ 0x07, 0x06, KEY_CHANNELUP },
{ 0x07, 0x0c, KEY_CHANNELDOWN },
{ 0x07, 0x0f, KEY_1 },
{ 0x07, 0x15, KEY_2 },
{ 0x07, 0x10, KEY_3 },
{ 0x07, 0x18, KEY_4 },
{ 0x07, 0x1b, KEY_5 },
{ 0x07, 0x1e, KEY_6 },
{ 0x07, 0x11, KEY_7 },
{ 0x07, 0x21, KEY_8 },
{ 0x07, 0x12, KEY_9 },
{ 0x07, 0x27, KEY_0 },
{ 0x07, 0x24, KEY_SCREEN }, // 'Square' key
{ 0x07, 0x2a, KEY_TEXT }, // 'T' key
{ 0x07, 0x2d, KEY_REWIND },
{ 0x07, 0x30, KEY_PLAY },
{ 0x07, 0x33, KEY_FASTFORWARD },
{ 0x07, 0x36, KEY_RECORD },
{ 0x07, 0x3c, KEY_STOP },
{ 0x07, 0x3f, KEY_CANCEL }, // '?' key
/* Key codes for the Terratec Cinergy DT XS Diversity, similar to cinergyT2.c */
{ 0xeb, 0x01, KEY_POWER },
{ 0xeb, 0x02, KEY_1 },
{ 0xeb, 0x03, KEY_2 },
{ 0xeb, 0x04, KEY_3 },
{ 0xeb, 0x05, KEY_4 },
{ 0xeb, 0x06, KEY_5 },
{ 0xeb, 0x07, KEY_6 },
{ 0xeb, 0x08, KEY_7 },
{ 0xeb, 0x09, KEY_8 },
{ 0xeb, 0x0a, KEY_9 },
{ 0xeb, 0x0b, KEY_VIDEO },
{ 0xeb, 0x0c, KEY_0 },
{ 0xeb, 0x0d, KEY_REFRESH },
{ 0xeb, 0x0f, KEY_EPG },
{ 0xeb, 0x10, KEY_UP },
{ 0xeb, 0x11, KEY_LEFT },
{ 0xeb, 0x12, KEY_OK },
{ 0xeb, 0x13, KEY_RIGHT },
{ 0xeb, 0x14, KEY_DOWN },
{ 0xeb, 0x16, KEY_INFO },
{ 0xeb, 0x17, KEY_RED },
{ 0xeb, 0x18, KEY_GREEN },
{ 0xeb, 0x19, KEY_YELLOW },
{ 0xeb, 0x1a, KEY_BLUE },
{ 0xeb, 0x1b, KEY_CHANNELUP },
{ 0xeb, 0x1c, KEY_VOLUMEUP },
{ 0xeb, 0x1d, KEY_MUTE },
{ 0xeb, 0x1e, KEY_VOLUMEDOWN },
{ 0xeb, 0x1f, KEY_CHANNELDOWN },
{ 0xeb, 0x40, KEY_PAUSE },
{ 0xeb, 0x41, KEY_HOME },
{ 0xeb, 0x42, KEY_MENU }, /* DVD Menu */
{ 0xeb, 0x43, KEY_SUBTITLE },
{ 0xeb, 0x44, KEY_TEXT }, /* Teletext */
{ 0xeb, 0x45, KEY_DELETE },
{ 0xeb, 0x46, KEY_TV },
{ 0xeb, 0x47, KEY_DVD },
{ 0xeb, 0x48, KEY_STOP },
{ 0xeb, 0x49, KEY_VIDEO },
{ 0xeb, 0x4a, KEY_AUDIO }, /* Music */
{ 0xeb, 0x4b, KEY_SCREEN }, /* Pic */
{ 0xeb, 0x4c, KEY_PLAY },
{ 0xeb, 0x4d, KEY_BACK },
{ 0xeb, 0x4e, KEY_REWIND },
{ 0xeb, 0x4f, KEY_FASTFORWARD },
{ 0xeb, 0x54, KEY_PREVIOUS },
{ 0xeb, 0x58, KEY_RECORD },
{ 0xeb, 0x5c, KEY_NEXT },
/* Key codes for the Haupauge WinTV Nova-TD, copied from nova-t-usb2.c (Nova-T USB2) */
{ 0x1e, 0x00, KEY_0 },
{ 0x1e, 0x01, KEY_1 },
{ 0x1e, 0x02, KEY_2 },
{ 0x1e, 0x03, KEY_3 },
{ 0x1e, 0x04, KEY_4 },
{ 0x1e, 0x05, KEY_5 },
{ 0x1e, 0x06, KEY_6 },
{ 0x1e, 0x07, KEY_7 },
{ 0x1e, 0x08, KEY_8 },
{ 0x1e, 0x09, KEY_9 },
{ 0x1e, 0x0a, KEY_KPASTERISK },
{ 0x1e, 0x0b, KEY_RED },
{ 0x1e, 0x0c, KEY_RADIO },
{ 0x1e, 0x0d, KEY_MENU },
{ 0x1e, 0x0e, KEY_GRAVE }, /* # */
{ 0x1e, 0x0f, KEY_MUTE },
{ 0x1e, 0x10, KEY_VOLUMEUP },
{ 0x1e, 0x11, KEY_VOLUMEDOWN },
{ 0x1e, 0x12, KEY_CHANNEL },
{ 0x1e, 0x14, KEY_UP },
{ 0x1e, 0x15, KEY_DOWN },
{ 0x1e, 0x16, KEY_LEFT },
{ 0x1e, 0x17, KEY_RIGHT },
{ 0x1e, 0x18, KEY_VIDEO },
{ 0x1e, 0x19, KEY_AUDIO },
{ 0x1e, 0x1a, KEY_MEDIA },
{ 0x1e, 0x1b, KEY_EPG },
{ 0x1e, 0x1c, KEY_TV },
{ 0x1e, 0x1e, KEY_NEXT },
{ 0x1e, 0x1f, KEY_BACK },
{ 0x1e, 0x20, KEY_CHANNELUP },
{ 0x1e, 0x21, KEY_CHANNELDOWN },
{ 0x1e, 0x24, KEY_LAST }, /* Skip backwards */
{ 0x1e, 0x25, KEY_OK },
{ 0x1e, 0x29, KEY_BLUE},
{ 0x1e, 0x2e, KEY_GREEN },
{ 0x1e, 0x30, KEY_PAUSE },
{ 0x1e, 0x32, KEY_REWIND },
{ 0x1e, 0x34, KEY_FASTFORWARD },
{ 0x1e, 0x35, KEY_PLAY },
{ 0x1e, 0x36, KEY_STOP },
{ 0x1e, 0x37, KEY_RECORD },
{ 0x1e, 0x38, KEY_YELLOW },
{ 0x1e, 0x3b, KEY_GOTO },
{ 0x1e, 0x3d, KEY_POWER },
/* Key codes for the Leadtek Winfast DTV Dongle */
{ 0x00, 0x42, KEY_POWER },
{ 0x07, 0x7c, KEY_TUNER },
{ 0x0f, 0x4e, KEY_PRINT }, /* PREVIEW */
{ 0x08, 0x40, KEY_SCREEN }, /* full screen toggle*/
{ 0x0f, 0x71, KEY_DOT }, /* frequency */
{ 0x07, 0x43, KEY_0 },
{ 0x0c, 0x41, KEY_1 },
{ 0x04, 0x43, KEY_2 },
{ 0x0b, 0x7f, KEY_3 },
{ 0x0e, 0x41, KEY_4 },
{ 0x06, 0x43, KEY_5 },
{ 0x09, 0x7f, KEY_6 },
{ 0x0d, 0x7e, KEY_7 },
{ 0x05, 0x7c, KEY_8 },
{ 0x0a, 0x40, KEY_9 },
{ 0x0e, 0x4e, KEY_CLEAR },
{ 0x04, 0x7c, KEY_CHANNEL }, /* show channel number */
{ 0x0f, 0x41, KEY_LAST }, /* recall */
{ 0x03, 0x42, KEY_MUTE },
{ 0x06, 0x4c, KEY_RESERVED }, /* PIP button*/
{ 0x01, 0x72, KEY_SHUFFLE }, /* SNAPSHOT */
{ 0x0c, 0x4e, KEY_PLAYPAUSE }, /* TIMESHIFT */
{ 0x0b, 0x70, KEY_RECORD },
{ 0x03, 0x7d, KEY_VOLUMEUP },
{ 0x01, 0x7d, KEY_VOLUMEDOWN },
{ 0x02, 0x42, KEY_CHANNELUP },
{ 0x00, 0x7d, KEY_CHANNELDOWN },
};
/* STK7700P: Hauppauge Nova-T Stick, AVerMedia Volar */
static struct dibx000_agc_config stk7700p_7000m_mt2060_agc_config = {
BAND_UHF | BAND_VHF, // band_caps
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=5, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0,
* P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=2, P_agc_write=0 */
(0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (2 << 1) | (0 << 0), // setup
712, // inv_gain
41, // time_stabiliz
0, // alpha_level
118, // thlock
0, // wbd_inv
4095, // wbd_ref
0, // wbd_sel
0, // wbd_alpha
42598, // agc1_max
17694, // agc1_min
45875, // agc2_max
2621, // agc2_min
0, // agc1_pt1
76, // agc1_pt2
139, // agc1_pt3
52, // agc1_slope1
59, // agc1_slope2
107, // agc2_pt1
172, // agc2_pt2
57, // agc2_slope1
70, // agc2_slope2
21, // alpha_mant
25, // alpha_exp
28, // beta_mant
48, // beta_exp
1, // perform_agc_softsplit
{ 0, // split_min
107, // split_max
51800, // global_split_min
24700 // global_split_max
},
};
static struct dibx000_agc_config stk7700p_7000p_mt2060_agc_config = {
BAND_UHF | BAND_VHF,
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=5, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0,
* P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=2, P_agc_write=0 */
(0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (2 << 1) | (0 << 0), // setup
712, // inv_gain
41, // time_stabiliz
0, // alpha_level
118, // thlock
0, // wbd_inv
4095, // wbd_ref
0, // wbd_sel
0, // wbd_alpha
42598, // agc1_max
16384, // agc1_min
42598, // agc2_max
0, // agc2_min
0, // agc1_pt1
137, // agc1_pt2
255, // agc1_pt3
0, // agc1_slope1
255, // agc1_slope2
0, // agc2_pt1
0, // agc2_pt2
0, // agc2_slope1
41, // agc2_slope2
15, // alpha_mant
25, // alpha_exp
28, // beta_mant
48, // beta_exp
0, // perform_agc_softsplit
};
static struct dibx000_bandwidth_config stk7700p_pll_config = {
60000, 30000, // internal, sampling
1, 8, 3, 1, 0, // pll_cfg: prediv, ratio, range, reset, bypass
0, 0, 1, 1, 0, // misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc, modulo
(3 << 14) | (1 << 12) | (524 << 0), // sad_cfg: refsel, sel, freq_15k
60258167, // ifreq
20452225, // timf
30000000, // xtal
};
static struct dib7000m_config stk7700p_dib7000m_config = {
.dvbt_mode = 1,
.output_mpeg2_in_188_bytes = 1,
.quartz_direct = 1,
.agc_config_count = 1,
.agc = &stk7700p_7000m_mt2060_agc_config,
.bw = &stk7700p_pll_config,
.gpio_dir = DIB7000M_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000M_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000M_GPIO_DEFAULT_PWM_POS,
};
static struct dib7000p_config stk7700p_dib7000p_config = {
.output_mpeg2_in_188_bytes = 1,
.agc_config_count = 1,
.agc = &stk7700p_7000p_mt2060_agc_config,
.bw = &stk7700p_pll_config,
.gpio_dir = DIB7000M_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000M_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000M_GPIO_DEFAULT_PWM_POS,
};
static int stk7700p_frontend_attach(struct dvb_usb_adapter *adap)
{
struct dib0700_state *st = adap->dev->priv;
/* unless there is no real power management in DVB - we leave the device on GPIO6 */
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0); msleep(50);
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1); msleep(10);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0); msleep(10);
dib0700_ctrl_clock(adap->dev, 72, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1); msleep(100);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
st->mt2060_if1[0] = 1220;
if (dib7000pc_detection(&adap->dev->i2c_adap)) {
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 18, &stk7700p_dib7000p_config);
st->is_dib7000pc = 1;
} else
adap->fe = dvb_attach(dib7000m_attach, &adap->dev->i2c_adap, 18, &stk7700p_dib7000m_config);
return adap->fe == NULL ? -ENODEV : 0;
}
static struct mt2060_config stk7700p_mt2060_config = {
0x60
};
static int stk7700p_tuner_attach(struct dvb_usb_adapter *adap)
{
struct i2c_adapter *prim_i2c = &adap->dev->i2c_adap;
struct dib0700_state *st = adap->dev->priv;
struct i2c_adapter *tun_i2c;
s8 a;
int if1=1220;
if (adap->dev->udev->descriptor.idVendor == cpu_to_le16(USB_VID_HAUPPAUGE) &&
adap->dev->udev->descriptor.idProduct == cpu_to_le16(USB_PID_HAUPPAUGE_NOVA_T_STICK)) {
if (!eeprom_read(prim_i2c,0x58,&a)) if1=1220+a;
}
if (st->is_dib7000pc)
tun_i2c = dib7000p_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1);
else
tun_i2c = dib7000m_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1);
return dvb_attach(mt2060_attach, adap->fe, tun_i2c, &stk7700p_mt2060_config,
if1) == NULL ? -ENODEV : 0;
}
/* DIB7070 generic */
static struct dibx000_agc_config dib7070_agc_config = {
BAND_UHF | BAND_VHF | BAND_LBAND | BAND_SBAND,
/* P_agc_use_sd_mod1=0, P_agc_use_sd_mod2=0, P_agc_freq_pwm_div=5, P_agc_inv_pwm1=0, P_agc_inv_pwm2=0,
* P_agc_inh_dc_rv_est=0, P_agc_time_est=3, P_agc_freeze=0, P_agc_nb_est=5, P_agc_write=0 */
(0 << 15) | (0 << 14) | (5 << 11) | (0 << 10) | (0 << 9) | (0 << 8) | (3 << 5) | (0 << 4) | (5 << 1) | (0 << 0), // setup
600, // inv_gain
10, // time_stabiliz
0, // alpha_level
118, // thlock
0, // wbd_inv
3530, // wbd_ref
1, // wbd_sel
5, // wbd_alpha
65535, // agc1_max
0, // agc1_min
65535, // agc2_max
0, // agc2_min
0, // agc1_pt1
40, // agc1_pt2
183, // agc1_pt3
206, // agc1_slope1
255, // agc1_slope2
72, // agc2_pt1
152, // agc2_pt2
88, // agc2_slope1
90, // agc2_slope2
17, // alpha_mant
27, // alpha_exp
23, // beta_mant
51, // beta_exp
0, // perform_agc_softsplit
};
static int dib7070_tuner_reset(struct dvb_frontend *fe, int onoff)
{
return dib7000p_set_gpio(fe, 8, 0, !onoff);
}
static int dib7070_tuner_sleep(struct dvb_frontend *fe, int onoff)
{
return dib7000p_set_gpio(fe, 9, 0, onoff);
}
static struct dib0070_config dib7070p_dib0070_config[2] = {
{
.i2c_address = DEFAULT_DIB0070_I2C_ADDRESS,
.reset = dib7070_tuner_reset,
.sleep = dib7070_tuner_sleep,
.clock_khz = 12000,
.clock_pad_drive = 4
}, {
.i2c_address = DEFAULT_DIB0070_I2C_ADDRESS,
.reset = dib7070_tuner_reset,
.sleep = dib7070_tuner_sleep,
.clock_khz = 12000,
}
};
static int dib7070_set_param_override(struct dvb_frontend *fe, struct dvb_frontend_parameters *fep)
{
struct dvb_usb_adapter *adap = fe->dvb->priv;
struct dib0700_adapter_state *state = adap->priv;
u16 offset;
u8 band = BAND_OF_FREQUENCY(fep->frequency/1000);
switch (band) {
case BAND_VHF: offset = 950; break;
case BAND_UHF:
default: offset = 550; break;
}
deb_info("WBD for DiB7000P: %d\n", offset + dib0070_wbd_offset(fe));
dib7000p_set_wbd_ref(fe, offset + dib0070_wbd_offset(fe));
return state->set_param_save(fe, fep);
}
static int dib7070p_tuner_attach(struct dvb_usb_adapter *adap)
{
struct dib0700_adapter_state *st = adap->priv;
struct i2c_adapter *tun_i2c = dib7000p_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1);
if (adap->id == 0) {
if (dvb_attach(dib0070_attach, adap->fe, tun_i2c, &dib7070p_dib0070_config[0]) == NULL)
return -ENODEV;
} else {
if (dvb_attach(dib0070_attach, adap->fe, tun_i2c, &dib7070p_dib0070_config[1]) == NULL)
return -ENODEV;
}
st->set_param_save = adap->fe->ops.tuner_ops.set_params;
adap->fe->ops.tuner_ops.set_params = dib7070_set_param_override;
return 0;
}
static struct dibx000_bandwidth_config dib7070_bw_config_12_mhz = {
60000, 15000, // internal, sampling
1, 20, 3, 1, 0, // pll_cfg: prediv, ratio, range, reset, bypass
0, 0, 1, 1, 2, // misc: refdiv, bypclk_div, IO_CLK_en_core, ADClkSrc, modulo
(3 << 14) | (1 << 12) | (524 << 0), // sad_cfg: refsel, sel, freq_15k
(0 << 25) | 0, // ifreq = 0.000000 MHz
20452225, // timf
12000000, // xtal_hz
};
static struct dib7000p_config dib7070p_dib7000p_config = {
.output_mpeg2_in_188_bytes = 1,
.agc_config_count = 1,
.agc = &dib7070_agc_config,
.bw = &dib7070_bw_config_12_mhz,
.tuner_is_baseband = 1,
.spur_protect = 1,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
.hostbus_diversity = 1,
};
/* STK7070P */
static int stk7070p_frontend_attach(struct dvb_usb_adapter *adap)
{
struct usb_device_descriptor *p = &adap->dev->udev->descriptor;
if (p->idVendor == cpu_to_le16(USB_VID_PINNACLE) &&
p->idProduct == cpu_to_le16(USB_PID_PINNACLE_PCTV72E))
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 0);
else
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
dib0700_ctrl_clock(adap->dev, 72, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 1, 18,
&dib7070p_dib7000p_config);
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80,
&dib7070p_dib7000p_config);
return adap->fe == NULL ? -ENODEV : 0;
}
/* STK7070PD */
static struct dib7000p_config stk7070pd_dib7000p_config[2] = {
{
.output_mpeg2_in_188_bytes = 1,
.agc_config_count = 1,
.agc = &dib7070_agc_config,
.bw = &dib7070_bw_config_12_mhz,
.tuner_is_baseband = 1,
.spur_protect = 1,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
.hostbus_diversity = 1,
}, {
.output_mpeg2_in_188_bytes = 1,
.agc_config_count = 1,
.agc = &dib7070_agc_config,
.bw = &dib7070_bw_config_12_mhz,
.tuner_is_baseband = 1,
.spur_protect = 1,
.gpio_dir = DIB7000P_GPIO_DEFAULT_DIRECTIONS,
.gpio_val = DIB7000P_GPIO_DEFAULT_VALUES,
.gpio_pwm_pos = DIB7000P_GPIO_DEFAULT_PWM_POS,
.hostbus_diversity = 1,
}
};
static int stk7070pd_frontend_attach0(struct dvb_usb_adapter *adap)
{
dib0700_set_gpio(adap->dev, GPIO6, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO9, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO4, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO7, GPIO_OUT, 1);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 0);
dib0700_ctrl_clock(adap->dev, 72, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO10, GPIO_OUT, 1);
msleep(10);
dib0700_set_gpio(adap->dev, GPIO0, GPIO_OUT, 1);
dib7000p_i2c_enumeration(&adap->dev->i2c_adap, 2, 18, stk7070pd_dib7000p_config);
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x80, &stk7070pd_dib7000p_config[0]);
return adap->fe == NULL ? -ENODEV : 0;
}
static int stk7070pd_frontend_attach1(struct dvb_usb_adapter *adap)
{
adap->fe = dvb_attach(dib7000p_attach, &adap->dev->i2c_adap, 0x82, &stk7070pd_dib7000p_config[1]);
return adap->fe == NULL ? -ENODEV : 0;
}
/* DVB-USB and USB stuff follows */
struct usb_device_id dib0700_usb_id_table[] = {
/* 0 */ { USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P) },
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700P_PC) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500_2) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK) },
/* 5 */ { USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR) },
{ USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_VIDEOMATE_U500) },
{ USB_DEVICE(USB_VID_UNIWILL, USB_PID_UNIWILL_STK7700P) },
{ USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK_2) },
/* 10 */{ USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_2) },
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV2000E) },
{ USB_DEVICE(USB_VID_TERRATEC,
USB_PID_TERRATEC_CINERGY_DT_XS_DIVERSITY) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK) },
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7700D) },
/* 15 */{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7070P) },
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV_DVB_T_FLASH) },
{ USB_DEVICE(USB_VID_DIBCOM, USB_PID_DIBCOM_STK7070PD) },
{ USB_DEVICE(USB_VID_PINNACLE,
USB_PID_PINNACLE_PCTV_DUAL_DIVERSITY_DVB_T) },
{ USB_DEVICE(USB_VID_COMPRO, USB_PID_COMPRO_VIDEOMATE_U500_PC) },
/* 20 */{ USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_EXPRESS) },
{ USB_DEVICE(USB_VID_GIGABYTE, USB_PID_GIGABYTE_U7000) },
{ USB_DEVICE(USB_VID_ULTIMA_ELECTRONIC, USB_PID_ARTEC_T14BR) },
{ USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3000) },
{ USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3100) },
/* 25 */{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_STICK_3) },
{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_MYTV_T) },
{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_USB_XE) },
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_EXPRESSCARD_320CX) },
{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV72E) },
/* 30 */{ USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV73E) },
{ USB_DEVICE(USB_VID_YUAN, USB_PID_YUAN_EC372S) },
{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_EXPRESS) },
{ USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS) },
{ USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) },
/* 35 */{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) },
{ USB_DEVICE(USB_VID_ASUS, USB_PID_ASUS_U3000H) },
{ 0 } /* Terminating entry */
};
MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
#define DIB0700_DEFAULT_DEVICE_PROPERTIES \
.caps = DVB_USB_IS_AN_I2C_ADAPTER, \
.usb_ctrl = DEVICE_SPECIFIC, \
.firmware = "dvb-usb-dib0700-1.10.fw", \
.download_firmware = dib0700_download_firmware, \
.no_reconnect = 1, \
.size_of_priv = sizeof(struct dib0700_state), \
.i2c_algo = &dib0700_i2c_algo, \
.identify_state = dib0700_identify_state
#define DIB0700_DEFAULT_STREAMING_CONFIG(ep) \
.streaming_ctrl = dib0700_streaming_ctrl, \
.stream = { \
.type = USB_BULK, \
.count = 4, \
.endpoint = ep, \
.u = { \
.bulk = { \
.buffersize = 39480, \
} \
} \
}
struct dvb_usb_device_properties dib0700_devices[] = {
{
DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 1,
.adapter = {
{
.frontend_attach = stk7700p_frontend_attach,
.tuner_attach = stk7700p_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
},
},
.num_device_descs = 8,
.devices = {
{ "DiBcom STK7700P reference design",
{ &dib0700_usb_id_table[0], &dib0700_usb_id_table[1] },
{ NULL },
},
{ "Hauppauge Nova-T Stick",
{ &dib0700_usb_id_table[4], &dib0700_usb_id_table[9], NULL },
{ NULL },
},
{ "AVerMedia AVerTV DVB-T Volar",
{ &dib0700_usb_id_table[5], &dib0700_usb_id_table[10] },
{ NULL },
},
{ "Compro Videomate U500",
{ &dib0700_usb_id_table[6], &dib0700_usb_id_table[19] },
{ NULL },
},
{ "Uniwill STK7700P based (Hama and others)",
{ &dib0700_usb_id_table[7], NULL },
{ NULL },
},
{ "Leadtek Winfast DTV Dongle (STK7700P based)",
{ &dib0700_usb_id_table[8], &dib0700_usb_id_table[34] },
{ NULL },
},
{ "AVerMedia AVerTV DVB-T Express",
{ &dib0700_usb_id_table[20] },
{ NULL },
},
{ "Gigabyte U7000",
{ &dib0700_usb_id_table[21], NULL },
{ NULL },
}
},
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = dib0700_rc_keys,
.rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys),
.rc_query = dib0700_rc_query
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 2,
.adapter = {
{
.frontend_attach = bristol_frontend_attach,
.tuner_attach = bristol_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
}, {
.frontend_attach = bristol_frontend_attach,
.tuner_attach = bristol_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x03),
}
},
.num_device_descs = 1,
.devices = {
{ "Hauppauge Nova-T 500 Dual DVB-T",
{ &dib0700_usb_id_table[2], &dib0700_usb_id_table[3], NULL },
{ NULL },
},
},
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = dib0700_rc_keys,
.rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys),
.rc_query = dib0700_rc_query
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 2,
.adapter = {
{
.frontend_attach = stk7700d_frontend_attach,
.tuner_attach = stk7700d_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
}, {
.frontend_attach = stk7700d_frontend_attach,
.tuner_attach = stk7700d_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x03),
}
},
.num_device_descs = 4,
.devices = {
{ "Pinnacle PCTV 2000e",
{ &dib0700_usb_id_table[11], NULL },
{ NULL },
},
{ "Terratec Cinergy DT XS Diversity",
{ &dib0700_usb_id_table[12], NULL },
{ NULL },
},
{ "Hauppauge Nova-TD Stick/Elgato Eye-TV Diversity",
{ &dib0700_usb_id_table[13], NULL },
{ NULL },
},
{ "DiBcom STK7700D reference design",
{ &dib0700_usb_id_table[14], NULL },
{ NULL },
}
},
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = dib0700_rc_keys,
.rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys),
.rc_query = dib0700_rc_query
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 1,
.adapter = {
{
.frontend_attach = stk7700P2_frontend_attach,
.tuner_attach = stk7700d_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
},
},
.num_device_descs = 2,
.devices = {
{ "ASUS My Cinema U3000 Mini DVBT Tuner",
{ &dib0700_usb_id_table[23], NULL },
{ NULL },
},
{ "Yuan EC372S",
{ &dib0700_usb_id_table[31], NULL },
{ NULL },
}
}
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 1,
.adapter = {
{
.frontend_attach = stk7070p_frontend_attach,
.tuner_attach = dib7070p_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
.size_of_priv = sizeof(struct dib0700_adapter_state),
},
},
.num_device_descs = 9,
.devices = {
{ "DiBcom STK7070P reference design",
{ &dib0700_usb_id_table[15], NULL },
{ NULL },
},
{ "Pinnacle PCTV DVB-T Flash Stick",
{ &dib0700_usb_id_table[16], NULL },
{ NULL },
},
{ "Artec T14BR DVB-T",
{ &dib0700_usb_id_table[22], NULL },
{ NULL },
},
{ "ASUS My Cinema U3100 Mini DVBT Tuner",
{ &dib0700_usb_id_table[24], NULL },
{ NULL },
},
{ "Hauppauge Nova-T Stick",
{ &dib0700_usb_id_table[25], NULL },
{ NULL },
},
{ "Hauppauge Nova-T MyTV.t",
{ &dib0700_usb_id_table[26], NULL },
{ NULL },
},
{ "Pinnacle PCTV 72e",
{ &dib0700_usb_id_table[29], NULL },
{ NULL },
},
{ "Pinnacle PCTV 73e",
{ &dib0700_usb_id_table[30], NULL },
{ NULL },
},
{ "Terratec Cinergy T USB XXS",
{ &dib0700_usb_id_table[33], NULL },
{ NULL },
},
},
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = dib0700_rc_keys,
.rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys),
.rc_query = dib0700_rc_query
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 2,
.adapter = {
{
.frontend_attach = stk7070pd_frontend_attach0,
.tuner_attach = dib7070p_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
.size_of_priv = sizeof(struct dib0700_adapter_state),
}, {
.frontend_attach = stk7070pd_frontend_attach1,
.tuner_attach = dib7070p_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x03),
.size_of_priv = sizeof(struct dib0700_adapter_state),
}
},
.num_device_descs = 3,
.devices = {
{ "DiBcom STK7070PD reference design",
{ &dib0700_usb_id_table[17], NULL },
{ NULL },
},
{ "Pinnacle PCTV Dual DVB-T Diversity Stick",
{ &dib0700_usb_id_table[18], NULL },
{ NULL },
},
{ "Hauppauge Nova-TD Stick (52009)",
{ &dib0700_usb_id_table[35], NULL },
{ NULL },
}
}
}, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
.num_adapters = 1,
.adapter = {
{
.frontend_attach = stk7700ph_frontend_attach,
.tuner_attach = stk7700ph_tuner_attach,
DIB0700_DEFAULT_STREAMING_CONFIG(0x02),
.size_of_priv = sizeof(struct
dib0700_adapter_state),
},
},
.num_device_descs = 4,
.devices = {
{ "Terratec Cinergy HT USB XE",
{ &dib0700_usb_id_table[27], NULL },
{ NULL },
},
{ "ASUS U3000 Hybrid",
{ &dib0700_usb_id_table[36], NULL },
{ NULL },
},
{ "Pinnacle Expresscard 320cx",
{ &dib0700_usb_id_table[28], NULL },
{ NULL },
},
{ "Terratec Cinergy HT Express",
{ &dib0700_usb_id_table[32], NULL },
{ NULL },
},
},
.rc_interval = DEFAULT_RC_INTERVAL,
.rc_key_map = dib0700_rc_keys,
.rc_key_map_size = ARRAY_SIZE(dib0700_rc_keys),
.rc_query = dib0700_rc_query
},
};
int dib0700_device_count = ARRAY_SIZE(dib0700_devices);
[-- Attachment #4: .config --]
[-- Type: application/octet-stream, Size: 5010 bytes --]
#
# Automatically generated make config: don't edit
# Linux kernel version:
# Sun May 11 14:23:24 2008
#
CONFIG_INPUT=y
CONFIG_USB=m
CONFIG_PARPORT=m
# CONFIG_due is not set
# CONFIG_SPARC64 is not set
CONFIG_FW_LOADER=m
# CONFIG_of is not set
# CONFIG_PLAT_M32700UT is not set
CONFIG_NET=y
CONFIG_FB_CFB_COPYAREA=y
# CONFIG_GENERIC_GPIO is not set
# CONFIG_SOUND_PRIME is not set
# CONFIG_SND_AC97_CODEC is not set
# CONFIG_PXA27x is not set
# CONFIG_dependencies is not set
# CONFIG_SGI_IP22 is not set
CONFIG_I2C=m
CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_GPIO_PCA953X is not set
CONFIG_STANDALONE=y
CONFIG_HOTPLUG=y
# CONFIG_dependency is not set
# CONFIG_SND_MPU401_UART is not set
# CONFIG_SND is not set
CONFIG_MODULES=y
# CONFIG_BROKEN is not set
# CONFIG_SND_OPL3_LIB is not set
CONFIG_HAS_IOMEM=y
# CONFIG_PPC_PMAC is not set
CONFIG_PROC_FS=y
# CONFIG_SPARC32 is not set
CONFIG_I2C_ALGOBIT=m
# CONFIG_DVB_FE_CUSTOMIZE is not set
# CONFIG_to is not set
CONFIG_HAS_DMA=y
CONFIG_INET=y
# CONFIG_SOUND_OSS is not set
CONFIG_CRC32=m
CONFIG_FB=y
CONFIG_SYSFS=y
CONFIG_ISA=y
CONFIG_PCI=y
CONFIG_SONY_LAPTOP=m
# CONFIG_SND_PCM is not set
CONFIG_PARPORT_1284=y
CONFIG_EXPERIMENTAL=y
# CONFIG_M32R is not set
# CONFIG_I2C_ALGO_SGI is not set
CONFIG_FB_CFB_FILLRECT=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_VIDEO_KERNEL_VERSION is not set
#
# Multimedia devices
#
#
# Multimedia core support
#
# CONFIG_VIDEO_DEV is not set
CONFIG_DVB_CORE=m
CONFIG_VIDEO_MEDIA=m
#
# Multimedia drivers
#
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_TUNER=m
CONFIG_MEDIA_TUNER_CUSTOMIZE=y
# CONFIG_MEDIA_TUNER_SIMPLE is not set
# CONFIG_MEDIA_TUNER_TDA8290 is not set
# CONFIG_MEDIA_TUNER_TDA827X is not set
# CONFIG_MEDIA_TUNER_TDA18271 is not set
# CONFIG_MEDIA_TUNER_TDA9887 is not set
# CONFIG_MEDIA_TUNER_TEA5761 is not set
# CONFIG_MEDIA_TUNER_TEA5767 is not set
# CONFIG_MEDIA_TUNER_MT20XX is not set
CONFIG_MEDIA_TUNER_MT2060=m
CONFIG_MEDIA_TUNER_MT2266=m
# CONFIG_MEDIA_TUNER_MT2131 is not set
# CONFIG_MEDIA_TUNER_QT1010 is not set
CONFIG_MEDIA_TUNER_XC2028=m
# CONFIG_MEDIA_TUNER_XC5000 is not set
# CONFIG_MEDIA_TUNER_MXL5005S is not set
CONFIG_DVB_CAPTURE_DRIVERS=y
#
# Supported SAA7146 based PCI Adapters
#
# CONFIG_TTPCI_EEPROM is not set
# CONFIG_DVB_BUDGET_CORE is not set
#
# Supported USB Adapters
#
CONFIG_DVB_USB=m
CONFIG_DVB_USB_DEBUG=y
# CONFIG_DVB_USB_A800 is not set
# CONFIG_DVB_USB_DIBUSB_MB is not set
# CONFIG_DVB_USB_DIBUSB_MC is not set
CONFIG_DVB_USB_DIB0700=m
# CONFIG_DVB_USB_UMT_010 is not set
# CONFIG_DVB_USB_CXUSB is not set
# CONFIG_DVB_USB_M920X is not set
# CONFIG_DVB_USB_GL861 is not set
# CONFIG_DVB_USB_AU6610 is not set
# CONFIG_DVB_USB_DIGITV is not set
# CONFIG_DVB_USB_VP7045 is not set
# CONFIG_DVB_USB_VP702X is not set
# CONFIG_DVB_USB_GP8PSK is not set
# CONFIG_DVB_USB_NOVA_T_USB2 is not set
# CONFIG_DVB_USB_TTUSB2 is not set
# CONFIG_DVB_USB_DTT200U is not set
# CONFIG_DVB_USB_OPERA1 is not set
# CONFIG_DVB_USB_AF9005 is not set
# CONFIG_DVB_TTUSB_BUDGET is not set
# CONFIG_DVB_TTUSB_DEC is not set
# CONFIG_DVB_CINERGYT2 is not set
#
# Supported FlexCopII (B2C2) Adapters
#
# CONFIG_DVB_B2C2_FLEXCOP is not set
#
# Supported BT878 Adapters
#
#
# Supported Pluto2 Adapters
#
# CONFIG_DVB_PLUTO2 is not set
#
# Supported DVB Frontends
#
#
# Customise DVB Frontends
#
# CONFIG_DVB_FE_CUSTOMISE is not set
#
# DVB-S (satellite) frontends
#
# CONFIG_DVB_CX24110 is not set
# CONFIG_DVB_CX24123 is not set
# CONFIG_DVB_MT312 is not set
# CONFIG_DVB_S5H1420 is not set
# CONFIG_DVB_STV0299 is not set
# CONFIG_DVB_TDA8083 is not set
# CONFIG_DVB_TDA10086 is not set
# CONFIG_DVB_VES1X93 is not set
# CONFIG_DVB_TUNER_ITD1000 is not set
# CONFIG_DVB_TDA826X is not set
# CONFIG_DVB_TUA6100 is not set
#
# DVB-T (terrestrial) frontends
#
# CONFIG_DVB_SP8870 is not set
# CONFIG_DVB_SP887X is not set
# CONFIG_DVB_CX22700 is not set
# CONFIG_DVB_CX22702 is not set
# CONFIG_DVB_DRX397XD is not set
# CONFIG_DVB_L64781 is not set
# CONFIG_DVB_TDA1004X is not set
# CONFIG_DVB_NXT6000 is not set
# CONFIG_DVB_MT352 is not set
# CONFIG_DVB_ZL10353 is not set
# CONFIG_DVB_DIB3000MB is not set
CONFIG_DVB_DIB3000MC=m
CONFIG_DVB_DIB7000M=m
CONFIG_DVB_DIB7000P=m
# CONFIG_DVB_TDA10048 is not set
#
# DVB-C (cable) frontends
#
# CONFIG_DVB_VES1820 is not set
# CONFIG_DVB_TDA10021 is not set
# CONFIG_DVB_TDA10023 is not set
# CONFIG_DVB_STV0297 is not set
#
# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
#
# CONFIG_DVB_NXT200X is not set
# CONFIG_DVB_OR51211 is not set
# CONFIG_DVB_OR51132 is not set
# CONFIG_DVB_BCM3510 is not set
# CONFIG_DVB_LGDT330X is not set
# CONFIG_DVB_S5H1409 is not set
# CONFIG_DVB_AU8522 is not set
# CONFIG_DVB_S5H1411 is not set
#
# Digital terrestrial only tuners/PLL
#
CONFIG_DVB_PLL=m
CONFIG_DVB_TUNER_DIB0070=m
#
# SEC control devices for DVB-S
#
# CONFIG_DVB_LNBP21 is not set
# CONFIG_DVB_ISL6405 is not set
# CONFIG_DVB_ISL6421 is not set
# CONFIG_DAB is not set
#
# Audio devices for multimedia
#
#
# ALSA sound
#
#
# OSS sound
#
[-- Attachment #5: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-11 13:29 ` Albert Comerma
@ 2008-08-11 15:28 ` zePh7r
2008-08-11 15:40 ` Albert Comerma
0 siblings, 1 reply; 14+ messages in thread
From: zePh7r @ 2008-08-11 15:28 UTC (permalink / raw)
To: Albert Comerma; +Cc: linux-dvb
[-- Attachment #1: Type: text/html, Size: 6575 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-11 15:28 ` zePh7r
@ 2008-08-11 15:40 ` Albert Comerma
2008-08-11 15:51 ` zePh7r
2008-08-11 18:42 ` zePh7r
0 siblings, 2 replies; 14+ messages in thread
From: Albert Comerma @ 2008-08-11 15:40 UTC (permalink / raw)
To: zePh7r; +Cc: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 5267 bytes --]
That's something related to your distribution, so I can't help much. Just
verify you have gcc and linux-headers and all the stuff needed installed.
Albert
2008/8/11 zePh7r <zeph7r@gmail.com>
> Albert Comerma escreveu:
>
> If you look around line 1082 of dib0700_devices.c you will find the table
> of the cards, which refers to the id's you added on dvb-usb-ids.h. So you
> must add an entry to that table. I send you the modified files, so you can
> see. I also send you a .config file you must copy on v4l-dvb/v4l/ folder.
> Then go into v4l-dvb and just type make, and then as root make install. That
> should work without problems. To try all of this you need the dibcom and
> xceive firmware at /lib/firmware
>
> Albert
>
> 2008/8/11 zePh7r <zeph7r@gmail.com>
>
>> Albert Comerma escreveu:
>>
>>> Sorry, I didn't explained much... it also took some time to me to
>>> understand how it's working... Since xc2028 is the tunner it has no Id
>>> information on the code. The id's are on the usb bridge code. You should add
>>> your deviece id's at;
>>> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dvb-usb-ids.h and then insert
>>> your device at
>>> /v4l-dvb/linux/drivers/media/dvb/dvb-usb/dib0700_devices.c first the
>>> device descriptors (at arround line 1120) and then the device itself, I
>>> would try it around line 1418. This last file, has already the include to
>>> the xc2028 code and calls the tunner funcions. Looking the code around this
>>> lines I guess you will understand how it works.
>>>
>>> Albert
>>>
>>> 2008/8/9 zePh7r <zeph7r@gmail.com <mailto:zeph7r@gmail.com>>
>>>
>>> Albert Comerma escreveu:
>>>
>>> Just to clarify things...
>>>
>>> Xceive chips are just tunners, RF chips, mostly analogue with
>>> some digital interface, they don't do anything with usb or
>>> comunication with the computer, for this reason you need the
>>> dibcom chip, it's a usb bridge + decoder + something else...
>>> To start to develop something you must first be sure of what
>>> chips it's using.
>>> If not you can try blindly if modifying the code for the
>>> U3000-Mini works or Pinnacle 320cx (dibcom 7700 + xceive2028)
>>> work (you just need to add your device usb id's).
>>>
>>> Albert
>>>
>>> Thank you for replying Albert.
>>> I've been exploring the files downloaded through the mercurial
>>> repository and though I have found files which seem like they
>>> relate to that purpose in
>>> /v4l-dvb/linux/drivers/media/common/tuners (which are
>>> tuner-xc2028.c , tuner-xc2028.h and tuner-xc2028-types.h) I can't
>>> find any section in the above files with some sort of list of
>>> device ID's so as to resemble them. There should be something like
>>> an xc2028-cards.c right?
>>> This must seem a noob question but this whole process looks like
>>> something someone who's not deeply into this project couldn't do
>>> easily..
>>>
>>>
>>> When I try to compile the drivers I get this:
>>
>> zeph7r@zeph7r-laptop:~/v4l/v4l-dvb> make all
>> make -C /home/zeph7r/v4l/v4l-dvb/v4l all
>> make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
>> Updating/Creating .config
>> Preparing to compile for kernel version 2.6.25
>> File not found: /lib/modules/2.6.25.11-0.1-default/build/.config at
>> ./scripts/make_kconfig.pl line 32, <IN> line 4.
>> make[1]: *** No rule to make target `.myconfig', needed by
>> `config-compat.h'. Stop.
>> make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
>> make: *** [all] Error 2
>>
>> any hints on what might be causing this? I went look at that dir and found
>> a makedumpfile.config , perhaps I should edit config-compat.h and set it to
>> go look for that file instead..
>>
>
>
>
> Even after I putted .config in v4l-dvb/v4l it is still not compiling:
>
> zeph7r@zeph7r-laptop:~/v4l/v4l-dvb> make
> make -C /home/zeph7r/v4l/v4l-dvb/v4l
> make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> No version yet, using 2.6.25.11-0.1-default
> make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> scripts/make_makefile.pl
> Updating/Creating .config
> ./scripts/make_kconfig.pl /lib/modules/2.6.25.11-0.1-default/build
> /lib/modules/2.6.25.11-0.1-default/build
> Preparing to compile for kernel version 2.6.25
> File not found: /lib/modules/2.6.25.11-0.1-default/build/.config at
> ./scripts/make_kconfig.pl line 32, <IN> line 4.
> make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> make[1]: Entering directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> ./scripts/make_kconfig.pl /lib/modules/2.6.25.11-0.1-default/build
> /lib/modules/2.6.25.11-0.1-default/build
> Preparing to compile for kernel version 2.6.25
> File not found: /lib/modules/2.6.25.11-0.1-default/build/.config at
> ./scripts/make_kconfig.pl line 32, <IN> line 4.
> make[1]: *** No rule to make target `.myconfig', needed by
> `config-compat.h'. Stop.
> make[1]: Leaving directory `/home/zeph7r/v4l/v4l-dvb/v4l'
> make: *** [all] Error 2
> zeph7r@zeph7r-laptop:~/v4l/v4l-dvb>
>
> I even tried copying .config to /lib/modules/2.6.25.11-0.1-default/build
> /lib/modules/2.6.25.11-0.1-default/build but some other error came up as
> well
>
[-- Attachment #1.2: Type: text/html, Size: 7147 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-11 15:40 ` Albert Comerma
@ 2008-08-11 15:51 ` zePh7r
2008-08-11 18:42 ` zePh7r
1 sibling, 0 replies; 14+ messages in thread
From: zePh7r @ 2008-08-11 15:51 UTC (permalink / raw)
To: Albert Comerma; +Cc: linux-dvb
[-- Attachment #1: Type: text/html, Size: 7961 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
2008-08-11 15:40 ` Albert Comerma
2008-08-11 15:51 ` zePh7r
@ 2008-08-11 18:42 ` zePh7r
1 sibling, 0 replies; 14+ messages in thread
From: zePh7r @ 2008-08-11 18:42 UTC (permalink / raw)
To: Albert Comerma; +Cc: linux-dvb
[-- Attachment #1: Type: text/html, Size: 10000 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Support for Asus My-Cinema U3000Hybrid?
[not found] <48A1B85E.5070800@net.novis.pt>
@ 2008-08-12 19:30 ` Albert Comerma
2008-08-12 20:14 ` zePh7r
0 siblings, 1 reply; 14+ messages in thread
From: Albert Comerma @ 2008-08-12 19:30 UTC (permalink / raw)
To: zePh7r; +Cc: video4linux-list, linux-dvb
I'm happy to hear that. :) it's a shame that you can't try with some dvb
signal, but looks good. I've never used kdetv, so no idea.
Albert
2008/8/12 zePh7r <zeph7r@net.novis.pt>
> This is looking good. It seems to load the firmware well. I even ran
> kaffeine and it detected my card instantly. However, as there's no dvb-t
> service where I live (there's still no dvb-t in Portugal) I can't test it in
> full. However I tried to do a channel scan and the signal bar showed high
> strength signals multiple times during scan -- which I interpret as a) the
> tuner is working, and b) the card is being able to find signal but unable to
> decode it since it's not a digital signal. I'm getting this output in dmesg
> just for plugging the device into the usb port:
>
> Aug 12 14:29:29 zeph7r-laptop kernel: usb 4-1: new high speed USB device
> using ehci_hcd and address 12
> Aug 12 14:29:29 zeph7r-laptop kernel: usb 4-1: configuration #1 chosen from
> 1 choice
> Aug 12 14:29:29 zeph7r-laptop kernel: dvb-usb: found a 'Asus My
> Cinema-U3000Hybrid' in cold state, will try to load a firmware
> Aug 12 14:29:29 zeph7r-laptop kernel: dvb-usb: downloading firmware from
> file 'dvb-usb-dib0700-1.10.fw'
> Aug 12 14:29:29 zeph7r-laptop kernel: dib0700: firmware started
> successfully.
> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: found a 'Asus My
> Cinema-U3000Hybrid' in warm state.
> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: will pass the complete MPEG2
> transport stream to the software demuxer.
> Aug 12 14:29:30 zeph7r-laptop kernel: DVB: registering new adapter (Asus My
> Cinema-U3000Hybrid)
> Aug 12 14:29:30 zeph7r-laptop kernel: DVB: registering frontend 0 (DiBcom
> 7000PC)...
> Aug 12 14:29:30 zeph7r-laptop kernel: xc2028 2-0061: creating new instance
> Aug 12 14:29:30 zeph7r-laptop kernel: xc2028 2-0061: type set to XCeive
> xc2028/xc3028 tuner
> Aug 12 14:29:30 zeph7r-laptop kernel: input: IR-receiver inside an USB DVB
> receiver as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/input/input13
> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: schedule remote query
> interval to 150 msecs.
> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: Asus My Cinema-U3000Hybrid
> successfully initialized and connected.
> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: New USB device found,
> idVendor=0b05, idProduct=1736
> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: New USB device strings:
> Mfr=1, Product=2, SerialNumber=3
> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: Product: U3000 Hybrid
> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: Manufacturer: ASUSTeK
> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: SerialNumber: 8110400333
> Aug 12 14:29:36 zeph7r-laptop syslog-ng[1724]: STATS: dropped 0
>
>
> and after starting kaffeine there's still this more:
>
> Aug 12 14:41:31 zeph7r-laptop kernel: xc2028 2-0061: Loading 80 firmware
> images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
> Aug 12 14:41:31 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
> type=BASE F8MHZ (3), id 0000000000000000.
> Aug 12 14:41:38 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
> type=D2620 DTV7 (88), id 0000000000000000.
> Aug 12 14:41:38 zeph7r-laptop kernel: xc2028 2-0061: Loading SCODE for
> type=DTV8 SCODE HAS_IF_5400 (60000200), id 0000000000000000.
> Aug 12 14:42:04 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
> type=D2620 DTV78 (108), id 0000000000000000.
> Aug 12 14:42:04 zeph7r-laptop kernel: xc2028 2-0061: Loading SCODE for
> type=DTV8 SCODE HAS_IF_5400 (60000200), id 0000000000000000.
>
>
> However I also tried kdetv and the card didn't seem to be recognized here.
> In the device list there is still only my webcam to choose from. If I try to
> run it from a terminal no significant output is shown. How can go further in
> testing and getting the analog tv part to work?
>
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Support for Asus My-Cinema U3000Hybrid?
2008-08-12 19:30 ` Support for Asus My-Cinema U3000Hybrid? Albert Comerma
@ 2008-08-12 20:14 ` zePh7r
2008-08-13 9:29 ` Albert Comerma
0 siblings, 1 reply; 14+ messages in thread
From: zePh7r @ 2008-08-12 20:14 UTC (permalink / raw)
To: Albert Comerma; +Cc: video4linux-list, linux-dvb
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Support for Asus My-Cinema U3000Hybrid?
2008-08-12 20:14 ` zePh7r
@ 2008-08-13 9:29 ` Albert Comerma
2008-08-13 21:10 ` zePh7r
0 siblings, 1 reply; 14+ messages in thread
From: Albert Comerma @ 2008-08-13 9:29 UTC (permalink / raw)
To: zePh7r; +Cc: video4linux-list, linux-dvb
Yes, non of the hybrid devices I have worked on have support for analogue,
only dvb. I think the place to look is on video4linux mailing list. If you
want to get support for your card on the kernel (the dvb part) first would
be nice to be sure it works, and then just submit the patch to the linux-dvb
mailing list. I think it should be generated with some options and once it's
generated you should pass the perl script on v4l/scripts/checkpatch.pl to be
sure it follows the programming conventions... Just for curiosity, it worked
just as I send the code or you had to change some things? If you send me
back the files I can generate the patch for you, but again it should be
great to check it really works (you didn't get signal from any spanish
dvb?).
Albert
2008/8/12 zePh7r <zeph7r@gmail.com>
> Albert Comerma escreveu:
>
> I'm happy to hear that. :) it's a shame that you can't try with some dvb
> signal, but looks good. I've never used kdetv, so no idea.
>
> Albert
>
> 2008/8/12 zePh7r <zeph7r@net.novis.pt>
>
>> This is looking good. It seems to load the firmware well. I even ran
>> kaffeine and it detected my card instantly. However, as there's no dvb-t
>> service where I live (there's still no dvb-t in Portugal) I can't test it in
>> full. However I tried to do a channel scan and the signal bar showed high
>> strength signals multiple times during scan -- which I interpret as a) the
>> tuner is working, and b) the card is being able to find signal but unable to
>> decode it since it's not a digital signal. I'm getting this output in dmesg
>> just for plugging the device into the usb port:
>>
>> Aug 12 14:29:29 zeph7r-laptop kernel: usb 4-1: new high speed USB device
>> using ehci_hcd and address 12
>> Aug 12 14:29:29 zeph7r-laptop kernel: usb 4-1: configuration #1 chosen
>> from 1 choice
>> Aug 12 14:29:29 zeph7r-laptop kernel: dvb-usb: found a 'Asus My
>> Cinema-U3000Hybrid' in cold state, will try to load a firmware
>> Aug 12 14:29:29 zeph7r-laptop kernel: dvb-usb: downloading firmware from
>> file 'dvb-usb-dib0700-1.10.fw'
>> Aug 12 14:29:29 zeph7r-laptop kernel: dib0700: firmware started
>> successfully.
>> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: found a 'Asus My
>> Cinema-U3000Hybrid' in warm state.
>> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: will pass the complete
>> MPEG2 transport stream to the software demuxer.
>> Aug 12 14:29:30 zeph7r-laptop kernel: DVB: registering new adapter (Asus
>> My Cinema-U3000Hybrid)
>> Aug 12 14:29:30 zeph7r-laptop kernel: DVB: registering frontend 0 (DiBcom
>> 7000PC)...
>> Aug 12 14:29:30 zeph7r-laptop kernel: xc2028 2-0061: creating new instance
>> Aug 12 14:29:30 zeph7r-laptop kernel: xc2028 2-0061: type set to XCeive
>> xc2028/xc3028 tuner
>> Aug 12 14:29:30 zeph7r-laptop kernel: input: IR-receiver inside an USB DVB
>> receiver as /devices/pci0000:00/0000:00:1d.7/usb4/4-1/input/input13
>> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: schedule remote query
>> interval to 150 msecs.
>> Aug 12 14:29:30 zeph7r-laptop kernel: dvb-usb: Asus My Cinema-U3000Hybrid
>> successfully initialized and connected.
>> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: New USB device found,
>> idVendor=0b05, idProduct=1736
>> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: New USB device strings:
>> Mfr=1, Product=2, SerialNumber=3
>> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: Product: U3000 Hybrid
>> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: Manufacturer: ASUSTeK
>> Aug 12 14:29:30 zeph7r-laptop kernel: usb 4-1: SerialNumber: 8110400333
>> Aug 12 14:29:36 zeph7r-laptop syslog-ng[1724]: STATS: dropped 0
>>
>>
>> and after starting kaffeine there's still this more:
>>
>> Aug 12 14:41:31 zeph7r-laptop kernel: xc2028 2-0061: Loading 80 firmware
>> images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
>> Aug 12 14:41:31 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
>> type=BASE F8MHZ (3), id 0000000000000000.
>> Aug 12 14:41:38 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
>> type=D2620 DTV7 (88), id 0000000000000000.
>> Aug 12 14:41:38 zeph7r-laptop kernel: xc2028 2-0061: Loading SCODE for
>> type=DTV8 SCODE HAS_IF_5400 (60000200), id 0000000000000000.
>> Aug 12 14:42:04 zeph7r-laptop kernel: xc2028 2-0061: Loading firmware for
>> type=D2620 DTV78 (108), id 0000000000000000.
>> Aug 12 14:42:04 zeph7r-laptop kernel: xc2028 2-0061: Loading SCODE for
>> type=DTV8 SCODE HAS_IF_5400 (60000200), id 0000000000000000.
>>
>>
>> However I also tried kdetv and the card didn't seem to be recognized here.
>> In the device list there is still only my webcam to choose from. If I try to
>> run it from a terminal no significant output is shown. How can go further in
>> testing and getting the analog tv part to work?
>>
>
> So, in that case none of the devices you managed to get working so far
> (and which seem to be hybrid as well) you didn't get the analog tv part to
> work too? It's too bad you can't help me here since for me not having analog
> tv (along with the FM tuner) means having a non-functional device.. Anyway,
> can you direct me on where to look further in order to pursue the analog
> part?
> Also, I guess I'd like to contribute back what has been achieved so far and
> hope to see native support in kernel in some future release. What can I do
> to do that?
>
> Thanks for all the support so far
>
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: Support for Asus My-Cinema U3000Hybrid?
2008-08-13 9:29 ` Albert Comerma
@ 2008-08-13 21:10 ` zePh7r
[not found] ` <d9def9db0808131417t168bc1abvfb3b08101980405d@mail.gmail.com>
0 siblings, 1 reply; 14+ messages in thread
From: zePh7r @ 2008-08-13 21:10 UTC (permalink / raw)
To: Albert Comerma; +Cc: video4linux-list, linux-dvb
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Support for Asus My-Cinema U3000Hybrid?
[not found] ` <d9def9db0808131417t168bc1abvfb3b08101980405d@mail.gmail.com>
@ 2008-08-16 13:28 ` zePh7r
0 siblings, 0 replies; 14+ messages in thread
From: zePh7r @ 2008-08-16 13:28 UTC (permalink / raw)
To: Markus Rechberger, video4linux-list, linux-dvb
--
video4linux-list mailing list
Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/video4linux-list
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2008-08-16 13:29 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <48A1B85E.5070800@net.novis.pt>
2008-08-12 19:30 ` Support for Asus My-Cinema U3000Hybrid? Albert Comerma
2008-08-12 20:14 ` zePh7r
2008-08-13 9:29 ` Albert Comerma
2008-08-13 21:10 ` zePh7r
[not found] ` <d9def9db0808131417t168bc1abvfb3b08101980405d@mail.gmail.com>
2008-08-16 13:28 ` [linux-dvb] " zePh7r
2008-08-08 12:32 Albert Comerma
[not found] ` <489CCD82.5030406@gmail.com>
2008-08-10 9:51 ` Albert Comerma
2008-08-11 11:22 ` zePh7r
2008-08-11 12:39 ` zePh7r
2008-08-11 13:29 ` Albert Comerma
2008-08-11 15:28 ` zePh7r
2008-08-11 15:40 ` Albert Comerma
2008-08-11 15:51 ` zePh7r
2008-08-11 18:42 ` zePh7r
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox