Update surface state, sampler state and kernel for AVS on Sandybridge
authorXiang, Haihao <haihao.xiang@intel.com>
Wed, 26 Oct 2011 06:02:20 +0000 (14:02 +0800)
committerXiang, Haihao <haihao.xiang@intel.com>
Wed, 26 Oct 2011 06:02:20 +0000 (14:02 +0800)
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
src/i965_post_processing.c
src/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_Unpack_16x8.asm
src/shaders/post_processing/gen5_6/nv12_avs_nv12.g4b.gen5
src/shaders/post_processing/gen5_6/nv12_avs_nv12.g6b

index bbb5849..e6fda36 100644 (file)
@@ -1463,6 +1463,7 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
     int index;
     int in_w, in_h, in_wpitch, in_hpitch;
     int out_w, out_h, out_wpitch, out_hpitch;
+    int i;
 
     /* surface */
     obj_surface = SURFACE(src_surface->id);
@@ -1482,9 +1483,9 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
     /* source UV surface index 2 */
     i965_pp_set_surface2_state(ctx, pp_context,
                                obj_surface->bo, in_wpitch * in_hpitch,
-                               in_w, in_h, in_wpitch,
+                               in_w / 2, in_h / 2, in_wpitch,
                                0, 0,
-                               SURFACE_FORMAT_PLANAR_420_8, 1,
+                               SURFACE_FORMAT_R8B8_UNORM, 0,
                                2);
 
     /* destination surface */
@@ -1513,6 +1514,44 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
     assert(sizeof(*sampler_8x8_state) == sizeof(int) * 138);
     sampler_8x8_state = pp_context->sampler_state_table.bo_8x8->virtual;
     memset(sampler_8x8_state, 0, sizeof(*sampler_8x8_state));
+
+    for (i = 0; i < 17; i++) {
+        /* for Y channel, currently ignore */
+        sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c0 = 0x00;
+        sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c1 = 0x00;
+        sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c2 = 0x08;
+        sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c3 = 0x18;
+        sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c4 = 0x18;
+        sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c5 = 0x08;
+        sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c6 = 0x00;
+        sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c7 = 0x00;
+        sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c0 = 0x00;
+        sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c1 = 0x00;
+        sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c2 = 0x10;
+        sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c3 = 0x10;
+        sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c4 = 0x10;
+        sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c5 = 0x10;
+        sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c6 = 0x00;
+        sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c7 = 0x00;
+        /* for U/V channel, 0.25 */
+        sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c0 = 0x0;
+        sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c1 = 0x0;
+        sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c2 = 0x10;
+        sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c3 = 0x10;
+        sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c4 = 0x10;
+        sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c5 = 0x10;
+        sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c6 = 0x0;
+        sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c7 = 0x0;
+        sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c0 = 0x0;
+        sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c1 = 0x0;
+        sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c2 = 0x10;
+        sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c3 = 0x10;
+        sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c4 = 0x10;
+        sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c5 = 0x10;
+        sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c6 = 0x0;
+        sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c7 = 0x0;
+    }
+
     sampler_8x8_state->dw136.default_sharpness_level = 0;
     sampler_8x8_state->dw137.adaptive_filter_for_all_channel = 1;
     sampler_8x8_state->dw137.bypass_y_adaptive_filtering = 1;
@@ -1529,7 +1568,7 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
     index = 1;
     memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8));
     sampler_8x8[index].dw0.avs_filter_type = AVS_FILTER_ADAPTIVE_8_TAP;
-    sampler_8x8[index].dw0.ief_bypass = 0;
+    sampler_8x8[index].dw0.ief_bypass = 1;
     sampler_8x8[index].dw0.ief_filter_type = IEF_FILTER_DETAIL;
     sampler_8x8[index].dw0.ief_filter_size = IEF_FILTER_SIZE_5X5;
     sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5;
@@ -1589,25 +1628,14 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
                       sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1),
                       pp_context->sampler_state_table.bo_8x8);
 
-    dri_bo_map(pp_context->sampler_state_table.bo_8x8_uv, True);
-    assert(pp_context->sampler_state_table.bo_8x8_uv->virtual);
-    assert(sizeof(*sampler_8x8_state) == sizeof(int) * 138);
-    sampler_8x8_state = pp_context->sampler_state_table.bo_8x8_uv->virtual;
-    memset(sampler_8x8_state, 0, sizeof(*sampler_8x8_state));
-    sampler_8x8_state->dw136.default_sharpness_level = 0;
-    sampler_8x8_state->dw137.adaptive_filter_for_all_channel = 0;
-    sampler_8x8_state->dw137.bypass_y_adaptive_filtering = 1;
-    sampler_8x8_state->dw137.bypass_x_adaptive_filtering = 1;
-    dri_bo_unmap(pp_context->sampler_state_table.bo_8x8_uv);
-
     /* sample_8x8 UV index 2 */
     index = 2;
     memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8));
-    sampler_8x8[index].dw0.avs_filter_type = AVS_FILTER_NEAREST;
-    sampler_8x8[index].dw0.ief_bypass = 0;
+    sampler_8x8[index].dw0.avs_filter_type = AVS_FILTER_ADAPTIVE_8_TAP;
+    sampler_8x8[index].dw0.ief_bypass = 1;
     sampler_8x8[index].dw0.ief_filter_type = IEF_FILTER_DETAIL;
     sampler_8x8[index].dw0.ief_filter_size = IEF_FILTER_SIZE_5X5;
-    sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8_uv->offset >> 5;
+    sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5;
     sampler_8x8[index].dw2.global_noise_estimation = 22;
     sampler_8x8[index].dw2.strong_edge_threshold = 8;
     sampler_8x8[index].dw2.weak_edge_threshold = 1;
@@ -1662,7 +1690,7 @@ pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context
                       0,
                       0,
                       sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1),
-                      pp_context->sampler_state_table.bo_8x8_uv);
+                      pp_context->sampler_state_table.bo_8x8);
 
     dri_bo_unmap(pp_context->sampler_state_table.bo);
 
index 6e67557..6c994c1 100644 (file)
     } 
 
     // Move 1st 8x8 words of U to dest GRF  (Copy high byte in a word)
-    mov (8) uwDEST_V(0)<1>           ubAVS_RESPONSE(4,1)<16;4,2>      
-    mov (8) uwDEST_V(1)<1>           ubAVS_RESPONSE(4,8+1)<16;4,2>    
-    mov (8) uwDEST_V(2)<1>           ubAVS_RESPONSE(5,1)<16;4,2>      
-    mov (8) uwDEST_V(3)<1>           ubAVS_RESPONSE(5,8+1)<16;4,2>    
-    mov (8) uwDEST_V(4)<1>           ubAVS_RESPONSE(8,1)<16;4,2>      
-    mov (8) uwDEST_V(5)<1>           ubAVS_RESPONSE(8,8+1)<16;4,2>    
-    mov (8) uwDEST_V(6)<1>           ubAVS_RESPONSE(9,1)<16;4,2>      
-    mov (8) uwDEST_V(7)<1>           ubAVS_RESPONSE(9,8+1)<16;4,2>    
+    mov (8) uwDEST_U(0)<1>           ubAVS_RESPONSE(4,1)<16;4,2>      
+    mov (8) uwDEST_U(1)<1>           ubAVS_RESPONSE(4,8+1)<16;4,2>    
+    mov (8) uwDEST_U(2)<1>           ubAVS_RESPONSE(5,1)<16;4,2>      
+    mov (8) uwDEST_U(3)<1>           ubAVS_RESPONSE(5,8+1)<16;4,2>    
+    mov (8) uwDEST_U(4)<1>           ubAVS_RESPONSE(8,1)<16;4,2>      
+    mov (8) uwDEST_U(5)<1>           ubAVS_RESPONSE(8,8+1)<16;4,2>    
+    mov (8) uwDEST_U(6)<1>           ubAVS_RESPONSE(9,1)<16;4,2>      
+    mov (8) uwDEST_U(7)<1>           ubAVS_RESPONSE(9,8+1)<16;4,2>    
 
     // Move 1st 8x8 words of V to dest GRF  
-    mov (8) uwDEST_U(0)<1>           ubAVS_RESPONSE(6,1)<16;4,2>      
-    mov (8) uwDEST_U(1)<1>           ubAVS_RESPONSE(6,8+1)<16;4,2>    
-    mov (8) uwDEST_U(2)<1>           ubAVS_RESPONSE(7,1)<16;4,2>      
-    mov (8) uwDEST_U(3)<1>           ubAVS_RESPONSE(7,8+1)<16;4,2>    
-    mov (8) uwDEST_U(4)<1>           ubAVS_RESPONSE(10,1)<16;4,2>     
-    mov (8) uwDEST_U(5)<1>           ubAVS_RESPONSE(10,8+1)<16;4,2>   
-    mov (8) uwDEST_U(6)<1>           ubAVS_RESPONSE(11,1)<16;4,2>     
-    mov (8) uwDEST_U(7)<1>           ubAVS_RESPONSE(11,8+1)<16;4,2>   
+    mov (8) uwDEST_V(0)<1>           ubAVS_RESPONSE(6,1)<16;4,2>      
+    mov (8) uwDEST_V(1)<1>           ubAVS_RESPONSE(6,8+1)<16;4,2>    
+    mov (8) uwDEST_V(2)<1>           ubAVS_RESPONSE(7,1)<16;4,2>      
+    mov (8) uwDEST_V(3)<1>           ubAVS_RESPONSE(7,8+1)<16;4,2>    
+    mov (8) uwDEST_V(4)<1>           ubAVS_RESPONSE(10,1)<16;4,2>     
+    mov (8) uwDEST_V(5)<1>           ubAVS_RESPONSE(10,8+1)<16;4,2>   
+    mov (8) uwDEST_V(6)<1>           ubAVS_RESPONSE(11,1)<16;4,2>     
+    mov (8) uwDEST_V(7)<1>           ubAVS_RESPONSE(11,8+1)<16;4,2>   
 
     // Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each GRF.
     $for(0; <8/2; 1) {
     } 
 
     // Move 2st 8x8 words of U to dest GRF  (Copy high byte in a word)
-    mov (8) uwDEST_V(0,8)<1>         ubAVS_RESPONSE_2(4,1)<16;4,2>      
-    mov (8) uwDEST_V(1,8)<1>         ubAVS_RESPONSE_2(4,8+1)<16;4,2>    
-    mov (8) uwDEST_V(2,8)<1>         ubAVS_RESPONSE_2(5,1)<16;4,2>      
-    mov (8) uwDEST_V(3,8)<1>         ubAVS_RESPONSE_2(5,8+1)<16;4,2>    
-    mov (8) uwDEST_V(4,8)<1>         ubAVS_RESPONSE_2(8,1)<16;4,2>      
-    mov (8) uwDEST_V(5,8)<1>         ubAVS_RESPONSE_2(8,8+1)<16;4,2>    
-    mov (8) uwDEST_V(6,8)<1>         ubAVS_RESPONSE_2(9,1)<16;4,2>      
-    mov (8) uwDEST_V(7,8)<1>         ubAVS_RESPONSE_2(9,8+1)<16;4,2>    
+    mov (8) uwDEST_U(0,8)<1>         ubAVS_RESPONSE_2(4,1)<16;4,2>      
+    mov (8) uwDEST_U(1,8)<1>         ubAVS_RESPONSE_2(4,8+1)<16;4,2>    
+    mov (8) uwDEST_U(2,8)<1>         ubAVS_RESPONSE_2(5,1)<16;4,2>      
+    mov (8) uwDEST_U(3,8)<1>         ubAVS_RESPONSE_2(5,8+1)<16;4,2>    
+    mov (8) uwDEST_U(4,8)<1>         ubAVS_RESPONSE_2(8,1)<16;4,2>      
+    mov (8) uwDEST_U(5,8)<1>         ubAVS_RESPONSE_2(8,8+1)<16;4,2>    
+    mov (8) uwDEST_U(6,8)<1>         ubAVS_RESPONSE_2(9,1)<16;4,2>      
+    mov (8) uwDEST_U(7,8)<1>         ubAVS_RESPONSE_2(9,8+1)<16;4,2>    
 
     // Move 2st 8x8 words of V to dest GRF  
-    mov (8) uwDEST_U(0,8)<1>         ubAVS_RESPONSE_2(6,1)<16;4,2>      
-    mov (8) uwDEST_U(1,8)<1>         ubAVS_RESPONSE_2(6,8+1)<16;4,2>    
-    mov (8) uwDEST_U(2,8)<1>         ubAVS_RESPONSE_2(7,1)<16;4,2>      
-    mov (8) uwDEST_U(3,8)<1>         ubAVS_RESPONSE_2(7,8+1)<16;4,2>    
-    mov (8) uwDEST_U(4,8)<1>         ubAVS_RESPONSE_2(10,1)<16;4,2>     
-    mov (8) uwDEST_U(5,8)<1>         ubAVS_RESPONSE_2(10,8+1)<16;4,2>   
-    mov (8) uwDEST_U(6,8)<1>         ubAVS_RESPONSE_2(11,1)<16;4,2>     
-    mov (8) uwDEST_U(7,8)<1>         ubAVS_RESPONSE_2(11,8+1)<16;4,2>   
+    mov (8) uwDEST_V(0,8)<1>         ubAVS_RESPONSE_2(6,1)<16;4,2>      
+    mov (8) uwDEST_V(1,8)<1>         ubAVS_RESPONSE_2(6,8+1)<16;4,2>    
+    mov (8) uwDEST_V(2,8)<1>         ubAVS_RESPONSE_2(7,1)<16;4,2>      
+    mov (8) uwDEST_V(3,8)<1>         ubAVS_RESPONSE_2(7,8+1)<16;4,2>    
+    mov (8) uwDEST_V(4,8)<1>         ubAVS_RESPONSE_2(10,1)<16;4,2>     
+    mov (8) uwDEST_V(5,8)<1>         ubAVS_RESPONSE_2(10,8+1)<16;4,2>   
+    mov (8) uwDEST_V(6,8)<1>         ubAVS_RESPONSE_2(11,1)<16;4,2>     
+    mov (8) uwDEST_V(7,8)<1>         ubAVS_RESPONSE_2(11,8+1)<16;4,2>   
 #endif
 
        // Re-define new # of lines
index b7cbfb1..6685b46 100644 (file)
    { 0x00600001, 0x21e00229, 0x00aa0589, 0x00000000 },
    { 0x00600001, 0x22000229, 0x00aa05a1, 0x00000000 },
    { 0x00600001, 0x22200229, 0x00aa05a9, 0x00000000 },
-   { 0x00600001, 0x23400229, 0x00aa05c1, 0x00000000 },
-   { 0x00600001, 0x23600229, 0x00aa05c9, 0x00000000 },
-   { 0x00600001, 0x23800229, 0x00aa05e1, 0x00000000 },
-   { 0x00600001, 0x23a00229, 0x00aa05e9, 0x00000000 },
-   { 0x00600001, 0x23c00229, 0x00aa0641, 0x00000000 },
-   { 0x00600001, 0x23e00229, 0x00aa0649, 0x00000000 },
-   { 0x00600001, 0x24000229, 0x00aa0661, 0x00000000 },
-   { 0x00600001, 0x24200229, 0x00aa0669, 0x00000000 },
-   { 0x00600001, 0x22400229, 0x00aa0601, 0x00000000 },
-   { 0x00600001, 0x22600229, 0x00aa0609, 0x00000000 },
-   { 0x00600001, 0x22800229, 0x00aa0621, 0x00000000 },
-   { 0x00600001, 0x22a00229, 0x00aa0629, 0x00000000 },
-   { 0x00600001, 0x22c00229, 0x00aa0681, 0x00000000 },
-   { 0x00600001, 0x22e00229, 0x00aa0689, 0x00000000 },
-   { 0x00600001, 0x23000229, 0x00aa06a1, 0x00000000 },
-   { 0x00600001, 0x23200229, 0x00aa06a9, 0x00000000 },
+   { 0x00600001, 0x22400229, 0x00aa05c1, 0x00000000 },
+   { 0x00600001, 0x22600229, 0x00aa05c9, 0x00000000 },
+   { 0x00600001, 0x22800229, 0x00aa05e1, 0x00000000 },
+   { 0x00600001, 0x22a00229, 0x00aa05e9, 0x00000000 },
+   { 0x00600001, 0x22c00229, 0x00aa0641, 0x00000000 },
+   { 0x00600001, 0x22e00229, 0x00aa0649, 0x00000000 },
+   { 0x00600001, 0x23000229, 0x00aa0661, 0x00000000 },
+   { 0x00600001, 0x23200229, 0x00aa0669, 0x00000000 },
+   { 0x00600001, 0x23400229, 0x00aa0601, 0x00000000 },
+   { 0x00600001, 0x23600229, 0x00aa0609, 0x00000000 },
+   { 0x00600001, 0x23800229, 0x00aa0621, 0x00000000 },
+   { 0x00600001, 0x23a00229, 0x00aa0629, 0x00000000 },
+   { 0x00600001, 0x23c00229, 0x00aa0681, 0x00000000 },
+   { 0x00600001, 0x23e00229, 0x00aa0689, 0x00000000 },
+   { 0x00600001, 0x24000229, 0x00aa06a1, 0x00000000 },
+   { 0x00600001, 0x24200229, 0x00aa06a9, 0x00000000 },
    { 0x00600001, 0x21500229, 0x00aa0741, 0x00000000 },
    { 0x00600001, 0x21700229, 0x00aa0749, 0x00000000 },
    { 0x00600001, 0x21900229, 0x00aa0761, 0x00000000 },
    { 0x00600001, 0x21f00229, 0x00aa0789, 0x00000000 },
    { 0x00600001, 0x22100229, 0x00aa07a1, 0x00000000 },
    { 0x00600001, 0x22300229, 0x00aa07a9, 0x00000000 },
-   { 0x00600001, 0x23500229, 0x00aa07c1, 0x00000000 },
-   { 0x00600001, 0x23700229, 0x00aa07c9, 0x00000000 },
-   { 0x00600001, 0x23900229, 0x00aa07e1, 0x00000000 },
-   { 0x00600001, 0x23b00229, 0x00aa07e9, 0x00000000 },
-   { 0x00600001, 0x23d00229, 0x00aa0841, 0x00000000 },
-   { 0x00600001, 0x23f00229, 0x00aa0849, 0x00000000 },
-   { 0x00600001, 0x24100229, 0x00aa0861, 0x00000000 },
-   { 0x00600001, 0x24300229, 0x00aa0869, 0x00000000 },
-   { 0x00600001, 0x22500229, 0x00aa0801, 0x00000000 },
-   { 0x00600001, 0x22700229, 0x00aa0809, 0x00000000 },
-   { 0x00600001, 0x22900229, 0x00aa0821, 0x00000000 },
-   { 0x00600001, 0x22b00229, 0x00aa0829, 0x00000000 },
-   { 0x00600001, 0x22d00229, 0x00aa0881, 0x00000000 },
-   { 0x00600001, 0x22f00229, 0x00aa0889, 0x00000000 },
-   { 0x00600001, 0x23100229, 0x00aa08a1, 0x00000000 },
-   { 0x00600001, 0x23300229, 0x00aa08a9, 0x00000000 },
+   { 0x00600001, 0x22500229, 0x00aa07c1, 0x00000000 },
+   { 0x00600001, 0x22700229, 0x00aa07c9, 0x00000000 },
+   { 0x00600001, 0x22900229, 0x00aa07e1, 0x00000000 },
+   { 0x00600001, 0x22b00229, 0x00aa07e9, 0x00000000 },
+   { 0x00600001, 0x22d00229, 0x00aa0841, 0x00000000 },
+   { 0x00600001, 0x22f00229, 0x00aa0849, 0x00000000 },
+   { 0x00600001, 0x23100229, 0x00aa0861, 0x00000000 },
+   { 0x00600001, 0x23300229, 0x00aa0869, 0x00000000 },
+   { 0x00600001, 0x23500229, 0x00aa0801, 0x00000000 },
+   { 0x00600001, 0x23700229, 0x00aa0809, 0x00000000 },
+   { 0x00600001, 0x23900229, 0x00aa0821, 0x00000000 },
+   { 0x00600001, 0x23b00229, 0x00aa0829, 0x00000000 },
+   { 0x00600001, 0x23d00229, 0x00aa0881, 0x00000000 },
+   { 0x00600001, 0x23f00229, 0x00aa0889, 0x00000000 },
+   { 0x00600001, 0x24100229, 0x00aa08a1, 0x00000000 },
+   { 0x00600001, 0x24300229, 0x00aa08a9, 0x00000000 },
    { 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 },
    { 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 },
    { 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 },
index 574b079..5868243 100644 (file)
    { 0x00600001, 0x21e00229, 0x00aa0589, 0x00000000 },
    { 0x00600001, 0x22000229, 0x00aa05a1, 0x00000000 },
    { 0x00600001, 0x22200229, 0x00aa05a9, 0x00000000 },
-   { 0x00600001, 0x23400229, 0x00aa05c1, 0x00000000 },
-   { 0x00600001, 0x23600229, 0x00aa05c9, 0x00000000 },
-   { 0x00600001, 0x23800229, 0x00aa05e1, 0x00000000 },
-   { 0x00600001, 0x23a00229, 0x00aa05e9, 0x00000000 },
-   { 0x00600001, 0x23c00229, 0x00aa0641, 0x00000000 },
-   { 0x00600001, 0x23e00229, 0x00aa0649, 0x00000000 },
-   { 0x00600001, 0x24000229, 0x00aa0661, 0x00000000 },
-   { 0x00600001, 0x24200229, 0x00aa0669, 0x00000000 },
-   { 0x00600001, 0x22400229, 0x00aa0601, 0x00000000 },
-   { 0x00600001, 0x22600229, 0x00aa0609, 0x00000000 },
-   { 0x00600001, 0x22800229, 0x00aa0621, 0x00000000 },
-   { 0x00600001, 0x22a00229, 0x00aa0629, 0x00000000 },
-   { 0x00600001, 0x22c00229, 0x00aa0681, 0x00000000 },
-   { 0x00600001, 0x22e00229, 0x00aa0689, 0x00000000 },
-   { 0x00600001, 0x23000229, 0x00aa06a1, 0x00000000 },
-   { 0x00600001, 0x23200229, 0x00aa06a9, 0x00000000 },
+   { 0x00600001, 0x22400229, 0x00aa05c1, 0x00000000 },
+   { 0x00600001, 0x22600229, 0x00aa05c9, 0x00000000 },
+   { 0x00600001, 0x22800229, 0x00aa05e1, 0x00000000 },
+   { 0x00600001, 0x22a00229, 0x00aa05e9, 0x00000000 },
+   { 0x00600001, 0x22c00229, 0x00aa0641, 0x00000000 },
+   { 0x00600001, 0x22e00229, 0x00aa0649, 0x00000000 },
+   { 0x00600001, 0x23000229, 0x00aa0661, 0x00000000 },
+   { 0x00600001, 0x23200229, 0x00aa0669, 0x00000000 },
+   { 0x00600001, 0x23400229, 0x00aa0601, 0x00000000 },
+   { 0x00600001, 0x23600229, 0x00aa0609, 0x00000000 },
+   { 0x00600001, 0x23800229, 0x00aa0621, 0x00000000 },
+   { 0x00600001, 0x23a00229, 0x00aa0629, 0x00000000 },
+   { 0x00600001, 0x23c00229, 0x00aa0681, 0x00000000 },
+   { 0x00600001, 0x23e00229, 0x00aa0689, 0x00000000 },
+   { 0x00600001, 0x24000229, 0x00aa06a1, 0x00000000 },
+   { 0x00600001, 0x24200229, 0x00aa06a9, 0x00000000 },
    { 0x00600001, 0x21500229, 0x00aa0741, 0x00000000 },
    { 0x00600001, 0x21700229, 0x00aa0749, 0x00000000 },
    { 0x00600001, 0x21900229, 0x00aa0761, 0x00000000 },
    { 0x00600001, 0x21f00229, 0x00aa0789, 0x00000000 },
    { 0x00600001, 0x22100229, 0x00aa07a1, 0x00000000 },
    { 0x00600001, 0x22300229, 0x00aa07a9, 0x00000000 },
-   { 0x00600001, 0x23500229, 0x00aa07c1, 0x00000000 },
-   { 0x00600001, 0x23700229, 0x00aa07c9, 0x00000000 },
-   { 0x00600001, 0x23900229, 0x00aa07e1, 0x00000000 },
-   { 0x00600001, 0x23b00229, 0x00aa07e9, 0x00000000 },
-   { 0x00600001, 0x23d00229, 0x00aa0841, 0x00000000 },
-   { 0x00600001, 0x23f00229, 0x00aa0849, 0x00000000 },
-   { 0x00600001, 0x24100229, 0x00aa0861, 0x00000000 },
-   { 0x00600001, 0x24300229, 0x00aa0869, 0x00000000 },
-   { 0x00600001, 0x22500229, 0x00aa0801, 0x00000000 },
-   { 0x00600001, 0x22700229, 0x00aa0809, 0x00000000 },
-   { 0x00600001, 0x22900229, 0x00aa0821, 0x00000000 },
-   { 0x00600001, 0x22b00229, 0x00aa0829, 0x00000000 },
-   { 0x00600001, 0x22d00229, 0x00aa0881, 0x00000000 },
-   { 0x00600001, 0x22f00229, 0x00aa0889, 0x00000000 },
-   { 0x00600001, 0x23100229, 0x00aa08a1, 0x00000000 },
-   { 0x00600001, 0x23300229, 0x00aa08a9, 0x00000000 },
+   { 0x00600001, 0x22500229, 0x00aa07c1, 0x00000000 },
+   { 0x00600001, 0x22700229, 0x00aa07c9, 0x00000000 },
+   { 0x00600001, 0x22900229, 0x00aa07e1, 0x00000000 },
+   { 0x00600001, 0x22b00229, 0x00aa07e9, 0x00000000 },
+   { 0x00600001, 0x22d00229, 0x00aa0841, 0x00000000 },
+   { 0x00600001, 0x22f00229, 0x00aa0849, 0x00000000 },
+   { 0x00600001, 0x23100229, 0x00aa0861, 0x00000000 },
+   { 0x00600001, 0x23300229, 0x00aa0869, 0x00000000 },
+   { 0x00600001, 0x23500229, 0x00aa0801, 0x00000000 },
+   { 0x00600001, 0x23700229, 0x00aa0809, 0x00000000 },
+   { 0x00600001, 0x23900229, 0x00aa0821, 0x00000000 },
+   { 0x00600001, 0x23b00229, 0x00aa0829, 0x00000000 },
+   { 0x00600001, 0x23d00229, 0x00aa0881, 0x00000000 },
+   { 0x00600001, 0x23f00229, 0x00aa0889, 0x00000000 },
+   { 0x00600001, 0x24100229, 0x00aa08a1, 0x00000000 },
+   { 0x00600001, 0x24300229, 0x00aa08a9, 0x00000000 },
    { 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 },
    { 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 },
    { 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 },