aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2008-04-22 13:45:36 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:07:46 -0400
commit1aaac60fec0d3ba8043838c6eac86de987cfe5c1 (patch)
treef871a94325c94b1895a1ef357d0f233ec0cbed5d
parentd068c6eec94c370a445a32f2f092c90798d47ca3 (diff)
V4L/DVB (7296): pvrusb2: Define device attributes for all input modes
Different devices support different input types. Up until now we've really been assuming that everyone has an analog tuner, an FM radio, composite, and s-video inputs. But as we add other devices, these assumptions are no longer true. The way to deal with this is to define the available inputs as additional device attributes, so that the driver can adjust its internal behavior accordingly. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.c18
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-devattr.h12
2 files changed, 24 insertions, 6 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
index 87526666bc9e..4522ad6320c2 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
@@ -56,7 +56,10 @@ static const struct pvr2_device_desc pvr2_device_29xxx = {
56 .fx2_firmware.lst = pvr2_fw1_names_29xxx, 56 .fx2_firmware.lst = pvr2_fw1_names_29xxx,
57 .fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_29xxx), 57 .fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_29xxx),
58 .flag_has_hauppauge_rom = !0, 58 .flag_has_hauppauge_rom = !0,
59 .flag_has_analogtuner = !0,
59 .flag_has_fmradio = !0, 60 .flag_has_fmradio = !0,
61 .flag_has_composite = !0,
62 .flag_has_svideo = !0,
60 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, 63 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
61}; 64};
62 65
@@ -86,7 +89,10 @@ static const struct pvr2_device_desc pvr2_device_24xxx = {
86 .flag_has_wm8775 = !0, 89 .flag_has_wm8775 = !0,
87 .flag_has_hauppauge_rom = !0, 90 .flag_has_hauppauge_rom = !0,
88 .flag_has_hauppauge_custom_ir = !0, 91 .flag_has_hauppauge_custom_ir = !0,
92 .flag_has_analogtuner = !0,
89 .flag_has_fmradio = !0, 93 .flag_has_fmradio = !0,
94 .flag_has_composite = !0,
95 .flag_has_svideo = !0,
90 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, 96 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
91}; 97};
92 98
@@ -107,6 +113,9 @@ static const struct pvr2_device_desc pvr2_device_gotview_2 = {
107 .client_modules.cnt = ARRAY_SIZE(pvr2_client_gotview_2), 113 .client_modules.cnt = ARRAY_SIZE(pvr2_client_gotview_2),
108 .flag_has_cx25840 = !0, 114 .flag_has_cx25840 = !0,
109 .default_tuner_type = TUNER_PHILIPS_FM1216ME_MK3, 115 .default_tuner_type = TUNER_PHILIPS_FM1216ME_MK3,
116 .flag_has_analogtuner = !0,
117 .flag_has_composite = !0,
118 .flag_has_svideo = !0,
110 .signal_routing_scheme = PVR2_ROUTING_SCHEME_GOTVIEW, 119 .signal_routing_scheme = PVR2_ROUTING_SCHEME_GOTVIEW,
111}; 120};
112 121
@@ -129,6 +138,9 @@ static const struct pvr2_device_desc pvr2_device_onair_creator = {
129 .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_creator), 138 .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_creator),
130 .default_tuner_type = TUNER_LG_TDVS_H06XF, 139 .default_tuner_type = TUNER_LG_TDVS_H06XF,
131 .flag_has_digitaltuner = !0, 140 .flag_has_digitaltuner = !0,
141 .flag_has_analogtuner = !0,
142 .flag_has_composite = !0,
143 .flag_has_svideo = !0,
132 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, 144 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
133}; 145};
134#endif 146#endif
@@ -152,6 +164,9 @@ static const struct pvr2_device_desc pvr2_device_onair_usb2 = {
152 .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_usb2), 164 .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_usb2),
153 .default_tuner_type = TUNER_PHILIPS_ATSC, 165 .default_tuner_type = TUNER_PHILIPS_ATSC,
154 .flag_has_digitaltuner = !0, 166 .flag_has_digitaltuner = !0,
167 .flag_has_analogtuner = !0,
168 .flag_has_composite = !0,
169 .flag_has_svideo = !0,
155 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, 170 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
156}; 171};
157#endif 172#endif
@@ -215,6 +230,9 @@ static const struct pvr2_device_desc pvr2_device_75xxx = {
215 .flag_has_cx25840 = !0, 230 .flag_has_cx25840 = !0,
216 .flag_has_hauppauge_rom = !0, 231 .flag_has_hauppauge_rom = !0,
217 .flag_has_digitaltuner = !0, 232 .flag_has_digitaltuner = !0,
233 .flag_has_analogtuner = !0,
234 .flag_has_composite = !0,
235 .flag_has_svideo = !0,
218 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, 236 .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
219 .default_std_mask = V4L2_STD_NTSC_M, 237 .default_std_mask = V4L2_STD_NTSC_M,
220}; 238};
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.h b/drivers/media/video/pvrusb2/pvrusb2-devattr.h
index d89a44071cc1..b564121803bb 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-devattr.h
+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.h
@@ -103,12 +103,12 @@ struct pvr2_device_desc {
103 commands. */ 103 commands. */
104 char flag_has_hauppauge_custom_ir; 104 char flag_has_hauppauge_custom_ir;
105 105
106 /* Device has FM radio capability. */ 106 /* These bits define which kinds of sources the device can handle. */
107 char flag_has_fmradio; 107 char flag_has_fmradio; /* Has FM radio receiver */
108 108 char flag_has_analogtuner; /* Has analog tuner */
109 /* Device has a digital tuner; if this is set then we enable extra 109 char flag_has_digitaltuner; /* Has digital tuner */
110 functionality to switch between analog and digital modes. */ 110 char flag_has_composite; /* Has composite input */
111 char flag_has_digitaltuner; 111 char flag_has_svideo; /* Has s-video input */
112}; 112};
113 113
114extern struct usb_device_id pvr2_device_table[]; 114extern struct usb_device_id pvr2_device_table[];