2 cx231xx-pcb-config.c - driver for Conexant
3 Cx23100/101/102 USB video capture devices
5 Copyright (C) 2008 <srinivasa.deevi at conexant dot com>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 #include "cx231xx-conf-reg.h"
25 static unsigned int pcb_debug
;
26 module_param(pcb_debug
, int, 0644);
27 MODULE_PARM_DESC(pcb_debug
, "enable pcb config debug messages [video]");
29 /******************************************************************************/
31 static struct pcb_config cx231xx_Scenario
[] = {
33 INDEX_SELFPOWER_DIGITAL_ONLY
, /* index */
34 USB_SELF_POWER
, /* power_type */
35 0, /* speed , not decide yet */
36 MOD_DIGITAL
, /* mode */
37 SOURCE_TS_BDA
, /* ts1_source, digital tv only */
38 NOT_SUPPORTED
, /* ts2_source */
39 NOT_SUPPORTED
, /* analog source */
41 0, /* digital_index */
44 0, /* external_index */
46 1, /* only one configuration */
51 0, /* interrupt ep index */
53 NOT_SUPPORTED
, /* TS2 index */
54 NOT_SUPPORTED
, /* AUDIO */
55 NOT_SUPPORTED
, /* VIDEO */
56 NOT_SUPPORTED
, /* VANC */
57 NOT_SUPPORTED
, /* HANC */
58 NOT_SUPPORTED
/* ir_index */
63 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
64 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
68 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
69 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
74 /* full-speed config */
79 0, /* interrupt ep index */
81 NOT_SUPPORTED
, /* TS2 index */
82 NOT_SUPPORTED
, /* AUDIO */
83 NOT_SUPPORTED
, /* VIDEO */
84 NOT_SUPPORTED
, /* VANC */
85 NOT_SUPPORTED
, /* HANC */
86 NOT_SUPPORTED
/* ir_index */
90 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
91 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
95 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
96 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
104 INDEX_SELFPOWER_DUAL_DIGITAL
, /* index */
105 USB_SELF_POWER
, /* power_type */
106 0, /* speed , not decide yet */
107 MOD_DIGITAL
, /* mode */
108 SOURCE_TS_BDA
, /* ts1_source, digital tv only */
109 0, /* ts2_source,need update from register */
110 NOT_SUPPORTED
, /* analog source */
111 0, /* digital_index */
112 0, /* analog index */
114 0, /* external_index */
116 1, /* only one configuration */
119 0, /* config index */
121 0, /* interrupt ep index */
124 NOT_SUPPORTED
, /* AUDIO */
125 NOT_SUPPORTED
, /* VIDEO */
126 NOT_SUPPORTED
, /* VANC */
127 NOT_SUPPORTED
, /* HANC */
128 NOT_SUPPORTED
/* ir_index */
132 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
133 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
137 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
138 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
146 0, /* config index */
148 0, /* interrupt ep index */
151 NOT_SUPPORTED
, /* AUDIO */
152 NOT_SUPPORTED
, /* VIDEO */
153 NOT_SUPPORTED
, /* VANC */
154 NOT_SUPPORTED
, /* HANC */
155 NOT_SUPPORTED
/* ir_index */
159 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
160 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
164 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
165 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
173 INDEX_SELFPOWER_ANALOG_ONLY
, /* index */
174 USB_SELF_POWER
, /* power_type */
175 0, /* speed , not decide yet */
176 MOD_ANALOG
| MOD_DIF
| MOD_EXTERNAL
, /* mode ,analog tv only */
177 NOT_SUPPORTED
, /* ts1_source, NOT SUPPORT */
178 NOT_SUPPORTED
, /* ts2_source,NOT SUPPORT */
179 0, /* analog source, need update */
181 0, /* digital_index */
182 0, /* analog index */
184 0, /* external_index */
186 1, /* only one configuration */
189 0, /* config index */
191 0, /* interrupt ep index */
192 NOT_SUPPORTED
, /* ts1 index */
193 NOT_SUPPORTED
, /* TS2 index */
198 NOT_SUPPORTED
/* ir_index */
202 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
203 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
207 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
208 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
216 0, /* config index */
218 0, /* interrupt ep index */
219 NOT_SUPPORTED
, /* ts1 index */
220 NOT_SUPPORTED
, /* TS2 index */
223 NOT_SUPPORTED
, /* VANC */
224 NOT_SUPPORTED
, /* HANC */
225 NOT_SUPPORTED
/* ir_index */
229 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
230 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
234 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
235 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
243 INDEX_SELFPOWER_DUAL
, /* index */
244 USB_SELF_POWER
, /* power_type */
245 0, /* speed , not decide yet */
246 /* mode ,analog tv and digital path */
247 MOD_ANALOG
| MOD_DIF
| MOD_DIGITAL
| MOD_EXTERNAL
,
248 0, /* ts1_source,will update in register */
249 NOT_SUPPORTED
, /* ts2_source,NOT SUPPORT */
250 0, /* analog source need update */
251 0, /* digital_index */
252 0, /* analog index */
254 0, /* external_index */
255 1, /* only one configuration */
258 0, /* config index */
260 0, /* interrupt ep index */
262 NOT_SUPPORTED
, /* TS2 index */
267 NOT_SUPPORTED
/* ir_index */
271 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
272 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
276 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
277 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
285 0, /* config index */
287 0, /* interrupt ep index */
289 NOT_SUPPORTED
, /* TS2 index */
292 NOT_SUPPORTED
, /* VANC */
293 NOT_SUPPORTED
, /* HANC */
294 NOT_SUPPORTED
/* ir_index */
298 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
299 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
303 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
304 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
312 INDEX_SELFPOWER_TRIPLE
, /* index */
313 USB_SELF_POWER
, /* power_type */
314 0, /* speed , not decide yet */
315 /* mode ,analog tv and digital path */
316 MOD_ANALOG
| MOD_DIF
| MOD_DIGITAL
| MOD_EXTERNAL
,
317 0, /* ts1_source, update in register */
318 0, /* ts2_source,update in register */
319 0, /* analog source, need update */
321 0, /* digital_index */
322 0, /* analog index */
324 0, /* external_index */
325 1, /* only one configuration */
328 0, /* config index */
330 0, /* interrupt ep index */
337 NOT_SUPPORTED
/* ir_index */
341 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
342 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
346 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
347 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
355 0, /* config index */
357 0, /* interrupt ep index */
362 NOT_SUPPORTED
, /* VANC */
363 NOT_SUPPORTED
, /* HANC */
364 NOT_SUPPORTED
/* ir_index */
368 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
369 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
373 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
374 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
382 INDEX_SELFPOWER_COMPRESSOR
, /* index */
383 USB_SELF_POWER
, /* power_type */
384 0, /* speed , not decide yet */
385 /* mode ,analog tv AND DIGITAL path */
386 MOD_ANALOG
| MOD_DIF
| MOD_DIGITAL
| MOD_EXTERNAL
,
387 NOT_SUPPORTED
, /* ts1_source, disable */
388 SOURCE_TS_BDA
, /* ts2_source */
389 0, /* analog source,need update */
390 0, /* digital_index */
391 0, /* analog index */
393 0, /* external_index */
394 1, /* only one configuration */
397 0, /* config index */
399 0, /* interrupt ep index */
400 NOT_SUPPORTED
, /* ts1 index */
406 NOT_SUPPORTED
/* ir_index */
410 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
411 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
415 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
416 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
424 0, /* config index */
426 0, /* interrupt ep index */
427 NOT_SUPPORTED
, /* ts1 index */
431 NOT_SUPPORTED
, /* VANC */
432 NOT_SUPPORTED
, /* HANC */
433 NOT_SUPPORTED
/* ir_index */
437 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
438 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
442 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
443 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
451 INDEX_BUSPOWER_DIGITAL_ONLY
, /* index */
452 USB_BUS_POWER
, /* power_type */
453 0, /* speed , not decide yet */
454 MOD_DIGITAL
, /* mode ,analog tv AND DIGITAL path */
455 SOURCE_TS_BDA
, /* ts1_source, disable */
456 NOT_SUPPORTED
, /* ts2_source */
457 NOT_SUPPORTED
, /* analog source */
459 0, /* digital_index */
460 0, /* analog index */
462 0, /* external_index */
464 1, /* only one configuration */
467 0, /* config index */
469 0, /* interrupt ep index = 2 */
471 NOT_SUPPORTED
, /* TS2 index */
472 NOT_SUPPORTED
, /* AUDIO */
473 NOT_SUPPORTED
, /* VIDEO */
474 NOT_SUPPORTED
, /* VANC */
475 NOT_SUPPORTED
, /* HANC */
476 NOT_SUPPORTED
/* ir_index */
480 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
481 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
485 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
486 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
494 0, /* config index */
496 0, /* interrupt ep index = 2 */
498 NOT_SUPPORTED
, /* TS2 index */
499 NOT_SUPPORTED
, /* AUDIO */
500 NOT_SUPPORTED
, /* VIDEO */
501 NOT_SUPPORTED
, /* VANC */
502 NOT_SUPPORTED
, /* HANC */
503 NOT_SUPPORTED
/* ir_index */
507 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
508 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
512 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
513 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
520 INDEX_BUSPOWER_ANALOG_ONLY
, /* index */
521 USB_BUS_POWER
, /* power_type */
522 0, /* speed , not decide yet */
523 MOD_ANALOG
, /* mode ,analog tv AND DIGITAL path */
524 NOT_SUPPORTED
, /* ts1_source, disable */
525 NOT_SUPPORTED
, /* ts2_source */
526 SOURCE_ANALOG
, /* analog source--analog */
527 0, /* digital_index */
528 0, /* analog index */
530 0, /* external_index */
531 1, /* only one configuration */
534 0, /* config index */
536 0, /* interrupt ep index */
537 NOT_SUPPORTED
, /* ts1 index */
538 NOT_SUPPORTED
, /* TS2 index */
543 NOT_SUPPORTED
/* ir_index */
547 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
548 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
552 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
553 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
560 0, /* config index */
562 0, /* interrupt ep index */
563 NOT_SUPPORTED
, /* ts1 index */
564 NOT_SUPPORTED
, /* TS2 index */
567 NOT_SUPPORTED
, /* VANC */
568 NOT_SUPPORTED
, /* HANC */
569 NOT_SUPPORTED
/* ir_index */
573 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
574 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
578 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
579 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
586 INDEX_BUSPOWER_DIF_ONLY
, /* index */
587 USB_BUS_POWER
, /* power_type */
588 0, /* speed , not decide yet */
589 /* mode ,analog tv AND DIGITAL path */
590 MOD_DIF
| MOD_ANALOG
| MOD_DIGITAL
| MOD_EXTERNAL
,
591 SOURCE_TS_BDA
, /* ts1_source, disable */
592 NOT_SUPPORTED
, /* ts2_source */
593 SOURCE_DIF
| SOURCE_ANALOG
| SOURCE_EXTERNAL
, /* analog source, dif */
594 0, /* digital_index */
595 0, /* analog index */
597 0, /* external_index */
598 1, /* only one configuration */
601 0, /* config index */
603 0, /* interrupt ep index */
605 NOT_SUPPORTED
, /* TS2 index */
610 NOT_SUPPORTED
/* ir_index */
614 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
615 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
619 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
620 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
627 0, /* config index */
629 0, /* interrupt ep index */
631 NOT_SUPPORTED
, /* TS2 index */
634 NOT_SUPPORTED
, /* VANC */
635 NOT_SUPPORTED
, /* HANC */
636 NOT_SUPPORTED
/* ir_index */
640 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
641 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
645 {NOT_SUPPORTED
, {NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
646 NOT_SUPPORTED
, NOT_SUPPORTED
, NOT_SUPPORTED
,
655 /*****************************************************************/
657 int initialize_cx231xx(struct cx231xx
*dev
)
661 struct pcb_config
*p_pcb_info
;
662 u8 usb_speed
= 1; /* from register,1--HS, 0--FS */
663 u8 data
[4] = { 0, 0, 0, 0 };
666 u32 analog_source
= 0;
667 u8 _current_scenario_idx
= 0xff;
669 ts1_source
= SOURCE_TS_BDA
;
670 ts2_source
= SOURCE_TS_BDA
;
672 /* read board config register to find out which
673 pcb config it is related to */
674 retval
= cx231xx_read_ctrl_reg(dev
, VRT_GET_REGISTER
, BOARD_CFG_STAT
,
679 config_info
= le32_to_cpu(*((__le32
*)data
));
680 usb_speed
= (u8
) (config_info
& 0x1);
682 /* Verify this device belongs to Bus power or Self power device */
683 if (config_info
& BUS_POWER
) { /* bus-power */
684 switch (config_info
& BUSPOWER_MASK
) {
685 case TS1_PORT
| BUS_POWER
:
686 cx231xx_Scenario
[INDEX_BUSPOWER_DIGITAL_ONLY
].speed
=
689 &cx231xx_Scenario
[INDEX_BUSPOWER_DIGITAL_ONLY
];
690 _current_scenario_idx
= INDEX_BUSPOWER_DIGITAL_ONLY
;
692 case AVDEC_ENABLE
| BUS_POWER
:
693 cx231xx_Scenario
[INDEX_BUSPOWER_ANALOG_ONLY
].speed
=
696 &cx231xx_Scenario
[INDEX_BUSPOWER_ANALOG_ONLY
];
697 _current_scenario_idx
= INDEX_BUSPOWER_ANALOG_ONLY
;
699 case AVDEC_ENABLE
| BUS_POWER
| TS1_PORT
:
700 cx231xx_Scenario
[INDEX_BUSPOWER_DIF_ONLY
].speed
=
702 p_pcb_info
= &cx231xx_Scenario
[INDEX_BUSPOWER_DIF_ONLY
];
703 _current_scenario_idx
= INDEX_BUSPOWER_DIF_ONLY
;
707 "bad config in buspower!!!!\nconfig_info=%x\n",
708 config_info
& BUSPOWER_MASK
);
711 } else { /* self-power */
713 switch (config_info
& SELFPOWER_MASK
) {
714 case TS1_PORT
| SELF_POWER
:
715 cx231xx_Scenario
[INDEX_SELFPOWER_DIGITAL_ONLY
].speed
=
718 &cx231xx_Scenario
[INDEX_SELFPOWER_DIGITAL_ONLY
];
719 _current_scenario_idx
= INDEX_SELFPOWER_DIGITAL_ONLY
;
721 case TS1_TS2_PORT
| SELF_POWER
:
722 cx231xx_Scenario
[INDEX_SELFPOWER_DUAL_DIGITAL
].speed
=
724 cx231xx_Scenario
[INDEX_SELFPOWER_DUAL_DIGITAL
].
725 ts2_source
= ts2_source
;
727 &cx231xx_Scenario
[INDEX_SELFPOWER_DUAL_DIGITAL
];
728 _current_scenario_idx
= INDEX_SELFPOWER_DUAL_DIGITAL
;
730 case AVDEC_ENABLE
| SELF_POWER
:
731 cx231xx_Scenario
[INDEX_SELFPOWER_ANALOG_ONLY
].speed
=
733 cx231xx_Scenario
[INDEX_SELFPOWER_ANALOG_ONLY
].
734 analog_source
= analog_source
;
736 &cx231xx_Scenario
[INDEX_SELFPOWER_ANALOG_ONLY
];
737 _current_scenario_idx
= INDEX_SELFPOWER_ANALOG_ONLY
;
739 case AVDEC_ENABLE
| TS1_PORT
| SELF_POWER
:
740 cx231xx_Scenario
[INDEX_SELFPOWER_DUAL
].speed
=
742 cx231xx_Scenario
[INDEX_SELFPOWER_DUAL
].ts1_source
=
744 cx231xx_Scenario
[INDEX_SELFPOWER_DUAL
].analog_source
=
746 p_pcb_info
= &cx231xx_Scenario
[INDEX_SELFPOWER_DUAL
];
747 _current_scenario_idx
= INDEX_SELFPOWER_DUAL
;
749 case AVDEC_ENABLE
| TS1_TS2_PORT
| SELF_POWER
:
750 cx231xx_Scenario
[INDEX_SELFPOWER_TRIPLE
].speed
=
752 cx231xx_Scenario
[INDEX_SELFPOWER_TRIPLE
].ts1_source
=
754 cx231xx_Scenario
[INDEX_SELFPOWER_TRIPLE
].ts2_source
=
756 cx231xx_Scenario
[INDEX_SELFPOWER_TRIPLE
].analog_source
=
758 p_pcb_info
= &cx231xx_Scenario
[INDEX_SELFPOWER_TRIPLE
];
759 _current_scenario_idx
= INDEX_SELFPOWER_TRIPLE
;
761 case AVDEC_ENABLE
| TS1VIP_TS2_PORT
| SELF_POWER
:
762 cx231xx_Scenario
[INDEX_SELFPOWER_COMPRESSOR
].speed
=
764 cx231xx_Scenario
[INDEX_SELFPOWER_COMPRESSOR
].
765 analog_source
= analog_source
;
767 &cx231xx_Scenario
[INDEX_SELFPOWER_COMPRESSOR
];
768 _current_scenario_idx
= INDEX_SELFPOWER_COMPRESSOR
;
772 "bad scenario!!!!!\nconfig_info=%x\n",
773 config_info
& SELFPOWER_MASK
);
778 dev
->current_scenario_idx
= _current_scenario_idx
;
780 memcpy(&dev
->current_pcb_config
, p_pcb_info
,
781 sizeof(struct pcb_config
));
785 "SC(0x00) register = 0x%x\n", config_info
);
788 (dev
->current_pcb_config
.index
) + 1);
791 dev
->current_pcb_config
.type
);
794 dev
->current_pcb_config
.mode
);
797 dev
->current_pcb_config
.speed
);
800 dev
->current_pcb_config
.ts1_source
);
803 dev
->current_pcb_config
.ts2_source
);
805 "analog_source=%x\n",
806 dev
->current_pcb_config
.analog_source
);