brintos

brintos / linux-shallow public Read only

0
0
Text · 103.3 KiB · f4e1ea2 Raw
4362 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2//3// rt1320-sdw.c -- rt1320 SDCA ALSA SoC amplifier audio driver4//5// Copyright(c) 2024 Realtek Semiconductor Corp.6//7//8#include <linux/delay.h>9#include <linux/device.h>10#include <linux/pm_runtime.h>11#include <linux/mod_devicetable.h>12#include <linux/module.h>13#include <linux/regmap.h>14#include <linux/dmi.h>15#include <linux/firmware.h>16#include <sound/core.h>17#include <sound/pcm.h>18#include <sound/pcm_params.h>19#include <sound/soc-dapm.h>20#include <sound/initval.h>21#include <sound/tlv.h>22#include <sound/sdw.h>23#include "rt1320-sdw.h"24 25/*26 * The 'blind writes' is an SDCA term to deal with platform-specific initialization.27 * It might include vendor-specific or SDCA control registers.28 */29static const struct reg_sequence rt1320_blind_write[] = {30	{ 0xc003, 0xe0 },31	{ 0xc01b, 0xfc },32	{ 0xc5c3, 0xf2 },33	{ 0xc5c2, 0x00 },34	{ 0xc5c6, 0x10 },35	{ 0xc5c4, 0x12 },36	{ 0xc5c8, 0x03 },37	{ 0xc5d8, 0x0a },38	{ 0xc5f7, 0x22 },39	{ 0xc5f6, 0x22 },40	{ 0xc5d0, 0x0f },41	{ 0xc5d1, 0x89 },42	{ 0xc057, 0x51 },43	{ 0xc054, 0x35 },44	{ 0xc053, 0x55 },45	{ 0xc052, 0x55 },46	{ 0xc051, 0x13 },47	{ 0xc050, 0x15 },48	{ 0xc060, 0x77 },49	{ 0xc061, 0x55 },50	{ 0xc063, 0x55 },51	{ 0xc065, 0xa5 },52	{ 0xc06b, 0x0a },53	{ 0xca05, 0xd6 },54	{ 0xca25, 0xd6 },55	{ 0xcd00, 0x05 },56	{ 0xc604, 0x40 },57	{ 0xc609, 0x40 },58	{ 0xc046, 0xff },59	{ 0xc045, 0xff },60	{ 0xc044, 0xff },61	{ 0xc043, 0xff },62	{ 0xc042, 0xff },63	{ 0xc041, 0xff },64	{ 0xc040, 0xff },65	{ 0xcc10, 0x01 },66	{ 0xc700, 0xf0 },67	{ 0xc701, 0x13 },68	{ 0xc901, 0x04 },69	{ 0xc900, 0x73 },70	{ 0xde03, 0x05 },71	{ 0xdd0b, 0x0d },72	{ 0xdd0a, 0xff },73	{ 0xdd09, 0x0d },74	{ 0xdd08, 0xff },75	{ 0xc570, 0x08 },76	{ 0xe803, 0xbe },77	{ 0xc003, 0xc0 },78	{ 0xc081, 0xfe },79	{ 0xce31, 0x0d },80	{ 0xce30, 0xae },81	{ 0xce37, 0x0b },82	{ 0xce36, 0xd2 },83	{ 0xce39, 0x04 },84	{ 0xce38, 0x80 },85	{ 0xce3f, 0x00 },86	{ 0xce3e, 0x00 },87	{ 0xd470, 0x8b },88	{ 0xd471, 0x18 },89	{ 0xc019, 0x10 },90	{ 0xd487, 0x3f },91	{ 0xd486, 0xc3 },92};93 94static const struct reg_sequence rt1320_vc_blind_write[] = {95	{ 0xc003, 0xe0 },96	{ 0xe80a, 0x01 },97	{ 0xc5c3, 0xf3 },98	{ 0xc057, 0x51 },99	{ 0xc054, 0x35 },100	{ 0xca05, 0xd6 },101	{ 0xca07, 0x07 },102	{ 0xca25, 0xd6 },103	{ 0xca27, 0x07 },104	{ 0xc604, 0x40 },105	{ 0xc609, 0x40 },106	{ 0xc046, 0xff },107	{ 0xc045, 0xff },108	{ 0xda81, 0x14 },109	{ 0xda8d, 0x14 },110	{ 0xc044, 0xff },111	{ 0xc043, 0xff },112	{ 0xc042, 0xff },113	{ 0xc041, 0x7f },114	{ 0xc040, 0xff },115	{ 0xcc10, 0x01 },116	{ 0xc700, 0xf0 },117	{ 0xc701, 0x13 },118	{ 0xc901, 0x09 },119	{ 0xc900, 0xd0 },120	{ 0xde03, 0x05 },121	{ 0xdd0b, 0x0d },122	{ 0xdd0a, 0xff },123	{ 0xdd09, 0x0d },124	{ 0xdd08, 0xff },125	{ 0xc570, 0x08 },126	{ 0xc086, 0x02 },127	{ 0xc085, 0x7f },128	{ 0xc084, 0x00 },129	{ 0xc081, 0xfe },130	{ 0xf084, 0x0f },131	{ 0xf083, 0xff },132	{ 0xf082, 0xff },133	{ 0xf081, 0xff },134	{ 0xf080, 0xff },135	{ 0xe802, 0xf8 },136	{ 0xe803, 0xbe },137	{ 0xc003, 0xc0 },138	{ 0xd470, 0xec },139	{ 0xd471, 0x3a },140	{ 0xd474, 0x11 },141	{ 0xd475, 0x32 },142	{ 0xd478, 0x64 },143	{ 0xd479, 0x20 },144	{ 0xd47a, 0x10 },145	{ 0xd47c, 0xff },146	{ 0xc019, 0x10 },147	{ 0xd487, 0x0b },148	{ 0xd487, 0x3b },149	{ 0xd486, 0xc3 },150	{ 0xc598, 0x04 },151	{ 0xd500, 0x00 },152	{ 0xd500, 0x17 },153	{ 0xd600, 0x01 },154	{ 0xd601, 0x02 },155	{ 0xd602, 0x03 },156	{ 0xd603, 0x04 },157	{ 0xd64c, 0x03 },158	{ 0xd64d, 0x03 },159	{ 0xd64e, 0x03 },160	{ 0xd64f, 0x03 },161	{ 0xd650, 0x03 },162	{ 0xd651, 0x03 },163	{ 0xd652, 0x03 },164	{ 0xd610, 0x01 },165	{ 0xd608, 0x03 },166	{ 0xd609, 0x00 },167};168 169static const struct reg_sequence rt1320_vc_patch_code_write[] = {170	{ 0x10007000, 0x37 },171	{ 0x10007001, 0x77 },172	{ 0x10007002, 0x00 },173	{ 0x10007003, 0x10 },174	{ 0x10007004, 0xb7 },175	{ 0x10007005, 0xe7 },176	{ 0x10007006, 0x00 },177	{ 0x10007007, 0x10 },178	{ 0x10007008, 0x13 },179	{ 0x10007009, 0x07 },180	{ 0x1000700a, 0x87 },181	{ 0x1000700b, 0x48 },182	{ 0x1000700c, 0x23 },183	{ 0x1000700d, 0xa6 },184	{ 0x1000700e, 0xe7 },185	{ 0x1000700f, 0xee },186	{ 0x10007010, 0x37 },187	{ 0x10007011, 0x77 },188	{ 0x10007012, 0x00 },189	{ 0x10007013, 0x10 },190	{ 0x10007014, 0x13 },191	{ 0x10007015, 0x07 },192	{ 0x10007016, 0x87 },193	{ 0x10007017, 0x56 },194	{ 0x10007018, 0x23 },195	{ 0x10007019, 0xac },196	{ 0x1000701a, 0xe7 },197	{ 0x1000701b, 0xde },198	{ 0x1000701c, 0x37 },199	{ 0x1000701d, 0x77 },200	{ 0x1000701e, 0x00 },201	{ 0x1000701f, 0x10 },202	{ 0x10007020, 0x13 },203	{ 0x10007021, 0x07 },204	{ 0x10007022, 0xc7 },205	{ 0x10007023, 0x5f },206	{ 0x10007024, 0x23 },207	{ 0x10007025, 0xae },208	{ 0x10007026, 0xe7 },209	{ 0x10007027, 0xdc },210	{ 0x10007028, 0x37 },211	{ 0x10007029, 0x87 },212	{ 0x1000702a, 0x00 },213	{ 0x1000702b, 0x10 },214	{ 0x1000702c, 0x13 },215	{ 0x1000702d, 0x07 },216	{ 0x1000702e, 0xc7 },217	{ 0x1000702f, 0x86 },218	{ 0x10007030, 0x23 },219	{ 0x10007031, 0xae },220	{ 0x10007032, 0xe7 },221	{ 0x10007033, 0xe6 },222	{ 0x10007034, 0x37 },223	{ 0x10007035, 0x77 },224	{ 0x10007036, 0x00 },225	{ 0x10007037, 0x10 },226	{ 0x10007038, 0x13 },227	{ 0x10007039, 0x07 },228	{ 0x1000703a, 0x07 },229	{ 0x1000703b, 0x40 },230	{ 0x1000703c, 0x23 },231	{ 0x1000703d, 0xa6 },232	{ 0x1000703e, 0xe7 },233	{ 0x1000703f, 0xe8 },234	{ 0x10007040, 0x37 },235	{ 0x10007041, 0x77 },236	{ 0x10007042, 0x00 },237	{ 0x10007043, 0x10 },238	{ 0x10007044, 0x13 },239	{ 0x10007045, 0x07 },240	{ 0x10007046, 0xc7 },241	{ 0x10007047, 0x63 },242	{ 0x10007048, 0x23 },243	{ 0x10007049, 0xa2 },244	{ 0x1000704a, 0xe7 },245	{ 0x1000704b, 0xec },246	{ 0x1000704c, 0x37 },247	{ 0x1000704d, 0x77 },248	{ 0x1000704e, 0x00 },249	{ 0x1000704f, 0x10 },250	{ 0x10007050, 0x13 },251	{ 0x10007051, 0x07 },252	{ 0x10007052, 0x47 },253	{ 0x10007053, 0x6f },254	{ 0x10007054, 0x23 },255	{ 0x10007055, 0xa6 },256	{ 0x10007056, 0xe7 },257	{ 0x10007057, 0xec },258	{ 0x10007058, 0x37 },259	{ 0x10007059, 0x77 },260	{ 0x1000705a, 0x00 },261	{ 0x1000705b, 0x10 },262	{ 0x1000705c, 0x13 },263	{ 0x1000705d, 0x07 },264	{ 0x1000705e, 0x07 },265	{ 0x1000705f, 0x44 },266	{ 0x10007060, 0x23 },267	{ 0x10007061, 0xa8 },268	{ 0x10007062, 0xe7 },269	{ 0x10007063, 0xec },270	{ 0x10007064, 0x37 },271	{ 0x10007065, 0x87 },272	{ 0x10007066, 0x00 },273	{ 0x10007067, 0x10 },274	{ 0x10007068, 0x13 },275	{ 0x10007069, 0x07 },276	{ 0x1000706a, 0x87 },277	{ 0x1000706b, 0x84 },278	{ 0x1000706c, 0x23 },279	{ 0x1000706d, 0xa8 },280	{ 0x1000706e, 0xe7 },281	{ 0x1000706f, 0xee },282	{ 0x10007070, 0x37 },283	{ 0x10007071, 0x87 },284	{ 0x10007072, 0x00 },285	{ 0x10007073, 0x10 },286	{ 0x10007074, 0x13 },287	{ 0x10007075, 0x07 },288	{ 0x10007076, 0x47 },289	{ 0x10007077, 0x97 },290	{ 0x10007078, 0x23 },291	{ 0x10007079, 0xaa },292	{ 0x1000707a, 0xe7 },293	{ 0x1000707b, 0xee },294	{ 0x1000707c, 0x67 },295	{ 0x1000707d, 0x80 },296	{ 0x1000707e, 0x00 },297	{ 0x1000707f, 0x00 },298	{ 0x10007400, 0xb7 },299	{ 0x10007401, 0xd6 },300	{ 0x10007402, 0x00 },301	{ 0x10007403, 0x00 },302	{ 0x10007404, 0x83 },303	{ 0x10007405, 0xc7 },304	{ 0x10007406, 0x06 },305	{ 0x10007407, 0x47 },306	{ 0x10007408, 0x93 },307	{ 0x10007409, 0xf7 },308	{ 0x1000740a, 0x87 },309	{ 0x1000740b, 0x00 },310	{ 0x1000740c, 0x63 },311	{ 0x1000740d, 0x88 },312	{ 0x1000740e, 0x07 },313	{ 0x1000740f, 0x02 },314	{ 0x10007410, 0x03 },315	{ 0x10007411, 0xc7 },316	{ 0x10007412, 0x31 },317	{ 0x10007413, 0x43 },318	{ 0x10007414, 0x63 },319	{ 0x10007415, 0x14 },320	{ 0x10007416, 0x07 },321	{ 0x10007417, 0x02 },322	{ 0x10007418, 0x13 },323	{ 0x10007419, 0x07 },324	{ 0x1000741a, 0x10 },325	{ 0x1000741b, 0x00 },326	{ 0x1000741c, 0xa3 },327	{ 0x1000741d, 0x89 },328	{ 0x1000741e, 0xe1 },329	{ 0x1000741f, 0x42 },330	{ 0x10007420, 0x37 },331	{ 0x10007421, 0xc7 },332	{ 0x10007422, 0x00 },333	{ 0x10007423, 0x00 },334	{ 0x10007424, 0x03 },335	{ 0x10007425, 0x46 },336	{ 0x10007426, 0x07 },337	{ 0x10007427, 0x06 },338	{ 0x10007428, 0x23 },339	{ 0x10007429, 0x8a },340	{ 0x1000742a, 0xc1 },341	{ 0x1000742b, 0x42 },342	{ 0x1000742c, 0x83 },343	{ 0x1000742d, 0xc7 },344	{ 0x1000742e, 0x46 },345	{ 0x1000742f, 0x47 },346	{ 0x10007430, 0x93 },347	{ 0x10007431, 0xf7 },348	{ 0x10007432, 0xf7 },349	{ 0x10007433, 0x0f },350	{ 0x10007434, 0x23 },351	{ 0x10007435, 0x00 },352	{ 0x10007436, 0xf7 },353	{ 0x10007437, 0x06 },354	{ 0x10007438, 0x23 },355	{ 0x10007439, 0x89 },356	{ 0x1000743a, 0x01 },357	{ 0x1000743b, 0x42 },358	{ 0x1000743c, 0x67 },359	{ 0x1000743d, 0x80 },360	{ 0x1000743e, 0x00 },361	{ 0x1000743f, 0x00 },362	{ 0x10007440, 0x37 },363	{ 0x10007441, 0xc7 },364	{ 0x10007442, 0x00 },365	{ 0x10007443, 0x00 },366	{ 0x10007444, 0x83 },367	{ 0x10007445, 0x27 },368	{ 0x10007446, 0xc7 },369	{ 0x10007447, 0x5f },370	{ 0x10007448, 0x13 },371	{ 0x10007449, 0x05 },372	{ 0x1000744a, 0x00 },373	{ 0x1000744b, 0x00 },374	{ 0x1000744c, 0x23 },375	{ 0x1000744d, 0xa2 },376	{ 0x1000744e, 0xf1 },377	{ 0x1000744f, 0x42 },378	{ 0x10007450, 0xb7 },379	{ 0x10007451, 0x06 },380	{ 0x10007452, 0x00 },381	{ 0x10007453, 0x10 },382	{ 0x10007454, 0xb3 },383	{ 0x10007455, 0xf7 },384	{ 0x10007456, 0xd7 },385	{ 0x10007457, 0x00 },386	{ 0x10007458, 0x63 },387	{ 0x10007459, 0x86 },388	{ 0x1000745a, 0x07 },389	{ 0x1000745b, 0x02 },390	{ 0x1000745c, 0x83 },391	{ 0x1000745d, 0x47 },392	{ 0x1000745e, 0x07 },393	{ 0x1000745f, 0x56 },394	{ 0x10007460, 0x93 },395	{ 0x10007461, 0xf7 },396	{ 0x10007462, 0x87 },397	{ 0x10007463, 0x01 },398	{ 0x10007464, 0x63 },399	{ 0x10007465, 0x80 },400	{ 0x10007466, 0x07 },401	{ 0x10007467, 0x02 },402	{ 0x10007468, 0x83 },403	{ 0x10007469, 0x47 },404	{ 0x1000746a, 0x17 },405	{ 0x1000746b, 0x08 },406	{ 0x1000746c, 0x93 },407	{ 0x1000746d, 0xf7 },408	{ 0x1000746e, 0x47 },409	{ 0x1000746f, 0x00 },410	{ 0x10007470, 0x63 },411	{ 0x10007471, 0x8a },412	{ 0x10007472, 0x07 },413	{ 0x10007473, 0x00 },414	{ 0x10007474, 0xb7 },415	{ 0x10007475, 0xc7 },416	{ 0x10007476, 0xc2 },417	{ 0x10007477, 0x3f },418	{ 0x10007478, 0x03 },419	{ 0x10007479, 0xa5 },420	{ 0x1000747a, 0x47 },421	{ 0x1000747b, 0xfc },422	{ 0x1000747c, 0x13 },423	{ 0x1000747d, 0x55 },424	{ 0x1000747e, 0x25 },425	{ 0x1000747f, 0x00 },426	{ 0x10007480, 0x13 },427	{ 0x10007481, 0x75 },428	{ 0x10007482, 0x15 },429	{ 0x10007483, 0x00 },430	{ 0x10007484, 0x67 },431	{ 0x10007485, 0x80 },432	{ 0x10007486, 0x00 },433	{ 0x10007487, 0x00 },434	{ 0x10007488, 0x03 },435	{ 0x10007489, 0xa7 },436	{ 0x1000748a, 0x81 },437	{ 0x1000748b, 0x57 },438	{ 0x1000748c, 0x13 },439	{ 0x1000748d, 0x01 },440	{ 0x1000748e, 0x01 },441	{ 0x1000748f, 0xff },442	{ 0x10007490, 0x23 },443	{ 0x10007491, 0x26 },444	{ 0x10007492, 0x11 },445	{ 0x10007493, 0x00 },446	{ 0x10007494, 0x23 },447	{ 0x10007495, 0x24 },448	{ 0x10007496, 0x81 },449	{ 0x10007497, 0x00 },450	{ 0x10007498, 0x23 },451	{ 0x10007499, 0x22 },452	{ 0x1000749a, 0x91 },453	{ 0x1000749b, 0x00 },454	{ 0x1000749c, 0x93 },455	{ 0x1000749d, 0x07 },456	{ 0x1000749e, 0xa0 },457	{ 0x1000749f, 0x05 },458	{ 0x100074a0, 0x63 },459	{ 0x100074a1, 0x14 },460	{ 0x100074a2, 0xf7 },461	{ 0x100074a3, 0x04 },462	{ 0x100074a4, 0x37 },463	{ 0x100074a5, 0x07 },464	{ 0x100074a6, 0x00 },465	{ 0x100074a7, 0x11 },466	{ 0x100074a8, 0x83 },467	{ 0x100074a9, 0x47 },468	{ 0x100074aa, 0x07 },469	{ 0x100074ab, 0x01 },470	{ 0x100074ac, 0x13 },471	{ 0x100074ad, 0x06 },472	{ 0x100074ae, 0x30 },473	{ 0x100074af, 0x00 },474	{ 0x100074b0, 0x93 },475	{ 0x100074b1, 0xf7 },476	{ 0x100074b2, 0xf7 },477	{ 0x100074b3, 0x0f },478	{ 0x100074b4, 0x63 },479	{ 0x100074b5, 0x9a },480	{ 0x100074b6, 0xc7 },481	{ 0x100074b7, 0x02 },482	{ 0x100074b8, 0x03 },483	{ 0x100074b9, 0x47 },484	{ 0x100074ba, 0x87 },485	{ 0x100074bb, 0x01 },486	{ 0x100074bc, 0x13 },487	{ 0x100074bd, 0x77 },488	{ 0x100074be, 0xf7 },489	{ 0x100074bf, 0x0f },490	{ 0x100074c0, 0x63 },491	{ 0x100074c1, 0x14 },492	{ 0x100074c2, 0xf7 },493	{ 0x100074c3, 0x02 },494	{ 0x100074c4, 0x37 },495	{ 0x100074c5, 0xd7 },496	{ 0x100074c6, 0x00 },497	{ 0x100074c7, 0x00 },498	{ 0x100074c8, 0x83 },499	{ 0x100074c9, 0x47 },500	{ 0x100074ca, 0x37 },501	{ 0x100074cb, 0x54 },502	{ 0x100074cc, 0x93 },503	{ 0x100074cd, 0xf7 },504	{ 0x100074ce, 0xf7 },505	{ 0x100074cf, 0x0f },506	{ 0x100074d0, 0x93 },507	{ 0x100074d1, 0xe7 },508	{ 0x100074d2, 0x07 },509	{ 0x100074d3, 0x02 },510	{ 0x100074d4, 0xa3 },511	{ 0x100074d5, 0x01 },512	{ 0x100074d6, 0xf7 },513	{ 0x100074d7, 0x54 },514	{ 0x100074d8, 0x83 },515	{ 0x100074d9, 0x47 },516	{ 0x100074da, 0x37 },517	{ 0x100074db, 0x54 },518	{ 0x100074dc, 0x93 },519	{ 0x100074dd, 0xf7 },520	{ 0x100074de, 0xf7 },521	{ 0x100074df, 0x0d },522	{ 0x100074e0, 0xa3 },523	{ 0x100074e1, 0x01 },524	{ 0x100074e2, 0xf7 },525	{ 0x100074e3, 0x54 },526	{ 0x100074e4, 0x23 },527	{ 0x100074e5, 0xac },528	{ 0x100074e6, 0x01 },529	{ 0x100074e7, 0x56 },530	{ 0x100074e8, 0x37 },531	{ 0x100074e9, 0xd4 },532	{ 0x100074ea, 0x00 },533	{ 0x100074eb, 0x00 },534	{ 0x100074ec, 0x83 },535	{ 0x100074ed, 0x47 },536	{ 0x100074ee, 0xd4 },537	{ 0x100074ef, 0x47 },538	{ 0x100074f0, 0x93 },539	{ 0x100074f1, 0xf7 },540	{ 0x100074f2, 0x17 },541	{ 0x100074f3, 0x00 },542	{ 0x100074f4, 0x63 },543	{ 0x100074f5, 0x80 },544	{ 0x100074f6, 0x07 },545	{ 0x100074f7, 0x06 },546	{ 0x100074f8, 0x37 },547	{ 0x100074f9, 0xd7 },548	{ 0x100074fa, 0x00 },549	{ 0x100074fb, 0x10 },550	{ 0x100074fc, 0x83 },551	{ 0x100074fd, 0x47 },552	{ 0x100074fe, 0x77 },553	{ 0x100074ff, 0xd9 },554	{ 0x10007500, 0x93 },555	{ 0x10007501, 0x87 },556	{ 0x10007502, 0x17 },557	{ 0x10007503, 0x00 },558	{ 0x10007504, 0x93 },559	{ 0x10007505, 0xf7 },560	{ 0x10007506, 0xf7 },561	{ 0x10007507, 0x0f },562	{ 0x10007508, 0xa3 },563	{ 0x10007509, 0x0b },564	{ 0x1000750a, 0xf7 },565	{ 0x1000750b, 0xd8 },566	{ 0x1000750c, 0x03 },567	{ 0x1000750d, 0x47 },568	{ 0x1000750e, 0x77 },569	{ 0x1000750f, 0xd9 },570	{ 0x10007510, 0x83 },571	{ 0x10007511, 0x47 },572	{ 0x10007512, 0xc4 },573	{ 0x10007513, 0x47 },574	{ 0x10007514, 0x13 },575	{ 0x10007515, 0x77 },576	{ 0x10007516, 0xf7 },577	{ 0x10007517, 0x0f },578	{ 0x10007518, 0x93 },579	{ 0x10007519, 0xf7 },580	{ 0x1000751a, 0xf7 },581	{ 0x1000751b, 0x0f },582	{ 0x1000751c, 0x63 },583	{ 0x1000751d, 0x6c },584	{ 0x1000751e, 0xf7 },585	{ 0x1000751f, 0x02 },586	{ 0x10007520, 0xb7 },587	{ 0x10007521, 0xf4 },588	{ 0x10007522, 0x00 },589	{ 0x10007523, 0x00 },590	{ 0x10007524, 0x93 },591	{ 0x10007525, 0x05 },592	{ 0x10007526, 0x00 },593	{ 0x10007527, 0x01 },594	{ 0x10007528, 0x13 },595	{ 0x10007529, 0x85 },596	{ 0x1000752a, 0x34 },597	{ 0x1000752b, 0x52 },598	{ 0x1000752c, 0xef },599	{ 0x1000752d, 0xa0 },600	{ 0x1000752e, 0x8f },601	{ 0x1000752f, 0xc6 },602	{ 0x10007530, 0x93 },603	{ 0x10007531, 0x05 },604	{ 0x10007532, 0x00 },605	{ 0x10007533, 0x00 },606	{ 0x10007534, 0x13 },607	{ 0x10007535, 0x85 },608	{ 0x10007536, 0x54 },609	{ 0x10007537, 0x10 },610	{ 0x10007538, 0xef },611	{ 0x10007539, 0xa0 },612	{ 0x1000753a, 0xcf },613	{ 0x1000753b, 0xc5 },614	{ 0x1000753c, 0x93 },615	{ 0x1000753d, 0x05 },616	{ 0x1000753e, 0x00 },617	{ 0x1000753f, 0x00 },618	{ 0x10007540, 0x13 },619	{ 0x10007541, 0x85 },620	{ 0x10007542, 0x74 },621	{ 0x10007543, 0x10 },622	{ 0x10007544, 0xef },623	{ 0x10007545, 0xa0 },624	{ 0x10007546, 0x0f },625	{ 0x10007547, 0xc5 },626	{ 0x10007548, 0x83 },627	{ 0x10007549, 0x47 },628	{ 0x1000754a, 0xd4 },629	{ 0x1000754b, 0x47 },630	{ 0x1000754c, 0x93 },631	{ 0x1000754d, 0xf7 },632	{ 0x1000754e, 0xe7 },633	{ 0x1000754f, 0x0f },634	{ 0x10007550, 0xa3 },635	{ 0x10007551, 0x0e },636	{ 0x10007552, 0xf4 },637	{ 0x10007553, 0x46 },638	{ 0x10007554, 0x83 },639	{ 0x10007555, 0x20 },640	{ 0x10007556, 0xc1 },641	{ 0x10007557, 0x00 },642	{ 0x10007558, 0x03 },643	{ 0x10007559, 0x24 },644	{ 0x1000755a, 0x81 },645	{ 0x1000755b, 0x00 },646	{ 0x1000755c, 0x83 },647	{ 0x1000755d, 0x24 },648	{ 0x1000755e, 0x41 },649	{ 0x1000755f, 0x00 },650	{ 0x10007560, 0x13 },651	{ 0x10007561, 0x01 },652	{ 0x10007562, 0x01 },653	{ 0x10007563, 0x01 },654	{ 0x10007564, 0x67 },655	{ 0x10007565, 0x80 },656	{ 0x10007566, 0x00 },657	{ 0x10007567, 0x00 },658	{ 0x10007568, 0x13 },659	{ 0x10007569, 0x01 },660	{ 0x1000756a, 0x01 },661	{ 0x1000756b, 0xff },662	{ 0x1000756c, 0x23 },663	{ 0x1000756d, 0x24 },664	{ 0x1000756e, 0x81 },665	{ 0x1000756f, 0x00 },666	{ 0x10007570, 0x23 },667	{ 0x10007571, 0x26 },668	{ 0x10007572, 0x11 },669	{ 0x10007573, 0x00 },670	{ 0x10007574, 0x23 },671	{ 0x10007575, 0x22 },672	{ 0x10007576, 0x91 },673	{ 0x10007577, 0x00 },674	{ 0x10007578, 0x37 },675	{ 0x10007579, 0xd4 },676	{ 0x1000757a, 0x00 },677	{ 0x1000757b, 0x00 },678	{ 0x1000757c, 0x83 },679	{ 0x1000757d, 0x47 },680	{ 0x1000757e, 0x04 },681	{ 0x1000757f, 0x54 },682	{ 0x10007580, 0x93 },683	{ 0x10007581, 0x97 },684	{ 0x10007582, 0x87 },685	{ 0x10007583, 0x01 },686	{ 0x10007584, 0x93 },687	{ 0x10007585, 0xd7 },688	{ 0x10007586, 0x87 },689	{ 0x10007587, 0x41 },690	{ 0x10007588, 0x63 },691	{ 0x10007589, 0xd0 },692	{ 0x1000758a, 0x07 },693	{ 0x1000758b, 0x06 },694	{ 0x1000758c, 0xb7 },695	{ 0x1000758d, 0xf4 },696	{ 0x1000758e, 0x00 },697	{ 0x1000758f, 0x00 },698	{ 0x10007590, 0x93 },699	{ 0x10007591, 0x05 },700	{ 0x10007592, 0x60 },701	{ 0x10007593, 0x01 },702	{ 0x10007594, 0x13 },703	{ 0x10007595, 0x85 },704	{ 0x10007596, 0x34 },705	{ 0x10007597, 0x52 },706	{ 0x10007598, 0xef },707	{ 0x10007599, 0xa0 },708	{ 0x1000759a, 0xcf },709	{ 0x1000759b, 0xbf },710	{ 0x1000759c, 0x93 },711	{ 0x1000759d, 0x05 },712	{ 0x1000759e, 0x00 },713	{ 0x1000759f, 0x04 },714	{ 0x100075a0, 0x13 },715	{ 0x100075a1, 0x85 },716	{ 0x100075a2, 0x54 },717	{ 0x100075a3, 0x10 },718	{ 0x100075a4, 0xef },719	{ 0x100075a5, 0xa0 },720	{ 0x100075a6, 0x0f },721	{ 0x100075a7, 0xbf },722	{ 0x100075a8, 0x93 },723	{ 0x100075a9, 0x05 },724	{ 0x100075aa, 0x00 },725	{ 0x100075ab, 0x04 },726	{ 0x100075ac, 0x13 },727	{ 0x100075ad, 0x85 },728	{ 0x100075ae, 0x74 },729	{ 0x100075af, 0x10 },730	{ 0x100075b0, 0xef },731	{ 0x100075b1, 0xa0 },732	{ 0x100075b2, 0x4f },733	{ 0x100075b3, 0xbe },734	{ 0x100075b4, 0x83 },735	{ 0x100075b5, 0x47 },736	{ 0x100075b6, 0xd4 },737	{ 0x100075b7, 0x47 },738	{ 0x100075b8, 0x37 },739	{ 0x100075b9, 0xd7 },740	{ 0x100075ba, 0x00 },741	{ 0x100075bb, 0x10 },742	{ 0x100075bc, 0x93 },743	{ 0x100075bd, 0xf7 },744	{ 0x100075be, 0xf7 },745	{ 0x100075bf, 0x0f },746	{ 0x100075c0, 0x93 },747	{ 0x100075c1, 0xe7 },748	{ 0x100075c2, 0x17 },749	{ 0x100075c3, 0x00 },750	{ 0x100075c4, 0xa3 },751	{ 0x100075c5, 0x0e },752	{ 0x100075c6, 0xf4 },753	{ 0x100075c7, 0x46 },754	{ 0x100075c8, 0xa3 },755	{ 0x100075c9, 0x0b },756	{ 0x100075ca, 0x07 },757	{ 0x100075cb, 0xd8 },758	{ 0x100075cc, 0x83 },759	{ 0x100075cd, 0x47 },760	{ 0x100075ce, 0x87 },761	{ 0x100075cf, 0xd9 },762	{ 0x100075d0, 0x93 },763	{ 0x100075d1, 0x87 },764	{ 0x100075d2, 0x17 },765	{ 0x100075d3, 0x00 },766	{ 0x100075d4, 0x93 },767	{ 0x100075d5, 0xf7 },768	{ 0x100075d6, 0xf7 },769	{ 0x100075d7, 0x0f },770	{ 0x100075d8, 0x23 },771	{ 0x100075d9, 0x0c },772	{ 0x100075da, 0xf7 },773	{ 0x100075db, 0xd8 },774	{ 0x100075dc, 0x83 },775	{ 0x100075dd, 0x47 },776	{ 0x100075de, 0x04 },777	{ 0x100075df, 0x54 },778	{ 0x100075e0, 0x93 },779	{ 0x100075e1, 0xf7 },780	{ 0x100075e2, 0xf7 },781	{ 0x100075e3, 0x07 },782	{ 0x100075e4, 0x23 },783	{ 0x100075e5, 0x00 },784	{ 0x100075e6, 0xf4 },785	{ 0x100075e7, 0x54 },786	{ 0x100075e8, 0x83 },787	{ 0x100075e9, 0x20 },788	{ 0x100075ea, 0xc1 },789	{ 0x100075eb, 0x00 },790	{ 0x100075ec, 0x03 },791	{ 0x100075ed, 0x24 },792	{ 0x100075ee, 0x81 },793	{ 0x100075ef, 0x00 },794	{ 0x100075f0, 0x83 },795	{ 0x100075f1, 0x24 },796	{ 0x100075f2, 0x41 },797	{ 0x100075f3, 0x00 },798	{ 0x100075f4, 0x13 },799	{ 0x100075f5, 0x01 },800	{ 0x100075f6, 0x01 },801	{ 0x100075f7, 0x01 },802	{ 0x100075f8, 0x67 },803	{ 0x100075f9, 0x80 },804	{ 0x100075fa, 0x00 },805	{ 0x100075fb, 0x00 },806	{ 0x100075fc, 0x13 },807	{ 0x100075fd, 0x01 },808	{ 0x100075fe, 0x01 },809	{ 0x100075ff, 0xff },810	{ 0x10007600, 0x23 },811	{ 0x10007601, 0x24 },812	{ 0x10007602, 0x81 },813	{ 0x10007603, 0x00 },814	{ 0x10007604, 0x37 },815	{ 0x10007605, 0xd4 },816	{ 0x10007606, 0x00 },817	{ 0x10007607, 0x00 },818	{ 0x10007608, 0x83 },819	{ 0x10007609, 0x27 },820	{ 0x1000760a, 0x04 },821	{ 0x1000760b, 0x53 },822	{ 0x1000760c, 0x23 },823	{ 0x1000760d, 0x22 },824	{ 0x1000760e, 0x91 },825	{ 0x1000760f, 0x00 },826	{ 0x10007610, 0xb7 },827	{ 0x10007611, 0x04 },828	{ 0x10007612, 0x00 },829	{ 0x10007613, 0x40 },830	{ 0x10007614, 0x23 },831	{ 0x10007615, 0x26 },832	{ 0x10007616, 0x11 },833	{ 0x10007617, 0x00 },834	{ 0x10007618, 0xb3 },835	{ 0x10007619, 0xf7 },836	{ 0x1000761a, 0x97 },837	{ 0x1000761b, 0x00 },838	{ 0x1000761c, 0x63 },839	{ 0x1000761d, 0x86 },840	{ 0x1000761e, 0x07 },841	{ 0x1000761f, 0x00 },842	{ 0x10007620, 0xef },843	{ 0x10007621, 0xd0 },844	{ 0x10007622, 0x5f },845	{ 0x10007623, 0xc2 },846	{ 0x10007624, 0x23 },847	{ 0x10007625, 0x28 },848	{ 0x10007626, 0x94 },849	{ 0x10007627, 0x52 },850	{ 0x10007628, 0x83 },851	{ 0x10007629, 0x20 },852	{ 0x1000762a, 0xc1 },853	{ 0x1000762b, 0x00 },854	{ 0x1000762c, 0x03 },855	{ 0x1000762d, 0x24 },856	{ 0x1000762e, 0x81 },857	{ 0x1000762f, 0x00 },858	{ 0x10007630, 0x83 },859	{ 0x10007631, 0x24 },860	{ 0x10007632, 0x41 },861	{ 0x10007633, 0x00 },862	{ 0x10007634, 0x13 },863	{ 0x10007635, 0x01 },864	{ 0x10007636, 0x01 },865	{ 0x10007637, 0x01 },866	{ 0x10007638, 0x67 },867	{ 0x10007639, 0x80 },868	{ 0x1000763a, 0x00 },869	{ 0x1000763b, 0x00 },870	{ 0x1000763c, 0x37 },871	{ 0x1000763d, 0xc7 },872	{ 0x1000763e, 0x00 },873	{ 0x1000763f, 0x00 },874	{ 0x10007640, 0x83 },875	{ 0x10007641, 0x27 },876	{ 0x10007642, 0xc7 },877	{ 0x10007643, 0x5f },878	{ 0x10007644, 0x23 },879	{ 0x10007645, 0xa2 },880	{ 0x10007646, 0xf1 },881	{ 0x10007647, 0x42 },882	{ 0x10007648, 0xb7 },883	{ 0x10007649, 0x06 },884	{ 0x1000764a, 0x00 },885	{ 0x1000764b, 0x10 },886	{ 0x1000764c, 0xb3 },887	{ 0x1000764d, 0xf7 },888	{ 0x1000764e, 0xd7 },889	{ 0x1000764f, 0x00 },890	{ 0x10007650, 0x63 },891	{ 0x10007651, 0x80 },892	{ 0x10007652, 0x07 },893	{ 0x10007653, 0x0a },894	{ 0x10007654, 0x83 },895	{ 0x10007655, 0x47 },896	{ 0x10007656, 0x07 },897	{ 0x10007657, 0x56 },898	{ 0x10007658, 0x93 },899	{ 0x10007659, 0xf7 },900	{ 0x1000765a, 0x87 },901	{ 0x1000765b, 0x01 },902	{ 0x1000765c, 0x63 },903	{ 0x1000765d, 0x8a },904	{ 0x1000765e, 0x07 },905	{ 0x1000765f, 0x08 },906	{ 0x10007660, 0x83 },907	{ 0x10007661, 0x47 },908	{ 0x10007662, 0x17 },909	{ 0x10007663, 0x08 },910	{ 0x10007664, 0x93 },911	{ 0x10007665, 0xf7 },912	{ 0x10007666, 0x47 },913	{ 0x10007667, 0x00 },914	{ 0x10007668, 0x63 },915	{ 0x10007669, 0x84 },916	{ 0x1000766a, 0x07 },917	{ 0x1000766b, 0x08 },918	{ 0x1000766c, 0x13 },919	{ 0x1000766d, 0x01 },920	{ 0x1000766e, 0x01 },921	{ 0x1000766f, 0xff },922	{ 0x10007670, 0x23 },923	{ 0x10007671, 0x26 },924	{ 0x10007672, 0x11 },925	{ 0x10007673, 0x00 },926	{ 0x10007674, 0xb7 },927	{ 0x10007675, 0xc7 },928	{ 0x10007676, 0xc2 },929	{ 0x10007677, 0x3f },930	{ 0x10007678, 0x03 },931	{ 0x10007679, 0xa7 },932	{ 0x1000767a, 0x07 },933	{ 0x1000767b, 0xfc },934	{ 0x1000767c, 0x63 },935	{ 0x1000767d, 0x10 },936	{ 0x1000767e, 0x05 },937	{ 0x1000767f, 0x06 },938	{ 0x10007680, 0x13 },939	{ 0x10007681, 0x67 },940	{ 0x10007682, 0x07 },941	{ 0x10007683, 0x20 },942	{ 0x10007684, 0x23 },943	{ 0x10007685, 0xa0 },944	{ 0x10007686, 0xe7 },945	{ 0x10007687, 0xfc },946	{ 0x10007688, 0x03 },947	{ 0x10007689, 0xa7 },948	{ 0x1000768a, 0x07 },949	{ 0x1000768b, 0xfc },950	{ 0x1000768c, 0x13 },951	{ 0x1000768d, 0x67 },952	{ 0x1000768e, 0x07 },953	{ 0x1000768f, 0x40 },954	{ 0x10007690, 0x23 },955	{ 0x10007691, 0xa0 },956	{ 0x10007692, 0xe7 },957	{ 0x10007693, 0xfc },958	{ 0x10007694, 0x37 },959	{ 0x10007695, 0xc7 },960	{ 0x10007696, 0xc2 },961	{ 0x10007697, 0x3f },962	{ 0x10007698, 0x83 },963	{ 0x10007699, 0x27 },964	{ 0x1000769a, 0x07 },965	{ 0x1000769b, 0xfc },966	{ 0x1000769c, 0x13 },967	{ 0x1000769d, 0x75 },968	{ 0x1000769e, 0x15 },969	{ 0x1000769f, 0x00 },970	{ 0x100076a0, 0x13 },971	{ 0x100076a1, 0x15 },972	{ 0x100076a2, 0x85 },973	{ 0x100076a3, 0x00 },974	{ 0x100076a4, 0x93 },975	{ 0x100076a5, 0xf7 },976	{ 0x100076a6, 0xf7 },977	{ 0x100076a7, 0xef },978	{ 0x100076a8, 0x33 },979	{ 0x100076a9, 0xe5 },980	{ 0x100076aa, 0xa7 },981	{ 0x100076ab, 0x00 },982	{ 0x100076ac, 0x23 },983	{ 0x100076ad, 0x20 },984	{ 0x100076ae, 0xa7 },985	{ 0x100076af, 0xfc },986	{ 0x100076b0, 0x93 },987	{ 0x100076b1, 0x05 },988	{ 0x100076b2, 0x00 },989	{ 0x100076b3, 0x00 },990	{ 0x100076b4, 0x13 },991	{ 0x100076b5, 0x05 },992	{ 0x100076b6, 0xa0 },993	{ 0x100076b7, 0x00 },994	{ 0x100076b8, 0xef },995	{ 0x100076b9, 0xe0 },996	{ 0x100076ba, 0xcf },997	{ 0x100076bb, 0xb6 },998	{ 0x100076bc, 0x37 },999	{ 0x100076bd, 0xf7 },1000	{ 0x100076be, 0x00 },1001	{ 0x100076bf, 0x00 },1002	{ 0x100076c0, 0x83 },1003	{ 0x100076c1, 0x47 },1004	{ 0x100076c2, 0x57 },1005	{ 0x100076c3, 0x01 },1006	{ 0x100076c4, 0x93 },1007	{ 0x100076c5, 0xf7 },1008	{ 0x100076c6, 0xf7 },1009	{ 0x100076c7, 0x0f },1010	{ 0x100076c8, 0x93 },1011	{ 0x100076c9, 0xe7 },1012	{ 0x100076ca, 0x47 },1013	{ 0x100076cb, 0x00 },1014	{ 0x100076cc, 0xa3 },1015	{ 0x100076cd, 0x0a },1016	{ 0x100076ce, 0xf7 },1017	{ 0x100076cf, 0x00 },1018	{ 0x100076d0, 0x83 },1019	{ 0x100076d1, 0x20 },1020	{ 0x100076d2, 0xc1 },1021	{ 0x100076d3, 0x00 },1022	{ 0x100076d4, 0x13 },1023	{ 0x100076d5, 0x01 },1024	{ 0x100076d6, 0x01 },1025	{ 0x100076d7, 0x01 },1026	{ 0x100076d8, 0x67 },1027	{ 0x100076d9, 0x80 },1028	{ 0x100076da, 0x00 },1029	{ 0x100076db, 0x00 },1030	{ 0x100076dc, 0x13 },1031	{ 0x100076dd, 0x77 },1032	{ 0x100076de, 0xf7 },1033	{ 0x100076df, 0xdf },1034	{ 0x100076e0, 0x23 },1035	{ 0x100076e1, 0xa0 },1036	{ 0x100076e2, 0xe7 },1037	{ 0x100076e3, 0xfc },1038	{ 0x100076e4, 0x03 },1039	{ 0x100076e5, 0xa7 },1040	{ 0x100076e6, 0x07 },1041	{ 0x100076e7, 0xfc },1042	{ 0x100076e8, 0x13 },1043	{ 0x100076e9, 0x77 },1044	{ 0x100076ea, 0xf7 },1045	{ 0x100076eb, 0xbf },1046	{ 0x100076ec, 0x6f },1047	{ 0x100076ed, 0xf0 },1048	{ 0x100076ee, 0x5f },1049	{ 0x100076ef, 0xfa },1050	{ 0x100076f0, 0x67 },1051	{ 0x100076f1, 0x80 },1052	{ 0x100076f2, 0x00 },1053	{ 0x100076f3, 0x00 },1054	{ 0x100076f4, 0xb7 },1055	{ 0x100076f5, 0xc7 },1056	{ 0x100076f6, 0x00 },1057	{ 0x100076f7, 0x00 },1058	{ 0x100076f8, 0x03 },1059	{ 0x100076f9, 0xc7 },1060	{ 0x100076fa, 0x87 },1061	{ 0x100076fb, 0x59 },1062	{ 0x100076fc, 0x13 },1063	{ 0x100076fd, 0x77 },1064	{ 0x100076fe, 0xf7 },1065	{ 0x100076ff, 0x0f },1066	{ 0x10007700, 0x13 },1067	{ 0x10007701, 0x67 },1068	{ 0x10007702, 0x17 },1069	{ 0x10007703, 0x00 },1070	{ 0x10007704, 0x23 },1071	{ 0x10007705, 0x8c },1072	{ 0x10007706, 0xe7 },1073	{ 0x10007707, 0x58 },1074	{ 0x10007708, 0x03 },1075	{ 0x10007709, 0xc7 },1076	{ 0x1000770a, 0x77 },1077	{ 0x1000770b, 0x04 },1078	{ 0x1000770c, 0x13 },1079	{ 0x1000770d, 0x17 },1080	{ 0x1000770e, 0x87 },1081	{ 0x1000770f, 0x01 },1082	{ 0x10007710, 0x13 },1083	{ 0x10007711, 0x57 },1084	{ 0x10007712, 0x87 },1085	{ 0x10007713, 0x41 },1086	{ 0x10007714, 0x63 },1087	{ 0x10007715, 0x58 },1088	{ 0x10007716, 0x07 },1089	{ 0x10007717, 0x12 },1090	{ 0x10007718, 0x37 },1091	{ 0x10007719, 0xd7 },1092	{ 0x1000771a, 0x00 },1093	{ 0x1000771b, 0x00 },1094	{ 0x1000771c, 0x83 },1095	{ 0x1000771d, 0x26 },1096	{ 0x1000771e, 0x87 },1097	{ 0x1000771f, 0x53 },1098	{ 0x10007720, 0x37 },1099	{ 0x10007721, 0x06 },1100	{ 0x10007722, 0x00 },1101	{ 0x10007723, 0x40 },1102	{ 0x10007724, 0x93 },1103	{ 0x10007725, 0x05 },1104	{ 0x10007726, 0x80 },1105	{ 0x10007727, 0x01 },1106	{ 0x10007728, 0xb3 },1107	{ 0x10007729, 0xe6 },1108	{ 0x1000772a, 0xc6 },1109	{ 0x1000772b, 0x00 },1110	{ 0x1000772c, 0x23 },1111	{ 0x1000772d, 0x2c },1112	{ 0x1000772e, 0xd7 },1113	{ 0x1000772f, 0x52 },1114	{ 0x10007730, 0x83 },1115	{ 0x10007731, 0xc6 },1116	{ 0x10007732, 0x07 },1117	{ 0x10007733, 0x56 },1118	{ 0x10007734, 0x93 },1119	{ 0x10007735, 0xf6 },1120	{ 0x10007736, 0xf6 },1121	{ 0x10007737, 0x0f },1122	{ 0x10007738, 0x63 },1123	{ 0x10007739, 0x9c },1124	{ 0x1000773a, 0xb6 },1125	{ 0x1000773b, 0x0e },1126	{ 0x1000773c, 0x83 },1127	{ 0x1000773d, 0x27 },1128	{ 0x1000773e, 0x87 },1129	{ 0x1000773f, 0x53 },1130	{ 0x10007740, 0xb3 },1131	{ 0x10007741, 0xf7 },1132	{ 0x10007742, 0xc7 },1133	{ 0x10007743, 0x00 },1134	{ 0x10007744, 0x63 },1135	{ 0x10007745, 0x80 },1136	{ 0x10007746, 0x07 },1137	{ 0x10007747, 0x10 },1138	{ 0x10007748, 0x13 },1139	{ 0x10007749, 0x01 },1140	{ 0x1000774a, 0x01 },1141	{ 0x1000774b, 0xff },1142	{ 0x1000774c, 0x23 },1143	{ 0x1000774d, 0x24 },1144	{ 0x1000774e, 0x81 },1145	{ 0x1000774f, 0x00 },1146	{ 0x10007750, 0x83 },1147	{ 0x10007751, 0xa7 },1148	{ 0x10007752, 0x41 },1149	{ 0x10007753, 0x58 },1150	{ 0x10007754, 0x23 },1151	{ 0x10007755, 0x26 },1152	{ 0x10007756, 0x11 },1153	{ 0x10007757, 0x00 },1154	{ 0x10007758, 0x63 },1155	{ 0x10007759, 0x94 },1156	{ 0x1000775a, 0x07 },1157	{ 0x1000775b, 0x0c },1158	{ 0x1000775c, 0x83 },1159	{ 0x1000775d, 0x27 },1160	{ 0x1000775e, 0x07 },1161	{ 0x1000775f, 0x53 },1162	{ 0x10007760, 0x03 },1163	{ 0x10007761, 0xc6 },1164	{ 0x10007762, 0xb1 },1165	{ 0x10007763, 0x42 },1166	{ 0x10007764, 0x93 },1167	{ 0x10007765, 0xd7 },1168	{ 0x10007766, 0xe7 },1169	{ 0x10007767, 0x01 },1170	{ 0x10007768, 0x93 },1171	{ 0x10007769, 0xf7 },1172	{ 0x1000776a, 0x17 },1173	{ 0x1000776b, 0x00 },1174	{ 0x1000776c, 0x93 },1175	{ 0x1000776d, 0x06 },1176	{ 0x1000776e, 0x10 },1177	{ 0x1000776f, 0x00 },1178	{ 0x10007770, 0x63 },1179	{ 0x10007771, 0x14 },1180	{ 0x10007772, 0x06 },1181	{ 0x10007773, 0x00 },1182	{ 0x10007774, 0xb3 },1183	{ 0x10007775, 0x86 },1184	{ 0x10007776, 0xf6 },1185	{ 0x10007777, 0x40 },1186	{ 0x10007778, 0xa3 },1187	{ 0x10007779, 0x85 },1188	{ 0x1000777a, 0xd1 },1189	{ 0x1000777b, 0x42 },1190	{ 0x1000777c, 0x03 },1191	{ 0x1000777d, 0xc6 },1192	{ 0x1000777e, 0xa1 },1193	{ 0x1000777f, 0x42 },1194	{ 0x10007780, 0x93 },1195	{ 0x10007781, 0x06 },1196	{ 0x10007782, 0x10 },1197	{ 0x10007783, 0x00 },1198	{ 0x10007784, 0x63 },1199	{ 0x10007785, 0x14 },1200	{ 0x10007786, 0x06 },1201	{ 0x10007787, 0x00 },1202	{ 0x10007788, 0xb3 },1203	{ 0x10007789, 0x86 },1204	{ 0x1000778a, 0xf6 },1205	{ 0x1000778b, 0x40 },1206	{ 0x1000778c, 0x23 },1207	{ 0x1000778d, 0x85 },1208	{ 0x1000778e, 0xd1 },1209	{ 0x1000778f, 0x42 },1210	{ 0x10007790, 0x03 },1211	{ 0x10007791, 0xc6 },1212	{ 0x10007792, 0x91 },1213	{ 0x10007793, 0x42 },1214	{ 0x10007794, 0x93 },1215	{ 0x10007795, 0x06 },1216	{ 0x10007796, 0x10 },1217	{ 0x10007797, 0x00 },1218	{ 0x10007798, 0x63 },1219	{ 0x10007799, 0x14 },1220	{ 0x1000779a, 0x06 },1221	{ 0x1000779b, 0x00 },1222	{ 0x1000779c, 0xb3 },1223	{ 0x1000779d, 0x86 },1224	{ 0x1000779e, 0xf6 },1225	{ 0x1000779f, 0x40 },1226	{ 0x100077a0, 0xa3 },1227	{ 0x100077a1, 0x84 },1228	{ 0x100077a2, 0xd1 },1229	{ 0x100077a3, 0x42 },1230	{ 0x100077a4, 0x03 },1231	{ 0x100077a5, 0xc6 },1232	{ 0x100077a6, 0x81 },1233	{ 0x100077a7, 0x42 },1234	{ 0x100077a8, 0x93 },1235	{ 0x100077a9, 0x06 },1236	{ 0x100077aa, 0x10 },1237	{ 0x100077ab, 0x00 },1238	{ 0x100077ac, 0x63 },1239	{ 0x100077ad, 0x14 },1240	{ 0x100077ae, 0x06 },1241	{ 0x100077af, 0x00 },1242	{ 0x100077b0, 0xb3 },1243	{ 0x100077b1, 0x86 },1244	{ 0x100077b2, 0xf6 },1245	{ 0x100077b3, 0x40 },1246	{ 0x100077b4, 0x23 },1247	{ 0x100077b5, 0x84 },1248	{ 0x100077b6, 0xd1 },1249	{ 0x100077b7, 0x42 },1250	{ 0x100077b8, 0xb7 },1251	{ 0x100077b9, 0xd7 },1252	{ 0x100077ba, 0x00 },1253	{ 0x100077bb, 0x00 },1254	{ 0x100077bc, 0x83 },1255	{ 0x100077bd, 0xa7 },1256	{ 0x100077be, 0x07 },1257	{ 0x100077bf, 0x53 },1258	{ 0x100077c0, 0x37 },1259	{ 0x100077c1, 0x07 },1260	{ 0x100077c2, 0x00 },1261	{ 0x100077c3, 0x40 },1262	{ 0x100077c4, 0xb3 },1263	{ 0x100077c5, 0xf7 },1264	{ 0x100077c6, 0xe7 },1265	{ 0x100077c7, 0x00 },1266	{ 0x100077c8, 0x63 },1267	{ 0x100077c9, 0x8c },1268	{ 0x100077ca, 0x07 },1269	{ 0x100077cb, 0x04 },1270	{ 0x100077cc, 0xb7 },1271	{ 0x100077cd, 0x47 },1272	{ 0x100077ce, 0x0f },1273	{ 0x100077cf, 0x00 },1274	{ 0x100077d0, 0x93 },1275	{ 0x100077d1, 0x87 },1276	{ 0x100077d2, 0x17 },1277	{ 0x100077d3, 0x24 },1278	{ 0x100077d4, 0xb7 },1279	{ 0x100077d5, 0xf6 },1280	{ 0x100077d6, 0x00 },1281	{ 0x100077d7, 0x00 },1282	{ 0x100077d8, 0x03 },1283	{ 0x100077d9, 0xc7 },1284	{ 0x100077da, 0xf6 },1285	{ 0x100077db, 0x83 },1286	{ 0x100077dc, 0x13 },1287	{ 0x100077dd, 0x77 },1288	{ 0x100077de, 0x07 },1289	{ 0x100077df, 0x04 },1290	{ 0x100077e0, 0x63 },1291	{ 0x100077e1, 0x16 },1292	{ 0x100077e2, 0x07 },1293	{ 0x100077e3, 0x00 },1294	{ 0x100077e4, 0x93 },1295	{ 0x100077e5, 0x87 },1296	{ 0x100077e6, 0xf7 },1297	{ 0x100077e7, 0xff },1298	{ 0x100077e8, 0xe3 },1299	{ 0x100077e9, 0x98 },1300	{ 0x100077ea, 0x07 },1301	{ 0x100077eb, 0xfe },1302	{ 0x100077ec, 0x13 },1303	{ 0x100077ed, 0x05 },1304	{ 0x100077ee, 0x80 },1305	{ 0x100077ef, 0x3e },1306	{ 0x100077f0, 0x93 },1307	{ 0x100077f1, 0x05 },1308	{ 0x100077f2, 0x00 },1309	{ 0x100077f3, 0x00 },1310	{ 0x100077f4, 0xef },1311	{ 0x100077f5, 0xe0 },1312	{ 0x100077f6, 0x0f },1313	{ 0x100077f7, 0xa3 },1314	{ 0x100077f8, 0x37 },1315	{ 0x100077f9, 0xf7 },1316	{ 0x100077fa, 0x00 },1317	{ 0x100077fb, 0x00 },1318	{ 0x100077fc, 0x83 },1319	{ 0x100077fd, 0x47 },1320	{ 0x100077fe, 0xb7 },1321	{ 0x100077ff, 0x80 },1322	{ 0x10007800, 0x93 },1323	{ 0x10007801, 0xe7 },1324	{ 0x10007802, 0x07 },1325	{ 0x10007803, 0xf8 },1326	{ 0x10007804, 0x93 },1327	{ 0x10007805, 0xf7 },1328	{ 0x10007806, 0xf7 },1329	{ 0x10007807, 0x0f },1330	{ 0x10007808, 0xa3 },1331	{ 0x10007809, 0x05 },1332	{ 0x1000780a, 0xf7 },1333	{ 0x1000780b, 0x80 },1334	{ 0x1000780c, 0xb7 },1335	{ 0x1000780d, 0xd7 },1336	{ 0x1000780e, 0x00 },1337	{ 0x1000780f, 0x00 },1338	{ 0x10007810, 0x37 },1339	{ 0x10007811, 0x07 },1340	{ 0x10007812, 0x00 },1341	{ 0x10007813, 0x40 },1342	{ 0x10007814, 0x23 },1343	{ 0x10007815, 0xa8 },1344	{ 0x10007816, 0xe7 },1345	{ 0x10007817, 0x52 },1346	{ 0x10007818, 0x93 },1347	{ 0x10007819, 0x07 },1348	{ 0x1000781a, 0x10 },1349	{ 0x1000781b, 0x00 },1350	{ 0x1000781c, 0x23 },1351	{ 0x1000781d, 0xa2 },1352	{ 0x1000781e, 0xf1 },1353	{ 0x1000781f, 0x58 },1354	{ 0x10007820, 0x83 },1355	{ 0x10007821, 0x20 },1356	{ 0x10007822, 0xc1 },1357	{ 0x10007823, 0x00 },1358	{ 0x10007824, 0x03 },1359	{ 0x10007825, 0x24 },1360	{ 0x10007826, 0x81 },1361	{ 0x10007827, 0x00 },1362	{ 0x10007828, 0x13 },1363	{ 0x10007829, 0x01 },1364	{ 0x1000782a, 0x01 },1365	{ 0x1000782b, 0x01 },1366	{ 0x1000782c, 0x67 },1367	{ 0x1000782d, 0x80 },1368	{ 0x1000782e, 0x00 },1369	{ 0x1000782f, 0x00 },1370	{ 0x10007830, 0x83 },1371	{ 0x10007831, 0xc7 },1372	{ 0x10007832, 0x07 },1373	{ 0x10007833, 0x56 },1374	{ 0x10007834, 0x93 },1375	{ 0x10007835, 0xf7 },1376	{ 0x10007836, 0xf7 },1377	{ 0x10007837, 0x0f },1378	{ 0x10007838, 0x63 },1379	{ 0x10007839, 0x96 },1380	{ 0x1000783a, 0x07 },1381	{ 0x1000783b, 0x00 },1382	{ 0x1000783c, 0x23 },1383	{ 0x1000783d, 0xa2 },1384	{ 0x1000783e, 0x01 },1385	{ 0x1000783f, 0x58 },1386	{ 0x10007840, 0x67 },1387	{ 0x10007841, 0x80 },1388	{ 0x10007842, 0x00 },1389	{ 0x10007843, 0x00 },1390	{ 0x10007844, 0x67 },1391	{ 0x10007845, 0x80 },1392	{ 0x10007846, 0x00 },1393	{ 0x10007847, 0x00 },1394	{ 0x10007848, 0xb7 },1395	{ 0x10007849, 0xc7 },1396	{ 0x1000784a, 0x00 },1397	{ 0x1000784b, 0x00 },1398	{ 0x1000784c, 0x83 },1399	{ 0x1000784d, 0xc7 },1400	{ 0x1000784e, 0x07 },1401	{ 0x1000784f, 0x56 },1402	{ 0x10007850, 0x13 },1403	{ 0x10007851, 0x07 },1404	{ 0x10007852, 0x80 },1405	{ 0x10007853, 0x01 },1406	{ 0x10007854, 0x93 },1407	{ 0x10007855, 0xf7 },1408	{ 0x10007856, 0xf7 },1409	{ 0x10007857, 0x0f },1410	{ 0x10007858, 0x63 },1411	{ 0x10007859, 0x98 },1412	{ 0x1000785a, 0xe7 },1413	{ 0x1000785b, 0x00 },1414	{ 0x1000785c, 0x13 },1415	{ 0x1000785d, 0x05 },1416	{ 0x1000785e, 0x00 },1417	{ 0x1000785f, 0x7d },1418	{ 0x10007860, 0x93 },1419	{ 0x10007861, 0x05 },1420	{ 0x10007862, 0x00 },1421	{ 0x10007863, 0x00 },1422	{ 0x10007864, 0x6f },1423	{ 0x10007865, 0xe0 },1424	{ 0x10007866, 0x0f },1425	{ 0x10007867, 0x9c },1426	{ 0x10007868, 0x67 },1427	{ 0x10007869, 0x80 },1428	{ 0x1000786a, 0x00 },1429	{ 0x1000786b, 0x00 },1430	{ 0x1000786c, 0x13 },1431	{ 0x1000786d, 0x01 },1432	{ 0x1000786e, 0x01 },1433	{ 0x1000786f, 0xff },1434	{ 0x10007870, 0x23 },1435	{ 0x10007871, 0x26 },1436	{ 0x10007872, 0x11 },1437	{ 0x10007873, 0x00 },1438	{ 0x10007874, 0x23 },1439	{ 0x10007875, 0x24 },1440	{ 0x10007876, 0x81 },1441	{ 0x10007877, 0x00 },1442	{ 0x10007878, 0xef },1443	{ 0x10007879, 0xd0 },1444	{ 0x1000787a, 0x4f },1445	{ 0x1000787b, 0x91 },1446	{ 0x1000787c, 0x83 },1447	{ 0x1000787d, 0xc7 },1448	{ 0x1000787e, 0x81 },1449	{ 0x1000787f, 0x41 },1450	{ 0x10007880, 0x63 },1451	{ 0x10007881, 0x84 },1452	{ 0x10007882, 0x07 },1453	{ 0x10007883, 0x08 },1454	{ 0x10007884, 0xb7 },1455	{ 0x10007885, 0xd7 },1456	{ 0x10007886, 0x00 },1457	{ 0x10007887, 0x00 },1458	{ 0x10007888, 0x83 },1459	{ 0x10007889, 0xc7 },1460	{ 0x1000788a, 0x07 },1461	{ 0x1000788b, 0x47 },1462	{ 0x1000788c, 0x93 },1463	{ 0x1000788d, 0xf7 },1464	{ 0x1000788e, 0x07 },1465	{ 0x1000788f, 0x02 },1466	{ 0x10007890, 0x63 },1467	{ 0x10007891, 0x8a },1468	{ 0x10007892, 0x07 },1469	{ 0x10007893, 0x04 },1470	{ 0x10007894, 0x83 },1471	{ 0x10007895, 0xc7 },1472	{ 0x10007896, 0x11 },1473	{ 0x10007897, 0x44 },1474	{ 0x10007898, 0x93 },1475	{ 0x10007899, 0xf7 },1476	{ 0x1000789a, 0xd7 },1477	{ 0x1000789b, 0x0f },1478	{ 0x1000789c, 0x63 },1479	{ 0x1000789d, 0x90 },1480	{ 0x1000789e, 0x07 },1481	{ 0x1000789f, 0x02 },1482	{ 0x100078a0, 0x03 },1483	{ 0x100078a1, 0xc7 },1484	{ 0x100078a2, 0xd1 },1485	{ 0x100078a3, 0x58 },1486	{ 0x100078a4, 0xb7 },1487	{ 0x100078a5, 0x07 },1488	{ 0x100078a6, 0x00 },1489	{ 0x100078a7, 0x11 },1490	{ 0x100078a8, 0x23 },1491	{ 0x100078a9, 0x88 },1492	{ 0x100078aa, 0xe7 },1493	{ 0x100078ab, 0x00 },1494	{ 0x100078ac, 0x23 },1495	{ 0x100078ad, 0x88 },1496	{ 0x100078ae, 0xe7 },1497	{ 0x100078af, 0x20 },1498	{ 0x100078b0, 0x03 },1499	{ 0x100078b1, 0xc7 },1500	{ 0x100078b2, 0xc1 },1501	{ 0x100078b3, 0x58 },1502	{ 0x100078b4, 0x23 },1503	{ 0x100078b5, 0x8c },1504	{ 0x100078b6, 0xe7 },1505	{ 0x100078b7, 0x00 },1506	{ 0x100078b8, 0x6f },1507	{ 0x100078b9, 0x00 },1508	{ 0x100078ba, 0x80 },1509	{ 0x100078bb, 0x04 },1510	{ 0x100078bc, 0xb7 },1511	{ 0x100078bd, 0x07 },1512	{ 0x100078be, 0x00 },1513	{ 0x100078bf, 0x11 },1514	{ 0x100078c0, 0x23 },1515	{ 0x100078c1, 0x88 },1516	{ 0x100078c2, 0x07 },1517	{ 0x100078c3, 0x00 },1518	{ 0x100078c4, 0x23 },1519	{ 0x100078c5, 0x88 },1520	{ 0x100078c6, 0x07 },1521	{ 0x100078c7, 0x20 },1522	{ 0x100078c8, 0x23 },1523	{ 0x100078c9, 0x8c },1524	{ 0x100078ca, 0x07 },1525	{ 0x100078cb, 0x00 },1526	{ 0x100078cc, 0x23 },1527	{ 0x100078cd, 0x8c },1528	{ 0x100078ce, 0x07 },1529	{ 0x100078cf, 0x20 },1530	{ 0x100078d0, 0xef },1531	{ 0x100078d1, 0xb0 },1532	{ 0x100078d2, 0xcf },1533	{ 0x100078d3, 0xc4 },1534	{ 0x100078d4, 0x03 },1535	{ 0x100078d5, 0x24 },1536	{ 0x100078d6, 0x81 },1537	{ 0x100078d7, 0x00 },1538	{ 0x100078d8, 0x83 },1539	{ 0x100078d9, 0x20 },1540	{ 0x100078da, 0xc1 },1541	{ 0x100078db, 0x00 },1542	{ 0x100078dc, 0x13 },1543	{ 0x100078dd, 0x01 },1544	{ 0x100078de, 0x01 },1545	{ 0x100078df, 0x01 },1546	{ 0x100078e0, 0x6f },1547	{ 0x100078e1, 0xb0 },1548	{ 0x100078e2, 0xcf },1549	{ 0x100078e3, 0xcd },1550	{ 0x100078e4, 0x03 },1551	{ 0x100078e5, 0xc7 },1552	{ 0x100078e6, 0xd1 },1553	{ 0x100078e7, 0x58 },1554	{ 0x100078e8, 0xb7 },1555	{ 0x100078e9, 0x07 },1556	{ 0x100078ea, 0x00 },1557	{ 0x100078eb, 0x11 },1558	{ 0x100078ec, 0x23 },1559	{ 0x100078ed, 0x88 },1560	{ 0x100078ee, 0xe7 },1561	{ 0x100078ef, 0x00 },1562	{ 0x100078f0, 0x83 },1563	{ 0x100078f1, 0xc6 },1564	{ 0x100078f2, 0xc1 },1565	{ 0x100078f3, 0x58 },1566	{ 0x100078f4, 0x23 },1567	{ 0x100078f5, 0x88 },1568	{ 0x100078f6, 0xd7 },1569	{ 0x100078f7, 0x20 },1570	{ 0x100078f8, 0x23 },1571	{ 0x100078f9, 0x8c },1572	{ 0x100078fa, 0xd7 },1573	{ 0x100078fb, 0x00 },1574	{ 0x100078fc, 0x03 },1575	{ 0x100078fd, 0xc7 },1576	{ 0x100078fe, 0xc1 },1577	{ 0x100078ff, 0x58 },1578	{ 0x10007900, 0x23 },1579	{ 0x10007901, 0x8c },1580	{ 0x10007902, 0xe7 },1581	{ 0x10007903, 0x20 },1582	{ 0x10007904, 0x6f },1583	{ 0x10007905, 0xf0 },1584	{ 0x10007906, 0xdf },1585	{ 0x10007907, 0xfc },1586	{ 0x10007908, 0xb7 },1587	{ 0x10007909, 0x06 },1588	{ 0x1000790a, 0x00 },1589	{ 0x1000790b, 0x11 },1590	{ 0x1000790c, 0x03 },1591	{ 0x1000790d, 0xc7 },1592	{ 0x1000790e, 0x06 },1593	{ 0x1000790f, 0x21 },1594	{ 0x10007910, 0x03 },1595	{ 0x10007911, 0xc6 },1596	{ 0x10007912, 0xd1 },1597	{ 0x10007913, 0x58 },1598	{ 0x10007914, 0x13 },1599	{ 0x10007915, 0x84 },1600	{ 0x10007916, 0x07 },1601	{ 0x10007917, 0x00 },1602	{ 0x10007918, 0x13 },1603	{ 0x10007919, 0x77 },1604	{ 0x1000791a, 0xf7 },1605	{ 0x1000791b, 0x0f },1606	{ 0x1000791c, 0x63 },1607	{ 0x1000791d, 0x1a },1608	{ 0x1000791e, 0xe6 },1609	{ 0x1000791f, 0x00 },1610	{ 0x10007920, 0x83 },1611	{ 0x10007921, 0xc7 },1612	{ 0x10007922, 0x86 },1613	{ 0x10007923, 0x21 },1614	{ 0x10007924, 0x03 },1615	{ 0x10007925, 0xc7 },1616	{ 0x10007926, 0xc1 },1617	{ 0x10007927, 0x58 },1618	{ 0x10007928, 0x93 },1619	{ 0x10007929, 0xf7 },1620	{ 0x1000792a, 0xf7 },1621	{ 0x1000792b, 0x0f },1622	{ 0x1000792c, 0xe3 },1623	{ 0x1000792d, 0x02 },1624	{ 0x1000792e, 0xf7 },1625	{ 0x1000792f, 0xfa },1626	{ 0x10007930, 0xb7 },1627	{ 0x10007931, 0xc7 },1628	{ 0x10007932, 0x00 },1629	{ 0x10007933, 0x00 },1630	{ 0x10007934, 0x83 },1631	{ 0x10007935, 0xc7 },1632	{ 0x10007936, 0x07 },1633	{ 0x10007937, 0x56 },1634	{ 0x10007938, 0x13 },1635	{ 0x10007939, 0x07 },1636	{ 0x1000793a, 0xf0 },1637	{ 0x1000793b, 0x00 },1638	{ 0x1000793c, 0x93 },1639	{ 0x1000793d, 0xf7 },1640	{ 0x1000793e, 0xf7 },1641	{ 0x1000793f, 0x0f },1642	{ 0x10007940, 0xe3 },1643	{ 0x10007941, 0x78 },1644	{ 0x10007942, 0xf7 },1645	{ 0x10007943, 0xf8 },1646	{ 0x10007944, 0xb7 },1647	{ 0x10007945, 0xd7 },1648	{ 0x10007946, 0x00 },1649	{ 0x10007947, 0x00 },1650	{ 0x10007948, 0x83 },1651	{ 0x10007949, 0xc5 },1652	{ 0x1000794a, 0xa7 },1653	{ 0x1000794b, 0x47 },1654	{ 0x1000794c, 0x93 },1655	{ 0x1000794d, 0xf7 },1656	{ 0x1000794e, 0xf5 },1657	{ 0x1000794f, 0x0f },1658	{ 0x10007950, 0x93 },1659	{ 0x10007951, 0x95 },1660	{ 0x10007952, 0x57 },1661	{ 0x10007953, 0x00 },1662	{ 0x10007954, 0xb3 },1663	{ 0x10007955, 0x85 },1664	{ 0x10007956, 0xf5 },1665	{ 0x10007957, 0x40 },1666	{ 0x10007958, 0x93 },1667	{ 0x10007959, 0x95 },1668	{ 0x1000795a, 0x25 },1669	{ 0x1000795b, 0x00 },1670	{ 0x1000795c, 0xb3 },1671	{ 0x1000795d, 0x85 },1672	{ 0x1000795e, 0xf5 },1673	{ 0x1000795f, 0x00 },1674	{ 0x10007960, 0x13 },1675	{ 0x10007961, 0x95 },1676	{ 0x10007962, 0x35 },1677	{ 0x10007963, 0x00 },1678	{ 0x10007964, 0x93 },1679	{ 0x10007965, 0xd5 },1680	{ 0x10007966, 0xf5 },1681	{ 0x10007967, 0x41 },1682	{ 0x10007968, 0xef },1683	{ 0x10007969, 0xe0 },1684	{ 0x1000796a, 0xcf },1685	{ 0x1000796b, 0x8b },1686	{ 0x1000796c, 0x03 },1687	{ 0x1000796d, 0xc7 },1688	{ 0x1000796e, 0xd1 },1689	{ 0x1000796f, 0x58 },1690	{ 0x10007970, 0x6f },1691	{ 0x10007971, 0xf0 },1692	{ 0x10007972, 0x5f },1693	{ 0x10007973, 0xf3 },1694	{ 0x10007974, 0x13 },1695	{ 0x10007975, 0x01 },1696	{ 0x10007976, 0x01 },1697	{ 0x10007977, 0xfe },1698	{ 0x10007978, 0x23 },1699	{ 0x10007979, 0x2c },1700	{ 0x1000797a, 0x81 },1701	{ 0x1000797b, 0x00 },1702	{ 0x1000797c, 0x83 },1703	{ 0x1000797d, 0xc7 },1704	{ 0x1000797e, 0x21 },1705	{ 0x1000797f, 0x41 },1706	{ 0x10007980, 0x23 },1707	{ 0x10007981, 0x2e },1708	{ 0x10007982, 0x11 },1709	{ 0x10007983, 0x00 },1710	{ 0x10007984, 0x23 },1711	{ 0x10007985, 0x2a },1712	{ 0x10007986, 0x91 },1713	{ 0x10007987, 0x00 },1714	{ 0x10007988, 0x23 },1715	{ 0x10007989, 0x28 },1716	{ 0x1000798a, 0x21 },1717	{ 0x1000798b, 0x01 },1718	{ 0x1000798c, 0x23 },1719	{ 0x1000798d, 0x26 },1720	{ 0x1000798e, 0x31 },1721	{ 0x1000798f, 0x01 },1722	{ 0x10007990, 0x13 },1723	{ 0x10007991, 0x07 },1724	{ 0x10007992, 0x10 },1725	{ 0x10007993, 0x00 },1726	{ 0x10007994, 0x63 },1727	{ 0x10007995, 0x92 },1728	{ 0x10007996, 0xe7 },1729	{ 0x10007997, 0x02 },1730	{ 0x10007998, 0xa3 },1731	{ 0x10007999, 0x81 },1732	{ 0x1000799a, 0xf1 },1733	{ 0x1000799b, 0x40 },1734	{ 0x1000799c, 0x83 },1735	{ 0x1000799d, 0x20 },1736	{ 0x1000799e, 0xc1 },1737	{ 0x1000799f, 0x01 },1738	{ 0x100079a0, 0x03 },1739	{ 0x100079a1, 0x24 },1740	{ 0x100079a2, 0x81 },1741	{ 0x100079a3, 0x01 },1742	{ 0x100079a4, 0x83 },1743	{ 0x100079a5, 0x24 },1744	{ 0x100079a6, 0x41 },1745	{ 0x100079a7, 0x01 },1746	{ 0x100079a8, 0x03 },1747	{ 0x100079a9, 0x29 },1748	{ 0x100079aa, 0x01 },1749	{ 0x100079ab, 0x01 },1750	{ 0x100079ac, 0x83 },1751	{ 0x100079ad, 0x29 },1752	{ 0x100079ae, 0xc1 },1753	{ 0x100079af, 0x00 },1754	{ 0x100079b0, 0x13 },1755	{ 0x100079b1, 0x01 },1756	{ 0x100079b2, 0x01 },1757	{ 0x100079b3, 0x02 },1758	{ 0x100079b4, 0x67 },1759	{ 0x100079b5, 0x80 },1760	{ 0x100079b6, 0x00 },1761	{ 0x100079b7, 0x00 },1762	{ 0x100079b8, 0xe3 },1763	{ 0x100079b9, 0x92 },1764	{ 0x100079ba, 0x07 },1765	{ 0x100079bb, 0xfe },1766	{ 0x100079bc, 0x37 },1767	{ 0x100079bd, 0xc9 },1768	{ 0x100079be, 0x00 },1769	{ 0x100079bf, 0x00 },1770	{ 0x100079c0, 0x83 },1771	{ 0x100079c1, 0x47 },1772	{ 0x100079c2, 0x09 },1773	{ 0x100079c3, 0x56 },1774	{ 0x100079c4, 0x13 },1775	{ 0x100079c5, 0x07 },1776	{ 0x100079c6, 0x80 },1777	{ 0x100079c7, 0x01 },1778	{ 0x100079c8, 0x93 },1779	{ 0x100079c9, 0xf7 },1780	{ 0x100079ca, 0xf7 },1781	{ 0x100079cb, 0x0f },1782	{ 0x100079cc, 0xe3 },1783	{ 0x100079cd, 0x78 },1784	{ 0x100079ce, 0xf7 },1785	{ 0x100079cf, 0xfc },1786	{ 0x100079d0, 0x83 },1787	{ 0x100079d1, 0xc7 },1788	{ 0x100079d2, 0x31 },1789	{ 0x100079d3, 0x40 },1790	{ 0x100079d4, 0xe3 },1791	{ 0x100079d5, 0x84 },1792	{ 0x100079d6, 0x07 },1793	{ 0x100079d7, 0xfc },1794	{ 0x100079d8, 0xb7 },1795	{ 0x100079d9, 0xd4 },1796	{ 0x100079da, 0x00 },1797	{ 0x100079db, 0x00 },1798	{ 0x100079dc, 0x03 },1799	{ 0x100079dd, 0xc5 },1800	{ 0x100079de, 0x94 },1801	{ 0x100079df, 0x47 },1802	{ 0x100079e0, 0xb7 },1803	{ 0x100079e1, 0x15 },1804	{ 0x100079e2, 0x00 },1805	{ 0x100079e3, 0x00 },1806	{ 0x100079e4, 0x93 },1807	{ 0x100079e5, 0x85 },1808	{ 0x100079e6, 0x85 },1809	{ 0x100079e7, 0x38 },1810	{ 0x100079e8, 0x13 },1811	{ 0x100079e9, 0x75 },1812	{ 0x100079ea, 0xf5 },1813	{ 0x100079eb, 0x0f },1814	{ 0x100079ec, 0xef },1815	{ 0x100079ed, 0xe0 },1816	{ 0x100079ee, 0x5f },1817	{ 0x100079ef, 0xe0 },1818	{ 0x100079f0, 0x93 },1819	{ 0x100079f1, 0x55 },1820	{ 0x100079f2, 0xf5 },1821	{ 0x100079f3, 0x41 },1822	{ 0x100079f4, 0xef },1823	{ 0x100079f5, 0xe0 },1824	{ 0x100079f6, 0x0f },1825	{ 0x100079f7, 0x83 },1826	{ 0x100079f8, 0xa3 },1827	{ 0x100079f9, 0x81 },1828	{ 0x100079fa, 0x01 },1829	{ 0x100079fb, 0x40 },1830	{ 0x100079fc, 0x83 },1831	{ 0x100079fd, 0x27 },1832	{ 0x100079fe, 0xc9 },1833	{ 0x100079ff, 0x5f },1834	{ 0x10007a00, 0x37 },1835	{ 0x10007a01, 0x07 },1836	{ 0x10007a02, 0x00 },1837	{ 0x10007a03, 0x02 },1838	{ 0x10007a04, 0xb3 },1839	{ 0x10007a05, 0xf7 },1840	{ 0x10007a06, 0xe7 },1841	{ 0x10007a07, 0x00 },1842	{ 0x10007a08, 0xe3 },1843	{ 0x10007a09, 0x8a },1844	{ 0x10007a0a, 0x07 },1845	{ 0x10007a0b, 0xf8 },1846	{ 0x10007a0c, 0x03 },1847	{ 0x10007a0d, 0xc7 },1848	{ 0x10007a0e, 0x04 },1849	{ 0x10007a0f, 0x90 },1850	{ 0x10007a10, 0x93 },1851	{ 0x10007a11, 0x07 },1852	{ 0x10007a12, 0x10 },1853	{ 0x10007a13, 0x00 },1854	{ 0x10007a14, 0x13 },1855	{ 0x10007a15, 0x77 },1856	{ 0x10007a16, 0x17 },1857	{ 0x10007a17, 0x00 },1858	{ 0x10007a18, 0x63 },1859	{ 0x10007a19, 0x1c },1860	{ 0x10007a1a, 0x07 },1861	{ 0x10007a1b, 0x00 },1862	{ 0x10007a1c, 0x83 },1863	{ 0x10007a1d, 0xc7 },1864	{ 0x10007a1e, 0x34 },1865	{ 0x10007a1f, 0x54 },1866	{ 0x10007a20, 0x93 },1867	{ 0x10007a21, 0xf7 },1868	{ 0x10007a22, 0xf7 },1869	{ 0x10007a23, 0x0f },1870	{ 0x10007a24, 0x93 },1871	{ 0x10007a25, 0xd7 },1872	{ 0x10007a26, 0x17 },1873	{ 0x10007a27, 0x00 },1874	{ 0x10007a28, 0x93 },1875	{ 0x10007a29, 0xc7 },1876	{ 0x10007a2a, 0x17 },1877	{ 0x10007a2b, 0x00 },1878	{ 0x10007a2c, 0x93 },1879	{ 0x10007a2d, 0xf7 },1880	{ 0x10007a2e, 0x17 },1881	{ 0x10007a2f, 0x00 },1882	{ 0x10007a30, 0xa3 },1883	{ 0x10007a31, 0x85 },1884	{ 0x10007a32, 0xf1 },1885	{ 0x10007a33, 0x42 },1886	{ 0x10007a34, 0x37 },1887	{ 0x10007a35, 0xd6 },1888	{ 0x10007a36, 0x00 },1889	{ 0x10007a37, 0x00 },1890	{ 0x10007a38, 0x03 },1891	{ 0x10007a39, 0x47 },1892	{ 0x10007a3a, 0x06 },1893	{ 0x10007a3b, 0x90 },1894	{ 0x10007a3c, 0x93 },1895	{ 0x10007a3d, 0x06 },1896	{ 0x10007a3e, 0x10 },1897	{ 0x10007a3f, 0x00 },1898	{ 0x10007a40, 0x13 },1899	{ 0x10007a41, 0x77 },1900	{ 0x10007a42, 0x27 },1901	{ 0x10007a43, 0x00 },1902	{ 0x10007a44, 0x63 },1903	{ 0x10007a45, 0x18 },1904	{ 0x10007a46, 0x07 },1905	{ 0x10007a47, 0x00 },1906	{ 0x10007a48, 0x03 },1907	{ 0x10007a49, 0x47 },1908	{ 0x10007a4a, 0x36 },1909	{ 0x10007a4b, 0x54 },1910	{ 0x10007a4c, 0x13 },1911	{ 0x10007a4d, 0x77 },1912	{ 0x10007a4e, 0x17 },1913	{ 0x10007a4f, 0x00 },1914	{ 0x10007a50, 0xb3 },1915	{ 0x10007a51, 0x86 },1916	{ 0x10007a52, 0xe6 },1917	{ 0x10007a53, 0x40 },1918	{ 0x10007a54, 0x23 },1919	{ 0x10007a55, 0x85 },1920	{ 0x10007a56, 0xd1 },1921	{ 0x10007a57, 0x42 },1922	{ 0x10007a58, 0xb7 },1923	{ 0x10007a59, 0xd5 },1924	{ 0x10007a5a, 0x00 },1925	{ 0x10007a5b, 0x00 },1926	{ 0x10007a5c, 0x03 },1927	{ 0x10007a5d, 0xc6 },1928	{ 0x10007a5e, 0x05 },1929	{ 0x10007a5f, 0x92 },1930	{ 0x10007a60, 0x13 },1931	{ 0x10007a61, 0x07 },1932	{ 0x10007a62, 0x10 },1933	{ 0x10007a63, 0x00 },1934	{ 0x10007a64, 0x13 },1935	{ 0x10007a65, 0x76 },1936	{ 0x10007a66, 0x16 },1937	{ 0x10007a67, 0x00 },1938	{ 0x10007a68, 0x63 },1939	{ 0x10007a69, 0x1c },1940	{ 0x10007a6a, 0x06 },1941	{ 0x10007a6b, 0x00 },1942	{ 0x10007a6c, 0x03 },1943	{ 0x10007a6d, 0xc7 },1944	{ 0x10007a6e, 0x35 },1945	{ 0x10007a6f, 0x54 },1946	{ 0x10007a70, 0x13 },1947	{ 0x10007a71, 0x77 },1948	{ 0x10007a72, 0xf7 },1949	{ 0x10007a73, 0x0f },1950	{ 0x10007a74, 0x13 },1951	{ 0x10007a75, 0x57 },1952	{ 0x10007a76, 0x37 },1953	{ 0x10007a77, 0x00 },1954	{ 0x10007a78, 0x13 },1955	{ 0x10007a79, 0x47 },1956	{ 0x10007a7a, 0x17 },1957	{ 0x10007a7b, 0x00 },1958	{ 0x10007a7c, 0x13 },1959	{ 0x10007a7d, 0x77 },1960	{ 0x10007a7e, 0x17 },1961	{ 0x10007a7f, 0x00 },1962	{ 0x10007a80, 0xa3 },1963	{ 0x10007a81, 0x84 },1964	{ 0x10007a82, 0xe1 },1965	{ 0x10007a83, 0x42 },1966	{ 0x10007a84, 0xb7 },1967	{ 0x10007a85, 0xd5 },1968	{ 0x10007a86, 0x00 },1969	{ 0x10007a87, 0x00 },1970	{ 0x10007a88, 0x03 },1971	{ 0x10007a89, 0xc6 },1972	{ 0x10007a8a, 0x05 },1973	{ 0x10007a8b, 0x92 },1974	{ 0x10007a8c, 0x13 },1975	{ 0x10007a8d, 0x07 },1976	{ 0x10007a8e, 0x10 },1977	{ 0x10007a8f, 0x00 },1978	{ 0x10007a90, 0x13 },1979	{ 0x10007a91, 0x76 },1980	{ 0x10007a92, 0x26 },1981	{ 0x10007a93, 0x00 },1982	{ 0x10007a94, 0x63 },1983	{ 0x10007a95, 0x1c },1984	{ 0x10007a96, 0x06 },1985	{ 0x10007a97, 0x00 },1986	{ 0x10007a98, 0x03 },1987	{ 0x10007a99, 0xc7 },1988	{ 0x10007a9a, 0x35 },1989	{ 0x10007a9b, 0x54 },1990	{ 0x10007a9c, 0x13 },1991	{ 0x10007a9d, 0x77 },1992	{ 0x10007a9e, 0xf7 },1993	{ 0x10007a9f, 0x0f },1994	{ 0x10007aa0, 0x13 },1995	{ 0x10007aa1, 0x57 },1996	{ 0x10007aa2, 0x27 },1997	{ 0x10007aa3, 0x00 },1998	{ 0x10007aa4, 0x13 },1999	{ 0x10007aa5, 0x47 },2000	{ 0x10007aa6, 0x17 },2001	{ 0x10007aa7, 0x00 },2002	{ 0x10007aa8, 0x13 },2003	{ 0x10007aa9, 0x77 },2004	{ 0x10007aaa, 0x17 },2005	{ 0x10007aab, 0x00 },2006	{ 0x10007aac, 0x23 },2007	{ 0x10007aad, 0x84 },2008	{ 0x10007aae, 0xe1 },2009	{ 0x10007aaf, 0x42 },2010	{ 0x10007ab0, 0x63 },2011	{ 0x10007ab1, 0x84 },2012	{ 0x10007ab2, 0x07 },2013	{ 0x10007ab3, 0x00 },2014	{ 0x10007ab4, 0xe3 },2015	{ 0x10007ab5, 0x94 },2016	{ 0x10007ab6, 0x06 },2017	{ 0x10007ab7, 0xee },2018	{ 0x10007ab8, 0xef },2019	{ 0x10007ab9, 0x90 },2020	{ 0x10007aba, 0x0f },2021	{ 0x10007abb, 0x86 },2022	{ 0x10007abc, 0xef },2023	{ 0x10007abd, 0xd0 },2024	{ 0x10007abe, 0x0f },2025	{ 0x10007abf, 0x97 },2026	{ 0x10007ac0, 0x37 },2027	{ 0x10007ac1, 0x15 },2028	{ 0x10007ac2, 0x00 },2029	{ 0x10007ac3, 0x00 },2030	{ 0x10007ac4, 0x13 },2031	{ 0x10007ac5, 0x05 },2032	{ 0x10007ac6, 0x85 },2033	{ 0x10007ac7, 0xbb },2034	{ 0x10007ac8, 0x93 },2035	{ 0x10007ac9, 0x05 },2036	{ 0x10007aca, 0x00 },2037	{ 0x10007acb, 0x00 },2038	{ 0x10007acc, 0xef },2039	{ 0x10007acd, 0xd0 },2040	{ 0x10007ace, 0x9f },2041	{ 0x10007acf, 0xf5 },2042	{ 0x10007ad0, 0xb7 },2043	{ 0x10007ad1, 0xd7 },2044	{ 0x10007ad2, 0x00 },2045	{ 0x10007ad3, 0x00 },2046	{ 0x10007ad4, 0x83 },2047	{ 0x10007ad5, 0xc7 },2048	{ 0x10007ad6, 0x07 },2049	{ 0x10007ad7, 0x47 },2050	{ 0x10007ad8, 0x93 },2051	{ 0x10007ad9, 0xf7 },2052	{ 0x10007ada, 0x47 },2053	{ 0x10007adb, 0x00 },2054	{ 0x10007adc, 0xe3 },2055	{ 0x10007add, 0x80 },2056	{ 0x10007ade, 0x07 },2057	{ 0x10007adf, 0xec },2058	{ 0x10007ae0, 0xef },2059	{ 0x10007ae1, 0x80 },2060	{ 0x10007ae2, 0xdf },2061	{ 0x10007ae3, 0xf4 },2062	{ 0x10007ae4, 0x23 },2063	{ 0x10007ae5, 0x89 },2064	{ 0x10007ae6, 0xa1 },2065	{ 0x10007ae7, 0x40 },2066	{ 0x10007ae8, 0x6f },2067	{ 0x10007ae9, 0xf0 },2068	{ 0x10007aea, 0x5f },2069	{ 0x10007aeb, 0xeb },2070	{ 0x10007aec, 0x00 },2071	{ 0x10007aed, 0x00 },2072	{ 0x10007aee, 0x00 },2073	{ 0x10007aef, 0x00 },2074	{ 0x3fc2bf83, 0x00 },2075	{ 0x3fc2bf82, 0x00 },2076	{ 0x3fc2bf81, 0x00 },2077	{ 0x3fc2bf80, 0x00 },2078	{ 0x3fc2bfc7, 0x00 },2079	{ 0x3fc2bfc6, 0x00 },2080	{ 0x3fc2bfc5, 0x00 },2081	{ 0x3fc2bfc4, 0x00 },2082	{ 0x3fc2bfc3, 0x00 },2083	{ 0x3fc2bfc2, 0x00 },2084	{ 0x3fc2bfc1, 0x00 },2085	{ 0x3fc2bfc0, 0x03 },2086	{ 0x0000d486, 0x43 },2087	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0x00 },2088	{ 0x1000db00, 0x04 },2089	{ 0x1000db01, 0x00 },2090	{ 0x1000db02, 0x11 },2091	{ 0x1000db03, 0x00 },2092	{ 0x1000db04, 0x00 },2093	{ 0x1000db05, 0x82 },2094	{ 0x1000db06, 0x04 },2095	{ 0x1000db07, 0xf1 },2096	{ 0x1000db08, 0x00 },2097	{ 0x1000db09, 0x00 },2098	{ 0x1000db0a, 0x40 },2099	{ 0x1000db0b, 0x02 },2100	{ 0x1000db0c, 0xf2 },2101	{ 0x1000db0d, 0x00 },2102	{ 0x1000db0e, 0x00 },2103	{ 0x1000db0f, 0xe0 },2104	{ 0x1000db10, 0x00 },2105	{ 0x1000db11, 0x10 },2106	{ 0x1000db12, 0x00 },2107	{ 0x1000db13, 0x00 },2108	{ 0x1000db14, 0x45 },2109	{ 0x0000d540, 0x01 },2110	{ 0x0000c081, 0xfc },2111	{ 0x0000f01e, 0x80 },2112	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0x03 },2113};2114 2115/*2116 * The 'patch code' is written to the patch code area.2117 * The patch code area is used for SDCA register expansion flexibility.2118 */2119static const struct reg_sequence rt1320_patch_code_write[] = {2120	{ 0x10007000, 0x37 },2121	{ 0x10007001, 0x77 },2122	{ 0x10007002, 0x00 },2123	{ 0x10007003, 0x10 },2124	{ 0x10007004, 0xb7 },2125	{ 0x10007005, 0xe7 },2126	{ 0x10007006, 0x00 },2127	{ 0x10007007, 0x10 },2128	{ 0x10007008, 0x13 },2129	{ 0x10007009, 0x07 },2130	{ 0x1000700a, 0x07 },2131	{ 0x1000700b, 0x40 },2132	{ 0x1000700c, 0x23 },2133	{ 0x1000700d, 0xae },2134	{ 0x1000700e, 0xe7 },2135	{ 0x1000700f, 0xda },2136	{ 0x10007010, 0x37 },2137	{ 0x10007011, 0x77 },2138	{ 0x10007012, 0x00 },2139	{ 0x10007013, 0x10 },2140	{ 0x10007014, 0x13 },2141	{ 0x10007015, 0x07 },2142	{ 0x10007016, 0x47 },2143	{ 0x10007017, 0x61 },2144	{ 0x10007018, 0x23 },2145	{ 0x10007019, 0xa4 },2146	{ 0x1000701a, 0xe7 },2147	{ 0x1000701b, 0xde },2148	{ 0x1000701c, 0x37 },2149	{ 0x1000701d, 0x77 },2150	{ 0x1000701e, 0x00 },2151	{ 0x1000701f, 0x10 },2152	{ 0x10007020, 0x13 },2153	{ 0x10007021, 0x07 },2154	{ 0x10007022, 0x07 },2155	{ 0x10007023, 0x52 },2156	{ 0x10007024, 0x23 },2157	{ 0x10007025, 0xae },2158	{ 0x10007026, 0xe7 },2159	{ 0x10007027, 0xde },2160	{ 0x10007028, 0x37 },2161	{ 0x10007029, 0x77 },2162	{ 0x1000702a, 0x00 },2163	{ 0x1000702b, 0x10 },2164	{ 0x1000702c, 0x13 },2165	{ 0x1000702d, 0x07 },2166	{ 0x1000702e, 0x47 },2167	{ 0x1000702f, 0x54 },2168	{ 0x10007030, 0x23 },2169	{ 0x10007031, 0xaa },2170	{ 0x10007032, 0xe7 },2171	{ 0x10007033, 0xe4 },2172	{ 0x10007034, 0x37 },2173	{ 0x10007035, 0x87 },2174	{ 0x10007036, 0x00 },2175	{ 0x10007037, 0x10 },2176	{ 0x10007038, 0x13 },2177	{ 0x10007039, 0x07 },2178	{ 0x1000703a, 0x47 },2179	{ 0x1000703b, 0x81 },2180	{ 0x1000703c, 0x23 },2181	{ 0x1000703d, 0xa2 },2182	{ 0x1000703e, 0xe7 },2183	{ 0x1000703f, 0xe8 },2184	{ 0x10007040, 0x23 },2185	{ 0x10007041, 0xa4 },2186	{ 0x10007042, 0xe7 },2187	{ 0x10007043, 0xe8 },2188	{ 0x10007044, 0x37 },2189	{ 0x10007045, 0x77 },2190	{ 0x10007046, 0x00 },2191	{ 0x10007047, 0x10 },2192	{ 0x10007048, 0x13 },2193	{ 0x10007049, 0x07 },2194	{ 0x1000704a, 0x07 },2195	{ 0x1000704b, 0x59 },2196	{ 0x1000704c, 0x23 },2197	{ 0x1000704d, 0xa8 },2198	{ 0x1000704e, 0xe7 },2199	{ 0x1000704f, 0xea },2200	{ 0x10007050, 0x37 },2201	{ 0x10007051, 0x77 },2202	{ 0x10007052, 0x00 },2203	{ 0x10007053, 0x10 },2204	{ 0x10007054, 0x13 },2205	{ 0x10007055, 0x07 },2206	{ 0x10007056, 0x07 },2207	{ 0x10007057, 0x78 },2208	{ 0x10007058, 0x23 },2209	{ 0x10007059, 0xa6 },2210	{ 0x1000705a, 0xe7 },2211	{ 0x1000705b, 0xec },2212	{ 0x1000705c, 0x67 },2213	{ 0x1000705d, 0x80 },2214	{ 0x1000705e, 0x00 },2215	{ 0x1000705f, 0x00 },2216	{ 0x10007400, 0x37 },2217	{ 0x10007401, 0xd7 },2218	{ 0x10007402, 0x00 },2219	{ 0x10007403, 0x00 },2220	{ 0x10007404, 0x83 },2221	{ 0x10007405, 0x27 },2222	{ 0x10007406, 0x47 },2223	{ 0x10007407, 0x56 },2224	{ 0x10007408, 0xb7 },2225	{ 0x10007409, 0x06 },2226	{ 0x1000740a, 0x00 },2227	{ 0x1000740b, 0x02 },2228	{ 0x1000740c, 0xb3 },2229	{ 0x1000740d, 0xf7 },2230	{ 0x1000740e, 0xd7 },2231	{ 0x1000740f, 0x00 },2232	{ 0x10007410, 0x63 },2233	{ 0x10007411, 0x8a },2234	{ 0x10007412, 0x07 },2235	{ 0x10007413, 0x00 },2236	{ 0x10007414, 0x93 },2237	{ 0x10007415, 0x06 },2238	{ 0x10007416, 0x10 },2239	{ 0x10007417, 0x00 },2240	{ 0x10007418, 0x23 },2241	{ 0x10007419, 0x83 },2242	{ 0x1000741a, 0xd1 },2243	{ 0x1000741b, 0x44 },2244	{ 0x1000741c, 0x93 },2245	{ 0x1000741d, 0x07 },2246	{ 0x1000741e, 0xf0 },2247	{ 0x1000741f, 0xff },2248	{ 0x10007420, 0x23 },2249	{ 0x10007421, 0x22 },2250	{ 0x10007422, 0xf7 },2251	{ 0x10007423, 0x56 },2252	{ 0x10007424, 0x37 },2253	{ 0x10007425, 0xd7 },2254	{ 0x10007426, 0x00 },2255	{ 0x10007427, 0x00 },2256	{ 0x10007428, 0x83 },2257	{ 0x10007429, 0x27 },2258	{ 0x1000742a, 0x47 },2259	{ 0x1000742b, 0x58 },2260	{ 0x1000742c, 0x93 },2261	{ 0x1000742d, 0xf7 },2262	{ 0x1000742e, 0x17 },2263	{ 0x1000742f, 0x00 },2264	{ 0x10007430, 0x63 },2265	{ 0x10007431, 0x86 },2266	{ 0x10007432, 0x07 },2267	{ 0x10007433, 0x00 },2268	{ 0x10007434, 0x93 },2269	{ 0x10007435, 0x07 },2270	{ 0x10007436, 0x10 },2271	{ 0x10007437, 0x00 },2272	{ 0x10007438, 0x23 },2273	{ 0x10007439, 0x22 },2274	{ 0x1000743a, 0xf7 },2275	{ 0x1000743b, 0x58 },2276	{ 0x1000743c, 0xb7 },2277	{ 0x1000743d, 0xd7 },2278	{ 0x1000743e, 0x00 },2279	{ 0x1000743f, 0x00 },2280	{ 0x10007440, 0x03 },2281	{ 0x10007441, 0xa7 },2282	{ 0x10007442, 0x47 },2283	{ 0x10007443, 0x58 },2284	{ 0x10007444, 0xb7 },2285	{ 0x10007445, 0x07 },2286	{ 0x10007446, 0x00 },2287	{ 0x10007447, 0x04 },2288	{ 0x10007448, 0x33 },2289	{ 0x10007449, 0x77 },2290	{ 0x1000744a, 0xf7 },2291	{ 0x1000744b, 0x00 },2292	{ 0x1000744c, 0x93 },2293	{ 0x1000744d, 0x07 },2294	{ 0x1000744e, 0x00 },2295	{ 0x1000744f, 0x00 },2296	{ 0x10007450, 0x63 },2297	{ 0x10007451, 0x0e },2298	{ 0x10007452, 0x07 },2299	{ 0x10007453, 0x04 },2300	{ 0x10007454, 0x37 },2301	{ 0x10007455, 0x07 },2302	{ 0x10007456, 0x00 },2303	{ 0x10007457, 0x11 },2304	{ 0x10007458, 0x03 },2305	{ 0x10007459, 0x47 },2306	{ 0x1000745a, 0x87 },2307	{ 0x1000745b, 0x0e },2308	{ 0x1000745c, 0x93 },2309	{ 0x1000745d, 0x06 },2310	{ 0x1000745e, 0x40 },2311	{ 0x1000745f, 0x00 },2312	{ 0x10007460, 0x13 },2313	{ 0x10007461, 0x77 },2314	{ 0x10007462, 0xf7 },2315	{ 0x10007463, 0x0f },2316	{ 0x10007464, 0x63 },2317	{ 0x10007465, 0x02 },2318	{ 0x10007466, 0xd7 },2319	{ 0x10007467, 0x0a },2320	{ 0x10007468, 0x93 },2321	{ 0x10007469, 0x06 },2322	{ 0x1000746a, 0x70 },2323	{ 0x1000746b, 0x00 },2324	{ 0x1000746c, 0x63 },2325	{ 0x1000746d, 0x10 },2326	{ 0x1000746e, 0xd7 },2327	{ 0x1000746f, 0x04 },2328	{ 0x10007470, 0x93 },2329	{ 0x10007471, 0x07 },2330	{ 0x10007472, 0x60 },2331	{ 0x10007473, 0x06 },2332	{ 0x10007474, 0x37 },2333	{ 0x10007475, 0xd7 },2334	{ 0x10007476, 0x00 },2335	{ 0x10007477, 0x00 },2336	{ 0x10007478, 0x83 },2337	{ 0x10007479, 0x46 },2338	{ 0x1000747a, 0x77 },2339	{ 0x1000747b, 0xa6 },2340	{ 0x1000747c, 0x93 },2341	{ 0x1000747d, 0xe6 },2342	{ 0x1000747e, 0x06 },2343	{ 0x1000747f, 0xf8 },2344	{ 0x10007480, 0x93 },2345	{ 0x10007481, 0xf6 },2346	{ 0x10007482, 0xf6 },2347	{ 0x10007483, 0x0f },2348	{ 0x10007484, 0xa3 },2349	{ 0x10007485, 0x03 },2350	{ 0x10007486, 0xd7 },2351	{ 0x10007487, 0xa6 },2352	{ 0x10007488, 0x83 },2353	{ 0x10007489, 0x46 },2354	{ 0x1000748a, 0x77 },2355	{ 0x1000748b, 0xa8 },2356	{ 0x1000748c, 0x93 },2357	{ 0x1000748d, 0xe6 },2358	{ 0x1000748e, 0x06 },2359	{ 0x1000748f, 0xf8 },2360	{ 0x10007490, 0x93 },2361	{ 0x10007491, 0xf6 },2362	{ 0x10007492, 0xf6 },2363	{ 0x10007493, 0x0f },2364	{ 0x10007494, 0xa3 },2365	{ 0x10007495, 0x03 },2366	{ 0x10007496, 0xd7 },2367	{ 0x10007497, 0xa8 },2368	{ 0x10007498, 0xb7 },2369	{ 0x10007499, 0xc6 },2370	{ 0x1000749a, 0x00 },2371	{ 0x1000749b, 0x00 },2372	{ 0x1000749c, 0x23 },2373	{ 0x1000749d, 0x84 },2374	{ 0x1000749e, 0xf6 },2375	{ 0x1000749f, 0x06 },2376	{ 0x100074a0, 0xa3 },2377	{ 0x100074a1, 0x84 },2378	{ 0x100074a2, 0xf6 },2379	{ 0x100074a3, 0x06 },2380	{ 0x100074a4, 0xb7 },2381	{ 0x100074a5, 0x06 },2382	{ 0x100074a6, 0x00 },2383	{ 0x100074a7, 0x04 },2384	{ 0x100074a8, 0x23 },2385	{ 0x100074a9, 0x22 },2386	{ 0x100074aa, 0xd7 },2387	{ 0x100074ab, 0x58 },2388	{ 0x100074ac, 0x37 },2389	{ 0x100074ad, 0xd7 },2390	{ 0x100074ae, 0x00 },2391	{ 0x100074af, 0x00 },2392	{ 0x100074b0, 0x03 },2393	{ 0x100074b1, 0x27 },2394	{ 0x100074b2, 0x47 },2395	{ 0x100074b3, 0x58 },2396	{ 0x100074b4, 0xb7 },2397	{ 0x100074b5, 0x06 },2398	{ 0x100074b6, 0x00 },2399	{ 0x100074b7, 0x08 },2400	{ 0x100074b8, 0x33 },2401	{ 0x100074b9, 0x77 },2402	{ 0x100074ba, 0xd7 },2403	{ 0x100074bb, 0x00 },2404	{ 0x100074bc, 0x63 },2405	{ 0x100074bd, 0x04 },2406	{ 0x100074be, 0x07 },2407	{ 0x100074bf, 0x04 },2408	{ 0x100074c0, 0x37 },2409	{ 0x100074c1, 0x07 },2410	{ 0x100074c2, 0x00 },2411	{ 0x100074c3, 0x11 },2412	{ 0x100074c4, 0x03 },2413	{ 0x100074c5, 0x47 },2414	{ 0x100074c6, 0xc7 },2415	{ 0x100074c7, 0x0e },2416	{ 0x100074c8, 0x93 },2417	{ 0x100074c9, 0x06 },2418	{ 0x100074ca, 0x40 },2419	{ 0x100074cb, 0x00 },2420	{ 0x100074cc, 0x13 },2421	{ 0x100074cd, 0x77 },2422	{ 0x100074ce, 0xf7 },2423	{ 0x100074cf, 0x0f },2424	{ 0x100074d0, 0x63 },2425	{ 0x100074d1, 0x00 },2426	{ 0x100074d2, 0xd7 },2427	{ 0x100074d3, 0x04 },2428	{ 0x100074d4, 0x93 },2429	{ 0x100074d5, 0x06 },2430	{ 0x100074d6, 0x70 },2431	{ 0x100074d7, 0x00 },2432	{ 0x100074d8, 0x63 },2433	{ 0x100074d9, 0x00 },2434	{ 0x100074da, 0xd7 },2435	{ 0x100074db, 0x04 },2436	{ 0x100074dc, 0x63 },2437	{ 0x100074dd, 0x84 },2438	{ 0x100074de, 0x07 },2439	{ 0x100074df, 0x02 },2440	{ 0x100074e0, 0xb7 },2441	{ 0x100074e1, 0xd6 },2442	{ 0x100074e2, 0x00 },2443	{ 0x100074e3, 0x00 },2444	{ 0x100074e4, 0x03 },2445	{ 0x100074e5, 0xc7 },2446	{ 0x100074e6, 0x56 },2447	{ 0x100074e7, 0xa4 },2448	{ 0x100074e8, 0x13 },2449	{ 0x100074e9, 0x67 },2450	{ 0x100074ea, 0x07 },2451	{ 0x100074eb, 0xf8 },2452	{ 0x100074ec, 0x13 },2453	{ 0x100074ed, 0x77 },2454	{ 0x100074ee, 0xf7 },2455	{ 0x100074ef, 0x0f },2456	{ 0x100074f0, 0xa3 },2457	{ 0x100074f1, 0x82 },2458	{ 0x100074f2, 0xe6 },2459	{ 0x100074f3, 0xa4 },2460	{ 0x100074f4, 0x37 },2461	{ 0x100074f5, 0xc7 },2462	{ 0x100074f6, 0x00 },2463	{ 0x100074f7, 0x00 },2464	{ 0x100074f8, 0x23 },2465	{ 0x100074f9, 0x02 },2466	{ 0x100074fa, 0xf7 },2467	{ 0x100074fb, 0x06 },2468	{ 0x100074fc, 0xb7 },2469	{ 0x100074fd, 0x07 },2470	{ 0x100074fe, 0x00 },2471	{ 0x100074ff, 0x08 },2472	{ 0x10007500, 0x23 },2473	{ 0x10007501, 0xa2 },2474	{ 0x10007502, 0xf6 },2475	{ 0x10007503, 0x58 },2476	{ 0x10007504, 0x67 },2477	{ 0x10007505, 0x80 },2478	{ 0x10007506, 0x00 },2479	{ 0x10007507, 0x00 },2480	{ 0x10007508, 0x93 },2481	{ 0x10007509, 0x07 },2482	{ 0x1000750a, 0x80 },2483	{ 0x1000750b, 0x08 },2484	{ 0x1000750c, 0x6f },2485	{ 0x1000750d, 0xf0 },2486	{ 0x1000750e, 0x9f },2487	{ 0x1000750f, 0xf6 },2488	{ 0x10007510, 0x93 },2489	{ 0x10007511, 0x07 },2490	{ 0x10007512, 0x80 },2491	{ 0x10007513, 0x08 },2492	{ 0x10007514, 0x6f },2493	{ 0x10007515, 0xf0 },2494	{ 0x10007516, 0xdf },2495	{ 0x10007517, 0xfc },2496	{ 0x10007518, 0x93 },2497	{ 0x10007519, 0x07 },2498	{ 0x1000751a, 0x60 },2499	{ 0x1000751b, 0x06 },2500	{ 0x1000751c, 0x6f },2501	{ 0x1000751d, 0xf0 },2502	{ 0x1000751e, 0x5f },2503	{ 0x1000751f, 0xfc },2504	{ 0x10007520, 0x37 },2505	{ 0x10007521, 0xd7 },2506	{ 0x10007522, 0x00 },2507	{ 0x10007523, 0x00 },2508	{ 0x10007524, 0x83 },2509	{ 0x10007525, 0x27 },2510	{ 0x10007526, 0x07 },2511	{ 0x10007527, 0x53 },2512	{ 0x10007528, 0xb7 },2513	{ 0x10007529, 0x06 },2514	{ 0x1000752a, 0x02 },2515	{ 0x1000752b, 0x00 },2516	{ 0x1000752c, 0xb3 },2517	{ 0x1000752d, 0xf7 },2518	{ 0x1000752e, 0xd7 },2519	{ 0x1000752f, 0x00 },2520	{ 0x10007530, 0x63 },2521	{ 0x10007531, 0x88 },2522	{ 0x10007532, 0x07 },2523	{ 0x10007533, 0x00 },2524	{ 0x10007534, 0x13 },2525	{ 0x10007535, 0x06 },2526	{ 0x10007536, 0xa0 },2527	{ 0x10007537, 0x05 },2528	{ 0x10007538, 0x23 },2529	{ 0x10007539, 0xa8 },2530	{ 0x1000753a, 0xc1 },2531	{ 0x1000753b, 0x56 },2532	{ 0x1000753c, 0x23 },2533	{ 0x1000753d, 0x28 },2534	{ 0x1000753e, 0xd7 },2535	{ 0x1000753f, 0x52 },2536	{ 0x10007540, 0x67 },2537	{ 0x10007541, 0x80 },2538	{ 0x10007542, 0x00 },2539	{ 0x10007543, 0x00 },2540	{ 0x10007544, 0x37 },2541	{ 0x10007545, 0xd7 },2542	{ 0x10007546, 0x00 },2543	{ 0x10007547, 0x10 },2544	{ 0x10007548, 0x83 },2545	{ 0x10007549, 0x47 },2546	{ 0x1000754a, 0x07 },2547	{ 0x1000754b, 0xd9 },2548	{ 0x1000754c, 0x93 },2549	{ 0x1000754d, 0x06 },2550	{ 0x1000754e, 0x20 },2551	{ 0x1000754f, 0x00 },2552	{ 0x10007550, 0x93 },2553	{ 0x10007551, 0xf7 },2554	{ 0x10007552, 0xf7 },2555	{ 0x10007553, 0x0f },2556	{ 0x10007554, 0x63 },2557	{ 0x10007555, 0x9c },2558	{ 0x10007556, 0xd7 },2559	{ 0x10007557, 0x02 },2560	{ 0x10007558, 0xb7 },2561	{ 0x10007559, 0xc6 },2562	{ 0x1000755a, 0x00 },2563	{ 0x1000755b, 0x00 },2564	{ 0x1000755c, 0x83 },2565	{ 0x1000755d, 0xc7 },2566	{ 0x1000755e, 0x26 },2567	{ 0x1000755f, 0x04 },2568	{ 0x10007560, 0x93 },2569	{ 0x10007561, 0xf7 },2570	{ 0x10007562, 0xf7 },2571	{ 0x10007563, 0x07 },2572	{ 0x10007564, 0x23 },2573	{ 0x10007565, 0x81 },2574	{ 0x10007566, 0xf6 },2575	{ 0x10007567, 0x04 },2576	{ 0x10007568, 0xb7 },2577	{ 0x10007569, 0xd6 },2578	{ 0x1000756a, 0x00 },2579	{ 0x1000756b, 0x00 },2580	{ 0x1000756c, 0x83 },2581	{ 0x1000756d, 0xc7 },2582	{ 0x1000756e, 0xa6 },2583	{ 0x1000756f, 0xe1 },2584	{ 0x10007570, 0x93 },2585	{ 0x10007571, 0xf7 },2586	{ 0x10007572, 0xf7 },2587	{ 0x10007573, 0x07 },2588	{ 0x10007574, 0x23 },2589	{ 0x10007575, 0x8d },2590	{ 0x10007576, 0xf6 },2591	{ 0x10007577, 0xe0 },2592	{ 0x10007578, 0x23 },2593	{ 0x10007579, 0x08 },2594	{ 0x1000757a, 0x07 },2595	{ 0x1000757b, 0xd8 },2596	{ 0x1000757c, 0x83 },2597	{ 0x1000757d, 0x47 },2598	{ 0x1000757e, 0x47 },2599	{ 0x1000757f, 0xd9 },2600	{ 0x10007580, 0x93 },2601	{ 0x10007581, 0x87 },2602	{ 0x10007582, 0x17 },2603	{ 0x10007583, 0x00 },2604	{ 0x10007584, 0x93 },2605	{ 0x10007585, 0xf7 },2606	{ 0x10007586, 0xf7 },2607	{ 0x10007587, 0x0f },2608	{ 0x10007588, 0x23 },2609	{ 0x10007589, 0x0a },2610	{ 0x1000758a, 0xf7 },2611	{ 0x1000758b, 0xd8 },2612	{ 0x1000758c, 0x67 },2613	{ 0x1000758d, 0x80 },2614	{ 0x1000758e, 0x00 },2615	{ 0x1000758f, 0x00 },2616	{ 0x10007590, 0xb7 },2617	{ 0x10007591, 0xd7 },2618	{ 0x10007592, 0x00 },2619	{ 0x10007593, 0x00 },2620	{ 0x10007594, 0x83 },2621	{ 0x10007595, 0xc7 },2622	{ 0x10007596, 0x07 },2623	{ 0x10007597, 0x47 },2624	{ 0x10007598, 0x93 },2625	{ 0x10007599, 0xf7 },2626	{ 0x1000759a, 0x07 },2627	{ 0x1000759b, 0x01 },2628	{ 0x1000759c, 0x63 },2629	{ 0x1000759d, 0x8a },2630	{ 0x1000759e, 0x07 },2631	{ 0x1000759f, 0x06 },2632	{ 0x100075a0, 0x63 },2633	{ 0x100075a1, 0x02 },2634	{ 0x100075a2, 0x05 },2635	{ 0x100075a3, 0x06 },2636	{ 0x100075a4, 0x37 },2637	{ 0x100075a5, 0xc7 },2638	{ 0x100075a6, 0x00 },2639	{ 0x100075a7, 0x00 },2640	{ 0x100075a8, 0x83 },2641	{ 0x100075a9, 0x27 },2642	{ 0x100075aa, 0xc7 },2643	{ 0x100075ab, 0x5f },2644	{ 0x100075ac, 0x23 },2645	{ 0x100075ad, 0xae },2646	{ 0x100075ae, 0xf1 },2647	{ 0x100075af, 0x40 },2648	{ 0x100075b0, 0xb7 },2649	{ 0x100075b1, 0x06 },2650	{ 0x100075b2, 0x00 },2651	{ 0x100075b3, 0x10 },2652	{ 0x100075b4, 0xb3 },2653	{ 0x100075b5, 0xf7 },2654	{ 0x100075b6, 0xd7 },2655	{ 0x100075b7, 0x00 },2656	{ 0x100075b8, 0x63 },2657	{ 0x100075b9, 0x8c },2658	{ 0x100075ba, 0x07 },2659	{ 0x100075bb, 0x04 },2660	{ 0x100075bc, 0x83 },2661	{ 0x100075bd, 0x47 },2662	{ 0x100075be, 0x07 },2663	{ 0x100075bf, 0x56 },2664	{ 0x100075c0, 0x93 },2665	{ 0x100075c1, 0xf7 },2666	{ 0x100075c2, 0x87 },2667	{ 0x100075c3, 0x01 },2668	{ 0x100075c4, 0x63 },2669	{ 0x100075c5, 0x86 },2670	{ 0x100075c6, 0x07 },2671	{ 0x100075c7, 0x04 },2672	{ 0x100075c8, 0x83 },2673	{ 0x100075c9, 0x47 },2674	{ 0x100075ca, 0x17 },2675	{ 0x100075cb, 0x08 },2676	{ 0x100075cc, 0x93 },2677	{ 0x100075cd, 0xf7 },2678	{ 0x100075ce, 0x47 },2679	{ 0x100075cf, 0x00 },2680	{ 0x100075d0, 0x63 },2681	{ 0x100075d1, 0x80 },2682	{ 0x100075d2, 0x07 },2683	{ 0x100075d3, 0x04 },2684	{ 0x100075d4, 0xb7 },2685	{ 0x100075d5, 0xc7 },2686	{ 0x100075d6, 0xc2 },2687	{ 0x100075d7, 0x3f },2688	{ 0x100075d8, 0x93 },2689	{ 0x100075d9, 0x87 },2690	{ 0x100075da, 0x07 },2691	{ 0x100075db, 0xfc },2692	{ 0x100075dc, 0x83 },2693	{ 0x100075dd, 0xa7 },2694	{ 0x100075de, 0x47 },2695	{ 0x100075df, 0x00 },2696	{ 0x100075e0, 0x93 },2697	{ 0x100075e1, 0xd7 },2698	{ 0x100075e2, 0x17 },2699	{ 0x100075e3, 0x00 },2700	{ 0x100075e4, 0x93 },2701	{ 0x100075e5, 0xf7 },2702	{ 0x100075e6, 0x17 },2703	{ 0x100075e7, 0x00 },2704	{ 0x100075e8, 0x63 },2705	{ 0x100075e9, 0x84 },2706	{ 0x100075ea, 0x07 },2707	{ 0x100075eb, 0x02 },2708	{ 0x100075ec, 0x23 },2709	{ 0x100075ed, 0x8a },2710	{ 0x100075ee, 0xf1 },2711	{ 0x100075ef, 0x40 },2712	{ 0x100075f0, 0xb7 },2713	{ 0x100075f1, 0x07 },2714	{ 0x100075f2, 0x00 },2715	{ 0x100075f3, 0xc0 },2716	{ 0x100075f4, 0x37 },2717	{ 0x100075f5, 0xf7 },2718	{ 0x100075f6, 0x00 },2719	{ 0x100075f7, 0x00 },2720	{ 0x100075f8, 0x93 },2721	{ 0x100075f9, 0x87 },2722	{ 0x100075fa, 0xf7 },2723	{ 0x100075fb, 0xff },2724	{ 0x100075fc, 0x23 },2725	{ 0x100075fd, 0x2c },2726	{ 0x100075fe, 0xf7 },2727	{ 0x100075ff, 0x06 },2728	{ 0x10007600, 0x67 },2729	{ 0x10007601, 0x80 },2730	{ 0x10007602, 0x00 },2731	{ 0x10007603, 0x00 },2732	{ 0x10007604, 0x23 },2733	{ 0x10007605, 0x8a },2734	{ 0x10007606, 0x01 },2735	{ 0x10007607, 0x40 },2736	{ 0x10007608, 0xb7 },2737	{ 0x10007609, 0xf7 },2738	{ 0x1000760a, 0x00 },2739	{ 0x1000760b, 0x00 },2740	{ 0x1000760c, 0x23 },2741	{ 0x1000760d, 0xac },2742	{ 0x1000760e, 0x07 },2743	{ 0x1000760f, 0x06 },2744	{ 0x10007610, 0x67 },2745	{ 0x10007611, 0x80 },2746	{ 0x10007612, 0x00 },2747	{ 0x10007613, 0x00 },2748	{ 0x10007614, 0x13 },2749	{ 0x10007615, 0x01 },2750	{ 0x10007616, 0x01 },2751	{ 0x10007617, 0xff },2752	{ 0x10007618, 0x23 },2753	{ 0x10007619, 0x26 },2754	{ 0x1000761a, 0x11 },2755	{ 0x1000761b, 0x00 },2756	{ 0x1000761c, 0x23 },2757	{ 0x1000761d, 0x24 },2758	{ 0x1000761e, 0x81 },2759	{ 0x1000761f, 0x00 },2760	{ 0x10007620, 0x37 },2761	{ 0x10007621, 0xc7 },2762	{ 0x10007622, 0x00 },2763	{ 0x10007623, 0x00 },2764	{ 0x10007624, 0x83 },2765	{ 0x10007625, 0x47 },2766	{ 0x10007626, 0x07 },2767	{ 0x10007627, 0x56 },2768	{ 0x10007628, 0x93 },2769	{ 0x10007629, 0xf7 },2770	{ 0x1000762a, 0x17 },2771	{ 0x1000762b, 0x00 },2772	{ 0x1000762c, 0x63 },2773	{ 0x1000762d, 0x98 },2774	{ 0x1000762e, 0x07 },2775	{ 0x1000762f, 0x00 },2776	{ 0x10007630, 0x83 },2777	{ 0x10007631, 0x47 },2778	{ 0x10007632, 0x07 },2779	{ 0x10007633, 0x56 },2780	{ 0x10007634, 0x93 },2781	{ 0x10007635, 0xf7 },2782	{ 0x10007636, 0x27 },2783	{ 0x10007637, 0x00 },2784	{ 0x10007638, 0x63 },2785	{ 0x10007639, 0x82 },2786	{ 0x1000763a, 0x07 },2787	{ 0x1000763b, 0x08 },2788	{ 0x1000763c, 0x37 },2789	{ 0x1000763d, 0xd4 },2790	{ 0x1000763e, 0x00 },2791	{ 0x1000763f, 0x00 },2792	{ 0x10007640, 0x83 },2793	{ 0x10007641, 0x47 },2794	{ 0x10007642, 0x14 },2795	{ 0x10007643, 0x47 },2796	{ 0x10007644, 0x93 },2797	{ 0x10007645, 0xf7 },2798	{ 0x10007646, 0x27 },2799	{ 0x10007647, 0x00 },2800	{ 0x10007648, 0x63 },2801	{ 0x10007649, 0x8a },2802	{ 0x1000764a, 0x07 },2803	{ 0x1000764b, 0x06 },2804	{ 0x1000764c, 0x93 },2805	{ 0x1000764d, 0x05 },2806	{ 0x1000764e, 0x10 },2807	{ 0x1000764f, 0x00 },2808	{ 0x10007650, 0x13 },2809	{ 0x10007651, 0x05 },2810	{ 0x10007652, 0x20 },2811	{ 0x10007653, 0x10 },2812	{ 0x10007654, 0xef },2813	{ 0x10007655, 0xa0 },2814	{ 0x10007656, 0x8f },2815	{ 0x10007657, 0x9a },2816	{ 0x10007658, 0x37 },2817	{ 0x10007659, 0x05 },2818	{ 0x1000765a, 0x01 },2819	{ 0x1000765b, 0x00 },2820	{ 0x1000765c, 0x93 },2821	{ 0x1000765d, 0x05 },2822	{ 0x1000765e, 0x00 },2823	{ 0x1000765f, 0x01 },2824	{ 0x10007660, 0x13 },2825	{ 0x10007661, 0x05 },2826	{ 0x10007662, 0xb5 },2827	{ 0x10007663, 0xa0 },2828	{ 0x10007664, 0xef },2829	{ 0x10007665, 0xa0 },2830	{ 0x10007666, 0x8f },2831	{ 0x10007667, 0x99 },2832	{ 0x10007668, 0x83 },2833	{ 0x10007669, 0x47 },2834	{ 0x1000766a, 0x24 },2835	{ 0x1000766b, 0xe0 },2836	{ 0x1000766c, 0x13 },2837	{ 0x1000766d, 0x05 },2838	{ 0x1000766e, 0x80 },2839	{ 0x1000766f, 0x3e },2840	{ 0x10007670, 0x93 },2841	{ 0x10007671, 0x05 },2842	{ 0x10007672, 0x00 },2843	{ 0x10007673, 0x00 },2844	{ 0x10007674, 0x93 },2845	{ 0x10007675, 0xe7 },2846	{ 0x10007676, 0x07 },2847	{ 0x10007677, 0xf8 },2848	{ 0x10007678, 0x93 },2849	{ 0x10007679, 0xf7 },2850	{ 0x1000767a, 0xf7 },2851	{ 0x1000767b, 0x0f },2852	{ 0x1000767c, 0x23 },2853	{ 0x1000767d, 0x01 },2854	{ 0x1000767e, 0xf4 },2855	{ 0x1000767f, 0xe0 },2856	{ 0x10007680, 0x83 },2857	{ 0x10007681, 0x47 },2858	{ 0x10007682, 0x24 },2859	{ 0x10007683, 0xe0 },2860	{ 0x10007684, 0x93 },2861	{ 0x10007685, 0xf7 },2862	{ 0x10007686, 0xf7 },2863	{ 0x10007687, 0x0f },2864	{ 0x10007688, 0x93 },2865	{ 0x10007689, 0xe7 },2866	{ 0x1000768a, 0x07 },2867	{ 0x1000768b, 0x04 },2868	{ 0x1000768c, 0x23 },2869	{ 0x1000768d, 0x01 },2870	{ 0x1000768e, 0xf4 },2871	{ 0x1000768f, 0xe0 },2872	{ 0x10007690, 0xef },2873	{ 0x10007691, 0xe0 },2874	{ 0x10007692, 0x8f },2875	{ 0x10007693, 0xb9 },2876	{ 0x10007694, 0x83 },2877	{ 0x10007695, 0x47 },2878	{ 0x10007696, 0x34 },2879	{ 0x10007697, 0xe0 },2880	{ 0x10007698, 0x93 },2881	{ 0x10007699, 0xf7 },2882	{ 0x1000769a, 0x07 },2883	{ 0x1000769b, 0x02 },2884	{ 0x1000769c, 0xe3 },2885	{ 0x1000769d, 0x9c },2886	{ 0x1000769e, 0x07 },2887	{ 0x1000769f, 0xfe },2888	{ 0x100076a0, 0x37 },2889	{ 0x100076a1, 0x05 },2890	{ 0x100076a2, 0x01 },2891	{ 0x100076a3, 0x00 },2892	{ 0x100076a4, 0x93 },2893	{ 0x100076a5, 0x05 },2894	{ 0x100076a6, 0x00 },2895	{ 0x100076a7, 0x00 },2896	{ 0x100076a8, 0x13 },2897	{ 0x100076a9, 0x05 },2898	{ 0x100076aa, 0xb5 },2899	{ 0x100076ab, 0xa0 },2900	{ 0x100076ac, 0xef },2901	{ 0x100076ad, 0xa0 },2902	{ 0x100076ae, 0x0f },2903	{ 0x100076af, 0x95 },2904	{ 0x100076b0, 0x83 },2905	{ 0x100076b1, 0x47 },2906	{ 0x100076b2, 0x14 },2907	{ 0x100076b3, 0x47 },2908	{ 0x100076b4, 0x93 },2909	{ 0x100076b5, 0xf7 },2910	{ 0x100076b6, 0xd7 },2911	{ 0x100076b7, 0x0f },2912	{ 0x100076b8, 0xa3 },2913	{ 0x100076b9, 0x08 },2914	{ 0x100076ba, 0xf4 },2915	{ 0x100076bb, 0x46 },2916	{ 0x100076bc, 0x03 },2917	{ 0x100076bd, 0xa7 },2918	{ 0x100076be, 0x01 },2919	{ 0x100076bf, 0x57 },2920	{ 0x100076c0, 0x93 },2921	{ 0x100076c1, 0x07 },2922	{ 0x100076c2, 0xa0 },2923	{ 0x100076c3, 0x05 },2924	{ 0x100076c4, 0x63 },2925	{ 0x100076c5, 0x14 },2926	{ 0x100076c6, 0xf7 },2927	{ 0x100076c7, 0x04 },2928	{ 0x100076c8, 0x37 },2929	{ 0x100076c9, 0x07 },2930	{ 0x100076ca, 0x00 },2931	{ 0x100076cb, 0x11 },2932	{ 0x100076cc, 0x83 },2933	{ 0x100076cd, 0x47 },2934	{ 0x100076ce, 0x07 },2935	{ 0x100076cf, 0x01 },2936	{ 0x100076d0, 0x13 },2937	{ 0x100076d1, 0x06 },2938	{ 0x100076d2, 0x30 },2939	{ 0x100076d3, 0x00 },2940	{ 0x100076d4, 0x93 },2941	{ 0x100076d5, 0xf7 },2942	{ 0x100076d6, 0xf7 },2943	{ 0x100076d7, 0x0f },2944	{ 0x100076d8, 0x63 },2945	{ 0x100076d9, 0x9a },2946	{ 0x100076da, 0xc7 },2947	{ 0x100076db, 0x02 },2948	{ 0x100076dc, 0x03 },2949	{ 0x100076dd, 0x47 },2950	{ 0x100076de, 0x87 },2951	{ 0x100076df, 0x01 },2952	{ 0x100076e0, 0x13 },2953	{ 0x100076e1, 0x77 },2954	{ 0x100076e2, 0xf7 },2955	{ 0x100076e3, 0x0f },2956	{ 0x100076e4, 0x63 },2957	{ 0x100076e5, 0x14 },2958	{ 0x100076e6, 0xf7 },2959	{ 0x100076e7, 0x02 },2960	{ 0x100076e8, 0x37 },2961	{ 0x100076e9, 0xd7 },2962	{ 0x100076ea, 0x00 },2963	{ 0x100076eb, 0x00 },2964	{ 0x100076ec, 0x83 },2965	{ 0x100076ed, 0x47 },2966	{ 0x100076ee, 0x37 },2967	{ 0x100076ef, 0x54 },2968	{ 0x100076f0, 0x93 },2969	{ 0x100076f1, 0xf7 },2970	{ 0x100076f2, 0xf7 },2971	{ 0x100076f3, 0x0f },2972	{ 0x100076f4, 0x93 },2973	{ 0x100076f5, 0xe7 },2974	{ 0x100076f6, 0x07 },2975	{ 0x100076f7, 0x02 },2976	{ 0x100076f8, 0xa3 },2977	{ 0x100076f9, 0x01 },2978	{ 0x100076fa, 0xf7 },2979	{ 0x100076fb, 0x54 },2980	{ 0x100076fc, 0x83 },2981	{ 0x100076fd, 0x47 },2982	{ 0x100076fe, 0x37 },2983	{ 0x100076ff, 0x54 },2984	{ 0x10007700, 0x93 },2985	{ 0x10007701, 0xf7 },2986	{ 0x10007702, 0xf7 },2987	{ 0x10007703, 0x0d },2988	{ 0x10007704, 0xa3 },2989	{ 0x10007705, 0x01 },2990	{ 0x10007706, 0xf7 },2991	{ 0x10007707, 0x54 },2992	{ 0x10007708, 0x23 },2993	{ 0x10007709, 0xa8 },2994	{ 0x1000770a, 0x01 },2995	{ 0x1000770b, 0x56 },2996	{ 0x1000770c, 0xb7 },2997	{ 0x1000770d, 0xd7 },2998	{ 0x1000770e, 0x00 },2999	{ 0x1000770f, 0x10 },3000	{ 0x10007710, 0x03 },3001	{ 0x10007711, 0xc7 },3002	{ 0x10007712, 0x07 },3003	{ 0x10007713, 0xd9 },3004	{ 0x10007714, 0x93 },3005	{ 0x10007715, 0x06 },3006	{ 0x10007716, 0x10 },3007	{ 0x10007717, 0x00 },3008	{ 0x10007718, 0x13 },3009	{ 0x10007719, 0x77 },3010	{ 0x1000771a, 0xf7 },3011	{ 0x1000771b, 0x0f },3012	{ 0x1000771c, 0x63 },3013	{ 0x1000771d, 0x1a },3014	{ 0x1000771e, 0xd7 },3015	{ 0x1000771f, 0x04 },3016	{ 0x10007720, 0x03 },3017	{ 0x10007721, 0xc7 },3018	{ 0x10007722, 0x27 },3019	{ 0x10007723, 0xd9 },3020	{ 0x10007724, 0x13 },3021	{ 0x10007725, 0x07 },3022	{ 0x10007726, 0x17 },3023	{ 0x10007727, 0x00 },3024	{ 0x10007728, 0x13 },3025	{ 0x10007729, 0x77 },3026	{ 0x1000772a, 0xf7 },3027	{ 0x1000772b, 0x0f },3028	{ 0x1000772c, 0x23 },3029	{ 0x1000772d, 0x89 },3030	{ 0x1000772e, 0xe7 },3031	{ 0x1000772f, 0xd8 },3032	{ 0x10007730, 0x83 },3033	{ 0x10007731, 0xc6 },3034	{ 0x10007732, 0x27 },3035	{ 0x10007733, 0xd9 },3036	{ 0x10007734, 0x03 },3037	{ 0x10007735, 0xc7 },3038	{ 0x10007736, 0x17 },3039	{ 0x10007737, 0xd9 },3040	{ 0x10007738, 0x93 },3041	{ 0x10007739, 0xf6 },3042	{ 0x1000773a, 0xf6 },3043	{ 0x1000773b, 0x0f },3044	{ 0x1000773c, 0x13 },3045	{ 0x1000773d, 0x77 },3046	{ 0x1000773e, 0xf7 },3047	{ 0x1000773f, 0x0f },3048	{ 0x10007740, 0x63 },3049	{ 0x10007741, 0xe8 },3050	{ 0x10007742, 0xe6 },3051	{ 0x10007743, 0x02 },3052	{ 0x10007744, 0xb7 },3053	{ 0x10007745, 0xd6 },3054	{ 0x10007746, 0x00 },3055	{ 0x10007747, 0x00 },3056	{ 0x10007748, 0x03 },3057	{ 0x10007749, 0xc7 },3058	{ 0x1000774a, 0xa6 },3059	{ 0x1000774b, 0xe1 },3060	{ 0x1000774c, 0x13 },3061	{ 0x1000774d, 0x67 },3062	{ 0x1000774e, 0x07 },3063	{ 0x1000774f, 0xf8 },3064	{ 0x10007750, 0x13 },3065	{ 0x10007751, 0x77 },3066	{ 0x10007752, 0xf7 },3067	{ 0x10007753, 0x0f },3068	{ 0x10007754, 0x23 },3069	{ 0x10007755, 0x8d },3070	{ 0x10007756, 0xe6 },3071	{ 0x10007757, 0xe0 },3072	{ 0x10007758, 0x03 },3073	{ 0x10007759, 0xc7 },3074	{ 0x1000775a, 0x37 },3075	{ 0x1000775b, 0xd9 },3076	{ 0x1000775c, 0x13 },3077	{ 0x1000775d, 0x07 },3078	{ 0x1000775e, 0x17 },3079	{ 0x1000775f, 0x00 },3080	{ 0x10007760, 0x13 },3081	{ 0x10007761, 0x77 },3082	{ 0x10007762, 0xf7 },3083	{ 0x10007763, 0x0f },3084	{ 0x10007764, 0xa3 },3085	{ 0x10007765, 0x89 },3086	{ 0x10007766, 0xe7 },3087	{ 0x10007767, 0xd8 },3088	{ 0x10007768, 0x13 },3089	{ 0x10007769, 0x07 },3090	{ 0x1000776a, 0x20 },3091	{ 0x1000776b, 0x00 },3092	{ 0x1000776c, 0x23 },3093	{ 0x1000776d, 0x88 },3094	{ 0x1000776e, 0xe7 },3095	{ 0x1000776f, 0xd8 },3096	{ 0x10007770, 0x83 },3097	{ 0x10007771, 0x20 },3098	{ 0x10007772, 0xc1 },3099	{ 0x10007773, 0x00 },3100	{ 0x10007774, 0x03 },3101	{ 0x10007775, 0x24 },3102	{ 0x10007776, 0x81 },3103	{ 0x10007777, 0x00 },3104	{ 0x10007778, 0x13 },3105	{ 0x10007779, 0x01 },3106	{ 0x1000777a, 0x01 },3107	{ 0x1000777b, 0x01 },3108	{ 0x1000777c, 0x67 },3109	{ 0x1000777d, 0x80 },3110	{ 0x1000777e, 0x00 },3111	{ 0x1000777f, 0x00 },3112	{ 0x10007780, 0x03 },3113	{ 0x10007781, 0xc7 },3114	{ 0x10007782, 0xa1 },3115	{ 0x10007783, 0x40 },3116	{ 0x10007784, 0x93 },3117	{ 0x10007785, 0x06 },3118	{ 0x10007786, 0x10 },3119	{ 0x10007787, 0x00 },3120	{ 0x10007788, 0x63 },3121	{ 0x10007789, 0x16 },3122	{ 0x1000778a, 0xd7 },3123	{ 0x1000778b, 0x00 },3124	{ 0x1000778c, 0xb7 },3125	{ 0x1000778d, 0xd6 },3126	{ 0x1000778e, 0x00 },3127	{ 0x1000778f, 0x10 },3128	{ 0x10007790, 0xa3 },3129	{ 0x10007791, 0x8a },3130	{ 0x10007792, 0xe6 },3131	{ 0x10007793, 0xd8 },3132	{ 0x10007794, 0x83 },3133	{ 0x10007795, 0xc7 },3134	{ 0x10007796, 0xa1 },3135	{ 0x10007797, 0x40 },3136	{ 0x10007798, 0x63 },3137	{ 0x10007799, 0x9c },3138	{ 0x1000779a, 0x07 },3139	{ 0x1000779b, 0x06 },3140	{ 0x1000779c, 0x13 },3141	{ 0x1000779d, 0x01 },3142	{ 0x1000779e, 0x01 },3143	{ 0x1000779f, 0xff },3144	{ 0x100077a0, 0x23 },3145	{ 0x100077a1, 0x22 },3146	{ 0x100077a2, 0x91 },3147	{ 0x100077a3, 0x00 },3148	{ 0x100077a4, 0x23 },3149	{ 0x100077a5, 0x26 },3150	{ 0x100077a6, 0x11 },3151	{ 0x100077a7, 0x00 },3152	{ 0x100077a8, 0x23 },3153	{ 0x100077a9, 0x24 },3154	{ 0x100077aa, 0x81 },3155	{ 0x100077ab, 0x00 },3156	{ 0x100077ac, 0xb7 },3157	{ 0x100077ad, 0xc4 },3158	{ 0x100077ae, 0x00 },3159	{ 0x100077af, 0x00 },3160	{ 0x100077b0, 0x83 },3161	{ 0x100077b1, 0xc7 },3162	{ 0x100077b2, 0x04 },3163	{ 0x100077b3, 0x56 },3164	{ 0x100077b4, 0x13 },3165	{ 0x100077b5, 0x07 },3166	{ 0x100077b6, 0x80 },3167	{ 0x100077b7, 0x01 },3168	{ 0x100077b8, 0x93 },3169	{ 0x100077b9, 0xf7 },3170	{ 0x100077ba, 0xf7 },3171	{ 0x100077bb, 0x0f },3172	{ 0x100077bc, 0x63 },3173	{ 0x100077bd, 0x70 },3174	{ 0x100077be, 0xf7 },3175	{ 0x100077bf, 0x04 },3176	{ 0x100077c0, 0x37 },3177	{ 0x100077c1, 0xd4 },3178	{ 0x100077c2, 0x00 },3179	{ 0x100077c3, 0x10 },3180	{ 0x100077c4, 0x83 },3181	{ 0x100077c5, 0x47 },3182	{ 0x100077c6, 0x54 },3183	{ 0x100077c7, 0xd9 },3184	{ 0x100077c8, 0x93 },3185	{ 0x100077c9, 0xf7 },3186	{ 0x100077ca, 0xf7 },3187	{ 0x100077cb, 0x0f },3188	{ 0x100077cc, 0x63 },3189	{ 0x100077cd, 0x88 },3190	{ 0x100077ce, 0x07 },3191	{ 0x100077cf, 0x02 },3192	{ 0x100077d0, 0x93 },3193	{ 0x100077d1, 0x07 },3194	{ 0x100077d2, 0x10 },3195	{ 0x100077d3, 0x00 },3196	{ 0x100077d4, 0x23 },3197	{ 0x100077d5, 0x82 },3198	{ 0x100077d6, 0xf4 },3199	{ 0x100077d7, 0x58 },3200	{ 0x100077d8, 0x03 },3201	{ 0x100077d9, 0x45 },3202	{ 0x100077da, 0x64 },3203	{ 0x100077db, 0xd9 },3204	{ 0x100077dc, 0xb7 },3205	{ 0x100077dd, 0x15 },3206	{ 0x100077de, 0x00 },3207	{ 0x100077df, 0x00 },3208	{ 0x100077e0, 0x93 },3209	{ 0x100077e1, 0x85 },3210	{ 0x100077e2, 0x85 },3211	{ 0x100077e3, 0x38 },3212	{ 0x100077e4, 0x13 },3213	{ 0x100077e5, 0x75 },3214	{ 0x100077e6, 0xf5 },3215	{ 0x100077e7, 0x0f },3216	{ 0x100077e8, 0xef },3217	{ 0x100077e9, 0xe0 },3218	{ 0x100077ea, 0x9f },3219	{ 0x100077eb, 0xd0 },3220	{ 0x100077ec, 0x93 },3221	{ 0x100077ed, 0x55 },3222	{ 0x100077ee, 0xf5 },3223	{ 0x100077ef, 0x41 },3224	{ 0x100077f0, 0xef },3225	{ 0x100077f1, 0xe0 },3226	{ 0x100077f2, 0x8f },3227	{ 0x100077f3, 0xa3 },3228	{ 0x100077f4, 0x23 },3229	{ 0x100077f5, 0x82 },3230	{ 0x100077f6, 0x04 },3231	{ 0x100077f7, 0x58 },3232	{ 0x100077f8, 0xa3 },3233	{ 0x100077f9, 0x0a },3234	{ 0x100077fa, 0x04 },3235	{ 0x100077fb, 0xd8 },3236	{ 0x100077fc, 0x83 },3237	{ 0x100077fd, 0x20 },3238	{ 0x100077fe, 0xc1 },3239	{ 0x100077ff, 0x00 },3240	{ 0x10007800, 0x03 },3241	{ 0x10007801, 0x24 },3242	{ 0x10007802, 0x81 },3243	{ 0x10007803, 0x00 },3244	{ 0x10007804, 0x83 },3245	{ 0x10007805, 0x24 },3246	{ 0x10007806, 0x41 },3247	{ 0x10007807, 0x00 },3248	{ 0x10007808, 0x13 },3249	{ 0x10007809, 0x01 },3250	{ 0x1000780a, 0x01 },3251	{ 0x1000780b, 0x01 },3252	{ 0x1000780c, 0x67 },3253	{ 0x1000780d, 0x80 },3254	{ 0x1000780e, 0x00 },3255	{ 0x1000780f, 0x00 },3256	{ 0x10007810, 0x67 },3257	{ 0x10007811, 0x80 },3258	{ 0x10007812, 0x00 },3259	{ 0x10007813, 0x00 },3260	{ 0x10007814, 0x13 },3261	{ 0x10007815, 0x01 },3262	{ 0x10007816, 0x01 },3263	{ 0x10007817, 0xff },3264	{ 0x10007818, 0x23 },3265	{ 0x10007819, 0x26 },3266	{ 0x1000781a, 0x11 },3267	{ 0x1000781b, 0x00 },3268	{ 0x1000781c, 0xef },3269	{ 0x1000781d, 0xd0 },3270	{ 0x1000781e, 0x8f },3271	{ 0x1000781f, 0x86 },3272	{ 0x10007820, 0x83 },3273	{ 0x10007821, 0xc7 },3274	{ 0x10007822, 0x11 },3275	{ 0x10007823, 0x42 },3276	{ 0x10007824, 0x63 },3277	{ 0x10007825, 0x86 },3278	{ 0x10007826, 0x07 },3279	{ 0x10007827, 0x00 },3280	{ 0x10007828, 0x03 },3281	{ 0x10007829, 0xc7 },3282	{ 0x1000782a, 0x01 },3283	{ 0x1000782b, 0x42 },3284	{ 0x1000782c, 0x63 },3285	{ 0x1000782d, 0x10 },3286	{ 0x1000782e, 0x07 },3287	{ 0x1000782f, 0x02 },3288	{ 0x10007830, 0x83 },3289	{ 0x10007831, 0xc6 },3290	{ 0x10007832, 0x21 },3291	{ 0x10007833, 0x41 },3292	{ 0x10007834, 0x13 },3293	{ 0x10007835, 0x07 },3294	{ 0x10007836, 0xf0 },3295	{ 0x10007837, 0x01 },3296	{ 0x10007838, 0x13 },3297	{ 0x10007839, 0x05 },3298	{ 0x1000783a, 0xf0 },3299	{ 0x1000783b, 0x01 },3300	{ 0x1000783c, 0x63 },3301	{ 0x1000783d, 0x98 },3302	{ 0x1000783e, 0xe6 },3303	{ 0x1000783f, 0x02 },3304	{ 0x10007840, 0x63 },3305	{ 0x10007841, 0x8a },3306	{ 0x10007842, 0x07 },3307	{ 0x10007843, 0x02 },3308	{ 0x10007844, 0x83 },3309	{ 0x10007845, 0xc7 },3310	{ 0x10007846, 0x01 },3311	{ 0x10007847, 0x42 },3312	{ 0x10007848, 0x63 },3313	{ 0x10007849, 0x86 },3314	{ 0x1000784a, 0x07 },3315	{ 0x1000784b, 0x02 },3316	{ 0x1000784c, 0x83 },3317	{ 0x1000784d, 0xc7 },3318	{ 0x1000784e, 0x31 },3319	{ 0x1000784f, 0x42 },3320	{ 0x10007850, 0x63 },3321	{ 0x10007851, 0x86 },3322	{ 0x10007852, 0x07 },3323	{ 0x10007853, 0x00 },3324	{ 0x10007854, 0x83 },3325	{ 0x10007855, 0xc7 },3326	{ 0x10007856, 0x21 },3327	{ 0x10007857, 0x42 },3328	{ 0x10007858, 0x63 },3329	{ 0x10007859, 0x9e },3330	{ 0x1000785a, 0x07 },3331	{ 0x1000785b, 0x00 },3332	{ 0x1000785c, 0x03 },3333	{ 0x1000785d, 0xc7 },3334	{ 0x1000785e, 0x21 },3335	{ 0x1000785f, 0x41 },3336	{ 0x10007860, 0x93 },3337	{ 0x10007861, 0x07 },3338	{ 0x10007862, 0xb0 },3339	{ 0x10007863, 0x01 },3340	{ 0x10007864, 0x63 },3341	{ 0x10007865, 0x08 },3342	{ 0x10007866, 0xf7 },3343	{ 0x10007867, 0x00 },3344	{ 0x10007868, 0x13 },3345	{ 0x10007869, 0x05 },3346	{ 0x1000786a, 0xb0 },3347	{ 0x1000786b, 0x01 },3348	{ 0x1000786c, 0xef },3349	{ 0x1000786d, 0xd0 },3350	{ 0x1000786e, 0x0f },3351	{ 0x1000786f, 0xcf },3352	{ 0x10007870, 0xef },3353	{ 0x10007871, 0xd0 },3354	{ 0x10007872, 0x8f },3355	{ 0x10007873, 0xa4 },3356	{ 0x10007874, 0x93 },3357	{ 0x10007875, 0x06 },3358	{ 0x10007876, 0x10 },3359	{ 0x10007877, 0x00 },3360	{ 0x10007878, 0xa3 },3361	{ 0x10007879, 0x89 },3362	{ 0x1000787a, 0xd1 },3363	{ 0x1000787b, 0x40 },3364	{ 0x1000787c, 0x37 },3365	{ 0x1000787d, 0xd7 },3366	{ 0x1000787e, 0x00 },3367	{ 0x1000787f, 0x10 },3368	{ 0x10007880, 0x83 },3369	{ 0x10007881, 0x47 },3370	{ 0x10007882, 0x07 },3371	{ 0x10007883, 0xd9 },3372	{ 0x10007884, 0x93 },3373	{ 0x10007885, 0xf7 },3374	{ 0x10007886, 0xf7 },3375	{ 0x10007887, 0x0f },3376	{ 0x10007888, 0x63 },3377	{ 0x10007889, 0x90 },3378	{ 0x1000788a, 0x07 },3379	{ 0x1000788b, 0x02 },3380	{ 0x1000788c, 0x37 },3381	{ 0x1000788d, 0xc6 },3382	{ 0x1000788e, 0x00 },3383	{ 0x1000788f, 0x00 },3384	{ 0x10007890, 0x83 },3385	{ 0x10007891, 0x47 },3386	{ 0x10007892, 0x26 },3387	{ 0x10007893, 0x04 },3388	{ 0x10007894, 0x93 },3389	{ 0x10007895, 0xe7 },3390	{ 0x10007896, 0x07 },3391	{ 0x10007897, 0xf8 },3392	{ 0x10007898, 0x93 },3393	{ 0x10007899, 0xf7 },3394	{ 0x1000789a, 0xf7 },3395	{ 0x1000789b, 0x0f },3396	{ 0x1000789c, 0x23 },3397	{ 0x1000789d, 0x01 },3398	{ 0x1000789e, 0xf6 },3399	{ 0x1000789f, 0x04 },3400	{ 0x100078a0, 0x23 },3401	{ 0x100078a1, 0x08 },3402	{ 0x100078a2, 0xd7 },3403	{ 0x100078a3, 0xd8 },3404	{ 0x100078a4, 0x23 },3405	{ 0x100078a5, 0x09 },3406	{ 0x100078a6, 0x07 },3407	{ 0x100078a7, 0xd8 },3408	{ 0x100078a8, 0x83 },3409	{ 0x100078a9, 0x20 },3410	{ 0x100078aa, 0xc1 },3411	{ 0x100078ab, 0x00 },3412	{ 0x100078ac, 0x13 },3413	{ 0x100078ad, 0x01 },3414	{ 0x100078ae, 0x01 },3415	{ 0x100078af, 0x01 },3416	{ 0x100078b0, 0x67 },3417	{ 0x100078b1, 0x80 },3418	{ 0x100078b2, 0x00 },3419	{ 0x100078b3, 0x00 },3420	{ 0x3fc2bfc7, 0x00 },3421	{ 0x3fc2bfc6, 0x00 },3422	{ 0x3fc2bfc5, 0x00 },3423	{ 0x3fc2bfc4, 0x01 },3424	{ 0x0000d486, 0x43 },3425	{ 0x1000db00, 0x02 },3426	{ 0x1000db01, 0x00 },3427	{ 0x1000db02, 0x11 },3428	{ 0x1000db03, 0x00 },3429	{ 0x1000db04, 0x00 },3430	{ 0x1000db05, 0x82 },3431	{ 0x1000db06, 0x04 },3432	{ 0x1000db07, 0xf1 },3433	{ 0x1000db08, 0x00 },3434	{ 0x1000db09, 0x00 },3435	{ 0x1000db0a, 0x40 },3436	{ 0x0000d540, 0x01 },3437};3438 3439static const struct reg_default rt1320_reg_defaults[] = {3440	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_01), 0x01 },3441	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_02), 0x01 },3442	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE27, RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0x03 },3443	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0x03 },3444	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PPU21, RT1320_SDCA_CTL_POSTURE_NUMBER, 0), 0x00 },3445	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS113, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), 0x09 },3446	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS14, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), 0x0b },3447	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS21, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0), 0x09 },3448	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_ACTUAL_POWER_STATE, 0), 0x03 },3449};3450 3451static const struct reg_default rt1320_mbq_defaults[] = {3452	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_01), 0x0000 },3453	{ SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_02), 0x0000 },3454};3455 3456static bool rt1320_readable_register(struct device *dev, unsigned int reg)3457{3458	switch (reg) {3459	case 0xc000 ... 0xc086:3460	case 0xc400 ... 0xc409:3461	case 0xc480 ... 0xc48f:3462	case 0xc4c0 ... 0xc4c4:3463	case 0xc4e0 ... 0xc4e7:3464	case 0xc500:3465	case 0xc560 ... 0xc56b:3466	case 0xc570:3467	case 0xc580 ... 0xc59a:3468	case 0xc5b0 ... 0xc60f:3469	case 0xc640 ... 0xc64f:3470	case 0xc670:3471	case 0xc680 ... 0xc683:3472	case 0xc700 ... 0xc76f:3473	case 0xc800 ... 0xc801:3474	case 0xc820:3475	case 0xc900 ... 0xc901:3476	case 0xc920 ... 0xc921:3477	case 0xca00 ... 0xca07:3478	case 0xca20 ... 0xca27:3479	case 0xca40 ... 0xca4b:3480	case 0xca60 ... 0xca68:3481	case 0xca80 ... 0xca88:3482	case 0xcb00 ... 0xcb0c:3483	case 0xcc00 ... 0xcc12:3484	case 0xcc80 ... 0xcc81:3485	case 0xcd00:3486	case 0xcd80 ... 0xcd82:3487	case 0xce00 ... 0xce4d:3488	case 0xcf00 ... 0xcf25:3489	case 0xd000 ... 0xd0ff:3490	case 0xd100 ... 0xd1ff:3491	case 0xd200 ... 0xd2ff:3492	case 0xd300 ... 0xd3ff:3493	case 0xd400 ... 0xd403:3494	case 0xd410 ... 0xd417:3495	case 0xd470 ... 0xd497:3496	case 0xd4dc ... 0xd50f:3497	case 0xd520 ... 0xd543:3498	case 0xd560 ... 0xd5ef:3499	case 0xd600 ... 0xd663:3500	case 0xda00 ... 0xda6e:3501	case 0xda80 ... 0xda9e:3502	case 0xdb00 ... 0xdb7f:3503	case 0xdc00:3504	case 0xdc20 ... 0xdc21:3505	case 0xdd00 ... 0xdd17:3506	case 0xde00 ... 0xde09:3507	case 0xdf00 ... 0xdf1b:3508	case 0xe000 ... 0xe847:3509	case 0xf01e:3510	case 0xf717 ... 0xf719:3511	case 0xf720 ... 0xf723:3512	case 0x1000cd91 ... 0x1000cd96:3513	case 0x1000f008:3514	case 0x1000f021:3515	case 0x3fe2e000 ... 0x3fe2e003:3516	case 0x3fc2ab80 ... 0x3fc2abd4:3517	/* 0x41000189/0x4100018a */3518	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_01):3519	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_02):3520	/* 0x41001388 */3521	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE27, RT1320_SDCA_CTL_REQ_POWER_STATE, 0):3522	/* 0x41001988 */3523	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0):3524	/* 0x41080000 */3525	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT0, RT1320_SDCA_CTL_FUNC_STATUS, 0):3526	/* 0x41080200 */3527	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PPU21, RT1320_SDCA_CTL_POSTURE_NUMBER, 0):3528	/* 0x41080900 */3529	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS113, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0):3530	/* 0x41080980 */3531	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS14, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0):3532	/* 0x41081080 */3533	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS21, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0):3534	/* 0x41081480/0x41081488 */3535	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_SAPU, RT1320_SDCA_CTL_SAPU_PROTECTION_MODE, 0):3536	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_SAPU, RT1320_SDCA_CTL_SAPU_PROTECTION_STATUS, 0):3537	/* 0x41081980 */3538	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_ACTUAL_POWER_STATE, 0):3539		return true;3540	default:3541		return false;3542	}3543}3544 3545static bool rt1320_volatile_register(struct device *dev, unsigned int reg)3546{3547	switch (reg) {3548	case 0xc000:3549	case 0xc003:3550	case 0xc081:3551	case 0xc402 ... 0xc406:3552	case 0xc48c ... 0xc48f:3553	case 0xc560:3554	case 0xc5b5 ... 0xc5b7:3555	case 0xc5fc ... 0xc5ff:3556	case 0xc820:3557	case 0xc900:3558	case 0xc920:3559	case 0xca42:3560	case 0xca62:3561	case 0xca82:3562	case 0xcd00:3563	case 0xce03:3564	case 0xce10:3565	case 0xce14 ... 0xce17:3566	case 0xce44 ... 0xce49:3567	case 0xce4c ... 0xce4d:3568	case 0xcf0c:3569	case 0xcf10 ... 0xcf25:3570	case 0xd486 ... 0xd487:3571	case 0xd4e5 ... 0xd4e6:3572	case 0xd4e8 ... 0xd4ff:3573	case 0xd530:3574	case 0xd540:3575	case 0xd543:3576	case 0xdb58 ... 0xdb5f:3577	case 0xdb60 ... 0xdb63:3578	case 0xdb68 ... 0xdb69:3579	case 0xdb6d:3580	case 0xdb70 ... 0xdb71:3581	case 0xdb76:3582	case 0xdb7a:3583	case 0xdb7c ... 0xdb7f:3584	case 0xdd0c ... 0xdd13:3585	case 0xde02:3586	case 0xdf14 ... 0xdf1b:3587	case 0xe83c ... 0xe847:3588	case 0xf01e:3589	case 0xf717 ... 0xf719:3590	case 0xf720 ... 0xf723:3591	case 0x10000000 ... 0x10007fff:3592	case 0x1000c000 ... 0x1000dfff:3593	case 0x1000f008:3594	case 0x1000f021:3595	case 0x3fc2ab80 ... 0x3fc2abd4:3596	case 0x3fc2bf80 ... 0x3fc2bf83:3597	case 0x3fc2bfc0 ... 0x3fc2bfc7:3598	case 0x3fe2e000 ... 0x3fe2e003:3599	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT0, RT1320_SDCA_CTL_FUNC_STATUS, 0):3600	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_SAPU, RT1320_SDCA_CTL_SAPU_PROTECTION_MODE, 0):3601	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_SAPU, RT1320_SDCA_CTL_SAPU_PROTECTION_STATUS, 0):3602	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_ACTUAL_POWER_STATE, 0):3603		return true;3604	default:3605		return false;3606	}3607}3608 3609static bool rt1320_mbq_readable_register(struct device *dev, unsigned int reg)3610{3611	switch (reg) {3612	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_01):3613	case SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_02):3614		return true;3615	default:3616		return false;3617	}3618}3619 3620static const struct regmap_config rt1320_sdw_regmap = {3621	.reg_bits = 32,3622	.val_bits = 8,3623	.readable_reg = rt1320_readable_register,3624	.volatile_reg = rt1320_volatile_register,3625	.max_register = 0x41081980,3626	.reg_defaults = rt1320_reg_defaults,3627	.num_reg_defaults = ARRAY_SIZE(rt1320_reg_defaults),3628	.cache_type = REGCACHE_MAPLE,3629	.use_single_read = true,3630	.use_single_write = true,3631};3632 3633static const struct regmap_config rt1320_mbq_regmap = {3634	.name = "sdw-mbq",3635	.reg_bits = 32,3636	.val_bits = 16,3637	.readable_reg = rt1320_mbq_readable_register,3638	.max_register = 0x41000192,3639	.reg_defaults = rt1320_mbq_defaults,3640	.num_reg_defaults = ARRAY_SIZE(rt1320_mbq_defaults),3641	.cache_type = REGCACHE_MAPLE,3642	.use_single_read = true,3643	.use_single_write = true,3644};3645 3646static int rt1320_read_prop(struct sdw_slave *slave)3647{3648	struct sdw_slave_prop *prop = &slave->prop;3649	int nval;3650	int i, j;3651	u32 bit;3652	unsigned long addr;3653	struct sdw_dpn_prop *dpn;3654 3655	/*3656	 * Due to support the multi-lane, we call 'sdw_slave_read_prop' to get the lane mapping3657	 */3658	sdw_slave_read_prop(slave);3659 3660	prop->scp_int1_mask = SDW_SCP_INT1_BUS_CLASH | SDW_SCP_INT1_PARITY;3661	prop->quirks = SDW_SLAVE_QUIRKS_INVALID_INITIAL_PARITY;3662 3663	prop->paging_support = true;3664	prop->lane_control_support = true;3665 3666	/* first we need to allocate memory for set bits in port lists */3667	prop->source_ports = BIT(4);3668	prop->sink_ports = BIT(1);3669 3670	nval = hweight32(prop->source_ports);3671	prop->src_dpn_prop = devm_kcalloc(&slave->dev, nval,3672		sizeof(*prop->src_dpn_prop), GFP_KERNEL);3673	if (!prop->src_dpn_prop)3674		return -ENOMEM;3675 3676	i = 0;3677	dpn = prop->src_dpn_prop;3678	addr = prop->source_ports;3679	for_each_set_bit(bit, &addr, 32) {3680		dpn[i].num = bit;3681		dpn[i].type = SDW_DPN_FULL;3682		dpn[i].simple_ch_prep_sm = true;3683		dpn[i].ch_prep_timeout = 10;3684		i++;3685	}3686 3687	/* do this again for sink now */3688	nval = hweight32(prop->sink_ports);3689	prop->sink_dpn_prop = devm_kcalloc(&slave->dev, nval,3690		sizeof(*prop->sink_dpn_prop), GFP_KERNEL);3691	if (!prop->sink_dpn_prop)3692		return -ENOMEM;3693 3694	j = 0;3695	dpn = prop->sink_dpn_prop;3696	addr = prop->sink_ports;3697	for_each_set_bit(bit, &addr, 32) {3698		dpn[j].num = bit;3699		dpn[j].type = SDW_DPN_FULL;3700		dpn[j].simple_ch_prep_sm = true;3701		dpn[j].ch_prep_timeout = 10;3702		j++;3703	}3704 3705	/* set the timeout values */3706	prop->clk_stop_timeout = 64;3707 3708	return 0;3709}3710 3711static int rt1320_pde_transition_delay(struct rt1320_sdw_priv *rt1320, unsigned char ps)3712{3713	unsigned int delay = 1000, val;3714 3715	pm_runtime_mark_last_busy(&rt1320->sdw_slave->dev);3716 3717	/* waiting for Actual PDE becomes to PS0/PS3 */3718	while (delay) {3719		regmap_read(rt1320->regmap,3720			SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23,3721			RT1320_SDCA_CTL_ACTUAL_POWER_STATE, 0), &val);3722		if (val == ps)3723			break;3724 3725		usleep_range(1000, 1500);3726		delay--;3727	}3728	if (!delay) {3729		dev_warn(&rt1320->sdw_slave->dev, "%s PDE to %s is NOT ready", __func__, ps?"PS3":"PS0");3730		return -ETIMEDOUT;3731	}3732 3733	return 0;3734}3735 3736static void rt1320_vc_preset(struct rt1320_sdw_priv *rt1320)3737{3738	struct sdw_slave *slave = rt1320->sdw_slave;3739	unsigned int i, reg, val, delay, retry, tmp;3740 3741	regmap_multi_reg_write(rt1320->regmap, rt1320_vc_blind_write, ARRAY_SIZE(rt1320_vc_blind_write));3742 3743	for (i = 0; i < ARRAY_SIZE(rt1320_vc_patch_code_write); i++) {3744		reg = rt1320_vc_patch_code_write[i].reg;3745		val = rt1320_vc_patch_code_write[i].def;3746		delay = rt1320_vc_patch_code_write[i].delay_us;3747 3748		if ((reg == SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23, RT1320_SDCA_CTL_REQ_POWER_STATE, 0)) &&3749			(val == 0x00)) {3750			retry = 200;3751			while (retry) {3752				regmap_read(rt1320->regmap, RT1320_KR0_INT_READY, &tmp);3753				dev_dbg(&slave->dev, "%s, RT1320_KR0_INT_READY=0x%x\n", __func__, tmp);3754				if (tmp == 0x1f)3755					break;3756				usleep_range(1000, 1500);3757				retry--;3758			}3759			if (!retry)3760				dev_warn(&slave->dev, "%s MCU is NOT ready!", __func__);3761		}3762		regmap_write(rt1320->regmap, reg, val);3763		if (delay)3764			usleep_range(delay, delay + 1000);3765	}3766}3767 3768static int rt1320_io_init(struct device *dev, struct sdw_slave *slave)3769{3770	struct rt1320_sdw_priv *rt1320 = dev_get_drvdata(dev);3771	unsigned int amp_func_status, val, tmp;3772 3773	if (rt1320->hw_init)3774		return 0;3775 3776	regcache_cache_only(rt1320->regmap, false);3777	regcache_cache_only(rt1320->mbq_regmap, false);3778	if (rt1320->first_hw_init) {3779		regcache_cache_bypass(rt1320->regmap, true);3780		regcache_cache_bypass(rt1320->mbq_regmap, true);3781	} else {3782		/*3783		 * PM runtime status is marked as 'active' only when a Slave reports as Attached3784		 */3785		/* update count of parent 'active' children */3786		pm_runtime_set_active(&slave->dev);3787	}3788 3789	pm_runtime_get_noresume(&slave->dev);3790 3791	if (rt1320->version_id < 0) {3792		regmap_read(rt1320->regmap, RT1320_DEV_VERSION_ID_1, &val);3793		rt1320->version_id = val;3794	}3795 3796	regmap_read(rt1320->regmap,3797		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT0, RT1320_SDCA_CTL_FUNC_STATUS, 0), &amp_func_status);3798	dev_dbg(dev, "%s amp func_status=0x%x\n", __func__, amp_func_status);3799 3800	/* initialization write */3801	if ((amp_func_status & FUNCTION_NEEDS_INITIALIZATION)) {3802		if (rt1320->version_id < RT1320_VC) {3803			regmap_multi_reg_write(rt1320->regmap, rt1320_blind_write, ARRAY_SIZE(rt1320_blind_write));3804			regmap_multi_reg_write(rt1320->regmap, rt1320_patch_code_write,3805				ARRAY_SIZE(rt1320_patch_code_write));3806		} else if (rt1320->version_id == RT1320_VC) {3807			rt1320_vc_preset(rt1320);3808		}3809 3810		regmap_write(rt1320->regmap,3811			SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT0, RT1320_SDCA_CTL_FUNC_STATUS, 0),3812			FUNCTION_NEEDS_INITIALIZATION);3813	}3814	if (!rt1320->first_hw_init && rt1320->version_id == RT1320_VA) {3815		regmap_write(rt1320->regmap, SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23,3816			RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 0);3817		regmap_read(rt1320->regmap, RT1320_HIFI_VER_0, &val);3818		regmap_read(rt1320->regmap, RT1320_HIFI_VER_1, &tmp);3819		val = (tmp << 8) | val;3820		regmap_read(rt1320->regmap, RT1320_HIFI_VER_2, &tmp);3821		val = (tmp << 16) | val;3822		regmap_read(rt1320->regmap, RT1320_HIFI_VER_3, &tmp);3823		val = (tmp << 24) | val;3824		dev_dbg(dev, "%s ROM version=0x%x\n", __func__, val);3825		/*3826		 * We call the version b which has the new DSP ROM code against version a.3827		 * Therefore, we read the DSP address to check the ID.3828		 */3829		if (val == RT1320_VER_B_ID)3830			rt1320->version_id = RT1320_VB;3831		regmap_write(rt1320->regmap, SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23,3832			RT1320_SDCA_CTL_REQ_POWER_STATE, 0), 3);3833	}3834	dev_dbg(dev, "%s version_id=%d\n", __func__, rt1320->version_id);3835 3836	if (rt1320->first_hw_init) {3837		regcache_cache_bypass(rt1320->regmap, false);3838		regcache_cache_bypass(rt1320->mbq_regmap, false);3839		regcache_mark_dirty(rt1320->regmap);3840		regcache_mark_dirty(rt1320->mbq_regmap);3841	}3842 3843	/* Mark Slave initialization complete */3844	rt1320->first_hw_init = true;3845	rt1320->hw_init = true;3846 3847	pm_runtime_mark_last_busy(&slave->dev);3848	pm_runtime_put_autosuspend(&slave->dev);3849 3850	dev_dbg(&slave->dev, "%s hw_init complete\n", __func__);3851	return 0;3852}3853 3854static int rt1320_update_status(struct sdw_slave *slave,3855					enum sdw_slave_status status)3856{3857	struct  rt1320_sdw_priv *rt1320 = dev_get_drvdata(&slave->dev);3858 3859	if (status == SDW_SLAVE_UNATTACHED)3860		rt1320->hw_init = false;3861 3862	/*3863	 * Perform initialization only if slave status is present and3864	 * hw_init flag is false3865	 */3866	if (rt1320->hw_init || status != SDW_SLAVE_ATTACHED)3867		return 0;3868 3869	/* perform I/O transfers required for Slave initialization */3870	return rt1320_io_init(&slave->dev, slave);3871}3872 3873static int rt1320_pde23_event(struct snd_soc_dapm_widget *w,3874	struct snd_kcontrol *kcontrol, int event)3875{3876	struct snd_soc_component *component =3877		snd_soc_dapm_to_component(w->dapm);3878	struct rt1320_sdw_priv *rt1320 = snd_soc_component_get_drvdata(component);3879	unsigned char ps0 = 0x0, ps3 = 0x3;3880 3881	switch (event) {3882	case SND_SOC_DAPM_POST_PMU:3883		regmap_write(rt1320->regmap,3884			SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23,3885				RT1320_SDCA_CTL_REQ_POWER_STATE, 0), ps0);3886		rt1320_pde_transition_delay(rt1320, ps0);3887		break;3888	case SND_SOC_DAPM_PRE_PMD:3889		regmap_write(rt1320->regmap,3890			SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PDE23,3891				RT1320_SDCA_CTL_REQ_POWER_STATE, 0), ps3);3892		rt1320_pde_transition_delay(rt1320, ps3);3893		break;3894	default:3895		break;3896	}3897 3898	return 0;3899}3900 3901static int rt1320_set_gain_put(struct snd_kcontrol *kcontrol,3902		struct snd_ctl_elem_value *ucontrol)3903{3904	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);3905	struct soc_mixer_control *mc =3906		(struct soc_mixer_control *)kcontrol->private_value;3907	struct rt1320_sdw_priv *rt1320 = snd_soc_component_get_drvdata(component);3908	unsigned int gain_l_val, gain_r_val;3909	unsigned int lvalue, rvalue;3910	const unsigned int interval_offset = 0xc0;3911 3912	regmap_read(rt1320->mbq_regmap, mc->reg, &lvalue);3913	regmap_read(rt1320->mbq_regmap, mc->rreg, &rvalue);3914 3915	/* L Channel */3916	gain_l_val = ucontrol->value.integer.value[0];3917	if (gain_l_val > mc->max)3918		gain_l_val = mc->max;3919	gain_l_val = 0 - ((mc->max - gain_l_val) * interval_offset);3920	gain_l_val &= 0xffff;3921 3922	/* R Channel */3923	gain_r_val = ucontrol->value.integer.value[1];3924	if (gain_r_val > mc->max)3925		gain_r_val = mc->max;3926	gain_r_val = 0 - ((mc->max - gain_r_val) * interval_offset);3927	gain_r_val &= 0xffff;3928 3929	if (lvalue == gain_l_val && rvalue == gain_r_val)3930		return 0;3931 3932	/* Lch*/3933	regmap_write(rt1320->mbq_regmap, mc->reg, gain_l_val);3934	/* Rch */3935	regmap_write(rt1320->mbq_regmap, mc->rreg, gain_r_val);3936 3937	return 1;3938}3939 3940static int rt1320_set_gain_get(struct snd_kcontrol *kcontrol,3941		struct snd_ctl_elem_value *ucontrol)3942{3943	struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);3944	struct rt1320_sdw_priv *rt1320 = snd_soc_component_get_drvdata(component);3945	struct soc_mixer_control *mc =3946		(struct soc_mixer_control *)kcontrol->private_value;3947	unsigned int read_l, read_r, ctl_l = 0, ctl_r = 0;3948	const unsigned int interval_offset = 0xc0;3949 3950	regmap_read(rt1320->mbq_regmap, mc->reg, &read_l);3951	regmap_read(rt1320->mbq_regmap, mc->rreg, &read_r);3952 3953	ctl_l = mc->max - (((0 - read_l) & 0xffff) / interval_offset);3954 3955	if (read_l != read_r)3956		ctl_r = mc->max - (((0 - read_r) & 0xffff) / interval_offset);3957	else3958		ctl_r = ctl_l;3959 3960	ucontrol->value.integer.value[0] = ctl_l;3961	ucontrol->value.integer.value[1] = ctl_r;3962	return 0;3963}3964 3965static const char * const rt1320_rx_data_ch_select[] = {3966	"L,R",3967	"R,L",3968	"L,L",3969	"R,R",3970	"L,L+R",3971	"R,L+R",3972	"L+R,L",3973	"L+R,R",3974	"L+R,L+R",3975};3976 3977static SOC_ENUM_SINGLE_DECL(rt1320_rx_data_ch_enum,3978	SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_PPU21, RT1320_SDCA_CTL_POSTURE_NUMBER, 0), 0,3979	rt1320_rx_data_ch_select);3980 3981static const DECLARE_TLV_DB_SCALE(out_vol_tlv, -6525, 75, 0);3982 3983static const struct snd_kcontrol_new rt1320_snd_controls[] = {3984	SOC_DOUBLE_R_EXT_TLV("FU21 Playback Volume",3985		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_01),3986		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_VOLUME, CH_02),3987		0, 0x57, 0, rt1320_set_gain_get, rt1320_set_gain_put, out_vol_tlv),3988	SOC_ENUM("RX Channel Select", rt1320_rx_data_ch_enum),3989};3990 3991static const struct snd_kcontrol_new rt1320_spk_l_dac =3992	SOC_DAPM_SINGLE_AUTODISABLE("Switch",3993		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_01),3994		0, 1, 1);3995static const struct snd_kcontrol_new rt1320_spk_r_dac =3996	SOC_DAPM_SINGLE_AUTODISABLE("Switch",3997		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_FU21, RT1320_SDCA_CTL_FU_MUTE, CH_02),3998		0, 1, 1);3999 4000static const struct snd_soc_dapm_widget rt1320_dapm_widgets[] = {4001	/* Audio Interface */4002	SND_SOC_DAPM_AIF_IN("DP1RX", "DP1 Playback", 0, SND_SOC_NOPM, 0, 0),4003	SND_SOC_DAPM_AIF_OUT("DP4TX", "DP4 Capture", 0, SND_SOC_NOPM, 0, 0),4004 4005	/* Digital Interface */4006	SND_SOC_DAPM_PGA("FU21", SND_SOC_NOPM, 0, 0, NULL, 0),4007	SND_SOC_DAPM_SUPPLY("PDE 23", SND_SOC_NOPM, 0, 0,4008		rt1320_pde23_event,4009		SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),4010 4011	/* Output */4012	SND_SOC_DAPM_SWITCH("OT23 L", SND_SOC_NOPM, 0, 0, &rt1320_spk_l_dac),4013	SND_SOC_DAPM_SWITCH("OT23 R", SND_SOC_NOPM, 0, 0, &rt1320_spk_r_dac),4014	SND_SOC_DAPM_OUTPUT("SPOL"),4015	SND_SOC_DAPM_OUTPUT("SPOR"),4016 4017	/* Input */4018	SND_SOC_DAPM_PGA("AEC Data", SND_SOC_NOPM, 0, 0, NULL, 0),4019	SND_SOC_DAPM_SIGGEN("AEC Gen"),4020};4021 4022static const struct snd_soc_dapm_route rt1320_dapm_routes[] = {4023	{ "FU21", NULL, "DP1RX" },4024	{ "FU21", NULL, "PDE 23" },4025	{ "OT23 L", "Switch", "FU21" },4026	{ "OT23 R", "Switch", "FU21" },4027	{ "SPOL", NULL, "OT23 L" },4028	{ "SPOR", NULL, "OT23 R" },4029 4030	{ "AEC Data", NULL, "AEC Gen" },4031	{ "DP4TX", NULL, "AEC Data" },4032};4033 4034static int rt1320_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,4035				int direction)4036{4037	snd_soc_dai_dma_data_set(dai, direction, sdw_stream);4038	return 0;4039}4040 4041static void rt1320_sdw_shutdown(struct snd_pcm_substream *substream,4042				struct snd_soc_dai *dai)4043{4044	snd_soc_dai_set_dma_data(dai, substream, NULL);4045}4046 4047static int rt1320_sdw_hw_params(struct snd_pcm_substream *substream,4048	struct snd_pcm_hw_params *params, struct snd_soc_dai *dai)4049{4050	struct snd_soc_component *component = dai->component;4051	struct rt1320_sdw_priv *rt1320 =4052		snd_soc_component_get_drvdata(component);4053	struct sdw_stream_config stream_config;4054	struct sdw_port_config port_config;4055	struct sdw_stream_runtime *sdw_stream;4056	int retval;4057	unsigned int sampling_rate;4058 4059	dev_dbg(dai->dev, "%s %s", __func__, dai->name);4060	sdw_stream = snd_soc_dai_get_dma_data(dai, substream);4061 4062	if (!sdw_stream)4063		return -EINVAL;4064 4065	if (!rt1320->sdw_slave)4066		return -EINVAL;4067 4068	/* SoundWire specific configuration */4069	snd_sdw_params_to_config(substream, params, &stream_config, &port_config);4070 4071	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {4072		if (dai->id == RT1320_AIF1)4073			port_config.num = 1;4074		else4075			return -EINVAL;4076	} else {4077		if (dai->id == RT1320_AIF1)4078			port_config.num = 4;4079		else4080			return -EINVAL;4081	}4082 4083	retval = sdw_stream_add_slave(rt1320->sdw_slave, &stream_config,4084				&port_config, 1, sdw_stream);4085	if (retval) {4086		dev_err(dai->dev, "%s: Unable to configure port\n", __func__);4087		return retval;4088	}4089 4090	/* sampling rate configuration */4091	switch (params_rate(params)) {4092	case 16000:4093		sampling_rate = RT1320_SDCA_RATE_16000HZ;4094		break;4095	case 32000:4096		sampling_rate = RT1320_SDCA_RATE_32000HZ;4097		break;4098	case 44100:4099		sampling_rate = RT1320_SDCA_RATE_44100HZ;4100		break;4101	case 48000:4102		sampling_rate = RT1320_SDCA_RATE_48000HZ;4103		break;4104	case 96000:4105		sampling_rate = RT1320_SDCA_RATE_96000HZ;4106		break;4107	case 192000:4108		sampling_rate = RT1320_SDCA_RATE_192000HZ;4109		break;4110	default:4111		dev_err(component->dev, "%s: Rate %d is not supported\n",4112			__func__, params_rate(params));4113		return -EINVAL;4114	}4115 4116	/* set sampling frequency */4117	regmap_write(rt1320->regmap,4118		SDW_SDCA_CTL(FUNC_NUM_AMP, RT1320_SDCA_ENT_CS21, RT1320_SDCA_CTL_SAMPLE_FREQ_INDEX, 0),4119		sampling_rate);4120 4121	return 0;4122}4123 4124static int rt1320_sdw_pcm_hw_free(struct snd_pcm_substream *substream,4125				struct snd_soc_dai *dai)4126{4127	struct snd_soc_component *component = dai->component;4128	struct rt1320_sdw_priv *rt1320 =4129		snd_soc_component_get_drvdata(component);4130	struct sdw_stream_runtime *sdw_stream =4131		snd_soc_dai_get_dma_data(dai, substream);4132 4133	if (!rt1320->sdw_slave)4134		return -EINVAL;4135 4136	sdw_stream_remove_slave(rt1320->sdw_slave, sdw_stream);4137	return 0;4138}4139 4140/*4141 * slave_ops: callbacks for get_clock_stop_mode, clock_stop and4142 * port_prep are not defined for now4143 */4144static const struct sdw_slave_ops rt1320_slave_ops = {4145	.read_prop = rt1320_read_prop,4146	.update_status = rt1320_update_status,4147};4148 4149static int rt1320_sdw_component_probe(struct snd_soc_component *component)4150{4151	int ret;4152	struct rt1320_sdw_priv *rt1320 = snd_soc_component_get_drvdata(component);4153 4154	rt1320->component = component;4155 4156	if (!rt1320->first_hw_init)4157		return 0;4158 4159	ret = pm_runtime_resume(component->dev);4160	dev_dbg(&rt1320->sdw_slave->dev, "%s pm_runtime_resume, ret=%d", __func__, ret);4161	if (ret < 0 && ret != -EACCES)4162		return ret;4163 4164	return 0;4165}4166 4167static const struct snd_soc_component_driver soc_component_sdw_rt1320 = {4168	.probe = rt1320_sdw_component_probe,4169	.controls = rt1320_snd_controls,4170	.num_controls = ARRAY_SIZE(rt1320_snd_controls),4171	.dapm_widgets = rt1320_dapm_widgets,4172	.num_dapm_widgets = ARRAY_SIZE(rt1320_dapm_widgets),4173	.dapm_routes = rt1320_dapm_routes,4174	.num_dapm_routes = ARRAY_SIZE(rt1320_dapm_routes),4175	.endianness = 1,4176};4177 4178static const struct snd_soc_dai_ops rt1320_aif_dai_ops = {4179	.hw_params = rt1320_sdw_hw_params,4180	.hw_free	= rt1320_sdw_pcm_hw_free,4181	.set_stream	= rt1320_set_sdw_stream,4182	.shutdown	= rt1320_sdw_shutdown,4183};4184 4185#define RT1320_STEREO_RATES (SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | \4186	SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000)4187#define RT1320_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | \4188	SNDRV_PCM_FMTBIT_S32_LE)4189 4190static struct snd_soc_dai_driver rt1320_sdw_dai[] = {4191	{4192		.name = "rt1320-aif1",4193		.id = RT1320_AIF1,4194		.playback = {4195			.stream_name = "DP1 Playback",4196			.channels_min = 1,4197			.channels_max = 2,4198			.rates = RT1320_STEREO_RATES,4199			.formats = RT1320_FORMATS,4200		},4201		.capture = {4202			.stream_name = "DP4 Capture",4203			.channels_min = 1,4204			.channels_max = 2,4205			.rates = RT1320_STEREO_RATES,4206			.formats = RT1320_FORMATS,4207		},4208		.ops = &rt1320_aif_dai_ops,4209	},4210};4211 4212static int rt1320_sdw_init(struct device *dev, struct regmap *regmap,4213				struct regmap *mbq_regmap, struct sdw_slave *slave)4214{4215	struct rt1320_sdw_priv *rt1320;4216	int ret;4217 4218	rt1320 = devm_kzalloc(dev, sizeof(*rt1320), GFP_KERNEL);4219	if (!rt1320)4220		return -ENOMEM;4221 4222	dev_set_drvdata(dev, rt1320);4223	rt1320->sdw_slave = slave;4224	rt1320->mbq_regmap = mbq_regmap;4225	rt1320->regmap = regmap;4226 4227	regcache_cache_only(rt1320->regmap, true);4228	regcache_cache_only(rt1320->mbq_regmap, true);4229 4230	/*4231	 * Mark hw_init to false4232	 * HW init will be performed when device reports present4233	 */4234	rt1320->hw_init = false;4235	rt1320->first_hw_init = false;4236	rt1320->version_id = -1;4237 4238	ret =  devm_snd_soc_register_component(dev,4239				&soc_component_sdw_rt1320,4240				rt1320_sdw_dai,4241				ARRAY_SIZE(rt1320_sdw_dai));4242	if (ret < 0)4243		return ret;4244 4245	/* set autosuspend parameters */4246	pm_runtime_set_autosuspend_delay(dev, 3000);4247	pm_runtime_use_autosuspend(dev);4248 4249	/* make sure the device does not suspend immediately */4250	pm_runtime_mark_last_busy(dev);4251 4252	pm_runtime_enable(dev);4253 4254	/* important note: the device is NOT tagged as 'active' and will remain4255	 * 'suspended' until the hardware is enumerated/initialized. This is required4256	 * to make sure the ASoC framework use of pm_runtime_get_sync() does not silently4257	 * fail with -EACCESS because of race conditions between card creation and enumeration4258	 */4259 4260	dev_dbg(dev, "%s\n", __func__);4261 4262	return ret;4263}4264 4265static int rt1320_sdw_probe(struct sdw_slave *slave,4266				const struct sdw_device_id *id)4267{4268	struct regmap *regmap, *mbq_regmap;4269 4270	/* Regmap Initialization */4271	mbq_regmap = devm_regmap_init_sdw_mbq(slave, &rt1320_mbq_regmap);4272	if (IS_ERR(mbq_regmap))4273		return PTR_ERR(mbq_regmap);4274 4275	regmap = devm_regmap_init_sdw(slave, &rt1320_sdw_regmap);4276	if (IS_ERR(regmap))4277		return PTR_ERR(regmap);4278 4279	return rt1320_sdw_init(&slave->dev, regmap, mbq_regmap, slave);4280}4281 4282static int rt1320_sdw_remove(struct sdw_slave *slave)4283{4284	pm_runtime_disable(&slave->dev);4285 4286	return 0;4287}4288 4289/*4290 * Version A/B will use the class id 04291 * The newer version than A/B will use the class id 1, so add it in advance4292 */4293static const struct sdw_device_id rt1320_id[] = {4294	SDW_SLAVE_ENTRY_EXT(0x025d, 0x1320, 0x3, 0x0, 0),4295	SDW_SLAVE_ENTRY_EXT(0x025d, 0x1320, 0x3, 0x1, 0),4296	{},4297};4298MODULE_DEVICE_TABLE(sdw, rt1320_id);4299 4300static int __maybe_unused rt1320_dev_suspend(struct device *dev)4301{4302	struct rt1320_sdw_priv *rt1320 = dev_get_drvdata(dev);4303 4304	if (!rt1320->hw_init)4305		return 0;4306 4307	regcache_cache_only(rt1320->regmap, true);4308	regcache_cache_only(rt1320->mbq_regmap, true);4309	return 0;4310}4311 4312#define RT1320_PROBE_TIMEOUT 50004313 4314static int __maybe_unused rt1320_dev_resume(struct device *dev)4315{4316	struct sdw_slave *slave = dev_to_sdw_dev(dev);4317	struct rt1320_sdw_priv *rt1320 = dev_get_drvdata(dev);4318	unsigned long time;4319 4320	if (!rt1320->first_hw_init)4321		return 0;4322 4323	if (!slave->unattach_request)4324		goto regmap_sync;4325 4326	time = wait_for_completion_timeout(&slave->initialization_complete,4327				msecs_to_jiffies(RT1320_PROBE_TIMEOUT));4328	if (!time) {4329		dev_err(&slave->dev, "%s: Initialization not complete, timed out\n", __func__);4330		return -ETIMEDOUT;4331	}4332 4333regmap_sync:4334	slave->unattach_request = 0;4335	regcache_cache_only(rt1320->regmap, false);4336	regcache_sync(rt1320->regmap);4337	regcache_cache_only(rt1320->mbq_regmap, false);4338	regcache_sync(rt1320->mbq_regmap);4339	return 0;4340}4341 4342static const struct dev_pm_ops rt1320_pm = {4343	SET_SYSTEM_SLEEP_PM_OPS(rt1320_dev_suspend, rt1320_dev_resume)4344	SET_RUNTIME_PM_OPS(rt1320_dev_suspend, rt1320_dev_resume, NULL)4345};4346 4347static struct sdw_driver rt1320_sdw_driver = {4348	.driver = {4349		.name = "rt1320-sdca",4350		.pm = &rt1320_pm,4351	},4352	.probe = rt1320_sdw_probe,4353	.remove = rt1320_sdw_remove,4354	.ops = &rt1320_slave_ops,4355	.id_table = rt1320_id,4356};4357module_sdw_driver(rt1320_sdw_driver);4358 4359MODULE_DESCRIPTION("ASoC RT1320 driver SDCA SDW");4360MODULE_AUTHOR("Shuming Fan <shumingf@realtek.com>");4361MODULE_LICENSE("GPL");4362