Mercurial > pt1.mumumu
view driver/pt1_tuner_data.c @ 16:ecb85bde67b1
added signal handler to perform cleaning up when it receives a signal.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Wed, 25 Feb 2009 02:35:36 +0900 |
parents | 07b2fc07ff48 |
children | 65c8ac567074 |
line wrap: on
line source
#include <linux/module.h> #include <linux/kernel.h> #include <linux/errno.h> #include <linux/pci.h> #include <linux/init.h> #include <linux/interrupt.h> #include <asm/system.h> #include <asm/io.h> #include <asm/irq.h> #include <asm/uaccess.h> #include "pt1_com.h" #include "pt1_pci.h" #include "pt1_i2c.h" #include "pt1_tuner.h" #include "pt1_tuner_data.h" /***************************************************************************/ /* 省電力テーブル */ /***************************************************************************/ /* ISDB-Sの省電力設定 C0 C1 送信:7Bit Address Mode(1b/19):17:00 ISDB-Sの省電力無効(2コマンド) C0 C1 送信:7Bit Address Mode(1B/19):fe:c0:f0:04 送信:7Bit Address Mode(1B/19):17:01 */ WBLOCK isdb_s_wake = { 0, 4, {0xFE, 0xC0, 0xF0, 0x04} }; WBLOCK isdb_s_sleep = { 0, 2, {0x17, 0x00} }; /* ISDB-Tの省電力設定 C0 C1 送信:7Bit Address Mode(1A/18):03:80 ISDB-Tの省電力無効(2コマンド) C0 C1 送信:7Bit Address Mode(1A/18):fe:c2 送信:7Bit Address Mode(1A/18):03:90 */ WBLOCK isdb_t_wake = { 0, 2, {0xFE, 0xC2} }; WBLOCK isdb_t_sleep = { 0, 2, {0x03, 0x80} }; /***************************************************************************/ /* 初期化データ定義(共通) */ /***************************************************************************/ WBLOCK com_initdata = { 0, 2, {0x01, 0x80} }; /***************************************************************************/ /* 初期化データ定義(ISDB-S) */ /***************************************************************************/ // ISDB-S初期化値1 WBLOCK isdb_s_init1 ={ 0, 1, {0x07} }; // ISDB-S初期化値2 WBLOCK isdb_s_init2 ={ 0, 2, {0x04, 0x02} }; // ISDB-S初期化値3 WBLOCK isdb_s_init3 ={ 0, 2, {0x0D, 0x55} }; // ISDB-S初期化値4 WBLOCK isdb_s_init4 ={ 0, 2, {0x11, 0x40} }; // ISDB-S初期化値5 WBLOCK isdb_s_init5 ={ 0, 2, {0x13, 0x80} }; // ISDB-S初期化値6 WBLOCK isdb_s_init6 ={ 0, 2, {0x17, 0x01} }; // ISDB-S初期化値7 WBLOCK isdb_s_init7 ={ 0, 2, {0x1C, 0x0A} }; // ISDB-S初期化値8 WBLOCK isdb_s_init8 ={ 0, 2, {0x1D, 0xAA} }; // ISDB-S初期化値9 WBLOCK isdb_s_init9 ={ 0, 2, {0x1E, 0x20} }; // ISDB-S初期化値10 WBLOCK isdb_s_init10 ={ 0, 2, {0x1F, 0x88} }; // ISDB-S初期化値11 WBLOCK isdb_s_init11 ={ 0, 2, {0x51, 0xB0} }; // ISDB-S初期化値12 WBLOCK isdb_s_init12 ={ 0, 2, {0x52, 0x89} }; // ISDB-S初期化値13 WBLOCK isdb_s_init13 ={ 0, 2, {0x53, 0xB3} }; // ISDB-S初期化値14 WBLOCK isdb_s_init14 ={ 0, 2, {0x5A, 0x2D} }; // ISDB-S初期化値15 WBLOCK isdb_s_init15 ={ 0, 2, {0x5B, 0xD3} }; // ISDB-S初期化値16 WBLOCK isdb_s_init16 ={ 0, 2, {0x85, 0x69} }; // ISDB-S初期化値17 WBLOCK isdb_s_init17 ={ 0, 2, {0x87, 0x04} }; // ISDB-S初期化値18 WBLOCK isdb_s_init18 ={ 0, 2, {0x8E, 0x02} }; // ISDB-S初期化値19 WBLOCK isdb_s_init19 ={ 0, 2, {0xA3, 0xF7} }; // ISDB-S初期化値20 WBLOCK isdb_s_init20 ={ 0, 2, {0xA5, 0xC0} }; // ISDB-S初期化値21 WBLOCK isdb_s_init21 ={ 0, 4, {0xFE, 0xC0, 0xF0, 0x04} }; /***************************************************************************/ /* 初期化データ定義(ISDB-T) */ /***************************************************************************/ // ISDB-T初期化値1 WBLOCK isdb_t_init1 ={ 0, 2, {0x03, 0x90} }; // ISDB-T初期化値2 WBLOCK isdb_t_init2 ={ 0, 2, {0x14, 0x8F} }; // ISDB-T初期化値3 WBLOCK isdb_t_init3 ={ 0, 2, {0x1C, 0x2A} }; // ISDB-T初期化値4 WBLOCK isdb_t_init4 ={ 0, 2, {0x1D, 0xA8} }; // ISDB-T初期化値5 WBLOCK isdb_t_init5 ={ 0, 2, {0x1E, 0xA2} }; // ISDB-T初期化値6 WBLOCK isdb_t_init6 ={ 0, 2, {0x22, 0x83} }; // ISDB-T初期化値7 WBLOCK isdb_t_init7 ={ 0, 2, {0x31, 0x0D} }; // ISDB-T初期化値8 WBLOCK isdb_t_init8 ={ 0, 2, {0x32, 0xE0} }; // ISDB-T初期化値9 WBLOCK isdb_t_init9 ={ 0, 2, {0x39, 0xD3} }; // ISDB-T初期化値10 WBLOCK isdb_t_init10 ={ 0, 2, {0x3A, 0x00} }; // ISDB-T初期化値11 WBLOCK isdb_t_init11 ={ 0, 2, {0x5C, 0x40} }; // ISDB-T初期化値12 WBLOCK isdb_t_init12 ={ 0, 2, {0x5F, 0x80} }; // ISDB-T初期化値13 WBLOCK isdb_t_init13 ={ 0, 2, {0x75, 0x02} }; // ISDB-T初期化値14 WBLOCK isdb_t_init14 ={ 0, 2, {0x76, 0x4E} }; // ISDB-T初期化値15 WBLOCK isdb_t_init15 ={ 0, 2, {0x77, 0x03} }; // ISDB-T初期化値16 WBLOCK isdb_t_init16 ={ 0, 2, {0xEF, 0x01} }; // ISDB-T初期化値17 WBLOCK isdb_t_init17 ={ 0, 7, {0xFE, 0xC2, 0x01, 0x8F, 0xC1, 0x80, 0x80} }; /***************************************************************************/ /* 初期化データブロック定義(ISDB-S) */ /***************************************************************************/ WBLOCK *isdb_s_initial[MAX_ISDB_S_INIT] = { &isdb_s_init2, &isdb_s_init3, &isdb_s_init4, &isdb_s_init5, &isdb_s_init6, &isdb_s_init7, &isdb_s_init8, &isdb_s_init9, &isdb_s_init10, &isdb_s_init11, &isdb_s_init12, &isdb_s_init13, &isdb_s_init14, &isdb_s_init15, &isdb_s_init16, &isdb_s_init17, &isdb_s_init18, &isdb_s_init19, &isdb_s_init20 }; /***************************************************************************/ /* 初期化データブロック定義(ISDB-T) */ /***************************************************************************/ WBLOCK *isdb_t_initial[MAX_ISDB_T_INIT] = { &isdb_t_init1, &isdb_t_init2, &isdb_t_init3, &isdb_t_init4, &isdb_t_init5, &isdb_t_init6, &isdb_t_init7, &isdb_t_init8, &isdb_t_init9, &isdb_t_init10, &isdb_t_init11, &isdb_t_init12, &isdb_t_init13, &isdb_t_init14, &isdb_t_init15, &isdb_t_init16 }; /***************************************************************************/ /* 地上デジタル用データ */ /***************************************************************************/ /***************************************************************************/ /* 周波数設定基本テーブル */ /* 0〜1: 固定 */ /* 2〜3: 計算結果 */ /* 4〜5: 追加計算結果 */ /***************************************************************************/ WBLOCK isdb_t_pll_base = { 0, 2, {0xFE, 0xC2, 0, 0, 0, 0, 0, 0} }; /***************************************************************************/ /* 地デジ周波数ロックチェック */ /***************************************************************************/ WBLOCK isdb_t_pll_lock = { 0, 2, {0xFE, 0xC3} }; WBLOCK isdb_t_check_tune = { 0, 2, {0x01, 0x40} }; WBLOCK isdb_t_tune_read = { 0, 1, {0x80} }; WBLOCK isdb_t_tmcc_read_1 = { 0, 1, {0xB2} }; WBLOCK isdb_t_tmcc_read_2 = { 0, 1, {0xB6} }; /***************************************************************************/ /* 地デジ周波数ロックチェック */ /***************************************************************************/ WBLOCK isdb_t_signal1 = { 0, 1, {0x8C} }; WBLOCK isdb_t_signal2 = { 0, 1, {0x8D} }; WBLOCK isdb_t_agc2 = { 0, 1, {0x82} }; WBLOCK isdb_t_lockedt1 = { 0, 1, {0x96} }; WBLOCK isdb_t_lockedt2 = { 0, 1, {0xB0} }; WBLOCK isdb_t_get_clock = { 0, 1, {0x86} }; WBLOCK isdb_t_get_carrir = { 0, 1, {0x84} }; /***************************************************************************/ /* 地デジ用データ */ /***************************************************************************/ /***************************************************************************/ /* BS用データ */ /***************************************************************************/ /***************************************************************************/ /* BS周波数ロックチェック */ /***************************************************************************/ WBLOCK bs_pll_lock = { 0, 2, {0xFE, 0xC1} }; /***************************************************************************/ /* TMCC取得 */ /***************************************************************************/ WBLOCK bs_tmcc_get_1 = { 0, 2, {0x03, 0x01} }; WBLOCK bs_tmcc_get_2 = { 0, 1, {0xC3} }; /***************************************************************************/ /* TMCC取得 */ /***************************************************************************/ WBLOCK bs_get_slot_ts_id_1 = { 0, 1, {0xCE} }; WBLOCK bs_get_slot_ts_id_2 = { 0, 1, {0xD2} }; WBLOCK bs_get_slot_ts_id_3 = { 0, 1, {0xD6} }; WBLOCK bs_get_slot_ts_id_4 = { 0, 1, {0xDA} }; /***************************************************************************/ /* TS-IDロック */ /***************************************************************************/ WBLOCK bs_set_ts_lock = { 0, 3, {0x8F, 0x00, 0x00} }; /***************************************************************************/ /* TS-ID取得 */ /***************************************************************************/ WBLOCK bs_get_ts_lock = { 0, 1, {0xE6} }; /***************************************************************************/ /* スロット取得 */ /***************************************************************************/ WBLOCK bs_get_slot = { 0, 1, {0xE8} }; /***************************************************************************/ /* CN/AGC/MAXAGC取得 */ /***************************************************************************/ WBLOCK bs_get_signal1 = { 0, 1, {0xBC} }; WBLOCK bs_get_signal2 = { 0, 1, {0xBD} }; WBLOCK bs_get_agc = { 0, 1, {0xBA} }; /***************************************************************************/ /* クロック周波数誤差取得 */ /***************************************************************************/ WBLOCK bs_get_clock = { 0, 1, {0xBE} }; /***************************************************************************/ /* キャリア周波数誤差取得 */ /***************************************************************************/ WBLOCK bs_get_carrir = { 0, 1, {0xBB} }; /***************************************************************************/ /* 周波数設定テーブル */ /* BSに関してのみ。とりあえずテーブルとしたが、計算で算出出来るなら */ /* 計算で算出させる。 */ /***************************************************************************/ /***************************************************************************/ /* BS共通テーブル */ /***************************************************************************/ WBLOCK bs_com_step2 = { 0, 3, {0xFE, 0xC0, 0xE4} }; /***************************************************************************/ /* BS-1 */ /***************************************************************************/ WBLOCK bs_1_step1 = { 0, 6, {0xFE, 0xC0, 0x48, 0x29, 0xE0, 0xD2} }; WBLOCK bs_1_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xD6} }; /***************************************************************************/ /* BS-3 */ /***************************************************************************/ WBLOCK bs_3_step1 = { 0, 6, {0xFE, 0xC0, 0x44, 0x40, 0xE0, 0xE2} }; WBLOCK bs_3_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xE6} }; /***************************************************************************/ /* BS-5 */ /***************************************************************************/ WBLOCK bs_5_step1 = { 0, 6, {0xFE, 0xC0, 0x44, 0x66, 0xE0, 0xE2} }; WBLOCK bs_5_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xE6} }; /***************************************************************************/ /* BS-7 */ /***************************************************************************/ WBLOCK bs_7_step1 = { 0, 6, {0xFE, 0xC0, 0x44, 0x8D, 0xE0, 0x20} }; WBLOCK bs_7_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x24} }; /***************************************************************************/ /* BS-9 */ /***************************************************************************/ WBLOCK bs_9_step1 = { 0, 6, {0xFE, 0xC0, 0x44, 0xB3, 0xE0, 0x20} }; WBLOCK bs_9_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x24} }; /***************************************************************************/ /* BS-11 */ /***************************************************************************/ WBLOCK bs_11_step1 = { 0, 6, {0xFE, 0xC0, 0x44, 0xD9, 0xE0, 0x20} }; WBLOCK bs_11_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x24} }; /***************************************************************************/ /* BS-13 */ /***************************************************************************/ WBLOCK bs_13_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0x00, 0xE0, 0x20} }; WBLOCK bs_13_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x24} }; /***************************************************************************/ /* BS-15 */ /***************************************************************************/ WBLOCK bs_15_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0x26, 0xE0, 0x40} }; WBLOCK bs_15_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x44} }; /***************************************************************************/ /* BS-17 */ /***************************************************************************/ WBLOCK bs_17_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0x73, 0xE0, 0x40} }; WBLOCK bs_17_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0X44} }; /***************************************************************************/ /* BS-19 */ /***************************************************************************/ WBLOCK bs_19_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0x73, 0xE0, 0x40} }; WBLOCK bs_19_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x44} }; /***************************************************************************/ /* BS-21 */ /***************************************************************************/ WBLOCK bs_21_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0x99, 0xE0, 0x40} }; WBLOCK bs_21_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x44} }; /***************************************************************************/ /* BS-23 */ /***************************************************************************/ WBLOCK bs_23_step1 = { 0, 6, {0xFE, 0xC0, 0x45, 0xBF, 0xE0, 0x60} }; WBLOCK bs_23_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x64} }; /***************************************************************************/ /* ND 2 */ /***************************************************************************/ WBLOCK nd_2_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x4D, 0xE0, 0x60} }; WBLOCK nd_2_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x64} }; /***************************************************************************/ /* ND 4 */ /***************************************************************************/ WBLOCK nd_4_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x75, 0xE0, 0x80} }; WBLOCK nd_4_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 6 */ /***************************************************************************/ WBLOCK nd_6_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x9D, 0xE0, 0x80} }; WBLOCK nd_6_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 8 */ /***************************************************************************/ WBLOCK nd_8_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0xC5, 0xE0, 0x80} }; WBLOCK nd_8_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 10 */ /***************************************************************************/ WBLOCK nd_10_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0xED, 0xE0, 0x80} }; WBLOCK nd_10_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 12 */ /***************************************************************************/ WBLOCK nd_12_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x15, 0xE0, 0xA0} }; WBLOCK nd_12_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 14 */ /***************************************************************************/ WBLOCK nd_14_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x3D, 0xE0, 0xA0} }; WBLOCK nd_14_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 16 */ /***************************************************************************/ WBLOCK nd_16_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x65, 0xE0, 0xA0} }; WBLOCK nd_16_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 18 */ /***************************************************************************/ WBLOCK nd_18_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x8D, 0xE0, 0xA0} }; WBLOCK nd_18_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 20 */ /***************************************************************************/ WBLOCK nd_20_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0xB5, 0xE0, 0xC0} }; WBLOCK nd_20_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xC4} }; /***************************************************************************/ /* ND 22 */ /***************************************************************************/ WBLOCK nd_22_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0xDD, 0xE0, 0xC0} }; WBLOCK nd_22_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xC4} }; /***************************************************************************/ /* ND 24 */ /***************************************************************************/ WBLOCK nd_24_step1 = { 0, 6, {0xFE, 0xC0, 0x48, 0x05, 0xE0, 0xC0} }; WBLOCK nd_24_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xC4} }; /***************************************************************************/ /* ND 1 */ /***************************************************************************/ WBLOCK nd_1_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x39, 0xE0, 0x60} }; WBLOCK nd_1_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x64} }; /***************************************************************************/ /* ND 3 */ /***************************************************************************/ WBLOCK nd_3_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x61, 0xE0, 0x80} }; WBLOCK nd_3_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 5 */ /***************************************************************************/ WBLOCK nd_5_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0x89, 0xE0, 0x80} }; WBLOCK nd_5_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 7 */ /***************************************************************************/ WBLOCK nd_7_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0xB1, 0xE0, 0x80} }; WBLOCK nd_7_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 9 */ /***************************************************************************/ WBLOCK nd_9_step1 = { 0, 6, {0xFE, 0xC0, 0x46, 0xD9, 0xE0, 0x80} }; WBLOCK nd_9_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0x84} }; /***************************************************************************/ /* ND 11 */ /***************************************************************************/ WBLOCK nd_11_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x01, 0xE0, 0xA0} }; WBLOCK nd_11_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 13 */ /***************************************************************************/ WBLOCK nd_13_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x29, 0xE0, 0xA0} }; WBLOCK nd_13_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 15 */ /***************************************************************************/ WBLOCK nd_15_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x51, 0xE0, 0xA0} }; WBLOCK nd_15_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 17 */ /***************************************************************************/ WBLOCK nd_17_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0x79, 0xE0, 0xA0} }; WBLOCK nd_17_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 19 */ /***************************************************************************/ WBLOCK nd_19_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0xA1, 0xE0, 0xA0} }; WBLOCK nd_19_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xA4} }; /***************************************************************************/ /* ND 21 */ /***************************************************************************/ WBLOCK nd_21_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0xC9, 0xE0, 0xC0} }; WBLOCK nd_21_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xC4} }; /***************************************************************************/ /* ND 23 */ /***************************************************************************/ WBLOCK nd_23_step1 = { 0, 6, {0xFE, 0xC0, 0x47, 0xF1, 0xE0, 0xC0} }; WBLOCK nd_23_step3 = { 0, 4, {0xFE, 0xC0, 0xF4, 0xC4} }; /***************************************************************************/ /* BS-周波数テーブル */ /***************************************************************************/ WBLOCK_BS_PLL bs_pll[MAX_BS_CHANNEL] = { {&bs_1_step1, &bs_com_step2, &bs_1_step3}, {&bs_3_step1, &bs_com_step2, &bs_3_step3}, {&bs_5_step1, &bs_com_step2, &bs_5_step3}, {&bs_7_step1, &bs_com_step2, &bs_7_step3}, {&bs_9_step1, &bs_com_step2, &bs_9_step3}, {&bs_11_step1, &bs_com_step2, &bs_11_step3}, {&bs_13_step1, &bs_com_step2, &bs_13_step3}, {&bs_15_step1, &bs_com_step2, &bs_15_step3}, {&bs_17_step1, &bs_com_step2, &bs_17_step3}, {&bs_19_step1, &bs_com_step2, &bs_19_step3}, {&bs_21_step1, &bs_com_step2, &bs_21_step3}, {&bs_23_step1, &bs_com_step2, &bs_21_step3}, {&nd_2_step1, &bs_com_step2, &nd_2_step3}, {&nd_4_step1, &bs_com_step2, &nd_4_step3}, {&nd_6_step1, &bs_com_step2, &nd_6_step3}, {&nd_8_step1, &bs_com_step2, &nd_8_step3}, {&nd_10_step1, &bs_com_step2, &nd_10_step3}, {&nd_12_step1, &bs_com_step2, &nd_12_step3}, {&nd_14_step1, &bs_com_step2, &nd_14_step3}, {&nd_16_step1, &bs_com_step2, &nd_16_step3}, {&nd_18_step1, &bs_com_step2, &nd_18_step3}, {&nd_20_step1, &bs_com_step2, &nd_20_step3}, {&nd_22_step1, &bs_com_step2, &nd_22_step3}, {&nd_24_step1, &bs_com_step2, &nd_24_step3}, {&nd_1_step1, &bs_com_step2, &nd_1_step3}, {&nd_3_step1, &bs_com_step2, &nd_3_step3}, {&nd_5_step1, &bs_com_step2, &nd_5_step3}, {&nd_7_step1, &bs_com_step2, &nd_7_step3}, {&nd_9_step1, &bs_com_step2, &nd_9_step3}, {&nd_11_step1, &bs_com_step2, &nd_11_step3}, {&nd_13_step1, &bs_com_step2, &nd_13_step3}, {&nd_15_step1, &bs_com_step2, &nd_15_step3}, {&nd_17_step1, &bs_com_step2, &nd_17_step3}, {&nd_19_step1, &bs_com_step2, &nd_19_step3}, {&nd_21_step1, &bs_com_step2, &nd_21_step3}, {&nd_23_step1, &bs_com_step2, &nd_23_step3} }; WBLOCK *bs_get_ts_id[(MAX_BS_TS_ID / 2)] = { &bs_get_slot_ts_id_1, &bs_get_slot_ts_id_2, &bs_get_slot_ts_id_3, &bs_get_slot_ts_id_4 };