Merge tag 'drm-misc-next-2017-10-16' of git://anongit.freedesktop.org/drm/drm-misc...
authorDave Airlie <airlied@redhat.com>
Tue, 17 Oct 2017 00:10:17 +0000 (10:10 +1000)
committerDave Airlie <airlied@redhat.com>
Tue, 17 Oct 2017 00:10:17 +0000 (10:10 +1000)
Quick 4.15 misc pull for the build fix:

Cross-subsystem Changes:
- piles an piles of misc/trivial patches all over, some more from
  outreachy applicants

Core Changes:
- build fix for the bridge/of cleanup (Maarten)
- fix vblank count in arm_vblank_event (Ville)
- some kerneldoc typo fixes from Thierry

Driver Changes:
- vc4: Fix T-format tiling scanout, cleanup clock divider w/a (Anholt)
- sun4i: small cleanups and improved code comments all over (Chen-Yu
  Tsai)

* tag 'drm-misc-next-2017-10-16' of git://anongit.freedesktop.org/drm/drm-misc: (21 commits)
  drm/via: use ARRAY_SIZE
  drm/gma500: use ARRAY_SIZE
  drm/sun4i: hdmi: Move PAD_CTRL1 setting to mode_set function
  drm/sun4i: hdmi: Document PAD_CTRL1 output invert bits
  drm/sun4i: backend: Add comment explaining why registers are cleared
  drm/sun4i: backend: Use drm_fb_cma_get_gem_addr() to get display memory
  drm/sun4i: backend: Create regmap after access is possible
  drm/sun4i: don't add components that are already in the queue
  drm/vc4: Fix pitch setup for T-format scanout.
  drm/vc4: Move the DSI clock divider workaround closer to the clock call.
  drm: Replace kzalloc with kcalloc
  drm/tinydrm: Remove explicit .best_encoder assignment
  drm/tinydrm: Replace dev_error with DRM_DEV_ERROR
  drm/drm_of: Move drm_of_panel_bridge_remove_function into header.
  drm/atomic-helper: Fix reference to drm_crtc_send_vblank_event()
  drm/atomic-helper: Fix typo
  drm: Add missing __user annotation to drm_syncobj_array_find()
  drm/rockchip: add PINCTRL dependency for LVDS
  drm/kirin: Checking for IS_ERR() instead of NULL
  driver:gpu: return -ENOMEM on allocation failure.
  ...

248 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_queue_mgr.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vf_error.h
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h
drivers/gpu/drm/amd/amdgpu/ci_dpm.c
drivers/gpu/drm/amd/amdgpu/cik_ih.c
drivers/gpu/drm/amd/amdgpu/cz_ih.c
drivers/gpu/drm/amd/amdgpu/dce_virtual.c
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
drivers/gpu/drm/amd/amdgpu/iceland_ih.c
drivers/gpu/drm/amd/amdgpu/kv_dpm.c
drivers/gpu/drm/amd/amdgpu/nbio_v6_1.c
drivers/gpu/drm/amd/amdgpu/nbio_v6_1.h
drivers/gpu/drm/amd/amdgpu/nbio_v7_0.c
drivers/gpu/drm/amd/amdgpu/nbio_v7_0.h
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
drivers/gpu/drm/amd/amdgpu/si_dpm.c
drivers/gpu/drm/amd/amdgpu/soc15.c
drivers/gpu/drm/amd/amdgpu/tonga_ih.c
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
drivers/gpu/drm/amd/amdgpu/vega10_ih.c
drivers/gpu/drm/amd/amdgpu/vi.c
drivers/gpu/drm/amd/amdgpu/vid.h
drivers/gpu/drm/amd/include/amd_shared.h
drivers/gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h
drivers/gpu/drm/amd/include/atombios.h
drivers/gpu/drm/amd/include/cgs_common.h
drivers/gpu/drm/amd/lib/Kconfig
drivers/gpu/drm/amd/lib/chash.c
drivers/gpu/drm/amd/powerplay/amd_powerplay.c
drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/pp_overdriver.c
drivers/gpu/drm/amd/powerplay/hwmgr/pp_overdriver.h
drivers/gpu/drm/amd/powerplay/hwmgr/pp_psm.c
drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c
drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.h
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_powertune.c
drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
drivers/gpu/drm/amd/powerplay/inc/fiji_pwrvirus.h
drivers/gpu/drm/amd/powerplay/inc/polaris10_pwrvirus.h
drivers/gpu/drm/amd/powerplay/inc/pp_instance.h
drivers/gpu/drm/amd/powerplay/inc/rv_ppsmc.h
drivers/gpu/drm/amd/powerplay/smumgr/Makefile
drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.c
drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h [deleted file]
drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c [deleted file]
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/bochs/bochs_kms.c
drivers/gpu/drm/cirrus/cirrus_mode.c
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_atomic_helper.c
drivers/gpu/drm/drm_color_mgmt.c
drivers/gpu/drm/drm_connector.c
drivers/gpu/drm/drm_crtc.c
drivers/gpu/drm/drm_crtc_internal.h
drivers/gpu/drm/drm_encoder.c
drivers/gpu/drm/drm_framebuffer.c
drivers/gpu/drm/drm_internal.h
drivers/gpu/drm/drm_ioctl.c
drivers/gpu/drm/drm_mode_object.c
drivers/gpu/drm/drm_plane.c
drivers/gpu/drm/drm_probe_helper.c
drivers/gpu/drm/drm_property.c
drivers/gpu/drm/drm_syncobj.c
drivers/gpu/drm/drm_vblank.c
drivers/gpu/drm/etnaviv/Kconfig
drivers/gpu/drm/etnaviv/Makefile
drivers/gpu/drm/etnaviv/etnaviv_buffer.c
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.c
drivers/gpu/drm/etnaviv/etnaviv_cmdbuf.h
drivers/gpu/drm/etnaviv/etnaviv_drv.c
drivers/gpu/drm/etnaviv/etnaviv_drv.h
drivers/gpu/drm/etnaviv/etnaviv_gem.c
drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
drivers/gpu/drm/etnaviv/etnaviv_gpu.c
drivers/gpu/drm/etnaviv/etnaviv_gpu.h
drivers/gpu/drm/etnaviv/etnaviv_iommu.c
drivers/gpu/drm/etnaviv/etnaviv_iommu.h
drivers/gpu/drm/etnaviv/etnaviv_iommu_v2.c
drivers/gpu/drm/etnaviv/etnaviv_mmu.c
drivers/gpu/drm/etnaviv/etnaviv_mmu.h
drivers/gpu/drm/etnaviv/etnaviv_perfmon.c [new file with mode: 0644]
drivers/gpu/drm/etnaviv/etnaviv_perfmon.h [new file with mode: 0644]
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c
drivers/gpu/drm/i915/Kconfig
drivers/gpu/drm/i915/Makefile
drivers/gpu/drm/i915/gvt/cfg_space.c
drivers/gpu/drm/i915/gvt/cmd_parser.c
drivers/gpu/drm/i915/gvt/execlist.c
drivers/gpu/drm/i915/gvt/gtt.c
drivers/gpu/drm/i915/gvt/gvt.c
drivers/gpu/drm/i915/gvt/gvt.h
drivers/gpu/drm/i915/gvt/kvmgt.c
drivers/gpu/drm/i915/gvt/mmio.c
drivers/gpu/drm/i915/gvt/render.c
drivers/gpu/drm/i915/gvt/scheduler.c
drivers/gpu/drm/i915/gvt/scheduler.h
drivers/gpu/drm/i915/i915_debugfs.c
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem.c
drivers/gpu/drm/i915/i915_gem_context.c
drivers/gpu/drm/i915/i915_gem_execbuffer.c
drivers/gpu/drm/i915/i915_gem_gtt.c
drivers/gpu/drm/i915/i915_gem_gtt.h
drivers/gpu/drm/i915/i915_gem_request.c
drivers/gpu/drm/i915/i915_gem_request.h
drivers/gpu/drm/i915/i915_gem_userptr.c
drivers/gpu/drm/i915/i915_gpu_error.c
drivers/gpu/drm/i915/i915_guc_submission.c
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/i915_oa_cflgt2.c [new file with mode: 0644]
drivers/gpu/drm/i915/i915_oa_cflgt2.h [new file with mode: 0644]
drivers/gpu/drm/i915/i915_params.c
drivers/gpu/drm/i915/i915_params.h
drivers/gpu/drm/i915/i915_pci.c
drivers/gpu/drm/i915/i915_perf.c
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_sw_fence.c
drivers/gpu/drm/i915/intel_audio.c
drivers/gpu/drm/i915/intel_bios.c
drivers/gpu/drm/i915/intel_breadcrumbs.c
drivers/gpu/drm/i915/intel_cdclk.c
drivers/gpu/drm/i915/intel_crt.c
drivers/gpu/drm/i915/intel_csr.c
drivers/gpu/drm/i915/intel_ddi.c
drivers/gpu/drm/i915/intel_device_info.c
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_dp.c
drivers/gpu/drm/i915/intel_dp_aux_backlight.c
drivers/gpu/drm/i915/intel_dp_mst.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_dsi.c
drivers/gpu/drm/i915/intel_engine_cs.c
drivers/gpu/drm/i915/intel_fbc.c
drivers/gpu/drm/i915/intel_fifo_underrun.c
drivers/gpu/drm/i915/intel_guc_fwif.h
drivers/gpu/drm/i915/intel_guc_loader.c
drivers/gpu/drm/i915/intel_guc_log.c
drivers/gpu/drm/i915/intel_gvt.c
drivers/gpu/drm/i915/intel_hangcheck.c
drivers/gpu/drm/i915/intel_huc.c
drivers/gpu/drm/i915/intel_lrc.c
drivers/gpu/drm/i915/intel_lrc.h
drivers/gpu/drm/i915/intel_lvds.c
drivers/gpu/drm/i915/intel_modes.c
drivers/gpu/drm/i915/intel_opregion.c
drivers/gpu/drm/i915/intel_overlay.c
drivers/gpu/drm/i915/intel_panel.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/i915/intel_psr.c
drivers/gpu/drm/i915/intel_ringbuffer.c
drivers/gpu/drm/i915/intel_ringbuffer.h
drivers/gpu/drm/i915/intel_runtime_pm.c
drivers/gpu/drm/i915/intel_sprite.c
drivers/gpu/drm/i915/intel_tv.c
drivers/gpu/drm/i915/intel_uc.c
drivers/gpu/drm/i915/intel_uc.h
drivers/gpu/drm/i915/intel_uncore.c
drivers/gpu/drm/i915/intel_uncore.h
drivers/gpu/drm/i915/selftests/i915_gem_timeline.c
drivers/gpu/drm/i915/selftests/i915_random.c
drivers/gpu/drm/i915/selftests/i915_random.h
drivers/gpu/drm/i915/selftests/intel_hangcheck.c
drivers/gpu/drm/i915/selftests/mock_gem_device.c
drivers/gpu/drm/mgag200/mgag200_mode.c
drivers/gpu/drm/nouveau/nouveau_connector.c
drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
drivers/gpu/drm/omapdrm/dss/Kconfig
drivers/gpu/drm/omapdrm/dss/Makefile
drivers/gpu/drm/omapdrm/dss/hdmi.h
drivers/gpu/drm/omapdrm/dss/hdmi4.c
drivers/gpu/drm/omapdrm/dss/hdmi4_cec.c [new file with mode: 0644]
drivers/gpu/drm/omapdrm/dss/hdmi4_cec.h [new file with mode: 0644]
drivers/gpu/drm/omapdrm/dss/hdmi4_core.c
drivers/gpu/drm/omapdrm/dss/hdmi4_core.h
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/radeon/atombios_dp.c
drivers/gpu/drm/radeon/ci_dpm.c
drivers/gpu/drm/radeon/ci_dpm.h
drivers/gpu/drm/radeon/ci_smc.c
drivers/gpu/drm/radeon/r100.c
drivers/gpu/drm/radeon/r600_cs.c
drivers/gpu/drm/radeon/radeon_connectors.c
drivers/gpu/drm/radeon/radeon_kfd.c
drivers/gpu/drm/radeon/radeon_mode.h
drivers/gpu/drm/ttm/ttm_memory.c
drivers/gpu/drm/ttm/ttm_page_alloc.c
drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
drivers/gpu/drm/udl/udl_connector.c
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
drivers/media/v4l2-core/videobuf2-dma-contig.c
drivers/rapidio/devices/rio_mport_cdev.c
drivers/staging/vboxvideo/vbox_mode.c
include/drm/drm_connector.h
include/drm/drm_crtc.h
include/drm/drm_dp_helper.h
include/drm/drm_drv.h
include/drm/drm_encoder.h
include/drm/drm_framebuffer.h
include/drm/drm_mode_object.h
include/drm/drm_plane.h
include/drm/drm_property.h
include/drm/drm_syncobj.h
include/drm/drm_vblank.h
include/drm/i915_pciids.h
include/drm/ttm/ttm_memory.h
include/linux/scatterlist.h
include/uapi/drm/amdgpu_drm.h
include/uapi/drm/etnaviv_drm.h
include/uapi/drm/i915_drm.h
lib/scatterlist.c
tools/testing/scatterlist/Makefile [new file with mode: 0644]
tools/testing/scatterlist/linux/mm.h [new file with mode: 0644]
tools/testing/scatterlist/main.c [new file with mode: 0644]

index ebfc267..a23b8af 100644 (file)
@@ -121,6 +121,7 @@ extern int amdgpu_cntl_sb_buf_per_se;
 extern int amdgpu_param_buf_per_se;
 extern int amdgpu_job_hang_limit;
 extern int amdgpu_lbpw;
+extern int amdgpu_compute_multipipe;
 
 #ifdef CONFIG_DRM_AMDGPU_SI
 extern int amdgpu_si_support;
@@ -1310,6 +1311,8 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
 int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
                        struct drm_file *filp);
 int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp);
+int amdgpu_cs_fence_to_handle_ioctl(struct drm_device *dev, void *data,
+                                   struct drm_file *filp);
 int amdgpu_cs_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *filp);
 int amdgpu_cs_wait_fences_ioctl(struct drm_device *dev, void *data,
                                struct drm_file *filp);
@@ -1524,7 +1527,6 @@ struct amdgpu_device {
 
        /* powerplay */
        struct amd_powerplay            powerplay;
-       bool                            pp_enabled;
        bool                            pp_force_state_enabled;
 
        /* dpm */
index dc7e25c..47d1c13 100644 (file)
@@ -338,6 +338,7 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
        struct cik_mqd *m;
        uint32_t *mqd_hqd;
        uint32_t reg, wptr_val, data;
+       bool valid_wptr = false;
 
        m = get_mqd(mqd);
 
@@ -356,7 +357,14 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
                             CP_HQD_PQ_DOORBELL_CONTROL, DOORBELL_EN, 1);
        WREG32(mmCP_HQD_PQ_DOORBELL_CONTROL, data);
 
-       if (read_user_wptr(mm, wptr, wptr_val))
+       /* read_user_ptr may take the mm->mmap_sem.
+        * release srbm_mutex to avoid circular dependency between
+        * srbm_mutex->mm_sem->reservation_ww_class_mutex->srbm_mutex.
+        */
+       release_queue(kgd);
+       valid_wptr = read_user_wptr(mm, wptr, wptr_val);
+       acquire_queue(kgd, pipe_id, queue_id);
+       if (valid_wptr)
                WREG32(mmCP_HQD_PQ_WPTR, (wptr_val << wptr_shift) & wptr_mask);
 
        data = REG_SET_FIELD(m->cp_hqd_active, CP_HQD_ACTIVE, ACTIVE, 1);
index c678c69..056929b 100644 (file)
@@ -292,6 +292,7 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
        struct vi_mqd *m;
        uint32_t *mqd_hqd;
        uint32_t reg, wptr_val, data;
+       bool valid_wptr = false;
 
        m = get_mqd(mqd);
 
@@ -339,7 +340,14 @@ static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
                             CP_HQD_PQ_DOORBELL_CONTROL, DOORBELL_EN, 1);
        WREG32(mmCP_HQD_PQ_DOORBELL_CONTROL, data);
 
-       if (read_user_wptr(mm, wptr, wptr_val))
+       /* read_user_ptr may take the mm->mmap_sem.
+        * release srbm_mutex to avoid circular dependency between
+        * srbm_mutex->mm_sem->reservation_ww_class_mutex->srbm_mutex.
+        */
+       release_queue(kgd);
+       valid_wptr = read_user_wptr(mm, wptr, wptr_val);
+       acquire_queue(kgd, pipe_id, queue_id);
+       if (valid_wptr)
                WREG32(mmCP_HQD_PQ_WPTR, (wptr_val << wptr_shift) & wptr_mask);
 
        data = REG_SET_FIELD(m->cp_hqd_active, CP_HQD_ACTIVE, ACTIVE, 1);
index 383204e..a7afe55 100644 (file)
@@ -42,6 +42,28 @@ struct amdgpu_cgs_device {
        struct amdgpu_device *adev =                                    \
                ((struct amdgpu_cgs_device *)cgs_device)->adev
 
+static void *amdgpu_cgs_register_pp_handle(struct cgs_device *cgs_device,
+                       int (*call_back_func)(struct amd_pp_init *, void **))
+{
+       CGS_FUNC_ADEV;
+       struct amd_pp_init pp_init;
+       struct amd_powerplay *amd_pp;
+
+       if (call_back_func == NULL)
+               return NULL;
+
+       amd_pp = &(adev->powerplay);
+       pp_init.chip_family = adev->family;
+       pp_init.chip_id = adev->asic_type;
+       pp_init.pm_en = (amdgpu_dpm != 0 && !amdgpu_sriov_vf(adev)) ? true : false;
+       pp_init.feature_mask = amdgpu_pp_feature_mask;
+       pp_init.device = cgs_device;
+       if (call_back_func(&pp_init, &(amd_pp->pp_handle)))
+               return NULL;
+
+       return adev->powerplay.pp_handle;
+}
+
 static int amdgpu_cgs_alloc_gpu_mem(struct cgs_device *cgs_device,
                                    enum cgs_gpu_mem_type type,
                                    uint64_t size, uint64_t align,
@@ -1179,6 +1201,7 @@ static const struct cgs_ops amdgpu_cgs_ops = {
        .is_virtualization_enabled = amdgpu_cgs_is_virtualization_enabled,
        .enter_safe_mode = amdgpu_cgs_enter_safe_mode,
        .lock_grbm_idx = amdgpu_cgs_lock_grbm_idx,
+       .register_pp_handle = amdgpu_cgs_register_pp_handle,
 };
 
 static const struct cgs_os_ops amdgpu_cgs_os_ops = {
index f51b41f..df9cbc7 100644 (file)
@@ -231,7 +231,7 @@ amdgpu_connector_update_scratch_regs(struct drm_connector *connector,
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev,
+               encoder = drm_encoder_find(connector->dev, NULL,
                                        connector->encoder_ids[i]);
                if (!encoder)
                        continue;
@@ -256,7 +256,7 @@ amdgpu_connector_find_encoder(struct drm_connector *connector,
        for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
                if (connector->encoder_ids[i] == 0)
                        break;
-               encoder = drm_encoder_find(connector->dev,
+               encoder = drm_encoder_find(connector->dev, NULL,
                                        connector->encoder_ids[i]);
                if (!encoder)
                        continue;
@@ -372,7 +372,7 @@ amdgpu_connector_best_single_encoder(struct drm_connector *connector)
 
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
@@ -1077,7 +1077,7 @@ amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force)
                        if (connector->encoder_ids[i] == 0)
                                break;
 
-                       encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+                       encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                        if (!encoder)
                                continue;
 
@@ -1134,7 +1134,7 @@ amdgpu_connector_dvi_encoder(struct drm_connector *connector)
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
@@ -1153,7 +1153,7 @@ amdgpu_connector_dvi_encoder(struct drm_connector *connector)
        /* then check use digitial */
        /* pick the first one */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
@@ -1294,7 +1294,7 @@ u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *conn
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev,
+               encoder = drm_encoder_find(connector->dev, NULL,
                                        connector->encoder_ids[i]);
                if (!encoder)
                        continue;
@@ -1323,7 +1323,7 @@ static bool amdgpu_connector_encoder_is_hbr2(struct drm_connector *connector)
        for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
                if (connector->encoder_ids[i] == 0)
                        break;
-               encoder = drm_encoder_find(connector->dev,
+               encoder = drm_encoder_find(connector->dev, NULL,
                                        connector->encoder_ids[i]);
                if (!encoder)
                        continue;
index c6a214f..ab83dfc 100644 (file)
@@ -25,6 +25,7 @@
  *    Jerome Glisse <glisse@freedesktop.org>
  */
 #include <linux/pagemap.h>
+#include <linux/sync_file.h>
 #include <drm/drmP.h>
 #include <drm/amdgpu_drm.h>
 #include <drm/drm_syncobj.h>
@@ -1330,6 +1331,66 @@ static struct dma_fence *amdgpu_cs_get_fence(struct amdgpu_device *adev,
        return fence;
 }
 
+int amdgpu_cs_fence_to_handle_ioctl(struct drm_device *dev, void *data,
+                                   struct drm_file *filp)
+{
+       struct amdgpu_device *adev = dev->dev_private;
+       struct amdgpu_fpriv *fpriv = filp->driver_priv;
+       union drm_amdgpu_fence_to_handle *info = data;
+       struct dma_fence *fence;
+       struct drm_syncobj *syncobj;
+       struct sync_file *sync_file;
+       int fd, r;
+
+       if (amdgpu_kms_vram_lost(adev, fpriv))
+               return -ENODEV;
+
+       fence = amdgpu_cs_get_fence(adev, filp, &info->in.fence);
+       if (IS_ERR(fence))
+               return PTR_ERR(fence);
+
+       switch (info->in.what) {
+       case AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ:
+               r = drm_syncobj_create(&syncobj, 0, fence);
+               dma_fence_put(fence);
+               if (r)
+                       return r;
+               r = drm_syncobj_get_handle(filp, syncobj, &info->out.handle);
+               drm_syncobj_put(syncobj);
+               return r;
+
+       case AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD:
+               r = drm_syncobj_create(&syncobj, 0, fence);
+               dma_fence_put(fence);
+               if (r)
+                       return r;
+               r = drm_syncobj_get_fd(syncobj, (int*)&info->out.handle);
+               drm_syncobj_put(syncobj);
+               return r;
+
+       case AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD:
+               fd = get_unused_fd_flags(O_CLOEXEC);
+               if (fd < 0) {
+                       dma_fence_put(fence);
+                       return fd;
+               }
+
+               sync_file = sync_file_create(fence);
+               dma_fence_put(fence);
+               if (!sync_file) {
+                       put_unused_fd(fd);
+                       return -ENOMEM;
+               }
+
+               fd_install(fd, sync_file->file);
+               info->out.handle = fd;
+               return 0;
+
+       default:
+               return -EINVAL;
+       }
+}
+
 /**
  * amdgpu_cs_wait_all_fence - wait on all fences to signal
  *
index 3e84ddf..1949d8a 100644 (file)
@@ -56,6 +56,7 @@
 #include "amdgpu_vf_error.h"
 
 #include "amdgpu_amdkfd.h"
+#include "amdgpu_pm.h"
 
 MODULE_FIRMWARE("amdgpu/vega10_gpu_info.bin");
 MODULE_FIRMWARE("amdgpu/raven_gpu_info.bin");
@@ -1603,6 +1604,7 @@ static int amdgpu_init(struct amdgpu_device *adev)
                        return r;
                }
                adev->ip_blocks[i].status.sw = true;
+
                /* need to do gmc hw init early so we can allocate gpu mem */
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) {
                        r = amdgpu_vram_scratch_init(adev);
@@ -1633,6 +1635,11 @@ static int amdgpu_init(struct amdgpu_device *adev)
                }
        }
 
+       mutex_lock(&adev->firmware.mutex);
+       if (amdgpu_ucode_init_bo(adev))
+               adev->firmware.load_type = AMDGPU_FW_LOAD_DIRECT;
+       mutex_unlock(&adev->firmware.mutex);
+
        for (i = 0; i < adev->num_ip_blocks; i++) {
                if (!adev->ip_blocks[i].status.sw)
                        continue;
@@ -1768,6 +1775,8 @@ static int amdgpu_fini(struct amdgpu_device *adev)
 
                adev->ip_blocks[i].status.hw = false;
        }
+       if (adev->firmware.load_type != AMDGPU_FW_LOAD_DIRECT)
+               amdgpu_ucode_fini_bo(adev);
 
        for (i = adev->num_ip_blocks - 1; i >= 0; i--) {
                if (!adev->ip_blocks[i].status.sw)
@@ -2040,6 +2049,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        mutex_init(&adev->srbm_mutex);
        mutex_init(&adev->grbm_idx_mutex);
        mutex_init(&adev->mn_lock);
+       mutex_init(&adev->virt.vf_errors.lock);
        hash_init(adev->mn_hash);
 
        amdgpu_check_arguments(adev);
@@ -2125,7 +2135,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        r = amdgpu_atombios_init(adev);
        if (r) {
                dev_err(adev->dev, "amdgpu_atombios_init failed\n");
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_ATOMBIOS_INIT_FAIL, 0, 0);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_ATOMBIOS_INIT_FAIL, 0, 0);
                goto failed;
        }
 
@@ -2136,7 +2146,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        if (amdgpu_vpost_needed(adev)) {
                if (!adev->bios) {
                        dev_err(adev->dev, "no vBIOS found\n");
-                       amdgpu_vf_error_put(AMDGIM_ERROR_VF_NO_VBIOS, 0, 0);
+                       amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_NO_VBIOS, 0, 0);
                        r = -EINVAL;
                        goto failed;
                }
@@ -2144,7 +2154,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
                r = amdgpu_atom_asic_init(adev->mode_info.atom_context);
                if (r) {
                        dev_err(adev->dev, "gpu post error!\n");
-                       amdgpu_vf_error_put(AMDGIM_ERROR_VF_GPU_POST_ERROR, 0, 0);
+                       amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_GPU_POST_ERROR, 0, 0);
                        goto failed;
                }
        } else {
@@ -2156,7 +2166,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
                r = amdgpu_atomfirmware_get_clock_info(adev);
                if (r) {
                        dev_err(adev->dev, "amdgpu_atomfirmware_get_clock_info failed\n");
-                       amdgpu_vf_error_put(AMDGIM_ERROR_VF_ATOMBIOS_GET_CLOCK_FAIL, 0, 0);
+                       amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_ATOMBIOS_GET_CLOCK_FAIL, 0, 0);
                        goto failed;
                }
        } else {
@@ -2164,7 +2174,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
                r = amdgpu_atombios_get_clock_info(adev);
                if (r) {
                        dev_err(adev->dev, "amdgpu_atombios_get_clock_info failed\n");
-                       amdgpu_vf_error_put(AMDGIM_ERROR_VF_ATOMBIOS_GET_CLOCK_FAIL, 0, 0);
+                       amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_ATOMBIOS_GET_CLOCK_FAIL, 0, 0);
                        goto failed;
                }
                /* init i2c buses */
@@ -2175,7 +2185,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        r = amdgpu_fence_driver_init(adev);
        if (r) {
                dev_err(adev->dev, "amdgpu_fence_driver_init failed\n");
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_FENCE_INIT_FAIL, 0, 0);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_FENCE_INIT_FAIL, 0, 0);
                goto failed;
        }
 
@@ -2185,7 +2195,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        r = amdgpu_init(adev);
        if (r) {
                dev_err(adev->dev, "amdgpu_init failed\n");
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_AMDGPU_INIT_FAIL, 0, 0);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_AMDGPU_INIT_FAIL, 0, 0);
                amdgpu_fini(adev);
                goto failed;
        }
@@ -2205,7 +2215,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        r = amdgpu_ib_pool_init(adev);
        if (r) {
                dev_err(adev->dev, "IB initialization failed (%d).\n", r);
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_IB_INIT_FAIL, 0, r);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_IB_INIT_FAIL, 0, r);
                goto failed;
        }
 
@@ -2215,6 +2225,10 @@ int amdgpu_device_init(struct amdgpu_device *adev,
 
        amdgpu_fbdev_init(adev);
 
+       r = amdgpu_pm_sysfs_init(adev);
+       if (r)
+               DRM_ERROR("registering pm debugfs failed (%d).\n", r);
+
        r = amdgpu_gem_debugfs_init(adev);
        if (r)
                DRM_ERROR("registering gem debugfs failed (%d).\n", r);
@@ -2254,7 +2268,7 @@ int amdgpu_device_init(struct amdgpu_device *adev,
        r = amdgpu_late_init(adev);
        if (r) {
                dev_err(adev->dev, "amdgpu_late_init failed\n");
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_AMDGPU_LATE_INIT_FAIL, 0, r);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_AMDGPU_LATE_INIT_FAIL, 0, r);
                goto failed;
        }
 
@@ -2311,6 +2325,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
        iounmap(adev->rmmio);
        adev->rmmio = NULL;
        amdgpu_doorbell_fini(adev);
+       amdgpu_pm_sysfs_fini(adev);
        amdgpu_debugfs_regs_cleanup(adev);
 }
 
@@ -2936,7 +2951,7 @@ out:
                }
        } else {
                dev_err(adev->dev, "asic resume failed (%d).\n", r);
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_ASIC_RESUME_FAIL, 0, r);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_ASIC_RESUME_FAIL, 0, r);
                for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
                        if (adev->rings[i] && adev->rings[i]->sched.thread) {
                                kthread_unpark(adev->rings[i]->sched.thread);
@@ -2950,7 +2965,7 @@ out:
        if (r) {
                /* bad news, how to tell it to userspace ? */
                dev_info(adev->dev, "GPU reset failed\n");
-               amdgpu_vf_error_put(AMDGIM_ERROR_VF_GPU_RESET_FAIL, 0, r);
+               amdgpu_vf_error_put(adev, AMDGIM_ERROR_VF_GPU_RESET_FAIL, 0, r);
        }
        else {
                dev_info(adev->dev, "GPU reset successed!\n");
index f79f9ea..7279fb5 100644 (file)
@@ -356,6 +356,10 @@ enum amdgpu_pcie_gen {
                ((adev)->powerplay.pp_funcs->switch_power_profile(\
                        (adev)->powerplay.pp_handle, type))
 
+#define amdgpu_dpm_set_clockgating_by_smu(adev, msg_id) \
+               ((adev)->powerplay.pp_funcs->set_clockgating_by_smu(\
+                       (adev)->powerplay.pp_handle, msg_id))
+
 struct amdgpu_dpm {
        struct amdgpu_ps        *ps;
        /* number of valid power states */
index 4f98960..ad02d3f 100644 (file)
  * - 3.18.0 - Export gpu always on cu bitmap
  * - 3.19.0 - Add support for UVD MJPEG decode
  * - 3.20.0 - Add support for local BOs
+ * - 3.21.0 - Add DRM_AMDGPU_FENCE_TO_HANDLE ioctl
  */
 #define KMS_DRIVER_MAJOR       3
-#define KMS_DRIVER_MINOR       20
+#define KMS_DRIVER_MINOR       21
 #define KMS_DRIVER_PATCHLEVEL  0
 
 int amdgpu_vram_limit = 0;
@@ -122,6 +123,7 @@ int amdgpu_cntl_sb_buf_per_se = 0;
 int amdgpu_param_buf_per_se = 0;
 int amdgpu_job_hang_limit = 0;
 int amdgpu_lbpw = -1;
+int amdgpu_compute_multipipe = -1;
 
 MODULE_PARM_DESC(vramlimit, "Restrict VRAM for testing, in megabytes");
 module_param_named(vramlimit, amdgpu_vram_limit, int, 0600);
@@ -265,6 +267,9 @@ module_param_named(job_hang_limit, amdgpu_job_hang_limit, int ,0444);
 MODULE_PARM_DESC(lbpw, "Load Balancing Per Watt (LBPW) support (1 = enable, 0 = disable, -1 = auto)");
 module_param_named(lbpw, amdgpu_lbpw, int, 0444);
 
+MODULE_PARM_DESC(compute_multipipe, "Force compute queues to be spread across pipes (1 = enable, 0 = disable, -1 = auto)");
+module_param_named(compute_multipipe, amdgpu_compute_multipipe, int, 0444);
+
 #ifdef CONFIG_DRM_AMDGPU_SI
 
 #if defined(CONFIG_DRM_RADEON) || defined(CONFIG_DRM_RADEON_MODULE)
index 4fcd98e..83435cc 100644 (file)
@@ -109,9 +109,26 @@ void amdgpu_gfx_parse_disable_cu(unsigned *mask, unsigned max_se, unsigned max_s
        }
 }
 
+static bool amdgpu_gfx_is_multipipe_capable(struct amdgpu_device *adev)
+{
+       if (amdgpu_compute_multipipe != -1) {
+               DRM_INFO("amdgpu: forcing compute pipe policy %d\n",
+                        amdgpu_compute_multipipe);
+               return amdgpu_compute_multipipe == 1;
+       }
+
+       /* FIXME: spreading the queues across pipes causes perf regressions
+        * on POLARIS11 compute workloads */
+       if (adev->asic_type == CHIP_POLARIS11)
+               return false;
+
+       return adev->gfx.mec.num_mec > 1;
+}
+
 void amdgpu_gfx_compute_queue_acquire(struct amdgpu_device *adev)
 {
        int i, queue, pipe, mec;
+       bool multipipe_policy = amdgpu_gfx_is_multipipe_capable(adev);
 
        /* policy for amdgpu compute queue ownership */
        for (i = 0; i < AMDGPU_MAX_COMPUTE_QUEUES; ++i) {
@@ -125,8 +142,7 @@ void amdgpu_gfx_compute_queue_acquire(struct amdgpu_device *adev)
                if (mec >= adev->gfx.mec.num_mec)
                        break;
 
-               /* FIXME: spreading the queues across pipes causes perf regressions */
-               if (0) {
+               if (multipipe_policy) {
                        /* policy: amdgpu owns the first two queues of the first MEC */
                        if (mec == 0 && queue < 2)
                                set_bit(i, adev->gfx.mec.queue_bitmap);
index 4fd06f8..5184125 100644 (file)
@@ -1024,6 +1024,7 @@ const struct drm_ioctl_desc amdgpu_ioctls_kms[] = {
        DRM_IOCTL_DEF_DRV(AMDGPU_CTX, amdgpu_ctx_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(AMDGPU_VM, amdgpu_vm_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(AMDGPU_BO_LIST, amdgpu_bo_list_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
+       DRM_IOCTL_DEF_DRV(AMDGPU_FENCE_TO_HANDLE, amdgpu_cs_fence_to_handle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
        /* KMS */
        DRM_IOCTL_DEF_DRV(AMDGPU_GEM_MMAP, amdgpu_gem_mmap_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
        DRM_IOCTL_DEF_DRV(AMDGPU_GEM_WAIT_IDLE, amdgpu_gem_wait_idle_ioctl, DRM_AUTH|DRM_RENDER_ALLOW),
index f6ce529..a59e04f 100644 (file)
@@ -64,10 +64,6 @@ static const struct cg_flag_name clocks[] = {
 
 void amdgpu_pm_acpi_event_handler(struct amdgpu_device *adev)
 {
-       if (adev->pp_enabled)
-               /* TODO */
-               return;
-
        if (adev->pm.dpm_enabled) {
                mutex_lock(&adev->pm.mutex);
                if (power_supply_is_system_supplied() > 0)
@@ -118,7 +114,7 @@ static ssize_t amdgpu_set_dpm_state(struct device *dev,
                goto fail;
        }
 
-       if (adev->pp_enabled) {
+       if (adev->powerplay.pp_funcs->dispatch_tasks) {
                amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_ENABLE_USER_STATE, &state, NULL);
        } else {
                mutex_lock(&adev->pm.mutex);
@@ -303,7 +299,8 @@ static ssize_t amdgpu_set_pp_force_state(struct device *dev,
 
        if (strlen(buf) == 1)
                adev->pp_force_state_enabled = false;
-       else if (adev->pp_enabled) {
+       else if (adev->powerplay.pp_funcs->dispatch_tasks &&
+                       adev->powerplay.pp_funcs->get_pp_num_states) {
                struct pp_states_info data;
 
                ret = kstrtoul(buf, 0, &idx);
@@ -531,7 +528,7 @@ static ssize_t amdgpu_set_pp_sclk_od(struct device *dev,
        if (adev->powerplay.pp_funcs->set_sclk_od)
                amdgpu_dpm_set_sclk_od(adev, (uint32_t)value);
 
-       if (adev->pp_enabled) {
+       if (adev->powerplay.pp_funcs->dispatch_tasks) {
                amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_READJUST_POWER_STATE, NULL, NULL);
        } else {
                adev->pm.dpm.current_ps = adev->pm.dpm.boot_ps;
@@ -575,7 +572,7 @@ static ssize_t amdgpu_set_pp_mclk_od(struct device *dev,
        if (adev->powerplay.pp_funcs->set_mclk_od)
                amdgpu_dpm_set_mclk_od(adev, (uint32_t)value);
 
-       if (adev->pp_enabled) {
+       if (adev->powerplay.pp_funcs->dispatch_tasks) {
                amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_READJUST_POWER_STATE, NULL, NULL);
        } else {
                adev->pm.dpm.current_ps = adev->pm.dpm.boot_ps;
@@ -959,9 +956,6 @@ static umode_t hwmon_attributes_visible(struct kobject *kobj,
             attr == &sensor_dev_attr_pwm1_min.dev_attr.attr))
                return 0;
 
-       if (adev->pp_enabled)
-               return effective_mode;
-
        /* Skip fan attributes if fan is not present */
        if (adev->pm.no_fan &&
            (attr == &sensor_dev_attr_pwm1.dev_attr.attr ||
@@ -1317,6 +1311,9 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
        if (adev->pm.sysfs_initialized)
                return 0;
 
+       if (adev->pm.dpm_enabled == 0)
+               return 0;
+
        if (adev->powerplay.pp_funcs->get_temperature == NULL)
                return 0;
 
@@ -1341,27 +1338,26 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
                return ret;
        }
 
-       if (adev->pp_enabled) {
-               ret = device_create_file(adev->dev, &dev_attr_pp_num_states);
-               if (ret) {
-                       DRM_ERROR("failed to create device file pp_num_states\n");
-                       return ret;
-               }
-               ret = device_create_file(adev->dev, &dev_attr_pp_cur_state);
-               if (ret) {
-                       DRM_ERROR("failed to create device file pp_cur_state\n");
-                       return ret;
-               }
-               ret = device_create_file(adev->dev, &dev_attr_pp_force_state);
-               if (ret) {
-                       DRM_ERROR("failed to create device file pp_force_state\n");
-                       return ret;
-               }
-               ret = device_create_file(adev->dev, &dev_attr_pp_table);
-               if (ret) {
-                       DRM_ERROR("failed to create device file pp_table\n");
-                       return ret;
-               }
+
+       ret = device_create_file(adev->dev, &dev_attr_pp_num_states);
+       if (ret) {
+               DRM_ERROR("failed to create device file pp_num_states\n");
+               return ret;
+       }
+       ret = device_create_file(adev->dev, &dev_attr_pp_cur_state);
+       if (ret) {
+               DRM_ERROR("failed to create device file pp_cur_state\n");
+               return ret;
+       }
+       ret = device_create_file(adev->dev, &dev_attr_pp_force_state);
+       if (ret) {
+               DRM_ERROR("failed to create device file pp_force_state\n");
+               return ret;
+       }
+       ret = device_create_file(adev->dev, &dev_attr_pp_table);
+       if (ret) {
+               DRM_ERROR("failed to create device file pp_table\n");
+               return ret;
        }
 
        ret = device_create_file(adev->dev, &dev_attr_pp_dpm_sclk);
@@ -1417,16 +1413,19 @@ int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
 
 void amdgpu_pm_sysfs_fini(struct amdgpu_device *adev)
 {
+       if (adev->pm.dpm_enabled == 0)
+               return;
+
        if (adev->pm.int_hwmon_dev)
                hwmon_device_unregister(adev->pm.int_hwmon_dev);
        device_remove_file(adev->dev, &dev_attr_power_dpm_state);
        device_remove_file(adev->dev, &dev_attr_power_dpm_force_performance_level);
-       if (adev->pp_enabled) {
-               device_remove_file(adev->dev, &dev_attr_pp_num_states);
-               device_remove_file(adev->dev, &dev_attr_pp_cur_state);
-               device_remove_file(adev->dev, &dev_attr_pp_force_state);
-               device_remove_file(adev->dev, &dev_attr_pp_table);
-       }
+
+       device_remove_file(adev->dev, &dev_attr_pp_num_states);
+       device_remove_file(adev->dev, &dev_attr_pp_cur_state);
+       device_remove_file(adev->dev, &dev_attr_pp_force_state);
+       device_remove_file(adev->dev, &dev_attr_pp_table);
+
        device_remove_file(adev->dev, &dev_attr_pp_dpm_sclk);
        device_remove_file(adev->dev, &dev_attr_pp_dpm_mclk);
        device_remove_file(adev->dev, &dev_attr_pp_dpm_pcie);
@@ -1457,7 +1456,7 @@ void amdgpu_pm_compute_clocks(struct amdgpu_device *adev)
                        amdgpu_fence_wait_empty(ring);
        }
 
-       if (adev->pp_enabled) {
+       if (adev->powerplay.pp_funcs->dispatch_tasks) {
                amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_DISPLAY_CONFIG_CHANGE, NULL, NULL);
        } else {
                mutex_lock(&adev->pm.mutex);
@@ -1592,15 +1591,15 @@ static int amdgpu_debugfs_pm_info(struct seq_file *m, void *data)
        if  ((adev->flags & AMD_IS_PX) &&
             (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) {
                seq_printf(m, "PX asic powered off\n");
-       } else if (adev->pp_enabled) {
-               return amdgpu_debugfs_pm_info_pp(m, adev);
-       } else {
+       } else if (adev->powerplay.pp_funcs->debugfs_print_current_performance_level) {
                mutex_lock(&adev->pm.mutex);
                if (adev->powerplay.pp_funcs->debugfs_print_current_performance_level)
                        adev->powerplay.pp_funcs->debugfs_print_current_performance_level(adev, m);
                else
                        seq_printf(m, "Debugfs support not implemented for this asic\n");
                mutex_unlock(&adev->pm.mutex);
+       } else {
+               return amdgpu_debugfs_pm_info_pp(m, adev);
        }
 
        return 0;
index 2d2f096..3b42f40 100644 (file)
 #include "cik_dpm.h"
 #include "vi_dpm.h"
 
-static int amdgpu_create_pp_handle(struct amdgpu_device *adev)
-{
-       struct amd_pp_init pp_init;
-       struct amd_powerplay *amd_pp;
-       int ret;
-
-       amd_pp = &(adev->powerplay);
-       pp_init.chip_family = adev->family;
-       pp_init.chip_id = adev->asic_type;
-       pp_init.pm_en = (amdgpu_dpm != 0 && !amdgpu_sriov_vf(adev)) ? true : false;
-       pp_init.feature_mask = amdgpu_pp_feature_mask;
-       pp_init.device = amdgpu_cgs_create_device(adev);
-       ret = amd_powerplay_create(&pp_init, &(amd_pp->pp_handle));
-       if (ret)
-               return -EINVAL;
-       return 0;
-}
-
 static int amdgpu_pp_early_init(void *handle)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -59,7 +41,6 @@ static int amdgpu_pp_early_init(void *handle)
        int ret = 0;
 
        amd_pp = &(adev->powerplay);
-       adev->pp_enabled = false;
        amd_pp->pp_handle = (void *)adev;
 
        switch (adev->asic_type) {
@@ -73,9 +54,7 @@ static int amdgpu_pp_early_init(void *handle)
        case CHIP_STONEY:
        case CHIP_VEGA10:
        case CHIP_RAVEN:
-               adev->pp_enabled = true;
-               if (amdgpu_create_pp_handle(adev))
-                       return -EINVAL;
+               amd_pp->cgs_device = amdgpu_cgs_create_device(adev);
                amd_pp->ip_funcs = &pp_ip_funcs;
                amd_pp->pp_funcs = &pp_dpm_funcs;
                break;
@@ -97,9 +76,7 @@ static int amdgpu_pp_early_init(void *handle)
                        amd_pp->ip_funcs = &ci_dpm_ip_funcs;
                        amd_pp->pp_funcs = &ci_dpm_funcs;
                } else {
-                       adev->pp_enabled = true;
-                       if (amdgpu_create_pp_handle(adev))
-                               return -EINVAL;
+                       amd_pp->cgs_device = amdgpu_cgs_create_device(adev);
                        amd_pp->ip_funcs = &pp_ip_funcs;
                        amd_pp->pp_funcs = &pp_dpm_funcs;
                }
@@ -118,12 +95,9 @@ static int amdgpu_pp_early_init(void *handle)
 
        if (adev->powerplay.ip_funcs->early_init)
                ret = adev->powerplay.ip_funcs->early_init(
-                                       adev->powerplay.pp_handle);
+                                       amd_pp->cgs_device ? amd_pp->cgs_device :
+                                       amd_pp->pp_handle);
 
-       if (ret == PP_DPM_DISABLED) {
-               adev->pm.dpm_enabled = false;
-               return 0;
-       }
        return ret;
 }
 
@@ -137,11 +111,6 @@ static int amdgpu_pp_late_init(void *handle)
                ret = adev->powerplay.ip_funcs->late_init(
                                        adev->powerplay.pp_handle);
 
-       if (adev->pp_enabled && adev->pm.dpm_enabled) {
-               amdgpu_pm_sysfs_init(adev);
-               amdgpu_dpm_dispatch_task(adev, AMD_PP_TASK_COMPLETE_INIT, NULL, NULL);
-       }
-
        return ret;
 }
 
@@ -176,21 +145,11 @@ static int amdgpu_pp_hw_init(void *handle)
        int ret = 0;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-       if (adev->pp_enabled && adev->firmware.load_type == AMDGPU_FW_LOAD_SMU)
-               amdgpu_ucode_init_bo(adev);
 
        if (adev->powerplay.ip_funcs->hw_init)
                ret = adev->powerplay.ip_funcs->hw_init(
                                        adev->powerplay.pp_handle);
 
-       if (ret == PP_DPM_DISABLED) {
-               adev->pm.dpm_enabled = false;
-               return 0;
-       }
-
-       if ((amdgpu_dpm != 0) && !amdgpu_sriov_vf(adev))
-               adev->pm.dpm_enabled = true;
-
        return ret;
 }
 
@@ -199,16 +158,10 @@ static int amdgpu_pp_hw_fini(void *handle)
        int ret = 0;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
-       if (adev->pp_enabled && adev->pm.dpm_enabled)
-               amdgpu_pm_sysfs_fini(adev);
-
        if (adev->powerplay.ip_funcs->hw_fini)
                ret = adev->powerplay.ip_funcs->hw_fini(
                                        adev->powerplay.pp_handle);
 
-       if (adev->pp_enabled && adev->firmware.load_type == AMDGPU_FW_LOAD_SMU)
-               amdgpu_ucode_fini_bo(adev);
-
        return ret;
 }
 
@@ -220,9 +173,8 @@ static void amdgpu_pp_late_fini(void *handle)
                adev->powerplay.ip_funcs->late_fini(
                          adev->powerplay.pp_handle);
 
-
-       if (adev->pp_enabled)
-               amd_powerplay_destroy(adev->powerplay.pp_handle);
+       if (adev->powerplay.cgs_device)
+               amdgpu_cgs_destroy_device(adev->powerplay.cgs_device);
 }
 
 static int amdgpu_pp_suspend(void *handle)
index 447d446..f1035a6 100644 (file)
@@ -411,13 +411,6 @@ static int psp_hw_init(void *handle)
                return 0;
 
        mutex_lock(&adev->firmware.mutex);
-       /*
-        * This sequence is just used on hw_init only once, no need on
-        * resume.
-        */
-       ret = amdgpu_ucode_init_bo(adev);
-       if (ret)
-               goto failed;
 
        ret = psp_load_fw(adev);
        if (ret) {
@@ -442,8 +435,6 @@ static int psp_hw_fini(void *handle)
        if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP)
                return 0;
 
-       amdgpu_ucode_fini_bo(adev);
-
        psp_ring_destroy(psp, PSP_RING_TYPE__KM);
 
        amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, &psp->tmr_buf);
index befc09b..190e28c 100644 (file)
@@ -121,7 +121,7 @@ static enum amdgpu_ring_type amdgpu_hw_ip_to_ring_type(int hw_ip)
 
 static int amdgpu_lru_map(struct amdgpu_device *adev,
                          struct amdgpu_queue_mapper *mapper,
-                         int user_ring,
+                         int user_ring, bool lru_pipe_order,
                          struct amdgpu_ring **out_ring)
 {
        int r, i, j;
@@ -139,7 +139,7 @@ static int amdgpu_lru_map(struct amdgpu_device *adev,
        }
 
        r = amdgpu_ring_lru_get(adev, ring_type, ring_blacklist,
-                               j, out_ring);
+                               j, lru_pipe_order, out_ring);
        if (r)
                return r;
 
@@ -284,8 +284,10 @@ int amdgpu_queue_mgr_map(struct amdgpu_device *adev,
                r = amdgpu_identity_map(adev, mapper, ring, out_ring);
                break;
        case AMDGPU_HW_IP_DMA:
+               r = amdgpu_lru_map(adev, mapper, ring, false, out_ring);
+               break;
        case AMDGPU_HW_IP_COMPUTE:
-               r = amdgpu_lru_map(adev, mapper, ring, out_ring);
+               r = amdgpu_lru_map(adev, mapper, ring, true, out_ring);
                break;
        default:
                *out_ring = NULL;
index 5ce6528..019932a 100644 (file)
@@ -315,14 +315,16 @@ static bool amdgpu_ring_is_blacklisted(struct amdgpu_ring *ring,
  * @type: amdgpu_ring_type enum
  * @blacklist: blacklisted ring ids array
  * @num_blacklist: number of entries in @blacklist
+ * @lru_pipe_order: find a ring from the least recently used pipe
  * @ring: output ring
  *
  * Retrieve the amdgpu_ring structure for the least recently used ring of
  * a specific IP block (all asics).
  * Returns 0 on success, error on failure.
  */
-int amdgpu_ring_lru_get(struct amdgpu_device *adev, int type, int *blacklist,
-                       int num_blacklist, struct amdgpu_ring **ring)
+int amdgpu_ring_lru_get(struct amdgpu_device *adev, int type,
+                       int *blacklist, int num_blacklist,
+                       bool lru_pipe_order, struct amdgpu_ring **ring)
 {
        struct amdgpu_ring *entry;
 
@@ -337,10 +339,23 @@ int amdgpu_ring_lru_get(struct amdgpu_device *adev, int type, int *blacklist,
                if (amdgpu_ring_is_blacklisted(entry, blacklist, num_blacklist))
                        continue;
 
-               *ring = entry;
-               amdgpu_ring_lru_touch_locked(adev, *ring);
-               break;
+               if (!*ring) {
+                       *ring = entry;
+
+                       /* We are done for ring LRU */
+                       if (!lru_pipe_order)
+                               break;
+               }
+
+               /* Move all rings on the same pipe to the end of the list */
+               if (entry->pipe == (*ring)->pipe)
+                       amdgpu_ring_lru_touch_locked(adev, entry);
        }
+
+       /* Move the ring we found to the end of the list */
+       if (*ring)
+               amdgpu_ring_lru_touch_locked(adev, *ring);
+
        spin_unlock(&adev->ring_lru_list_lock);
 
        if (!*ring) {
index 322d252..491bd55 100644 (file)
@@ -201,8 +201,9 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
                     unsigned ring_size, struct amdgpu_irq_src *irq_src,
                     unsigned irq_type);
 void amdgpu_ring_fini(struct amdgpu_ring *ring);
-int amdgpu_ring_lru_get(struct amdgpu_device *adev, int type, int *blacklist,
-                       int num_blacklist, struct amdgpu_ring **ring);
+int amdgpu_ring_lru_get(struct amdgpu_device *adev, int type,
+                       int *blacklist, int num_blacklist,
+                       bool lru_pipe_order, struct amdgpu_ring **ring);
 void amdgpu_ring_lru_touch(struct amdgpu_device *adev, struct amdgpu_ring *ring);
 static inline void amdgpu_ring_clear_ring(struct amdgpu_ring *ring)
 {
index 45ac918..746b813 100644 (file)
 #include "amdgpu_vf_error.h"
 #include "mxgpu_ai.h"
 
-#define AMDGPU_VF_ERROR_ENTRY_SIZE    16 
-
-/* struct error_entry - amdgpu VF error information. */
-struct amdgpu_vf_error_buffer {
-       int read_count;
-       int write_count;
-       uint16_t code[AMDGPU_VF_ERROR_ENTRY_SIZE];
-       uint16_t flags[AMDGPU_VF_ERROR_ENTRY_SIZE];
-       uint64_t data[AMDGPU_VF_ERROR_ENTRY_SIZE];
-};
-
-struct amdgpu_vf_error_buffer admgpu_vf_errors;
-
-
-void amdgpu_vf_error_put(uint16_t sub_error_code, uint16_t error_flags, uint64_t error_data)
+void amdgpu_vf_error_put(struct amdgpu_device *adev,
+                        uint16_t sub_error_code,
+                        uint16_t error_flags,
+                        uint64_t error_data)
 {
        int index;
        uint16_t error_code = AMDGIM_ERROR_CODE(AMDGIM_ERROR_CATEGORY_VF, sub_error_code);
 
-       index = admgpu_vf_errors.write_count % AMDGPU_VF_ERROR_ENTRY_SIZE;
-       admgpu_vf_errors.code [index] = error_code;
-       admgpu_vf_errors.flags [index] = error_flags;
-       admgpu_vf_errors.data [index] = error_data;
-       admgpu_vf_errors.write_count ++;
+       mutex_lock(&adev->virt.vf_errors.lock);
+       index = adev->virt.vf_errors.write_count % AMDGPU_VF_ERROR_ENTRY_SIZE;
+       adev->virt.vf_errors.code [index] = error_code;
+       adev->virt.vf_errors.flags [index] = error_flags;
+       adev->virt.vf_errors.data [index] = error_data;
+       adev->virt.vf_errors.write_count ++;
+       mutex_unlock(&adev->virt.vf_errors.lock);
 }
 
 
@@ -58,7 +49,8 @@ void amdgpu_vf_error_trans_all(struct amdgpu_device *adev)
        u32 data1, data2, data3;
        int index;
 
-       if ((NULL == adev) || (!amdgpu_sriov_vf(adev)) || (!adev->virt.ops) || (!adev->virt.ops->trans_msg)) {
+       if ((NULL == adev) || (!amdgpu_sriov_vf(adev)) ||
+           (!adev->virt.ops) || (!adev->virt.ops->trans_msg)) {
                return;
        }
 /*
@@ -68,18 +60,22 @@ void amdgpu_vf_error_trans_all(struct amdgpu_device *adev)
                return;
        }
 */
+
+       mutex_lock(&adev->virt.vf_errors.lock);
        /* The errors are overlay of array, correct read_count as full. */
-       if (admgpu_vf_errors.write_count - admgpu_vf_errors.read_count > AMDGPU_VF_ERROR_ENTRY_SIZE) {
-               admgpu_vf_errors.read_count = admgpu_vf_errors.write_count - AMDGPU_VF_ERROR_ENTRY_SIZE;
+       if (adev->virt.vf_errors.write_count - adev->virt.vf_errors.read_count > AMDGPU_VF_ERROR_ENTRY_SIZE) {
+               adev->virt.vf_errors.read_count = adev->virt.vf_errors.write_count - AMDGPU_VF_ERROR_ENTRY_SIZE;
        }
 
-       while (admgpu_vf_errors.read_count < admgpu_vf_errors.write_count) {
-               index =admgpu_vf_errors.read_count % AMDGPU_VF_ERROR_ENTRY_SIZE;
-               data1 = AMDGIM_ERROR_CODE_FLAGS_TO_MAILBOX (admgpu_vf_errors.code[index], admgpu_vf_errors.flags[index]);
-               data2 = admgpu_vf_errors.data[index] & 0xFFFFFFFF;
-               data3 = (admgpu_vf_errors.data[index] >> 32) & 0xFFFFFFFF;
+       while (adev->virt.vf_errors.read_count < adev->virt.vf_errors.write_count) {
+               index =adev->virt.vf_errors.read_count % AMDGPU_VF_ERROR_ENTRY_SIZE;
+               data1 = AMDGIM_ERROR_CODE_FLAGS_TO_MAILBOX(adev->virt.vf_errors.code[index],
+                                                          adev->virt.vf_errors.flags[index]);
+               data2 = adev->virt.vf_errors.data[index] & 0xFFFFFFFF;
+               data3 = (adev->virt.vf_errors.data[index] >> 32) & 0xFFFFFFFF;
 
                adev->virt.ops->trans_msg(adev, IDH_LOG_VF_ERROR, data1, data2, data3);
-               admgpu_vf_errors.read_count ++;
+               adev->virt.vf_errors.read_count ++;
        }
+       mutex_unlock(&adev->virt.vf_errors.lock);
 }
index 2a3278e..6436bd0 100644 (file)
@@ -56,7 +56,10 @@ enum AMDGIM_ERROR_CATEGORY {
        AMDGIM_ERROR_CATEGORY_MAX
 };
 
-void amdgpu_vf_error_put(uint16_t sub_error_code, uint16_t error_flags, uint64_t error_data);
+void amdgpu_vf_error_put(struct amdgpu_device *adev,
+                        uint16_t sub_error_code,
+                        uint16_t error_flags,
+                        uint64_t error_data);
 void amdgpu_vf_error_trans_all (struct amdgpu_device *adev);
 
 #endif /* __VF_ERROR_H__ */
index afcfb8b..e5fd0ff 100644 (file)
@@ -36,6 +36,18 @@ struct amdgpu_mm_table {
        uint64_t                gpu_addr;
 };
 
+#define AMDGPU_VF_ERROR_ENTRY_SIZE    16
+
+/* struct error_entry - amdgpu VF error information. */
+struct amdgpu_vf_error_buffer {
+       struct mutex lock;
+       int read_count;
+       int write_count;
+       uint16_t code[AMDGPU_VF_ERROR_ENTRY_SIZE];
+       uint16_t flags[AMDGPU_VF_ERROR_ENTRY_SIZE];
+       uint64_t data[AMDGPU_VF_ERROR_ENTRY_SIZE];
+};
+
 /**
  * struct amdgpu_virt_ops - amdgpu device virt operations
  */
@@ -59,6 +71,7 @@ struct amdgpu_virt {
        struct work_struct              flr_work;
        struct amdgpu_mm_table          mm_table;
        const struct amdgpu_virt_ops    *ops;
+       struct amdgpu_vf_error_buffer   vf_errors;
 };
 
 #define AMDGPU_CSA_SIZE    (8 * 1024)
index bbcc670..fee0a32 100644 (file)
@@ -2541,7 +2541,8 @@ static uint32_t amdgpu_vm_get_block_size(uint64_t vm_size)
  * @adev: amdgpu_device pointer
  * @fragment_size_default: the default fragment size if it's set auto
  */
-void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev, uint32_t fragment_size_default)
+void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev,
+                                uint32_t fragment_size_default)
 {
        if (amdgpu_vm_fragment_size == -1)
                adev->vm_manager.fragment_size = fragment_size_default;
@@ -2555,7 +2556,8 @@ void amdgpu_vm_set_fragment_size(struct amdgpu_device *adev, uint32_t fragment_s
  * @adev: amdgpu_device pointer
  * @vm_size: the default vm size if it's set auto
  */
-void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint64_t vm_size, uint32_t fragment_size_default)
+void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint64_t vm_size,
+                          uint32_t fragment_size_default)
 {
        /* adjust vm size firstly */
        if (amdgpu_vm_size == -1)
@@ -2682,6 +2684,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
        }
 
        INIT_KFIFO(vm->faults);
+       vm->fault_credit = 16;
 
        return 0;
 
@@ -2777,6 +2780,36 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
 }
 
 /**
+ * amdgpu_vm_pasid_fault_credit - Check fault credit for given PASID
+ *
+ * @adev: amdgpu_device pointer
+ * @pasid: PASID do identify the VM
+ *
+ * This function is expected to be called in interrupt context. Returns
+ * true if there was fault credit, false otherwise
+ */
+bool amdgpu_vm_pasid_fault_credit(struct amdgpu_device *adev,
+                                 unsigned int pasid)
+{
+       struct amdgpu_vm *vm;
+
+       spin_lock(&adev->vm_manager.pasid_lock);
+       vm = idr_find(&adev->vm_manager.pasid_idr, pasid);
+       spin_unlock(&adev->vm_manager.pasid_lock);
+       if (!vm)
+               /* VM not found, can't track fault credit */
+               return true;
+
+       /* No lock needed. only accessed by IRQ handler */
+       if (!vm->fault_credit)
+               /* Too many faults in this VM */
+               return false;
+
+       vm->fault_credit--;
+       return true;
+}
+
+/**
  * amdgpu_vm_manager_init - init the VM manager
  *
  * @adev: amdgpu_device pointer
index 0af0906..d68f39b 100644 (file)
@@ -165,8 +165,11 @@ struct amdgpu_vm {
        /* Flag to indicate ATS support from PTE for GFX9 */
        bool                    pte_support_ats;
 
-       /* Up to 128 pending page faults */
+       /* Up to 128 pending retry page faults */
        DECLARE_KFIFO(faults, u64, 128);
+
+       /* Limit non-retry fault storms */
+       unsigned int            fault_credit;
 };
 
 struct amdgpu_vm_id {
@@ -244,6 +247,8 @@ void amdgpu_vm_manager_fini(struct amdgpu_device *adev);
 int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
                   int vm_context, unsigned int pasid);
 void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm);
+bool amdgpu_vm_pasid_fault_credit(struct amdgpu_device *adev,
+                                 unsigned int pasid);
 void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm,
                         struct list_head *validated,
                         struct amdgpu_bo_list_entry *entry);
index 68ce1bd..68b505c 100644 (file)
@@ -6365,7 +6365,6 @@ static int ci_dpm_sw_fini(void *handle)
        flush_work(&adev->pm.dpm.thermal.work);
 
        mutex_lock(&adev->pm.mutex);
-       amdgpu_pm_sysfs_fini(adev);
        ci_dpm_fini(adev);
        mutex_unlock(&adev->pm.mutex);
 
index 07d3d89..a870b35 100644 (file)
@@ -237,8 +237,23 @@ static u32 cik_ih_get_wptr(struct amdgpu_device *adev)
  */
 static bool cik_ih_prescreen_iv(struct amdgpu_device *adev)
 {
-       /* Process all interrupts */
-       return true;
+       u32 ring_index = adev->irq.ih.rptr >> 2;
+       u16 pasid;
+
+       switch (le32_to_cpu(adev->irq.ih.ring[ring_index]) & 0xff) {
+       case 146:
+       case 147:
+               pasid = le32_to_cpu(adev->irq.ih.ring[ring_index + 2]) >> 16;
+               if (!pasid || amdgpu_vm_pasid_fault_credit(adev, pasid))
+                       return true;
+               break;
+       default:
+               /* Not a VM fault */
+               return true;
+       }
+
+       adev->irq.ih.rptr += 16;
+       return false;
 }
 
  /**
index b6cdf4a..fa61d64 100644 (file)
@@ -216,8 +216,23 @@ static u32 cz_ih_get_wptr(struct amdgpu_device *adev)
  */
 static bool cz_ih_prescreen_iv(struct amdgpu_device *adev)
 {
-       /* Process all interrupts */
-       return true;
+       u32 ring_index = adev->irq.ih.rptr >> 2;
+       u16 pasid;
+
+       switch (le32_to_cpu(adev->irq.ih.ring[ring_index]) & 0xff) {
+       case 146:
+       case 147:
+               pasid = le32_to_cpu(adev->irq.ih.ring[ring_index + 2]) >> 16;
+               if (!pasid || amdgpu_vm_pasid_fault_credit(adev, pasid))
+                       return true;
+               break;
+       default:
+               /* Not a VM fault */
+               return true;
+       }
+
+       adev->irq.ih.rptr += 16;
+       return false;
 }
 
 /**
index b9ee907..a8829af 100644 (file)
@@ -288,7 +288,7 @@ dce_virtual_encoder(struct drm_connector *connector)
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
@@ -298,7 +298,7 @@ dce_virtual_encoder(struct drm_connector *connector)
 
        /* pick the first one */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
index dfc10b1..147e92b 100644 (file)
@@ -4132,18 +4132,12 @@ static int gfx_v8_0_rlc_resume(struct amdgpu_device *adev)
        gfx_v8_0_rlc_reset(adev);
        gfx_v8_0_init_pg(adev);
 
-       if (!adev->pp_enabled) {
-               if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) {
-                       /* legacy rlc firmware loading */
-                       r = gfx_v8_0_rlc_load_microcode(adev);
-                       if (r)
-                               return r;
-               } else {
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_RLC_G);
-                       if (r)
-                               return -EINVAL;
-               }
+
+       if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
+               /* legacy rlc firmware loading */
+               r = gfx_v8_0_rlc_load_microcode(adev);
+               if (r)
+                       return r;
        }
 
        gfx_v8_0_rlc_start(adev);
@@ -4959,43 +4953,15 @@ static int gfx_v8_0_cp_resume(struct amdgpu_device *adev)
        if (!(adev->flags & AMD_IS_APU))
                gfx_v8_0_enable_gui_idle_interrupt(adev, false);
 
-       if (!adev->pp_enabled) {
-               if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) {
+       if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
                        /* legacy firmware loading */
-                       r = gfx_v8_0_cp_gfx_load_microcode(adev);
-                       if (r)
-                               return r;
+               r = gfx_v8_0_cp_gfx_load_microcode(adev);
+               if (r)
+                       return r;
 
-                       r = gfx_v8_0_cp_compute_load_microcode(adev);
-                       if (r)
-                               return r;
-               } else {
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_CP_CE);
-                       if (r)
-                               return -EINVAL;
-
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_CP_PFP);
-                       if (r)
-                               return -EINVAL;
-
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_CP_ME);
-                       if (r)
-                               return -EINVAL;
-
-                       if (adev->asic_type == CHIP_TOPAZ) {
-                               r = gfx_v8_0_cp_compute_load_microcode(adev);
-                               if (r)
-                                       return r;
-                       } else {
-                               r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                                                AMDGPU_UCODE_ID_CP_MEC1);
-                               if (r)
-                                       return -EINVAL;
-                       }
-               }
+               r = gfx_v8_0_cp_compute_load_microcode(adev);
+               if (r)
+                       return r;
        }
 
        r = gfx_v8_0_cp_gfx_resume(adev);
@@ -6018,7 +5984,6 @@ static int gfx_v8_0_tonga_update_gfx_clock_gating(struct amdgpu_device *adev,
 {
        uint32_t msg_id, pp_state = 0;
        uint32_t pp_support_state = 0;
-       void *pp_handle = adev->powerplay.pp_handle;
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_GFX_CGCG | AMD_CG_SUPPORT_GFX_CGLS)) {
                if (adev->cg_flags & AMD_CG_SUPPORT_GFX_CGLS) {
@@ -6036,7 +6001,8 @@ static int gfx_v8_0_tonga_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_CG,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_GFX_MGCG | AMD_CG_SUPPORT_GFX_MGLS)) {
@@ -6057,7 +6023,8 @@ static int gfx_v8_0_tonga_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_MG,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        return 0;
@@ -6069,7 +6036,6 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
 
        uint32_t msg_id, pp_state = 0;
        uint32_t pp_support_state = 0;
-       void *pp_handle = adev->powerplay.pp_handle;
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_GFX_CGCG | AMD_CG_SUPPORT_GFX_CGLS)) {
                if (adev->cg_flags & AMD_CG_SUPPORT_GFX_CGLS) {
@@ -6087,7 +6053,8 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_CG,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_GFX_3D_CGCG | AMD_CG_SUPPORT_GFX_3D_CGLS)) {
@@ -6106,7 +6073,8 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_3D,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_GFX_MGCG | AMD_CG_SUPPORT_GFX_MGLS)) {
@@ -6127,7 +6095,8 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_MG,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & AMD_CG_SUPPORT_GFX_RLC_LS) {
@@ -6142,7 +6111,8 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
                                PP_BLOCK_GFX_RLC,
                                pp_support_state,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & AMD_CG_SUPPORT_GFX_CP_LS) {
@@ -6156,7 +6126,8 @@ static int gfx_v8_0_polaris_update_gfx_clock_gating(struct amdgpu_device *adev,
                        PP_BLOCK_GFX_CP,
                        pp_support_state,
                        pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        return 0;
@@ -7076,7 +7047,7 @@ static void gfx_v8_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
 {
        uint64_t ce_payload_addr;
        int cnt_ce;
-       static union {
+       union {
                struct vi_ce_ib_state regular;
                struct vi_ce_ib_state_chained_ib chained;
        } ce_payload = {};
@@ -7105,7 +7076,7 @@ static void gfx_v8_0_ring_emit_de_meta(struct amdgpu_ring *ring)
 {
        uint64_t de_payload_addr, gds_addr, csa_addr;
        int cnt_de;
-       static union {
+       union {
                struct vi_de_ib_state regular;
                struct vi_de_ib_state_chained_ib chained;
        } de_payload = {};
index deeaee1..99a5b3b 100644 (file)
@@ -3583,7 +3583,7 @@ static void gfx_v9_0_ring_set_wptr_gfx(struct amdgpu_ring *ring)
 static void gfx_v9_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
 {
        u32 ref_and_mask, reg_mem_engine;
-       struct nbio_hdp_flush_reg *nbio_hf_reg;
+       const struct nbio_hdp_flush_reg *nbio_hf_reg;
 
        if (ring->adev->flags & AMD_IS_APU)
                nbio_hf_reg = &nbio_v7_0_hdp_flush_reg;
@@ -3806,7 +3806,7 @@ static void gfx_v9_ring_emit_sb(struct amdgpu_ring *ring)
 
 static void gfx_v9_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
 {
-       static struct v9_ce_ib_state ce_payload = {0};
+       struct v9_ce_ib_state ce_payload = {0};
        uint64_t csa_addr;
        int cnt;
 
@@ -3825,7 +3825,7 @@ static void gfx_v9_0_ring_emit_ce_meta(struct amdgpu_ring *ring)
 
 static void gfx_v9_0_ring_emit_de_meta(struct amdgpu_ring *ring)
 {
-       static struct v9_de_ib_state de_payload = {0};
+       struct v9_de_ib_state de_payload = {0};
        uint64_t csa_addr, gds_addr;
        int cnt;
 
index 65ed6d3..bd592cb 100644 (file)
@@ -216,8 +216,23 @@ static u32 iceland_ih_get_wptr(struct amdgpu_device *adev)
  */
 static bool iceland_ih_prescreen_iv(struct amdgpu_device *adev)
 {
-       /* Process all interrupts */
-       return true;
+       u32 ring_index = adev->irq.ih.rptr >> 2;
+       u16 pasid;
+
+       switch (le32_to_cpu(adev->irq.ih.ring[ring_index]) & 0xff) {
+       case 146:
+       case 147:
+               pasid = le32_to_cpu(adev->irq.ih.ring[ring_index + 2]) >> 16;
+               if (!pasid || amdgpu_vm_pasid_fault_credit(adev, pasid))
+                       return true;
+               break;
+       default:
+               /* Not a VM fault */
+               return true;
+       }
+
+       adev->irq.ih.rptr += 16;
+       return false;
 }
 
 /**
index b57399a..f33d1ff 100644 (file)
@@ -2969,16 +2969,10 @@ static int kv_dpm_late_init(void *handle)
 {
        /* powerdown unused blocks for now */
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       int ret;
 
        if (!amdgpu_dpm)
                return 0;
 
-       /* init the sysfs and debugfs files late */
-       ret = amdgpu_pm_sysfs_init(adev);
-       if (ret)
-               return ret;
-
        kv_dpm_powergate_acp(adev, true);
        kv_dpm_powergate_samu(adev, true);
 
@@ -3040,7 +3034,6 @@ static int kv_dpm_sw_fini(void *handle)
        flush_work(&adev->pm.dpm.thermal.work);
 
        mutex_lock(&adev->pm.mutex);
-       amdgpu_pm_sysfs_fini(adev);
        kv_dpm_fini(adev);
        mutex_unlock(&adev->pm.mutex);
 
index 045988b..904a1ba 100644 (file)
@@ -215,31 +215,27 @@ void nbio_v6_1_get_clockgating_state(struct amdgpu_device *adev, u32 *flags)
                *flags |= AMD_CG_SUPPORT_BIF_LS;
 }
 
-struct nbio_hdp_flush_reg nbio_v6_1_hdp_flush_reg;
-struct nbio_pcie_index_data nbio_v6_1_pcie_index_data;
+const struct nbio_hdp_flush_reg nbio_v6_1_hdp_flush_reg = {
+       .hdp_flush_req_offset = SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_GPU_HDP_FLUSH_REQ),
+       .hdp_flush_done_offset = SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_GPU_HDP_FLUSH_DONE),
+       .ref_and_mask_cp0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP0_MASK,
+       .ref_and_mask_cp1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP1_MASK,
+       .ref_and_mask_cp2 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP2_MASK,
+       .ref_and_mask_cp3 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP3_MASK,
+       .ref_and_mask_cp4 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP4_MASK,
+       .ref_and_mask_cp5 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP5_MASK,
+       .ref_and_mask_cp6 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP6_MASK,
+       .ref_and_mask_cp7 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP7_MASK,
+       .ref_and_mask_cp8 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP8_MASK,
+       .ref_and_mask_cp9 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP9_MASK,
+       .ref_and_mask_sdma0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA0_MASK,
+       .ref_and_mask_sdma1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA1_MASK
+};
 
-int nbio_v6_1_init(struct amdgpu_device *adev)
-{
-       nbio_v6_1_hdp_flush_reg.hdp_flush_req_offset = SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_GPU_HDP_FLUSH_REQ);
-       nbio_v6_1_hdp_flush_reg.hdp_flush_done_offset = SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_GPU_HDP_FLUSH_DONE);
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP0_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP1_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp2 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP2_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp3 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP3_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp4 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP4_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp5 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP5_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp6 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP6_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp7 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP7_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp8 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP8_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_cp9 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__CP9_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_sdma0 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA0_MASK;
-       nbio_v6_1_hdp_flush_reg.ref_and_mask_sdma1 = BIF_BX_PF0_GPU_HDP_FLUSH_DONE__SDMA1_MASK;
-
-       nbio_v6_1_pcie_index_data.index_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_INDEX);
-       nbio_v6_1_pcie_index_data.data_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_DATA);
-
-       return 0;
-}
+const struct nbio_pcie_index_data nbio_v6_1_pcie_index_data = {
+       .index_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_INDEX),
+       .data_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_DATA),
+};
 
 void nbio_v6_1_detect_hw_virt(struct amdgpu_device *adev)
 {
index 686e4b4..14ca8d4 100644 (file)
@@ -26,8 +26,8 @@
 
 #include "soc15_common.h"
 
-extern struct nbio_hdp_flush_reg nbio_v6_1_hdp_flush_reg;
-extern struct nbio_pcie_index_data nbio_v6_1_pcie_index_data;
+extern const struct nbio_hdp_flush_reg nbio_v6_1_hdp_flush_reg;
+extern const struct nbio_pcie_index_data nbio_v6_1_pcie_index_data;
 int nbio_v6_1_init(struct amdgpu_device *adev);
 u32 nbio_v6_1_get_atombios_scratch_regs(struct amdgpu_device *adev,
                                         uint32_t idx);
index 11b70d6..f802b97 100644 (file)
@@ -185,28 +185,24 @@ void nbio_v7_0_ih_control(struct amdgpu_device *adev)
        WREG32_SOC15(NBIO, 0, mmINTERRUPT_CNTL, interrupt_cntl);
 }
 
-struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg;
-struct nbio_pcie_index_data nbio_v7_0_pcie_index_data;
+const struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg = {
+       .hdp_flush_req_offset = SOC15_REG_OFFSET(NBIO, 0, mmGPU_HDP_FLUSH_REQ),
+       .hdp_flush_done_offset = SOC15_REG_OFFSET(NBIO, 0, mmGPU_HDP_FLUSH_DONE),
+       .ref_and_mask_cp0 = GPU_HDP_FLUSH_DONE__CP0_MASK,
+       .ref_and_mask_cp1 = GPU_HDP_FLUSH_DONE__CP1_MASK,
+       .ref_and_mask_cp2 = GPU_HDP_FLUSH_DONE__CP2_MASK,
+       .ref_and_mask_cp3 = GPU_HDP_FLUSH_DONE__CP3_MASK,
+       .ref_and_mask_cp4 = GPU_HDP_FLUSH_DONE__CP4_MASK,
+       .ref_and_mask_cp5 = GPU_HDP_FLUSH_DONE__CP5_MASK,
+       .ref_and_mask_cp6 = GPU_HDP_FLUSH_DONE__CP6_MASK,
+       .ref_and_mask_cp7 = GPU_HDP_FLUSH_DONE__CP7_MASK,
+       .ref_and_mask_cp8 = GPU_HDP_FLUSH_DONE__CP8_MASK,
+       .ref_and_mask_cp9 = GPU_HDP_FLUSH_DONE__CP9_MASK,
+       .ref_and_mask_sdma0 = GPU_HDP_FLUSH_DONE__SDMA0_MASK,
+       .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__SDMA1_MASK,
+};
 
-int nbio_v7_0_init(struct amdgpu_device *adev)
-{
-       nbio_v7_0_hdp_flush_reg.hdp_flush_req_offset = SOC15_REG_OFFSET(NBIO, 0, mmGPU_HDP_FLUSH_REQ);
-       nbio_v7_0_hdp_flush_reg.hdp_flush_done_offset = SOC15_REG_OFFSET(NBIO, 0, mmGPU_HDP_FLUSH_DONE);
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp0 = GPU_HDP_FLUSH_DONE__CP0_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp1 = GPU_HDP_FLUSH_DONE__CP1_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp2 = GPU_HDP_FLUSH_DONE__CP2_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp3 = GPU_HDP_FLUSH_DONE__CP3_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp4 = GPU_HDP_FLUSH_DONE__CP4_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp5 = GPU_HDP_FLUSH_DONE__CP5_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp6 = GPU_HDP_FLUSH_DONE__CP6_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp7 = GPU_HDP_FLUSH_DONE__CP7_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp8 = GPU_HDP_FLUSH_DONE__CP8_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_cp9 = GPU_HDP_FLUSH_DONE__CP9_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_sdma0 = GPU_HDP_FLUSH_DONE__SDMA0_MASK;
-       nbio_v7_0_hdp_flush_reg.ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__SDMA1_MASK;
-
-       nbio_v7_0_pcie_index_data.index_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_INDEX2);
-       nbio_v7_0_pcie_index_data.data_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_DATA2);
-
-       return 0;
-}
+const struct nbio_pcie_index_data nbio_v7_0_pcie_index_data = {
+       .index_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_INDEX2),
+       .data_offset = SOC15_REG_OFFSET(NBIO, 0, mmPCIE_DATA2)
+};
index 054ff49..df8fa90 100644 (file)
@@ -26,8 +26,8 @@
 
 #include "soc15_common.h"
 
-extern struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg;
-extern struct nbio_pcie_index_data nbio_v7_0_pcie_index_data;
+extern const struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg;
+extern const struct nbio_pcie_index_data nbio_v7_0_pcie_index_data;
 int nbio_v7_0_init(struct amdgpu_device *adev);
 u32 nbio_v7_0_get_atombios_scratch_regs(struct amdgpu_device *adev,
                                         uint32_t idx);
index acdee3a..67f375b 100644 (file)
@@ -561,21 +561,11 @@ static int sdma_v2_4_start(struct amdgpu_device *adev)
 {
        int r;
 
-       if (!adev->pp_enabled) {
-               if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) {
-                       r = sdma_v2_4_load_microcode(adev);
-                       if (r)
-                               return r;
-               } else {
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_SDMA0);
-                       if (r)
-                               return -EINVAL;
-                       r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                       AMDGPU_UCODE_ID_SDMA1);
-                       if (r)
-                               return -EINVAL;
-               }
+
+       if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
+               r = sdma_v2_4_load_microcode(adev);
+               if (r)
+                       return r;
        }
 
        /* halt the engine before programing */
index 72f31cc..6d06f8e 100644 (file)
@@ -819,23 +819,12 @@ static int sdma_v3_0_load_microcode(struct amdgpu_device *adev)
  */
 static int sdma_v3_0_start(struct amdgpu_device *adev)
 {
-       int r, i;
+       int r;
 
-       if (!adev->pp_enabled) {
-               if (adev->firmware.load_type != AMDGPU_FW_LOAD_SMU) {
-                       r = sdma_v3_0_load_microcode(adev);
-                       if (r)
-                               return r;
-               } else {
-                       for (i = 0; i < adev->sdma.num_instances; i++) {
-                               r = adev->smu.smumgr_funcs->check_fw_load_finish(adev,
-                                                                                (i == 0) ?
-                                                                                AMDGPU_UCODE_ID_SDMA0 :
-                                                                                AMDGPU_UCODE_ID_SDMA1);
-                               if (r)
-                                       return -EINVAL;
-                       }
-               }
+       if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
+               r = sdma_v3_0_load_microcode(adev);
+               if (r)
+                       return r;
        }
 
        /* disable sdma engine before programing it */
index c26d205..46009db 100644 (file)
@@ -371,7 +371,7 @@ static void sdma_v4_0_ring_emit_ib(struct amdgpu_ring *ring,
 static void sdma_v4_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
 {
        u32 ref_and_mask = 0;
-       struct nbio_hdp_flush_reg *nbio_hf_reg;
+       const struct nbio_hdp_flush_reg *nbio_hf_reg;
 
        if (ring->adev->flags & AMD_IS_APU)
                nbio_hf_reg = &nbio_v7_0_hdp_flush_reg;
index 9b8db60..51fd0c9 100644 (file)
@@ -7604,11 +7604,6 @@ static int si_dpm_late_init(void *handle)
        if (!amdgpu_dpm)
                return 0;
 
-       /* init the sysfs and debugfs files late */
-       ret = amdgpu_pm_sysfs_init(adev);
-       if (ret)
-               return ret;
-
        ret = si_set_temperature_range(adev);
        if (ret)
                return ret;
@@ -7764,7 +7759,6 @@ static int si_dpm_sw_fini(void *handle)
        flush_work(&adev->pm.dpm.thermal.work);
 
        mutex_lock(&adev->pm.mutex);
-       amdgpu_pm_sysfs_fini(adev);
        si_dpm_fini(adev);
        mutex_unlock(&adev->pm.mutex);
 
index 245a18a..1c006ba 100644 (file)
@@ -101,7 +101,7 @@ static u32 soc15_pcie_rreg(struct amdgpu_device *adev, u32 reg)
 {
        unsigned long flags, address, data;
        u32 r;
-       struct nbio_pcie_index_data *nbio_pcie_id;
+       const struct nbio_pcie_index_data *nbio_pcie_id;
 
        if (adev->flags & AMD_IS_APU)
                nbio_pcie_id = &nbio_v7_0_pcie_index_data;
@@ -122,7 +122,7 @@ static u32 soc15_pcie_rreg(struct amdgpu_device *adev, u32 reg)
 static void soc15_pcie_wreg(struct amdgpu_device *adev, u32 reg, u32 v)
 {
        unsigned long flags, address, data;
-       struct nbio_pcie_index_data *nbio_pcie_id;
+       const struct nbio_pcie_index_data *nbio_pcie_id;
 
        if (adev->flags & AMD_IS_APU)
                nbio_pcie_id = &nbio_v7_0_pcie_index_data;
@@ -604,21 +604,6 @@ static int soc15_common_early_init(void *handle)
                (amdgpu_ip_block_mask & (1 << AMD_IP_BLOCK_TYPE_PSP)))
                psp_enabled = true;
 
-       /*
-        * nbio need be used for both sdma and gfx9, but only
-        * initializes once
-        */
-       switch(adev->asic_type) {
-       case CHIP_VEGA10:
-               nbio_v6_1_init(adev);
-               break;
-       case CHIP_RAVEN:
-               nbio_v7_0_init(adev);
-               break;
-       default:
-               return -EINVAL;
-       }
-
        adev->rev_id = soc15_get_rev_id(adev);
        adev->external_rev_id = 0xFF;
        switch (adev->asic_type) {
index 5ed0069..aa4e320 100644 (file)
@@ -227,8 +227,23 @@ static u32 tonga_ih_get_wptr(struct amdgpu_device *adev)
  */
 static bool tonga_ih_prescreen_iv(struct amdgpu_device *adev)
 {
-       /* Process all interrupts */
-       return true;
+       u32 ring_index = adev->irq.ih.rptr >> 2;
+       u16 pasid;
+
+       switch (le32_to_cpu(adev->irq.ih.ring[ring_index]) & 0xff) {
+       case 146:
+       case 147:
+               pasid = le32_to_cpu(adev->irq.ih.ring[ring_index + 2]) >> 16;
+               if (!pasid || amdgpu_vm_pasid_fault_credit(adev, pasid))
+                       return true;
+               break;
+       default:
+               /* Not a VM fault */
+               return true;
+       }
+
+       adev->irq.ih.rptr += 16;
+       return false;
 }
 
 /**
index 31db356..60af731 100644 (file)
@@ -38,6 +38,8 @@
 #include "vi.h"
 
 static void uvd_v6_0_set_ring_funcs(struct amdgpu_device *adev);
+static void uvd_v6_0_set_enc_ring_funcs(struct amdgpu_device *adev);
+
 static void uvd_v6_0_set_irq_funcs(struct amdgpu_device *adev);
 static int uvd_v6_0_start(struct amdgpu_device *adev);
 static void uvd_v6_0_stop(struct amdgpu_device *adev);
@@ -48,6 +50,18 @@ static void uvd_v6_0_enable_mgcg(struct amdgpu_device *adev,
                                 bool enable);
 
 /**
+* uvd_v6_0_enc_support - get encode support status
+*
+* @adev: amdgpu_device pointer
+*
+* Returns the current hardware encode support status
+*/
+static inline bool uvd_v6_0_enc_support(struct amdgpu_device *adev)
+{
+       return ((adev->asic_type >= CHIP_POLARIS10) && (adev->asic_type <= CHIP_POLARIS12));
+}
+
+/**
  * uvd_v6_0_ring_get_rptr - get read pointer
  *
  * @ring: amdgpu_ring pointer
@@ -62,6 +76,22 @@ static uint64_t uvd_v6_0_ring_get_rptr(struct amdgpu_ring *ring)
 }
 
 /**
+ * uvd_v6_0_enc_ring_get_rptr - get enc read pointer
+ *
+ * @ring: amdgpu_ring pointer
+ *
+ * Returns the current hardware enc read pointer
+ */
+static uint64_t uvd_v6_0_enc_ring_get_rptr(struct amdgpu_ring *ring)
+{
+       struct amdgpu_device *adev = ring->adev;
+
+       if (ring == &adev->uvd.ring_enc[0])
+               return RREG32(mmUVD_RB_RPTR);
+       else
+               return RREG32(mmUVD_RB_RPTR2);
+}
+/**
  * uvd_v6_0_ring_get_wptr - get write pointer
  *
  * @ring: amdgpu_ring pointer
@@ -76,6 +106,23 @@ static uint64_t uvd_v6_0_ring_get_wptr(struct amdgpu_ring *ring)
 }
 
 /**
+ * uvd_v6_0_enc_ring_get_wptr - get enc write pointer
+ *
+ * @ring: amdgpu_ring pointer
+ *
+ * Returns the current hardware enc write pointer
+ */
+static uint64_t uvd_v6_0_enc_ring_get_wptr(struct amdgpu_ring *ring)
+{
+       struct amdgpu_device *adev = ring->adev;
+
+       if (ring == &adev->uvd.ring_enc[0])
+               return RREG32(mmUVD_RB_WPTR);
+       else
+               return RREG32(mmUVD_RB_WPTR2);
+}
+
+/**
  * uvd_v6_0_ring_set_wptr - set write pointer
  *
  * @ring: amdgpu_ring pointer
@@ -89,11 +136,247 @@ static void uvd_v6_0_ring_set_wptr(struct amdgpu_ring *ring)
        WREG32(mmUVD_RBC_RB_WPTR, lower_32_bits(ring->wptr));
 }
 
+/**
+ * uvd_v6_0_enc_ring_set_wptr - set enc write pointer
+ *
+ * @ring: amdgpu_ring pointer
+ *
+ * Commits the enc write pointer to the hardware
+ */
+static void uvd_v6_0_enc_ring_set_wptr(struct amdgpu_ring *ring)
+{
+       struct amdgpu_device *adev = ring->adev;
+
+       if (ring == &adev->uvd.ring_enc[0])
+               WREG32(mmUVD_RB_WPTR,
+                       lower_32_bits(ring->wptr));
+       else
+               WREG32(mmUVD_RB_WPTR2,
+                       lower_32_bits(ring->wptr));
+}
+
+/**
+ * uvd_v6_0_enc_ring_test_ring - test if UVD ENC ring is working
+ *
+ * @ring: the engine to test on
+ *
+ */
+static int uvd_v6_0_enc_ring_test_ring(struct amdgpu_ring *ring)
+{
+       struct amdgpu_device *adev = ring->adev;
+       uint32_t rptr = amdgpu_ring_get_rptr(ring);
+       unsigned i;
+       int r;
+
+       r = amdgpu_ring_alloc(ring, 16);
+       if (r) {
+               DRM_ERROR("amdgpu: uvd enc failed to lock ring %d (%d).\n",
+                         ring->idx, r);
+               return r;
+       }
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_END);
+       amdgpu_ring_commit(ring);
+
+       for (i = 0; i < adev->usec_timeout; i++) {
+               if (amdgpu_ring_get_rptr(ring) != rptr)
+                       break;
+               DRM_UDELAY(1);
+       }
+
+       if (i < adev->usec_timeout) {
+               DRM_INFO("ring test on %d succeeded in %d usecs\n",
+                        ring->idx, i);
+       } else {
+               DRM_ERROR("amdgpu: ring %d test failed\n",
+                         ring->idx);
+               r = -ETIMEDOUT;
+       }
+
+       return r;
+}
+
+/**
+ * uvd_v6_0_enc_get_create_msg - generate a UVD ENC create msg
+ *
+ * @adev: amdgpu_device pointer
+ * @ring: ring we should submit the msg to
+ * @handle: session handle to use
+ * @fence: optional fence to return
+ *
+ * Open up a stream for HW test
+ */
+static int uvd_v6_0_enc_get_create_msg(struct amdgpu_ring *ring, uint32_t handle,
+                                      struct dma_fence **fence)
+{
+       const unsigned ib_size_dw = 16;
+       struct amdgpu_job *job;
+       struct amdgpu_ib *ib;
+       struct dma_fence *f = NULL;
+       uint64_t dummy;
+       int i, r;
+
+       r = amdgpu_job_alloc_with_ib(ring->adev, ib_size_dw * 4, &job);
+       if (r)
+               return r;
+
+       ib = &job->ibs[0];
+       dummy = ib->gpu_addr + 1024;
+
+       ib->length_dw = 0;
+       ib->ptr[ib->length_dw++] = 0x00000018;
+       ib->ptr[ib->length_dw++] = 0x00000001; /* session info */
+       ib->ptr[ib->length_dw++] = handle;
+       ib->ptr[ib->length_dw++] = 0x00010000;
+       ib->ptr[ib->length_dw++] = upper_32_bits(dummy);
+       ib->ptr[ib->length_dw++] = dummy;
+
+       ib->ptr[ib->length_dw++] = 0x00000014;
+       ib->ptr[ib->length_dw++] = 0x00000002; /* task info */
+       ib->ptr[ib->length_dw++] = 0x0000001c;
+       ib->ptr[ib->length_dw++] = 0x00000001;
+       ib->ptr[ib->length_dw++] = 0x00000000;
+
+       ib->ptr[ib->length_dw++] = 0x00000008;
+       ib->ptr[ib->length_dw++] = 0x08000001; /* op initialize */
+
+       for (i = ib->length_dw; i < ib_size_dw; ++i)
+               ib->ptr[i] = 0x0;
+
+       r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f);
+       job->fence = dma_fence_get(f);
+       if (r)
+               goto err;
+
+       amdgpu_job_free(job);
+       if (fence)
+               *fence = dma_fence_get(f);
+       dma_fence_put(f);
+       return 0;
+
+err:
+       amdgpu_job_free(job);
+       return r;
+}
+
+/**
+ * uvd_v6_0_enc_get_destroy_msg - generate a UVD ENC destroy msg
+ *
+ * @adev: amdgpu_device pointer
+ * @ring: ring we should submit the msg to
+ * @handle: session handle to use
+ * @fence: optional fence to return
+ *
+ * Close up a stream for HW test or if userspace failed to do so
+ */
+int uvd_v6_0_enc_get_destroy_msg(struct amdgpu_ring *ring, uint32_t handle,
+                                bool direct, struct dma_fence **fence)
+{
+       const unsigned ib_size_dw = 16;
+       struct amdgpu_job *job;
+       struct amdgpu_ib *ib;
+       struct dma_fence *f = NULL;
+       uint64_t dummy;
+       int i, r;
+
+       r = amdgpu_job_alloc_with_ib(ring->adev, ib_size_dw * 4, &job);
+       if (r)
+               return r;
+
+       ib = &job->ibs[0];
+       dummy = ib->gpu_addr + 1024;
+
+       ib->length_dw = 0;
+       ib->ptr[ib->length_dw++] = 0x00000018;
+       ib->ptr[ib->length_dw++] = 0x00000001; /* session info */
+       ib->ptr[ib->length_dw++] = handle;
+       ib->ptr[ib->length_dw++] = 0x00010000;
+       ib->ptr[ib->length_dw++] = upper_32_bits(dummy);
+       ib->ptr[ib->length_dw++] = dummy;
+
+       ib->ptr[ib->length_dw++] = 0x00000014;
+       ib->ptr[ib->length_dw++] = 0x00000002; /* task info */
+       ib->ptr[ib->length_dw++] = 0x0000001c;
+       ib->ptr[ib->length_dw++] = 0x00000001;
+       ib->ptr[ib->length_dw++] = 0x00000000;
+
+       ib->ptr[ib->length_dw++] = 0x00000008;
+       ib->ptr[ib->length_dw++] = 0x08000002; /* op close session */
+
+       for (i = ib->length_dw; i < ib_size_dw; ++i)
+               ib->ptr[i] = 0x0;
+
+       if (direct) {
+               r = amdgpu_ib_schedule(ring, 1, ib, NULL, &f);
+               job->fence = dma_fence_get(f);
+               if (r)
+                       goto err;
+
+               amdgpu_job_free(job);
+       } else {
+               r = amdgpu_job_submit(job, ring, &ring->adev->vce.entity,
+                                     AMDGPU_FENCE_OWNER_UNDEFINED, &f);
+               if (r)
+                       goto err;
+       }
+
+       if (fence)
+               *fence = dma_fence_get(f);
+       dma_fence_put(f);
+       return 0;
+
+err:
+       amdgpu_job_free(job);
+       return r;
+}
+
+/**
+ * uvd_v6_0_enc_ring_test_ib - test if UVD ENC IBs are working
+ *
+ * @ring: the engine to test on
+ *
+ */
+static int uvd_v6_0_enc_ring_test_ib(struct amdgpu_ring *ring, long timeout)
+{
+       struct dma_fence *fence = NULL;
+       long r;
+
+       r = uvd_v6_0_enc_get_create_msg(ring, 1, NULL);
+       if (r) {
+               DRM_ERROR("amdgpu: failed to get create msg (%ld).\n", r);
+               goto error;
+       }
+
+       r = uvd_v6_0_enc_get_destroy_msg(ring, 1, true, &fence);
+       if (r) {
+               DRM_ERROR("amdgpu: failed to get destroy ib (%ld).\n", r);
+               goto error;
+       }
+
+       r = dma_fence_wait_timeout(fence, false, timeout);
+       if (r == 0) {
+               DRM_ERROR("amdgpu: IB test timed out.\n");
+               r = -ETIMEDOUT;
+       } else if (r < 0) {
+               DRM_ERROR("amdgpu: fence wait failed (%ld).\n", r);
+       } else {
+               DRM_INFO("ib test on ring %d succeeded\n", ring->idx);
+               r = 0;
+       }
+error:
+       dma_fence_put(fence);
+       return r;
+}
 static int uvd_v6_0_early_init(void *handle)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
        uvd_v6_0_set_ring_funcs(adev);
+
+       if (uvd_v6_0_enc_support(adev)) {
+               adev->uvd.num_enc_rings = 2;
+               uvd_v6_0_set_enc_ring_funcs(adev);
+       }
+
        uvd_v6_0_set_irq_funcs(adev);
 
        return 0;
@@ -102,7 +385,7 @@ static int uvd_v6_0_early_init(void *handle)
 static int uvd_v6_0_sw_init(void *handle)
 {
        struct amdgpu_ring *ring;
-       int r;
+       int i, r;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
        /* UVD TRAP */
@@ -110,10 +393,31 @@ static int uvd_v6_0_sw_init(void *handle)
        if (r)
                return r;
 
+       /* UVD ENC TRAP */
+       if (uvd_v6_0_enc_support(adev)) {
+               for (i = 0; i < adev->uvd.num_enc_rings; ++i) {
+                       r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, i + 119, &adev->uvd.irq);
+                       if (r)
+                               return r;
+               }
+       }
+
        r = amdgpu_uvd_sw_init(adev);
        if (r)
                return r;
 
+       if (uvd_v6_0_enc_support(adev)) {
+               struct amd_sched_rq *rq;
+               ring = &adev->uvd.ring_enc[0];
+               rq = &ring->sched.sched_rq[AMD_SCHED_PRIORITY_NORMAL];
+               r = amd_sched_entity_init(&ring->sched, &adev->uvd.entity_enc,
+                                         rq, amdgpu_sched_jobs);
+               if (r) {
+                       DRM_ERROR("Failed setting up UVD ENC run queue.\n");
+                       return r;
+               }
+       }
+
        r = amdgpu_uvd_resume(adev);
        if (r)
                return r;
@@ -121,19 +425,38 @@ static int uvd_v6_0_sw_init(void *handle)
        ring = &adev->uvd.ring;
        sprintf(ring->name, "uvd");
        r = amdgpu_ring_init(adev, ring, 512, &adev->uvd.irq, 0);
+       if (r)
+               return r;
+
+       if (uvd_v6_0_enc_support(adev)) {
+               for (i = 0; i < adev->uvd.num_enc_rings; ++i) {
+                       ring = &adev->uvd.ring_enc[i];
+                       sprintf(ring->name, "uvd_enc%d", i);
+                       r = amdgpu_ring_init(adev, ring, 512, &adev->uvd.irq, 0);
+                       if (r)
+                               return r;
+               }
+       }
 
        return r;
 }
 
 static int uvd_v6_0_sw_fini(void *handle)
 {
-       int r;
+       int i, r;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
 
        r = amdgpu_uvd_suspend(adev);
        if (r)
                return r;
 
+       if (uvd_v6_0_enc_support(adev)) {
+               amd_sched_entity_fini(&adev->uvd.ring_enc[0].sched, &adev->uvd.entity_enc);
+
+               for (i = 0; i < adev->uvd.num_enc_rings; ++i)
+                       amdgpu_ring_fini(&adev->uvd.ring_enc[i]);
+       }
+
        return amdgpu_uvd_sw_fini(adev);
 }
 
@@ -149,7 +472,7 @@ static int uvd_v6_0_hw_init(void *handle)
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
        struct amdgpu_ring *ring = &adev->uvd.ring;
        uint32_t tmp;
-       int r;
+       int i, r;
 
        amdgpu_asic_set_uvd_clocks(adev, 10000, 10000);
        uvd_v6_0_set_clockgating_state(adev, AMD_CG_STATE_UNGATE);
@@ -189,9 +512,25 @@ static int uvd_v6_0_hw_init(void *handle)
 
        amdgpu_ring_commit(ring);
 
+       if (uvd_v6_0_enc_support(adev)) {
+               for (i = 0; i < adev->uvd.num_enc_rings; ++i) {
+                       ring = &adev->uvd.ring_enc[i];
+                       ring->ready = true;
+                       r = amdgpu_ring_test_ring(ring);
+                       if (r) {
+                               ring->ready = false;
+                               goto done;
+                       }
+               }
+       }
+
 done:
-       if (!r)
-               DRM_INFO("UVD initialized successfully.\n");
+       if (!r) {
+               if (uvd_v6_0_enc_support(adev))
+                       DRM_INFO("UVD and UVD ENC initialized successfully.\n");
+               else
+                       DRM_INFO("UVD initialized successfully.\n");
+       }
 
        return r;
 }
@@ -514,6 +853,22 @@ static int uvd_v6_0_start(struct amdgpu_device *adev)
 
        WREG32_FIELD(UVD_RBC_RB_CNTL, RB_NO_FETCH, 0);
 
+       if (uvd_v6_0_enc_support(adev)) {
+               ring = &adev->uvd.ring_enc[0];
+               WREG32(mmUVD_RB_RPTR, lower_32_bits(ring->wptr));
+               WREG32(mmUVD_RB_WPTR, lower_32_bits(ring->wptr));
+               WREG32(mmUVD_RB_BASE_LO, ring->gpu_addr);
+               WREG32(mmUVD_RB_BASE_HI, upper_32_bits(ring->gpu_addr));
+               WREG32(mmUVD_RB_SIZE, ring->ring_size / 4);
+
+               ring = &adev->uvd.ring_enc[1];
+               WREG32(mmUVD_RB_RPTR2, lower_32_bits(ring->wptr));
+               WREG32(mmUVD_RB_WPTR2, lower_32_bits(ring->wptr));
+               WREG32(mmUVD_RB_BASE_LO2, ring->gpu_addr);
+               WREG32(mmUVD_RB_BASE_HI2, upper_32_bits(ring->gpu_addr));
+               WREG32(mmUVD_RB_SIZE2, ring->ring_size / 4);
+       }
+
        return 0;
 }
 
@@ -577,6 +932,26 @@ static void uvd_v6_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq
 }
 
 /**
+ * uvd_v6_0_enc_ring_emit_fence - emit an enc fence & trap command
+ *
+ * @ring: amdgpu_ring pointer
+ * @fence: fence to emit
+ *
+ * Write enc a fence and a trap command to the ring.
+ */
+static void uvd_v6_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,
+                       u64 seq, unsigned flags)
+{
+       WARN_ON(flags & AMDGPU_FENCE_FLAG_64BIT);
+
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_FENCE);
+       amdgpu_ring_write(ring, addr);
+       amdgpu_ring_write(ring, upper_32_bits(addr));
+       amdgpu_ring_write(ring, seq);
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_TRAP);
+}
+
+/**
  * uvd_v6_0_ring_emit_hdp_flush - emit an hdp flush
  *
  * @ring: amdgpu_ring pointer
@@ -667,6 +1042,24 @@ static void uvd_v6_0_ring_emit_ib(struct amdgpu_ring *ring,
        amdgpu_ring_write(ring, ib->length_dw);
 }
 
+/**
+ * uvd_v6_0_enc_ring_emit_ib - enc execute indirect buffer
+ *
+ * @ring: amdgpu_ring pointer
+ * @ib: indirect buffer to execute
+ *
+ * Write enc ring commands to execute the indirect buffer
+ */
+static void uvd_v6_0_enc_ring_emit_ib(struct amdgpu_ring *ring,
+               struct amdgpu_ib *ib, unsigned int vm_id, bool ctx_switch)
+{
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_IB_VM);
+       amdgpu_ring_write(ring, vm_id);
+       amdgpu_ring_write(ring, lower_32_bits(ib->gpu_addr));
+       amdgpu_ring_write(ring, upper_32_bits(ib->gpu_addr));
+       amdgpu_ring_write(ring, ib->length_dw);
+}
+
 static void uvd_v6_0_ring_emit_vm_flush(struct amdgpu_ring *ring,
                                         unsigned vm_id, uint64_t pd_addr)
 {
@@ -718,6 +1111,33 @@ static void uvd_v6_0_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
        amdgpu_ring_write(ring, 0xE);
 }
 
+static void uvd_v6_0_enc_ring_emit_pipeline_sync(struct amdgpu_ring *ring)
+{
+       uint32_t seq = ring->fence_drv.sync_seq;
+       uint64_t addr = ring->fence_drv.gpu_addr;
+
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_WAIT_GE);
+       amdgpu_ring_write(ring, lower_32_bits(addr));
+       amdgpu_ring_write(ring, upper_32_bits(addr));
+       amdgpu_ring_write(ring, seq);
+}
+
+static void uvd_v6_0_enc_ring_insert_end(struct amdgpu_ring *ring)
+{
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_END);
+}
+
+static void uvd_v6_0_enc_ring_emit_vm_flush(struct amdgpu_ring *ring,
+        unsigned int vm_id, uint64_t pd_addr)
+{
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_UPDATE_PTB);
+       amdgpu_ring_write(ring, vm_id);
+       amdgpu_ring_write(ring, pd_addr >> 12);
+
+       amdgpu_ring_write(ring, HEVC_ENC_CMD_FLUSH_TLB);
+       amdgpu_ring_write(ring, vm_id);
+}
+
 static bool uvd_v6_0_is_idle(void *handle)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -825,8 +1245,31 @@ static int uvd_v6_0_process_interrupt(struct amdgpu_device *adev,
                                      struct amdgpu_irq_src *source,
                                      struct amdgpu_iv_entry *entry)
 {
+       bool int_handled = true;
        DRM_DEBUG("IH: UVD TRAP\n");
-       amdgpu_fence_process(&adev->uvd.ring);
+
+       switch (entry->src_id) {
+       case 124:
+               amdgpu_fence_process(&adev->uvd.ring);
+               break;
+       case 119:
+               if (likely(uvd_v6_0_enc_support(adev)))
+                       amdgpu_fence_process(&adev->uvd.ring_enc[0]);
+               else
+                       int_handled = false;
+               break;
+       case 120:
+               if (likely(uvd_v6_0_enc_support(adev)))
+                       amdgpu_fence_process(&adev->uvd.ring_enc[1]);
+               else
+                       int_handled = false;
+               break;
+       }
+
+       if (false == int_handled)
+                       DRM_ERROR("Unhandled interrupt: %d %d\n",
+                         entry->src_id, entry->src_data[0]);
+
        return 0;
 }
 
@@ -1153,6 +1596,33 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_vm_funcs = {
        .end_use = amdgpu_uvd_ring_end_use,
 };
 
+static const struct amdgpu_ring_funcs uvd_v6_0_enc_ring_vm_funcs = {
+       .type = AMDGPU_RING_TYPE_UVD_ENC,
+       .align_mask = 0x3f,
+       .nop = HEVC_ENC_CMD_NO_OP,
+       .support_64bit_ptrs = false,
+       .get_rptr = uvd_v6_0_enc_ring_get_rptr,
+       .get_wptr = uvd_v6_0_enc_ring_get_wptr,
+       .set_wptr = uvd_v6_0_enc_ring_set_wptr,
+       .emit_frame_size =
+               4 + /* uvd_v6_0_enc_ring_emit_pipeline_sync */
+               6 + /* uvd_v6_0_enc_ring_emit_vm_flush */
+               5 + 5 + /* uvd_v6_0_enc_ring_emit_fence x2 vm fence */
+               1, /* uvd_v6_0_enc_ring_insert_end */
+       .emit_ib_size = 5, /* uvd_v6_0_enc_ring_emit_ib */
+       .emit_ib = uvd_v6_0_enc_ring_emit_ib,
+       .emit_fence = uvd_v6_0_enc_ring_emit_fence,
+       .emit_vm_flush = uvd_v6_0_enc_ring_emit_vm_flush,
+       .emit_pipeline_sync = uvd_v6_0_enc_ring_emit_pipeline_sync,
+       .test_ring = uvd_v6_0_enc_ring_test_ring,
+       .test_ib = uvd_v6_0_enc_ring_test_ib,
+       .insert_nop = amdgpu_ring_insert_nop,
+       .insert_end = uvd_v6_0_enc_ring_insert_end,
+       .pad_ib = amdgpu_ring_generic_pad_ib,
+       .begin_use = amdgpu_uvd_ring_begin_use,
+       .end_use = amdgpu_uvd_ring_end_use,
+};
+
 static void uvd_v6_0_set_ring_funcs(struct amdgpu_device *adev)
 {
        if (adev->asic_type >= CHIP_POLARIS10) {
@@ -1164,6 +1634,16 @@ static void uvd_v6_0_set_ring_funcs(struct amdgpu_device *adev)
        }
 }
 
+static void uvd_v6_0_set_enc_ring_funcs(struct amdgpu_device *adev)
+{
+       int i;
+
+       for (i = 0; i < adev->uvd.num_enc_rings; ++i)
+               adev->uvd.ring_enc[i].funcs = &uvd_v6_0_enc_ring_vm_funcs;
+
+       DRM_INFO("UVD ENC is enabled in VM mode\n");
+}
+
 static const struct amdgpu_irq_src_funcs uvd_v6_0_irq_funcs = {
        .set = uvd_v6_0_set_interrupt_state,
        .process = uvd_v6_0_process_interrupt,
@@ -1171,7 +1651,11 @@ static const struct amdgpu_irq_src_funcs uvd_v6_0_irq_funcs = {
 
 static void uvd_v6_0_set_irq_funcs(struct amdgpu_device *adev)
 {
-       adev->uvd.irq.num_types = 1;
+       if (uvd_v6_0_enc_support(adev))
+               adev->uvd.irq.num_types = adev->uvd.num_enc_rings + 1;
+       else
+               adev->uvd.irq.num_types = 1;
+
        adev->uvd.irq.funcs = &uvd_v6_0_irq_funcs;
 }
 
index a3b30d8..6973257 100644 (file)
@@ -260,15 +260,18 @@ static bool vega10_ih_prescreen_iv(struct amdgpu_device *adev)
                return true;
        }
 
-       /* Not a retry fault */
-       if (!(dw5 & 0x80))
-               return true;
-
        pasid = dw3 & 0xffff;
        /* No PASID, can't identify faulting process */
        if (!pasid)
                return true;
 
+       /* Not a retry fault, check fault credit */
+       if (!(dw5 & 0x80)) {
+               if (!amdgpu_vm_pasid_fault_credit(adev, pasid))
+                       goto ignore_iv;
+               return true;
+       }
+
        addr = ((u64)(dw5 & 0xf) << 44) | ((u64)dw4 << 12);
        key = AMDGPU_VM_FAULT(pasid, addr);
        r = amdgpu_ih_add_fault(adev, key);
index 9ff69b9..f3cfef4 100644 (file)
@@ -1254,7 +1254,6 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
        uint32_t msg_id, pp_state = 0;
        uint32_t pp_support_state = 0;
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       void *pp_handle = adev->powerplay.pp_handle;
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_MC_LS | AMD_CG_SUPPORT_MC_MGCG)) {
                if (adev->cg_flags & AMD_CG_SUPPORT_MC_LS) {
@@ -1271,7 +1270,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_MC,
                               pp_support_state,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_SDMA_LS | AMD_CG_SUPPORT_SDMA_MGCG)) {
@@ -1289,7 +1289,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_SDMA,
                               pp_support_state,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & (AMD_CG_SUPPORT_HDP_LS | AMD_CG_SUPPORT_HDP_MGCG)) {
@@ -1307,7 +1308,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_HDP,
                               pp_support_state,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
 
@@ -1321,7 +1323,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_BIF,
                               PP_STATE_SUPPORT_LS,
                                pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
        if (adev->cg_flags & AMD_CG_SUPPORT_BIF_MGCG) {
                if (state == AMD_CG_STATE_UNGATE)
@@ -1333,7 +1336,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_BIF,
                               PP_STATE_SUPPORT_CG,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & AMD_CG_SUPPORT_DRM_LS) {
@@ -1347,7 +1351,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_DRM,
                               PP_STATE_SUPPORT_LS,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
 
        if (adev->cg_flags & AMD_CG_SUPPORT_ROM_MGCG) {
@@ -1361,7 +1366,8 @@ static int vi_common_set_clockgating_state_by_smu(void *handle,
                               PP_BLOCK_SYS_ROM,
                               PP_STATE_SUPPORT_CG,
                               pp_state);
-               amd_set_clockgating_by_smu(pp_handle, msg_id);
+               if (adev->powerplay.pp_funcs->set_clockgating_by_smu)
+                       amdgpu_dpm_set_clockgating_by_smu(adev, msg_id);
        }
        return 0;
 }
index a648525..dbf3703 100644 (file)
 #define VCE_CMD_UPDATE_PTB      0x00000107
 #define VCE_CMD_FLUSH_TLB       0x00000108
 
+/* HEVC ENC */
+#define HEVC_ENC_CMD_NO_OP         0x00000000
+#define HEVC_ENC_CMD_END           0x00000001
+#define HEVC_ENC_CMD_FENCE         0x00000003
+#define HEVC_ENC_CMD_TRAP          0x00000004
+#define HEVC_ENC_CMD_IB_VM         0x00000102
+#define HEVC_ENC_CMD_WAIT_GE       0x00000106
+#define HEVC_ENC_CMD_UPDATE_PTB    0x00000107
+#define HEVC_ENC_CMD_FLUSH_TLB     0x00000108
+
 /* mmPA_SC_RASTER_CONFIG mask */
 #define RB_MAP_PKR0(x)                         ((x) << 0)
 #define RB_MAP_PKR0_MASK                       (0x3 << 0)
index 20457bb..de6fc27 100644 (file)
@@ -257,43 +257,54 @@ struct amd_ip_funcs {
        void (*get_clockgating_state)(void *handle, u32 *flags);
 };
 
-enum amd_pp_task;
 
+enum amd_pp_task;
+enum amd_pp_clock_type;
 struct pp_states_info;
+struct amd_pp_simple_clock_info;
+struct amd_pp_display_configuration;
+struct amd_pp_clock_info;
+struct pp_display_clock_request;
+struct pp_wm_sets_with_clock_ranges_soc15;
+struct pp_clock_levels_with_voltage;
+struct pp_clock_levels_with_latency;
+struct amd_pp_clocks;
 
 struct amd_pm_funcs {
-       int (*get_temperature)(void *handle);
+/* export for dpm on ci and si */
        int (*pre_set_power_state)(void *handle);
        int (*set_power_state)(void *handle);
        void (*post_set_power_state)(void *handle);
        void (*display_configuration_changed)(void *handle);
-       u32 (*get_sclk)(void *handle, bool low);
-       u32 (*get_mclk)(void *handle, bool low);
        void (*print_power_state)(void *handle, void *ps);
-       void (*debugfs_print_current_performance_level)(void *handle, struct seq_file *m);
-       int (*force_performance_level)(void *handle, enum amd_dpm_forced_level level);
        bool (*vblank_too_short)(void *handle);
-       void (*powergate_uvd)(void *handle, bool gate);
-       void (*powergate_vce)(void *handle, bool gate);
        void (*enable_bapm)(void *handle, bool enable);
+       int (*check_state_equal)(void *handle,
+                               void  *cps,
+                               void  *rps,
+                               bool  *equal);
+/* export for sysfs */
+       int (*get_temperature)(void *handle);
        void (*set_fan_control_mode)(void *handle, u32 mode);
        u32 (*get_fan_control_mode)(void *handle);
        int (*set_fan_speed_percent)(void *handle, u32 speed);
        int (*get_fan_speed_percent)(void *handle, u32 *speed);
        int (*force_clock_level)(void *handle, enum pp_clock_type type, uint32_t mask);
        int (*print_clock_levels)(void *handle, enum pp_clock_type type, char *buf);
+       int (*force_performance_level)(void *handle, enum amd_dpm_forced_level level);
        int (*get_sclk_od)(void *handle);
        int (*set_sclk_od)(void *handle, uint32_t value);
        int (*get_mclk_od)(void *handle);
        int (*set_mclk_od)(void *handle, uint32_t value);
-       int (*check_state_equal)(void *handle,
-                               void  *cps,
-                               void  *rps,
-                               bool  *equal);
-       int (*read_sensor)(void *handle, int idx, void *value,
-                          int *size);
+       int (*read_sensor)(void *handle, int idx, void *value, int *size);
+       enum amd_dpm_forced_level (*get_performance_level)(void *handle);
+       enum amd_pm_state_type (*get_current_power_state)(void *handle);
+       int (*get_fan_speed_rpm)(void *handle, uint32_t *rpm);
+       int (*get_pp_num_states)(void *handle, struct pp_states_info *data);
+       int (*get_pp_table)(void *handle, char **table);
+       int (*set_pp_table)(void *handle, const char *buf, size_t size);
+       void (*debugfs_print_current_performance_level)(void *handle, struct seq_file *m);
 
-       struct amd_vce_state* (*get_vce_clock_state)(void *handle, u32 idx);
        int (*reset_power_profile_state)(void *handle,
                        struct amd_pp_profile *request);
        int (*get_power_profile_state)(void *handle,
@@ -302,16 +313,39 @@ struct amd_pm_funcs {
                        struct amd_pp_profile *request);
        int (*switch_power_profile)(void *handle,
                        enum amd_pp_profile_type type);
-       int (*load_firmware)(void *handle);
-       int (*wait_for_fw_loading_complete)(void *handle);
-       enum amd_dpm_forced_level (*get_performance_level)(void *handle);
-       enum amd_pm_state_type (*get_current_power_state)(void *handle);
+/* export to amdgpu */
+       void (*powergate_uvd)(void *handle, bool gate);
+       void (*powergate_vce)(void *handle, bool gate);
+       struct amd_vce_state* (*get_vce_clock_state)(void *handle, u32 idx);
        int (*dispatch_tasks)(void *handle, enum amd_pp_task task_id,
                                   void *input, void *output);
-       int (*get_fan_speed_rpm)(void *handle, uint32_t *rpm);
-       int (*get_pp_num_states)(void *handle, struct pp_states_info *data);
-       int (*get_pp_table)(void *handle, char **table);
-       int (*set_pp_table)(void *handle, const char *buf, size_t size);
+       int (*load_firmware)(void *handle);
+       int (*wait_for_fw_loading_complete)(void *handle);
+       int (*set_clockgating_by_smu)(void *handle, uint32_t msg_id);
+/* export to DC */
+       u32 (*get_sclk)(void *handle, bool low);
+       u32 (*get_mclk)(void *handle, bool low);
+       int (*display_configuration_change)(void *handle,
+               const struct amd_pp_display_configuration *input);
+       int (*get_display_power_level)(void *handle,
+               struct amd_pp_simple_clock_info *output);
+       int (*get_current_clocks)(void *handle,
+               struct amd_pp_clock_info *clocks);
+       int (*get_clock_by_type)(void *handle,
+               enum amd_pp_clock_type type,
+               struct amd_pp_clocks *clocks);
+       int (*get_clock_by_type_with_latency)(void *handle,
+               enum amd_pp_clock_type type,
+               struct pp_clock_levels_with_latency *clocks);
+       int (*get_clock_by_type_with_voltage)(void *handle,
+               enum amd_pp_clock_type type,
+               struct pp_clock_levels_with_voltage *clocks);
+       int (*set_watermarks_for_clocks_ranges)(void *handle,
+               struct pp_wm_sets_with_clock_ranges_soc15 *wm_with_clock_ranges);
+       int (*display_clock_voltage_request)(void *handle,
+               struct pp_display_clock_request *clock);
+       int (*get_display_mode_validation_clocks)(void *handle,
+               struct amd_pp_simple_clock_info *clocks);
 };
 
 
index 378f4b6..3442372 100644 (file)
 #define mmUVD_UDEC_DBW_ADDR_CONFIG                                              0x3bd5
 #define mmUVD_POWER_STATUS_U                                                    0x3bfd
 #define mmUVD_NO_OP                                                             0x3bff
+#define mmUVD_RB_BASE_LO2                                                       0x3c21
+#define mmUVD_RB_BASE_HI2                                                       0x3c22
+#define mmUVD_RB_SIZE2                                                          0x3c23
+#define mmUVD_RB_RPTR2                                                          0x3c24
+#define mmUVD_RB_WPTR2                                                          0x3c25
+#define mmUVD_RB_BASE_LO                                                        0x3c26
+#define mmUVD_RB_BASE_HI                                                        0x3c27
+#define mmUVD_RB_SIZE                                                           0x3c28
+#define mmUVD_RB_RPTR                                                           0x3c29
+#define mmUVD_RB_WPTR                                                           0x3c2a
 #define mmUVD_LMI_RBC_RB_64BIT_BAR_LOW                                          0x3c69
 #define mmUVD_LMI_RBC_RB_64BIT_BAR_HIGH                                         0x3c68
 #define mmUVD_LMI_RBC_IB_64BIT_BAR_LOW                                          0x3c67
 #define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_LOW                                      0x3c5f
 #define mmUVD_LMI_VCPU_CACHE_64BIT_BAR_HIGH                                     0x3c5e
 #define mmUVD_SEMA_CNTL                                                         0x3d00
+#define mmUVD_RB_WPTR3                                                          0x3d1c
+#define mmUVD_RB_RPTR3                                                          0x3d1b
+#define mmUVD_RB_BASE_LO3                                                       0x3d1d
+#define mmUVD_RB_BASE_HI3                                                       0x3d1e
+#define mmUVD_RB_SIZE3                                                          0x3d1f
 #define mmUVD_LMI_EXT40_ADDR                                                    0x3d26
 #define mmUVD_CTX_INDEX                                                         0x3d28
 #define mmUVD_CTX_DATA                                                          0x3d29
index 181a2c3..f696bbb 100644 (file)
@@ -4292,6 +4292,7 @@ typedef struct _ATOM_DPCD_INFO
 #define ATOM_VRAM_OPERATION_FLAGS_SHIFT        30
 #define   ATOM_VRAM_BLOCK_NEEDS_NO_RESERVATION   0x1
 #define   ATOM_VRAM_BLOCK_NEEDS_RESERVATION      0x0
+#define   ATOM_VRAM_BLOCK_SRIOV_MSG_SHARE_RESERVATION 0x2
 
 /***********************************************************************************/
 // Structure used in VRAM_UsageByFirmwareTable
index 030b146..675988d 100644 (file)
@@ -423,6 +423,10 @@ typedef int (*cgs_enter_safe_mode)(struct cgs_device *cgs_device, bool en);
 
 typedef void (*cgs_lock_grbm_idx)(struct cgs_device *cgs_device, bool lock);
 
+struct amd_pp_init;
+typedef void* (*cgs_register_pp_handle)(struct cgs_device *cgs_device,
+                       int (*call_back_func)(struct amd_pp_init *, void **));
+
 struct cgs_ops {
        /* memory management calls (similar to KFD interface) */
        cgs_alloc_gpu_mem_t alloc_gpu_mem;
@@ -459,6 +463,7 @@ struct cgs_ops {
        cgs_is_virtualization_enabled_t is_virtualization_enabled;
        cgs_enter_safe_mode enter_safe_mode;
        cgs_lock_grbm_idx lock_grbm_idx;
+       cgs_register_pp_handle register_pp_handle;
 };
 
 struct cgs_os_ops; /* To be define in OS-specific CGS header */
@@ -537,4 +542,7 @@ struct cgs_device
 
 #define cgs_lock_grbm_idx(cgs_device, lock) \
                CGS_CALL(lock_grbm_idx, cgs_device, lock)
+#define cgs_register_pp_handle(cgs_device, call_back_func) \
+               CGS_CALL(register_pp_handle, cgs_device, call_back_func)
+
 #endif /* _CGS_COMMON_H */
index 03ee7ad..776ef34 100644 (file)
@@ -4,7 +4,8 @@ menu "AMD Library routines"
 # Closed hash table
 #
 config CHASH
-       tristate "Closed hash table"
+       tristate
+       default DRM_AMDGPU
        help
         Statically sized closed hash table implementation with low
         memory and CPU overhead.
index e07e6f3..b8e45f3 100644 (file)
@@ -223,8 +223,8 @@ static int chash_table_check(struct __chash_table *table)
 static void chash_iter_relocate(struct chash_iter dst, struct chash_iter src)
 {
        BUG_ON(src.table == dst.table && src.slot == dst.slot);
-       BUG_ON(src.table->key_size != src.table->key_size);
-       BUG_ON(src.table->value_size != src.table->value_size);
+       BUG_ON(src.table->key_size != dst.table->key_size);
+       BUG_ON(src.table->value_size != dst.table->value_size);
 
        if (dst.table->key_size == 4)
                dst.table->keys32[dst.slot] = src.table->keys32[src.slot];
index 9f3f3b8..3c8ef4b 100644 (file)
 #include "pp_instance.h"
 #include "power_state.h"
 
+#define PP_DPM_DISABLED 0xCCCC
+
+static int pp_dpm_dispatch_tasks(void *handle, enum amd_pp_task task_id,
+               void *input, void *output);
+
 static inline int pp_check(struct pp_instance *handle)
 {
-       if (handle == NULL || handle->pp_valid != PP_VALID)
+       if (handle == NULL)
                return -EINVAL;
 
        if (handle->hwmgr == NULL || handle->hwmgr->smumgr_funcs == NULL)
@@ -47,19 +52,54 @@ static inline int pp_check(struct pp_instance *handle)
        return 0;
 }
 
+static int amd_powerplay_create(struct amd_pp_init *pp_init,
+                               void **handle)
+{
+       struct pp_instance *instance;
+
+       if (pp_init == NULL || handle == NULL)
+               return -EINVAL;
+
+       instance = kzalloc(sizeof(struct pp_instance), GFP_KERNEL);
+       if (instance == NULL)
+               return -ENOMEM;
+
+       instance->chip_family = pp_init->chip_family;
+       instance->chip_id = pp_init->chip_id;
+       instance->pm_en = pp_init->pm_en;
+       instance->feature_mask = pp_init->feature_mask;
+       instance->device = pp_init->device;
+       mutex_init(&instance->pp_lock);
+       *handle = instance;
+       return 0;
+}
+
+static int amd_powerplay_destroy(void *handle)
+{
+       struct pp_instance *instance = (struct pp_instance *)handle;
+
+       kfree(instance->hwmgr);
+       instance->hwmgr = NULL;
+
+       kfree(instance);
+       instance = NULL;
+       return 0;
+}
+
 static int pp_early_init(void *handle)
 {
        int ret;
-       struct pp_instance *pp_handle = (struct pp_instance *)handle;
+       struct pp_instance *pp_handle = NULL;
+
+       pp_handle = cgs_register_pp_handle(handle, amd_powerplay_create);
+
+       if (!pp_handle)
+               return -EINVAL;
 
        ret = hwmgr_early_init(pp_handle);
        if (ret)
                return -EINVAL;
 
-       if ((pp_handle->pm_en == 0)
-               || cgs_is_virtualization_enabled(pp_handle->device))
-               return PP_DPM_DISABLED;
-
        return 0;
 }
 
@@ -71,7 +111,7 @@ static int pp_sw_init(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret == 0 || ret == PP_DPM_DISABLED) {
+       if (ret >= 0) {
                hwmgr = pp_handle->hwmgr;
 
                if (hwmgr->smumgr_funcs->smu_init == NULL)
@@ -91,7 +131,7 @@ static int pp_sw_fini(void *handle)
        struct pp_instance *pp_handle = (struct pp_instance *)handle;
 
        ret = pp_check(pp_handle);
-       if (ret == 0 || ret == PP_DPM_DISABLED) {
+       if (ret >= 0) {
                hwmgr = pp_handle->hwmgr;
 
                if (hwmgr->smumgr_funcs->smu_fini == NULL)
@@ -110,7 +150,7 @@ static int pp_hw_init(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret == 0 || ret == PP_DPM_DISABLED) {
+       if (ret >= 0) {
                hwmgr = pp_handle->hwmgr;
 
                if (hwmgr->smumgr_funcs->start_smu == NULL)
@@ -122,16 +162,17 @@ static int pp_hw_init(void *handle)
                        return -EINVAL;;
                }
                if (ret == PP_DPM_DISABLED)
-                       return PP_DPM_DISABLED;
+                       goto exit;
+               ret = hwmgr_hw_init(pp_handle);
+               if (ret)
+                       goto exit;
        }
-
-       ret = hwmgr_hw_init(pp_handle);
-       if (ret)
-               goto err;
-       return 0;
-err:
+       return ret;
+exit:
        pp_handle->pm_en = 0;
-       return PP_DPM_DISABLED;
+       cgs_notify_dpm_enabled(hwmgr->device, false);
+       return 0;
+
 }
 
 static int pp_hw_fini(void *handle)
@@ -146,6 +187,25 @@ static int pp_hw_fini(void *handle)
        return 0;
 }
 
+static int pp_late_init(void *handle)
+{
+       struct pp_instance *pp_handle = (struct pp_instance *)handle;
+       int ret = 0;
+
+       ret = pp_check(pp_handle);
+       if (ret == 0)
+               pp_dpm_dispatch_tasks(pp_handle,
+                                       AMD_PP_TASK_COMPLETE_INIT, NULL, NULL);
+
+       return 0;
+}
+
+static void pp_late_fini(void *handle)
+{
+       amd_powerplay_destroy(handle);
+}
+
+
 static bool pp_is_idle(void *handle)
 {
        return false;
@@ -161,28 +221,6 @@ static int pp_sw_reset(void *handle)
        return 0;
 }
 
-
-int amd_set_clockgating_by_smu(void *handle, uint32_t msg_id)
-{
-       struct pp_hwmgr  *hwmgr;
-       struct pp_instance *pp_handle = (struct pp_instance *)handle;
-       int ret = 0;
-
-       ret = pp_check(pp_handle);
-
-       if (ret != 0)
-               return ret;
-
-       hwmgr = pp_handle->hwmgr;
-
-       if (hwmgr->hwmgr_func->update_clock_gatings == NULL) {
-               pr_info("%s was not implemented.\n", __func__);
-               return 0;
-       }
-
-       return hwmgr->hwmgr_func->update_clock_gatings(hwmgr, &msg_id);
-}
-
 static int pp_set_powergating_state(void *handle,
                                    enum amd_powergating_state state)
 {
@@ -192,7 +230,7 @@ static int pp_set_powergating_state(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -213,39 +251,34 @@ static int pp_suspend(void *handle)
        int ret = 0;
 
        ret = pp_check(pp_handle);
-
-       if (ret == PP_DPM_DISABLED)
-               return 0;
-       else if (ret != 0)
-               return ret;
-
-       return hwmgr_hw_suspend(pp_handle);
+       if (ret == 0)
+               hwmgr_hw_suspend(pp_handle);
+       return 0;
 }
 
 static int pp_resume(void *handle)
 {
        struct pp_hwmgr  *hwmgr;
-       int ret, ret1;
+       int ret;
        struct pp_instance *pp_handle = (struct pp_instance *)handle;
 
-       ret1 = pp_check(pp_handle);
+       ret = pp_check(pp_handle);
 
-       if (ret1 != 0 && ret1 != PP_DPM_DISABLED)
-               return ret1;
+       if (ret < 0)
+               return ret;
 
        hwmgr = pp_handle->hwmgr;
 
        if (hwmgr->smumgr_funcs->start_smu == NULL)
                return -EINVAL;
 
-       ret = hwmgr->smumgr_funcs->start_smu(pp_handle->hwmgr);
-       if (ret) {
+       if (hwmgr->smumgr_funcs->start_smu(pp_handle->hwmgr)) {
                pr_err("smc start failed\n");
                hwmgr->smumgr_funcs->smu_fini(pp_handle->hwmgr);
-               return ret;
+               return -EINVAL;
        }
 
-       if (ret1 == PP_DPM_DISABLED)
+       if (ret == PP_DPM_DISABLED)
                return 0;
 
        return hwmgr_hw_resume(pp_handle);
@@ -254,11 +287,12 @@ static int pp_resume(void *handle)
 const struct amd_ip_funcs pp_ip_funcs = {
        .name = "powerplay",
        .early_init = pp_early_init,
-       .late_init = NULL,
+       .late_init = pp_late_init,
        .sw_init = pp_sw_init,
        .sw_fini = pp_sw_fini,
        .hw_init = pp_hw_init,
        .hw_fini = pp_hw_fini,
+       .late_fini = pp_late_fini,
        .suspend = pp_suspend,
        .resume = pp_resume,
        .is_idle = pp_is_idle,
@@ -278,6 +312,27 @@ static int pp_dpm_fw_loading_complete(void *handle)
        return 0;
 }
 
+static int pp_set_clockgating_by_smu(void *handle, uint32_t msg_id)
+{
+       struct pp_hwmgr  *hwmgr;
+       struct pp_instance *pp_handle = (struct pp_instance *)handle;
+       int ret = 0;
+
+       ret = pp_check(pp_handle);
+
+       if (ret)
+               return ret;
+
+       hwmgr = pp_handle->hwmgr;
+
+       if (hwmgr->hwmgr_func->update_clock_gatings == NULL) {
+               pr_info("%s was not implemented.\n", __func__);
+               return 0;
+       }
+
+       return hwmgr->hwmgr_func->update_clock_gatings(hwmgr, &msg_id);
+}
+
 static void pp_dpm_en_umd_pstate(struct pp_hwmgr  *hwmgr,
                                                enum amd_dpm_forced_level *level)
 {
@@ -323,7 +378,7 @@ static int pp_dpm_force_performance_level(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -358,7 +413,7 @@ static enum amd_dpm_forced_level pp_dpm_get_performance_level(
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -377,7 +432,7 @@ static uint32_t pp_dpm_get_sclk(void *handle, bool low)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -401,7 +456,7 @@ static uint32_t pp_dpm_get_mclk(void *handle, bool low)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -424,7 +479,7 @@ static void pp_dpm_powergate_vce(void *handle, bool gate)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return;
 
        hwmgr = pp_handle->hwmgr;
@@ -446,7 +501,7 @@ static void pp_dpm_powergate_uvd(void *handle, bool gate)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return;
 
        hwmgr = pp_handle->hwmgr;
@@ -468,7 +523,7 @@ static int pp_dpm_dispatch_tasks(void *handle, enum amd_pp_task task_id,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        mutex_lock(&pp_handle->pp_lock);
@@ -488,7 +543,7 @@ static enum amd_pm_state_type pp_dpm_get_current_power_state(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -530,7 +585,7 @@ static void pp_dpm_set_fan_control_mode(void *handle, uint32_t mode)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return;
 
        hwmgr = pp_handle->hwmgr;
@@ -553,7 +608,7 @@ static uint32_t pp_dpm_get_fan_control_mode(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -576,7 +631,7 @@ static int pp_dpm_set_fan_speed_percent(void *handle, uint32_t percent)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -599,7 +654,7 @@ static int pp_dpm_get_fan_speed_percent(void *handle, uint32_t *speed)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -623,7 +678,7 @@ static int pp_dpm_get_fan_speed_rpm(void *handle, uint32_t *rpm)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -645,7 +700,7 @@ static int pp_dpm_get_temperature(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -670,7 +725,7 @@ static int pp_dpm_get_pp_num_states(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -715,7 +770,7 @@ static int pp_dpm_get_pp_table(void *handle, char **table)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -738,7 +793,7 @@ static int pp_dpm_set_pp_table(void *handle, const char *buf, size_t size)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -780,7 +835,7 @@ static int pp_dpm_force_clock_level(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -804,7 +859,7 @@ static int pp_dpm_print_clock_levels(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -827,7 +882,7 @@ static int pp_dpm_get_sclk_od(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -850,7 +905,7 @@ static int pp_dpm_set_sclk_od(void *handle, uint32_t value)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -874,7 +929,7 @@ static int pp_dpm_get_mclk_od(void *handle)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -897,7 +952,7 @@ static int pp_dpm_set_mclk_od(void *handle, uint32_t value)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -921,7 +976,7 @@ static int pp_dpm_read_sensor(void *handle, int idx,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -947,7 +1002,7 @@ pp_dpm_get_vce_clock_state(void *handle, unsigned idx)
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return NULL;
 
        hwmgr = pp_handle->hwmgr;
@@ -1120,53 +1175,16 @@ const struct amd_pm_funcs pp_dpm_funcs = {
        .get_power_profile_state = pp_dpm_get_power_profile_state,
        .set_power_profile_state = pp_dpm_set_power_profile_state,
        .switch_power_profile = pp_dpm_switch_power_profile,
+       .set_clockgating_by_smu = pp_set_clockgating_by_smu,
 };
 
-int amd_powerplay_create(struct amd_pp_init *pp_init,
-                               void **handle)
-{
-       struct pp_instance *instance;
-
-       if (pp_init == NULL || handle == NULL)
-               return -EINVAL;
-
-       instance = kzalloc(sizeof(struct pp_instance), GFP_KERNEL);
-       if (instance == NULL)
-               return -ENOMEM;
-
-       instance->pp_valid = PP_VALID;
-       instance->chip_family = pp_init->chip_family;
-       instance->chip_id = pp_init->chip_id;
-       instance->pm_en = pp_init->pm_en;
-       instance->feature_mask = pp_init->feature_mask;
-       instance->device = pp_init->device;
-       mutex_init(&instance->pp_lock);
-       *handle = instance;
-       return 0;
-}
-
-int amd_powerplay_destroy(void *handle)
-{
-       struct pp_instance *instance = (struct pp_instance *)handle;
-
-       kfree(instance->hwmgr);
-       instance->hwmgr = NULL;
-
-       kfree(instance);
-       instance = NULL;
-       return 0;
-}
-
 int amd_powerplay_reset(void *handle)
 {
        struct pp_instance *instance = (struct pp_instance *)handle;
        int ret;
 
-       if (cgs_is_virtualization_enabled(instance->hwmgr->device))
-               return PP_DPM_DISABLED;
-
        ret = pp_check(instance);
-       if (ret != 0)
+       if (!ret)
                return ret;
 
        ret = pp_hw_fini(instance);
@@ -1175,7 +1193,7 @@ int amd_powerplay_reset(void *handle)
 
        ret = hwmgr_hw_init(instance);
        if (ret)
-               return PP_DPM_DISABLED;
+               return ret;
 
        return hwmgr_handle_task(instance, AMD_PP_TASK_COMPLETE_INIT, NULL, NULL);
 }
@@ -1191,7 +1209,7 @@ int amd_powerplay_display_configuration_change(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -1210,7 +1228,7 @@ int amd_powerplay_get_display_power_level(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -1235,7 +1253,7 @@ int amd_powerplay_get_current_clocks(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -1252,7 +1270,7 @@ int amd_powerplay_get_current_clocks(void *handle,
                ret = phm_get_clock_info(hwmgr, &hwmgr->current_ps->hardware,
                                        &hw_clocks, PHM_PerformanceLevelDesignation_Activity);
 
-       if (ret != 0) {
+       if (ret) {
                pr_info("Error in phm_get_clock_info \n");
                mutex_unlock(&pp_handle->pp_lock);
                return -EINVAL;
@@ -1286,7 +1304,7 @@ int amd_powerplay_get_clock_by_type(void *handle, enum amd_pp_clock_type type, s
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
@@ -1309,7 +1327,7 @@ int amd_powerplay_get_clock_by_type_with_latency(void *handle,
        int ret = 0;
 
        ret = pp_check(pp_handle);
-       if (ret != 0)
+       if (ret)
                return ret;
 
        if (!clocks)
@@ -1331,7 +1349,7 @@ int amd_powerplay_get_clock_by_type_with_voltage(void *handle,
        int ret = 0;
 
        ret = pp_check(pp_handle);
-       if (ret != 0)
+       if (ret)
                return ret;
 
        if (!clocks)
@@ -1355,7 +1373,7 @@ int amd_powerplay_set_watermarks_for_clocks_ranges(void *handle,
        int ret = 0;
 
        ret = pp_check(pp_handle);
-       if (ret != 0)
+       if (ret)
                return ret;
 
        if (!wm_with_clock_ranges)
@@ -1379,7 +1397,7 @@ int amd_powerplay_display_clock_voltage_request(void *handle,
        int ret = 0;
 
        ret = pp_check(pp_handle);
-       if (ret != 0)
+       if (ret)
                return ret;
 
        if (!clock)
@@ -1403,7 +1421,7 @@ int amd_powerplay_get_display_mode_validation_clocks(void *handle,
 
        ret = pp_check(pp_handle);
 
-       if (ret != 0)
+       if (ret)
                return ret;
 
        hwmgr = pp_handle->hwmgr;
index 73bb99d..189f3b5 100644 (file)
@@ -704,7 +704,7 @@ static int cz_update_sclk_limit(struct pp_hwmgr *hwmgr)
 
        clock = hwmgr->display_config.min_core_set_clock;
        if (clock == 0)
-               pr_info("min_core_set_clock not set\n");
+               pr_debug("min_core_set_clock not set\n");
 
        if (cz_hwmgr->sclk_dpm.hard_min_clk != clock) {
                cz_hwmgr->sclk_dpm.hard_min_clk = clock;
index 35e80c9..ce59e0e 100644 (file)
@@ -292,7 +292,6 @@ int hwmgr_hw_fini(struct pp_instance *handle)
 
        phm_stop_thermal_controller(hwmgr);
        psm_set_boot_states(hwmgr);
-       phm_display_configuration_changed(hwmgr);
        psm_adjust_power_state_dynamic(hwmgr, false, NULL);
        phm_disable_dynamic_state_management(hwmgr);
        phm_disable_clock_power_gatings(hwmgr);
index d09f254..8ba75d4 100644 (file)
 #include "pp_overdriver.h"
 #include <linux/errno.h>
 
-struct phm_fuses_default vega10_fuses_default[] = {
-       {"0000001000010011111010101001010011011110000011100100100101100100",0x00003C96,0xFFFFE226,0x00000656,0x00002203,0xFFFFF201,0x000003FF,0x00002203,0xFFFFF201,0x000003FF},
-       {"0000001000010011111010101001010011011110000010100001100010000100",0x00003CC5,0xFFFFE23A,0x0000064E,0x00002258,0xFFFFF1F7,0x000003FC,0x00002258,0xFFFFF1F7,0x000003FC},
-       {"0000001000010011111010101001010011011110000011100011000110100100",0x00003CAF,0xFFFFE36E,0x00000602,0x00001E98,0xFFFFF569,0x00000357,0x00001E98,0xFFFFF569,0x00000357},
-       {"0000001000010011111010101001010011011110001011000001000101000100",0x0000391A,0xFFFFE548,0x000005C9,0x00001B98,0xFFFFF707,0x00000324,0x00001B98,0xFFFFF707,0x00000324},
-       {"0000001000010011111010101001010011011110001011000001100011000100",0x00003821,0xFFFFE674,0x00000597,0x00002196,0xFFFFF361,0x000003C0,0x00002196,0xFFFFF361,0x000003C0},
-       {"0000001000010011111010101001010011011110001001100011100010000100",0x000044A2,0xFFFFDCB7,0x00000738,0x0000325C,0xFFFFE6A7,0x000005E6,0x0000325C,0xFFFFE6A7,0x000005E6},
-       {"0000001000010011111010101001010011011110000010000010100100100100",0x00004057,0xFFFFE1CF,0x0000063C,0x00002E2E,0xFFFFEB62,0x000004FD,0x00002E2E,0xFFFFEB62,0x000004FD},
-       {"0000001000010011111010101001010011011110001010000100100100100100",0x00003FD0,0xFFFFDF0F,0x000006E5,0x0000267C,0xFFFFEE2D,0x000004AB,0x0000267C,0xFFFFEE2D,0x000004AB},
-       {"0000001000010011111010101001010011011110001010000000100100000100",0x00003F13,0xFFFFE010,0x000006AD,0x000020E7,0xFFFFF266,0x000003EC,0x000020E7,0xFFFFF266,0x000003EC},
-       {"0000001000010011111010101001010011011110000010000010000001000100",0x00004088,0xFFFFDFAB,0x000006B6,0x0000252B,0xFFFFEFDB,0x00000458,0x0000252B,0xFFFFEFDB,0x00000458},
-       {"0000001000010011111010101001010011011110001010000011100010000100",0x00003EF6,0xFFFFE017,0x000006AA,0x00001F67,0xFFFFF369,0x000003BE,0x00001F67,0xFFFFF369,0x000003BE},
-       {"0000001000010011111010101001010011011110001011000010000110000100",0x00003CDD,0xFFFFE2A7,0x0000063C,0x000026C6,0xFFFFEF38,0x00000478,0x000026C6,0xFFFFEF38,0x00000478},
-       {"0000001000010011111010101001010011011110000100000101000100100100",0x00003FA8,0xFFFFDF02,0x000006F0,0x000027FE,0xFFFFECF6,0x000004EA,0x000027FE,0xFFFFECF6,0x000004EA},
-       {"0000001000010011111010101001010011011110001001100011100011000100",0x00004670,0xFFFFDC40,0x00000742,0x00003A7A,0xFFFFE1A7,0x000006B6,0x00003A7A,0xFFFFE1A7,0x000006B6},
-       {"0000001000010011111010101001010011011110001011000011000000100100",0x00003CDC,0xFFFFE18C,0x00000683,0x00002A69,0xFFFFEBE7,0x00000515,0x00002A69,0xFFFFEBE7,0x00000515},
-       {"0000001000010011111010101001010011011110000011100011100011000100",0x00003CEC,0xFFFFE38E,0x00000601,0x00002752,0xFFFFEFA7,0x00000453,0x00002752,0xFFFFEFA7,0x00000453},
-       {"0000001000010011111010101001010011011110001011000001000100100100",0x000037D0,0xFFFFE634,0x000005A7,0x00001CD2,0xFFFFF644,0x00000348,0x00001CD2,0xFFFFF644,0x00000348},
-       {"0000001000010011111010101001010011011110001010000011100101100100",0x00003DF5,0xFFFFE0A5,0x00000698,0x00001FD5,0xFFFFF30E,0x000003D1,0x00001FD5,0xFFFFF30E,0x000003D1},
-       {"0000001000010011111010101001010011011110000010000010100011000100",0x00004201,0xFFFFE03E,0x00000688,0x00003206,0xFFFFE852,0x0000058A,0x00003206,0xFFFFE852,0x0000058A},
-       {"0000001000010011111010101001010011011110001011000001100001100100",0x00003BED,0xFFFFE2F5,0x00000638,0x0000270D,0xFFFFEED0,0x0000048E,0x0000270D,0xFFFFEED0,0x0000048E},
-       {"0000001000010011111010101001010011011110000010100001100100000100",0x00003E82,0xFFFFE1BE,0x00000654,0x000025FB,0xFFFFEFFA,0x00000448,0x000025FB,0xFFFFEFFA,0x00000448},
-       {"0000001000010011111010101001010011011110001011000100000011000100",0x00003962,0xFFFFE4B9,0x000005EF,0x00002385,0xFFFFF156,0x00000423,0x00002385,0xFFFFF156,0x00000423},
-       {"0000001000010011111010101001010011011110001011000000100101000100",0x00003D88,0xFFFFE21A,0x00000655,0x0000295A,0xFFFFED68,0x000004C4,0x0000295A,0xFFFFED68,0x000004C4},
-       {"0000001000010011111010101001010011011110001011000001000100000100",0x00003AA4,0xFFFFE4A3,0x000005E0,0x000022EF,0xFFFFF250,0x000003EB,0x000022EF,0xFFFFF250,0x000003EB},
-       {"0000001000010011111010101001010011011110000011100010100110100100",0x00003D97,0xFFFFE30D,0x0000060D,0x0000205D,0xFFFFF45D,0x00000380,0x0000205D,0xFFFFF45D,0x00000380},
-       {"0000001000010011111010101001010011011110001011000100000010100100",0x000039B6,0xFFFFE446,0x00000605,0x00002325,0xFFFFF16C,0x0000041F,0x00002325,0xFFFFF16C,0x0000041F},
-       {"0000001000010011111010101001010011011110001001100011100100000100",0x0000457E,0xFFFFDCF6,0x00000722,0x00003972,0xFFFFE27B,0x0000068E,0x00003972,0xFFFFE27B,0x0000068E},
-       {"0000001000010011111010101001010011011110000010100001100100100100",0x00003FB8,0xFFFFE101,0x00000670,0x00002787,0xFFFFEEF5,0x00000471,0x00002787,0xFFFFEEF5,0x00000471},
-       {"0000001000010011111010101001010011011110000011100011100010100100",0x00003BB2,0xFFFFE430,0x000005EA,0x000024A5,0xFFFFF162,0x00000409,0x000024A5,0xFFFFF162,0x00000409},
-       {"0000001000010011111010101001010011011110000010000010000101000100",0x00003EC5,0xFFFFE1BD,0x0000064F,0x000022F0,0xFFFFF227,0x000003E8,0x000022F0,0xFFFFF227,0x000003E8},
-       {"0000001000010011111010101001010011011110001011000011000101100100",0x000038A7,0xFFFFE59F,0x000005C1,0x000021CC,0xFFFFF2DF,0x000003D9,0x000021CC,0xFFFFF2DF,0x000003D9},
-       {"0000001000010011111010101001010011011110001100100100000110000100",0x00002995,0xFFFFEF7A,0x0000044C,0x00001552,0xFFFFFB5D,0x00000292,0x00001552,0xFFFFFB5D,0x00000292},
-       {"0000001000010011111010101001010011011110001011000100000001100100",0x00003B26,0xFFFFE2D3,0x00000649,0x000023B4,0xFFFFF09B,0x00000449,0x000023B4,0xFFFFF09B,0x00000449},
-       {"0000001000010011111010101001010011011110000010000001000100100100",0x000040D2,0xFFFFE00A,0x00000696,0x000022DA,0xFFFFF1E9,0x000003F2,0x000022DA,0xFFFFF1E9,0x000003F2},
-       {"0000001000010011111010101001010011011110001011000011100100100100",0x00003C98,0xFFFFE365,0x00000618,0x00002D5D,0xFFFFEB3A,0x0000051D,0x00002D5D,0xFFFFEB3A,0x0000051D},
-       {"0000001000010011111010101001010011011110001011000001000010100100",0x00003BBD,0xFFFFE37E,0x00000617,0x0000252E,0xFFFFF06E,0x00000441,0x0000252E,0xFFFFF06E,0x00000441},
-       {"0000001000010011111010101001010011011110001001100010100100100100",0x00004363,0xFFFFDF7A,0x000006A0,0x000031F5,0xFFFFE880,0x0000057B,0x000031F5,0xFFFFE880,0x0000057B},
-       {"0000001000010011111010101001010011011110000011100011100001000100",0x00003CFC,0xFFFFE2AF,0x0000062E,0x0000212A,0xFFFFF335,0x000003BF,0x0000212A,0xFFFFF335,0x000003BF},
-       {"0000001000010011111010101001010011011110000111000100100100100100",0x0000252D,0xFFFFF31B,0x000003C3,0x00001A1A,0xFFFFF882,0x00000325,0x00001A1A,0xFFFFF882,0x00000325},
-       {"0000001000010011111010101001010011011110000010100010100110100100",0x00003FE2,0xFFFFDFEF,0x000006AC,0x000025A2,0xFFFFEF84,0x00000462,0x000025A2,0xFFFFEF84,0x00000462},
-       {"0000001000010011111010101001010011011110000010000010000011100100",0x000040A5,0xFFFFE13B,0x0000065B,0x00002C13,0xFFFFEC75,0x000004D7,0x00002C13,0xFFFFEC75,0x000004D7},
-       {"0000001000010011111010101001010011011110000011100100100010100100",0x00003E42,0xFFFFE1B3,0x00000657,0x0000221D,0xFFFFF273,0x000003DE,0x0000221D,0xFFFFF273,0x000003DE},
-       {"0000001000010011111010101001010011011110000010100010000011100100",0x00003E7F,0xFFFFE255,0x00000638,0x00002D30,0xFFFFEB8A,0x00000503,0x00002D30,0xFFFFEB8A,0x00000503},
-       {"0000001000010011111010101001010011011110001011000010100111000100",0x00003E56,0xFFFFE16D,0x00000670,0x000028DC,0xFFFFEDA0,0x000004BA,0x000028DC,0xFFFFEDA0,0x000004BA},
-       {"0000001000010011111010101001010011011110001001100011000010100100",0x000044AD,0xFFFFDE24,0x000006DD,0x000031AD,0xFFFFE850,0x00000585,0x000031AD,0xFFFFE850,0x00000585},
-       {"0000001000010011111010101001010011011110001011000010000011100100",0x00003AF3,0xFFFFE5B0,0x000005A6,0x00002CF6,0xFFFFEC75,0x000004DD,0x00002CF6,0xFFFFEC75,0x000004DD},
-       {"0000001000010011111010101001010011011110000010100010000010000100",0x00003E66,0xFFFFE19E,0x0000065B,0x00002332,0xFFFFF1B9,0x000003FD,0x00002332,0xFFFFF1B9,0x000003FD},
-       {"0000001000010011111010101001010011011110000010000010100010000100",0x00003FB4,0xFFFFE0A5,0x00000686,0x0000253E,0xFFFFF02E,0x00000444,0x0000253E,0xFFFFF02E,0x00000444},
-       {"0000001000010011111010101001010011011110001010000001100010100100",0x00003E28,0xFFFFE14D,0x0000066E,0x00001FE2,0xFFFFF39A,0x000003B1,0x00001FE2,0xFFFFF39A,0x000003B1},
-       {"0000001000010011111010101001010011011110001011000000100100000100",0x000039E6,0xFFFFE44B,0x000005FE,0x0000210C,0xFFFFF2F4,0x000003DA,0x0000210C,0xFFFFF2F4,0x000003DA},
-       {"0000001000010011111010101001010011011110001011000101000100000100",0x00003A4D,0xFFFFE252,0x0000067A,0x000027E2,0xFFFFECED,0x000004FA,0x000027E2,0xFFFFECED,0x000004FA},
-       {"0000001000010011111010101001010011011110000010100010100101100100",0x00004065,0xFFFFE02F,0x0000069B,0x0000299D,0xFFFFED38,0x000004C2,0x0000299D,0xFFFFED38,0x000004C2},
-       {"0000001000010011111010101001010011011110000011100010000010100100",0x000039EE,0xFFFFE603,0x00000594,0x0000214F,0xFFFFF429,0x0000038E,0x0000214F,0xFFFFF429,0x0000038E},
-       {"0000001000010011111010101001010011011110000011100100100011100100",0x00003BD2,0xFFFFE351,0x00000618,0x000020B8,0xFFFFF377,0x000003B4,0x000020B8,0xFFFFF377,0x000003B4},
-       {"0000001000010011111010101001010011011110000010100011000100100100",0x00003FAA,0xFFFFE183,0x0000065E,0x000032AE,0xFFFFE7C2,0x000005A6,0x000032AE,0xFFFFE7C2,0x000005A6},
-       {"0000001000010011111010101001010011011110001011000010100110000100",0x00003AFB,0xFFFFE3E4,0x00000608,0x00002293,0xFFFFF21F,0x000003FA,0x00002293,0xFFFFF21F,0x000003FA},
-       {"0000001000010011111010101001010011011110001001100010000001100100",0x0000448B,0xFFFFDD5D,0x0000070D,0x00002E4E,0xFFFFE9DF,0x00000551,0x00002E4E,0xFFFFE9DF,0x00000551},
-       {"0000001000010011111010101001010011011110000011100010000110000100",0x00003D46,0xFFFFE39B,0x000005F3,0x0000218E,0xFFFFF3CD,0x00000398,0x0000218E,0xFFFFF3CD,0x00000398},
-       {"0000001000010011111010101001010011011110000010000100100011100100",0x00003F01,0xFFFFDFD9,0x000006BF,0x000023AF,0xFFFFF04E,0x0000044C,0x000023AF,0xFFFFF04E,0x0000044C},
-       {"0000001000010011111010101001010011011110000100000010100110100100",0x0000403D,0xFFFFDF6B,0x000006C9,0x0000270D,0xFFFFEE4B,0x0000049E,0x0000270D,0xFFFFEE4B,0x0000049E},
-       {"0000001000010011111010101001010011011110000011100011100101100100",0x00003C11,0xFFFFE35C,0x00000613,0x000020F9,0xFFFFF365,0x000003B9,0x000020F9,0xFFFFF365,0x000003B9},
-       {"0000001000010011111010101001010011011110001011000011100010000100",0x00003B58,0xFFFFE37D,0x0000061F,0x00002698,0xFFFFEF46,0x00000478,0x00002698,0xFFFFEF46,0x00000478},
-       {"0000001000010011111010101001010011011110001010000100000110100100",0x00003EBC,0xFFFFDF7A,0x000006D6,0x0000212B,0xFFFFF195,0x0000041B,0x0000212B,0xFFFFF195,0x0000041B},
-       {"0000001000010011111010101001010011011110000010000100100011000100",0x00004050,0xFFFFDEB3,0x000006FE,0x00002D6C,0xFFFFE961,0x00000582,0x00002D6C,0xFFFFE961,0x00000582},
-       {"0000001000010011111010101001010011011110001001100010000001000100",0x000043F0,0xFFFFDD9C,0x00000702,0x00002B31,0xFFFFEBEA,0x000004F7,0x00002B31,0xFFFFEBEA,0x000004F7},
-       {"0000001000010011111010101001010011011110000100000000100100100100",0x00003EFA,0xFFFFE093,0x00000696,0x000026DB,0xFFFFEEB3,0x00000489,0x000026DB,0xFFFFEEB3,0x00000489},
-       {"0000001000010011111010101001010011011110000010000010000001100100",0x0000425D,0xFFFFDE8D,0x000006E6,0x00002CA4,0xFFFFEAD2,0x00000531,0x00002CA4,0xFFFFEAD2,0x00000531},
-       {"0000001000010011111010101001010011011110001001100011100110100100",0x000043B0,0xFFFFDD03,0x00000728,0x00002946,0xFFFFECA6,0x000004DE,0x00002946,0xFFFFECA6,0x000004DE},
-       {"0000001000010011111010101001010011011110001010000010100001100100",0x00003F6A,0xFFFFE03A,0x0000069D,0x00002208,0xFFFFF1F8,0x000003F6,0x00002208,0xFFFFF1F8,0x000003F6},
-       {"0000001000010011111010101001010011011110001011000010100101100100",0x00003A94,0xFFFFE4A7,0x000005E2,0x000024D0,0xFFFFF100,0x00000426,0x000024D0,0xFFFFF100,0x00000426},
-       {"0000001000010011111010101001010011011110001010000001000011000100",0x00003F2F,0xFFFFE0A3,0x00000688,0x00002198,0xFFFFF271,0x000003E2,0x00002198,0xFFFFF271,0x000003E2},
-       {"0000001000010011111010101001010011011110000100000100100011100100",0x00003EA5,0xFFFFE032,0x000006AE,0x0000227C,0xFFFFF130,0x00000426,0x0000227C,0xFFFFF130,0x00000426},
-       {"0000001000010011111010101001010011011110001001100100000101000100",0x0000442F,0xFFFFDBC4,0x0000078B,0x00003CD6,0xFFFFDE6C,0x0000076C,0x00003CD6,0xFFFFDE6C,0x0000076C},
-       {"0000001000010011111010101001010011011110001010000010100010000100",0x00003DDE,0xFFFFE174,0x00000668,0x00001FF4,0xFFFFF38F,0x000003B1,0x00001FF4,0xFFFFF38F,0x000003B1},
-       {"0000001000010011111010101001010011011110000010100011000101000100",0x000040B0,0xFFFFE016,0x000006A0,0x00002DBB,0xFFFFEA7F,0x00000537,0x00002DBB,0xFFFFEA7F,0x00000537},
-       {"0000001000010011111010101001010011011110001011000011000100000100",0x00003429,0xFFFFEA97,0x000004DD,0x000024D5,0xFFFFF26F,0x000003DF,0x000024D5,0xFFFFF26F,0x000003DF},
-       {"0000001000010011111010101001010011011110000011100001100100000100",0x00003AEB,0xFFFFE590,0x000005A3,0x000022CB,0xFFFFF347,0x000003B2,0x000022CB,0xFFFFF347,0x000003B2},
-       {"0000001000010011111010101001010011011110001010000011100100000100",0x00003B8E,0xFFFFE2EF,0x00000636,0x00002351,0xFFFFF143,0x0000041C,0x00002351,0xFFFFF143,0x0000041C},
-       {"0000001000010011111010101001010011011110001100100100000011000100",0x00002926,0xFFFFF0B0,0x00000410,0x0000194E,0xFFFFF94E,0x000002E9,0x0000194E,0xFFFFF94E,0x000002E9},
-       {"0000001000010011111010101001010011011110001010000011000110000100",0x0000402B,0xFFFFDF78,0x000006C2,0x00002273,0xFFFFF16C,0x00000414,0x00002273,0xFFFFF16C,0x00000414},
-       {"0000001000010011111010101001010011011110000010100001000010100100",0x00003D6A,0xFFFFE1D3,0x00000659,0x00002006,0xFFFFF394,0x000003B1,0x00002006,0xFFFFF394,0x000003B1},
-       {"0000001000010011111010101001010011011110001010000100000001100100",0x00004042,0xFFFFDFD8,0x000006A8,0x00002135,0xFFFFF29F,0x000003D9,0x00002135,0xFFFFF29F,0x000003D9},
-       {"0000001000010011111010101001010011011110000010000010000010100100",0x0000405B,0xFFFFE093,0x00000682,0x0000288F,0xFFFFEE3A,0x00000491,0x0000288F,0xFFFFEE3A,0x00000491},
-       {"0000001000010011111010101001010011011110001011000100100010100100",0x00003A49,0xFFFFE30C,0x00000648,0x000023F9,0xFFFFF02D,0x00000460,0x000023F9,0xFFFFF02D,0x00000460},
-       {"0000001000010011111010101001010011011110001010000010100101100100",0x00003D59,0xFFFFE1CC,0x0000065B,0x00002013,0xFFFFF37D,0x000003B6,0x00002013,0xFFFFF37D,0x000003B6},
-       {"0000001000010011111010101001010011011110001011000011100110000100",0x000040C1,0xFFFFDF8C,0x000006CA,0x00003271,0xFFFFE6CA,0x000005EA,0x00003271,0xFFFFE6CA,0x000005EA},
-       {"0000001000010011111010101001010011011110001001100010000011100100",0x000042E9,0xFFFFDFDC,0x0000068C,0x00002ED9,0xFFFFEAAF,0x0000051B,0x00002ED9,0xFFFFEAAF,0x0000051B},
-       {"0000001000010011111010101001010011011110000010000011000010000100",0x000042ED,0xFFFFDE50,0x000006F0,0x00002FCF,0xFFFFE8BB,0x0000058C,0x00002FCF,0xFFFFE8BB,0x0000058C},
-       {"0000001000010011111010101001010011011110000010100100000100000100",0x00003EBD,0xFFFFE099,0x00000698,0x00002709,0xFFFFEE7B,0x00000495,0x00002709,0xFFFFEE7B,0x00000495},
-       {"0000001000010011111010101001010011011110001010000100100100000100",0x00003F71,0xFFFFDF82,0x000006C9,0x0000219B,0xFFFFF1AD,0x0000040F,0x0000219B,0xFFFFF1AD,0x0000040F},
-       {"0000001000010011111010101001010011011110001010000000100011100100",0x00003E73,0xFFFFE080,0x0000069B,0x000020E7,0xFFFFF273,0x000003E9,0x000020E7,0xFFFFF273,0x000003E9},
-       {"0000001000010011111010101001010011011110000011100011000110000100",0x00003E14,0xFFFFE278,0x0000062C,0x00002275,0xFFFFF2B3,0x000003CE,0x00002275,0xFFFFF2B3,0x000003CE},
-       {"0000001000010011111010101001010011011110001011000010000110100100",0x00003ABB,0xFFFFE3B9,0x00000615,0x00002192,0xFFFFF28F,0x000003EB,0x00002192,0xFFFFF28F,0x000003EB},
-       {"0000001000010011111010101001010011011110001010000011000100100100",0x00003D53,0xFFFFE255,0x00000643,0x0000275B,0xFFFFEEED,0x00000479,0x0000275B,0xFFFFEEED,0x00000479},
-       {"0000001000010011111010101001010011011110001001100010100001100100",0x000043E3,0xFFFFDDC3,0x000006FB,0x00002B6B,0xFFFFEBD6,0x000004FA,0x00002B6B,0xFFFFEBD6,0x000004FA},
-       {"0000001000010011111010101001010011011110000011100010000101000100",0x00003BDE,0xFFFFE507,0x000005B4,0x000022CE,0xFFFFF358,0x000003AB,0x000022CE,0xFFFFF358,0x000003AB},
-       {"0000001000010011111010101001010011011110001100100011000101100100",0x00002460,0xFFFFF3B5,0x000003A2,0x000014E7,0xFFFFFC32,0x0000027C,0x000014E7,0xFFFFFC32,0x0000027C},
-       {"0000001000010011111010101001010011011110001010000010000011000100",0x00003D20,0xFFFFE298,0x0000062F,0x00002080,0xFFFFF3AF,0x000003A8,0x00002080,0xFFFFF3AF,0x000003A8},
-       {"0000001000010011111010101001010011011110000010000001100100000100",0x00003E14,0xFFFFE221,0x00000641,0x000021BB,0xFFFFF2EA,0x000003CA,0x000021BB,0xFFFFF2EA,0x000003CA},
-       {"0000001000010011111010101001010011011110000010100100000011000100",0x00003DE1,0xFFFFE14E,0x00000677,0x00002468,0xFFFFF068,0x00000440,0x00002468,0xFFFFF068,0x00000440},
-       {"0000001000010011111010101001010011011110001001100001000010000100",0x00004372,0xFFFFDDF8,0x000006F5,0x00002B3F,0xFFFFEBE8,0x000004F8,0x00002B3F,0xFFFFEBE8,0x000004F8},
-       {"0000001000010011111010101001010011011110000010100010100011000100",0x00003E4F,0xFFFFE2A3,0x0000062B,0x00002F5A,0xFFFFEA37,0x0000053B,0x00002F5A,0xFFFFEA37,0x0000053B},
-       {"0000001000010011111010101001010011011110001010000101000011100100",0x00003E07,0xFFFFE02F,0x000006B6,0x0000216B,0xFFFFF1A3,0x00000416,0x0000216B,0xFFFFF1A3,0x00000416},
-       {"0000001000010011111010101001010011011110001010000011100010100100",0x00003DAB,0xFFFFE128,0x0000067F,0x0000216F,0xFFFFF236,0x000003F3,0x0000216F,0xFFFFF236,0x000003F3},
-       {"0000001000010011111010101001010011011110001011000010100100100100",0x0000364B,0xFFFFE8CB,0x0000052A,0x00002568,0xFFFFF1B2,0x00000400,0x00002568,0xFFFFF1B2,0x00000400},
-       {"0000001000010011111010101001010011011110001001100001000001100100",0x00004219,0xFFFFDE87,0x000006E8,0x00002C59,0xFFFFEAEE,0x00000529,0x00002C59,0xFFFFEAEE,0x00000529},
-       {"0000001000010011111010101001010011011110000011100001100101000100",0x000039A8,0xFFFFE602,0x00000594,0x00001D06,0xFFFFF6F0,0x00000316,0x00001D06,0xFFFFF6F0,0x00000316},
-       {"0000001000010011111010101001010011011110001001100001000011100100",0x00004052,0xFFFFE01C,0x00000698,0x00002310,0xFFFFF1A1,0x000003FE,0x00002310,0xFFFFF1A1,0x000003FE},
-       {"0000001000010011111010101001010011011110000011100010100000100100",0x00003C1C,0xFFFFE3EB,0x000005F1,0x00002289,0xFFFFF2CF,0x000003C9,0x00002289,0xFFFFF2CF,0x000003C9},
-       {"0000001000010011111010101001010011011110000011100101000100100100",0x00003F19,0xFFFFE085,0x0000069E,0x00002B94,0xFFFFEB72,0x0000051D,0x00002B94,0xFFFFEB72,0x0000051D},
-       {"0000001000010011111010101001010011011110000011100100000110100100",0x00003C51,0xFFFFE2AD,0x00000638,0x0000206B,0xFFFFF361,0x000003BE,0x0000206B,0xFFFFF361,0x000003BE},
-       {"0000001000010011111010101001010011011110001001100001000011000100",0x000040B9,0xFFFFDFBB,0x000006AB,0x0000241F,0xFFFFF0CC,0x00000425,0x0000241F,0xFFFFF0CC,0x00000425},
-       {"0000001000010011111010101001010011011110000010100010000001100100",0x00003E62,0xFFFFE12C,0x00000678,0x00002445,0xFFFFF09E,0x00000435,0x00002445,0xFFFFF09E,0x00000435},
-       {"0000001000010011111010101001010011011110000011100001100110000100",0x00003C97,0xFFFFE399,0x000005FB,0x0000209D,0xFFFFF41D,0x0000038F,0x0000209D,0xFFFFF41D,0x0000038F},
-       {"0000001000010011111010101001010011011110000011100011000101000100",0x00003FF9,0xFFFFE1E9,0x0000063E,0x00002E96,0xFFFFEAF5,0x00000516,0x00002E96,0xFFFFEAF5,0x00000516},
-       {"0000001000010011111010101001010011011110000010100011000010000100",0x00003F04,0xFFFFE109,0x0000067A,0x000026E1,0xFFFFEF0B,0x00000476,0x000026E1,0xFFFFEF0B,0x00000476},
-       {"0000001000010011111010101001010011011110000100000001000100100100",0x00003E3E,0xFFFFE187,0x00000660,0x00002049,0xFFFFF38D,0x000003B0,0x00002049,0xFFFFF38D,0x000003B0},
-       {"0000001000010011111010101001010011011110001010000010100101000100",0x00003D58,0xFFFFE253,0x0000063D,0x00002158,0xFFFFF308,0x000003C3,0x00002158,0xFFFFF308,0x000003C3},
-       {"0000001000010011111010101001010011011110000010000100000011000100",0x00004074,0xFFFFDF8D,0x000006C0,0x00002799,0xFFFFEE19,0x000004A5,0x00002799,0xFFFFEE19,0x000004A5},
-       {"0000001000010011111010101001010011011110001010000001100100100100",0x00003DAF,0xFFFFE1C9,0x00000659,0x000020E5,0xFFFFF313,0x000003C6,0x000020E5,0xFFFFF313,0x000003C6},
-       {"0000001000010011111010101001010011011110000010100011100101100100",0x000041DD,0xFFFFDDFA,0x0000071B,0x0000348D,0xFFFFE4B4,0x0000064C,0x0000348D,0xFFFFE4B4,0x0000064C},
-       {"0000001000010011111010101001010011011110001011000010100010000100",0x00003947,0xFFFFE5AE,0x000005B8,0x000024A6,0xFFFFF140,0x0000041D,0x000024A6,0xFFFFF140,0x0000041D},
-       {"0000001000010011111010101001010011011110000100000001100001000100",0x00003D35,0xFFFFE197,0x0000066E,0x00002248,0xFFFFF1BC,0x00000408,0x00002248,0xFFFFF1BC,0x00000408},
-       {"0000001000010011111010101001010011011110000010100001100011100100",0x00003F4F,0xFFFFE13E,0x0000066D,0x00002AF0,0xFFFFEC99,0x000004DB,0x00002AF0,0xFFFFEC99,0x000004DB},
-       {"0000001000010011111010101001010011011110001001100011100101000100",0x0000430F,0xFFFFDDFB,0x000006FC,0x00002D4D,0xFFFFEA55,0x00000540,0x00002D4D,0xFFFFEA55,0x00000540},
-       {"0000001000010011111010101001010011011110000011100010100101000100",0x00003B22,0xFFFFE543,0x000005B1,0x000022E1,0xFFFFF31B,0x000003B9,0x000022E1,0xFFFFF31B,0x000003B9},
-       {"0000001000010011111010101001010011011110000011100010000010000100",0x00003978,0xFFFFE611,0x00000592,0x00001C36,0xFFFFF771,0x00000302,0x00001C36,0xFFFFF771,0x00000302},
-       {"0000001000010011111010101001010011011110001001100010000101100100",0x000044DF,0xFFFFDDAB,0x000006F2,0x00002CEA,0xFFFFEB47,0x00000507,0x00002CEA,0xFFFFEB47,0x00000507},
-       {"0000001000010011111010101001010011011110000010100011100011000100",0x00003E9B,0xFFFFE12C,0x0000067C,0x00002B79,0xFFFFEBD9,0x00000503,0x00002B79,0xFFFFEBD9,0x00000503},
-       {"0000001000010011111010101001010011011110001001100011000001000100",0x00004464,0xFFFFDCD3,0x00000731,0x00002D14,0xFFFFEA2D,0x0000054E,0x00002D14,0xFFFFEA2D,0x0000054E},
-       {"0000001000010011111010101001010011011110001010000001000100100100",0x00003FB3,0xFFFFE052,0x00000693,0x000020AC,0xFFFFF311,0x000003C6,0x000020AC,0xFFFFF311,0x000003C6},
-       {"0000001000010011111010101001010011011110001011000001000010000100",0x00003BDA,0xFFFFE2FB,0x00000636,0x0000261E,0xFFFFEF72,0x00000471,0x0000261E,0xFFFFEF72,0x00000471},
-       {"0000001000010011111010101001010011011110001011000001100101100100",0x00003D72,0xFFFFE28A,0x0000063E,0x000029D8,0xFFFFED54,0x000004C7,0x000029D8,0xFFFFED54,0x000004C7},
-       {"0000001000010011111010101001010011011110001011000010100000100100",0x00003E26,0xFFFFE102,0x00000694,0x00002DD1,0xFFFFE9CA,0x0000056D,0x00002DD1,0xFFFFE9CA,0x0000056D},
-       {"0000001000010011111010101001010011011110000100000100000100100100",0x000041CD,0xFFFFDE97,0x000006ED,0x00002DE5,0xFFFFE9B9,0x00000565,0x00002DE5,0xFFFFE9B9,0x00000565},
-       {"0000001000010011111010101001010011011110000010100010100110000100",0x00003F30,0xFFFFE06E,0x00000698,0x000024FF,0xFFFFEFFC,0x0000044F,0x000024FF,0xFFFFEFFC,0x0000044F},
-       {"0000001000010011111010101001010011011110001011000011100011000100",0x0000378B,0xFFFFE6B4,0x00000594,0x000023A7,0xFFFFF1DC,0x00000407,0x000023A7,0xFFFFF1DC,0x00000407},
-       {"0000001000010011111010101001010011011110000011100100000101100100",0x00003CD7,0xFFFFE28D,0x00000636,0x00002036,0xFFFFF3B5,0x000003AA,0x00002036,0xFFFFF3B5,0x000003AA},
-       {"0000001000010011111010101001010011011110000010100011100010000100",0x00003EF9,0xFFFFE0AA,0x0000068D,0x000024D3,0xFFFFF02F,0x00000445,0x000024D3,0xFFFFF02F,0x00000445},
-       {"0000001000010011111010101001010011011110001010000011100101000100",0x00003D08,0xFFFFE1BB,0x00000665,0x00002159,0xFFFFF26F,0x000003E6,0x00002159,0xFFFFF26F,0x000003E6},
-       {"0000001000010011111010101001010011011110001011000010000011000100",0x000038A9,0xFFFFE6CA,0x00000580,0x000025D3,0xFFFFF101,0x00000421,0x000025D3,0xFFFFF101,0x00000421},
-       {"0000001000010011111010101001010011011110000010100010000010100100",0x00003E45,0xFFFFE1F8,0x0000064D,0x000027E3,0xFFFFEEBB,0x0000047F,0x000027E3,0xFFFFEEBB,0x0000047F},
-       {"0000001000010011111010101001010011011110000011100011100001100100",0x00003F76,0xFFFFE128,0x0000066E,0x0000286B,0xFFFFEE4C,0x00000493,0x0000286B,0xFFFFEE4C,0x00000493},
-       {"0000001000010011111010101001010011011110001001100100000100000100",0x0000440D,0xFFFFDCA2,0x0000074F,0x00003817,0xFFFFE256,0x000006AF,0x00003817,0xFFFFE256,0x000006AF},
-       {"0000001000010011111010101001010011011110000100000101000100000100",0x00003EE1,0xFFFFDFA7,0x000006D4,0x000027EA,0xFFFFED2B,0x000004DE,0x000027EA,0xFFFFED2B,0x000004DE},
-       {"0000001000010011111010101001010011011110001011000011100001100100",0x00003C62,0xFFFFE285,0x0000064A,0x00002520,0xFFFFF001,0x0000045C,0x00002520,0xFFFFF001,0x0000045C},
-       {"0000001000010011111010101001010011011110001100100011100101100100",0x0000272E,0xFFFFF17A,0x000003FA,0x0000150B,0xFFFFFBD5,0x00000284,0x0000150B,0xFFFFFBD5,0x00000284},
-       {"0000001000010011111010101001010011011110001001100001100100100100",0x00004275,0xFFFFDF69,0x000006A5,0x000025AA,0xFFFFF05C,0x0000042B,0x000025AA,0xFFFFF05C,0x0000042B},
-       {"0000001000010011111010101001010011011110000011100100000011100100",0x00003CAA,0xFFFFE392,0x000005FF,0x000023A8,0xFFFFF20E,0x000003E9,0x000023A8,0xFFFFF20E,0x000003E9},
-       {"0000001000010011111010101001010011011110001011000101000011000100",0x00003CF8,0xFFFFE0FB,0x000006A6,0x00002CA7,0xFFFFE9FF,0x0000056E,0x00002CA7,0xFFFFE9FF,0x0000056E},
-       {"0000001000010011111010101001010011011110001010000010000100100100",0x00003D00,0xFFFFE296,0x00000633,0x000021C1,0xFFFFF2C8,0x000003CF,0x000021C1,0xFFFFF2C8,0x000003CF},
-       {"0000001000010011111010101001010011011110001010000011100011100100",0x00003B46,0xFFFFE301,0x00000632,0x0000204C,0xFFFFF33B,0x000003C8,0x0000204C,0xFFFFF33B,0x000003C8},
-       {"0000001000010011111010101001010011011110001000000100000101100100",0x00002026,0xFFFFF5CE,0x00000368,0x00001598,0xFFFFFB29,0x000002C3,0x00001598,0xFFFFFB29,0x000002C3},
-       {"0000001000010011111010101001010011011110001010000011000101100100",0x00003DCA,0xFFFFE178,0x00000668,0x00001FDB,0xFFFFF39D,0x000003AF,0x00001FDB,0xFFFFF39D,0x000003AF},
-       {"0000001000010011111010101001010011011110001011000100100011000100",0x00003A59,0xFFFFE327,0x00000642,0x000024B9,0xFFFFEFC4,0x00000471,0x000024B9,0xFFFFEFC4,0x00000471},
-       {"0000001000010011111010101001010011011110001011000010100101000100",0x00003C26,0xFFFFE440,0x000005EB,0x00002C0F,0xFFFFEC88,0x000004E0,0x00002C0F,0xFFFFEC88,0x000004E0},
-       {"0000001000010011111010101001010011011110000010000011100010000100",0x00004149,0xFFFFDEB8,0x000006E7,0x0000280A,0xFFFFED89,0x000004C2,0x0000280A,0xFFFFED89,0x000004C2},
-       {"0000001000010011111010101001010011011110000011100100000100100100",0x00003EB4,0xFFFFE1E5,0x0000064D,0x0000299F,0xFFFFEDB3,0x000004A9,0x0000299F,0xFFFFEDB3,0x000004A9},
-       {"0000001000010011111010101001010011011110001011000011100110100100",0x00003BBF,0xFFFFE268,0x0000065A,0x00002504,0xFFFFEFB0,0x00000470,0x00002504,0xFFFFEFB0,0x00000470},
-       {"0000001000010011111010101001010011011110000010000100100100000100",0x00004203,0xFFFFDDC6,0x00000720,0x0000303B,0xFFFFE78F,0x000005D0,0x0000303B,0xFFFFE78F,0x000005D0},
-       {"0000001000010011111010101001010011011110000011100011100110000100",0x00003DA3,0xFFFFE244,0x0000063E,0x000021B4,0xFFFFF2DA,0x000003CD,0x000021B4,0xFFFFF2DA,0x000003CD},
-       {"0000001000010011111010101001010011011110000010100011100011100100",0x00004035,0xFFFFE065,0x0000069B,0x00003323,0xFFFFE6D6,0x000005D8,0x00003323,0xFFFFE6D6,0x000005D8},
-       {"0000001000010011111010101001010011011110001011000001000101100100",0x00003944,0xFFFFE4E5,0x000005E2,0x00001F3C,0xFFFFF456,0x0000039D,0x00001F3C,0xFFFFF456,0x0000039D},
-       {"0000001000010011111010101001010011011110000001100001100100000100",0x000032D8,0xFFFFEAE8,0x000004E6,0x00001812,0xFFFFFA1C,0x000002BC,0x00001812,0xFFFFFA1C,0x000002BC},
-       {"0000001000010011111100001111110101000010110100100010100101000100",0x000041F6,0xFFFFE025,0x0000069A,0x0000241E,0xFFFFF1B4,0x00000402,0x0000241E,0xFFFFF1B4,0x00000402},
-       {"0000001000010011111100001111111010011001000011000011000010100100",0x00003300,0xFFFFEB60,0x000004C1,0x00001E15,0xFFFFF6A6,0x0000033B,0x00001E15,0xFFFFF6A6,0x0000033B},
-       {"0000001000010011111010101001010011011110000001000000100010100100",0x000037F0,0xFFFFE68F,0x0000059B,0x00001F8A,0xFFFFF467,0x000003A3,0x00001F8A,0xFFFFF467,0x000003A3},
-       {"0000001000010011111100001111111010011001000110000010100110000100",0x000025D8,0xFFFFF2AA,0x000003C3,0x000018A8,0xFFFFF9BE,0x000002D2,0x000018A8,0xFFFFF9BE,0x000002D2},
-       {"0000001000010011111100001111111010011001000001100010000011000100",0x0000364F,0xFFFFE988,0x000004FC,0x00001E51,0xFFFFF633,0x0000034F,0x00001E51,0xFFFFF633,0x0000034F},
-       {"0000001000010011111010101001010011011110000001100001000101000100",0x00002288,0xFFFFF483,0x0000036C,0x0000280F,0xFFFFEF39,0x0000047B,0x0000280F,0xFFFFEF39,0x0000047B},
-       {"0000001000010011111100001111111010011001000010000010000010000100",0x00003322,0xFFFFEA7E,0x000004ED,0x00001DAD,0xFFFFF62B,0x00000355,0x00001DAD,0xFFFFF62B,0x00000355},
-       {"0000001000010011111010101001010011011110000000100101000011100100",0x00002B7B,0xFFFFEE4F,0x0000045B,0x00001AA2,0xFFFFF710,0x0000033E,0x00001AA2,0xFFFFF710,0x0000033E},
-       {"0000001000010011111100001111111010011001000001000010000011000100",0x000034CC,0xFFFFEA79,0x000004E4,0x00001B05,0xFFFFF8B3,0x000002EC,0x00001B05,0xFFFFF8B3,0x000002EC},
-       {"0000001000010011111100001111110101000010110111000010100001100100",0x00003837,0xFFFFE5ED,0x000005C3,0x00001ACB,0xFFFFF7B2,0x00000314,0x00001ACB,0xFFFFF7B2,0x00000314},
-       {"0000001000010011111100001111111010011001000001000100000101100100",0x0000352D,0xFFFFE88F,0x00000548,0x000021E6,0xFFFFF3B5,0x000003AA,0x000021E6,0xFFFFF3B5,0x000003AA},
-       {"0000001000010011111100001111111010011001000010100100100010000100",0x00003300,0xFFFFE835,0x0000057B,0x00001A85,0xFFFFF715,0x00000336,0x00001A85,0xFFFFF715,0x00000336},
-       {"0000001000010011111010101001010011011110000001000100100010100100",0x000033FA,0xFFFFE851,0x00000565,0x00001A8E,0xFFFFF727,0x0000033B,0x00001A8E,0xFFFFF727,0x0000033B},
-       {"0000001000010011111100001111110101000010110110100011100100100100",0x000039D3,0xFFFFE5D3,0x000005B0,0x00001888,0xFFFFF978,0x000002C8,0x00001888,0xFFFFF978,0x000002C8},
-       {"0000001000010011111100001111111010011001000011100100100001100100",0x00002F6B,0xFFFFEC53,0x000004B9,0x00001C15,0xFFFFF71B,0x00000337,0x00001C15,0xFFFFF71B,0x00000337},
-       {"0000001000010011111100001111111010011001000001100100000101000100",0x0000384D,0xFFFFE737,0x00000569,0x00001D2D,0xFFFFF673,0x00000343,0x00001D2D,0xFFFFF673,0x00000343},
-       {"0000001000010011111100001111111010011001000001100010000010100100",0x00003A49,0xFFFFE70B,0x0000055F,0x00001A63,0xFFFFF8CD,0x000002E2,0x00001A63,0xFFFFF8CD,0x000002E2},
-       {"0000001000010011111100001111111010011001000001000010100110000100",0x0000311E,0xFFFFEB97,0x000004C6,0x00001EAE,0xFFFFF5A9,0x00000367,0x00001EAE,0xFFFFF5A9,0x00000367},
-       {"0000001000010011111100001111111010011001000011100001000100100100",0x000027D3,0xFFFFF075,0x00000417,0x00002001,0xFFFFF44A,0x000003A2,0x00002001,0xFFFFF44A,0x000003A2},
-       {"0000001000010011111100001111111010011001000001100100100100000100",0x00003B72,0xFFFFE4BD,0x000005DC,0x00001D76,0xFFFFF606,0x0000035A,0x00001D76,0xFFFFF606,0x0000035A},
-       {"0000001000010011111100001111111010011001000100000001000100100100",0x00002E0F,0xFFFFECA7,0x000004AE,0x00001DC6,0xFFFFF5BF,0x0000036A,0x00001DC6,0xFFFFF5BF,0x0000036A},
-       {"0000001000010011111100001111111010011001000000100011100010100100",0x000032C7,0xFFFFEA7A,0x000004F0,0x00001A7B,0xFFFFF827,0x00000301,0x00001A7B,0xFFFFF827,0x00000301},
-       {"0000001000010011111010101001010011011110000001000100100010000100",0x0000312D,0xFFFFEA39,0x00000515,0x00001948,0xFFFFF800,0x00000318,0x00001948,0xFFFFF800,0x00000318},
-       {"0000001000010011111010101001010011011110000001100010000010000100",0x00003611,0xFFFFE8D7,0x00000533,0x00001929,0xFFFFF965,0x000002D2,0x00001929,0xFFFFF965,0x000002D2},
-       {"0000001000010011111100001111111010011001001011000011000011100100",0x00002FE2,0xFFFFED89,0x00000470,0x00001A3C,0xFFFFF955,0x000002D5,0x00001A3C,0xFFFFF955,0x000002D5},
-       {"0000001000010011111010101001010011011110000000100000100010100100",0x000035FF,0xFFFFE884,0x00000548,0x0000182A,0xFFFFF9AB,0x000002CF,0x0000182A,0xFFFFF9AB,0x000002CF},
-       {"0000001000010011111100001111111010011001000000100010000011100100",0x00003597,0xFFFFE904,0x00000528,0x00001A94,0xFFFFF840,0x00000300,0x00001A94,0xFFFFF840,0x00000300},
-       {"0000001000010011111100001111111010011001000110000001100101000100",0x000026CB,0xFFFFF1FB,0x000003E4,0x000017CC,0xFFFFFA25,0x000002C8,0x000017CC,0xFFFFFA25,0x000002C8},
-       {"0000001000010011111010101001010011011110000001100000100011000100",0x00003274,0xFFFFEA39,0x0000050C,0x00001B20,0xFFFFF7C1,0x00000314,0x00001B20,0xFFFFF7C1,0x00000314},
-       {"0000001000010011111100001111110101000010110110000010100100100100",0x0000280B,0xFFFFF283,0x000003B5,0x000018D0,0xFFFFF992,0x000002EC,0x000018D0,0xFFFFF992,0x000002EC},
-       {"0000001000010011111100001111111010011001000001100010000100000100",0x000033AB,0xFFFFEB1B,0x000004C4,0x00001FEE,0xFFFFF53A,0x00000378,0x00001FEE,0xFFFFF53A,0x00000378},
-       {"0000001000010011111100001111111010011001000010100011100101100100",0x00002F79,0xFFFFEB0C,0x000004FA,0x00001E57,0xFFFFF4BF,0x0000039B,0x00001E57,0xFFFFF4BF,0x0000039B},
-       {"0000001000010011111100001111111010011001000001000100100011100100",0x00003487,0xFFFFE8F2,0x00000539,0x0000185B,0xFFFFF9AE,0x000002BA,0x0000185B,0xFFFFF9AE,0x000002BA},
-       {"0000001000010011111100001111111010011001000010100001100010100100",0x00003500,0xFFFFE793,0x0000058A,0x00001AA2,0xFFFFF792,0x0000031D,0x00001AA2,0xFFFFF792,0x0000031D},
-       {"0000001000010011111100001111111010011001000010000001000101100100",0x00003943,0xFFFFE54D,0x000005D9,0x00001BC8,0xFFFFF6E0,0x00000339,0x00001BC8,0xFFFFF6E0,0x00000339},
-       {"0000001000010011111010101001010011011110000001000011000010100100",0x0000306D,0xFFFFEC5E,0x000004A5,0x00001A3A,0xFFFFF85F,0x00000304,0x00001A3A,0xFFFFF85F,0x00000304},
-       {"0000001000010011111100001111110101000010110110000011000010000100",0x00002BA4,0xFFFFEE8D,0x0000046A,0x0000198C,0xFFFFF88E,0x00000307,0x0000198C,0xFFFFF88E,0x00000307},
-       {"0000001000010011111100001111110101000010110100100001100011100100",0x00003D30,0xFFFFE2F6,0x0000062A,0x000025DC,0xFFFFF074,0x00000435,0x000025DC,0xFFFFF074,0x00000435},
-       {"0000001000010011111100001111110101000010110110000011100101100100",0x00002CD6,0xFFFFED79,0x0000049B,0x000016D0,0xFFFFFA53,0x000002BB,0x000016D0,0xFFFFFA53,0x000002BB},
-       {"0000001000010011111100001111111010011001000101100011000101100100",0x00002484,0xFFFFF3BD,0x000003A0,0x000015B8,0xFFFFFB6B,0x000002A4,0x000015B8,0xFFFFFB6B,0x000002A4},
-       {"0000001000010011111100001111111010011001000011100011100101000100",0x000038AE,0xFFFFE6D1,0x00000587,0x00001A2A,0xFFFFF8F1,0x000002D4,0x00001A2A,0xFFFFF8F1,0x000002D4},
-       {"0000001000010011111100001111111010011001000001000100100101000100",0x000036FD,0xFFFFE76C,0x00000576,0x00001EE4,0xFFFFF58D,0x00000361,0x00001EE4,0xFFFFF58D,0x00000361},
-       {"0000001000010011111100001111110101000010110110000011000010100100",0x00002BCF,0xFFFFEF28,0x00000448,0x00001B93,0xFFFFF7BA,0x00000327,0x00001B93,0xFFFFF7BA,0x00000327},
-       {"0000001000010011111100001111111010011001000001100010100010000100",0x00003834,0xFFFFE818,0x0000053B,0x00001AFE,0xFFFFF85C,0x000002F3,0x00001AFE,0xFFFFF85C,0x000002F3},
-       {"0000001000010011111100001111111010011001001100100011000110100100",0x00002EF7,0xFFFFEBFC,0x000004CE,0x00001897,0xFFFFF8EF,0x000002EC,0x00001897,0xFFFFF8EF,0x000002EC},
-       {"0000001000010011111100001111111010011001001011000001100011000100",0x000035BD,0xFFFFE8BB,0x0000053B,0x00001F22,0xFFFFF561,0x00000373,0x00001F22,0xFFFFF561,0x00000373},
-       {"0000001000010011111100001111111010011001000110000011100110000100",0x00002D42,0xFFFFEE1D,0x00000478,0x000016F0,0xFFFFFAAE,0x000002B3,0x000016F0,0xFFFFFAAE,0x000002B3},
-       {"0000001000010011111010101001010011011110000001000101000100100100",0x00002F98,0xFFFFEB3C,0x000004F0,0x00001903,0xFFFFF818,0x00000319,0x00001903,0xFFFFF818,0x00000319},
-       {"0000001000010011111100001111110101000010110101000010000101000100",0x00004081,0xFFFFDF13,0x000006F3,0x00002A6D,0xFFFFEC1B,0x00000509,0x00002A6D,0xFFFFEC1B,0x00000509},
-       {"0000001000010011111010101001010011011110000001000000100100000100",0x00002D68,0xFFFFED21,0x00000498,0x00001FF6,0xFFFFF427,0x000003B0,0x00001FF6,0xFFFFF427,0x000003B0},
-       {"0000001000010011111100001111111010011001000000100011100010000100",0x00003243,0xFFFFEA5C,0x000004FD,0x000020FB,0xFFFFF39E,0x000003C0,0x000020FB,0xFFFFF39E,0x000003C0},
-       {"0000001000010011111100001111110101000010110110000100100010100100",0x00002F20,0xFFFFEC19,0x000004C6,0x00001748,0xFFFFF99F,0x000002DA,0x00001748,0xFFFFF99F,0x000002DA},
-       {"0000001000010011111100001111111010011001000100000011100110000100",0x00002D68,0xFFFFED21,0x00000498,0x00001A43,0xFFFFF843,0x000002F9,0x00001A43,0xFFFFF843,0x000002F9},
-       {"0000001000010011111100001111111010011001000000100010000010100100",0x0000396E,0xFFFFE616,0x000005A9,0x00001A51,0xFFFFF850,0x000002FA,0x00001A51,0xFFFFF850,0x000002FA},
-       {"0000001000010011111100001111111010011001000001000011000101000100",0x0000305C,0xFFFFED4B,0x0000046C,0x00001CF9,0xFFFFF7BA,0x00000304,0x00001CF9,0xFFFFF7BA,0x00000304},
-       {"0000001000010011111100001111110101000010110110100100000101100100",0x0000343C,0xFFFFE869,0x00000559,0x00001CE2,0xFFFFF614,0x00000359,0x00001CE2,0xFFFFF614,0x00000359},
-       {"0000001000010011111100001111111010011001000110000011100101100100",0x00002782,0xFFFFF1FE,0x000003D9,0x000015DC,0xFFFFFB8B,0x00000290,0x000015DC,0xFFFFFB8B,0x00000290},
-       {"0000001000010011111100001111111010011001000110000001100011000100",0x00002B9C,0xFFFFEF63,0x00000443,0x00001369,0xFFFFFD51,0x00000244,0x00001369,0xFFFFFD51,0x00000244},
-       {"0000001000010011111100001111111010011001000010100010000010000100",0x000035F8,0xFFFFE743,0x00000592,0x000018D8,0xFFFFF8EE,0x000002E4,0x000018D8,0xFFFFF8EE,0x000002E4},
-       {"0000001000010011111010101001010011011110000001100010100001000100",0x00002B72,0xFFFFEF1E,0x0000043C,0x00002647,0xFFFFF092,0x0000043E,0x00002647,0xFFFFF092,0x0000043E},
-       {"0000001000010011111100001111111010011001000100000010000110000100",0x00002EC9,0xFFFFEC5F,0x000004B8,0x000018B6,0xFFFFF936,0x000002D8,0x000018B6,0xFFFFF936,0x000002D8},
-       {"0000001000010011111100001111111010011001000001100100000010000100",0x000038A7,0xFFFFE6AC,0x00000589,0x00001C42,0xFFFFF70B,0x00000329,0x00001C42,0xFFFFF70B,0x00000329},
-       {"0000001000010011111100001111111010011001001100000000100010100100",0x00002F6B,0xFFFFEBF6,0x000004CF,0x000018AE,0xFFFFF928,0x000002E3,0x000018AE,0xFFFFF928,0x000002E3},
-       {"0000001000010011111100001111110101000010110110100101000100000100",0x000029CD,0xFFFFEEE1,0x00000459,0x00001AB5,0xFFFFF76F,0x00000324,0x00001AB5,0xFFFFF76F,0x00000324},
-       {"0000001000010011111010101001010011011110000001100011100011000100",0x00003921,0xFFFFE71D,0x00000577,0x00001646,0xFFFFFB24,0x00000293,0x00001646,0xFFFFFB24,0x00000293},
-       {"0000001000010011111010101001010011011110000001000100000101100100",0x00003940,0xFFFFE521,0x000005E8,0x00001947,0xFFFFF839,0x0000030D,0x00001947,0xFFFFF839,0x0000030D},
-       {"0000001000010011111100001111110101000010110100100100000101100100",0x00003DCA,0xFFFFE211,0x00000659,0x0000250E,0xFFFFF072,0x00000443,0x0000250E,0xFFFFF072,0x00000443},
-       {"0000001000010011111100001111111010011001000011000000100100000100",0x00002E95,0xFFFFEC20,0x000004C9,0x000015B4,0xFFFFFAD3,0x0000029D,0x000015B4,0xFFFFFAD3,0x0000029D},
-       {"0000001000010011111100001111111010011001000001000001000010000100",0x00002C11,0xFFFFEE6E,0x00000468,0x00001901,0xFFFFF924,0x000002E7,0x00001901,0xFFFFF924,0x000002E7},
-       {"0000001000010011111010101001010011011110000001100010000100000100",0x0000293F,0xFFFFF158,0x000003E6,0x0000183F,0xFFFFF9F6,0x000002D2,0x0000183F,0xFFFFF9F6,0x000002D2},
-       {"0000001000010011111100001111111010011001000011100001000100000100",0x00002A67,0xFFFFEF34,0x0000043E,0x00001C6F,0xFFFFF6F1,0x0000032B,0x00001C6F,0xFFFFF6F1,0x0000032B},
-       {"0000001000010011111010101001010011011110000001100101000100100100",0x00002F8D,0xFFFFEB77,0x000004DA,0x00001C0D,0xFFFFF627,0x00000365,0x00001C0D,0xFFFFF627,0x00000365},
-       {"0000001000010011111100001111111010011001000011000011100011000100",0x00003476,0xFFFFEA5B,0x000004E7,0x00001DBF,0xFFFFF6C7,0x00000333,0x00001DBF,0xFFFFF6C7,0x00000333},
-       {"0000001000010011111100001111111010011001000011100000100101000100",0x00003336,0xFFFFE92F,0x00000546,0x00001614,0xFFFFFAE0,0x00000296,0x00001614,0xFFFFFAE0,0x00000296},
-       {"0000001000010011111100001111111010011001000101100010000101100100",0x00002513,0xFFFFF323,0x000003BC,0x000016DB,0xFFFFFA79,0x000002CD,0x000016DB,0xFFFFFA79,0x000002CD},
-       {"0000001000010011111100001111111010011001000010100010100101000100",0x000035A7,0xFFFFE78E,0x00000584,0x00001B0D,0xFFFFF77D,0x0000031F,0x00001B0D,0xFFFFF77D,0x0000031F},
-       {"0000001000010011111100001111111010011001001100100011100011100100",0x00003171,0xFFFFEB98,0x000004C6,0x00001C76,0xFFFFF71F,0x0000032F,0x00001C76,0xFFFFF71F,0x0000032F},
-       {"0000001000010011111100001111110101000010110110100001000010000100",0x00002C52,0xFFFFED2E,0x000004A7,0x00002182,0xFFFFF2F4,0x000003E4,0x00002182,0xFFFFF2F4,0x000003E4},
-       {"0000001000010011111100001111111010011001000100000010100100100100",0x000032E1,0xFFFFEB39,0x000004D0,0x00001B55,0xFFFFF859,0x000002FA,0x00001B55,0xFFFFF859,0x000002FA},
-       {"0000001000010011111100001111111010011001000110000100100010100100",0x000029B6,0xFFFFEFF7,0x00000430,0x0000151B,0xFFFFFBC6,0x0000027F,0x0000151B,0xFFFFFBC6,0x0000027F},
-       {"0000001000010011111100001111110101000010110110100001100101100100",0x00002FF7,0xFFFFEB67,0x000004DA,0x000020E9,0xFFFFF363,0x000003CE,0x000020E9,0xFFFFF363,0x000003CE},
-       {"0000001000010011111100001111110101000010110110100101000100100100",0x00003CDD,0xFFFFE2B2,0x00000649,0x00001B18,0xFFFFF739,0x00000329,0x00001B18,0xFFFFF739,0x00000329},
-       {"0000001000010011111100001111111010011001000001100010100010100100",0x00003C82,0xFFFFE5C6,0x0000058E,0x00001F3F,0xFFFFF5AD,0x00000361,0x00001F3F,0xFFFFF5AD,0x00000361},
-       {"0000001000010011111100001111110101000010110111000100000010000100",0x0000319B,0xFFFFEA15,0x0000051B,0x00001CC9,0xFFFFF62E,0x00000358,0x00001CC9,0xFFFFF62E,0x00000358},
-       {"0000001000010011111010101001010011011110000001100011100011100100",0x000032B6,0xFFFFEB2B,0x000004D6,0x000018E0,0xFFFFF966,0x000002DE,0x000018E0,0xFFFFF966,0x000002DE},
-       {"0000001000010011111010101001010011011110000000100011100110000100",0x0000300A,0xFFFFEBA6,0x000004D1,0x00001CFD,0xFFFFF5F6,0x0000036D,0x00001CFD,0xFFFFF5F6,0x0000036D},
-       {"0000001000010011111100001111110101000010110110000010100110000100",0x000026A9,0xFFFFF15D,0x00000400,0x00001561,0xFFFFFB1F,0x000002A0,0x00001561,0xFFFFFB1F,0x000002A0},
-       {"0000001000010011111100001111111010011001000011100101000100100100",0x00003123,0xFFFFEAD2,0x000004FA,0x000018CB,0xFFFFF8F5,0x000002EC,0x000018CB,0xFFFFF8F5,0x000002EC},
-       {"0000001000010011111100001111111010011001000110000100000011000100",0x00003577,0xFFFFE935,0x00000533,0x000016CD,0xFFFFFB44,0x00000289,0x000016CD,0xFFFFFB44,0x00000289},
-       {"0000001000010011111100001111111010011001001010000010000110000100",0x00002875,0xFFFFF170,0x000003F3,0x00001567,0xFFFFFBD5,0x00000289,0x00001567,0xFFFFFBD5,0x00000289},
-       {"0000001000010011111100001111111010011001000010000100000010000100",0x00003AE2,0xFFFFE538,0x000005C1,0x00001CB4,0xFFFFF6A3,0x0000033C,0x00001CB4,0xFFFFF6A3,0x0000033C},
-       {"0000001000010011111100001111111010011001000011000011100011100100",0x000031DF,0xFFFFEC2A,0x000004A3,0x00001EF0,0xFFFFF626,0x00000352,0x00001EF0,0xFFFFF626,0x00000352},
-       {"0000001000010011111100001111110101000010110100100101000101000100",0x00004A6A,0xFFFFDB15,0x00000758,0x000027F3,0xFFFFEEEE,0x00000479,0x000027F3,0xFFFFEEEE,0x00000479},
-       {"0000001000010011111010101001010011011110000001100011100100000100",0x00002BB9,0xFFFFEF5D,0x00000433,0x00001589,0xFFFFFB57,0x00000295,0x00001589,0xFFFFFB57,0x00000295},
-       {"0000001000010011111100001111111010011001000001000010000101100100",0x000033A0,0xFFFFE98F,0x00000528,0x00001CB4,0xFFFFF706,0x0000032D,0x00001CB4,0xFFFFF706,0x0000032D},
-       {"0000001000010011111100001111111010011001000101100011000001100100",0x0000248E,0xFFFFF380,0x000003AC,0x000016EA,0xFFFFFA6C,0x000002CE,0x000016EA,0xFFFFFA6C,0x000002CE},
-       {"0000001000010011111100001111111010011001000000100010000110100100",0x00002FE2,0xFFFFEB2F,0x000004E9,0x00001D4E,0xFFFFF56B,0x00000380,0x00001D4E,0xFFFFF56B,0x00000380},
-       {"0000001000010011111100001111111010011001000010100010100010000100",0x00003283,0xFFFFE9E7,0x0000051D,0x00000694,0xFFFFFD32,0x000003C3,0x00000694,0xFFFFFD32,0x000003C3},
-       {"0000001000010011111100001111110101000010110110000101000011000100",0x00002EE4,0xFFFFEBFD,0x000004D3,0x0000151A,0xFFFFFAF6,0x000002A4,0x0000151A,0xFFFFFAF6,0x000002A4},
-       {"0000001000010011111100001111110101000010110111000001100011100100",0x0000302D,0xFFFFEB7F,0x000004DA,0x00001E6D,0xFFFFF54B,0x00000380,0x00001E6D,0xFFFFF54B,0x00000380},
-       {"0000001000010011111100001111110101000010110110100101000011000100",0x000033DA,0xFFFFE7FB,0x0000057F,0x00001DED,0xFFFFF50E,0x0000038D,0x00001DED,0xFFFFF50E,0x0000038D},
-       {"0000001000010011111100001111111010011001001011000100000010000100",0x000030B5,0xFFFFEBB8,0x000004C4,0x00001C3F,0xFFFFF726,0x0000032A,0x00001C3F,0xFFFFF726,0x0000032A},
-       {"0000001000010011111100001111111010011001000010000011000111000100",0x00003BBD,0xFFFFE55C,0x000005B8,0x000019DB,0xFFFFF8BB,0x000002EF,0x000019DB,0xFFFFF8BB,0x000002EF},
-       {"0000001000010011111100001111111010011001000011100011100010000100",0x00002964,0xFFFFF051,0x0000040E,0x000025CD,0xFFFFF11B,0x0000041F,0x000025CD,0xFFFFF11B,0x0000041F},
-       {"0000001000010011111100001111110101000010110111000100100010000100",0x000033F5,0xFFFFE863,0x00000560,0x00001BCE,0xFFFFF689,0x0000034B,0x00001BCE,0xFFFFF689,0x0000034B},
-       {"0000001000010011111100001111111010011001000010100010100001100100",0x00003294,0xFFFFE924,0x00000548,0x00001D41,0xFFFFF580,0x0000037D,0x00001D41,0xFFFFF580,0x0000037D},
-       {"0000001000010011111100001111110101000010110111000011100110100100",0x000034FB,0xFFFFE7FE,0x0000056D,0x00001CB1,0xFFFFF635,0x00000357,0x00001CB1,0xFFFFF635,0x00000357},
-       {"0000001000010011111100001111111010011001000010100001000010100100",0x00002E28,0xFFFFEBB9,0x000004E0,0x00001B20,0xFFFFF6E3,0x0000033C,0x00001B20,0xFFFFF6E3,0x0000033C},
-       {"0000001000010011111100001111110101000010110110100001100100000100",0x00002799,0xFFFFF0F4,0x000003FC,0x00001C9D,0xFFFFF6A1,0x00000345,0x00001C9D,0xFFFFF6A1,0x00000345},
-       {"0000001000010011111100001111111010011001000001100100000100000100",0x00003AEA,0xFFFFE5DB,0x0000059D,0x00001B61,0xFFFFF7F0,0x00000301,0x00001B61,0xFFFFF7F0,0x00000301},
-       {"0000001000010011111010101001010011011110000001000001100110000100",0x000031F6,0xFFFFEAB8,0x000004F3,0x00001D90,0xFFFFF622,0x00000359,0x00001D90,0xFFFFF622,0x00000359},
-       {"0000001000010011111100001111111010011001000011000100000001100100",0x000031B8,0xFFFFEA61,0x0000050F,0x0000199D,0xFFFFF87C,0x000002FD,0x0000199D,0xFFFFF87C,0x000002FD},
-       {"0000001000010011111100001111110101000010110100100011000101000100",0x00004514,0xFFFFDDFF,0x000006F6,0x000022CD,0xFFFFF29F,0x000003D9,0x000022CD,0xFFFFF29F,0x000003D9},
-       {"0000001000010011111010101001010011011110000001000011000101100100",0x00002F30,0xFFFFECB8,0x000004A0,0x00001B07,0xFFFFF7E2,0x00000313,0x00001B07,0xFFFFF7E2,0x00000313},
-       {"0000001000010011111100001111110101000010110111000011000010100100",0x0000383B,0xFFFFE702,0x00000581,0x00001A08,0xFFFFF8CA,0x000002E2,0x00001A08,0xFFFFF8CA,0x000002E2},
-       {"0000001000010011111100001111111010011001000000100010000101100100",0x00002CC5,0xFFFFEDF8,0x00000465,0x00001F47,0xFFFFF4B2,0x00000393,0x00001F47,0xFFFFF4B2,0x00000393},
-       {"0000001000010011111100001111111010011001000101100010000111000100",0x00002304,0xFFFFF453,0x00000384,0x0000170A,0xFFFFFA3F,0x000002CE,0x0000170A,0xFFFFFA3F,0x000002CE},
-       {"0000001000010011111100001111111010011001000010100101000100100100",0x0000337E,0xFFFFE850,0x0000056E,0x00001BDD,0xFFFFF668,0x00000353,0x00001BDD,0xFFFFF668,0x00000353},
-       {"0000001000010011111100001111111010011001000011100100100100100100",0x00002E2F,0xFFFFEC9B,0x000004AE,0x00001C4D,0xFFFFF6D3,0x00000338,0x00001C4D,0xFFFFF6D3,0x00000338},
-       {"0000001000010011111010101001010011011110000001100001000100100100",0x00002DDD,0xFFFFEDA4,0x00000477,0x00002010,0xFFFFF4BB,0x00000390,0x00002010,0xFFFFF4BB,0x00000390},
-       {"0000001000010011111100001111110101000010110110100100100011100100",0x0000290C,0xFFFFEF61,0x00000445,0x00002133,0xFFFFF324,0x000003D8,0x00002133,0xFFFFF324,0x000003D8},
-       {"0000001000010011111100001111111010011001000001100010100100100100",0x0000371E,0xFFFFE8D5,0x00000524,0x00001C3A,0xFFFFF7AE,0x00000314,0x00001C3A,0xFFFFF7AE,0x00000314},
-       {"0000001000010011111100001111110101000010110110000011100011100100",0x00002A58,0xFFFFF007,0x00000429,0x000018A6,0xFFFFF98F,0x000002E1,0x000018A6,0xFFFFF98F,0x000002E1},
-       {"0000001000010011111100001111111010011001000000100011000010000100",0x00002FED,0xFFFFEC48,0x000004AA,0x00001E9D,0xFFFFF584,0x00000370,0x00001E9D,0xFFFFF584,0x00000370},
-       {"0000001000010011111100001111111010011001000110000001100010000100",0x00002829,0xFFFFF15F,0x000003F7,0x0000157E,0xFFFFFBD4,0x00000282,0x0000157E,0xFFFFFBD4,0x00000282},
-       {"0000001000010011111100001111111010011001000100000001100100100100",0x000030CF,0xFFFFEB8D,0x000004CE,0x00001A4C,0xFFFFF868,0x000002F7,0x00001A4C,0xFFFFF868,0x000002F7},
-       {"0000001000010011111100001111110101000010110110100010000010000100",0x00002C8F,0xFFFFEDD2,0x0000047D,0x00001CCE,0xFFFFF6A1,0x00000343,0x00001CCE,0xFFFFF6A1,0x00000343},
-       {"0000001000010011111100001111111010011001000110000010000101100100",0x00002A84,0xFFFFEFBA,0x0000043E,0x000015EF,0xFFFFFB4B,0x0000029E,0x000015EF,0xFFFFFB4B,0x0000029E},
-       {"0000001000010011111100001111111010011001000011000010100010100100",0x000034CA,0xFFFFEA08,0x000004FF,0x00001C19,0xFFFFF7ED,0x00000309,0x00001C19,0xFFFFF7ED,0x00000309},
-       {"0000001000010011111100001111111010011001000101100011100110100100",0x00002187,0xFFFFF4B0,0x0000037E,0x0000154A,0xFFFFFB0C,0x000002AE,0x0000154A,0xFFFFFB0C,0x000002AE},
-       {"0000001000010011111100001111110101000010110110100011100001000100",0x00002F4F,0xFFFFEB3C,0x000004F8,0x0000181F,0xFFFFF92D,0x000002DF,0x0000181F,0xFFFFF92D,0x000002DF},
-       {"0000001000010011111100001111111010011001000001000001000011100100",0x0000290C,0xFFFFF0B1,0x000003FC,0x00001DB0,0xFFFFF636,0x00000355,0x00001DB0,0xFFFFF636,0x00000355},
-       {"0000001000010011111100001111111010011001000010100001000001100100",0x000034C1,0xFFFFE888,0x0000055A,0x000019BF,0xFFFFF881,0x000002FB,0x000019BF,0xFFFFF881,0x000002FB},
-       {"0000001000010011111100001111110101000010110111000001100011000100",0x00003139,0xFFFFEA98,0x00000504,0x000019F2,0xFFFFF820,0x0000030B,0x000019F2,0xFFFFF820,0x0000030B},
-       {"0000001000010011111100001111110101000010110110000011000101000100",0x00002CAC,0xFFFFEEB2,0x00000458,0x0000152C,0xFFFFFBEF,0x0000027B,0x0000152C,0xFFFFFBEF,0x0000027B},
-       {"0000001000010011111100001111111010011001001011000011100011100100",0x00003577,0xFFFFE99C,0x0000050D,0x00001E64,0xFFFFF679,0x0000033F,0x00001E64,0xFFFFF679,0x0000033F},
-       {"0000001000010011111100001111110101000010110110100100000100000100",0x0000263A,0xFFFFF1E4,0x000003D4,0x00001F68,0xFFFFF4ED,0x00000386,0x00001F68,0xFFFFF4ED,0x00000386},
-       {"0000001000010011111100001111110101000010110110000001100110000100",0x00002CE9,0xFFFFED63,0x00000497,0x00001810,0xFFFFF94D,0x000002E3,0x00001810,0xFFFFF94D,0x000002E3},
-       {"0000001000010011111010101001010011011110000001000100000100000100",0x0000318A,0xFFFFEAC8,0x000004F5,0x0000195C,0xFFFFF896,0x000002FB,0x0000195C,0xFFFFF896,0x000002FB},
-       {"0000001000010011111100001111110101000010110110000011100100000100",0x00002C41,0xFFFFEEC6,0x0000045D,0x000017DD,0xFFFFFA16,0x000002CB,0x000017DD,0xFFFFFA16,0x000002CB},
-       {"0000001000010011111100001111111010011001000000100011000110100100",0x00002DD4,0xFFFFEC98,0x000004AD,0x00001BD7,0xFFFFF69F,0x00000347,0x00001BD7,0xFFFFF69F,0x00000347},
-       {"0000001000010011111100001111110101000010110110100011100101000100",0x00003351,0xFFFFE9B2,0x0000051A,0x00001CA1,0xFFFFF6A4,0x00000341,0x00001CA1,0xFFFFF6A4,0x00000341},
-       {"0000001000010011111100001111111010011001000000100001000100000100",0x0000322D,0xFFFFE9BE,0x00000527,0x00001CF9,0xFFFFF5EB,0x00000366,0x00001CF9,0xFFFFF5EB,0x00000366},
-       {"0000001000010011111100001111111010011001000011000010100011000100",0x00003678,0xFFFFE9A8,0x00000503,0x00001AD4,0xFFFFF8F6,0x000002E3,0x00001AD4,0xFFFFF8F6,0x000002E3},
-       {"0000001000010011111100001111111010011001000101100001100100100100",0x0000260E,0xFFFFF2C1,0x000003CA,0x00001139,0xFFFFFE48,0x00000236,0x00001139,0xFFFFFE48,0x00000236},
-       {"0000001000010011111100001111111010011001000010100010000101100100",0x000033D3,0xFFFFE872,0x00000565,0x00001B72,0xFFFFF713,0x00000332,0x00001B72,0xFFFFF713,0x00000332},
-       {"0000001000010011111100001111111010011001001100100011100001000100",0x0000309B,0xFFFFEB42,0x000004E4,0x00001918,0xFFFFF8C8,0x000002F2,0x00001918,0xFFFFF8C8,0x000002F2},
-       {"0000001000010011111100001111111010011001000110000010100001100100",0x000028B8,0xFFFFF105,0x00000402,0x000018BB,0xFFFFF9BC,0x000002D3,0x000018BB,0xFFFFF9BC,0x000002D3},
-       {"0000001000010011111100001111111010011001000010100001100010000100",0x00003123,0xFFFFE9D1,0x00000534,0x00001B19,0xFFFFF6FE,0x0000033C,0x00001B19,0xFFFFF6FE,0x0000033C},
-       {"0000001000010011111100001111111010011001000000100010000101000100",0x00003216,0xFFFFEA8E,0x000004F6,0x00001F72,0xFFFFF4CE,0x0000038B,0x00001F72,0xFFFFF4CE,0x0000038B},
-       {"0000001000010011111100001111111010011001000101100010100101100100",0x00002564,0xFFFFF32D,0x000003B6,0x00001685,0xFFFFFADB,0x000002BB,0x00001685,0xFFFFFADB,0x000002BB},
-       {"0000001000010011111100001111110101000010110110100010100100100100",0x00002E60,0xFFFFED13,0x00000497,0x00001CA5,0xFFFFF6B9,0x00000346,0x00001CA5,0xFFFFF6B9,0x00000346},
-       {"0000001000010011111100001111111010011001000011100011100110100100",0x0000336D,0xFFFFE934,0x0000053B,0x00001B3E,0xFFFFF763,0x00000327,0x00001B3E,0xFFFFF763,0x00000327},
-       {"0000001000010011111100001111111010011001000100000001000010000100",0x0000274A,0xFFFFF119,0x000003FA,0x00001D75,0xFFFFF5CD,0x0000036F,0x00001D75,0xFFFFF5CD,0x0000036F},
-       {"0000001000010011111100001111110101000010110110100010000101100100",0x0000366B,0xFFFFE70A,0x0000059A,0x00001ED8,0xFFFFF501,0x00000389,0x00001ED8,0xFFFFF501,0x00000389},
-       {"0000001000010011111100001111111010011001001000100011100101100100",0x00003164,0xFFFFEAB4,0x000004FA,0x00001C52,0xFFFFF6E0,0x00000336,0x00001C52,0xFFFFF6E0,0x00000336},
-       {"0000001000010011111100001111110101000010110100100011000001100100",0x00004224,0xFFFFDF7F,0x000006C1,0x00002A52,0xFFFFED5E,0x000004BB,0x00002A52,0xFFFFED5E,0x000004BB},
-       {"0000001000010011111100001111111010011001000100000010100001100100",0x000030E3,0xFFFFEB07,0x000004ED,0x00001FD3,0xFFFFF46D,0x000003A1,0x00001FD3,0xFFFFF46D,0x000003A1},
-       {"0000001000010011111100001111110101000010110110000010100010000100",0x00002AEB,0xFFFFEF1B,0x00000454,0x00001829,0xFFFFF995,0x000002DD,0x00001829,0xFFFFF995,0x000002DD},
-       {"0000001000010011111100001111110101000010110111000101000011100100",0x0000346B,0xFFFFE7A2,0x0000058B,0x000020C5,0xFFFFF2E8,0x000003EC,0x000020C5,0xFFFFF2E8,0x000003EC},
-       {"0000001000010011111100001111110101000010110111000100000101100100",0x000039CF,0xFFFFE5D7,0x000005A9,0x00001D66,0xFFFFF5D6,0x00000366,0x00001D66,0xFFFFF5D6,0x00000366},
-       {"0000001000010011111100001111111010011001000001000001100011100100",0x000034AC,0xFFFFE9AE,0x00000515,0x00001A28,0xFFFFF904,0x000002DC,0x00001A28,0xFFFFF904,0x000002DC},
-       {"0000001000010011111100001111110101000010110111000010000010000100",0x00002D68,0xFFFFED21,0x00000498,0x00001C6F,0xFFFFF686,0x0000034C,0x00001C6F,0xFFFFF686,0x0000034C},
-       {"0000001000010011111100001111111010011001000010000010000011000100",0x0000328B,0xFFFFEBA1,0x000004B4,0x00001DA3,0xFFFFF683,0x00000349,0x00001DA3,0xFFFFF683,0x00000349},
-       {"0000001000010011111100001111111010011001000110000010100011000100",0x000027DC,0xFFFFF295,0x000003BF,0x000019C1,0xFFFFF98E,0x000002E8,0x000019C1,0xFFFFF98E,0x000002E8},
-       {"0000001000010011111100001111111010011001000110000100000010000100",0x00002756,0xFFFFF1D7,0x000003DF,0x000015D9,0xFFFFFB51,0x00000298,0x000015D9,0xFFFFFB51,0x00000298},
-       {"0000001000010011111100001111111010011001000010000011100010000100",0x00003526,0xFFFFE907,0x00000526,0x000017AB,0xFFFFFA12,0x000002AB,0x000017AB,0xFFFFFA12,0x000002AB},
-       {"0000001000010011111100001111110101000010110110100001100011100100",0x0000351B,0xFFFFE8B7,0x00000540,0x00001A86,0xFFFFF821,0x00000303,0x00001A86,0xFFFFF821,0x00000303},
-       {"0000001000010011111100001111111010011001000101100100000101000100",0x000024B2,0xFFFFF34E,0x000003B1,0x000018E2,0xFFFFF926,0x000002FC,0x000018E2,0xFFFFF926,0x000002FC},
-       {"0000001000010011111100001111110101000010110110000010100010100100",0x00002F36,0xFFFFED5D,0x00000486,0x0000157A,0xFFFFFB85,0x00000293,0x0000157A,0xFFFFFB85,0x00000293},
-       {"0000001000010011111100001111110101000010110111000101000011000100",0x00003A6E,0xFFFFE456,0x000005FD,0x00001F68,0xFFFFF3D1,0x000003C3,0x00001F68,0xFFFFF3D1,0x000003C3},
-       {"0000001000010011111100001111111010011001000010100011000110100100",0x00002BC3,0xFFFFED2D,0x000004A7,0x00001C3F,0xFFFFF609,0x00000364,0x00001C3F,0xFFFFF609,0x00000364},
-       {"0000001000010011111100001111111010011001000011100010000010000100",0x000032E1,0xFFFFEA83,0x000004F6,0x00001B37,0xFFFFF842,0x000002F5,0x00001B37,0xFFFFF842,0x000002F5},
-       {"0000001000010011111100001111110101000010110110000011000110000100",0x000028E3,0xFFFFF07F,0x00000412,0x00001676,0xFFFFFA68,0x000002BE,0x00001676,0xFFFFFA68,0x000002BE},
-       {"0000001000010011111100001111110101000010110100100001000100000100",0x0000444C,0xFFFFDDAD,0x00000712,0x00002634,0xFFFFEF89,0x0000046C,0x00002634,0xFFFFEF89,0x0000046C},
-       {"0000001000010011111100001111111010011001000001000001100011000100",0x00003121,0xFFFFEBBB,0x000004C6,0x00001C98,0xFFFFF72B,0x0000032D,0x00001C98,0xFFFFF72B,0x0000032D},
-       {"0000001000010011111100001111110101000010110110000100000010100100",0x00002C31,0xFFFFEDC4,0x00000490,0x0000162D,0xFFFFFA8E,0x000002B4,0x0000162D,0xFFFFFA8E,0x000002B4},
-       {"0000001000010011111100001111110101000010110110100001100011000100",0x00002749,0xFFFFF112,0x000003FC,0x00001C85,0xFFFFF6B8,0x00000342,0x00001C85,0xFFFFF6B8,0x00000342},
-       {"0000001000010011111100001111111010011001000001000100000100000100",0x00003159,0xFFFFEB99,0x000004C2,0x00001BD0,0xFFFFF7CA,0x00000307,0x00001BD0,0xFFFFF7CA,0x00000307},
-       {"0000001000010011111100001111111010011001000101100100000101100100",0x00002610,0xFFFFF1FD,0x000003EC,0x000016BE,0xFFFFFA53,0x000002CB,0x000016BE,0xFFFFFA53,0x000002CB},
-       {"0000001000010011111100001111111010011001000000100011000110000100",0x000037B5,0xFFFFE63D,0x000005B5,0x00002285,0xFFFFF25D,0x000003F7,0x00002285,0xFFFFF25D,0x000003F7},
-       {"0000001000010011111100001111111010011001000010100010100010100100",0x00002FEE,0xFFFFEB47,0x000004EF,0x00001CBE,0xFFFFF64E,0x00000358,0x00001CBE,0xFFFFF64E,0x00000358},
-       {"0000001000010011111100001111111010011001000100000101000100000100",0x00002E90,0xFFFFEC48,0x000004C0,0x00001A47,0xFFFFF7D1,0x0000031A,0x00001A47,0xFFFFF7D1,0x0000031A},
-       {"0000001000010011111100001111110101000010110110100100000010000100",0x000034AB,0xFFFFE84A,0x00000559,0x00001A72,0xFFFFF79A,0x0000031C,0x00001A72,0xFFFFF79A,0x0000031C},
-       {"0000001000010011111100001111111010011001000110000011100010000100",0x00002F7B,0xFFFFECFC,0x0000049C,0x00001814,0xFFFFFA22,0x000002C2,0x00001814,0xFFFFFA22,0x000002C2},
-       {"0000001000010011111100001111111010011001000000100001100101100100",0x00003618,0xFFFFE709,0x00000596,0x00001EBF,0xFFFFF482,0x000003A5,0x00001EBF,0xFFFFF482,0x000003A5},
-       {"0000001000010011111010101001010011011110000000100100100100000100",0x0000341B,0xFFFFE8B2,0x0000054F,0x00001D26,0xFFFFF578,0x00000388,0x00001D26,0xFFFFF578,0x00000388},
-       {"0000001000010011111100001111111010011001000100000010000101000100",0x000030F6,0xFFFFEB89,0x000004CD,0x000019C0,0xFFFFF8CC,0x000002E6,0x000019C0,0xFFFFF8CC,0x000002E6},
-       {"0000001000010011111100001111111010011001001010000100000110100100",0x00002B76,0xFFFFEF6C,0x00000444,0x00001563,0xFFFFFBBE,0x0000028D,0x00001563,0xFFFFFBBE,0x0000028D},
-       {"0000001000010011111100001111110101000010110110000001100001100100",0x00002BA2,0xFFFFEE31,0x0000047F,0x00001A3D,0xFFFFF7F3,0x00000320,0x00001A3D,0xFFFFF7F3,0x00000320},
-       {"0000001000010011111100001111111010011001001011000100100011100100",0x00003545,0xFFFFE87A,0x0000054A,0x00001B5A,0xFFFFF7B0,0x0000030C,0x00001B5A,0xFFFFF7B0,0x0000030C},
-       {"0000001000010011111010101001010011011110000001000010100101000100",0x00003879,0xFFFFE73F,0x00000578,0x00001649,0xFFFFFB57,0x00000283,0x00001649,0xFFFFFB57,0x00000283},
-       {"0000001000010011111100001111110101000010110110000100000011000100",0x00002772,0xFFFFF0F1,0x00000410,0x0000142F,0xFFFFFBCF,0x00000287,0x0000142F,0xFFFFFBCF,0x00000287},
-       {"0000001000010011111100001111110101000010110110100011000110000100",0x00003228,0xFFFFE98E,0x00000535,0x00001F48,0xFFFFF495,0x00000399,0x00001F48,0xFFFFF495,0x00000399},
-       {"0000001000010011111100001111111010011001000011100100000011100100",0x00002887,0xFFFFF119,0x000003E8,0x000021AA,0xFFFFF3F5,0x000003A5,0x000021AA,0xFFFFF3F5,0x000003A5},
-       {"0000001000010011111100001111110101000010110110100010100010100100",0x0000301F,0xFFFFEBB2,0x000004D2,0x00001C02,0xFFFFF736,0x0000032B,0x00001C02,0xFFFFF736,0x0000032B},
-       {"0000001000010011111100001111111010011001000110000010000010100100",0x00002E13,0xFFFFEE3F,0x00000468,0x000016AC,0xFFFFFB32,0x0000029E,0x000016AC,0xFFFFFB32,0x0000029E},
-       {"0000001000010011111100001111111010011001000001000100100100100100",0x00003478,0xFFFFE8F9,0x00000538,0x00001DAB,0xFFFFF645,0x00000345,0x00001DAB,0xFFFFF645,0x00000345},
-       {"0000001000010011111100001111111010011001000001100000100011000100",0x000030C6,0xFFFFEB6C,0x000004D4,0x0000184A,0xFFFFF934,0x000002E1,0x0000184A,0xFFFFF934,0x000002E1},
-       {"0000001000010011111100001111111010011001000010100010000001000100",0x00002F1B,0xFFFFEBD3,0x000004D3,0x000019E7,0xFFFFF813,0x0000030D,0x000019E7,0xFFFFF813,0x0000030D},
-       {"0000001000010011111100001111111010011001000000100011100100000100",0x00003214,0xFFFFEAE9,0x000004E0,0x0000178F,0xFFFFFA1C,0x000002B1,0x0000178F,0xFFFFFA1C,0x000002B1},
-       {"0000001000010011111100001111110101000010110111000011000101000100",0x0000399C,0xFFFFE738,0x0000055E,0x00001EA1,0xFFFFF5E7,0x0000035A,0x00001EA1,0xFFFFF5E7,0x0000035A},
-       {"0000001000010011111100001111111010011001000001100101000011000100",0x00003A01,0xFFFFE5B2,0x000005B6,0x00001D95,0xFFFFF5D2,0x0000036A,0x00001D95,0xFFFFF5D2,0x0000036A},
-       {"0000001000010011111100001111111010011001000001000011100010000100",0x0000310D,0xFFFFEB78,0x000004D0,0x00001C06,0xFFFFF76E,0x0000031A,0x00001C06,0xFFFFF76E,0x0000031A},
-       {"0000001000010011111100001111111010011001000001100011100001100100",0x00003CD1,0xFFFFE42F,0x000005EB,0x00001933,0xFFFFF91F,0x000002D4,0x00001933,0xFFFFF91F,0x000002D4},
-       {"0000001000010011111100001111110101000010110110100011000101100100",0x00003119,0xFFFFEB1B,0x000004E1,0x00001FC7,0xFFFFF46A,0x000003A2,0x00001FC7,0xFFFFF46A,0x000003A2},
-       {"0000001000010011111010101001010011011110000001100100100010100100",0x0000390D,0xFFFFE566,0x000005D8,0x00001EC6,0xFFFFF4DC,0x00000391,0x00001EC6,0xFFFFF4DC,0x00000391},
-       {"0000001000010011111100001111110101000010110110100001000011000100",0x00003446,0xFFFFE858,0x00000561,0x00001FDB,0xFFFFF3FF,0x000003B9,0x00001FDB,0xFFFFF3FF,0x000003B9},
-       {"0000001000010011111100001111111010011001000001000100100100000100",0x000032BA,0xFFFFEA07,0x00000511,0x00001B25,0xFFFFF7C9,0x0000030D,0x00001B25,0xFFFFF7C9,0x0000030D},
-       {"0000001000010011111100001111111010011001000011100001100001100100",0x00002CCF,0xFFFFEDE5,0x00000478,0x00001BC8,0xFFFFF761,0x00000326,0x00001BC8,0xFFFFF761,0x00000326},
-       {"0000001000010011111100001111111010011001000001100010100110000100",0x0000400E,0xFFFFE1CB,0x00000652,0x00001AF8,0xFFFFF7B9,0x00000312,0x00001AF8,0xFFFFF7B9,0x00000312},
-       {"0000001000010011111100001111111010011001000001000000100011100100",0x00002F24,0xFFFFEC2A,0x000004C7,0x00001B94,0xFFFFF748,0x00000333,0x00001B94,0xFFFFF748,0x00000333},
-       {"0000001000010011111100001111110101000010110100100001100100100100",0x00003FDA,0xFFFFE1C1,0x0000064B,0x00002427,0xFFFFF180,0x0000040C,0x00002427,0xFFFFF180,0x0000040C},
-       {"0000001000010011111100001111111010011001000010100001100011000100",0x00002F6B,0xFFFFEBA7,0x000004DD,0x00001C25,0xFFFFF6C1,0x00000344,0x00001C25,0xFFFFF6C1,0x00000344},
-       {"0000001000010011111100001111111010011001000110000010000100000100",0x00002A53,0xFFFFF0EE,0x00000402,0x000017C6,0xFFFFFAA0,0x000002BF,0x000017C6,0xFFFFFAA0,0x000002BF},
-       {"0000001000010011111100001111111010011001000100000101000101000100",0x000031F4,0xFFFFEA34,0x00000517,0x000016FF,0xFFFFFA4E,0x000002AC,0x000016FF,0xFFFFFA4E,0x000002AC},
-       {"0000001000010011111100001111111010011001001100100010000101000100",0x00002E24,0xFFFFED46,0x00000489,0x00001712,0xFFFFFA5D,0x000002AC,0x00001712,0xFFFFFA5D,0x000002AC},
-       {"0000001000010011111100001111111010011001000110000010100000100100",0x000028CD,0xFFFFF0E3,0x0000040E,0x00001606,0xFFFFFB37,0x000002A4,0x00001606,0xFFFFFB37,0x000002A4},
-       {"0000001000010011111100001111111010011001000000100010000011000100",0x00003184,0xFFFFEB88,0x000004C3,0x000018DA,0xFFFFF939,0x000002DB,0x000018DA,0xFFFFF939,0x000002DB},
-       {"0000001000010011111100001111111010011001000101100010000100100100",0x0000239B,0xFFFFF470,0x00000386,0x00001714,0xFFFFFA9F,0x000002C8,0x00001714,0xFFFFFA9F,0x000002C8},
-       {"0000001000010011111100001111110101000010110111000011100011100100",0x00003641,0xFFFFE92B,0x00000515,0x00001BE2,0xFFFFF795,0x0000031B,0x00001BE2,0xFFFFF795,0x0000031B},
-       {"0000001000010011111100001111111010011001001011000001000101000100",0x00003278,0xFFFFEA17,0x00000510,0x00001B71,0xFFFFF778,0x0000031D,0x00001B71,0xFFFFF778,0x0000031D},
-       {"0000001000010011111100001111111010011001000001100010100001000100",0x000035B9,0xFFFFE8DA,0x0000052D,0x00001A6A,0xFFFFF83B,0x000002FF,0x00001A6A,0xFFFFF83B,0x000002FF},
-       {"0000001000010011111100001111111010011001000011100001100011000100",0x00002E5E,0xFFFFED32,0x0000048B,0x00001E7D,0xFFFFF60E,0x0000034E,0x00001E7D,0xFFFFF60E,0x0000034E},
-       {"0000001000010011111100001111111010011001000100000001100110100100",0x00003178,0xFFFFEA52,0x00000513,0x00001AD0,0xFFFFF793,0x0000031F,0x00001AD0,0xFFFFF793,0x0000031F},
-       {"0000001000010011111100001111110101000010110101000100000100000100",0x00003A2C,0xFFFFE346,0x00000641,0x000023D0,0xFFFFF0CE,0x00000433,0x000023D0,0xFFFFF0CE,0x00000433},
-       {"0000001000010011111100001111110101000010110110000001100011000100",0x000028FD,0xFFFFF02A,0x0000042B,0x0000152B,0xFFFFFB90,0x00000289,0x0000152B,0xFFFFFB90,0x00000289},
-       {"0000001000010011111100001111111010011001000011100011000010000100",0x000030DE,0xFFFFEBDF,0x000004BE,0x00001CDC,0xFFFFF747,0x0000031C,0x00001CDC,0xFFFFF747,0x0000031C},
-       {"0000001000010011111100001111111010011001000000100001100101000100",0x000036CB,0xFFFFE6EE,0x00000596,0x00002096,0xFFFFF3C2,0x000003BB,0x00002096,0xFFFFF3C2,0x000003BB},
-       {"0000001000010011111100001111111010011001000011000100100011000100",0x00003172,0xFFFFEAC1,0x000004F4,0x00001C87,0xFFFFF6CD,0x00000337,0x00001C87,0xFFFFF6CD,0x00000337},
-       {"0000001000010011111100001111110101000010110100100100100001100100",0x00004A18,0xFFFFDB34,0x00000758,0x0000213C,0xFFFFF3A2,0x000003AC,0x0000213C,0xFFFFF3A2,0x000003AC},
-       {"0000001000010011111100001111111010011001000000100010000100000100",0x000031F3,0xFFFFEB73,0x000004C6,0x00001B23,0xFFFFF7CB,0x0000031A,0x00001B23,0xFFFFF7CB,0x0000031A},
-       {"0000001000010011111100001111111010011001000010100010100100100100",0x000031C0,0xFFFFEABA,0x000004F7,0x00001A5A,0xFFFFF845,0x000002FF,0x00001A5A,0xFFFFF845,0x000002FF},
-       {"0000001000010011111100001111111010011001000100000100100101000100",0x00003B77,0xFFFFE3B3,0x00000623,0x00001BCA,0xFFFFF6F8,0x00000333,0x00001BCA,0xFFFFF6F8,0x00000333},
-       {"0000001000010011111100001111111010011001000010100011100101000100",0x000035AF,0xFFFFE76D,0x00000588,0x00001C16,0xFFFFF6AB,0x00000341,0x00001C16,0xFFFFF6AB,0x00000341},
-       {"0000001000010011111010101001010011011110000001000011100011000100",0x000032AD,0xFFFFEA8E,0x000004F8,0x00001A3A,0xFFFFF832,0x0000030E,0x00001A3A,0xFFFFF832,0x0000030E},
-       {"0000001000010011111100001111111010011001000100000100100010000100",0x00002E92,0xFFFFEBD2,0x000004DA,0x00001E04,0xFFFFF51E,0x0000038A,0x00001E04,0xFFFFF51E,0x0000038A},
-       {"0000001000010011111100001111110101000010110101000100000010100100",0x00003E57,0xFFFFE0F7,0x0000068F,0x000021F1,0xFFFFF1C6,0x00000411,0x000021F1,0xFFFFF1C6,0x00000411},
-       {"0000001000010011111100001111111010011001000010000010000110100100",0x00003598,0xFFFFE8BB,0x00000535,0x00001B62,0xFFFFF764,0x00000326,0x00001B62,0xFFFFF764,0x00000326},
-       {"0000001000010011111100001111111010011001000010100011100010000100",0x00002B15,0xFFFFEDEC,0x00000487,0x00001E8B,0xFFFFF4AB,0x0000039F,0x00001E8B,0xFFFFF4AB,0x0000039F},
-       {"0000001000010011111010101001010011011110000001100000100100000100",0x0000267E,0xFFFFF1A7,0x000003E1,0x000021C1,0xFFFFF2E9,0x000003EA,0x000021C1,0xFFFFF2E9,0x000003EA},
-       {"0000001000010011111010101001010011011110000000100011100110100100",0x00002ED7,0xFFFFEC88,0x000004A6,0x00001DEC,0xFFFFF57C,0x00000378,0x00001DEC,0xFFFFF57C,0x00000378},
-       {"0000001000010011111010101001010011011110000001000100000110100100",0x00003365,0xFFFFE946,0x00000536,0x000019E9,0xFFFFF7E0,0x0000031D,0x000019E9,0xFFFFF7E0,0x0000031D},
-       {"0000001000010011111100001111111010011001000110000001100011100100",0x000029A4,0xFFFFF0FD,0x000003FE,0x0000163F,0xFFFFFB68,0x00000299,0x0000163F,0xFFFFFB68,0x00000299},
-       {"0000001000010011111010101001010011011110000000100001100100000100",0x0000348D,0xFFFFE9F7,0x00000509,0x000017A0,0xFFFFFA59,0x000002B6,0x000017A0,0xFFFFFA59,0x000002B6},
-       {"0000001000010011111100001111111010011001000001100001000011000100",0x00003144,0xFFFFEB23,0x000004D9,0x00001C9B,0xFFFFF664,0x00000351,0x00001C9B,0xFFFFF664,0x00000351},
-       {"0000001000010011111010101001010011011110000001100010000011100100",0x00002E95,0xFFFFEE1A,0x00000463,0x00001707,0xFFFFFAB7,0x000002B3,0x00001707,0xFFFFFAB7,0x000002B3},
-       {"0000001000010011111100001111110101000010110101000001100001100100",0x0000489C,0xFFFFDA43,0x000007AC,0x00002866,0xFFFFED6B,0x000004D0,0x00002866,0xFFFFED6B,0x000004D0},
-       {"0000001000010011111100001111111010011001000101100001100001000100",0x00002895,0xFFFFF10A,0x0000040A,0x000013E9,0xFFFFFC9F,0x0000026E,0x000013E9,0xFFFFFC9F,0x0000026E},
-       {"0000001000010011111100001111111010011001000001100001100101100100",0x000033A0,0xFFFFE9B1,0x00000510,0x00001D96,0xFFFFF5AE,0x0000036F,0x00001D96,0xFFFFF5AE,0x0000036F},
-       {"0000001000010011111100001111111010011001000010000011100110000100",0x0000327C,0xFFFFEAEA,0x000004DD,0x00001D45,0xFFFFF649,0x00000356,0x00001D45,0xFFFFF649,0x00000356},
-       {"0000001000010011111010101001010011011110000000100100100010100100",0x000031DF,0xFFFFE9AB,0x0000052F,0x000019C8,0xFFFFF7B7,0x00000321,0x000019C8,0xFFFFF7B7,0x00000321},
-       {"0000001000010011111100001111111010011001000101100100000010100100",0x00002BCC,0xFFFFEEF4,0x0000045C,0x000015CD,0xFFFFFB58,0x0000029E,0x000015CD,0xFFFFFB58,0x0000029E},
-       {"0000001000010011111100001111111010011001000001100011100011100100",0x00003534,0xFFFFEA10,0x000004EB,0x00001BB6,0xFFFFF7B9,0x00000314,0x00001BB6,0xFFFFF7B9,0x00000314},
-       {"0000001000010011111100001111111010011001000001000001100110000100",0x00002F4F,0xFFFFEC35,0x000004B9,0x0000205D,0xFFFFF47F,0x00000392,0x0000205D,0xFFFFF47F,0x00000392},
-       {"0000001000010011111100001111111010011001000011000010000010100100",0x00003295,0xFFFFEB1C,0x000004D6,0x000019C1,0xFFFFF931,0x000002D5,0x000019C1,0xFFFFF931,0x000002D5},
-       {"0000001000010011111100001111111010011001000000100100000101000100",0x00003557,0xFFFFE7F7,0x00000568,0x00002342,0xFFFFF1F9,0x00000405,0x00002342,0xFFFFF1F9,0x00000405},
-       {"0000001000010011111100001111111010011001000001000101000011000100",0x00003487,0xFFFFE872,0x0000055D,0x000019D7,0xFFFFF823,0x0000030C,0x000019D7,0xFFFFF823,0x0000030C},
-       {"0000001000010011111100001111111010011001001011000011100101000100",0x0000378F,0xFFFFE7A6,0x00000566,0x00001875,0xFFFFFA04,0x000002AF,0x00001875,0xFFFFFA04,0x000002AF},
-       {"0000001000010011111010101001010011011110000000100011000011100100",0x00002A67,0xFFFFF157,0x000003DD,0x000017BD,0xFFFFFA53,0x000002D1,0x000017BD,0xFFFFFA53,0x000002D1},
-       {"0000001000010011111100001111110101000010110100100010000011100100",0x000030B5,0xFFFFEB32,0x000004D9,0x00002129,0xFFFFF38A,0x000003BB,0x00002129,0xFFFFF38A,0x000003BB},
-       {"0000001000010011111100001111111010011001000001100001000010100100",0x00003786,0xFFFFE703,0x00000584,0x00001D63,0xFFFFF5DC,0x00000367,0x00001D63,0xFFFFF5DC,0x00000367},
-       {"0000001000010011111100001111110101000010110110100010000011000100",0x0000346A,0xFFFFE93E,0x0000052C,0x00001B27,0xFFFFF79D,0x0000031F,0x00001B27,0xFFFFF79D,0x0000031F},
-       {"0000001000010011111100001111111010011001000011100011000000100100",0x0000294E,0xFFFFF0A5,0x00000409,0x00001928,0xFFFFF93B,0x000002E6,0x00001928,0xFFFFF93B,0x000002E6},
-       {"0000001000010011111100001111110101000010110101000001000011000100",0x00003E09,0xFFFFE0FF,0x00000694,0x000025A0,0xFFFFEF0F,0x0000048F,0x000025A0,0xFFFFEF0F,0x0000048F},
-       {"0000001000010011111100001111111010011001000010100010100101100100",0x00003197,0xFFFFEA06,0x00000520,0x00001B42,0xFFFFF73B,0x0000032A,0x00001B42,0xFFFFF73B,0x0000032A},
-       {"0000001000010011111100001111111010011001000101100001100001100100",0x000022CB,0xFFFFF3FC,0x000003A3,0x00001449,0xFFFFFBD0,0x00000297,0x00001449,0xFFFFFBD0,0x00000297},
-       {"0000001000010011111100001111110101000010110110000010100101000100",0x00002A79,0xFFFFEFD2,0x00000433,0x00001585,0xFFFFFB92,0x0000028E,0x00001585,0xFFFFFB92,0x0000028E},
-       {"0000001000010011111100001111111010011001000011000100000110000100",0x00003249,0xFFFFEA92,0x000004F4,0x000019CB,0xFFFFF8CF,0x000002E1,0x000019CB,0xFFFFF8CF,0x000002E1},
-       {"0000001000010011111010101001010011011110000000100001100010100100",0x00002CEA,0xFFFFEE46,0x00000463,0x00001A5E,0xFFFFF83C,0x0000030D,0x00001A5E,0xFFFFF83C,0x0000030D},
-       {"0000001000010011111100001111110101000010110111000101000101000100",0x00003AE2,0xFFFFE422,0x00000600,0x00001C65,0xFFFFF62F,0x0000034B,0x00001C65,0xFFFFF62F,0x0000034B},
-       {"0000001000010011111100001111111010011001000110000001000110000100",0x000026A0,0xFFFFF1C2,0x000003F8,0x000010E5,0xFFFFFE56,0x0000022A,0x000010E5,0xFFFFFE56,0x0000022A},
-       {"0000001000010011111100001111111010011001001010000010100110100100",0x00002A7B,0xFFFFF063,0x00000417,0x000016FC,0xFFFFFAD7,0x000002B1,0x000016FC,0xFFFFFAD7,0x000002B1},
-       {"0000001000010011111100001111111010011001001100100001000011000100",0x00003092,0xFFFFEAB9,0x00000507,0x00001AE3,0xFFFFF783,0x00000323,0x00001AE3,0xFFFFF783,0x00000323},
-       {"0000001000010011111100001111111010011001000001000011100011100100",0x00003265,0xFFFFEBE8,0x000004AA,0x00001D65,0xFFFFF73F,0x00000321,0x00001D65,0xFFFFF73F,0x00000321},
-       {"0000001000010011111010101001010011011110000000100011000010000100",0x00002F14,0xFFFFECC2,0x000004A4,0x00001A8D,0xFFFFF7F3,0x0000031D,0x00001A8D,0xFFFFF7F3,0x0000031D},
-       {"0000001000010011111100001111110101000010110111000001000011100100",0x000035FB,0xFFFFE6D3,0x000005AC,0x00001B19,0xFFFFF712,0x00000338,0x00001B19,0xFFFFF712,0x00000338},
-       {"0000001000010011111100001111110101000010110110100010000100100100",0x00003519,0xFFFFE8CC,0x0000053A,0x00001A0F,0xFFFFF86E,0x000002F5,0x00001A0F,0xFFFFF86E,0x000002F5},
-       {"0000001000010011111100001111111010011001001011000010000101000100",0x0000364C,0xFFFFE879,0x00000541,0x00001A42,0xFFFFF8BA,0x000002E2,0x00001A42,0xFFFFF8BA,0x000002E2},
-       {"0000001000010011111010101001010011011110000000100001100011000100",0x000029BA,0xFFFFF09A,0x00000408,0x00001986,0xFFFFF8D9,0x000002FE,0x00001986,0xFFFFF8D9,0x000002FE},
-       {"0000001000010011111100001111110101000010110110100011100011100100",0x00003507,0xFFFFE961,0x00000518,0x00001B79,0xFFFFF775,0x00000325,0x00001B79,0xFFFFF775,0x00000325},
-       {"0000001000010011111100001111110101000010110111000011000110000100",0x00003AD5,0xFFFFE415,0x00000613,0x00001CB4,0xFFFFF66D,0x00000348,0x00001CB4,0xFFFFF66D,0x00000348},
-       {"0000001000010011111100001111111010011001000101100100000011100100",0x000023D1,0xFFFFF42B,0x0000038F,0x00001546,0xFFFFFBA0,0x0000029F,0x00001546,0xFFFFFBA0,0x0000029F},
-       {"0000001000010011111100001111111010011001000010100001100100100100",0x0000399E,0xFFFFE518,0x000005E7,0x00001990,0xFFFFF871,0x000002FB,0x00001990,0xFFFFF871,0x000002FB},
-       {"0000001000010011111100001111110101000010110110000010100101100100",0x00002EDE,0xFFFFEC93,0x000004B8,0x0000152C,0xFFFFFBB3,0x0000027E,0x0000152C,0xFFFFFBB3,0x0000027E},
-       {"0000001000010011111010101001010011011110000001000010100101100100",0x00003140,0xFFFFEBC9,0x000004BB,0x000016BE,0xFFFFFB0A,0x00000288,0x000016BE,0xFFFFFB0A,0x00000288},
-       {"0000001000010011111100001111111010011001000001100100000001100100",0x000030F6,0xFFFFEB89,0x000004CD,0x0000185D,0xFFFFF95A,0x000002D9,0x0000185D,0xFFFFF95A,0x000002D9},
-       {"0000001000010011111100001111111010011001000000100011100001000100",0x0000389C,0xFFFFE65A,0x000005A2,0x0000195D,0xFFFFF8C8,0x000002E8,0x0000195D,0xFFFFF8C8,0x000002E8},
-       {"0000001000010011111100001111111010011001000001000010000100000100",0x0000362B,0xFFFFE9EC,0x000004F6,0x00001605,0xFFFFFC1C,0x00000263,0x00001605,0xFFFFFC1C,0x00000263},
-       {"0000001000010011111100001111111010011001001010100001100101100100",0x00002946,0xFFFFF04F,0x00000426,0x000015BA,0xFFFFFB2F,0x000002A3,0x000015BA,0xFFFFFB2F,0x000002A3},
-       {"0000001000010011111100001111111010011001000010000010000110000100",0x0000368E,0xFFFFE837,0x0000054A,0x000017D7,0xFFFFF9EB,0x000002BA,0x000017D7,0xFFFFF9EB,0x000002BA},
-       {"0000001000010011111100001111110101000010110110100010100001000100",0x00002E74,0xFFFFEBE8,0x000004DA,0x00001DD6,0xFFFFF57E,0x00000379,0x00001DD6,0xFFFFF57E,0x00000379},
-       {"0000001000010011111100001111111010011001000001000001100101000100",0x0000322D,0xFFFFEAA8,0x000004F5,0x00001B55,0xFFFFF7DD,0x0000030B,0x00001B55,0xFFFFF7DD,0x0000030B},
-       {"0000001000010011111100001111111010011001000110000001100100000100",0x00002A29,0xFFFFF07B,0x00000416,0x00001671,0xFFFFFB3E,0x0000029F,0x00001671,0xFFFFFB3E,0x0000029F},
-       {"0000001000010011111100001111110101000010110110100010000100000100",0x000030F6,0xFFFFEB89,0x000004CD,0x00001815,0xFFFFF9AE,0x000002C9,0x00001815,0xFFFFF9AE,0x000002C9},
-       {"0000001000010011111100001111111010011001000011100001000011100100",0x0000265F,0xFFFFF1CB,0x000003D5,0x00001ED2,0xFFFFF539,0x0000037A,0x00001ED2,0xFFFFF539,0x0000037A},
-       {"0000001000010011111100001111111010011001000101100010000110000100",0x000027A8,0xFFFFF10D,0x00000413,0x000014B5,0xFFFFFBA1,0x00000299,0x000014B5,0xFFFFFBA1,0x00000299},
-       {"0000001000010011111100001111111010011001000001000011000001100100",0x00002CEE,0xFFFFEDF6,0x00000476,0x00001A99,0xFFFFF83E,0x00000305,0x00001A99,0xFFFFF83E,0x00000305},
-       {"0000001000010011111100001111111010011001000001100100000011000100",0x0000346C,0xFFFFEA17,0x000004EF,0x00001D38,0xFFFFF69F,0x0000033D,0x00001D38,0xFFFFF69F,0x0000033D},
-       {"0000001000010011111100001111110101000010110110100010100101000100",0x00002DBB,0xFFFFED35,0x00000490,0x000018C1,0xFFFFF930,0x000002DA,0x000018C1,0xFFFFF930,0x000002DA},
-       {"0000001000010011111100001111111010011001000001000010100100100100",0x000038DF,0xFFFFE8A7,0x0000051E,0x00001B59,0xFFFFF915,0x000002D3,0x00001B59,0xFFFFF915,0x000002D3},
-       {"0000001000010011111100001111111010011001000010000000100101000100",0x00003384,0xFFFFE979,0x00000524,0x00001AF3,0xFFFFF74C,0x0000032F,0x00001AF3,0xFFFFF74C,0x0000032F},
-       {"0000001000010011111100001111111010011001000110000001100001100100",0x0000258B,0xFFFFF2AE,0x000003CB,0x0000190C,0xFFFFF93E,0x000002EF,0x0000190C,0xFFFFF93E,0x000002EF},
-       {"0000001000010011111100001111111010011001000100000011100010000100",0x000034F1,0xFFFFE84B,0x0000055E,0x00001CB8,0xFFFFF670,0x0000034A,0x00001CB8,0xFFFFF670,0x0000034A},
-       {"0000001000010011111100001111111010011001000011000010000100000100",0x000030FB,0xFFFFECD2,0x00000488,0x00001BF4,0xFFFFF821,0x00000302,0x00001BF4,0xFFFFF821,0x00000302},
-       {"0000001000010011111100001111111010011001000001100011000001000100",0x000036A6,0xFFFFE815,0x00000556,0x000018FD,0xFFFFF925,0x000002DF,0x000018FD,0xFFFFF925,0x000002DF},
-       {"0000001000010011111010101001010011011110000000100011000001000100",0x0000302A,0xFFFFEB79,0x000004E0,0x00001C11,0xFFFFF694,0x00000358,0x00001C11,0xFFFFF694,0x00000358},
-       {"0000001000010011111100001111111010011001000110000001000100100100",0x00002555,0xFFFFF2C4,0x000003CB,0x000017E3,0xFFFFFA1F,0x000002CB,0x000017E3,0xFFFFFA1F,0x000002CB},
-       {"0000001000010011111100001111111010011001000010100011000101100100",0x000032A3,0xFFFFE933,0x00000544,0x000019D3,0xFFFFF81A,0x00000306,0x000019D3,0xFFFFF81A,0x00000306},
-       {"0000001000010011111100001111110101000010110110000101000100000100",0x00002B91,0xFFFFED81,0x000004A9,0x0000158B,0xFFFFFAB9,0x000002AC,0x0000158B,0xFFFFFAB9,0x000002AC},
-       {"0000001000010011111100001111111010011001000011100010000011000100",0x00003537,0xFFFFE912,0x0000052C,0x00001C8A,0xFFFFF754,0x0000031B,0x00001C8A,0xFFFFF754,0x0000031B},
-       {"0000001000010011111010101001010011011110000001100011000110000100",0x000032E1,0xFFFFEA5A,0x000004F9,0x000017B4,0xFFFFF9D9,0x000002C2,0x000017B4,0xFFFFF9D9,0x000002C2},
-       {"0000001000010011111100001111110101000010110100100001000011000100",0x00003B76,0xFFFFE330,0x00000636,0x000026FB,0xFFFFEF06,0x00000481,0x000026FB,0xFFFFEF06,0x00000481},
-       {"0000001000010011111100001111111010011001000001000010000101000100",0x0000320C,0xFFFFEB84,0x000004C3,0x00001A3A,0xFFFFF8E9,0x000002DF,0x00001A3A,0xFFFFF8E9,0x000002DF},
-       {"0000001000010011111100001111111010011001000000100011100110000100",0x0000317D,0xFFFFEA1F,0x00000515,0x00002100,0xFFFFF31B,0x000003DD,0x00002100,0xFFFFF31B,0x000003DD},
-       {"0000001000010011111100001111110101000010110101000011000101100100",0x00003DCB,0xFFFFE0B4,0x000006B4,0x00002160,0xFFFFF269,0x000003F0,0x00002160,0xFFFFF269,0x000003F0},
-       {"0000001000010011111100001111111010011001000101100001100011000100",0x00002737,0xFFFFF218,0x000003E1,0x000015B5,0xFFFFFB8F,0x0000029C,0x000015B5,0xFFFFFB8F,0x0000029C},
-       {"0000001000010011111010101001010011011110000000100011000110000100",0x0000318F,0xFFFFEB3F,0x000004D8,0x00001938,0xFFFFF8E9,0x000002EB,0x00001938,0xFFFFF8E9,0x000002EB},
-       {"0000001000010011111100001111111010011001000100000100100011000100",0x000031BD,0xFFFFE9DE,0x00000527,0x000018A7,0xFFFFF8CA,0x000002ED,0x000018A7,0xFFFFF8CA,0x000002ED},
-       {"0000001000010011111100001111110101000010110110100011100010000100",0x00002F77,0xFFFFEC2F,0x000004B4,0x00001D25,0xFFFFF61B,0x0000035D,0x00001D25,0xFFFFF61B,0x0000035D},
-       {"0000001000010011111100001111111010011001000011100100100100000100",0x00002CCA,0xFFFFEDB3,0x0000047C,0x00001FBD,0xFFFFF4A7,0x00000391,0x00001FBD,0xFFFFF4A7,0x00000391},
-       {"0000001000010011111100001111110101000010110101000011100010100100",0x00003FF6,0xFFFFE058,0x000006A2,0x000024CD,0xFFFFF026,0x00000452,0x000024CD,0xFFFFF026,0x00000452},
-       {"0000001000010011111100001111111010011001000010100011100011100100",0x00003161,0xFFFFEAC8,0x000004F3,0x00001BB6,0xFFFFF72A,0x0000032B,0x00001BB6,0xFFFFF72A,0x0000032B},
-       {"0000001000010011111100001111110101000010110110000011100010100100",0x00002EA0,0xFFFFECA6,0x000004B7,0x000018C2,0xFFFFF94E,0x000002E1,0x000018C2,0xFFFFF94E,0x000002E1},
-       {"0000001000010011111100001111111010011001000110000010000110000100",0x00002F62,0xFFFFEC9E,0x000004B8,0x00001531,0xFFFFFBCD,0x00000285,0x00001531,0xFFFFFBCD,0x00000285},
-       {"0000001000010011111100001111111010011001000001000100000010100100",0x00003013,0xFFFFEBD6,0x000004C2,0x00001B01,0xFFFFF802,0x000002FF,0x00001B01,0xFFFFF802,0x000002FF},
-       {"0000001000010011111100001111111010011001000110000011000001100100",0x00002972,0xFFFFF08D,0x00000417,0x00001A32,0xFFFFF8A4,0x00000305,0x00001A32,0xFFFFF8A4,0x00000305},
-       {"0000001000010011111100001111110101000010110110000010000011100100",0x00002E95,0xFFFFED94,0x00000487,0x00001529,0xFFFFFC26,0x00000271,0x00001529,0xFFFFFC26,0x00000271},
-       {"0000001000010011111100001111111010011001000010100001000010000100",0x00002D6A,0xFFFFEC79,0x000004C1,0x00001AE2,0xFFFFF725,0x00000337,0x00001AE2,0xFFFFF725,0x00000337},
-       {"0000001000010011111100001111111010011001000000100001100010000100",0x000036B4,0xFFFFE704,0x00000591,0x00001E7E,0xFFFFF51C,0x00000383,0x00001E7E,0xFFFFF51C,0x00000383},
-       {"0000001000010011111100001111111010011001000001000001100001000100",0x00002A6F,0xFFFFEF70,0x00000443,0x00001BAA,0xFFFFF752,0x00000336,0x00001BAA,0xFFFFF752,0x00000336},
-       {"0000001000010011111100001111111010011001000110000011100101000100",0x00002C66,0xFFFFEF5F,0x0000043A,0x000019F7,0xFFFFF931,0x000002EC,0x000019F7,0xFFFFF931,0x000002EC},
-       {"0000001000010011111010101001010011011110000001100011000111000100",0x00003852,0xFFFFE6AB,0x00000590,0x000019C1,0xFFFFF8B1,0x000002E5,0x000019C1,0xFFFFF8B1,0x000002E5},
-       {"0000001000010011111100001111110101000010110110100011000100100100",0x00003521,0xFFFFE932,0x00000523,0x000018A9,0xFFFFF96B,0x000002D0,0x000018A9,0xFFFFF96B,0x000002D0},
-       {"0000001000010011111100001111111010011001000001100010000101100100",0x000031B9,0xFFFFEB36,0x000004D0,0x00001D65,0xFFFFF612,0x0000035D,0x00001D65,0xFFFFF612,0x0000035D},
-       {"0000001000010011111100001111110101000010110101000001000001100100",0x00003ED0,0xFFFFE135,0x00000679,0x00002351,0xFFFFF0FE,0x00000433,0x00002351,0xFFFFF0FE,0x00000433},
-       {"0000001000010011111100001111111010011001000010100010000011100100",0x000033ED,0xFFFFE91A,0x00000541,0x00001C93,0xFFFFF6A0,0x0000034A,0x00001C93,0xFFFFF6A0,0x0000034A},
-       {"0000001000010011111010101001010011011110000000100001100001000100",0x0000356F,0xFFFFE8F7,0x00000530,0x000016BF,0xFFFFFA85,0x000002AB,0x000016BF,0xFFFFFA85,0x000002AB},
-       {"0000001000010011111100001111111010011001000110000100000011100100",0x00002304,0xFFFFF4F3,0x00000364,0x000017CC,0xFFFFFA41,0x000002CA,0x000017CC,0xFFFFFA41,0x000002CA},
-       {"0000001000010011111100001111111010011001000101100001000101100100",0x00002887,0xFFFFEFD7,0x00000450,0x00001474,0xFFFFFB94,0x00000299,0x00001474,0xFFFFFB94,0x00000299},
-       {"0000001000010011111100001111111010011001000001100011000001100100",0x00003D0B,0xFFFFE416,0x000005EF,0x00001C7E,0xFFFFF71D,0x00000325,0x00001C7E,0xFFFFF71D,0x00000325},
-       {"0000001000010011111100001111111010011001000010000001000011100100",0x00003185,0xFFFFEAFA,0x000004E4,0x00001A12,0xFFFFF83C,0x00000303,0x00001A12,0xFFFFF83C,0x00000303},
-       {"0000001000010011111100001111111010011001000010100001100101000100",0x00003032,0xFFFFEAE6,0x000004FC,0x00001B2A,0xFFFFF73F,0x0000032B,0x00001B2A,0xFFFFF73F,0x0000032B},
-       {"0000001000010011111100001111110101000010110110000011100011000100",0x00002691,0xFFFFF22D,0x000003D6,0x00001700,0xFFFFFA6E,0x000002C0,0x00001700,0xFFFFFA6E,0x000002C0},
-       {"0000001000010011111100001111111010011001000000100001100010100100",0x00002B2F,0xFFFFEEC4,0x0000044B,0x0000215F,0xFFFFF33F,0x000003D2,0x0000215F,0xFFFFF33F,0x000003D2},
-       {"0000001000010011111100001111111010011001000010100100000110000100",0x000034AA,0xFFFFE706,0x000005B1,0x00001B28,0xFFFFF6B5,0x00000349,0x00001B28,0xFFFFF6B5,0x00000349},
-       {"0000001000010011111100001111110101000010110110100010100101100100",0x0000307E,0xFFFFEB38,0x000004E6,0x00001A22,0xFFFFF83F,0x00000300,0x00001A22,0xFFFFF83F,0x00000300},
-       {"0000001000010011111100001111111010011001000001100001100010100100",0x000038D6,0xFFFFE6D8,0x0000057C,0x00001B24,0xFFFFF7E4,0x00000307,0x00001B24,0xFFFFF7E4,0x00000307},
-       {"0000001000010011111100001111111010011001000110000011000001000100",0x00002757,0xFFFFF1E8,0x000003DD,0x000017F5,0xFFFFFA15,0x000002C8,0x000017F5,0xFFFFFA15,0x000002C8},
-       {"0000001000010011111100001111111010011001000010000011000110000100",0x000031FC,0xFFFFEB3E,0x000004CE,0x00001B4C,0xFFFFF7AD,0x00000319,0x00001B4C,0xFFFFF7AD,0x00000319},
-       {"0000001000010011111100001111111010011001001100000001100001100100",0x00002933,0xFFFFF073,0x0000040E,0x00001C3C,0xFFFFF701,0x0000033C,0x00001C3C,0xFFFFF701,0x0000033C},
-       {"0000001000010011111100001111110101000010110100100001100010100100",0x000040BB,0xFFFFE066,0x0000069A,0x0000257F,0xFFFFF08A,0x00000435,0x0000257F,0xFFFFF08A,0x00000435},
-       {"0000001000010011111100001111111010011001000100000001000010100100",0x0000305B,0xFFFFEB9B,0x000004CB,0x00001996,0xFFFFF846,0x00000308,0x00001996,0xFFFFF846,0x00000308},
-       {"0000001000010011111100001111111010011001000001100100100010000100",0x000039C0,0xFFFFE5D3,0x000005B0,0x00001A8D,0xFFFFF7DA,0x00000313,0x00001A8D,0xFFFFF7DA,0x00000313},
-       {"0000001000010011111010101001010011011110000000100001000010100100",0x00002E23,0xFFFFED3F,0x0000048F,0x0000189D,0xFFFFF94C,0x000002DE,0x0000189D,0xFFFFF94C,0x000002DE},
-       {"0000001000010011111010101001010011011110000000100001100110000100",0x0000332B,0xFFFFE9F1,0x00000516,0x000018E6,0xFFFFF8FE,0x000002EC,0x000018E6,0xFFFFF8FE,0x000002EC},
-       {"0000001000010011111100001111111010011001000010000011100011000100",0x000034A0,0xFFFFEA44,0x000004E4,0x00001ECD,0xFFFFF5B4,0x00000364,0x00001ECD,0xFFFFF5B4,0x00000364},
-       {"0000001000010011111100001111110101000010110100100100000100000100",0x0000448C,0xFFFFDF34,0x000006A8,0x0000231C,0xFFFFF286,0x000003D9,0x0000231C,0xFFFFF286,0x000003D9},
-       {"0000001000010011111010101001010011011110000001100010000101000100",0x00002D8C,0xFFFFEE65,0x00000456,0x000018B1,0xFFFFF9C8,0x000002C8,0x000018B1,0xFFFFF9C8,0x000002C8},
-       {"0000001000010011111100001111111010011001000001100001100100000100",0x00003527,0xFFFFE9BF,0x000004FD,0x00001D23,0xFFFFF69F,0x00000342,0x00001D23,0xFFFFF69F,0x00000342},
-       {"0000001000010011111100001111110101000010110111000011100010100100",0x00002C51,0xFFFFEDC3,0x00000483,0x00001BE0,0xFFFFF720,0x0000032D,0x00001BE0,0xFFFFF720,0x0000032D},
-       {"0000001000010011111100001111111010011001000010100011000001000100",0x00002C6C,0xFFFFECEB,0x000004B7,0x00001C86,0xFFFFF5E7,0x00000371,0x00001C86,0xFFFFF5E7,0x00000371},
-       {"0000001000010011111100001111111010011001000001000101000101000100",0x000037CF,0xFFFFE6BE,0x00000599,0x000018CD,0xFFFFF967,0x000002C7,0x000018CD,0xFFFFF967,0x000002C7},
-       {"0000001000010011111100001111111010011001000100000011000101100100",0x00002E6F,0xFFFFED1D,0x0000048E,0x00001ADC,0xFFFFF7F4,0x0000030E,0x00001ADC,0xFFFFF7F4,0x0000030E},
-       {"0000001000010011111100001111110101000010110101000010100110000100",0x00003FF3,0xFFFFDF13,0x000006F9,0x000025BF,0xFFFFEEEE,0x00000497,0x000025BF,0xFFFFEEEE,0x00000497},
-       {"0000001000010011111100001111110101000010110111000101000100000100",0x00004135,0xFFFFDF97,0x000006CC,0x00001D52,0xFFFFF541,0x00000383,0x00001D52,0xFFFFF541,0x00000383},
-       {"0000001000010011111100001111110101000010110111000010000011100100",0x00002EA9,0xFFFFEDDB,0x0000045F,0x0000197C,0xFFFFF8E1,0x000002F0,0x0000197C,0xFFFFF8E1,0x000002F0},
-       {"0000001000010011111010101001010011011110000001000011000010000100",0x0000345C,0xFFFFE922,0x00000532,0x00001922,0xFFFFF8C7,0x000002F1,0x00001922,0xFFFFF8C7,0x000002F1},
-       {"0000001000010011111100001111111010011001000001100100000100100100",0x000035C4,0xFFFFE8FE,0x00000521,0x00001C87,0xFFFFF6F3,0x00000330,0x00001C87,0xFFFFF6F3,0x00000330},
-       {"0000001000010011111100001111110101000010110110000011000101100100",0x00002888,0xFFFFF08A,0x0000041E,0x0000150F,0xFFFFFB87,0x00000291,0x0000150F,0xFFFFFB87,0x00000291},
-       {"0000001000010011111100001111111010011001000010100001000100100100",0x000035E9,0xFFFFE657,0x000005CC,0x00001BD6,0xFFFFF664,0x00000355,0x00001BD6,0xFFFFF664,0x00000355},
-       {"0000001000010011111100001111111010011001000101100100100011100100",0x00002F94,0xFFFFEBD0,0x000004E5,0x00001333,0xFFFFFCA7,0x00000266,0x00001333,0xFFFFFCA7,0x00000266},
-       {"0000001000010011111100001111111010011001000110000001100101100100",0x000029E7,0xFFFFF009,0x00000433,0x0000144A,0xFFFFFC37,0x0000027D,0x0000144A,0xFFFFFC37,0x0000027D},
-       {"0000001000010011111100001111111010011001001011000001100101000100",0x00003418,0xFFFFE979,0x00000521,0x00001D33,0xFFFFF66B,0x0000034A,0x00001D33,0xFFFFF66B,0x0000034A},
-       {"0000001000010011111010101001010011011110000001000100000011100100",0x00003656,0xFFFFE79D,0x0000057A,0x000017C2,0xFFFFF992,0x000002D4,0x000017C2,0xFFFFF992,0x000002D4},
-       {"0000001000010011111100001111111010011001000011000100000011000100",0x00002EB2,0xFFFFECFE,0x00000493,0x00001F2A,0xFFFFF543,0x0000037B,0x00001F2A,0xFFFFF543,0x0000037B},
-       {"0000001000010011111100001111111010011001000000100001000100100100",0x00002FC1,0xFFFFEB3F,0x000004E8,0x00001CD0,0xFFFFF5F7,0x00000364,0x00001CD0,0xFFFFF5F7,0x00000364},
-       {"0000001000010011111100001111111010011001000011000001000100100100",0x0000307B,0xFFFFEB66,0x000004DE,0x00001953,0xFFFFF8ED,0x000002E4,0x00001953,0xFFFFF8ED,0x000002E4},
-       {"0000001000010011111100001111110101000010110110100001100010000100",0x00002CAA,0xFFFFED07,0x000004AC,0x0000251C,0xFFFFF086,0x0000044D,0x0000251C,0xFFFFF086,0x0000044D},
-       {"0000001000010011111010101001010011011110000001000011100101000100",0x00002C94,0xFFFFEE5F,0x0000045B,0x000018D7,0xFFFFF900,0x000002EB,0x000018D7,0xFFFFF900,0x000002EB},
-       {"0000001000010011111100001111111010011001000000100001100001100100",0x000031F1,0xFFFFE9BE,0x0000052E,0x00001DDF,0xFFFFF558,0x00000380,0x00001DDF,0xFFFFF558,0x00000380},
-       {"0000001000010011111100001111111010011001000011100101000011000100",0x00002603,0xFFFFF1E9,0x000003DA,0x00001B37,0xFFFFF75A,0x0000032F,0x00001B37,0xFFFFF75A,0x0000032F},
-       {"0000001000010011111100001111110101000010110110100011000001000100",0x00003992,0xFFFFE4F9,0x000005EB,0x00001775,0xFFFFF9B8,0x000002C2,0x00001775,0xFFFFF9B8,0x000002C2},
-       {"0000001000010011111100001111111010011001000110000100100101100100",0x000029DA,0xFFFFF052,0x0000041F,0x000016E2,0xFFFFFA99,0x000002BB,0x000016E2,0xFFFFFA99,0x000002BB},
-       {"0000001000010011111100001111111010011001000100000001000001100100",0x00002FF2,0xFFFFEB8F,0x000004DF,0x00001AF6,0xFFFFF7A1,0x00000321,0x00001AF6,0xFFFFF7A1,0x00000321},
-       {"0000001000010011111100001111111010011001000101100000100011100100",0x00002590,0xFFFFF222,0x000003EE,0x0000130B,0xFFFFFCC9,0x00000268,0x0000130B,0xFFFFFCC9,0x00000268},
-       {"0000001000010011111100001111111010011001000000100100000001100100",0x000038A2,0xFFFFE65F,0x000005A2,0x000018B1,0xFFFFF917,0x000002E1,0x000018B1,0xFFFFF917,0x000002E1},
-       {"0000001000010011111100001111110101000010110111000100100011100100",0x000035FD,0xFFFFE73C,0x0000058D,0x00001BB3,0xFFFFF6E1,0x00000337,0x00001BB3,0xFFFFF6E1,0x00000337},
-       {"0000001000010011111100001111111010011001000100000011100011000100",0x00002AB7,0xFFFFEF98,0x00000429,0x00001F35,0xFFFFF539,0x0000037C,0x00001F35,0xFFFFF539,0x0000037C},
-       {"0000001000010011111100001111111010011001000010100000100101000100",0x000034BA,0xFFFFE73D,0x000005A6,0x000018A6,0xFFFFF888,0x000002FB,0x000018A6,0xFFFFF888,0x000002FB},
-       {"0000001000010011111100001111111010011001000001100011100001000100",0x000032EA,0xFFFFEA78,0x000004F4,0x00001AB6,0xFFFFF812,0x00000308,0x00001AB6,0xFFFFF812,0x00000308},
-       {"0000001000010011111100001111111010011001000011000011000001000100",0x00002BE9,0xFFFFEE9A,0x00000457,0x00001942,0xFFFFF8D2,0x000002F2,0x00001942,0xFFFFF8D2,0x000002F2},
-       {"0000001000010011111100001111111010011001000100000101000100100100",0x00002FAB,0xFFFFEB76,0x000004E1,0x00001DCA,0xFFFFF57D,0x00000378,0x00001DCA,0xFFFFF57D,0x00000378},
-       {"0000001000010011111100001111111010011001001011100010100001000100",0x0000330A,0xFFFFE9E1,0x0000051B,0x00001CC4,0xFFFFF6DF,0x00000335,0x00001CC4,0xFFFFF6DF,0x00000335},
-       {"0000001000010011111100001111111010011001000110000010100010100100",0x000027D8,0xFFFFF276,0x000003BF,0x0000178A,0xFFFFFABF,0x000002B5,0x0000178A,0xFFFFFABF,0x000002B5},
-       {"0000001000010011111100001111110101000010110111000011100001100100",0x0000340A,0xFFFFE86D,0x00000562,0x00001B85,0xFFFFF719,0x0000032F,0x00001B85,0xFFFFF719,0x0000032F},
-       {"0000001000010011111010101001010011011110000001100011000010000100",0x00003879,0xFFFFE73F,0x00000578,0x0000161C,0xFFFFFB6B,0x00000281,0x0000161C,0xFFFFFB6B,0x00000281},
-       {"0000001000010011111100001111111010011001000110000100000001100100",0x00002879,0xFFFFF0F8,0x0000040A,0x00001749,0xFFFFFA37,0x000002CC,0x00001749,0xFFFFFA37,0x000002CC},
-       {"0000001000010011111100001111111010011001000001000011100101100100",0x00002C3A,0xFFFFEEA0,0x0000044F,0x00001D57,0xFFFFF6C2,0x00000332,0x00001D57,0xFFFFF6C2,0x00000332},
-       {"0000001000010011111010101001010011011110000000100001100101100100",0x000035BB,0xFFFFE90D,0x0000052A,0x000017D9,0xFFFFF9F5,0x000002C3,0x000017D9,0xFFFFF9F5,0x000002C3},
-       {"0000001000010011111010101001010011011110000001000001000100100100",0x000031F1,0xFFFFEAD4,0x000004ED,0x00001F10,0xFFFFF539,0x0000037D,0x00001F10,0xFFFFF539,0x0000037D},
-       {"0000001000010011111100001111111010011001000100000010100000100100",0x00002A1A,0xFFFFEFAD,0x00000430,0x00001D47,0xFFFFF62F,0x0000035E,0x00001D47,0xFFFFF62F,0x0000035E},
-       {"0000001000010011111100001111111010011001000101100100100100100100",0x00002AF0,0xFFFFEEDC,0x00000465,0x0000145F,0xFFFFFBEB,0x00000281,0x0000145F,0xFFFFFBEB,0x00000281},
-       {"0000001000010011111100001111111010011001000110000011000101100100",0x00002657,0xFFFFF2E0,0x000003B6,0x00001664,0xFFFFFB37,0x000002A2,0x00001664,0xFFFFFB37,0x000002A2},
-       {"0000001000010011111100001111110101000010110100000011100001100100",0x00003183,0xFFFFE9F1,0x0000052B,0x00002020,0xFFFFF3CE,0x000003C1,0x00002020,0xFFFFF3CE,0x000003C1},
-       {"0000001000010011111100001111110101000010110001100010100011100100",0x00003240,0xFFFFEB65,0x000004C7,0x00002425,0xFFFFF245,0x000003F3,0x00002425,0xFFFFF245,0x000003F3},
-       {"0000001000010011111010101001010011011110001100100001000100000100",0x000023D0,0xFFFFF400,0x00000397,0x00001345,0xFFFFFD6B,0x00000241,0x00001345,0xFFFFFD6B,0x00000241},
-       {"0000001000010011111100001111110101000010110011100011100010100100",0x00003440,0xFFFFE872,0x0000055B,0x00002247,0xFFFFF296,0x000003E8,0x00002247,0xFFFFF296,0x000003E8},
-       {"0000001000010011111100001111110101000010110100000100100100000100",0x00003275,0xFFFFE970,0x00000538,0x00001F94,0xFFFFF429,0x000003AD,0x00001F94,0xFFFFF429,0x000003AD},
-       {"0000001000010011111100001111110101000010110001100100000010100100",0x00003918,0xFFFFE5DA,0x000005B6,0x000024FC,0xFFFFF106,0x00000426,0x000024FC,0xFFFFF106,0x00000426},
-       {"0000001000010011111010101001010011011110000001100010000001000100",0x0000334B,0xFFFFEA39,0x000004FD,0x00001983,0xFFFFF8F6,0x000002E2,0x00001983,0xFFFFF8F6,0x000002E2},
-       {"0000001000010011111100001111110101000010110001100100100110000100",0x00003B59,0xFFFFE4D0,0x000005DA,0x00002605,0xFFFFF090,0x00000439,0x00002605,0xFFFFF090,0x00000439},
-       {"0000001000010011111100001111110101000010110100000011000100100100",0x00003251,0xFFFFEA46,0x00000511,0x00002781,0xFFFFEF84,0x00000470,0x00002781,0xFFFFEF84,0x00000470},
-       {"0000001000010011111100001111110101000010110010100011000101100100",0x00003304,0xFFFFE926,0x00000542,0x00001EE9,0xFFFFF4E4,0x0000038B,0x00001EE9,0xFFFFF4E4,0x0000038B},
-       {"0000001000010011111100001111110101000010110011000011100011000100",0x00002F4C,0xFFFFEC0C,0x000004C4,0x00001E49,0xFFFFF578,0x00000374,0x00001E49,0xFFFFF578,0x00000374},
-       {"0000001000010011111010101001010011011110000111000010000101100100",0x00002034,0xFFFFF692,0x0000034C,0x000014B8,0xFFFFFC5B,0x00000294,0x000014B8,0xFFFFFC5B,0x00000294},
-       {"0000001000010011111100001111110101000010110011100100100100100100",0x0000385F,0xFFFFE513,0x000005F3,0x000024E7,0xFFFFF053,0x00000450,0x000024E7,0xFFFFF053,0x00000450},
-       {"0000001000010011111010101001010011011110000111000100000011100100",0x00001D70,0xFFFFF821,0x0000030F,0x00001541,0xFFFFFBB4,0x000002B0,0x00001541,0xFFFFFBB4,0x000002B0},
-       {"0000001000010011111100001111110101000010110100000010000010000100",0x000034EB,0xFFFFE7FF,0x00000575,0x000019B4,0xFFFFF836,0x00000308,0x000019B4,0xFFFFF836,0x00000308},
-       {"0000001000010011111100001111110101000010110100000101000011100100",0x000037C9,0xFFFFE5D4,0x000005CD,0x000026A1,0xFFFFEF0C,0x00000491,0x000026A1,0xFFFFEF0C,0x00000491},
-       {"0000001000010011111010101001010011011110000100100001100101000100",0x00002918,0xFFFFF148,0x000003E9,0x00001A49,0xFFFFF94C,0x000002CF,0x00001A49,0xFFFFF94C,0x000002CF},
-       {"0000001000010011111100001111110101000010110010100100000001100100",0x00002F90,0xFFFFEAB5,0x00000514,0x00001707,0xFFFFF9C7,0x000002C4,0x00001707,0xFFFFF9C7,0x000002C4},
-       {"0000001000010011111010101001010011011110000001100010000001100100",0x0000327E,0xFFFFEA99,0x000004F4,0x0000194F,0xFFFFF929,0x000002DC,0x0000194F,0xFFFFF929,0x000002DC},
-       {"0000001000010011111100001111110101000010110001100100000010000100",0x0000326F,0xFFFFE9CF,0x00000519,0x00002240,0xFFFFF299,0x000003E7,0x00002240,0xFFFFF299,0x000003E7},
-       {"0000001000010011111010101001010011011110001100100001000100100100",0x000022FB,0xFFFFF4C6,0x00000371,0x00001506,0xFFFFFC73,0x00000265,0x00001506,0xFFFFFC73,0x00000265},
-       {"0000001000010011111100001111110101000010110010100011100100100100",0x00003AD6,0xFFFFE470,0x000005FE,0x00001F03,0xFFFFF4F3,0x00000387,0x00001F03,0xFFFFF4F3,0x00000387},
-       {"0000001000010011111010101001010011011110001000000001000100100100",0x00001F11,0xFFFFF756,0x00000332,0x00001666,0xFFFFFB8A,0x000002B2,0x00001666,0xFFFFFB8A,0x000002B2},
-       {"0000001000010011111010101001010011011110000000100011100010100100",0x00002A5F,0xFFFFEFA7,0x00000430,0x00001943,0xFFFFF8C6,0x000002F7,0x00001943,0xFFFFF8C6,0x000002F7},
-       {"0000001000010011111010101001010011011110000101100101000011100100",0x0000235E,0xFFFFF3B4,0x000003B3,0x00001489,0xFFFFFBCF,0x0000029B,0x00001489,0xFFFFFBCF,0x0000029B},
-       {"0000001000010011111100001111110101000010110011000011100010100100",0x00003570,0xFFFFE780,0x0000058D,0x00001B1D,0xFFFFF767,0x00000325,0x00001B1D,0xFFFFF767,0x00000325},
-       {"0000001000010011111010101001010011011110000001000010000001100100",0x00003678,0xFFFFE7C3,0x00000569,0x00001831,0xFFFFF98E,0x000002C8,0x00001831,0xFFFFF98E,0x000002C8},
-       {"0000001000010011111010101001010011011110001000000001100001100100",0x000020B9,0xFFFFF625,0x0000035A,0x000015C5,0xFFFFFB8A,0x000002B5,0x000015C5,0xFFFFFB8A,0x000002B5},
-       {"0000001000010011111100001111110101000010110001100011000110000100",0x00003985,0xFFFFE529,0x000005DD,0x00002165,0xFFFFF351,0x000003C5,0x00002165,0xFFFFF351,0x000003C5},
-       {"0000001000010011111100001111110101000010110100000010000001100100",0x0000322A,0xFFFFE99D,0x00000535,0x000019A1,0xFFFFF844,0x00000305,0x000019A1,0xFFFFF844,0x00000305},
-       {"0000001000010011111100001111110101000010110100000101000100000100",0x000033ED,0xFFFFE834,0x00000571,0x00002094,0xFFFFF33A,0x000003DB,0x00002094,0xFFFFF33A,0x000003DB},
-       {"0000001000010011111010101001010011011110001000000100000011000100",0x00001D10,0xFFFFF84D,0x0000030B,0x00001659,0xFFFFFB0A,0x000002CB,0x00001659,0xFFFFFB0A,0x000002CB},
-       {"0000001000010011111010101001010011011110000111000001000100100100",0x0000210F,0xFFFFF644,0x00000355,0x00001A4A,0xFFFFF90F,0x00000310,0x00001A4A,0xFFFFF90F,0x00000310},
-       {"0000001000010011111010101001010011011110000101100100000101100100",0x00001CA8,0xFFFFF813,0x00000316,0x00001440,0xFFFFFC1C,0x0000029D,0x00001440,0xFFFFFC1C,0x0000029D},
-       {"0000001000010011111010101001010011011110001100100001000011000100",0x00002864,0xFFFFF15A,0x000003FA,0x0000137F,0xFFFFFD43,0x00000248,0x0000137F,0xFFFFFD43,0x00000248},
-       {"0000001000010011111100001111110101000010110100000100000110000100",0x00002CDB,0xFFFFECFD,0x000004A7,0x00002472,0xFFFFF0E1,0x00000437,0x00002472,0xFFFFF0E1,0x00000437},
-       {"0000001000010011111100001111110101000010110011000101000100000100",0x00003348,0xFFFFE8CA,0x00000554,0x00001E91,0xFFFFF4D4,0x00000392,0x00001E91,0xFFFFF4D4,0x00000392},
-       {"0000001000010011111100001111110101000010110001100100100101000100",0x00003989,0xFFFFE4BB,0x000005F8,0x00001ACB,0xFFFFF780,0x00000319,0x00001ACB,0xFFFFF780,0x00000319},
-       {"0000001000010011111100001111110101000010110010100010000100000100",0x00003238,0xFFFFEA09,0x0000051E,0x00001F08,0xFFFFF4F4,0x0000038C,0x00001F08,0xFFFFF4F4,0x0000038C},
-       {"0000001000010011111010101001010011011110000100100000100100000100",0x00002453,0xFFFFF3B0,0x0000038D,0x00001AED,0xFFFFF8A2,0x000002EA,0x00001AED,0xFFFFF8A2,0x000002EA},
-       {"0000001000010011111010101001010011011110000111000011000000100100",0x00002459,0xFFFFF409,0x000003A8,0x000017B5,0xFFFFFA53,0x000002E1,0x000017B5,0xFFFFFA53,0x000002E1},
-       {"0000001000010011111010101001010011011110000000100001000110000100",0x0000310D,0xFFFFEB78,0x000004D0,0x00001DC9,0xFFFFF5D5,0x00000368,0x00001DC9,0xFFFFF5D5,0x00000368},
-       {"0000001000010011111010101001010011011110000000100011000100000100",0x000031BF,0xFFFFECA3,0x00000498,0x00001DC9,0xFFFFF717,0x00000336,0x00001DC9,0xFFFFF717,0x00000336},
-       {"0000001000010011111100001111110101000010110011100010000100000100",0x00003896,0xFFFFE5DD,0x000005C5,0x000023E2,0xFFFFF1A1,0x00000416,0x000023E2,0xFFFFF1A1,0x00000416},
-       {"0000001000010011111010101001010011011110001100100011100100000100",0x000023CB,0xFFFFF4C8,0x00000372,0x00001C33,0xFFFFF7D5,0x0000032A,0x00001C33,0xFFFFF7D5,0x0000032A},
-       {"0000001000010011111100001111110101000010110100000010000011000100",0x00002F6B,0xFFFFEBF0,0x000004CE,0x00001C89,0xFFFFF689,0x0000034D,0x00001C89,0xFFFFF689,0x0000034D},
-       {"0000001000010011111100001111110101000010110011100011100100000100",0x00003E72,0xFFFFE211,0x0000065D,0x0000218D,0xFFFFF309,0x000003DC,0x0000218D,0xFFFFF309,0x000003DC},
-       {"0000001000010011111010101001010011011110000000100010000010000100",0x00002612,0xFFFFF2C3,0x000003AD,0x000019F7,0xFFFFF891,0x000002FE,0x000019F7,0xFFFFF891,0x000002FE},
-       {"0000001000010011111010101001010011011110000101100100000110000100",0x0000205D,0xFFFFF59F,0x00000372,0x000012E6,0xFFFFFD0A,0x00000270,0x000012E6,0xFFFFFD0A,0x00000270},
-       {"0000001000010011111100001111110101000010110010100010000100100100",0x00002ECB,0xFFFFEC47,0x000004BD,0x00001936,0xFFFFF8D9,0x000002E4,0x00001936,0xFFFFF8D9,0x000002E4},
-       {"0000001000010011111010101001010011011110000001100100100100000100",0x00002BDB,0xFFFFEE6D,0x00000458,0x00001852,0xFFFFF943,0x000002D9,0x00001852,0xFFFFF943,0x000002D9},
-       {"0000001000010011111010101001010011011110000100100100100100000100",0x00003387,0xFFFFE958,0x00000534,0x00001932,0xFFFFF8FA,0x000002E4,0x00001932,0xFFFFF8FA,0x000002E4},
-       {"0000001000010011111010101001010011011110000000100000100011000100",0x00002E3C,0xFFFFED26,0x00000495,0x00001858,0xFFFFF990,0x000002D1,0x00001858,0xFFFFF990,0x000002D1},
-       {"0000001000010011111010101001010011011110000000100010100101100100",0x000033B8,0xFFFFEA5C,0x000004F9,0x00001BD1,0xFFFFF76A,0x0000032E,0x00001BD1,0xFFFFF76A,0x0000032E},
-       {"0000001000010011111010101001010011011110000001100010100110000100",0x00002BCE,0xFFFFEEE9,0x00000443,0x00001982,0xFFFFF90D,0x000002DF,0x00001982,0xFFFFF90D,0x000002DF},
-       {"0000001000010011111100001111110101000010110100000100100011100100",0x00003495,0xFFFFE7D9,0x0000057B,0x00001D2A,0xFFFFF5A5,0x00000372,0x00001D2A,0xFFFFF5A5,0x00000372},
-       {"0000001000010011111100001111110101000010110010100011100011100100",0x000034B1,0xFFFFE88D,0x00000556,0x00002014,0xFFFFF43A,0x000003AA,0x00002014,0xFFFFF43A,0x000003AA},
-       {"0000001000010011111100001111110101000010110011000011000100100100",0x00002F96,0xFFFFEC84,0x000004AD,0x000024A2,0xFFFFF1CE,0x0000040A,0x000024A2,0xFFFFF1CE,0x0000040A},
-       {"0000001000010011111010101001010011011110000101100001000001100100",0x0000203B,0xFFFFF640,0x00000359,0x000014EC,0xFFFFFC14,0x0000029C,0x000014EC,0xFFFFFC14,0x0000029C},
-       {"0000001000010011111100001111110101000010110100000010100110000100",0x000034E2,0xFFFFE7B8,0x00000582,0x00001938,0xFFFFF872,0x000002FA,0x00001938,0xFFFFF872,0x000002FA},
-       {"0000001000010011111010101001010011011110000001100011000100100100",0x00002AC7,0xFFFFF0C1,0x000003F5,0x00002268,0xFFFFF39C,0x000003C9,0x00002268,0xFFFFF39C,0x000003C9},
-       {"0000001000010011111100001111110101000010110001100011000101000100",0x000036F6,0xFFFFE77F,0x00000571,0x000027D9,0xFFFFEF6F,0x00000461,0x000027D9,0xFFFFEF6F,0x00000461},
-       {"0000001000010011111010101001010011011110000100100011000100100100",0x00002BAB,0xFFFFF018,0x00000419,0x00002126,0xFFFFF4E2,0x0000038F,0x00002126,0xFFFFF4E2,0x0000038F},
-       {"0000001000010011111010101001010011011110001100100011100100100100",0x000028C4,0xFFFFF161,0x000003F8,0x0000180C,0xFFFFFA4B,0x000002C8,0x0000180C,0xFFFFFA4B,0x000002C8},
-       {"0000001000010011111100001111110101000010110010100010100001100100",0x00002F48,0xFFFFEB62,0x000004EE,0x00001912,0xFFFFF8C8,0x000002EA,0x00001912,0xFFFFF8C8,0x000002EA},
-       {"0000001000010011111100001111110101000010110011100010100001100100",0x000032DF,0xFFFFE911,0x00000545,0x00001F06,0xFFFFF485,0x0000039C,0x00001F06,0xFFFFF485,0x0000039C},
-       {"0000001000010011111100001111110101000010110100000100000101000100",0x000035B8,0xFFFFE74F,0x00000590,0x00001FD7,0xFFFFF410,0x000003AF,0x00001FD7,0xFFFFF410,0x000003AF},
-       {"0000001000010011111100001111110101000010110100000101000011000100",0x00003608,0xFFFFE6D7,0x000005A9,0x000024A6,0xFFFFF075,0x00000450,0x000024A6,0xFFFFF075,0x00000450},
-       {"0000001000010011111100001111110101000010110010100011100010000100",0x000030AB,0xFFFFEAED,0x000004F5,0x000019EE,0xFFFFF84E,0x000002FC,0x000019EE,0xFFFFF84E,0x000002FC},
-       {"0000001000010011111010101001010011011110000001100010000011000100",0x000030C6,0xFFFFEC92,0x0000049E,0x000019BB,0xFFFFF8F1,0x000002F3,0x000019BB,0xFFFFF8F1,0x000002F3},
-       {"0000001000010011111100001111110101000010110001100011000010100100",0x00003B27,0xFFFFE544,0x000005C1,0x00002697,0xFFFFF072,0x00000438,0x00002697,0xFFFFF072,0x00000438},
-       {"0000001000010011111010101001010011011110000100100100100011100100",0x00002F23,0xFFFFEC48,0x000004B9,0x0000199A,0xFFFFF8CF,0x000002E9,0x0000199A,0xFFFFF8CF,0x000002E9},
-       {"0000001000010011111010101001010011011110000001100010100110100100",0x00002BD7,0xFFFFEEAC,0x00000450,0x00001991,0xFFFFF8F4,0x000002E2,0x00001991,0xFFFFF8F4,0x000002E2},
-       {"0000001000010011111010101001010011011110000000100010000000100100",0x00003210,0xFFFFEB24,0x000004DE,0x00001BDF,0xFFFFF744,0x00000333,0x00001BDF,0xFFFFF744,0x00000333},
-       {"0000001000010011111010101001010011011110001001000100000101000100",0x00002DDC,0xFFFFED0D,0x000004AC,0x000019D0,0xFFFFF869,0x0000030F,0x000019D0,0xFFFFF869,0x0000030F},
-       {"0000001000010011111010101001010011011110001000000011100101100100",0x000023E6,0xFFFFF40C,0x000003A9,0x000014EB,0xFFFFFBC4,0x000002AF,0x000014EB,0xFFFFFBC4,0x000002AF},
-       {"0000001000010011111100001111110101000010110010100010100110100100",0x000030CE,0xFFFFE9A5,0x0000053C,0x00001C45,0xFFFFF60E,0x0000035D,0x00001C45,0xFFFFF60E,0x0000035D},
-       {"0000001000010011111010101001010011011110000101100001000010000100",0x00001E89,0xFFFFF73A,0x00000337,0x0000157C,0xFFFFFBC0,0x000002AA,0x0000157C,0xFFFFFBC0,0x000002AA},
-       {"0000001000010011111100001111110101000010110100000100000100100100",0x000036C6,0xFFFFE6CF,0x000005A1,0x00002457,0xFFFFF11D,0x0000042D,0x00002457,0xFFFFF11D,0x0000042D},
-       {"0000001000010011111010101001010011011110001100100001100101000100",0x00002815,0xFFFFF19A,0x000003F2,0x000016D2,0xFFFFFB40,0x00000299,0x000016D2,0xFFFFFB40,0x00000299},
-       {"0000001000010011111010101001010011011110000111000001100110100100",0x00001FE2,0xFFFFF660,0x00000354,0x000015A7,0xFFFFFB47,0x000002C1,0x000015A7,0xFFFFFB47,0x000002C1},
-       {"0000001000010011111010101001010011011110000101100001100101100100",0x00002114,0xFFFFF634,0x00000356,0x000016C1,0xFFFFFB43,0x000002B8,0x000016C1,0xFFFFFB43,0x000002B8},
-       {"0000001000010011111100001111110101000010110011000010100011000100",0x000028E3,0xFFFFF075,0x00000414,0x0000203C,0xFFFFF438,0x000003B3,0x0000203C,0xFFFFF438,0x000003B3},
-       {"0000001000010011111010101001010011011110000111000011100100100100",0x00001EEB,0xFFFFF7BB,0x0000031A,0x00001580,0xFFFFFBD7,0x000002AD,0x00001580,0xFFFFFBD7,0x000002AD},
-       {"0000001000010011111010101001010011011110001001000000100011000100",0x00002BB2,0xFFFFEE72,0x00000470,0x0000192C,0xFFFFF91E,0x000002E7,0x0000192C,0xFFFFF91E,0x000002E7},
-       {"0000001000010011111010101001010011011110000001100101000011100100",0x00003A3D,0xFFFFE49D,0x000005F5,0x00001A3B,0xFFFFF7B1,0x00000320,0x00001A3B,0xFFFFF7B1,0x00000320},
-       {"0000001000010011111100001111110101000010110011100011000101100100",0x00002E93,0xFFFFEC5A,0x000004B4,0x000025EB,0xFFFFF03C,0x0000044A,0x000025EB,0xFFFFF03C,0x0000044A},
-       {"0000001000010011111100001111110101000010110010100010000011000100",0x0000331F,0xFFFFE97A,0x00000531,0x00001A06,0xFFFFF850,0x000002FD,0x00001A06,0xFFFFF850,0x000002FD},
-       {"0000001000010011111100001111110101000010110001100011100101100100",0x00003937,0xFFFFE5A0,0x000005C7,0x0000235E,0xFFFFF234,0x000003F2,0x0000235E,0xFFFFF234,0x000003F2},
-       {"0000001000010011111010101001010011011110000111100011100100100100",0x00001DD0,0xFFFFF80E,0x00000319,0x000015C7,0xFFFFFB91,0x000002BC,0x000015C7,0xFFFFFB91,0x000002BC},
-       {"0000001000010011111100001111110101000010110100000011100101100100",0x00003328,0xFFFFE905,0x0000054A,0x00002054,0xFFFFF3BF,0x000003C0,0x00002054,0xFFFFF3BF,0x000003C0},
-       {"0000001000010011111100001111110101000010110011000001000100000100",0x00002FE5,0xFFFFEA65,0x00000520,0x0000188B,0xFFFFF8A7,0x000002F5,0x0000188B,0xFFFFF8A7,0x000002F5},
-       {"0000001000010011111100001111110101000010110010100011100010100100",0x00002ED3,0xFFFFEC51,0x000004B9,0x00001888,0xFFFFF96A,0x000002CA,0x00001888,0xFFFFF96A,0x000002CA},
-       {"0000001000010011111100001111110101000010110100000011000010000100",0x00002FCC,0xFFFFEB60,0x000004EA,0x00001F8D,0xFFFFF436,0x000003B4,0x00001F8D,0xFFFFF436,0x000003B4},
-       {"0000001000010011111100001111110101000010110011100100000010000100",0x0000329F,0xFFFFE8F7,0x0000054F,0x000023DB,0xFFFFF0EE,0x0000043A,0x000023DB,0xFFFFF0EE,0x0000043A},
-       {"0000001000010011111010101001010011011110000001000011100010100100",0x000030B5,0xFFFFEBB8,0x000004C4,0x00001AFD,0xFFFFF781,0x00000329,0x00001AFD,0xFFFFF781,0x00000329},
-       {"0000001000010011111010101001010011011110000111100001100110100100",0x00001BBF,0xFFFFF8E2,0x000002F7,0x00001722,0xFFFFFA85,0x000002DB,0x00001722,0xFFFFFA85,0x000002DB},
-       {"0000001000010011111010101001010011011110000000100010000001000100",0x000030E4,0xFFFFEBE6,0x000004BB,0x00001C80,0xFFFFF6E1,0x0000033E,0x00001C80,0xFFFFF6E1,0x0000033E},
-       {"0000001000010011111010101001010011011110000100100010100101000100",0x000030E2,0xFFFFECD0,0x00000492,0x00001CE0,0xFFFFF753,0x0000032F,0x00001CE0,0xFFFFF753,0x0000032F},
-       {"0000001000010011111010101001010011011110001100100010100001100100",0x00002513,0xFFFFF323,0x000003BC,0x00001965,0xFFFFF93C,0x000002F0,0x00001965,0xFFFFF93C,0x000002F0},
-       {"0000001000010011111010101001010011011110000101100001000010100100",0x00002147,0xFFFFF585,0x0000037A,0x000014CC,0xFFFFFC3B,0x00000296,0x000014CC,0xFFFFFC3B,0x00000296},
-       {"0000001000010011111010101001010011011110001100100010000100100100",0x00002507,0xFFFFF432,0x0000038A,0x00001890,0xFFFFFA61,0x000002C6,0x00001890,0xFFFFFA61,0x000002C6},
-       {"0000001000010011111010101001010011011110000001100011100010100100",0x0000339B,0xFFFFEA7D,0x000004F0,0x0000191E,0xFFFFF944,0x000002DF,0x0000191E,0xFFFFF944,0x000002DF},
-       {"0000001000010011111100001111110101000010110011000010100010100100",0x00002842,0xFFFFF043,0x00000427,0x00001988,0xFFFFF892,0x000002F7,0x00001988,0xFFFFF892,0x000002F7},
-       {"0000001000010011111100001111110101000010110001100001100010100100",0x0000389D,0xFFFFE5D8,0x000005BF,0x00001EE1,0xFFFFF4EF,0x00000387,0x00001EE1,0xFFFFF4EF,0x00000387},
-       {"0000001000010011111100001111110101000010110011100011000110000100",0x0000396D,0xFFFFE4D7,0x000005F2,0x000020DA,0xFFFFF34E,0x000003CD,0x000020DA,0xFFFFF34E,0x000003CD},
-       {"0000001000010011111100001111110101000010110010100011000100000100",0x0000355F,0xFFFFE85A,0x0000055F,0x0000281F,0xFFFFEF28,0x0000047D,0x0000281F,0xFFFFEF28,0x0000047D},
-       {"0000001000010011111010101001010011011110000111000101000011100100",0x00002284,0xFFFFF46E,0x00000399,0x00001498,0xFFFFFBE3,0x0000029C,0x00001498,0xFFFFFBE3,0x0000029C},
-       {"0000001000010011111010101001010011011110000000100011100101000100",0x000031B6,0xFFFFEB42,0x000004D9,0x00001F54,0xFFFFF4D2,0x00000399,0x00001F54,0xFFFFF4D2,0x00000399},
-       {"0000001000010011111100001111110101000010110001100011000001100100",0x000035CE,0xFFFFE79D,0x00000578,0x00001C78,0xFFFFF68C,0x00000344,0x00001C78,0xFFFFF68C,0x00000344},
-       {"0000001000010011111010101001010011011110000111100100100101100100",0x00001C0A,0xFFFFF81B,0x00000318,0x00001492,0xFFFFFBCC,0x000002A5,0x00001492,0xFFFFFBCC,0x000002A5},
-       {"0000001000010011111010101001010011011110000000100010000110000100",0x00003492,0xFFFFE95C,0x00000526,0x00001A97,0xFFFFF81B,0x0000030B,0x00001A97,0xFFFFF81B,0x0000030B},
-       {"0000001000010011111010101001010011011110000101100011000101100100",0x00001E89,0xFFFFF7D0,0x0000031A,0x000017A5,0xFFFFFA99,0x000002D9,0x000017A5,0xFFFFFA99,0x000002D9},
-       {"0000001000010011111100001111110101000010110010100100100011000100",0x00002DCC,0xFFFFEBE0,0x000004DE,0x000019BA,0xFFFFF7F5,0x0000030D,0x000019BA,0xFFFFF7F5,0x0000030D},
-       {"0000001000010011111010101001010011011110000001000010100110000100",0x000030EF,0xFFFFEBC1,0x000004C0,0x00001AA9,0xFFFFF814,0x0000030A,0x00001AA9,0xFFFFF814,0x0000030A},
-       {"0000001000010011111010101001010011011110001001000101000100100100",0x00002EA3,0xFFFFEBF6,0x000004D8,0x00001DCF,0xFFFFF521,0x00000399,0x00001DCF,0xFFFFF521,0x00000399},
-       {"0000001000010011111010101001010011011110001100100100000101100100",0x00002B5F,0xFFFFEEA1,0x0000046C,0x000017EB,0xFFFFF9C9,0x000002D4,0x000017EB,0xFFFFF9C9,0x000002D4},
-       {"0000001000010011111010101001010011011110000000100100000100000100",0x00002C63,0xFFFFEE82,0x00000455,0x00002268,0xFFFFF29D,0x000003F6,0x00002268,0xFFFFF29D,0x000003F6},
-       {"0000001000010011111010101001010011011110000100100001100100000100",0x00002B1A,0xFFFFF016,0x0000041C,0x000019AA,0xFFFFF988,0x000002D2,0x000019AA,0xFFFFF988,0x000002D2},
-       {"0000001000010011111100001111110101000010110010100010100101100100",0x0000332F,0xFFFFE934,0x0000053B,0x00001E47,0xFFFFF566,0x00000374,0x00001E47,0xFFFFF566,0x00000374},
-       {"0000001000010011111100001111110101000010110010100100100011100100",0x00002995,0xFFFFEEC1,0x00000465,0x0000178F,0xFFFFF995,0x000002C5,0x0000178F,0xFFFFF995,0x000002C5},
-       {"0000001000010011111010101001010011011110001000000001100010000100",0x00001C2E,0xFFFFF932,0x000002E9,0x000015C2,0xFFFFFBC5,0x000002AD,0x000015C2,0xFFFFFBC5,0x000002AD},
-       {"0000001000010011111100001111110101000010110001100100000011100100",0x00003B08,0xFFFFE4E8,0x000005D8,0x0000209D,0xFFFFF444,0x00000398,0x0000209D,0xFFFFF444,0x00000398},
-       {"0000001000010011111010101001010011011110000001000101000011100100",0x00002F1F,0xFFFFEB74,0x000004EB,0x00001F4C,0xFFFFF3D4,0x000003CE,0x00001F4C,0xFFFFF3D4,0x000003CE},
-       {"0000001000010011111010101001010011011110000001000011100010000100",0x00003415,0xFFFFE89F,0x00000553,0x0000186B,0xFFFFF8E1,0x000002EF,0x0000186B,0xFFFFF8E1,0x000002EF},
-       {"0000001000010011111100001111110101000010110011000001000011000100",0x00003441,0xFFFFE779,0x0000059D,0x000019EA,0xFFFFF7B2,0x0000031F,0x000019EA,0xFFFFF7B2,0x0000031F},
-       {"0000001000010011111010101001010011011110000101100100000001100100",0x00002174,0xFFFFF546,0x00000378,0x00001456,0xFFFFFC5F,0x00000284,0x00001456,0xFFFFFC5F,0x00000284},
-       {"0000001000010011111100001111110101000010110011100100000011000100",0x00003788,0xFFFFE61E,0x000005BF,0x00001DF4,0xFFFFF562,0x00000374,0x00001DF4,0xFFFFF562,0x00000374},
-       {"0000001000010011111010101001010011011110000111100001100001000100",0x00001C41,0xFFFFF8C1,0x000002FC,0x0000171E,0xFFFFFA93,0x000002DE,0x0000171E,0xFFFFFA93,0x000002DE},
-       {"0000001000010011111100001111110101000010110010100011100001100100",0x00002B15,0xFFFFEDEC,0x00000487,0x000017E4,0xFFFFF934,0x000002DF,0x000017E4,0xFFFFF934,0x000002DF},
-       {"0000001000010011111100001111110101000010110011000011000101000100",0x0000327A,0xFFFFEA71,0x000004FF,0x00001D96,0xFFFFF63B,0x00000351,0x00001D96,0xFFFFF63B,0x00000351},
-       {"0000001000010011111010101001010011011110000111100100000001100100",0x000023C6,0xFFFFF3E5,0x000003B6,0x000014DE,0xFFFFFC29,0x00000294,0x000014DE,0xFFFFFC29,0x00000294},
-       {"0000001000010011111010101001010011011110000101100100100101000100",0x00001F96,0xFFFFF5FA,0x00000364,0x00001397,0xFFFFFC9D,0x0000027D,0x00001397,0xFFFFFC9D,0x0000027D},
-       {"0000001000010011111010101001010011011110000001100011000101000100",0x00002B51,0xFFFFEFB5,0x00000420,0x00001ACA,0xFFFFF824,0x0000030D,0x00001ACA,0xFFFFF824,0x0000030D},
-       {"0000001000010011111010101001010011011110000111100100100101000100",0x000020DB,0xFFFFF55B,0x0000037C,0x0000153D,0xFFFFFB5F,0x000002BA,0x0000153D,0xFFFFFB5F,0x000002BA},
-       {"0000001000010011111010101001010011011110000000100010000110100100",0x000030BB,0xFFFFEBDA,0x000004BC,0x00001B0E,0xFFFFF7A8,0x0000031E,0x00001B0E,0xFFFFF7A8,0x0000031E},
-       {"0000001000010011111100001111110101000010110001100010100100000100",0x000033C4,0xFFFFEA41,0x000004FA,0x000022C6,0xFFFFF363,0x000003BC,0x000022C6,0xFFFFF363,0x000003BC},
-       {"0000001000010011111010101001010011011110001001000000100100100100",0x00002D47,0xFFFFEE01,0x00000477,0x000021CD,0xFFFFF36E,0x000003D6,0x000021CD,0xFFFFF36E,0x000003D6},
-       {"0000001000010011111010101001010011011110000111100011000110100100",0x00001E7B,0xFFFFF733,0x00000339,0x00001668,0xFFFFFB29,0x000002BF,0x00001668,0xFFFFFB29,0x000002BF},
-       {"0000001000010011111100001111110101000010110010100010100110000100",0x00002F7E,0xFFFFEAFF,0x000004FC,0x000018D4,0xFFFFF8BE,0x000002E8,0x000018D4,0xFFFFF8BE,0x000002E8},
-       {"0000001000010011111010101001010011011110001100100011100010100100",0x00002635,0xFFFFF2E1,0x000003BC,0x000017A4,0xFFFFFA67,0x000002C3,0x000017A4,0xFFFFFA67,0x000002C3},
-       {"0000001000010011111010101001010011011110000100100011000010100100",0x000026CA,0xFFFFF2C1,0x000003B2,0x00001C3E,0xFFFFF7AE,0x0000031F,0x00001C3E,0xFFFFF7AE,0x0000031F},
-       {"0000001000010011111010101001010011011110000111000001000001100100",0x00002550,0xFFFFF380,0x000003B5,0x000019F5,0xFFFFF8E7,0x00000313,0x000019F5,0xFFFFF8E7,0x00000313},
-       {"0000001000010011111100001111110101000010110010100100100100000100",0x00002FBC,0xFFFFEAF8,0x000004FA,0x000018CC,0xFFFFF8C6,0x000002E8,0x000018CC,0xFFFFF8C6,0x000002E8},
-       {"0000001000010011111100001111110101000010110100000001100011100100",0x00002FCC,0xFFFFEB60,0x000004EA,0x00001EFF,0xFFFFF4DA,0x0000038F,0x00001EFF,0xFFFFF4DA,0x0000038F},
-       {"0000001000010011111010101001010011011110000101100100000010000100",0x000023E6,0xFFFFF413,0x000003A1,0x00001544,0xFFFFFC16,0x0000028B,0x00001544,0xFFFFFC16,0x0000028B},
-       {"0000001000010011111100001111110101000010110011100011000000100100",0x00003251,0xFFFFEAA2,0x000004F5,0x000025B0,0xFFFFF0DF,0x00000431,0x000025B0,0xFFFFF0DF,0x00000431},
-       {"0000001000010011111100001111110101000010110100000011100110000100",0x00002F6F,0xFFFFEB67,0x000004E6,0x00002275,0xFFFFF249,0x000003FB,0x00002275,0xFFFFF249,0x000003FB},
-       {"0000001000010011111010101001010011011110001100100010100101100100",0x00002597,0xFFFFF34A,0x000003B1,0x00001BCC,0xFFFFF822,0x0000031A,0x00001BCC,0xFFFFF822,0x0000031A},
-       {"0000001000010011111100001111110101000010110001100011100001100100",0x00003B1D,0xFFFFE40E,0x0000060D,0x00001F61,0xFFFFF470,0x0000039F,0x00001F61,0xFFFFF470,0x0000039F},
-       {"0000001000010011111100001111110101000010110001100100000101000100",0x0000379F,0xFFFFE6DB,0x0000058C,0x00002460,0xFFFFF170,0x00000415,0x00002460,0xFFFFF170,0x00000415},
-       {"0000001000010011111010101001010011011110000101100101000101000100",0x00002442,0xFFFFF2FB,0x000003D9,0x00001414,0xFFFFFBDC,0x000002A2,0x00001414,0xFFFFFBDC,0x000002A2},
-       {"0000001000010011111010101001010011011110000000100100000011000100",0x00003270,0xFFFFEA0D,0x0000051C,0x00001AFD,0xFFFFF783,0x00000328,0x00001AFD,0xFFFFF783,0x00000328},
-       {"0000001000010011111010101001010011011110000101100001000100000100",0x00001B23,0xFFFFF94B,0x000002EB,0x000015F1,0xFFFFFB82,0x000002B4,0x000015F1,0xFFFFFB82,0x000002B4},
-       {"0000001000010011111010101001010011011110001100100011100001000100",0x000026AE,0xFFFFF21A,0x000003DB,0x00001827,0xFFFFFA10,0x000002C8,0x00001827,0xFFFFFA10,0x000002C8},
-       {"0000001000010011111100001111110101000010110010100100100010000100",0x00002DCF,0xFFFFEBD8,0x000004DB,0x00001A75,0xFFFFF719,0x0000033A,0x00001A75,0xFFFFF719,0x0000033A},
-       {"0000001000010011111100001111110101000010110011100100000011100100",0x00003983,0xFFFFE500,0x000005EA,0x000022A6,0xFFFFF25F,0x000003F1,0x000022A6,0xFFFFF25F,0x000003F1},
-       {"0000001000010011111010101001010011011110000100100001100011000100",0x00002AD5,0xFFFFF07A,0x00000406,0x000019FB,0xFFFFF961,0x000002D8,0x000019FB,0xFFFFF961,0x000002D8},
-       {"0000001000010011111100001111110101000010110010100011100110100100",0x00002A43,0xFFFFEE43,0x00000474,0x00001D65,0xFFFFF538,0x00000387,0x00001D65,0xFFFFF538,0x00000387},
-       {"0000001000010011111100001111110101000010110001100010000010000100",0x0000311E,0xFFFFEAF8,0x000004E8,0x00001959,0xFFFFF8E4,0x000002DC,0x00001959,0xFFFFF8E4,0x000002DC},
-       {"0000001000010011111100001111110101000010110100000011000110100100",0x0000339A,0xFFFFE8A7,0x00000559,0x00001A04,0xFFFFF7E5,0x00000311,0x00001A04,0xFFFFF7E5,0x00000311},
-       {"0000001000010011111010101001010011011110001000000100000101000100",0x000021B3,0xFFFFF50F,0x00000389,0x00001470,0xFFFFFBF7,0x000002A5,0x00001470,0xFFFFFBF7,0x000002A5},
-       {"0000001000010011111010101001010011011110000000100001100010000100",0x00003417,0xFFFFE9A6,0x0000051D,0x000018A4,0xFFFFF984,0x000002CF,0x000018A4,0xFFFFF984,0x000002CF},
-       {"0000001000010011111010101001010011011110001000000010100110000100",0x00001FED,0xFFFFF6A2,0x00000347,0x00001639,0xFFFFFB59,0x000002BB,0x00001639,0xFFFFFB59,0x000002BB},
-       {"0000001000010011111010101001010011011110000100100001100010100100",0x000032D2,0xFFFFEB18,0x000004DC,0x00001A01,0xFFFFF95E,0x000002CF,0x00001A01,0xFFFFF95E,0x000002CF},
-       {"0000001000010011111100001111110101000010110100000100000010000100",0x00003147,0xFFFFEA3B,0x00000518,0x0000241D,0xFFFFF11C,0x00000431,0x0000241D,0xFFFFF11C,0x00000431},
-       {"0000001000010011111010101001010011011110000111000000100100000100",0x00001D44,0xFFFFF7E7,0x0000031A,0x0000153F,0xFFFFFBBC,0x000002A9,0x0000153F,0xFFFFFBBC,0x000002A9},
-       {"0000001000010011111100001111110101000010110011000100000100000100",0x00003690,0xFFFFE6E3,0x000005A4,0x000018DE,0xFFFFF908,0x000002DD,0x000018DE,0xFFFFF908,0x000002DD},
-       {"0000001000010011111100001111110101000010110011000010000110000100",0x00003561,0xFFFFE6F8,0x000005AB,0x000018B5,0xFFFFF8A0,0x000002F3,0x000018B5,0xFFFFF8A0,0x000002F3},
-       {"0000001000010011111010101001010011011110001100100011000100100100",0x000028F4,0xFFFFF23A,0x000003CE,0x00001BC6,0xFFFFF881,0x00000311,0x00001BC6,0xFFFFF881,0x00000311},
-       {"0000001000010011111100001111110101000010110100000011000110000100",0x000035D7,0xFFFFE71C,0x0000059B,0x00001D49,0xFFFFF5C8,0x00000368,0x00001D49,0xFFFFF5C8,0x00000368},
-       {"0000001000010011111100001111110101000010110011100001100010100100",0x0000397E,0xFFFFE4CB,0x000005F4,0x00001989,0xFFFFF844,0x000002FD,0x00001989,0xFFFFF844,0x000002FD},
-       {"0000001000010011111100001111110101000010110001100010000001100100",0x00003BAB,0xFFFFE332,0x0000063F,0x00001A69,0xFFFFF7B9,0x00000312,0x00001A69,0xFFFFF7B9,0x00000312},
-       {"0000001000010011111100001111110101000010110100000011000001100100",0x00002F26,0xFFFFEB82,0x000004E8,0x00001D7D,0xFFFFF590,0x00000379,0x00001D7D,0xFFFFF590,0x00000379},
-       {"0000001000010011111010101001010011011110000001100011000110100100",0x00002FDC,0xFFFFEBE0,0x000004C3,0x00001940,0xFFFFF8CC,0x000002EE,0x00001940,0xFFFFF8CC,0x000002EE},
-       {"0000001000010011111010101001010011011110000111000000100011100100",0x000021B2,0xFFFFF558,0x00000379,0x00001643,0xFFFFFB1C,0x000002C3,0x00001643,0xFFFFFB1C,0x000002C3},
-       {"0000001000010011111010101001010011011110001100100001100100000100",0x00002897,0xFFFFF181,0x000003F7,0x00001990,0xFFFFF994,0x000002E2,0x00001990,0xFFFFF994,0x000002E2},
-       {"0000001000010011111010101001010011011110000111100000100100100100",0x00001D19,0xFFFFF829,0x0000031A,0x00001558,0xFFFFFBCA,0x000002AF,0x00001558,0xFFFFFBCA,0x000002AF},
-       {"0000001000010011111010101001010011011110000001000011000101000100",0x00003311,0xFFFFEAD9,0x000004E1,0x00001BDC,0xFFFFF79E,0x0000031D,0x00001BDC,0xFFFFF79E,0x0000031D},
-       {"0000001000010011111010101001010011011110000111100010100111000100",0x00001E54,0xFFFFF740,0x00000333,0x000016A1,0xFFFFFAF0,0x000002C4,0x000016A1,0xFFFFFAF0,0x000002C4},
-       {"0000001000010011111100001111110101000010110011100011100101100100",0x00003266,0xFFFFE9A8,0x00000527,0x00002307,0xFFFFF219,0x000003FC,0x00002307,0xFFFFF219,0x000003FC},
-       {"0000001000010011111010101001010011011110001100100001000101000100",0x00001D1F,0xFFFFF82B,0x000002F0,0x000013F0,0xFFFFFD0B,0x0000024E,0x000013F0,0xFFFFFD0B,0x0000024E},
-       {"0000001000010011111100001111110101000010110001100100100010100100",0x0000312E,0xFFFFEA67,0x00000502,0x0000222A,0xFFFFF253,0x000003F9,0x0000222A,0xFFFFF253,0x000003F9},
-       {"0000001000010011111100001111110101000010110010100100000100100100",0x000032B2,0xFFFFE9AD,0x00000523,0x00001E97,0xFFFFF527,0x0000037F,0x00001E97,0xFFFFF527,0x0000037F},
-       {"0000001000010011111010101001010011011110000101100100000011100100",0x00001F6A,0xFFFFF6FC,0x00000338,0x0000164B,0xFFFFFB2C,0x000002C2,0x0000164B,0xFFFFFB2C,0x000002C2},
-       {"0000001000010011111010101001010011011110000000100010100011000100",0x00002603,0xFFFFF386,0x00000392,0x00001EE0,0xFFFFF601,0x00000369,0x00001EE0,0xFFFFF601,0x00000369},
-       {"0000001000010011111010101001010011011110001000000001000101100100",0x00001D0C,0xFFFFF803,0x00000317,0x00001345,0xFFFFFD52,0x00000260,0x00001345,0xFFFFFD52,0x00000260},
-       {"0000001000010011111100001111110101000010110011000001100010000100",0x0000327A,0xFFFFE8E5,0x0000055C,0x00001680,0xFFFFFA2D,0x000002B2,0x00001680,0xFFFFFA2D,0x000002B2},
-       {"0000001000010011111100001111110101000010110010100011100101100100",0x000032B8,0xFFFFE91A,0x0000054A,0x00001BAB,0xFFFFF6EC,0x00000338,0x00001BAB,0xFFFFF6EC,0x00000338},
-       {"0000001000010011111100001111110101000010110011000011000001000100",0x00002F79,0xFFFFEB63,0x000004EF,0x000017BB,0xFFFFF9B1,0x000002CA,0x000017BB,0xFFFFF9B1,0x000002CA},
-       {"0000001000010011111010101001010011011110000001000011100011100100",0x00002AE5,0xFFFFEFCB,0x0000041D,0x0000214A,0xFFFFF3A7,0x000003C7,0x0000214A,0xFFFFF3A7,0x000003C7},
-       {"0000001000010011111010101001010011011110001100100010000001100100",0x0000212C,0xFFFFF5BC,0x0000034F,0x000017ED,0xFFFFFA4C,0x000002C1,0x000017ED,0xFFFFFA4C,0x000002C1},
-       {"0000001000010011111010101001010011011110000100100001000100100100",0x00002BE7,0xFFFFEF40,0x0000043C,0x00001AE2,0xFFFFF8CF,0x000002E3,0x00001AE2,0xFFFFF8CF,0x000002E3},
-       {"0000001000010011111100001111110101000010110100000101000101000100",0x000032DC,0xFFFFE90F,0x00000549,0x00002A2D,0xFFFFECC9,0x000004ED,0x00002A2D,0xFFFFECC9,0x000004ED},
-       {"0000001000010011111010101001010011011110000101100001100010100100",0x00001DE3,0xFFFFF80D,0x00000319,0x000016FA,0xFFFFFB42,0x000002BC,0x000016FA,0xFFFFFB42,0x000002BC},
-       {"0000001000010011111010101001010011011110000111100010100001000100",0x00001F1B,0xFFFFF6DE,0x00000346,0x00001502,0xFFFFFC23,0x00000298,0x00001502,0xFFFFFC23,0x00000298},
-       {"0000001000010011111010101001010011011110000001100001100001100100",0x00003203,0xFFFFEA87,0x000004FE,0x0000194E,0xFFFFF8E3,0x000002EC,0x0000194E,0xFFFFF8E3,0x000002EC},
-       {"0000001000010011111100001111110101000010110100000010000101000100",0x0000337A,0xFFFFE8DD,0x00000551,0x00001E3C,0xFFFFF534,0x00000385,0x00001E3C,0xFFFFF534,0x00000385},
-       {"0000001000010011111100001111110101000010110010100100100001100100",0x000036F6,0xFFFFE62A,0x000005C5,0x000023C0,0xFFFFF117,0x00000435,0x000023C0,0xFFFFF117,0x00000435},
-       {"0000001000010011111100001111110101000010110011000010000101000100",0x00003125,0xFFFFEA4E,0x0000051A,0x00001E6C,0xFFFFF503,0x0000038E,0x00001E6C,0xFFFFF503,0x0000038E},
-       {"0000001000010011111010101001010011011110000111000000100010100100",0x00001CD4,0xFFFFF82D,0x0000030E,0x0000156D,0xFFFFFB64,0x000002B8,0x0000156D,0xFFFFFB64,0x000002B8},
-       {"0000001000010011111010101001010011011110000000100100000010100100",0x00002F14,0xFFFFEC46,0x000004B8,0x000017F1,0xFFFFF977,0x000002D2,0x000017F1,0xFFFFF977,0x000002D2},
-       {"0000001000010011111010101001010011011110000001100100000010100100",0x000031F1,0xFFFFEAD4,0x000004ED,0x0000184C,0xFFFFF983,0x000002D4,0x0000184C,0xFFFFF983,0x000002D4},
-       {"0000001000010011111100001111110101000010110100000100100110000100",0x00002EA9,0xFFFFEBD7,0x000004D5,0x0000288D,0xFFFFEDDB,0x000004C0,0x0000288D,0xFFFFEDDB,0x000004C0},
-       {"0000001000010011111100001111110101000010110010100011100110000100",0x0000335F,0xFFFFE82C,0x00000579,0x00001DBF,0xFFFFF512,0x0000038C,0x00001DBF,0xFFFFF512,0x0000038C},
-       {"0000001000010011111010101001010011011110001000000001000110000100",0x0000224F,0xFFFFF4B5,0x00000391,0x0000138C,0xFFFFFCC3,0x0000027A,0x0000138C,0xFFFFFCC3,0x0000027A},
-       {"0000001000010011111010101001010011011110000100100100000010100100",0x0000320D,0xFFFFEACD,0x000004F5,0x00001976,0xFFFFF913,0x000002E2,0x00001976,0xFFFFF913,0x000002E2},
-       {"0000001000010011111010101001010011011110001000000010000100000100",0x00001BEB,0xFFFFF99C,0x000002E4,0x000016A4,0xFFFFFB77,0x000002C3,0x000016A4,0xFFFFFB77,0x000002C3},
-       {"0000001000010011111010101001010011011110000001100011000001000100",0x0000396E,0xFFFFE616,0x000005A9,0x000018F4,0xFFFFF91A,0x000002E3,0x000018F4,0xFFFFF91A,0x000002E3},
-       {"0000001000010011111010101001010011011110000000100010100001100100",0x00003251,0xFFFFEA8E,0x000004FA,0x000018EF,0xFFFFF910,0x000002E4,0x000018EF,0xFFFFF910,0x000002E4},
-       {"0000001000010011111010101001010011011110000111000001100100100100",0x00001DAF,0xFFFFF857,0x0000030D,0x00001915,0xFFFFF9D8,0x000002F7,0x00001915,0xFFFFF9D8,0x000002F7},
-       {"0000001000010011111010101001010011011110001000000100000110100100",0x000025B6,0xFFFFF26B,0x000003E5,0x00001531,0xFFFFFB68,0x000002AF,0x00001531,0xFFFFFB68,0x000002AF},
-       {"0000001000010011111010101001010011011110000001100001100010000100",0x00002B2E,0xFFFFEF2E,0x00000440,0x00001968,0xFFFFF91A,0x000002DF,0x00001968,0xFFFFF91A,0x000002DF},
-       {"0000001000010011111010101001010011011110000111000010000001100100",0x00002305,0xFFFFF528,0x00000377,0x000018A4,0xFFFFF9EB,0x000002F0,0x000018A4,0xFFFFF9EB,0x000002F0},
-       {"0000001000010011111100001111110101000010110010100100000011000100",0x000032A1,0xFFFFE992,0x0000052E,0x00001A55,0xFFFFF826,0x000002FE,0x00001A55,0xFFFFF826,0x000002FE},
-       {"0000001000010011111010101001010011011110000001000010000110000100",0x00002CCD,0xFFFFEE35,0x00000462,0x00001B09,0xFFFFF7E6,0x0000030F,0x00001B09,0xFFFFF7E6,0x0000030F},
-       {"0000001000010011111010101001010011011110001100100011000010000100",0x00002602,0xFFFFF2CF,0x000003C5,0x000016EE,0xFFFFFAD4,0x000002B4,0x000016EE,0xFFFFFAD4,0x000002B4},
-       {"0000001000010011111100001111110101000010110100000001100101100100",0x00003370,0xFFFFE891,0x00000560,0x000017F0,0xFFFFF930,0x000002DF,0x000017F0,0xFFFFF930,0x000002DF},
-       {"0000001000010011111100001111110101000010110010100001100010000100",0x00002EDC,0xFFFFEB6D,0x000004EC,0x000016E6,0xFFFFF9ED,0x000002BC,0x000016E6,0xFFFFF9ED,0x000002BC},
-       {"0000001000010011111010101001010011011110000100100010100011000100",0x00002A05,0xFFFFF13D,0x000003F0,0x00002065,0xFFFFF57B,0x00000378,0x00002065,0xFFFFF57B,0x00000378},
-       {"0000001000010011111100001111110101000010110011100010000001000100",0x00002F8A,0xFFFFEB6E,0x000004E4,0x00001E3E,0xFFFFF50E,0x0000038D,0x00001E3E,0xFFFFF50E,0x0000038D},
-       {"0000001000010011111100001111110101000010110010100011000001000100",0x00002BB5,0xFFFFED6A,0x000004A1,0x000017BF,0xFFFFF937,0x000002E5,0x000017BF,0xFFFFF937,0x000002E5},
-       {"0000001000010011111010101001010011011110001000000001100101100100",0x0000202C,0xFFFFF6CE,0x0000033F,0x000015EE,0xFFFFFB83,0x000002B9,0x000015EE,0xFFFFFB83,0x000002B9},
-       {"0000001000010011111010101001010011011110000000100010100010000100",0x00002C0C,0xFFFFEF10,0x0000043F,0x00001A73,0xFFFFF83E,0x0000030C,0x00001A73,0xFFFFF83E,0x0000030C},
-       {"0000001000010011111010101001010011011110001100100100000100000100",0x0000234F,0xFFFFF460,0x00000385,0x000018C3,0xFFFFF9A5,0x000002DD,0x000018C3,0xFFFFF9A5,0x000002DD},
-       {"0000001000010011111100001111110101000010110011100001100100000100",0x00003679,0xFFFFE704,0x00000595,0x00002177,0xFFFFF31A,0x000003D7,0x00002177,0xFFFFF31A,0x000003D7},
-       {"0000001000010011111100001111110101000010110010100010100100100100",0x00003008,0xFFFFEBB8,0x000004D5,0x000024FF,0xFFFFF112,0x00000430,0x000024FF,0xFFFFF112,0x00000430},
-       {"0000001000010011111100001111110101000010110001100100000110100100",0x00003848,0xFFFFE6A3,0x00000594,0x00002958,0xFFFFEE37,0x000004A0,0x00002958,0xFFFFEE37,0x000004A0},
-       {"0000001000010011111100001111110101000010110011000001100100100100",0x00002FDF,0xFFFFEB08,0x000004FD,0x00001D77,0xFFFFF58B,0x0000037A,0x00001D77,0xFFFFF58B,0x0000037A},
-       {"0000001000010011111010101001010011011110000001100011000001100100",0x00002EC8,0xFFFFED41,0x00000481,0x00001949,0xFFFFF91C,0x000002DF,0x00001949,0xFFFFF91C,0x000002DF},
-       {"0000001000010011111100001111110101000010110100000100000110100100",0x000037C1,0xFFFFE5BA,0x000005D7,0x0000252C,0xFFFFF023,0x00000460,0x0000252C,0xFFFFF023,0x00000460},
-       {"0000001000010011111100001111110101000010110011100010100101000100",0x00003716,0xFFFFE70C,0x0000058A,0x000028CC,0xFFFFEE57,0x0000049D,0x000028CC,0xFFFFEE57,0x0000049D},
-       {"0000001000010011111100001111110101000010110010100100000011100100",0x000033D1,0xFFFFE8E8,0x00000547,0x00001AB1,0xFFFFF7E5,0x00000309,0x00001AB1,0xFFFFF7E5,0x00000309},
-       {"0000001000010011111100001111110101000010110011000010100101000100",0x00002D72,0xFFFFED65,0x0000048E,0x00001E0D,0xFFFFF5A7,0x00000370,0x00001E0D,0xFFFFF5A7,0x00000370},
-       {"0000001000010011111010101001010011011110000111000011100110100100",0x00002292,0xFFFFF49F,0x00000393,0x000017F4,0xFFFFF9CD,0x000002F5,0x000017F4,0xFFFFF9CD,0x000002F5},
-       {"0000001000010011111010101001010011011110001001000011000001000100",0x000026EE,0xFFFFF18C,0x000003F7,0x000018A7,0xFFFFF95A,0x000002E5,0x000018A7,0xFFFFF95A,0x000002E5},
-       {"0000001000010011111010101001010011011110000001000010000101100100",0x00002F62,0xFFFFEC9B,0x000004A4,0x0000194E,0xFFFFF932,0x000002D9,0x0000194E,0xFFFFF932,0x000002D9},
-       {"0000001000010011111010101001010011011110000111100011100110000100",0x00001CE8,0xFFFFF7FA,0x0000031C,0x000014CE,0xFFFFFBD4,0x000002AB,0x000014CE,0xFFFFFBD4,0x000002AB},
-       {"0000001000010011111010101001010011011110000100100001000011100100",0x00002E5A,0xFFFFEDAB,0x0000047C,0x00001A82,0xFFFFF8F7,0x000002DE,0x00001A82,0xFFFFF8F7,0x000002DE},
-       {"0000001000010011111100001111110101000010110011000011000011100100",0x00003057,0xFFFFEC34,0x000004B9,0x00002296,0xFFFFF342,0x000003D0,0x00002296,0xFFFFF342,0x000003D0},
-       {"0000001000010011111010101001010011011110000001000001100010100100",0x00002B0F,0xFFFFEF58,0x00000434,0x00001BFD,0xFFFFF721,0x00000330,0x00001BFD,0xFFFFF721,0x00000330},
-       {"0000001000010011111010101001010011011110001000000001000010100100",0x00001F01,0xFFFFF751,0x0000032F,0x00001502,0xFFFFFC3E,0x00000296,0x00001502,0xFFFFFC3E,0x00000296},
-       {"0000001000010011111100001111110101000010110010100011000001100100",0x00002FF4,0xFFFFEAE2,0x00000503,0x00001B36,0xFFFFF736,0x00000330,0x00001B36,0xFFFFF736,0x00000330},
-       {"0000001000010011111100001111110101000010110011100010000001100100",0x00003762,0xFFFFE5AB,0x000005DE,0x000018CB,0xFFFFF896,0x000002F4,0x000018CB,0xFFFFF896,0x000002F4},
-       {"0000001000010011111100001111110101000010110011000010000001100100",0x00002890,0xFFFFEF92,0x00000445,0x0000191D,0xFFFFF86F,0x00000302,0x0000191D,0xFFFFF86F,0x00000302},
-       {"0000001000010011111010101001010011011110000001000011000001100100",0x00002F76,0xFFFFEC0E,0x000004BF,0x00001F7D,0xFFFFF41A,0x000003C0,0x00001F7D,0xFFFFF41A,0x000003C0},
-       {"0000001000010011111010101001010011011110000111100000100010100100",0x00001D55,0xFFFFF7F8,0x0000031E,0x000015DF,0xFFFFFB79,0x000002B7,0x000015DF,0xFFFFFB79,0x000002B7},
-       {"0000001000010011111010101001010011011110001000000100100100100100",0x00001FE9,0xFFFFF64A,0x00000353,0x000019E8,0xFFFFF882,0x0000032A,0x000019E8,0xFFFFF882,0x0000032A},
-       {"0000001000010011111010101001010011011110000001100011100101100100",0x000030B5,0xFFFFEBB8,0x000004C4,0x00001857,0xFFFFF968,0x000002D8,0x00001857,0xFFFFF968,0x000002D8},
-       {"0000001000010011111100001111110101000010110010100010100011000100",0x00003398,0xFFFFE9A3,0x00000524,0x00001FF9,0xFFFFF458,0x000003AD,0x00001FF9,0xFFFFF458,0x000003AD},
-       {"0000001000010011111100001111110101000010110011100010100101100100",0x00003897,0xFFFFE5BD,0x000005C8,0x00002519,0xFFFFF0BA,0x00000438,0x00002519,0xFFFFF0BA,0x00000438},
-       {"0000001000010011111100001111110101000010110100000100000001100100",0x00003234,0xFFFFE9B1,0x00000530,0x000022CC,0xFFFFF20E,0x00000409,0x000022CC,0xFFFFF20E,0x00000409},
-       {"0000001000010011111010101001010011011110001000000101000100000100",0x00001FD2,0xFFFFF641,0x00000354,0x000017C9,0xFFFFF9C0,0x000002FB,0x000017C9,0xFFFFF9C0,0x000002FB},
-       {"0000001000010011111100001111110101000010110011100100100011100100",0x00003234,0xFFFFE946,0x0000053D,0x00002267,0xFFFFF1F5,0x0000040D,0x00002267,0xFFFFF1F5,0x0000040D},
-       {"0000001000010011111010101001010011011110001000000010100110100100",0x00002330,0xFFFFF474,0x00000399,0x00001490,0xFFFFFC67,0x00000288,0x00001490,0xFFFFFC67,0x00000288},
-       {"0000001000010011111100001111110101000010110100000011100100100100",0x000032A3,0xFFFFE9EB,0x0000051B,0x0000234D,0xFFFFF23C,0x000003F7,0x0000234D,0xFFFFF23C,0x000003F7},
-       {"0000001000010011111010101001010011011110001000000000100100000100",0x0000217E,0xFFFFF53A,0x00000384,0x00001511,0xFFFFFBF5,0x0000029E,0x00001511,0xFFFFFBF5,0x0000029E},
-       {"0000001000010011111100001111110101000010110011100101000011100100",0x0000384F,0xFFFFE562,0x000005E2,0x0000295A,0xFFFFED53,0x000004D3,0x0000295A,0xFFFFED53,0x000004D3},
-       {"0000001000010011111100001111110101000010110100000101000100100100",0x00003315,0xFFFFE8D1,0x00000552,0x000025D1,0xFFFFEFAF,0x00000471,0x000025D1,0xFFFFEFAF,0x00000471},
-       {"0000001000010011111100001111110101000010110001100100100100100100",0x00004183,0xFFFFDF61,0x000006DA,0x0000193C,0xFFFFF88F,0x000002EC,0x0000193C,0xFFFFF88F,0x000002EC},
-       {"0000001000010011111010101001010011011110001001000010000101100100",0x00002DFC,0xFFFFEDF2,0x0000047A,0x00001755,0xFFFFFAC2,0x000002AC,0x00001755,0xFFFFFAC2,0x000002AC},
-       {"0000001000010011111100001111110101000010110010100011000110100100",0x000033FE,0xFFFFE774,0x0000059F,0x00001E70,0xFFFFF492,0x000003A0,0x00001E70,0xFFFFF492,0x000003A0},
-       {"0000001000010011111100001111110101000010110001100010100110100100",0x000040D7,0xFFFFDFB8,0x000006CE,0x00001AC8,0xFFFFF773,0x0000031D,0x00001AC8,0xFFFFF773,0x0000031D},
-       {"0000001000010011111010101001010011011110000111100001000101100100",0x00001D02,0xFFFFF803,0x00000322,0x000015FE,0xFFFFFB71,0x000002BB,0x000015FE,0xFFFFFB71,0x000002BB},
-       {"0000001000010011111100001111110101000010110100000010100010000100",0x00002EB0,0xFFFFEC31,0x000004C4,0x00001B3C,0xFFFFF73B,0x00000330,0x00001B3C,0xFFFFF73B,0x00000330},
-       {"0000001000010011111100001111110101000010110010100100100110000100",0x00002D9F,0xFFFFECBF,0x000004A8,0x000022B0,0xFFFFF23C,0x000003F9,0x000022B0,0xFFFFF23C,0x000003F9},
-       {"0000001000010011111100001111110101000010110011000001100011100100",0x00002C6A,0xFFFFEDAC,0x00000488,0x00002419,0xFFFFF159,0x00000427,0x00002419,0xFFFFF159,0x00000427},
-       {"0000001000010011111010101001010011011110000100100001000010100100",0x00002991,0xFFFFF06C,0x0000040E,0x00001AA9,0xFFFFF8D0,0x000002E1,0x00001AA9,0xFFFFF8D0,0x000002E1},
-       {"0000001000010011111010101001010011011110000100100011100100000100",0x00002F8E,0xFFFFED1B,0x00000493,0x00001DE4,0xFFFFF69C,0x00000347,0x00001DE4,0xFFFFF69C,0x00000347},
-       {"0000001000010011111010101001010011011110001000000100000110000100",0x00002136,0xFFFFF540,0x0000037C,0x000014FF,0xFFFFFB83,0x000002B2,0x000014FF,0xFFFFFB83,0x000002B2},
-       {"0000001000010011111010101001010011011110000001100001100011100100",0x0000354C,0xFFFFE97D,0x0000051A,0x00001906,0xFFFFF965,0x000002DD,0x00001906,0xFFFFF965,0x000002DD},
-       {"0000001000010011111100001111110101000010110001100010000011000100",0x0000348B,0xFFFFE94D,0x0000051F,0x0000285B,0xFFFFEF1A,0x00000473,0x0000285B,0xFFFFEF1A,0x00000473},
-       {"0000001000010011111010101001010011011110001100100001100010100100",0x000026E6,0xFFFFF24E,0x000003D6,0x0000141F,0xFFFFFCCE,0x00000260,0x0000141F,0xFFFFFCCE,0x00000260},
-       {"0000001000010011111100001111110101000010110001100100000101100100",0x00003CED,0xFFFFE2A5,0x0000064E,0x00002060,0xFFFFF3E0,0x000003B0,0x00002060,0xFFFFF3E0,0x000003B0},
-       {"0000001000010011111010101001010011011110000000100001000010000100",0x000029D4,0xFFFFEFF7,0x00000426,0x00001976,0xFFFFF8E1,0x000002EE,0x00001976,0xFFFFF8E1,0x000002EE},
-       {"0000001000010011111100001111110101000010110010100100000010100100",0x00003767,0xFFFFE601,0x000005CC,0x00001D22,0xFFFFF5F4,0x00000361,0x00001D22,0xFFFFF5F4,0x00000361},
-       {"0000001000010011111100001111110101000010110001100101000011000100",0x00003CE8,0xFFFFE2E8,0x00000637,0x0000232C,0xFFFFF1E7,0x00000405,0x0000232C,0xFFFFF1E7,0x00000405},
-       {"0000001000010011111010101001010011011110001000000001000001100100",0x000023A8,0xFFFFF4CD,0x00000386,0x00001944,0xFFFFF983,0x00000300,0x00001944,0xFFFFF983,0x00000300},
-       {"0000001000010011111100001111110101000010110011000011000010100100",0x00003451,0xFFFFE8B9,0x00000551,0x00001AD7,0xFFFFF7BF,0x00000318,0x00001AD7,0xFFFFF7BF,0x00000318},
-       {"0000001000010011111100001111110101000010110011100010100110000100",0x0000381B,0xFFFFE5A0,0x000005D0,0x00001E0F,0xFFFFF521,0x00000382,0x00001E0F,0xFFFFF521,0x00000382},
-       {"0000001000010011111010101001010011011110001000000011100011000100",0x000023A4,0xFFFFF4A6,0x00000394,0x0000171F,0xFFFFFABB,0x000002D9,0x0000171F,0xFFFFFABB,0x000002D9},
-       {"0000001000010011111100001111110101000010110001100010000010100100",0x00003C2B,0xFFFFE447,0x000005F0,0x0000207F,0xFFFFF44E,0x0000039A,0x0000207F,0xFFFFF44E,0x0000039A},
-       {"0000001000010011111100001111110101000010110011000011100110000100",0x00002F07,0xFFFFEB70,0x000004E9,0x00001765,0xFFFFF9A5,0x000002C6,0x00001765,0xFFFFF9A5,0x000002C6},
-       {"0000001000010011111100001111110101000010110001100010100110000100",0x00003A01,0xFFFFE4E0,0x000005E7,0x0000227A,0xFFFFF292,0x000003E5,0x0000227A,0xFFFFF292,0x000003E5},
-       {"0000001000010011111100001111110101000010110011100010000010100100",0x0000376E,0xFFFFE686,0x000005A6,0x00001FCF,0xFFFFF43B,0x000003A8,0x00001FCF,0xFFFFF43B,0x000003A8},
-       {"0000001000010011111100001111111111101111010110100100100110000100",0x0000485F,0xFFFFDCC1,0x00000713,0x00002CF8,0xFFFFEC45,0x000004DA,0x00002CF8,0xFFFFEC45,0x000004DA},
-       {"0000001000010011111100001111111111101111010111000011000110000100",0x0000331C,0xFFFFE8FF,0x00000541,0x00002366,0xFFFFF19D,0x00000411,0x00002366,0xFFFFF19D,0x00000411},
-       {"0000001000010011111100001111111111101111011001000011100001100100",0x00003CF3,0xFFFFE15A,0x00000694,0x00002FB3,0xFFFFE827,0x000005B9,0x00002FB3,0xFFFFE827,0x000005B9},
-       {"0000001000010011111010101001010011011110001100100001000100000100",0x000023F3,0xFFFFF3EA,0x0000039A,0x00001345,0xFFFFFD6B,0x00000241,0x00001345,0xFFFFFD6B,0x00000241},
-       {"0000001000010011111100001111111111101111010111000010100010100100",0x000038C0,0xFFFFE58A,0x000005CC,0x000023CA,0xFFFFF1AA,0x00000408,0x000023CA,0xFFFFF1AA,0x00000408},
-       {"0000001000010011111100001111111111101111011001100010100101000100",0x00004976,0xFFFFDD6A,0x000006D7,0x000033C6,0xFFFFE8EB,0x0000054D,0x000033C6,0xFFFFE8EB,0x0000054D},
-       {"0000001000010011111100001111111111101111011001000100100100000100",0x00004049,0xFFFFDF6D,0x000006D8,0x00003129,0xFFFFE716,0x000005E9,0x00003129,0xFFFFE716,0x000005E9},
-       {"0000001000010011111100001111111111101111011001100001000101100100",0x000046C2,0xFFFFDCEB,0x0000071C,0x00002E6D,0xFFFFEA8F,0x0000052E,0x00002E6D,0xFFFFEA8F,0x0000052E},
-       {"0000001000010011111100001111111111101111011000100011100010100100",0x00004080,0xFFFFE1E1,0x0000063A,0x0000396D,0xFFFFE40A,0x0000062C,0x0000396D,0xFFFFE40A,0x0000062C},
-       {"0000001000010011111100001111111111101111010111100010000100100100",0x00003DE0,0xFFFFE358,0x0000060C,0x00002AA2,0xFFFFEDBF,0x000004A0,0x00002AA2,0xFFFFEDBF,0x000004A0},
-       {"0000001000010011111100001111111111101111010111100011000101000100",0x00003FC0,0xFFFFE2A1,0x0000061A,0x000027D8,0xFFFFEFEC,0x0000043A,0x000027D8,0xFFFFEFEC,0x0000043A},
-       {"0000001000010011111100001111111111101111011001100001100100100100",0x00003FBF,0xFFFFE2F5,0x00000603,0x000032D7,0xFFFFE900,0x00000552,0x000032D7,0xFFFFE900,0x00000552},
-       {"0000001000010011111100001111111111101111010111000001000011100100",0x000035EE,0xFFFFE6CA,0x000005A2,0x0000247C,0xFFFFF088,0x00000446,0x0000247C,0xFFFFF088,0x00000446},
-       {"0000001000010011111100001111111111101111011001000011100010000100",0x000039C8,0xFFFFE3AE,0x0000062A,0x000028AF,0xFFFFED24,0x000004DF,0x000028AF,0xFFFFED24,0x000004DF},
-       {"0000001000010011111100001111111111101111010111000010100010000100",0x00003BDE,0xFFFFE33B,0x00000632,0x00001B6C,0xFFFFF720,0x00000326,0x00001B6C,0xFFFFF720,0x00000326},
-       {"0000001000010011111100001111111111101111011100100001000010100100",0x00003818,0xFFFFE57D,0x000005D4,0x000020EF,0xFFFFF327,0x000003CE,0x000020EF,0xFFFFF327,0x000003CE},
-       {"0000001000010011111100001111111111101111010111100001100110100100",0x000038DA,0xFFFFE561,0x000005D3,0x0000297D,0xFFFFED6D,0x000004C5,0x0000297D,0xFFFFED6D,0x000004C5},
-       {"0000001000010011111100001111111111101111011010000100100010000100",0x000027AC,0xFFFFF0CE,0x00000417,0x00001F5F,0xFFFFF484,0x000003B2,0x00001F5F,0xFFFFF484,0x000003B2},
-       {"0000001000010011111100001111111111101111011001100100100010100100",0x00003F02,0xFFFFE222,0x00000643,0x000026D4,0xFFFFF000,0x00000443,0x000026D4,0xFFFFF000,0x00000443},
-       {"0000001000010011111100001111111111101111011000100100000101100100",0x00004303,0xFFFFDFE3,0x00000690,0x0000312C,0xFFFFE912,0x00000561,0x0000312C,0xFFFFE912,0x00000561},
-       {"0000001000010011111100001111111111101111011000000000100100000100",0x000039E5,0xFFFFE31F,0x00000657,0x00001D23,0xFFFFF51F,0x00000386,0x00001D23,0xFFFFF51F,0x00000386},
-       {"0000001000010011111100001111111111101111011001100001000101000100",0x000041FA,0xFFFFE01B,0x00000697,0x00002767,0xFFFFEF90,0x00000455,0x00002767,0xFFFFEF90,0x00000455},
-       {"0000001000010011111100001111111111101111011010000011000010100100",0x00002888,0xFFFFF11C,0x00000403,0x00001864,0xFFFFF9D8,0x000002D3,0x00001864,0xFFFFF9D8,0x000002D3},
-       {"0000001000010011111010101001010011011110001000000001100001100100",0x0000215C,0xFFFFF5B6,0x0000036D,0x000015C5,0xFFFFFB8A,0x000002B5,0x000015C5,0xFFFFFB8A,0x000002B5},
-       {"0000001000010011111100001111111111101111011010000011100110000100",0x00002FAF,0xFFFFEC27,0x000004CA,0x00002184,0xFFFFF39C,0x000003CD,0x00002184,0xFFFFF39C,0x000003CD},
-       {"0000001000010011111100001111111111101111010111100001000011000100",0x00004ACE,0xFFFFD9A3,0x000007BC,0x00001A5D,0xFFFFF7F6,0x000002FC,0x00001A5D,0xFFFFF7F6,0x000002FC},
-       {"0000001000010011111100001111111111101111010110100011000001000100",0x00003763,0xFFFFE797,0x0000055F,0x000029B5,0xFFFFEEA1,0x00000474,0x000029B5,0xFFFFEEA1,0x00000474},
-       {"0000001000010011111100001111111111101111010111100011000101100100",0x00003832,0xFFFFE6F9,0x00000575,0x00002C99,0xFFFFEC42,0x000004E3,0x00002C99,0xFFFFEC42,0x000004E3},
-       {"0000001000010011111100001111111111101111011000000100000101100100",0x000041C9,0xFFFFDE33,0x0000071E,0x0000199D,0xFFFFF808,0x000002F9,0x0000199D,0xFFFFF808,0x000002F9},
-       {"0000001000010011111100001111111111101111011001000001000101100100",0x0000474A,0xFFFFD96E,0x00000802,0x00002A30,0xFFFFEB57,0x0000053F,0x00002A30,0xFFFFEB57,0x0000053F},
-       {"0000001000010011111100001111111111101111010111000011000111000100",0x0000312F,0xFFFFEA6A,0x00000508,0x000029D3,0xFFFFED38,0x000004D3,0x000029D3,0xFFFFED38,0x000004D3},
-       {"0000001000010011111100001111111111101111011100100001000011000100",0x00003BD6,0xFFFFE2E7,0x00000644,0x00002093,0xFFFFF37B,0x000003BD,0x00002093,0xFFFFF37B,0x000003BD},
-       {"0000001000010011111100001111111111101111011010000100000011100100",0x00002F94,0xFFFFECD4,0x000004A3,0x00002196,0xFFFFF40B,0x000003B5,0x00002196,0xFFFFF40B,0x000003B5},
-       {"0000001000010011111100001111111111101111010111100001100101000100",0x0000369B,0xFFFFE762,0x00000571,0x00002726,0xFFFFEF99,0x00000459,0x00002726,0xFFFFEF99,0x00000459},
-       {"0000001000010011111100001111111111101111011001000010000001100100",0x00003F57,0xFFFFDF47,0x000006F4,0x00002E5F,0xFFFFE8AE,0x000005AB,0x00002E5F,0xFFFFE8AE,0x000005AB},
-       {"0000001000010011111010101001010011011110000010100100000011000100",0x00004313,0xFFFFDD81,0x0000072D,0x00002468,0xFFFFF068,0x00000440,0x00002468,0xFFFFF068,0x00000440},
-       {"0000001000010011111100001111111111101111011010000011000001000100",0x00002A35,0xFFFFEFA8,0x00000441,0x00001F3F,0xFFFFF4F3,0x000003A0,0x00001F3F,0xFFFFF4F3,0x000003A0},
-       {"0000001000010011111100001111111111101111011001100011000010100100",0x00003E33,0xFFFFE4B0,0x000005AF,0x00002802,0xFFFFF092,0x00000412,0x00002802,0xFFFFF092,0x00000412},
-       {"0000001000010011111010101001010011011110001100100011100100000100",0x00002815,0xFFFFF20E,0x000003DD,0x00001C33,0xFFFFF7D5,0x0000032A,0x00001C33,0xFFFFF7D5,0x0000032A},
-       {"0000001000010011111100001111111111101111010110100010000110000100",0x00003CC2,0xFFFFE43E,0x000005DE,0x00002C16,0xFFFFECED,0x000004BA,0x00002C16,0xFFFFECED,0x000004BA},
-       {"0000001000010011111100001111111111101111010111000100000010000100",0x00003CFA,0xFFFFE1EE,0x00000673,0x00001F7D,0xFFFFF402,0x000003AE,0x00001F7D,0xFFFFF402,0x000003AE},
-       {"0000001000010011111100001111111111101111011000100010000100000100",0x0000486E,0xFFFFDD43,0x000006EE,0x000036F0,0xFFFFE609,0x000005D5,0x000036F0,0xFFFFE609,0x000005D5},
-       {"0000001000010011111100001111111111101111010111000100100101100100",0x000039FE,0xFFFFE41F,0x00000613,0x0000266C,0xFFFFEF35,0x0000047D,0x0000266C,0xFFFFEF35,0x0000047D},
-       {"0000001000010011111010101001010011011110000100100011000100100100",0x00002EA4,0xFFFFEE3B,0x00000462,0x00002126,0xFFFFF4E2,0x0000038F,0x00002126,0xFFFFF4E2,0x0000038F},
-       {"0000001000010011111100001111111111101111011010000011100101000100",0x00002D2E,0xFFFFEE7B,0x00000462,0x0000229D,0xFFFFF363,0x000003D4,0x0000229D,0xFFFFF363,0x000003D4},
-       {"0000001000010011111100001111111111101111010111100010100001000100",0x0000375C,0xFFFFE695,0x0000059D,0x00002319,0xFFFFF237,0x000003EE,0x00002319,0xFFFFF237,0x000003EE},
-       {"0000001000010011111100001111111111101111011100100101000011000100",0x00004522,0xFFFFDC71,0x0000075E,0x0000247E,0xFFFFF0A0,0x0000043C,0x0000247E,0xFFFFF0A0,0x0000043C},
-       {"0000001000010011111010101001010011011110000100100100100011100100",0x00002E58,0xFFFFECB9,0x000004A9,0x0000199A,0xFFFFF8CF,0x000002E9,0x0000199A,0xFFFFF8CF,0x000002E9},
-       {"0000001000010011111100001111111111101111011001000011100011100100",0x00003791,0xFFFFE5FE,0x000005B6,0x000029F5,0xFFFFED0D,0x000004CD,0x000029F5,0xFFFFED0D,0x000004CD},
-       {"0000001000010011111010101001010011011110001001000100000101000100",0x00002E9E,0xFFFFEC8D,0x000004C1,0x000019D0,0xFFFFF869,0x0000030F,0x000019D0,0xFFFFF869,0x0000030F},
-       {"0000001000010011111010101001010011011110001000000011100101100100",0x0000237C,0xFFFFF435,0x000003A6,0x000014EB,0xFFFFFBC4,0x000002AF,0x000014EB,0xFFFFFBC4,0x000002AF},
-       {"0000001000010011111100001111111111101111011001100010100100100100",0x00003FE5,0xFFFFE4A2,0x000005A0,0x00003416,0xFFFFE995,0x00000523,0x00003416,0xFFFFE995,0x00000523},
-       {"0000001000010011111100001111111111101111010111000000100100100100",0x00002B27,0xFFFFED51,0x000004A5,0x000025D1,0xFFFFEF18,0x00000492,0x000025D1,0xFFFFEF18,0x00000492},
-       {"0000001000010011111100001111111111101111011010000100100100000100",0x00002D77,0xFFFFED79,0x00000494,0x00002196,0xFFFFF352,0x000003DE,0x00002196,0xFFFFF352,0x000003DE},
-       {"0000001000010011111100001111111111101111010111000010000011000100",0x00003750,0xFFFFE6AC,0x00000596,0x00002524,0xFFFFF0B5,0x00000431,0x00002524,0xFFFFF0B5,0x00000431},
-       {"0000001000010011111010101001010011011110000100100010100101000100",0x00002896,0xFFFFF1BB,0x000003D9,0x00001CE0,0xFFFFF753,0x0000032F,0x00001CE0,0xFFFFF753,0x0000032F},
-       {"0000001000010011111100001111111111101111011001000001100110000100",0x00003CA7,0xFFFFE0F7,0x000006B1,0x00002CB8,0xFFFFE9AB,0x00000587,0x00002CB8,0xFFFFE9AB,0x00000587},
-       {"0000001000010011111010101001010011011110001100100010100001100100",0x00002513,0xFFFFF323,0x000003BC,0x00001965,0xFFFFF93C,0x000002F0,0x00001965,0xFFFFF93C,0x000002F0},
-       {"0000001000010011111100001111111111101111011001100010000101100100",0x00003914,0xFFFFE683,0x00000586,0x00003120,0xFFFFE9A6,0x00000543,0x00003120,0xFFFFE9A6,0x00000543},
-       {"0000001000010011111100001111111111101111011001000011100100000100",0x000040D0,0xFFFFE007,0x000006AC,0x00002B9E,0xFFFFEBF5,0x000004FB,0x00002B9E,0xFFFFEBF5,0x000004FB},
-       {"0000001000010011111100001111111111101111010110100100100010000100",0x00004412,0xFFFFDF5F,0x000006A9,0x00002A9E,0xFFFFEDCE,0x00000498,0x00002A9E,0xFFFFEDCE,0x00000498},
-       {"0000001000010011111100001111111111101111011000100100100010000100",0x000042A6,0xFFFFDFEF,0x00000696,0x00002E65,0xFFFFEAAE,0x00000529,0x00002E65,0xFFFFEAAE,0x00000529},
-       {"0000001000010011111010101001010011011110001100100010000100100100",0x000022E8,0xFFFFF565,0x0000035F,0x00001890,0xFFFFFA61,0x000002C6,0x00001890,0xFFFFFA61,0x000002C6},
-       {"0000001000010011111100001111111111101111011000100011100110100100",0x00004637,0xFFFFDDD8,0x000006E9,0x0000349D,0xFFFFE6C8,0x000005C7,0x0000349D,0xFFFFE6C8,0x000005C7},
-       {"0000001000010011111010101001010011011110001001100011100100000100",0x00004686,0xFFFFDC58,0x0000073D,0x00003972,0xFFFFE27B,0x0000068E,0x00003972,0xFFFFE27B,0x0000068E},
-       {"0000001000010011111100001111111111101111011010000000100011100100",0x00002B35,0xFFFFEE9C,0x0000046C,0x00001F5B,0xFFFFF4A3,0x000003A9,0x00001F5B,0xFFFFF4A3,0x000003A9},
-       {"0000001000010011111100001111111111101111011100100100000101000100",0x00003AC9,0xFFFFE3B2,0x0000061B,0x000023A1,0xFFFFF170,0x0000040F,0x000023A1,0xFFFFF170,0x0000040F},
-       {"0000001000010011111100001111111111101111010111100001100010000100",0x00003C50,0xFFFFE37E,0x00000617,0x0000218F,0xFFFFF339,0x000003C4,0x0000218F,0xFFFFF339,0x000003C4},
-       {"0000001000010011111100001111111111101111011001100011000001000100",0x00003793,0xFFFFE761,0x0000055D,0x000029C7,0xFFFFEE03,0x00000496,0x000029C7,0xFFFFEE03,0x00000496},
-       {"0000001000010011111100001111111111101111011001000011100010100100",0x000040B5,0xFFFFDF78,0x000006DA,0x00002DED,0xFFFFEA20,0x00000551,0x00002DED,0xFFFFEA20,0x00000551},
-       {"0000001000010011111100001111111111101111011000000001000101000100",0x000039D6,0xFFFFE37D,0x0000063C,0x00001AED,0xFFFFF6E2,0x00000331,0x00001AED,0xFFFFF6E2,0x00000331},
-       {"0000001000010011111100001111111111101111011001100010000101000100",0x0000431F,0xFFFFE09B,0x0000066A,0x00002BDF,0xFFFFED93,0x00000496,0x00002BDF,0xFFFFED93,0x00000496},
-       {"0000001000010011111100001111111111101111011000100011100001100100",0x00004887,0xFFFFDC65,0x00000721,0x00003669,0xFFFFE5C4,0x000005E9,0x00003669,0xFFFFE5C4,0x000005E9},
-       {"0000001000010011111100001111111111101111011001000000100100100100",0x00004120,0xFFFFDDAE,0x00000748,0x0000303B,0xFFFFE70D,0x000005FC,0x0000303B,0xFFFFE70D,0x000005FC},
-       {"0000001000010011111100001111111111101111010111100010100010100100",0x0000415D,0xFFFFE0BE,0x0000067B,0x00002FA7,0xFFFFEA28,0x00000538,0x00002FA7,0xFFFFEA28,0x00000538},
-       {"0000001000010011111100001111111111101111011010000001100100000100",0x00002B12,0xFFFFEFF9,0x00000428,0x00001DDA,0xFFFFF693,0x00000356,0x00001DDA,0xFFFFF693,0x00000356},
-       {"0000001000010011111100001111111111101111010111100011000110000100",0x00003ED3,0xFFFFE28D,0x0000062D,0x00002B00,0xFFFFED4E,0x000004B3,0x00002B00,0xFFFFED4E,0x000004B3},
-       {"0000001000010011111100001111111111101111011000100101000010100100",0x00004218,0xFFFFE039,0x0000068F,0x00002F84,0xFFFFEA0C,0x00000541,0x00002F84,0xFFFFEA0C,0x00000541},
-       {"0000001000010011111100001111111111101111010110100011100001000100",0x00003FF5,0xFFFFE2A3,0x00000617,0x00003017,0xFFFFEA7A,0x00000520,0x00003017,0xFFFFEA7A,0x00000520},
-       {"0000001000010011111100001111111111101111010110100000100010100100",0x00004304,0xFFFFDFCC,0x0000069E,0x00002E0C,0xFFFFEB51,0x00000505,0x00002E0C,0xFFFFEB51,0x00000505},
-       {"0000001000010011111100001111111111101111011001000001100101000100",0x00003D3A,0xFFFFE17F,0x00000687,0x0000284C,0xFFFFED83,0x000004CD,0x0000284C,0xFFFFED83,0x000004CD},
-       {"0000001000010011111100001111111111101111010111100100000010100100",0x000042F5,0xFFFFDF76,0x000006B2,0x000027B6,0xFFFFEF72,0x00000455,0x000027B6,0xFFFFEF72,0x00000455},
-       {"0000001000010011111100001111111111101111010111000011100011000100",0x00004267,0xFFFFDF29,0x000006D5,0x0000298F,0xFFFFEDBD,0x000004AC,0x0000298F,0xFFFFEDBD,0x000004AC},
-       {"0000001000010011111010101001010011011110001001000000100100100100",0x0000303E,0xFFFFEC00,0x000004CB,0x000021CD,0xFFFFF36E,0x000003D6,0x000021CD,0xFFFFF36E,0x000003D6},
-       {"0000001000010011111100001111111111101111010111100010100011000100",0x00003127,0xFFFFEBDB,0x000004A6,0x00002E95,0xFFFFEB78,0x000004F3,0x00002E95,0xFFFFEB78,0x000004F3},
-       {"0000001000010011111010101001010011011110000111000001000001100100",0x00002655,0xFFFFF2D9,0x000003CF,0x000019F5,0xFFFFF8E7,0x00000313,0x000019F5,0xFFFFF8E7,0x00000313},
-       {"0000001000010011111010101001010011011110000101100100000010000100",0x00002372,0xFFFFF449,0x0000039B,0x00001544,0xFFFFFC16,0x0000028B,0x00001544,0xFFFFFC16,0x0000028B},
-       {"0000001000010011111100001111111111101111011001100010100011000100",0x0000348E,0xFFFFEB20,0x000004B2,0x00002BE8,0xFFFFEE80,0x00000467,0x00002BE8,0xFFFFEE80,0x00000467},
-       {"0000001000010011111100001111111111101111010111100001000100000100",0x00004092,0xFFFFE073,0x0000069B,0x00002061,0xFFFFF403,0x000003A0,0x00002061,0xFFFFF403,0x000003A0},
-       {"0000001000010011111100001111111111101111011100100010000011100100",0x000039D1,0xFFFFE55D,0x000005CC,0x000025CB,0xFFFFF0C0,0x00000428,0x000025CB,0xFFFFF0C0,0x00000428},
-       {"0000001000010011111100001111111111101111010111100100100010000100",0x000042AA,0xFFFFDF68,0x000006C2,0x0000290B,0xFFFFEE78,0x00000485,0x0000290B,0xFFFFEE78,0x00000485},
-       {"0000001000010011111100001111111111101111011100100001100011000100",0x0000356F,0xFFFFE7AC,0x0000056E,0x00001BE8,0xFFFFF6E3,0x0000032A,0x00001BE8,0xFFFFF6E3,0x0000032A},
-       {"0000001000010011111100001111111111101111010111100001000101000100",0x00003525,0xFFFFE7FF,0x0000055D,0x0000242C,0xFFFFF12E,0x0000041D,0x0000242C,0xFFFFF12E,0x0000041D},
-       {"0000001000010011111100001111111111101111010111000100100011000100",0x00003360,0xFFFFE895,0x00000550,0x00002175,0xFFFFF29E,0x000003E9,0x00002175,0xFFFFF29E,0x000003E9},
-       {"0000001000010011111100001111111111101111011001000100000010100100",0x00003C94,0xFFFFE1C4,0x0000067E,0x00002E28,0xFFFFE964,0x0000057F,0x00002E28,0xFFFFE964,0x0000057F},
-       {"0000001000010011111100001111111111101111011100100100000100100100",0x0000431C,0xFFFFDE4B,0x000006FF,0x00002270,0xFFFFF268,0x000003E5,0x00002270,0xFFFFF268,0x000003E5},
-       {"0000001000010011111010101001010011011110000100100001100011000100",0x00002B67,0xFFFFF01D,0x00000414,0x000019FB,0xFFFFF961,0x000002D8,0x000019FB,0xFFFFF961,0x000002D8},
-       {"0000001000010011111100001111111111101111010111100011100110000100",0x0000400B,0xFFFFE13D,0x0000066F,0x000024F3,0xFFFFF125,0x00000417,0x000024F3,0xFFFFF125,0x00000417},
-       {"0000001000010011111100001111111111101111010110100010000010100100",0x00004460,0xFFFFE00E,0x0000067B,0x000023DF,0xFFFFF2E6,0x000003BB,0x000023DF,0xFFFFF2E6,0x000003BB},
-       {"0000001000010011111100001111111111101111011001000001100001100100",0x00003AFB,0xFFFFE2C5,0x00000650,0x00002D46,0xFFFFE9C4,0x00000571,0x00002D46,0xFFFFE9C4,0x00000571},
-       {"0000001000010011111100001111111111101111011000100010100100100100",0x00005482,0xFFFFD5BC,0x0000081A,0x00003250,0xFFFFE961,0x00000541,0x00003250,0xFFFFE961,0x00000541},
-       {"0000001000010011111100001111111111101111010111000010100101000100",0x00003D27,0xFFFFE2FA,0x00000632,0x00002A4D,0xFFFFED6A,0x000004BB,0x00002A4D,0xFFFFED6A,0x000004BB},
-       {"0000001000010011111100001111111111101111011000000001100010100100",0x00003E03,0xFFFFE142,0x00000690,0x00001E08,0xFFFFF555,0x0000036C,0x00001E08,0xFFFFF555,0x0000036C},
-       {"0000001000010011111100001111111111101111010111000010000001100100",0x000031B5,0xFFFFE97D,0x00000535,0x0000232E,0xFFFFF166,0x00000422,0x0000232E,0xFFFFF166,0x00000422},
-       {"0000001000010011111100001111111111101111010111100001100011100100",0x00003753,0xFFFFE724,0x00000575,0x0000281A,0xFFFFEF1A,0x0000046B,0x0000281A,0xFFFFEF1A,0x0000046B},
-       {"0000001000010011111010101001010011011110001000000100000101000100",0x00002071,0xFFFFF5C9,0x0000036F,0x00001470,0xFFFFFBF7,0x000002A5,0x00001470,0xFFFFFBF7,0x000002A5},
-       {"0000001000010011111100001111111111101111011010000011000101000100",0x00002799,0xFFFFF223,0x000003CF,0x00001CD3,0xFFFFF74A,0x00000333,0x00001CD3,0xFFFFF74A,0x00000333},
-       {"0000001000010011111100001111111111101111011001100001000011000100",0x000040DF,0xFFFFE11C,0x00000664,0x000031D4,0xFFFFE8BC,0x0000056F,0x000031D4,0xFFFFE8BC,0x0000056F},
-       {"0000001000010011111100001111111111101111011001000100000011000100",0x00003A4D,0xFFFFE3A6,0x00000627,0x00002871,0xFFFFEDA0,0x000004C0,0x00002871,0xFFFFEDA0,0x000004C0},
-       {"0000001000010011111100001111111111101111011010000001100110000100",0x00002AF9,0xFFFFEED7,0x00000464,0x0000219B,0xFFFFF368,0x000003D6,0x0000219B,0xFFFFF368,0x000003D6},
-       {"0000001000010011111010101001010011011110001100100011000100100100",0x000026D5,0xFFFFF36C,0x000003A3,0x00001BC6,0xFFFFF881,0x00000311,0x00001BC6,0xFFFFF881,0x00000311},
-       {"0000001000010011111100001111111111101111010111100010000001000100",0x0000325D,0xFFFFEA07,0x0000050B,0x000026D1,0xFFFFEFB3,0x0000045A,0x000026D1,0xFFFFEFB3,0x0000045A},
-       {"0000001000010011111100001111111111101111011010000010100001100100",0x00002F75,0xFFFFEC64,0x000004BE,0x00001EEB,0xFFFFF559,0x00000386,0x00001EEB,0xFFFFF559,0x00000386},
-       {"0000001000010011111100001111111111101111010110100011100010100100",0x00003C2F,0xFFFFE541,0x000005A3,0x000025B6,0xFFFFF16F,0x000003FA,0x000025B6,0xFFFFF16F,0x000003FA},
-       {"0000001000010011111100001111111111101111011010000100100100100100",0x00002BC2,0xFFFFEE89,0x0000046A,0x00001D04,0xFFFFF651,0x00000361,0x00001D04,0xFFFFF651,0x00000361},
-       {"0000001000010011111100001111111111101111011010000010100110100100",0x00002DD0,0xFFFFED40,0x0000049F,0x00001C8C,0xFFFFF6B3,0x00000353,0x00001C8C,0xFFFFF6B3,0x00000353},
-       {"0000001000010011111010101001010011011110000111000000100011100100",0x000021ED,0xFFFFF530,0x00000380,0x00001643,0xFFFFFB1C,0x000002C3,0x00001643,0xFFFFFB1C,0x000002C3},
-       {"0000001000010011111010101001010011011110001100100001100100000100",0x000028C7,0xFFFFF160,0x000003FD,0x00001990,0xFFFFF994,0x000002E2,0x00001990,0xFFFFF994,0x000002E2},
-       {"0000001000010011111100001111111111101111011001100001000010100100",0x0000431C,0xFFFFDF9D,0x000006A3,0x000034A6,0xFFFFE6B0,0x000005C9,0x000034A6,0xFFFFE6B0,0x000005C9},
-       {"0000001000010011111010101001010011011110001001100011000010100100",0x00004115,0xFFFFE0D6,0x00000667,0x000031AD,0xFFFFE850,0x00000585,0x000031AD,0xFFFFE850,0x00000585},
-       {"0000001000010011111100001111111111101111011001000011100100100100",0x0000424A,0xFFFFDEEC,0x000006E1,0x0000346A,0xFFFFE5EA,0x00000602,0x0000346A,0xFFFFE5EA,0x00000602},
-       {"0000001000010011111100001111111111101111011001100001100110000100",0x00004990,0xFFFFDAFA,0x00000771,0x00002A9C,0xFFFFED37,0x000004BC,0x00002A9C,0xFFFFED37,0x000004BC},
-       {"0000001000010011111100001111111111101111011001000010100010100100",0x00003858,0xFFFFE568,0x000005D2,0x00003030,0xFFFFE8B0,0x0000058E,0x00003030,0xFFFFE8B0,0x0000058E},
-       {"0000001000010011111100001111111111101111011010000100000101100100",0x00001EDC,0xFFFFF6CD,0x00000322,0x00001FCA,0xFFFFF4BD,0x0000039E,0x00001FCA,0xFFFFF4BD,0x0000039E},
-       {"0000001000010011111100001111111111101111011001100010000100100100",0x00004C88,0xFFFFDBA3,0x0000071B,0x000030C4,0xFFFFEAFD,0x000004F7,0x000030C4,0xFFFFEAFD,0x000004F7},
-       {"0000001000010011111100001111111111101111011010000000100100000100",0x00002B9A,0xFFFFEE41,0x0000047D,0x00002131,0xFFFFF344,0x000003E5,0x00002131,0xFFFFF344,0x000003E5},
-       {"0000001000010011111100001111111111101111011000100011100110000100",0x00003E4B,0xFFFFE33C,0x000005FA,0x00003877,0xFFFFE437,0x0000062E,0x00003877,0xFFFFE437,0x0000062E},
-       {"0000001000010011111010101001010011011110001100100010000001100100",0x00002376,0xFFFFF444,0x0000038A,0x000017ED,0xFFFFFA4C,0x000002C1,0x000017ED,0xFFFFFA4C,0x000002C1},
-       {"0000001000010011111100001111111111101111011001100001000010000100",0x00004517,0xFFFFDDF4,0x000006F2,0x000030DC,0xFFFFE8EF,0x00000571,0x000030DC,0xFFFFE8EF,0x00000571},
-       {"0000001000010011111100001111111111101111011010000001100101000100",0x0000270C,0xFFFFF1F3,0x000003DF,0x0000207B,0xFFFFF474,0x000003AD,0x0000207B,0xFFFFF474,0x000003AD},
-       {"0000001000010011111100001111111111101111011001000101000101000100",0x00004086,0xFFFFDF39,0x000006E3,0x00002A24,0xFFFFEC2B,0x000004FF,0x00002A24,0xFFFFEC2B,0x000004FF},
-       {"0000001000010011111100001111111111101111010111000011000100100100",0x00003BDE,0xFFFFE45E,0x000005EB,0x00002CD5,0xFFFFEC45,0x000004DD,0x00002CD5,0xFFFFEC45,0x000004DD},
-       {"0000001000010011111100001111111111101111011100100011000011100100",0x00003803,0xFFFFE714,0x00000579,0x0000288A,0xFFFFEF21,0x0000046B,0x0000288A,0xFFFFEF21,0x0000046B},
-       {"0000001000010011111100001111111111101111011000000001000100000100",0x00003F50,0xFFFFE002,0x000006CD,0x00001AD4,0xFFFFF72E,0x0000031F,0x00001AD4,0xFFFFF72E,0x0000031F},
-       {"0000001000010011111100001111111111101111011010000010000011100100",0x00002968,0xFFFFF100,0x00000402,0x00001FB5,0xFFFFF57C,0x0000037F,0x00001FB5,0xFFFFF57C,0x0000037F},
-       {"0000001000010011111100001111111111101111011001100010000100000100",0x00004283,0xFFFFE2A7,0x000005F5,0x00003165,0xFFFFEB0C,0x000004EC,0x00003165,0xFFFFEB0C,0x000004EC},
-       {"0000001000010011111100001111111111101111011001000011000110100100",0x00004253,0xFFFFDDA8,0x00000732,0x00002E5C,0xFFFFE90A,0x00000593,0x00002E5C,0xFFFFE90A,0x00000593},
-       {"0000001000010011111100001111111111101111010111000101000010100100",0x00003551,0xFFFFE756,0x0000058D,0x000029A7,0xFFFFED0C,0x000004DE,0x000029A7,0xFFFFED0C,0x000004DE},
-       {"0000001000010011111100001111111111101111011001000010100011000100",0x00003728,0xFFFFE604,0x000005C4,0x00002832,0xFFFFEE64,0x00000493,0x00002832,0xFFFFEE64,0x00000493},
-       {"0000001000010011111100001111111111101111011000100011100101100100",0x00004796,0xFFFFDCC8,0x00000715,0x000032AB,0xFFFFE848,0x0000057C,0x000032AB,0xFFFFE848,0x0000057C},
-       {"0000001000010011111100001111111111101111011000100001000011000100",0x000049DF,0xFFFFDB24,0x0000075F,0x00003076,0xFFFFE967,0x0000055C,0x00003076,0xFFFFE967,0x0000055C},
-       {"0000001000010011111100001111111111101111011100100001000100000100",0x00003F13,0xFFFFE099,0x000006A8,0x00002279,0xFFFFF226,0x000003F3,0x00002279,0xFFFFF226,0x000003F3},
-       {"0000001000010011111100001111111111101111011001000011000010100100",0x00003E03,0xFFFFE19F,0x00000674,0x00002D66,0xFFFFEAA7,0x00000537,0x00002D66,0xFFFFEAA7,0x00000537},
-       {"0000001000010011111100001111111111101111010111000100000100000100",0x000037DA,0xFFFFE63F,0x000005A7,0x00002543,0xFFFFF0A0,0x00000431,0x00002543,0xFFFFF0A0,0x00000431},
-       {"0000001000010011111100001111111111101111011000100100100101000100",0x00003D82,0xFFFFE3F5,0x000005D9,0x0000332F,0xFFFFE834,0x00000577,0x0000332F,0xFFFFE834,0x00000577},
-       {"0000001000010011111010101001010011011110000100100010100011000100",0x00002915,0xFFFFF1E0,0x000003D4,0x00002065,0xFFFFF57B,0x00000378,0x00002065,0xFFFFF57B,0x00000378},
-       {"0000001000010011111100001111111111101111010111100100100100000100",0x000036FC,0xFFFFE72D,0x00000577,0x00002811,0xFFFFEF30,0x00000464,0x00002811,0xFFFFEF30,0x00000464},
-       {"0000001000010011111100001111111111101111011000100011000110000100",0x00004767,0xFFFFDD30,0x000006FD,0x00003703,0xFFFFE564,0x000005F8,0x00003703,0xFFFFE564,0x000005F8},
-       {"0000001000010011111100001111111111101111011000000011000110000100",0x00003094,0xFFFFEAA9,0x000004F5,0x000022E7,0xFFFFF200,0x000003FB,0x000022E7,0xFFFFF200,0x000003FB},
-       {"0000001000010011111100001111111111101111011001000001000101000100",0x00003EF0,0xFFFFDF83,0x000006ED,0x00002A27,0xFFFFEB7C,0x00000537,0x00002A27,0xFFFFEB7C,0x00000537},
-       {"0000001000010011111100001111111111101111011010000001000100100100",0x0000243C,0xFFFFF358,0x000003AC,0x00001DC4,0xFFFFF5E9,0x00000372,0x00001DC4,0xFFFFF5E9,0x00000372},
-       {"0000001000010011111100001111111111101111011100100010000101000100",0x0000284B,0xFFFFF036,0x0000040F,0x00001FCD,0xFFFFF445,0x00000395,0x00001FCD,0xFFFFF445,0x00000395},
-       {"0000001000010011111100001111111111101111011010000100000011000100",0x00002611,0xFFFFF285,0x000003C7,0x00001CFE,0xFFFFF6A0,0x00000355,0x00001CFE,0xFFFFF6A0,0x00000355},
-       {"0000001000010011111010101001010011011110000111000011100110100100",0x00002292,0xFFFFF49F,0x00000393,0x000017F4,0xFFFFF9CD,0x000002F5,0x000017F4,0xFFFFF9CD,0x000002F5},
-       {"0000001000010011111100001111111111101111010111100011100010100100",0x000037F3,0xFFFFE68D,0x00000590,0x00002443,0xFFFFF1AD,0x000003FA,0x00002443,0xFFFFF1AD,0x000003FA},
-       {"0000001000010011111100001111111111101111011010000010000101000100",0x00002C01,0xFFFFEF3F,0x00000444,0x0000210A,0xFFFFF475,0x000003A7,0x0000210A,0xFFFFF475,0x000003A7},
-       {"0000001000010011111010101001010011011110000100100001000011100100",0x00002C0E,0xFFFFEF0F,0x00000446,0x00001A82,0xFFFFF8F7,0x000002DE,0x00001A82,0xFFFFF8F7,0x000002DE},
-       {"0000001000010011111100001111111111101111010111100010000011000100",0x00003FA6,0xFFFFE20A,0x0000063F,0x00002E29,0xFFFFEB21,0x00000510,0x00002E29,0xFFFFEB21,0x00000510},
-       {"0000001000010011111100001111111111101111010111000010000101100100",0x00003BCD,0xFFFFE31B,0x0000063C,0x000019AF,0xFFFFF83D,0x000002F8,0x000019AF,0xFFFFF83D,0x000002F8},
-       {"0000001000010011111100001111111111101111011001100100000101100100",0x000044C8,0xFFFFDF08,0x000006B0,0x00002E2E,0xFFFFEB62,0x000004FD,0x00002E2E,0xFFFFEB62,0x000004FD},
-       {"0000001000010011111100001111111111101111010111000001100010000100",0x00003790,0xFFFFE571,0x000005E3,0x00002042,0xFFFFF35D,0x000003CF,0x00002042,0xFFFFF35D,0x000003CF},
-       {"0000001000010011111100001111111111101111011000000101000011100100",0x000038AC,0xFFFFE46C,0x00000609,0x0000215E,0xFFFFF22D,0x00000403,0x0000215E,0xFFFFF22D,0x00000403},
-       {"0000001000010011111100001111111111101111010111100010100110100100",0x00003A1E,0xFFFFE536,0x000005C9,0x000024F3,0xFFFFF11A,0x0000041B,0x000024F3,0xFFFFF11A,0x0000041B},
-       {"0000001000010011111100001111111111101111011001100101000011100100",0x0000431A,0xFFFFDF1B,0x000006C5,0x00002F34,0xFFFFEA02,0x00000545,0x00002F34,0xFFFFEA02,0x00000545},
-       {"0000001000010011111100001111111111101111011001000001100100000100",0x000042DC,0xFFFFDE28,0x0000070C,0x00003B53,0xFFFFE0EA,0x000006E2,0x00003B53,0xFFFFE0EA,0x000006E2},
-       {"0000001000010011111100001111111111101111011010000011000101100100",0x0000264B,0xFFFFF29A,0x000003C4,0x000021D0,0xFFFFF3CE,0x000003C4,0x000021D0,0xFFFFF3CE,0x000003C4},
-       {"0000001000010011111100001111111111101111010110100100000001100100",0x00004225,0xFFFFE0E8,0x00000665,0x00002B53,0xFFFFED89,0x0000049F,0x00002B53,0xFFFFED89,0x0000049F},
-       {"0000001000010011111010101001010011011110001000000100100100100100",0x00001FCC,0xFFFFF63F,0x00000358,0x000019E8,0xFFFFF882,0x0000032A,0x000019E8,0xFFFFF882,0x0000032A},
-       {"0000001000010011111100001111111111101111011000100100000010100100",0x000045E0,0xFFFFDDD0,0x000006ED,0x00003193,0xFFFFE8BD,0x00000572,0x00003193,0xFFFFE8BD,0x00000572},
-       {"0000001000010011111100001111111111101111011010000011100100100100",0x000024FC,0xFFFFF366,0x000003A6,0x00001FE8,0xFFFFF509,0x00000394,0x00001FE8,0xFFFFF509,0x00000394},
-       {"0000001000010011111100001111111111101111010111000100100010000100",0x0000378F,0xFFFFE54B,0x000005F1,0x00001C9B,0xFFFFF5C7,0x00000368,0x00001C9B,0xFFFFF5C7,0x00000368},
-       {"0000001000010011111100001111111111101111011001000001100010100100",0x00003CF3,0xFFFFE15A,0x00000694,0x00002CDD,0xFFFFEA44,0x00000557,0x00002CDD,0xFFFFEA44,0x00000557},
-       {"0000001000010011111010101001010011011110001000000000100100000100",0x000021EC,0xFFFFF4F4,0x0000038F,0x00001511,0xFFFFFBF5,0x0000029E,0x00001511,0xFFFFFBF5,0x0000029E},
-       {"0000001000010011111100001111111111101111011000000001000010100100",0x00003C8A,0xFFFFE1C1,0x00000685,0x000019C7,0xFFFFF7E2,0x00000301,0x000019C7,0xFFFFF7E2,0x00000301},
-       {"0000001000010011111100001111111111101111010111100010000001100100",0x00003908,0xFFFFE5C7,0x000005B3,0x00002793,0xFFFFEF46,0x00000465,0x00002793,0xFFFFEF46,0x00000465},
-       {"0000001000010011111100001111111111101111011000000101000100000100",0x000040A3,0xFFFFDE61,0x00000725,0x00002077,0xFFFFF2CE,0x000003E8,0x00002077,0xFFFFF2CE,0x000003E8},
-       {"0000001000010011111100001111111111101111011001100100000101000100",0x00003DCA,0xFFFFE34D,0x00000608,0x00002D66,0xFFFFEBDF,0x000004E8,0x00002D66,0xFFFFEBDF,0x000004E8},
-       {"0000001000010011111100001111111111101111010111100101000011000100",0x00003085,0xFFFFEB70,0x000004C8,0x000029B1,0xFFFFEDD9,0x000004A5,0x000029B1,0xFFFFEDD9,0x000004A5},
-       {"0000001000010011111010101001010011011110000010000011100010000100",0x00004C73,0xFFFFD676,0x0000086C,0x0000280A,0xFFFFED89,0x000004C2,0x0000280A,0xFFFFED89,0x000004C2},
-       {"0000001000010011111010101001010011011110001001000010000101100100",0x00002CE5,0xFFFFEE8C,0x00000466,0x00001755,0xFFFFFAC2,0x000002AC,0x00001755,0xFFFFFAC2,0x000002AC},
-       {"0000001000010011111100001111111111101111011000100001000100100100",0x0000489F,0xFFFFDBF1,0x0000073E,0x0000332D,0xFFFFE786,0x000005AD,0x0000332D,0xFFFFE786,0x000005AD},
-       {"0000001000010011111100001111111111101111011000000010100001100100",0x00003D09,0xFFFFE193,0x00000689,0x00001E82,0xFFFFF4C0,0x00000386,0x00001E82,0xFFFFF4C0,0x00000386},
-       {"0000001000010011111100001111111111101111011001000100000100000100",0x00003E4C,0xFFFFE131,0x00000689,0x00002F4E,0xFFFFE925,0x0000057B,0x00002F4E,0xFFFFE925,0x0000057B},
-       {"0000001000010011111100001111111111101111010110100100000010000100",0x00003B31,0xFFFFE53F,0x000005B3,0x0000248A,0xFFFFF211,0x000003DF,0x0000248A,0xFFFFF211,0x000003DF},
-       {"0000001000010011111100001111111111101111011001000100000100100100",0x000038DD,0xFFFFE54A,0x000005C9,0x00002B6D,0xFFFFEBDF,0x00000502,0x00002B6D,0xFFFFEBDF,0x00000502},
-       {"0000001000010011111100001111111111101111011010000100000001100100",0x00002698,0xFFFFF1A8,0x000003F2,0x00002163,0xFFFFF34B,0x000003E3,0x00002163,0xFFFFF34B,0x000003E3},
-       {"0000001000010011111010101001010011011110001000000001000001100100",0x000023A8,0xFFFFF4CD,0x00000386,0x00001944,0xFFFFF983,0x00000300,0x00001944,0xFFFFF983,0x00000300},
-       {"0000001000010011111100001111111111101111011001000001100011000100",0x00003EAF,0xFFFFE0C3,0x000006A0,0x000030AB,0xFFFFE829,0x000005A6,0x000030AB,0xFFFFE829,0x000005A6},
-       {"0000001000010011111100001111111111101111011010000100100101000100",0x00002E89,0xFFFFECA6,0x000004B6,0x00001FA0,0xFFFFF4A8,0x000003A3,0x00001FA0,0xFFFFF4A8,0x000003A3},
-       {"0000001000010011111100001111111111101111011010000010100010100100",0x000028A4,0xFFFFF112,0x00000402,0x00001F7C,0xFFFFF545,0x0000038A,0x00001F7C,0xFFFFF545,0x0000038A},
-       {"0000001000010011111100001111111111101111011001100101000010100100",0x00004135,0xFFFFDFA2,0x000006C5,0x0000324C,0xFFFFE7AA,0x000005AF,0x0000324C,0xFFFFE7AA,0x000005AF},
-       {"0000001000010011111010101001010011011110001000000011100011000100",0x00002012,0xFFFFF693,0x00000352,0x0000171F,0xFFFFFABB,0x000002D9,0x0000171F,0xFFFFFABB,0x000002D9},
-       {"0000001000010011111100001111111111101111011001000011000010000100",0x00003D7C,0xFFFFE1BC,0x00000671,0x00002A45,0xFFFFEC84,0x000004EC,0x00002A45,0xFFFFEC84,0x000004EC},
-       {"0000001000010011111100001111111111101111011100100011000001100100",0x00004172,0xFFFFDF58,0x000006DA,0x00002504,0xFFFFF0A6,0x00000431,0x00002504,0xFFFFF0A6,0x00000431},
-       {"0000001000010011111100001111111010011001001010000001100101000100",0x000029C7,0xFFFFF087,0x00000414,0x00001DCB,0xFFFFF675,0x0000035F,0x00001DCB,0xFFFFF675,0x0000035F},
-       {"0000001000010011111100001111111010011001001010100010100110100100",0x000027F0,0xFFFFF05A,0x00000432,0x00001707,0xFFFFFA0E,0x000002D1,0x00001707,0xFFFFFA0E,0x000002D1},
-       {"0000001000010011111100001111111010011001001000100010000101000100",0x00003279,0xFFFFE9F7,0x00000511,0x00001B5E,0xFFFFF787,0x00000317,0x00001B5E,0xFFFFF787,0x00000317},
-       {"0000001000010011111100001111111010011001001100100010000110000100",0x000030A5,0xFFFFEABC,0x000004FF,0x000019D1,0xFFFFF83C,0x00000304,0x000019D1,0xFFFFF83C,0x00000304},
-       {"0000001000010011111100001111111010011001001010000010100001000100",0x0000283B,0xFFFFF122,0x00000402,0x000019C2,0xFFFFF8E9,0x000002FB,0x000019C2,0xFFFFF8E9,0x000002FB},
-       {"0000001000010011111100001111111010011001001011000010000010000100",0x00003376,0xFFFFE9E1,0x00000510,0x000021A7,0xFFFFF39F,0x000003BF,0x000021A7,0xFFFFF39F,0x000003BF},
-       {"0000001000010011111100001111111010011001001100100001100011000100",0x000031D2,0xFFFFEA9C,0x000004FC,0x00001F66,0xFFFFF4E4,0x00000390,0x00001F66,0xFFFFF4E4,0x00000390},
-       {"0000001000010011111100001111111010011001000110100011100001100100",0x00003006,0xFFFFEB18,0x000004F2,0x000019B3,0xFFFFF84E,0x00000301,0x000019B3,0xFFFFF84E,0x00000301},
-       {"0000001000010011111100001111111010011001001100000011100110100100",0x0000364F,0xFFFFE81F,0x00000556,0x00002AC9,0xFFFFED87,0x000004BD,0x00002AC9,0xFFFFED87,0x000004BD},
-       {"0000001000010011111100001111111010011001001011100011100001000100",0x00003043,0xFFFFEBAE,0x000004CD,0x00001B0C,0xFFFFF7ED,0x0000030C,0x00001B0C,0xFFFFF7ED,0x0000030C},
-       {"0000001000010011111100001111111010011001001100000100100010100100",0x000037CE,0xFFFFE69E,0x00000596,0x0000276B,0xFFFFEF65,0x0000046E,0x0000276B,0xFFFFEF65,0x0000046E},
-       {"0000001000010011111100001111111010011001001011000011000100000100",0x00003063,0xFFFFED5E,0x0000046F,0x000024AE,0xFFFFF2C4,0x000003D8,0x000024AE,0xFFFFF2C4,0x000003D8},
-       {"0000001000010011111100001111111010011001001011100000100010100100",0x00002F5D,0xFFFFEBDC,0x000004D3,0x00001EDB,0xFFFFF50F,0x0000038E,0x00001EDB,0xFFFFF50F,0x0000038E},
-       {"0000001000010011111100001111111010011001001011100100100010100100",0x00003148,0xFFFFEA9A,0x000004FB,0x0000192D,0xFFFFF8E9,0x000002DF,0x0000192D,0xFFFFF8E9,0x000002DF},
-       {"0000001000010011111100001111111010011001001011000010000001100100",0x00003682,0xFFFFE7E4,0x0000055C,0x0000250E,0xFFFFF150,0x0000041A,0x0000250E,0xFFFFF150,0x0000041A},
-       {"0000001000010011111100001111111010011001001010100010000010000100",0x0000284E,0xFFFFF15A,0x000003F8,0x00001CE2,0xFFFFF6F9,0x0000034F,0x00001CE2,0xFFFFF6F9,0x0000034F},
-       {"0000001000010011111100001111111010011001001100000001100010100100",0x00003171,0xFFFFEAE9,0x000004ED,0x00001F40,0xFFFFF513,0x00000384,0x00001F40,0xFFFFF513,0x00000384},
-       {"0000001000010011111100001111111010011001001100100011000001000100",0x000031BD,0xFFFFEA64,0x0000050A,0x00001EFD,0xFFFFF4F7,0x00000390,0x00001EFD,0xFFFFF4F7,0x00000390},
-       {"0000001000010011111100001111111010011001001011100101000011100100",0x00003050,0xFFFFEB29,0x000004EA,0x000019B3,0xFFFFF878,0x000002F9,0x000019B3,0xFFFFF878,0x000002F9},
-       {"0000001000010011111100001111111010011001001011000001100100000100",0x00003400,0xFFFFE9A0,0x0000051A,0x00002460,0xFFFFF1DA,0x00000409,0x00002460,0xFFFFF1DA,0x00000409},
-       {"0000001000010011111100001111111010011001001011000100100010000100",0x000034A1,0xFFFFE86F,0x00000558,0x0000255D,0xFFFFF09E,0x00000443,0x0000255D,0xFFFFF09E,0x00000443},
-       {"0000001000010011111100001111111010011001001011100100100011100100",0x00003103,0xFFFFEAD7,0x000004F0,0x00001896,0xFFFFF95A,0x000002CC,0x00001896,0xFFFFF95A,0x000002CC},
-       {"0000001000010011111100001111111010011001001100000001100011100100",0x00003120,0xFFFFEB9E,0x000004CB,0x000021E8,0xFFFFF3A2,0x000003C1,0x000021E8,0xFFFFF3A2,0x000003C1},
-       {"0000001000010011111100001111111010011001000111000101000011100100",0x00003558,0xFFFFE812,0x00000565,0x0000256E,0xFFFFF097,0x00000447,0x0000256E,0xFFFFF097,0x00000447},
-       {"0000001000010011111100001111111010011001000110100010100001000100",0x00002DA8,0xFFFFECA8,0x000004B7,0x0000180B,0xFFFFF96D,0x000002D8,0x0000180B,0xFFFFF96D,0x000002D8},
-       {"0000001000010011111100001111111010011001001011100011000001100100",0x00003232,0xFFFFEA66,0x000004FF,0x00001DDE,0xFFFFF5FE,0x0000035A,0x00001DDE,0xFFFFF5FE,0x0000035A},
-       {"0000001000010011111100001111111010011001001100000101000011100100",0x000034D2,0xFFFFE89F,0x00000548,0x0000246C,0xFFFFF17F,0x00000418,0x0000246C,0xFFFFF17F,0x00000418},
-       {"0000001000010011111100001111111010011001001100000100100100000100",0x000033EC,0xFFFFE954,0x0000052A,0x00002323,0xFFFFF279,0x000003EE,0x00002323,0xFFFFF279,0x000003EE},
-       {"0000001000010011111100001111111010011001001100000011100010000100",0x000033AA,0xFFFFE955,0x0000052D,0x0000229F,0xFFFFF2B2,0x000003E7,0x0000229F,0xFFFFF2B2,0x000003E7},
-       {"0000001000010011111100001111111010011001001100100100100101100100",0x00003258,0xFFFFE9AA,0x0000052A,0x00001D5F,0xFFFFF5D1,0x0000036B,0x00001D5F,0xFFFFF5D1,0x0000036B},
-       {"0000001000010011111100001111111010011001001100000010100110100100",0x0000323A,0xFFFFEA5F,0x00000504,0x00002108,0xFFFFF3D5,0x000003BA,0x00002108,0xFFFFF3D5,0x000003BA},
-       {"0000001000010011111100001111111010011001001011000010000110000100",0x00003216,0xFFFFEA6B,0x000004FF,0x00001D6E,0xFFFFF640,0x00000350,0x00001D6E,0xFFFFF640,0x00000350},
-       {"0000001000010011111100001111111010011001001100100001000011100100",0x000030C5,0xFFFFEAC4,0x000004FC,0x00001924,0xFFFFF8C2,0x000002EE,0x00001924,0xFFFFF8C2,0x000002EE},
-       {"0000001000010011111100001111111010011001001100000101000100000100",0x000032BB,0xFFFFE9F1,0x00000515,0x00002211,0xFFFFF31B,0x000003D5,0x00002211,0xFFFFF31B,0x000003D5},
-       {"0000001000010011111100001111111010011001001100000100100011000100",0x0000352C,0xFFFFE85B,0x00000553,0x00002410,0xFFFFF1B4,0x0000040F,0x00002410,0xFFFFF1B4,0x0000040F},
-       {"0000001000010011111100001111111010011001001000100011100011000100",0x000036A0,0xFFFFE7E8,0x0000055D,0x00002901,0xFFFFEEB8,0x00000489,0x00002901,0xFFFFEEB8,0x00000489},
-       {"0000001000010011111100001111111010011001001011000011000001000100",0x00003340,0xFFFFE9D9,0x00000516,0x00002332,0xFFFFF27A,0x000003F0,0x00002332,0xFFFFF27A,0x000003F0},
-       {"0000001000010011111100001111111010011001000110100011100010100100",0x00003564,0xFFFFE86D,0x0000054E,0x00002613,0xFFFFF07C,0x00000444,0x00002613,0xFFFFF07C,0x00000444},
-       {"0000001000010011111100001111111010011001001010000000100100000100",0x00002AD1,0xFFFFEF0B,0x0000045C,0x00001DEA,0xFFFFF5C8,0x00000381,0x00001DEA,0xFFFFF5C8,0x00000381},
-       {"0000001000010011111100001111111010011001001000100010000011100100",0x000035B0,0xFFFFE846,0x00000555,0x000027BE,0xFFFFEF5D,0x00000474,0x000027BE,0xFFFFEF5D,0x00000474},
-       {"0000001000010011111100001111111010011001001000100011100010100100",0x000032C4,0xFFFFEA48,0x00000502,0x000022C6,0xFFFFF2DF,0x000003DE,0x000022C6,0xFFFFF2DF,0x000003DE},
-       {"0000001000010011111100001111111010011001001100000000100011000100",0x00003036,0xFFFFEB0D,0x000004F9,0x00001FE8,0xFFFFF41A,0x000003BC,0x00001FE8,0xFFFFF41A,0x000003BC},
-       {"0000001000010011111100001111111010011001000110100000100100000100",0x000030F8,0xFFFFEA13,0x00000524,0x00001B6A,0xFFFFF6C9,0x0000034A,0x00001B6A,0xFFFFF6C9,0x0000034A},
-       {"0000001000010011111100001111111010011001001100000001000010100100",0x00002EE2,0xFFFFEC0C,0x000004CB,0x00001A39,0xFFFFF814,0x0000030F,0x00001A39,0xFFFFF814,0x0000030F},
-       {"0000001000010011111100001111111010011001000111000011000110000100",0x00003457,0xFFFFE924,0x0000052A,0x00001E9D,0xFFFFF59C,0x00000363,0x00001E9D,0xFFFFF59C,0x00000363},
-       {"0000001000010011111100001111111010011001001100100010100001000100",0x000030BF,0xFFFFEB18,0x000004ED,0x00001D37,0xFFFFF636,0x0000035C,0x00001D37,0xFFFFF636,0x0000035C},
-       {"0000001000010011111100001111111010011001001011100100000010000100",0x000031AF,0xFFFFEA75,0x000004FE,0x000019F2,0xFFFFF87A,0x000002F0,0x000019F2,0xFFFFF87A,0x000002F0},
-       {"0000001000010011111100001111111010011001001100000010100010000100",0x00003642,0xFFFFE85B,0x00000547,0x00002975,0xFFFFEE98,0x0000048B,0x00002975,0xFFFFEE98,0x0000048B},
-       {"0000001000010011111100001111111010011001001011100010100010000100",0x00002E8B,0xFFFFED1E,0x0000048E,0x000019C1,0xFFFFF917,0x000002D6,0x000019C1,0xFFFFF917,0x000002D6},
-       {"0000001000010011111100001111111010011001001100100100000110100100",0x000033D9,0xFFFFE8E1,0x00000548,0x0000224B,0xFFFFF298,0x000003F4,0x0000224B,0xFFFFF298,0x000003F4},
-       {"0000001000010011111100001111111010011001001011100010100011000100",0x000032BC,0xFFFFEB0F,0x000004D6,0x00002488,0xFFFFF240,0x000003F2,0x00002488,0xFFFFF240,0x000003F2},
-       {"0000001000010011111100001111111010011001001100000100100101000100",0x000035FD,0xFFFFE838,0x00000553,0x00002762,0xFFFFEFBC,0x00000460,0x00002762,0xFFFFEFBC,0x00000460},
-       {"0000001000010011111100001111111010011001001010000001100010100100",0x0000268B,0xFFFFF263,0x000003D1,0x00001914,0xFFFFF977,0x000002E8,0x00001914,0xFFFFF977,0x000002E8},
-       {"0000001000010011111100001111111010011001001011000011000110000100",0x0000330B,0xFFFFEA1E,0x00000505,0x000020B1,0xFFFFF44D,0x0000039E,0x000020B1,0xFFFFF44D,0x0000039E},
-       {"0000001000010011111100001111111010011001001000100010000010000100",0x0000326E,0xFFFFEA26,0x00000508,0x00001C17,0xFFFFF722,0x00000328,0x00001C17,0xFFFFF722,0x00000328},
-       {"0000001000010011111100001111111010011001001010100011000110100100",0x00002A3F,0xFFFFEEE8,0x0000046D,0x00001B2B,0xFFFFF737,0x0000034D,0x00001B2B,0xFFFFF737,0x0000034D},
-       {"0000001000010011111100001111111010011001001011000100000001100100",0x00003732,0xFFFFE765,0x00000574,0x00002A6D,0xFFFFEDA8,0x000004B7,0x00002A6D,0xFFFFEDA8,0x000004B7},
-       {"0000001000010011111100001111111010011001001100000000100100100100",0x000034D3,0xFFFFE827,0x00000569,0x000027AA,0xFFFFEEE7,0x00000492,0x000027AA,0xFFFFEEE7,0x00000492},
-       {"0000001000010011111100001111111010011001001011100100000011000100",0x00003306,0xFFFFEA39,0x000004FC,0x00001DCC,0xFFFFF655,0x00000344,0x00001DCC,0xFFFFF655,0x00000344},
-       {"0000001000010011111100001111111010011001001010000010000001000100",0x00002A48,0xFFFFEFCA,0x00000439,0x00001DED,0xFFFFF60D,0x00000375,0x00001DED,0xFFFFF60D,0x00000375},
-       {"0000001000010011111100001111111010011001001100000011100011000100",0x000033A3,0xFFFFEA36,0x000004F9,0x0000247C,0xFFFFF21F,0x000003F4,0x0000247C,0xFFFFF21F,0x000003F4},
-       {"0000001000010011111100001111111010011001001011000011000101100100",0x0000311B,0xFFFFEB76,0x000004D1,0x00001EB1,0xFFFFF5B6,0x00000366,0x00001EB1,0xFFFFF5B6,0x00000366},
-       {"0000001000010011111100001111111010011001001100100100000101100100",0x00003307,0xFFFFE97F,0x0000052A,0x00001E76,0xFFFFF54D,0x0000037C,0x00001E76,0xFFFFF54D,0x0000037C},
-       {"0000001000010011111100001111111010011001000111000010000101000100",0x0000344B,0xFFFFE9C5,0x00000509,0x000020D6,0xFFFFF486,0x0000038F,0x000020D6,0xFFFFF486,0x0000038F},
-       {"0000001000010011111100001111111010011001001011000011000101000100",0x000034B9,0xFFFFEA0B,0x000004F7,0x000027B3,0xFFFFF057,0x0000043A,0x000027B3,0xFFFFF057,0x0000043A},
-       {"0000001000010011111100001111111010011001001100000001100101100100",0x00003360,0xFFFFE984,0x00000527,0x00002238,0xFFFFF2EE,0x000003E0,0x00002238,0xFFFFF2EE,0x000003E0},
-       {"0000001000010011111100001111111010011001001100000010000100100100",0x0000315C,0xFFFFEC05,0x000004B1,0x000023C8,0xFFFFF2CC,0x000003DE,0x000023C8,0xFFFFF2CC,0x000003DE},
-       {"0000001000010011111100001111111010011001001011000010100001100100",0x0000389B,0xFFFFE6D5,0x00000582,0x00002C6C,0xFFFFEC92,0x000004DE,0x00002C6C,0xFFFFEC92,0x000004DE},
-       {"0000001000010011111100001111111010011001001011100001000100100100",0x00003058,0xFFFFEB30,0x000004E6,0x000019B5,0xFFFFF88B,0x000002F1,0x000019B5,0xFFFFF88B,0x000002F1},
-       {"0000001000010011111100001111111010011001001011100000100100000100",0x00002F69,0xFFFFEB4A,0x000004F1,0x00001B82,0xFFFFF6EC,0x00000341,0x00001B82,0xFFFFF6EC,0x00000341},
-       {"0000001000010011111100001111111010011001000110100001100011100100",0x000031EB,0xFFFFEA64,0x00000508,0x00002059,0xFFFFF427,0x000003B0,0x00002059,0xFFFFF427,0x000003B0},
-       {"0000001000010011111100001111111010011001001000100100000100100100",0x000033E2,0xFFFFE94D,0x0000052A,0x000020BF,0xFFFFF40B,0x000003AB,0x000020BF,0xFFFFF40B,0x000003AB},
-       {"0000001000010011111100001111111010011001001010000011000110000100",0x00002AF9,0xFFFFEFE9,0x00000427,0x00001F72,0xFFFFF57A,0x00000383,0x00001F72,0xFFFFF57A,0x00000383},
-       {"0000001000010011111100001111111010011001001011000010100000100100",0x00003282,0xFFFFEA88,0x000004FA,0x00002561,0xFFFFF126,0x0000042B,0x00002561,0xFFFFF126,0x0000042B},
-       {"0000001000010011111100001111111010011001001100000001000011100100",0x0000308A,0xFFFFEB5D,0x000004E0,0x00001E83,0xFFFFF577,0x00000378,0x00001E83,0xFFFFF577,0x00000378},
-       {"0000001000010011111100001111111010011001001100100100100010000100",0x0000336E,0xFFFFE8C8,0x00000553,0x0000217C,0xFFFFF2E1,0x000003EB,0x0000217C,0xFFFFF2E1,0x000003EB},
-       {"0000001000010011111100001111111010011001000110100010000101100100",0x000034A9,0xFFFFE838,0x00000561,0x000020CE,0xFFFFF38A,0x000003C7,0x000020CE,0xFFFFF38A,0x000003C7},
-       {"0000001000010011111100001111111010011001001000100010000110000100",0x00003152,0xFFFFE9EB,0x00000522,0x00001755,0xFFFFF9A9,0x000002C6,0x00001755,0xFFFFF9A9,0x000002C6},
-       {"0000001000010011111100001111111010011001001010000001100010000100",0x0000286E,0xFFFFF136,0x000003FD,0x00001BAB,0xFFFFF7C3,0x0000032C,0x00001BAB,0xFFFFF7C3,0x0000032C},
-       {"0000001000010011111100001111111010011001001100000000100101000100",0x0000316B,0xFFFFEA02,0x00000528,0x00002247,0xFFFFF24E,0x00000408,0x00002247,0xFFFFF24E,0x00000408},
-       {"0000001000010011111100001111111010011001001011000000100011100100",0x000034CF,0xFFFFE83D,0x00000562,0x00002458,0xFFFFF130,0x00000430,0x00002458,0xFFFFF130,0x00000430},
-       {"0000001000010011111100001111111010011001001011000010100110000100",0x00003352,0xFFFFE9D1,0x00000515,0x0000212A,0xFFFFF3DC,0x000003B4,0x0000212A,0xFFFFF3DC,0x000003B4},
-       {"0000001000010011111100001111111010011001001010000100000010100100",0x00002946,0xFFFFF09B,0x00000415,0x00001DC9,0xFFFFF650,0x00000366,0x00001DC9,0xFFFFF650,0x00000366},
-       {"0000001000010011111100001111111010011001001100000001000100100100",0x00003080,0xFFFFEB47,0x000004E1,0x00001BD5,0xFFFFF73B,0x00000329,0x00001BD5,0xFFFFF73B,0x00000329},
-       {"0000001000010011111100001111111010011001000110100001100010000100",0x00002FBD,0xFFFFEB7B,0x000004DD,0x000017FC,0xFFFFF99E,0x000002C7,0x000017FC,0xFFFFF99E,0x000002C7},
-       {"0000001000010011111100001111111010011001001010000001000100100100",0x00002A28,0xFFFFF032,0x0000041F,0x00001B19,0xFFFFF83A,0x00000312,0x00001B19,0xFFFFF83A,0x00000312},
-       {"0000001000010011111100001111111010011001001000100100000011000100",0x00003420,0xFFFFE936,0x00000530,0x000023C2,0xFFFFF203,0x00000406,0x000023C2,0xFFFFF203,0x00000406},
-       {"0000001000010011111100001111111010011001001100000001000101000100",0x00002F7C,0xFFFFEBBA,0x000004D1,0x0000185D,0xFFFFF975,0x000002CA,0x0000185D,0xFFFFF975,0x000002CA},
-       {"0000001000010011111100001111111010011001001011100010000001000100",0x00002C51,0xFFFFEE3B,0x0000046F,0x000019AA,0xFFFFF8DD,0x000002ED,0x000019AA,0xFFFFF8DD,0x000002ED},
-       {"0000001000010011111100001111111010011001000110100100000101000100",0x000033D6,0xFFFFE8F2,0x0000053D,0x00001D73,0xFFFFF5FB,0x0000035B,0x00001D73,0xFFFFF5FB,0x0000035B},
-       {"0000001000010011111100001111111010011001001100100011000010000100",0x000031D9,0xFFFFEAF7,0x000004E4,0x00001EBD,0xFFFFF5A6,0x00000368,0x00001EBD,0xFFFFF5A6,0x00000368},
-       {"0000001000010011111100001111111010011001000110100010000010100100",0x00003386,0xFFFFE9CE,0x00000515,0x00002422,0xFFFFF1F3,0x00000405,0x00002422,0xFFFFF1F3,0x00000405},
-       {"0000001000010011111100001111111010011001001011000101000011100100",0x000032FB,0xFFFFE9BC,0x00000520,0x00002301,0xFFFFF267,0x000003F7,0x00002301,0xFFFFF267,0x000003F7},
-       {"0000001000010011111100001111111010011001001100100010100100100100",0x000032C2,0xFFFFEAC0,0x000004EA,0x0000250F,0xFFFFF1A2,0x00000413,0x0000250F,0xFFFFF1A2,0x00000413},
-       {"0000001000010011111100001111111010011001000111000010100101000100",0x00003722,0xFFFFE8A6,0x00000527,0x000026E4,0xFFFFF0F5,0x0000041C,0x000026E4,0xFFFFF0F5,0x0000041C},
-       {"0000001000010011111100001111111010011001001011000100100011000100",0x000035A4,0xFFFFE822,0x00000558,0x000022F2,0xFFFFF288,0x000003E8,0x000022F2,0xFFFFF288,0x000003E8},
-       {"0000001000010011111100001111111010011001001010000000100100100100",0x00002CD1,0xFFFFEDC6,0x0000048C,0x00001EAF,0xFFFFF53D,0x00000396,0x00001EAF,0xFFFFF53D,0x00000396},
-       {"0000001000010011111100001111111010011001001100000001000101100100",0x00003156,0xFFFFEA60,0x0000050B,0x00001BBC,0xFFFFF704,0x00000335,0x00001BBC,0xFFFFF704,0x00000335},
-       {"0000001000010011111100001111111010011001001011000101000100000100",0x000034A1,0xFFFFE8C0,0x00000544,0x00002528,0xFFFFF105,0x0000042C,0x00002528,0xFFFFF105,0x0000042C},
-       {"0000001000010011111100001111111010011001001100100011000001100100",0x000032CE,0xFFFFE9D3,0x00000520,0x000021FF,0xFFFFF2FD,0x000003E4,0x000021FF,0xFFFFF2FD,0x000003E4},
-       {"0000001000010011111100001111111010011001000110100101000010100100",0x000034A0,0xFFFFE823,0x0000056D,0x0000256F,0xFFFFF047,0x0000045A,0x0000256F,0xFFFFF047,0x0000045A},
-       {"0000001000010011111100001111111010011001001100000011100101000100",0x00003109,0xFFFFEBD6,0x000004BF,0x000022D4,0xFFFFF32D,0x000003D0,0x000022D4,0xFFFFF32D,0x000003D0},
-       {"0000001000010011111100001111111010011001001011000001000101100100",0x000030B7,0xFFFFEAF0,0x000004F3,0x00001AEC,0xFFFFF7A9,0x0000031B,0x00001AEC,0xFFFFF7A9,0x0000031B},
-       {"0000001000010011111100001111111010011001001011000011100110100100",0x00003078,0xFFFFEBA4,0x000004CF,0x00001E7A,0xFFFFF5AF,0x0000036B,0x00001E7A,0xFFFFF5AF,0x0000036B},
-       {"0000001000010011111100001111111010011001001100000100000100100100",0x00003442,0xFFFFE998,0x00000518,0x000025EA,0xFFFFF0F3,0x0000042B,0x000025EA,0xFFFFF0F3,0x0000042B},
-       {"0000001000010011111100001111111010011001001100000010000110100100",0x000031CB,0xFFFFEA80,0x00000501,0x000020A3,0xFFFFF403,0x000003B2,0x000020A3,0xFFFFF403,0x000003B2},
-       {"0000001000010011111100001111111010011001001010100010100110000100",0x00002947,0xFFFFF018,0x00000433,0x00001BA5,0xFFFFF75C,0x00000340,0x00001BA5,0xFFFFF75C,0x00000340},
-       {"0000001000010011111100001111111010011001001011000011100110000100",0x000033F9,0xFFFFE99D,0x00000518,0x00002231,0xFFFFF358,0x000003C5,0x00002231,0xFFFFF358,0x000003C5},
-       {"0000001000010011111100001111111010011001001100100001000100100100",0x00003131,0xFFFFEA45,0x00000513,0x00001973,0xFFFFF85E,0x00000301,0x00001973,0xFFFFF85E,0x00000301},
-       {"0000001000010011111100001111111010011001000111000010100110100100",0x00003571,0xFFFFE8AC,0x00000539,0x00002049,0xFFFFF49C,0x0000038D,0x00002049,0xFFFFF49C,0x0000038D},
-       {"0000001000010011111100001111111010011001001011100011100001100100",0x0000309E,0xFFFFEB1D,0x000004E8,0x000019ED,0xFFFFF86E,0x000002F8,0x000019ED,0xFFFFF86E,0x000002F8},
-       {"0000001000010011111100001111111010011001001100000010100110000100",0x00003091,0xFFFFEB9B,0x000004CC,0x00001D2C,0xFFFFF6A2,0x0000033D,0x00001D2C,0xFFFFF6A2,0x0000033D},
-       {"0000001000010011111100001111111010011001001100000000100011100100",0x00003069,0xFFFFEAFD,0x000004F8,0x00001E82,0xFFFFF51C,0x0000038D,0x00001E82,0xFFFFF51C,0x0000038D},
-       {"0000001000010011111100001111111010011001001000100001000010100100",0x00003459,0xFFFFE7F2,0x00000572,0x00001DA7,0xFFFFF552,0x0000037F,0x00001DA7,0xFFFFF552,0x0000037F},
-       {"0000001000010011111100001111111010011001001100100001000100000100",0x0000304B,0xFFFFEAFB,0x000004F4,0x0000191E,0xFFFFF8BD,0x000002EE,0x0000191E,0xFFFFF8BD,0x000002EE},
-       {"0000001000010011111100001111111010011001001100000010000011000100",0x0000346E,0xFFFFEA07,0x000004FD,0x00002767,0xFFFFF058,0x00000440,0x00002767,0xFFFFF058,0x00000440},
-       {"0000001000010011111100001111111010011001001011100011000010000100",0x000030B5,0xFFFFEBC1,0x000004C1,0x00001B3C,0xFFFFF818,0x000002FD,0x00001B3C,0xFFFFF818,0x000002FD},
-       {"0000001000010011111100001111111010011001001100000000100100000100",0x0000321F,0xFFFFE9EA,0x00000524,0x00002380,0xFFFFF1C2,0x0000041A,0x00002380,0xFFFFF1C2,0x0000041A},
-       {"0000001000010011111100001111111010011001001011100011000001000100",0x000030DF,0xFFFFEB37,0x000004E2,0x00001E3C,0xFFFFF5BB,0x00000369,0x00001E3C,0xFFFFF5BB,0x00000369},
-       {"0000001000010011111100001111111010011001001010000100100010100100",0x000027E0,0xFFFFF0E2,0x00000416,0x00001A6A,0xFFFFF820,0x00000321,0x00001A6A,0xFFFFF820,0x00000321},
-       {"0000001000010011111100001111111010011001000110100001000010000100",0x00002FA1,0xFFFFEB63,0x000004E7,0x0000196B,0xFFFFF880,0x000002FB,0x0000196B,0xFFFFF880,0x000002FB},
-       {"0000001000010011111100001111111010011001000111000001000010000100",0x0000310C,0xFFFFEAAF,0x000004FC,0x000019EF,0xFFFFF850,0x000002FD,0x000019EF,0xFFFFF850,0x000002FD},
-       {"0000001000010011111100001111111010011001001100100011100100000100",0x0000334A,0xFFFFEA07,0x0000050B,0x00002380,0xFFFFF26F,0x000003F0,0x00002380,0xFFFFF26F,0x000003F0},
-       {"0000001000010011111100001111111010011001001100000010100101000100",0x00002FF9,0xFFFFECDC,0x00000492,0x00002297,0xFFFFF394,0x000003BF,0x00002297,0xFFFFF394,0x000003BF},
-       {"0000001000010011111100001111111010011001001011000010000101100100",0x0000354B,0xFFFFE894,0x00000546,0x000024C4,0xFFFFF16C,0x0000041B,0x000024C4,0xFFFFF16C,0x0000041B},
-       {"0000001000010011111100001111111010011001001000100000100100100100",0x00003245,0xFFFFE92F,0x00000544,0x00001829,0xFFFFF8F1,0x000002EA,0x00001829,0xFFFFF8F1,0x000002EA},
-       {"0000001000010011111100001111111010011001001011100100100010000100",0x0000302F,0xFFFFEB51,0x000004E3,0x0000199F,0xFFFFF894,0x000002F4,0x0000199F,0xFFFFF894,0x000002F4},
-       {"0000001000010011111100001111111010011001001011100001100011000100",0x00002F54,0xFFFFEC86,0x000004A6,0x00001A6F,0xFFFFF891,0x000002EC,0x00001A6F,0xFFFFF891,0x000002EC},
-       {"0000001000010011111100001111111010011001001010000100000101100100",0x00002908,0xFFFFF0D8,0x0000040A,0x00001C9B,0xFFFFF729,0x00000342,0x00001C9B,0xFFFFF729,0x00000342},
-       {"0000001000010011111100001111111010011001001100000010100101100100",0x000031D9,0xFFFFEB40,0x000004D7,0x000023F5,0xFFFFF259,0x000003F4,0x000023F5,0xFFFFF259,0x000003F4},
-       {"0000001000010011111100001111111010011001001100000100100011100100",0x000034C8,0xFFFFE8C6,0x0000053F,0x00002313,0xFFFFF280,0x000003EC,0x00002313,0xFFFFF280,0x000003EC},
-       {"0000001000010011111100001111111010011001001100000101000011000100",0x000037D1,0xFFFFE6A1,0x0000059C,0x00002C6A,0xFFFFEBFF,0x00000504,0x00002C6A,0xFFFFEBFF,0x00000504},
-       {"0000001000010011111100001111111010011001001100100001100101100100",0x000030E9,0xFFFFEA6B,0x0000050F,0x00001A2D,0xFFFFF7DF,0x00000316,0x00001A2D,0xFFFFF7DF,0x00000316},
-       {"0000001000010011111100001111111010011001001100000010000010000100",0x0000323D,0xFFFFEA95,0x000004F4,0x00001ED2,0xFFFFF584,0x0000036C,0x00001ED2,0xFFFFF584,0x0000036C},
-       {"0000001000010011111100001111111010011001001011000011000000100100",0x000033D6,0xFFFFE9DB,0x00000510,0x000027A7,0xFFFFEFC7,0x0000045E,0x000027A7,0xFFFFEFC7,0x0000045E},
-       {"0000001000010011111100001111111010011001000111000011000101100100",0x00003444,0xFFFFE98A,0x00000517,0x000020FD,0xFFFFF43F,0x0000039D,0x000020FD,0xFFFFF43F,0x0000039D},
-       {"0000001000010011111100001111111010011001001010000000100011100100",0x00002987,0xFFFFEFA1,0x0000044B,0x00001B06,0xFFFFF788,0x0000033C,0x00001B06,0xFFFFF788,0x0000033C},
-       {"0000001000010011111100001111111010011001001011000010100011100100",0x0000311D,0xFFFFED20,0x00000474,0x000025DA,0xFFFFF223,0x000003F0,0x000025DA,0xFFFFF223,0x000003F0},
-       {"0000001000010011111100001111111010011001001011000001000100100100",0x000032A2,0xFFFFEA0A,0x0000050D,0x00001D48,0xFFFFF659,0x0000034A,0x00001D48,0xFFFFF659,0x0000034A},
-       {"0000001000010011111100001111111010011001001000100000100011100100",0x00003110,0xFFFFE9EA,0x00000529,0x00001786,0xFFFFF958,0x000002DB,0x00001786,0xFFFFF958,0x000002DB},
-       {"0000001000010011111100001111111010011001001010000010000110100100",0x000027F2,0xFFFFF174,0x000003F7,0x00001C7A,0xFFFFF72A,0x00000348,0x00001C7A,0xFFFFF72A,0x00000348},
-       {"0000001000010011111100001111111010011001000111000001000011100100",0x000031DB,0xFFFFEA7D,0x000004FB,0x000019C4,0xFFFFF8B1,0x000002E6,0x000019C4,0xFFFFF8B1,0x000002E6},
-       {"0000001000010011111100001111111010011001001011000001000100000100",0x00003158,0xFFFFEAAC,0x000004FA,0x00001BC1,0xFFFFF737,0x0000032B,0x00001BC1,0xFFFFF737,0x0000032B},
-       {"0000001000010011111100001111111010011001001100000001000011000100",0x00002F36,0xFFFFEBF9,0x000004CA,0x00001A2A,0xFFFFF83F,0x00000303,0x00001A2A,0xFFFFF83F,0x00000303},
-       {"0000001000010011111100001111111010011001001100100011100010100100",0x000032B4,0xFFFFEA72,0x000004FA,0x000021FF,0xFFFFF378,0x000003C5,0x000021FF,0xFFFFF378,0x000003C5},
-       {"0000001000010011111100001111111010011001001100000011000101100100",0x00003262,0xFFFFEAFA,0x000004DF,0x00002441,0xFFFFF237,0x000003F6,0x00002441,0xFFFFF237,0x000003F6},
-       {"0000001000010011111100001111111010011001001100000011100100100100",0x0000336A,0xFFFFEAFB,0x000004D1,0x00002746,0xFFFFF0B8,0x0000042B,0x00002746,0xFFFFF0B8,0x0000042B},
-       {"0000001000010011111100001111111010011001000110100100000010000100",0x000032E5,0xFFFFE923,0x00000541,0x00001DF0,0xFFFFF552,0x00000380,0x00001DF0,0xFFFFF552,0x00000380},
-       {"0000001000010011111100001111111010011001001100000100000001100100",0x000035D1,0xFFFFE80B,0x0000055F,0x00002780,0xFFFFEF74,0x0000046F,0x00002780,0xFFFFEF74,0x0000046F},
-       {"0000001000010011111100001111111010011001001100000010100010100100",0x000033EC,0xFFFFEA48,0x000004F4,0x0000269F,0xFFFFF0D8,0x0000042A,0x0000269F,0xFFFFF0D8,0x0000042A},
-       {"0000001000010011111100001111111010011001001100100011100010000100",0x000030C4,0xFFFFEB39,0x000004E2,0x00001B44,0xFFFFF7AA,0x00000318,0x00001B44,0xFFFFF7AA,0x00000318},
-       {"0000001000010011111100001111111010011001001010000001000101000100",0x00002926,0xFFFFF0AF,0x0000040E,0x0000194E,0xFFFFF959,0x000002E2,0x0000194E,0xFFFFF959,0x000002E2},
-       {"0000001000010011111100001111111010011001001011000001000011000100",0x00003141,0xFFFFEAAF,0x000004F6,0x00001864,0xFFFFF97C,0x000002C6,0x00001864,0xFFFFF97C,0x000002C6},
-       {"0000001000010011111100001111111010011001001100000001000001100100",0x000030B2,0xFFFFEB7C,0x000004DB,0x000022CE,0xFFFFF2B5,0x000003F0,0x000022CE,0xFFFFF2B5,0x000003F0},
-       {"0000001000010011111100001111111010011001001100000001100101000100",0x0000318C,0xFFFFEAC7,0x000004F6,0x00002113,0xFFFFF3CA,0x000003BD,0x00002113,0xFFFFF3CA,0x000003BD},
-       {"0000001000010011111100001111111010011001001011100001000100000100",0x00002FD2,0xFFFFEB8F,0x000004D9,0x00001996,0xFFFFF89F,0x000002F1,0x00001996,0xFFFFF89F,0x000002F1},
-       {"0000001000010011111100001111111010011001000110100010100010100100",0x0000310D,0xFFFFEB25,0x000004E7,0x00001F67,0xFFFFF4EF,0x0000038E,0x00001F67,0xFFFFF4EF,0x0000038E},
-       {"0000001000010011111100001111111010011001001010100100100101100100",0x00002BBC,0xFFFFEE68,0x00000477,0x00002050,0xFFFFF41D,0x000003C8,0x00002050,0xFFFFF41D,0x000003C8},
-       {"0000001000010011111100001111111010011001001100000010000100000100",0x00003096,0xFFFFECED,0x00000486,0x000024C9,0xFFFFF278,0x000003E7,0x000024C9,0xFFFFF278,0x000003E7},
-       {"0000001000010011111100001111111010011001001011000001000010100100",0x00003401,0xFFFFE8F1,0x0000053C,0x00001E75,0xFFFFF55C,0x00000376,0x00001E75,0xFFFFF55C,0x00000376},
-       {"0000001000010011111100001111111010011001001100000010100001000100",0x0000319E,0xFFFFEAB1,0x000004F8,0x00001EA3,0xFFFFF567,0x00000378,0x00001EA3,0xFFFFF567,0x00000378},
-       {"0000001000010011111100001111111010011001001100100010100101100100",0x000030FD,0xFFFFEB4C,0x000004DB,0x00001CA6,0xFFFFF6E8,0x00000335,0x00001CA6,0xFFFFF6E8,0x00000335},
-       {"0000001000010011111100001111111010011001001011100100000010100100",0x000030D6,0xFFFFEB1A,0x000004E4,0x00001A0D,0xFFFFF87D,0x000002EF,0x00001A0D,0xFFFFF87D,0x000002EF},
-       {"0000001000010011111100001111111010011001001011000010000100100100",0x0000324B,0xFFFFEB17,0x000004D9,0x00002225,0xFFFFF3A8,0x000003BA,0x00002225,0xFFFFF3A8,0x000003BA},
-       {"0000001000010011111100001111111010011001001010000100000010000100",0x00002A00,0xFFFFF02E,0x00000424,0x00001E21,0xFFFFF61D,0x0000036C,0x00001E21,0xFFFFF61D,0x0000036C},
-       {"0000001000010011111100001111111010011001001010100100100010100100",0x000029CF,0xFFFFEF53,0x00000457,0x00001B11,0xFFFFF772,0x0000033D,0x00001B11,0xFFFFF772,0x0000033D},
-       {"0000001000010011111100001111111010011001000110100011000010100100",0x000032A1,0xFFFFEA63,0x000004FB,0x00001F83,0xFFFFF516,0x0000037E,0x00001F83,0xFFFFF516,0x0000037E},
-       {"0000001000010011111100001111111010011001001011100010000011000100",0x0000305C,0xFFFFEC14,0x000004B5,0x00001D0B,0xFFFFF6ED,0x00000332,0x00001D0B,0xFFFFF6ED,0x00000332},
-       {"0000001000010011111100001111111010011001001011000001000001100100",0x00003467,0xFFFFE8D5,0x00000543,0x0000243F,0xFFFFF190,0x00000418,0x0000243F,0xFFFFF190,0x00000418},
-       {"0000001000010011111100001111111010011001001010100010000001100100",0x00002796,0xFFFFF133,0x00000409,0x00001903,0xFFFFF91C,0x000002FC,0x00001903,0xFFFFF91C,0x000002FC},
-       {"0000001000010011111100001111111010011001001100000010000101100100",0x000031F6,0xFFFFEAB7,0x000004F5,0x000022B9,0xFFFFF2D0,0x000003E6,0x000022B9,0xFFFFF2D0,0x000003E6},
-       {"0000001000010011111100001111111010011001001011100101000100000100",0x00003196,0xFFFFEA76,0x00000503,0x00001CC5,0xFFFFF67D,0x0000034A,0x00001CC5,0xFFFFF67D,0x0000034A},
-       {"0000001000010011111100001111111010011001001100100001000101000100",0x00002F9E,0xFFFFEAD9,0x00000505,0x000017C1,0xFFFFF93D,0x000002DF,0x000017C1,0xFFFFF93D,0x000002DF},
-       {"0000001000010011111100001111111010011001001011100010000100100100",0x00002FBC,0xFFFFEC75,0x000004A8,0x00001D6D,0xFFFFF6AC,0x0000033D,0x00001D6D,0xFFFFF6AC,0x0000033D},
-       {"0000001000010011111100001111111010011001001011000011100010100100",0x00003541,0xFFFFE921,0x00000524,0x00002662,0xFFFFF0CB,0x0000042B,0x00002662,0xFFFFF0CB,0x0000042B},
-       {"0000001000010011111100001111111010011001001010100010000110100100",0x00002953,0xFFFFEF76,0x00000459,0x00001C05,0xFFFFF6A0,0x00000368,0x00001C05,0xFFFFF6A0,0x00000368},
-       {"0000001000010011111100001111111010011001001011000100100100100100",0x000034BC,0xFFFFE8DD,0x00000536,0x0000210E,0xFFFFF3F4,0x000003A8,0x0000210E,0xFFFFF3F4,0x000003A8},
-       {"0000001000010011111100001111111010011001001011000010100110100100",0x000034BE,0xFFFFE916,0x0000052F,0x000024A1,0xFFFFF1A6,0x00000410,0x000024A1,0xFFFFF1A6,0x00000410},
-       {"0000001000010011111100001111111010011001001100000100100101100100",0x000037B5,0xFFFFE7A9,0x0000055B,0x000028A1,0xFFFFEF51,0x00000467,0x000028A1,0xFFFFEF51,0x00000467},
-       {"0000001000010011111100001111111010011001001100000001000100000100",0x00002FC5,0xFFFFEBBE,0x000004D1,0x00001BA5,0xFFFFF757,0x00000328,0x00001BA5,0xFFFFF757,0x00000328},
-       {"0000001000010011111100001111111010011001001100000100000010100100",0x000033CB,0xFFFFE944,0x0000052B,0x00001FBE,0xFFFFF4B1,0x0000038C,0x00001FBE,0xFFFFF4B1,0x0000038C},
-       {"0000001000010011111100001111111010011001001100000001100001000100",0x000030AE,0xFFFFEBA0,0x000004D3,0x00002268,0xFFFFF316,0x000003DD,0x00002268,0xFFFFF316,0x000003DD},
-       {"0000001000010011111100001111111010011001001011000010000010100100",0x00002F90,0xFFFFEC5A,0x000004B0,0x00001C3A,0xFFFFF752,0x00000323,0x00001C3A,0xFFFFF752,0x00000323},
-       {"0000001000010011111100001111111010011001001011100011100011100100",0x00003113,0xFFFFEB91,0x000004C8,0x00001E3C,0xFFFFF623,0x0000034E,0x00001E3C,0xFFFFF623,0x0000034E},
-       {"0000001000010011111100001111111010011001001100100011100110000100",0x0000330B,0xFFFFE94B,0x00000539,0x000020E7,0xFFFFF37E,0x000003CD,0x000020E7,0xFFFFF37E,0x000003CD},
-       {"0000001000010011111100001111111010011001001011100010100001100100",0x000031D1,0xFFFFEACB,0x000004ED,0x00001E82,0xFFFFF5B2,0x00000365,0x00001E82,0xFFFFF5B2,0x00000365},
-       {"0000001000010011111100001111111010011001001010100011100110000100",0x00002CD5,0xFFFFEDC1,0x0000048D,0x000020F8,0xFFFFF3C1,0x000003D1,0x000020F8,0xFFFFF3C1,0x000003D1},
-       { NULL            ,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000,0x000}
+static const struct phm_fuses_default vega10_fuses_default[] = {
+       { 0x0213EA94DE0E4964, 0x00003C96, 0xFFFFE226, 0x00000656, 0x00002203, 0xFFFFF201, 0x000003FF, 0x00002203, 0xFFFFF201, 0x000003FF },
+       { 0x0213EA94DE0A1884, 0x00003CC5, 0xFFFFE23A, 0x0000064E, 0x00002258, 0xFFFFF1F7, 0x000003FC, 0x00002258, 0xFFFFF1F7, 0x000003FC },
+       { 0x0213EA94DE0E31A4, 0x00003CAF, 0xFFFFE36E, 0x00000602, 0x00001E98, 0xFFFFF569, 0x00000357, 0x00001E98, 0xFFFFF569, 0x00000357 },
+       { 0x0213EA94DE2C1144, 0x0000391A, 0xFFFFE548, 0x000005C9, 0x00001B98, 0xFFFFF707, 0x00000324, 0x00001B98, 0xFFFFF707, 0x00000324 },
+       { 0x0213EA94DE2C18C4, 0x00003821, 0xFFFFE674, 0x00000597, 0x00002196, 0xFFFFF361, 0x000003C0, 0x00002196, 0xFFFFF361, 0x000003C0 },
+       { 0x0213EA94DE263884, 0x000044A2, 0xFFFFDCB7, 0x00000738, 0x0000325C, 0xFFFFE6A7, 0x000005E6, 0x0000325C, 0xFFFFE6A7, 0x000005E6 },
+       { 0x0213EA94DE082924, 0x00004057, 0xFFFFE1CF, 0x0000063C, 0x00002E2E, 0xFFFFEB62, 0x000004FD, 0x00002E2E, 0xFFFFEB62, 0x000004FD },
+       { 0x0213EA94DE284924, 0x00003FD0, 0xFFFFDF0F, 0x000006E5, 0x0000267C, 0xFFFFEE2D, 0x000004AB, 0x0000267C, 0xFFFFEE2D, 0x000004AB },
+       { 0x0213EA94DE280904, 0x00003F13, 0xFFFFE010, 0x000006AD, 0x000020E7, 0xFFFFF266, 0x000003EC, 0x000020E7, 0xFFFFF266, 0x000003EC },
+       { 0x0213EA94DE082044, 0x00004088, 0xFFFFDFAB, 0x000006B6, 0x0000252B, 0xFFFFEFDB, 0x00000458, 0x0000252B, 0xFFFFEFDB, 0x00000458 },
+       { 0x0213EA94DE283884, 0x00003EF6, 0xFFFFE017, 0x000006AA, 0x00001F67, 0xFFFFF369, 0x000003BE, 0x00001F67, 0xFFFFF369, 0x000003BE },
+       { 0x0213EA94DE2C2184, 0x00003CDD, 0xFFFFE2A7, 0x0000063C, 0x000026C6, 0xFFFFEF38, 0x00000478, 0x000026C6, 0xFFFFEF38, 0x00000478 },
+       { 0x0213EA94DE105124, 0x00003FA8, 0xFFFFDF02, 0x000006F0, 0x000027FE, 0xFFFFECF6, 0x000004EA, 0x000027FE, 0xFFFFECF6, 0x000004EA },
+       { 0x0213EA94DE2638C4, 0x00004670, 0xFFFFDC40, 0x00000742, 0x00003A7A, 0xFFFFE1A7, 0x000006B6, 0x00003A7A, 0xFFFFE1A7, 0x000006B6 },
+       { 0x0213EA94DE2C3024, 0x00003CDC, 0xFFFFE18C, 0x00000683, 0x00002A69, 0xFFFFEBE7, 0x00000515, 0x00002A69, 0xFFFFEBE7, 0x00000515 },
+       { 0x0213EA94DE0E38C4, 0x00003CEC, 0xFFFFE38E, 0x00000601, 0x00002752, 0xFFFFEFA7, 0x00000453, 0x00002752, 0xFFFFEFA7, 0x00000453 },
+       { 0x0213EA94DE2C1124, 0x000037D0, 0xFFFFE634, 0x000005A7, 0x00001CD2, 0xFFFFF644, 0x00000348, 0x00001CD2, 0xFFFFF644, 0x00000348 },
+       { 0x0213EA94DE283964, 0x00003DF5, 0xFFFFE0A5, 0x00000698, 0x00001FD5, 0xFFFFF30E, 0x000003D1, 0x00001FD5, 0xFFFFF30E, 0x000003D1 },
+       { 0x0213EA94DE0828C4, 0x00004201, 0xFFFFE03E, 0x00000688, 0x00003206, 0xFFFFE852, 0x0000058A, 0x00003206, 0xFFFFE852, 0x0000058A },
+       { 0x0213EA94DE2C1864, 0x00003BED, 0xFFFFE2F5, 0x00000638, 0x0000270D, 0xFFFFEED0, 0x0000048E, 0x0000270D, 0xFFFFEED0, 0x0000048E },
+       { 0x0213EA94DE0A1904, 0x00003E82, 0xFFFFE1BE, 0x00000654, 0x000025FB, 0xFFFFEFFA, 0x00000448, 0x000025FB, 0xFFFFEFFA, 0x00000448 },
+       { 0x0213EA94DE2C40C4, 0x00003962, 0xFFFFE4B9, 0x000005EF, 0x00002385, 0xFFFFF156, 0x00000423, 0x00002385, 0xFFFFF156, 0x00000423 },
+       { 0x0213EA94DE2C0944, 0x00003D88, 0xFFFFE21A, 0x00000655, 0x0000295A, 0xFFFFED68, 0x000004C4, 0x0000295A, 0xFFFFED68, 0x000004C4 },
+       { 0x0213EA94DE2C1104, 0x00003AA4, 0xFFFFE4A3, 0x000005E0, 0x000022EF, 0xFFFFF250, 0x000003EB, 0x000022EF, 0xFFFFF250, 0x000003EB },
+       { 0x0213EA94DE0E29A4, 0x00003D97, 0xFFFFE30D, 0x0000060D, 0x0000205D, 0xFFFFF45D, 0x00000380, 0x0000205D, 0xFFFFF45D, 0x00000380 },
+       { 0x0213EA94DE2C40A4, 0x000039B6, 0xFFFFE446, 0x00000605, 0x00002325, 0xFFFFF16C, 0x0000041F, 0x00002325, 0xFFFFF16C, 0x0000041F },
+       { 0x0213EA94DE263904, 0x0000457E, 0xFFFFDCF6, 0x00000722, 0x00003972, 0xFFFFE27B, 0x0000068E, 0x00003972, 0xFFFFE27B, 0x0000068E },
+       { 0x0213EA94DE0A1924, 0x00003FB8, 0xFFFFE101, 0x00000670, 0x00002787, 0xFFFFEEF5, 0x00000471, 0x00002787, 0xFFFFEEF5, 0x00000471 },
+       { 0x0213EA94DE0E38A4, 0x00003BB2, 0xFFFFE430, 0x000005EA, 0x000024A5, 0xFFFFF162, 0x00000409, 0x000024A5, 0xFFFFF162, 0x00000409 },
+       { 0x0213EA94DE082144, 0x00003EC5, 0xFFFFE1BD, 0x0000064F, 0x000022F0, 0xFFFFF227, 0x000003E8, 0x000022F0, 0xFFFFF227, 0x000003E8 },
+       { 0x0213EA94DE2C3164, 0x000038A7, 0xFFFFE59F, 0x000005C1, 0x000021CC, 0xFFFFF2DF, 0x000003D9, 0x000021CC, 0xFFFFF2DF, 0x000003D9 },
+       { 0x0213EA94DE324184, 0x00002995, 0xFFFFEF7A, 0x0000044C, 0x00001552, 0xFFFFFB5D, 0x00000292, 0x00001552, 0xFFFFFB5D, 0x00000292 },
+       { 0x0213EA94DE2C4064, 0x00003B26, 0xFFFFE2D3, 0x00000649, 0x000023B4, 0xFFFFF09B, 0x00000449, 0x000023B4, 0xFFFFF09B, 0x00000449 },
+       { 0x0213EA94DE081124, 0x000040D2, 0xFFFFE00A, 0x00000696, 0x000022DA, 0xFFFFF1E9, 0x000003F2, 0x000022DA, 0xFFFFF1E9, 0x000003F2 },
+       { 0x0213EA94DE2C3924, 0x00003C98, 0xFFFFE365, 0x00000618, 0x00002D5D, 0xFFFFEB3A, 0x0000051D, 0x00002D5D, 0xFFFFEB3A, 0x0000051D },
+       { 0x0213EA94DE2C10A4, 0x00003BBD, 0xFFFFE37E, 0x00000617, 0x0000252E, 0xFFFFF06E, 0x00000441, 0x0000252E, 0xFFFFF06E, 0x00000441 },
+       { 0x0213EA94DE262924, 0x00004363, 0xFFFFDF7A, 0x000006A0, 0x000031F5, 0xFFFFE880, 0x0000057B, 0x000031F5, 0xFFFFE880, 0x0000057B },
+       { 0x0213EA94DE0E3844, 0x00003CFC, 0xFFFFE2AF, 0x0000062E, 0x0000212A, 0xFFFFF335, 0x000003BF, 0x0000212A, 0xFFFFF335, 0x000003BF },
+       { 0x0213EA94DE1C4924, 0x0000252D, 0xFFFFF31B, 0x000003C3, 0x00001A1A, 0xFFFFF882, 0x00000325, 0x00001A1A, 0xFFFFF882, 0x00000325 },
+       { 0x0213EA94DE0A29A4, 0x00003FE2, 0xFFFFDFEF, 0x000006AC, 0x000025A2, 0xFFFFEF84, 0x00000462, 0x000025A2, 0xFFFFEF84, 0x00000462 },
+       { 0x0213EA94DE0820E4, 0x000040A5, 0xFFFFE13B, 0x0000065B, 0x00002C13, 0xFFFFEC75, 0x000004D7, 0x00002C13, 0xFFFFEC75, 0x000004D7 },
+       { 0x0213EA94DE0E48A4, 0x00003E42, 0xFFFFE1B3, 0x00000657, 0x0000221D, 0xFFFFF273, 0x000003DE, 0x0000221D, 0xFFFFF273, 0x000003DE },
+       { 0x0213EA94DE0A20E4, 0x00003E7F, 0xFFFFE255, 0x00000638, 0x00002D30, 0xFFFFEB8A, 0x00000503, 0x00002D30, 0xFFFFEB8A, 0x00000503 },
+       { 0x0213EA94DE2C29C4, 0x00003E56, 0xFFFFE16D, 0x00000670, 0x000028DC, 0xFFFFEDA0, 0x000004BA, 0x000028DC, 0xFFFFEDA0, 0x000004BA },
+       { 0x0213EA94DE2630A4, 0x000044AD, 0xFFFFDE24, 0x000006DD, 0x000031AD, 0xFFFFE850, 0x00000585, 0x000031AD, 0xFFFFE850, 0x00000585 },
+       { 0x0213EA94DE2C20E4, 0x00003AF3, 0xFFFFE5B0, 0x000005A6, 0x00002CF6, 0xFFFFEC75, 0x000004DD, 0x00002CF6, 0xFFFFEC75, 0x000004DD },
+       { 0x0213EA94DE0A2084, 0x00003E66, 0xFFFFE19E, 0x0000065B, 0x00002332, 0xFFFFF1B9, 0x000003FD, 0x00002332, 0xFFFFF1B9, 0x000003FD },
+       { 0x0213EA94DE082884, 0x00003FB4, 0xFFFFE0A5, 0x00000686, 0x0000253E, 0xFFFFF02E, 0x00000444, 0x0000253E, 0xFFFFF02E, 0x00000444 },
+       { 0x0213EA94DE2818A4, 0x00003E28, 0xFFFFE14D, 0x0000066E, 0x00001FE2, 0xFFFFF39A, 0x000003B1, 0x00001FE2, 0xFFFFF39A, 0x000003B1 },
+       { 0x0213EA94DE2C0904, 0x000039E6, 0xFFFFE44B, 0x000005FE, 0x0000210C, 0xFFFFF2F4, 0x000003DA, 0x0000210C, 0xFFFFF2F4, 0x000003DA },
+       { 0x0213EA94DE2C5104, 0x00003A4D, 0xFFFFE252, 0x0000067A, 0x000027E2, 0xFFFFECED, 0x000004FA, 0x000027E2, 0xFFFFECED, 0x000004FA },
+       { 0x0213EA94DE0A2964, 0x00004065, 0xFFFFE02F, 0x0000069B, 0x0000299D, 0xFFFFED38, 0x000004C2, 0x0000299D, 0xFFFFED38, 0x000004C2 },
+       { 0x0213EA94DE0E20A4, 0x000039EE, 0xFFFFE603, 0x00000594, 0x0000214F, 0xFFFFF429, 0x0000038E, 0x0000214F, 0xFFFFF429, 0x0000038E },
+       { 0x0213EA94DE0E48E4, 0x00003BD2, 0xFFFFE351, 0x00000618, 0x000020B8, 0xFFFFF377, 0x000003B4, 0x000020B8, 0xFFFFF377, 0x000003B4 },
+       { 0x0213EA94DE0A3124, 0x00003FAA, 0xFFFFE183, 0x0000065E, 0x000032AE, 0xFFFFE7C2, 0x000005A6, 0x000032AE, 0xFFFFE7C2, 0x000005A6 },
+       { 0x0213EA94DE2C2984, 0x00003AFB, 0xFFFFE3E4, 0x00000608, 0x00002293, 0xFFFFF21F, 0x000003FA, 0x00002293, 0xFFFFF21F, 0x000003FA },
+       { 0x0213EA94DE262064, 0x0000448B, 0xFFFFDD5D, 0x0000070D, 0x00002E4E, 0xFFFFE9DF, 0x00000551, 0x00002E4E, 0xFFFFE9DF, 0x00000551 },
+       { 0x0213EA94DE0E2184, 0x00003D46, 0xFFFFE39B, 0x000005F3, 0x0000218E, 0xFFFFF3CD, 0x00000398, 0x0000218E, 0xFFFFF3CD, 0x00000398 },
+       { 0x0213EA94DE0848E4, 0x00003F01, 0xFFFFDFD9, 0x000006BF, 0x000023AF, 0xFFFFF04E, 0x0000044C, 0x000023AF, 0xFFFFF04E, 0x0000044C },
+       { 0x0213EA94DE1029A4, 0x0000403D, 0xFFFFDF6B, 0x000006C9, 0x0000270D, 0xFFFFEE4B, 0x0000049E, 0x0000270D, 0xFFFFEE4B, 0x0000049E },
+       { 0x0213EA94DE0E3964, 0x00003C11, 0xFFFFE35C, 0x00000613, 0x000020F9, 0xFFFFF365, 0x000003B9, 0x000020F9, 0xFFFFF365, 0x000003B9 },
+       { 0x0213EA94DE2C3884, 0x00003B58, 0xFFFFE37D, 0x0000061F, 0x00002698, 0xFFFFEF46, 0x00000478, 0x00002698, 0xFFFFEF46, 0x00000478 },
+       { 0x0213EA94DE2841A4, 0x00003EBC, 0xFFFFDF7A, 0x000006D6, 0x0000212B, 0xFFFFF195, 0x0000041B, 0x0000212B, 0xFFFFF195, 0x0000041B },
+       { 0x0213EA94DE0848C4, 0x00004050, 0xFFFFDEB3, 0x000006FE, 0x00002D6C, 0xFFFFE961, 0x00000582, 0x00002D6C, 0xFFFFE961, 0x00000582 },
+       { 0x0213EA94DE262044, 0x000043F0, 0xFFFFDD9C, 0x00000702, 0x00002B31, 0xFFFFEBEA, 0x000004F7, 0x00002B31, 0xFFFFEBEA, 0x000004F7 },
+       { 0x0213EA94DE100924, 0x00003EFA, 0xFFFFE093, 0x00000696, 0x000026DB, 0xFFFFEEB3, 0x00000489, 0x000026DB, 0xFFFFEEB3, 0x00000489 },
+       { 0x0213EA94DE082064, 0x0000425D, 0xFFFFDE8D, 0x000006E6, 0x00002CA4, 0xFFFFEAD2, 0x00000531, 0x00002CA4, 0xFFFFEAD2, 0x00000531 },
+       { 0x0213EA94DE2639A4, 0x000043B0, 0xFFFFDD03, 0x00000728, 0x00002946, 0xFFFFECA6, 0x000004DE, 0x00002946, 0xFFFFECA6, 0x000004DE },
+       { 0x0213EA94DE282864, 0x00003F6A, 0xFFFFE03A, 0x0000069D, 0x00002208, 0xFFFFF1F8, 0x000003F6, 0x00002208, 0xFFFFF1F8, 0x000003F6 },
+       { 0x0213EA94DE2C2964, 0x00003A94, 0xFFFFE4A7, 0x000005E2, 0x000024D0, 0xFFFFF100, 0x00000426, 0x000024D0, 0xFFFFF100, 0x00000426 },
+       { 0x0213EA94DE2810C4, 0x00003F2F, 0xFFFFE0A3, 0x00000688, 0x00002198, 0xFFFFF271, 0x000003E2, 0x00002198, 0xFFFFF271, 0x000003E2 },
+       { 0x0213EA94DE1048E4, 0x00003EA5, 0xFFFFE032, 0x000006AE, 0x0000227C, 0xFFFFF130, 0x00000426, 0x0000227C, 0xFFFFF130, 0x00000426 },
+       { 0x0213EA94DE264144, 0x0000442F, 0xFFFFDBC4, 0x0000078B, 0x00003CD6, 0xFFFFDE6C, 0x0000076C, 0x00003CD6, 0xFFFFDE6C, 0x0000076C },
+       { 0x0213EA94DE282884, 0x00003DDE, 0xFFFFE174, 0x00000668, 0x00001FF4, 0xFFFFF38F, 0x000003B1, 0x00001FF4, 0xFFFFF38F, 0x000003B1 },
+       { 0x0213EA94DE0A3144, 0x000040B0, 0xFFFFE016, 0x000006A0, 0x00002DBB, 0xFFFFEA7F, 0x00000537, 0x00002DBB, 0xFFFFEA7F, 0x00000537 },
+       { 0x0213EA94DE2C3104, 0x00003429, 0xFFFFEA97, 0x000004DD, 0x000024D5, 0xFFFFF26F, 0x000003DF, 0x000024D5, 0xFFFFF26F, 0x000003DF },
+       { 0x0213EA94DE0E1904, 0x00003AEB, 0xFFFFE590, 0x000005A3, 0x000022CB, 0xFFFFF347, 0x000003B2, 0x000022CB, 0xFFFFF347, 0x000003B2 },
+       { 0x0213EA94DE283904, 0x00003B8E, 0xFFFFE2EF, 0x00000636, 0x00002351, 0xFFFFF143, 0x0000041C, 0x00002351, 0xFFFFF143, 0x0000041C },
+       { 0x0213EA94DE3240C4, 0x00002926, 0xFFFFF0B0, 0x00000410, 0x0000194E, 0xFFFFF94E, 0x000002E9, 0x0000194E, 0xFFFFF94E, 0x000002E9 },
+       { 0x0213EA94DE283184, 0x0000402B, 0xFFFFDF78, 0x000006C2, 0x00002273, 0xFFFFF16C, 0x00000414, 0x00002273, 0xFFFFF16C, 0x00000414 },
+       { 0x0213EA94DE0A10A4, 0x00003D6A, 0xFFFFE1D3, 0x00000659, 0x00002006, 0xFFFFF394, 0x000003B1, 0x00002006, 0xFFFFF394, 0x000003B1 },
+       { 0x0213EA94DE284064, 0x00004042, 0xFFFFDFD8, 0x000006A8, 0x00002135, 0xFFFFF29F, 0x000003D9, 0x00002135, 0xFFFFF29F, 0x000003D9 },
+       { 0x0213EA94DE0820A4, 0x0000405B, 0xFFFFE093, 0x00000682, 0x0000288F, 0xFFFFEE3A, 0x00000491, 0x0000288F, 0xFFFFEE3A, 0x00000491 },
+       { 0x0213EA94DE2C48A4, 0x00003A49, 0xFFFFE30C, 0x00000648, 0x000023F9, 0xFFFFF02D, 0x00000460, 0x000023F9, 0xFFFFF02D, 0x00000460 },
+       { 0x0213EA94DE282964, 0x00003D59, 0xFFFFE1CC, 0x0000065B, 0x00002013, 0xFFFFF37D, 0x000003B6, 0x00002013, 0xFFFFF37D, 0x000003B6 },
+       { 0x0213EA94DE2C3984, 0x000040C1, 0xFFFFDF8C, 0x000006CA, 0x00003271, 0xFFFFE6CA, 0x000005EA, 0x00003271, 0xFFFFE6CA, 0x000005EA },
+       { 0x0213EA94DE2620E4, 0x000042E9, 0xFFFFDFDC, 0x0000068C, 0x00002ED9, 0xFFFFEAAF, 0x0000051B, 0x00002ED9, 0xFFFFEAAF, 0x0000051B },
+       { 0x0213EA94DE083084, 0x000042ED, 0xFFFFDE50, 0x000006F0, 0x00002FCF, 0xFFFFE8BB, 0x0000058C, 0x00002FCF, 0xFFFFE8BB, 0x0000058C },
+       { 0x0213EA94DE0A4104, 0x00003EBD, 0xFFFFE099, 0x00000698, 0x00002709, 0xFFFFEE7B, 0x00000495, 0x00002709, 0xFFFFEE7B, 0x00000495 },
+       { 0x0213EA94DE284904, 0x00003F71, 0xFFFFDF82, 0x000006C9, 0x0000219B, 0xFFFFF1AD, 0x0000040F, 0x0000219B, 0xFFFFF1AD, 0x0000040F },
+       { 0x0213EA94DE2808E4, 0x00003E73, 0xFFFFE080, 0x0000069B, 0x000020E7, 0xFFFFF273, 0x000003E9, 0x000020E7, 0xFFFFF273, 0x000003E9 },
+       { 0x0213EA94DE0E3184, 0x00003E14, 0xFFFFE278, 0x0000062C, 0x00002275, 0xFFFFF2B3, 0x000003CE, 0x00002275, 0xFFFFF2B3, 0x000003CE },
+       { 0x0213EA94DE2C21A4, 0x00003ABB, 0xFFFFE3B9, 0x00000615, 0x00002192, 0xFFFFF28F, 0x000003EB, 0x00002192, 0xFFFFF28F, 0x000003EB },
+       { 0x0213EA94DE283124, 0x00003D53, 0xFFFFE255, 0x00000643, 0x0000275B, 0xFFFFEEED, 0x00000479, 0x0000275B, 0xFFFFEEED, 0x00000479 },
+       { 0x0213EA94DE262864, 0x000043E3, 0xFFFFDDC3, 0x000006FB, 0x00002B6B, 0xFFFFEBD6, 0x000004FA, 0x00002B6B, 0xFFFFEBD6, 0x000004FA },
+       { 0x0213EA94DE0E2144, 0x00003BDE, 0xFFFFE507, 0x000005B4, 0x000022CE, 0xFFFFF358, 0x000003AB, 0x000022CE, 0xFFFFF358, 0x000003AB },
+       { 0x0213EA94DE323164, 0x00002460, 0xFFFFF3B5, 0x000003A2, 0x000014E7, 0xFFFFFC32, 0x0000027C, 0x000014E7, 0xFFFFFC32, 0x0000027C },
+       { 0x0213EA94DE2820C4, 0x00003D20, 0xFFFFE298, 0x0000062F, 0x00002080, 0xFFFFF3AF, 0x000003A8, 0x00002080, 0xFFFFF3AF, 0x000003A8 },
+       { 0x0213EA94DE081904, 0x00003E14, 0xFFFFE221, 0x00000641, 0x000021BB, 0xFFFFF2EA, 0x000003CA, 0x000021BB, 0xFFFFF2EA, 0x000003CA },
+       { 0x0213EA94DE0A40C4, 0x00003DE1, 0xFFFFE14E, 0x00000677, 0x00002468, 0xFFFFF068, 0x00000440, 0x00002468, 0xFFFFF068, 0x00000440 },
+       { 0x0213EA94DE261084, 0x00004372, 0xFFFFDDF8, 0x000006F5, 0x00002B3F, 0xFFFFEBE8, 0x000004F8, 0x00002B3F, 0xFFFFEBE8, 0x000004F8 },
+       { 0x0213EA94DE0A28C4, 0x00003E4F, 0xFFFFE2A3, 0x0000062B, 0x00002F5A, 0xFFFFEA37, 0x0000053B, 0x00002F5A, 0xFFFFEA37, 0x0000053B },
+       { 0x0213EA94DE2850E4, 0x00003E07, 0xFFFFE02F, 0x000006B6, 0x0000216B, 0xFFFFF1A3, 0x00000416, 0x0000216B, 0xFFFFF1A3, 0x00000416 },
+       { 0x0213EA94DE2838A4, 0x00003DAB, 0xFFFFE128, 0x0000067F, 0x0000216F, 0xFFFFF236, 0x000003F3, 0x0000216F, 0xFFFFF236, 0x000003F3 },
+       { 0x0213EA94DE2C2924, 0x0000364B, 0xFFFFE8CB, 0x0000052A, 0x00002568, 0xFFFFF1B2, 0x00000400, 0x00002568, 0xFFFFF1B2, 0x00000400 },
+       { 0x0213EA94DE261064, 0x00004219, 0xFFFFDE87, 0x000006E8, 0x00002C59, 0xFFFFEAEE, 0x00000529, 0x00002C59, 0xFFFFEAEE, 0x00000529 },
+       { 0x0213EA94DE0E1944, 0x000039A8, 0xFFFFE602, 0x00000594, 0x00001D06, 0xFFFFF6F0, 0x00000316, 0x00001D06, 0xFFFFF6F0, 0x00000316 },
+       { 0x0213EA94DE2610E4, 0x00004052, 0xFFFFE01C, 0x00000698, 0x00002310, 0xFFFFF1A1, 0x000003FE, 0x00002310, 0xFFFFF1A1, 0x000003FE },
+       { 0x0213EA94DE0E2824, 0x00003C1C, 0xFFFFE3EB, 0x000005F1, 0x00002289, 0xFFFFF2CF, 0x000003C9, 0x00002289, 0xFFFFF2CF, 0x000003C9 },
+       { 0x0213EA94DE0E5124, 0x00003F19, 0xFFFFE085, 0x0000069E, 0x00002B94, 0xFFFFEB72, 0x0000051D, 0x00002B94, 0xFFFFEB72, 0x0000051D },
+       { 0x0213EA94DE0E41A4, 0x00003C51, 0xFFFFE2AD, 0x00000638, 0x0000206B, 0xFFFFF361, 0x000003BE, 0x0000206B, 0xFFFFF361, 0x000003BE },
+       { 0x0213EA94DE2610C4, 0x000040B9, 0xFFFFDFBB, 0x000006AB, 0x0000241F, 0xFFFFF0CC, 0x00000425, 0x0000241F, 0xFFFFF0CC, 0x00000425 },
+       { 0x0213EA94DE0A2064, 0x00003E62, 0xFFFFE12C, 0x00000678, 0x00002445, 0xFFFFF09E, 0x00000435, 0x00002445, 0xFFFFF09E, 0x00000435 },
+       { 0x0213EA94DE0E1984, 0x00003C97, 0xFFFFE399, 0x000005FB, 0x0000209D, 0xFFFFF41D, 0x0000038F, 0x0000209D, 0xFFFFF41D, 0x0000038F },
+       { 0x0213EA94DE0E3144, 0x00003FF9, 0xFFFFE1E9, 0x0000063E, 0x00002E96, 0xFFFFEAF5, 0x00000516, 0x00002E96, 0xFFFFEAF5, 0x00000516 },
+       { 0x0213EA94DE0A3084, 0x00003F04, 0xFFFFE109, 0x0000067A, 0x000026E1, 0xFFFFEF0B, 0x00000476, 0x000026E1, 0xFFFFEF0B, 0x00000476 },
+       { 0x0213EA94DE101124, 0x00003E3E, 0xFFFFE187, 0x00000660, 0x00002049, 0xFFFFF38D, 0x000003B0, 0x00002049, 0xFFFFF38D, 0x000003B0 },
+       { 0x0213EA94DE282944, 0x00003D58, 0xFFFFE253, 0x0000063D, 0x00002158, 0xFFFFF308, 0x000003C3, 0x00002158, 0xFFFFF308, 0x000003C3 },
+       { 0x0213EA94DE0840C4, 0x00004074, 0xFFFFDF8D, 0x000006C0, 0x00002799, 0xFFFFEE19, 0x000004A5, 0x00002799, 0xFFFFEE19, 0x000004A5 },
+       { 0x0213EA94DE281924, 0x00003DAF, 0xFFFFE1C9, 0x00000659, 0x000020E5, 0xFFFFF313, 0x000003C6, 0x000020E5, 0xFFFFF313, 0x000003C6 },
+       { 0x0213EA94DE0A3964, 0x000041DD, 0xFFFFDDFA, 0x0000071B, 0x0000348D, 0xFFFFE4B4, 0x0000064C, 0x0000348D, 0xFFFFE4B4, 0x0000064C },
+       { 0x0213EA94DE2C2884, 0x00003947, 0xFFFFE5AE, 0x000005B8, 0x000024A6, 0xFFFFF140, 0x0000041D, 0x000024A6, 0xFFFFF140, 0x0000041D },
+       { 0x0213EA94DE101844, 0x00003D35, 0xFFFFE197, 0x0000066E, 0x00002248, 0xFFFFF1BC, 0x00000408, 0x00002248, 0xFFFFF1BC, 0x00000408 },
+       { 0x0213EA94DE0A18E4, 0x00003F4F, 0xFFFFE13E, 0x0000066D, 0x00002AF0, 0xFFFFEC99, 0x000004DB, 0x00002AF0, 0xFFFFEC99, 0x000004DB },
+       { 0x0213EA94DE263944, 0x0000430F, 0xFFFFDDFB, 0x000006FC, 0x00002D4D, 0xFFFFEA55, 0x00000540, 0x00002D4D, 0xFFFFEA55, 0x00000540 },
+       { 0x0213EA94DE0E2944, 0x00003B22, 0xFFFFE543, 0x000005B1, 0x000022E1, 0xFFFFF31B, 0x000003B9, 0x000022E1, 0xFFFFF31B, 0x000003B9 },
+       { 0x0213EA94DE0E2084, 0x00003978, 0xFFFFE611, 0x00000592, 0x00001C36, 0xFFFFF771, 0x00000302, 0x00001C36, 0xFFFFF771, 0x00000302 },
+       { 0x0213EA94DE262164, 0x000044DF, 0xFFFFDDAB, 0x000006F2, 0x00002CEA, 0xFFFFEB47, 0x00000507, 0x00002CEA, 0xFFFFEB47, 0x00000507 },
+       { 0x0213EA94DE0A38C4, 0x00003E9B, 0xFFFFE12C, 0x0000067C, 0x00002B79, 0xFFFFEBD9, 0x00000503, 0x00002B79, 0xFFFFEBD9, 0x00000503 },
+       { 0x0213EA94DE263044, 0x00004464, 0xFFFFDCD3, 0x00000731, 0x00002D14, 0xFFFFEA2D, 0x0000054E, 0x00002D14, 0xFFFFEA2D, 0x0000054E },
+       { 0x0213EA94DE281124, 0x00003FB3, 0xFFFFE052, 0x00000693, 0x000020AC, 0xFFFFF311, 0x000003C6, 0x000020AC, 0xFFFFF311, 0x000003C6 },
+       { 0x0213EA94DE2C1084, 0x00003BDA, 0xFFFFE2FB, 0x00000636, 0x0000261E, 0xFFFFEF72, 0x00000471, 0x0000261E, 0xFFFFEF72, 0x00000471 },
+       { 0x0213EA94DE2C1964, 0x00003D72, 0xFFFFE28A, 0x0000063E, 0x000029D8, 0xFFFFED54, 0x000004C7, 0x000029D8, 0xFFFFED54, 0x000004C7 },
+       { 0x0213EA94DE2C2824, 0x00003E26, 0xFFFFE102, 0x00000694, 0x00002DD1, 0xFFFFE9CA, 0x0000056D, 0x00002DD1, 0xFFFFE9CA, 0x0000056D },
+       { 0x0213EA94DE104124, 0x000041CD, 0xFFFFDE97, 0x000006ED, 0x00002DE5, 0xFFFFE9B9, 0x00000565, 0x00002DE5, 0xFFFFE9B9, 0x00000565 },
+       { 0x0213EA94DE0A2984, 0x00003F30, 0xFFFFE06E, 0x00000698, 0x000024FF, 0xFFFFEFFC, 0x0000044F, 0x000024FF, 0xFFFFEFFC, 0x0000044F },
+       { 0x0213EA94DE2C38C4, 0x0000378B, 0xFFFFE6B4, 0x00000594, 0x000023A7, 0xFFFFF1DC, 0x00000407, 0x000023A7, 0xFFFFF1DC, 0x00000407 },
+       { 0x0213EA94DE0E4164, 0x00003CD7, 0xFFFFE28D, 0x00000636, 0x00002036, 0xFFFFF3B5, 0x000003AA, 0x00002036, 0xFFFFF3B5, 0x000003AA },
+       { 0x0213EA94DE0A3884, 0x00003EF9, 0xFFFFE0AA, 0x0000068D, 0x000024D3, 0xFFFFF02F, 0x00000445, 0x000024D3, 0xFFFFF02F, 0x00000445 },
+       { 0x0213EA94DE283944, 0x00003D08, 0xFFFFE1BB, 0x00000665, 0x00002159, 0xFFFFF26F, 0x000003E6, 0x00002159, 0xFFFFF26F, 0x000003E6 },
+       { 0x0213EA94DE2C20C4, 0x000038A9, 0xFFFFE6CA, 0x00000580, 0x000025D3, 0xFFFFF101, 0x00000421, 0x000025D3, 0xFFFFF101, 0x00000421 },
+       { 0x0213EA94DE0A20A4, 0x00003E45, 0xFFFFE1F8, 0x0000064D, 0x000027E3, 0xFFFFEEBB, 0x0000047F, 0x000027E3, 0xFFFFEEBB, 0x0000047F },
+       { 0x0213EA94DE0E3864, 0x00003F76, 0xFFFFE128, 0x0000066E, 0x0000286B, 0xFFFFEE4C, 0x00000493, 0x0000286B, 0xFFFFEE4C, 0x00000493 },
+       { 0x0213EA94DE264104, 0x0000440D, 0xFFFFDCA2, 0x0000074F, 0x00003817, 0xFFFFE256, 0x000006AF, 0x00003817, 0xFFFFE256, 0x000006AF },
+       { 0x0213EA94DE105104, 0x00003EE1, 0xFFFFDFA7, 0x000006D4, 0x000027EA, 0xFFFFED2B, 0x000004DE, 0x000027EA, 0xFFFFED2B, 0x000004DE },
+       { 0x0213EA94DE2C3864, 0x00003C62, 0xFFFFE285, 0x0000064A, 0x00002520, 0xFFFFF001, 0x0000045C, 0x00002520, 0xFFFFF001, 0x0000045C },
+       { 0x0213EA94DE323964, 0x0000272E, 0xFFFFF17A, 0x000003FA, 0x0000150B, 0xFFFFFBD5, 0x00000284, 0x0000150B, 0xFFFFFBD5, 0x00000284 },
+       { 0x0213EA94DE261924, 0x00004275, 0xFFFFDF69, 0x000006A5, 0x000025AA, 0xFFFFF05C, 0x0000042B, 0x000025AA, 0xFFFFF05C, 0x0000042B },
+       { 0x0213EA94DE0E40E4, 0x00003CAA, 0xFFFFE392, 0x000005FF, 0x000023A8, 0xFFFFF20E, 0x000003E9, 0x000023A8, 0xFFFFF20E, 0x000003E9 },
+       { 0x0213EA94DE2C50C4, 0x00003CF8, 0xFFFFE0FB, 0x000006A6, 0x00002CA7, 0xFFFFE9FF, 0x0000056E, 0x00002CA7, 0xFFFFE9FF, 0x0000056E },
+       { 0x0213EA94DE282124, 0x00003D00, 0xFFFFE296, 0x00000633, 0x000021C1, 0xFFFFF2C8, 0x000003CF, 0x000021C1, 0xFFFFF2C8, 0x000003CF },
+       { 0x0213EA94DE2838E4, 0x00003B46, 0xFFFFE301, 0x00000632, 0x0000204C, 0xFFFFF33B, 0x000003C8, 0x0000204C, 0xFFFFF33B, 0x000003C8 },
+       { 0x0213EA94DE204164, 0x00002026, 0xFFFFF5CE, 0x00000368, 0x00001598, 0xFFFFFB29, 0x000002C3, 0x00001598, 0xFFFFFB29, 0x000002C3 },
+       { 0x0213EA94DE283164, 0x00003DCA, 0xFFFFE178, 0x00000668, 0x00001FDB, 0xFFFFF39D, 0x000003AF, 0x00001FDB, 0xFFFFF39D, 0x000003AF },
+       { 0x0213EA94DE2C48C4, 0x00003A59, 0xFFFFE327, 0x00000642, 0x000024B9, 0xFFFFEFC4, 0x00000471, 0x000024B9, 0xFFFFEFC4, 0x00000471 },
+       { 0x0213EA94DE2C2944, 0x00003C26, 0xFFFFE440, 0x000005EB, 0x00002C0F, 0xFFFFEC88, 0x000004E0, 0x00002C0F, 0xFFFFEC88, 0x000004E0 },
+       { 0x0213EA94DE083884, 0x00004149, 0xFFFFDEB8, 0x000006E7, 0x0000280A, 0xFFFFED89, 0x000004C2, 0x0000280A, 0xFFFFED89, 0x000004C2 },
+       { 0x0213EA94DE0E4124, 0x00003EB4, 0xFFFFE1E5, 0x0000064D, 0x0000299F, 0xFFFFEDB3, 0x000004A9, 0x0000299F, 0xFFFFEDB3, 0x000004A9 },
+       { 0x0213EA94DE2C39A4, 0x00003BBF, 0xFFFFE268, 0x0000065A, 0x00002504, 0xFFFFEFB0, 0x00000470, 0x00002504, 0xFFFFEFB0, 0x00000470 },
+       { 0x0213EA94DE084904, 0x00004203, 0xFFFFDDC6, 0x00000720, 0x0000303B, 0xFFFFE78F, 0x000005D0, 0x0000303B, 0xFFFFE78F, 0x000005D0 },
+       { 0x0213EA94DE0E3984, 0x00003DA3, 0xFFFFE244, 0x0000063E, 0x000021B4, 0xFFFFF2DA, 0x000003CD, 0x000021B4, 0xFFFFF2DA, 0x000003CD },
+       { 0x0213EA94DE0A38E4, 0x00004035, 0xFFFFE065, 0x0000069B, 0x00003323, 0xFFFFE6D6, 0x000005D8, 0x00003323, 0xFFFFE6D6, 0x000005D8 },
+       { 0x0213EA94DE2C1164, 0x00003944, 0xFFFFE4E5, 0x000005E2, 0x00001F3C, 0xFFFFF456, 0x0000039D, 0x00001F3C, 0xFFFFF456, 0x0000039D },
+       { 0x0213EA94DE061904, 0x000032D8, 0xFFFFEAE8, 0x000004E6, 0x00001812, 0xFFFFFA1C, 0x000002BC, 0x00001812, 0xFFFFFA1C, 0x000002BC },
+       { 0x0213F0FD42D22944, 0x000041F6, 0xFFFFE025, 0x0000069A, 0x0000241E, 0xFFFFF1B4, 0x00000402, 0x0000241E, 0xFFFFF1B4, 0x00000402 },
+       { 0x0213F0FE990C30A4, 0x00003300, 0xFFFFEB60, 0x000004C1, 0x00001E15, 0xFFFFF6A6, 0x0000033B, 0x00001E15, 0xFFFFF6A6, 0x0000033B },
+       { 0x0213EA94DE0408A4, 0x000037F0, 0xFFFFE68F, 0x0000059B, 0x00001F8A, 0xFFFFF467, 0x000003A3, 0x00001F8A, 0xFFFFF467, 0x000003A3 },
+       { 0x0213F0FE99182984, 0x000025D8, 0xFFFFF2AA, 0x000003C3, 0x000018A8, 0xFFFFF9BE, 0x000002D2, 0x000018A8, 0xFFFFF9BE, 0x000002D2 },
+       { 0x0213F0FE990620C4, 0x0000364F, 0xFFFFE988, 0x000004FC, 0x00001E51, 0xFFFFF633, 0x0000034F, 0x00001E51, 0xFFFFF633, 0x0000034F },
+       { 0x0213EA94DE061144, 0x00002288, 0xFFFFF483, 0x0000036C, 0x0000280F, 0xFFFFEF39, 0x0000047B, 0x0000280F, 0xFFFFEF39, 0x0000047B },
+       { 0x0213F0FE99082084, 0x00003322, 0xFFFFEA7E, 0x000004ED, 0x00001DAD, 0xFFFFF62B, 0x00000355, 0x00001DAD, 0xFFFFF62B, 0x00000355 },
+       { 0x0213EA94DE0250E4, 0x00002B7B, 0xFFFFEE4F, 0x0000045B, 0x00001AA2, 0xFFFFF710, 0x0000033E, 0x00001AA2, 0xFFFFF710, 0x0000033E },
+       { 0x0213F0FE990420C4, 0x000034CC, 0xFFFFEA79, 0x000004E4, 0x00001B05, 0xFFFFF8B3, 0x000002EC, 0x00001B05, 0xFFFFF8B3, 0x000002EC },
+       { 0x0213F0FD42DC2864, 0x00003837, 0xFFFFE5ED, 0x000005C3, 0x00001ACB, 0xFFFFF7B2, 0x00000314, 0x00001ACB, 0xFFFFF7B2, 0x00000314 },
+       { 0x0213F0FE99044164, 0x0000352D, 0xFFFFE88F, 0x00000548, 0x000021E6, 0xFFFFF3B5, 0x000003AA, 0x000021E6, 0xFFFFF3B5, 0x000003AA },
+       { 0x0213F0FE990A4884, 0x00003300, 0xFFFFE835, 0x0000057B, 0x00001A85, 0xFFFFF715, 0x00000336, 0x00001A85, 0xFFFFF715, 0x00000336 },
+       { 0x0213EA94DE0448A4, 0x000033FA, 0xFFFFE851, 0x00000565, 0x00001A8E, 0xFFFFF727, 0x0000033B, 0x00001A8E, 0xFFFFF727, 0x0000033B },
+       { 0x0213F0FD42DA3924, 0x000039D3, 0xFFFFE5D3, 0x000005B0, 0x00001888, 0xFFFFF978, 0x000002C8, 0x00001888, 0xFFFFF978, 0x000002C8 },
+       { 0x0213F0FE990E4864, 0x00002F6B, 0xFFFFEC53, 0x000004B9, 0x00001C15, 0xFFFFF71B, 0x00000337, 0x00001C15, 0xFFFFF71B, 0x00000337 },
+       { 0x0213F0FE99064144, 0x0000384D, 0xFFFFE737, 0x00000569, 0x00001D2D, 0xFFFFF673, 0x00000343, 0x00001D2D, 0xFFFFF673, 0x00000343 },
+       { 0x0213F0FE990620A4, 0x00003A49, 0xFFFFE70B, 0x0000055F, 0x00001A63, 0xFFFFF8CD, 0x000002E2, 0x00001A63, 0xFFFFF8CD, 0x000002E2 },
+       { 0x0213F0FE99042984, 0x0000311E, 0xFFFFEB97, 0x000004C6, 0x00001EAE, 0xFFFFF5A9, 0x00000367, 0x00001EAE, 0xFFFFF5A9, 0x00000367 },
+       { 0x0213F0FE990E1124, 0x000027D3, 0xFFFFF075, 0x00000417, 0x00002001, 0xFFFFF44A, 0x000003A2, 0x00002001, 0xFFFFF44A, 0x000003A2 },
+       { 0x0213F0FE99064904, 0x00003B72, 0xFFFFE4BD, 0x000005DC, 0x00001D76, 0xFFFFF606, 0x0000035A, 0x00001D76, 0xFFFFF606, 0x0000035A },
+       { 0x0213F0FE99101124, 0x00002E0F, 0xFFFFECA7, 0x000004AE, 0x00001DC6, 0xFFFFF5BF, 0x0000036A, 0x00001DC6, 0xFFFFF5BF, 0x0000036A },
+       { 0x0213F0FE990238A4, 0x000032C7, 0xFFFFEA7A, 0x000004F0, 0x00001A7B, 0xFFFFF827, 0x00000301, 0x00001A7B, 0xFFFFF827, 0x00000301 },
+       { 0x0213EA94DE044884, 0x0000312D, 0xFFFFEA39, 0x00000515, 0x00001948, 0xFFFFF800, 0x00000318, 0x00001948, 0xFFFFF800, 0x00000318 },
+       { 0x0213EA94DE062084, 0x00003611, 0xFFFFE8D7, 0x00000533, 0x00001929, 0xFFFFF965, 0x000002D2, 0x00001929, 0xFFFFF965, 0x000002D2 },
+       { 0x0213F0FE992C30E4, 0x00002FE2, 0xFFFFED89, 0x00000470, 0x00001A3C, 0xFFFFF955, 0x000002D5, 0x00001A3C, 0xFFFFF955, 0x000002D5 },
+       { 0x0213EA94DE0208A4, 0x000035FF, 0xFFFFE884, 0x00000548, 0x0000182A, 0xFFFFF9AB, 0x000002CF, 0x0000182A, 0xFFFFF9AB, 0x000002CF },
+       { 0x0213F0FE990220E4, 0x00003597, 0xFFFFE904, 0x00000528, 0x00001A94, 0xFFFFF840, 0x00000300, 0x00001A94, 0xFFFFF840, 0x00000300 },
+       { 0x0213F0FE99181944, 0x000026CB, 0xFFFFF1FB, 0x000003E4, 0x000017CC, 0xFFFFFA25, 0x000002C8, 0x000017CC, 0xFFFFFA25, 0x000002C8 },
+       { 0x0213EA94DE0608C4, 0x00003274, 0xFFFFEA39, 0x0000050C, 0x00001B20, 0xFFFFF7C1, 0x00000314, 0x00001B20, 0xFFFFF7C1, 0x00000314 },
+       { 0x0213F0FD42D82924, 0x0000280B, 0xFFFFF283, 0x000003B5, 0x000018D0, 0xFFFFF992, 0x000002EC, 0x000018D0, 0xFFFFF992, 0x000002EC },
+       { 0x0213F0FE99062104, 0x000033AB, 0xFFFFEB1B, 0x000004C4, 0x00001FEE, 0xFFFFF53A, 0x00000378, 0x00001FEE, 0xFFFFF53A, 0x00000378 },
+       { 0x0213F0FE990A3964, 0x00002F79, 0xFFFFEB0C, 0x000004FA, 0x00001E57, 0xFFFFF4BF, 0x0000039B, 0x00001E57, 0xFFFFF4BF, 0x0000039B },
+       { 0x0213F0FE990448E4, 0x00003487, 0xFFFFE8F2, 0x00000539, 0x0000185B, 0xFFFFF9AE, 0x000002BA, 0x0000185B, 0xFFFFF9AE, 0x000002BA },
+       { 0x0213F0FE990A18A4, 0x00003500, 0xFFFFE793, 0x0000058A, 0x00001AA2, 0xFFFFF792, 0x0000031D, 0x00001AA2, 0xFFFFF792, 0x0000031D },
+       { 0x0213F0FE99081164, 0x00003943, 0xFFFFE54D, 0x000005D9, 0x00001BC8, 0xFFFFF6E0, 0x00000339, 0x00001BC8, 0xFFFFF6E0, 0x00000339 },
+       { 0x0213EA94DE0430A4, 0x0000306D, 0xFFFFEC5E, 0x000004A5, 0x00001A3A, 0xFFFFF85F, 0x00000304, 0x00001A3A, 0xFFFFF85F, 0x00000304 },
+       { 0x0213F0FD42D83084, 0x00002BA4, 0xFFFFEE8D, 0x0000046A, 0x0000198C, 0xFFFFF88E, 0x00000307, 0x0000198C, 0xFFFFF88E, 0x00000307 },
+       { 0x0213F0FD42D218E4, 0x00003D30, 0xFFFFE2F6, 0x0000062A, 0x000025DC, 0xFFFFF074, 0x00000435, 0x000025DC, 0xFFFFF074, 0x00000435 },
+       { 0x0213F0FD42D83964, 0x00002CD6, 0xFFFFED79, 0x0000049B, 0x000016D0, 0xFFFFFA53, 0x000002BB, 0x000016D0, 0xFFFFFA53, 0x000002BB },
+       { 0x0213F0FE99163164, 0x00002484, 0xFFFFF3BD, 0x000003A0, 0x000015B8, 0xFFFFFB6B, 0x000002A4, 0x000015B8, 0xFFFFFB6B, 0x000002A4 },
+       { 0x0213F0FE990E3944, 0x000038AE, 0xFFFFE6D1, 0x00000587, 0x00001A2A, 0xFFFFF8F1, 0x000002D4, 0x00001A2A, 0xFFFFF8F1, 0x000002D4 },
+       { 0x0213F0FE99044944, 0x000036FD, 0xFFFFE76C, 0x00000576, 0x00001EE4, 0xFFFFF58D, 0x00000361, 0x00001EE4, 0xFFFFF58D, 0x00000361 },
+       { 0x0213F0FD42D830A4, 0x00002BCF, 0xFFFFEF28, 0x00000448, 0x00001B93, 0xFFFFF7BA, 0x00000327, 0x00001B93, 0xFFFFF7BA, 0x00000327 },
+       { 0x0213F0FE99062884, 0x00003834, 0xFFFFE818, 0x0000053B, 0x00001AFE, 0xFFFFF85C, 0x000002F3, 0x00001AFE, 0xFFFFF85C, 0x000002F3 },
+       { 0x0213F0FE993231A4, 0x00002EF7, 0xFFFFEBFC, 0x000004CE, 0x00001897, 0xFFFFF8EF, 0x000002EC, 0x00001897, 0xFFFFF8EF, 0x000002EC },
+       { 0x0213F0FE992C18C4, 0x000035BD, 0xFFFFE8BB, 0x0000053B, 0x00001F22, 0xFFFFF561, 0x00000373, 0x00001F22, 0xFFFFF561, 0x00000373 },
+       { 0x0213F0FE99183984, 0x00002D42, 0xFFFFEE1D, 0x00000478, 0x000016F0, 0xFFFFFAAE, 0x000002B3, 0x000016F0, 0xFFFFFAAE, 0x000002B3 },
+       { 0x0213EA94DE045124, 0x00002F98, 0xFFFFEB3C, 0x000004F0, 0x00001903, 0xFFFFF818, 0x00000319, 0x00001903, 0xFFFFF818, 0x00000319 },
+       { 0x0213F0FD42D42144, 0x00004081, 0xFFFFDF13, 0x000006F3, 0x00002A6D, 0xFFFFEC1B, 0x00000509, 0x00002A6D, 0xFFFFEC1B, 0x00000509 },
+       { 0x0213EA94DE040904, 0x00002D68, 0xFFFFED21, 0x00000498, 0x00001FF6, 0xFFFFF427, 0x000003B0, 0x00001FF6, 0xFFFFF427, 0x000003B0 },
+       { 0x0213F0FE99023884, 0x00003243, 0xFFFFEA5C, 0x000004FD, 0x000020FB, 0xFFFFF39E, 0x000003C0, 0x000020FB, 0xFFFFF39E, 0x000003C0 },
+       { 0x0213F0FD42D848A4, 0x00002F20, 0xFFFFEC19, 0x000004C6, 0x00001748, 0xFFFFF99F, 0x000002DA, 0x00001748, 0xFFFFF99F, 0x000002DA },
+       { 0x0213F0FE99103984, 0x00002D68, 0xFFFFED21, 0x00000498, 0x00001A43, 0xFFFFF843, 0x000002F9, 0x00001A43, 0xFFFFF843, 0x000002F9 },
+       { 0x0213F0FE990220A4, 0x0000396E, 0xFFFFE616, 0x000005A9, 0x00001A51, 0xFFFFF850, 0x000002FA, 0x00001A51, 0xFFFFF850, 0x000002FA },
+       { 0x0213F0FE99043144, 0x0000305C, 0xFFFFED4B, 0x0000046C, 0x00001CF9, 0xFFFFF7BA, 0x00000304, 0x00001CF9, 0xFFFFF7BA, 0x00000304 },
+       { 0x0213F0FD42DA4164, 0x0000343C, 0xFFFFE869, 0x00000559, 0x00001CE2, 0xFFFFF614, 0x00000359, 0x00001CE2, 0xFFFFF614, 0x00000359 },
+       { 0x0213F0FE99183964, 0x00002782, 0xFFFFF1FE, 0x000003D9, 0x000015DC, 0xFFFFFB8B, 0x00000290, 0x000015DC, 0xFFFFFB8B, 0x00000290 },
+       { 0x0213F0FE991818C4, 0x00002B9C, 0xFFFFEF63, 0x00000443, 0x00001369, 0xFFFFFD51, 0x00000244, 0x00001369, 0xFFFFFD51, 0x00000244 },
+       { 0x0213F0FE990A2084, 0x000035F8, 0xFFFFE743, 0x00000592, 0x000018D8, 0xFFFFF8EE, 0x000002E4, 0x000018D8, 0xFFFFF8EE, 0x000002E4 },
+       { 0x0213EA94DE062844, 0x00002B72, 0xFFFFEF1E, 0x0000043C, 0x00002647, 0xFFFFF092, 0x0000043E, 0x00002647, 0xFFFFF092, 0x0000043E },
+       { 0x0213F0FE99102184, 0x00002EC9, 0xFFFFEC5F, 0x000004B8, 0x000018B6, 0xFFFFF936, 0x000002D8, 0x000018B6, 0xFFFFF936, 0x000002D8 },
+       { 0x0213F0FE99064084, 0x000038A7, 0xFFFFE6AC, 0x00000589, 0x00001C42, 0xFFFFF70B, 0x00000329, 0x00001C42, 0xFFFFF70B, 0x00000329 },
+       { 0x0213F0FE993008A4, 0x00002F6B, 0xFFFFEBF6, 0x000004CF, 0x000018AE, 0xFFFFF928, 0x000002E3, 0x000018AE, 0xFFFFF928, 0x000002E3 },
+       { 0x0213F0FD42DA5104, 0x000029CD, 0xFFFFEEE1, 0x00000459, 0x00001AB5, 0xFFFFF76F, 0x00000324, 0x00001AB5, 0xFFFFF76F, 0x00000324 },
+       { 0x0213EA94DE0638C4, 0x00003921, 0xFFFFE71D, 0x00000577, 0x00001646, 0xFFFFFB24, 0x00000293, 0x00001646, 0xFFFFFB24, 0x00000293 },
+       { 0x0213EA94DE044164, 0x00003940, 0xFFFFE521, 0x000005E8, 0x00001947, 0xFFFFF839, 0x0000030D, 0x00001947, 0xFFFFF839, 0x0000030D },
+       { 0x0213F0FD42D24164, 0x00003DCA, 0xFFFFE211, 0x00000659, 0x0000250E, 0xFFFFF072, 0x00000443, 0x0000250E, 0xFFFFF072, 0x00000443 },
+       { 0x0213F0FE990C0904, 0x00002E95, 0xFFFFEC20, 0x000004C9, 0x000015B4, 0xFFFFFAD3, 0x0000029D, 0x000015B4, 0xFFFFFAD3, 0x0000029D },
+       { 0x0213F0FE99041084, 0x00002C11, 0xFFFFEE6E, 0x00000468, 0x00001901, 0xFFFFF924, 0x000002E7, 0x00001901, 0xFFFFF924, 0x000002E7 },
+       { 0x0213EA94DE062104, 0x0000293F, 0xFFFFF158, 0x000003E6, 0x0000183F, 0xFFFFF9F6, 0x000002D2, 0x0000183F, 0xFFFFF9F6, 0x000002D2 },
+       { 0x0213F0FE990E1104, 0x00002A67, 0xFFFFEF34, 0x0000043E, 0x00001C6F, 0xFFFFF6F1, 0x0000032B, 0x00001C6F, 0xFFFFF6F1, 0x0000032B },
+       { 0x0213EA94DE065124, 0x00002F8D, 0xFFFFEB77, 0x000004DA, 0x00001C0D, 0xFFFFF627, 0x00000365, 0x00001C0D, 0xFFFFF627, 0x00000365 },
+       { 0x0213F0FE990C38C4, 0x00003476, 0xFFFFEA5B, 0x000004E7, 0x00001DBF, 0xFFFFF6C7, 0x00000333, 0x00001DBF, 0xFFFFF6C7, 0x00000333 },
+       { 0x0213F0FE990E0944, 0x00003336, 0xFFFFE92F, 0x00000546, 0x00001614, 0xFFFFFAE0, 0x00000296, 0x00001614, 0xFFFFFAE0, 0x00000296 },
+       { 0x0213F0FE99162164, 0x00002513, 0xFFFFF323, 0x000003BC, 0x000016DB, 0xFFFFFA79, 0x000002CD, 0x000016DB, 0xFFFFFA79, 0x000002CD },
+       { 0x0213F0FE990A2944, 0x000035A7, 0xFFFFE78E, 0x00000584, 0x00001B0D, 0xFFFFF77D, 0x0000031F, 0x00001B0D, 0xFFFFF77D, 0x0000031F },
+       { 0x0213F0FE993238E4, 0x00003171, 0xFFFFEB98, 0x000004C6, 0x00001C76, 0xFFFFF71F, 0x0000032F, 0x00001C76, 0xFFFFF71F, 0x0000032F },
+       { 0x0213F0FD42DA1084, 0x00002C52, 0xFFFFED2E, 0x000004A7, 0x00002182, 0xFFFFF2F4, 0x000003E4, 0x00002182, 0xFFFFF2F4, 0x000003E4 },
+       { 0x0213F0FE99102924, 0x000032E1, 0xFFFFEB39, 0x000004D0, 0x00001B55, 0xFFFFF859, 0x000002FA, 0x00001B55, 0xFFFFF859, 0x000002FA },
+       { 0x0213F0FE991848A4, 0x000029B6, 0xFFFFEFF7, 0x00000430, 0x0000151B, 0xFFFFFBC6, 0x0000027F, 0x0000151B, 0xFFFFFBC6, 0x0000027F },
+       { 0x0213F0FD42DA1964, 0x00002FF7, 0xFFFFEB67, 0x000004DA, 0x000020E9, 0xFFFFF363, 0x000003CE, 0x000020E9, 0xFFFFF363, 0x000003CE },
+       { 0x0213F0FD42DA5124, 0x00003CDD, 0xFFFFE2B2, 0x00000649, 0x00001B18, 0xFFFFF739, 0x00000329, 0x00001B18, 0xFFFFF739, 0x00000329 },
+       { 0x0213F0FE990628A4, 0x00003C82, 0xFFFFE5C6, 0x0000058E, 0x00001F3F, 0xFFFFF5AD, 0x00000361, 0x00001F3F, 0xFFFFF5AD, 0x00000361 },
+       { 0x0213F0FD42DC4084, 0x0000319B, 0xFFFFEA15, 0x0000051B, 0x00001CC9, 0xFFFFF62E, 0x00000358, 0x00001CC9, 0xFFFFF62E, 0x00000358 },
+       { 0x0213EA94DE0638E4, 0x000032B6, 0xFFFFEB2B, 0x000004D6, 0x000018E0, 0xFFFFF966, 0x000002DE, 0x000018E0, 0xFFFFF966, 0x000002DE },
+       { 0x0213EA94DE023984, 0x0000300A, 0xFFFFEBA6, 0x000004D1, 0x00001CFD, 0xFFFFF5F6, 0x0000036D, 0x00001CFD, 0xFFFFF5F6, 0x0000036D },
+       { 0x0213F0FD42D82984, 0x000026A9, 0xFFFFF15D, 0x00000400, 0x00001561, 0xFFFFFB1F, 0x000002A0, 0x00001561, 0xFFFFFB1F, 0x000002A0 },
+       { 0x0213F0FE990E5124, 0x00003123, 0xFFFFEAD2, 0x000004FA, 0x000018CB, 0xFFFFF8F5, 0x000002EC, 0x000018CB, 0xFFFFF8F5, 0x000002EC },
+       { 0x0213F0FE991840C4, 0x00003577, 0xFFFFE935, 0x00000533, 0x000016CD, 0xFFFFFB44, 0x00000289, 0x000016CD, 0xFFFFFB44, 0x00000289 },
+       { 0x0213F0FE99282184, 0x00002875, 0xFFFFF170, 0x000003F3, 0x00001567, 0xFFFFFBD5, 0x00000289, 0x00001567, 0xFFFFFBD5, 0x00000289 },
+       { 0x0213F0FE99084084, 0x00003AE2, 0xFFFFE538, 0x000005C1, 0x00001CB4, 0xFFFFF6A3, 0x0000033C, 0x00001CB4, 0xFFFFF6A3, 0x0000033C },
+       { 0x0213F0FE990C38E4, 0x000031DF, 0xFFFFEC2A, 0x000004A3, 0x00001EF0, 0xFFFFF626, 0x00000352, 0x00001EF0, 0xFFFFF626, 0x00000352 },
+       { 0x0213F0FD42D25144, 0x00004A6A, 0xFFFFDB15, 0x00000758, 0x000027F3, 0xFFFFEEEE, 0x00000479, 0x000027F3, 0xFFFFEEEE, 0x00000479 },
+       { 0x0213EA94DE063904, 0x00002BB9, 0xFFFFEF5D, 0x00000433, 0x00001589, 0xFFFFFB57, 0x00000295, 0x00001589, 0xFFFFFB57, 0x00000295 },
+       { 0x0213F0FE99042164, 0x000033A0, 0xFFFFE98F, 0x00000528, 0x00001CB4, 0xFFFFF706, 0x0000032D, 0x00001CB4, 0xFFFFF706, 0x0000032D },
+       { 0x0213F0FE99163064, 0x0000248E, 0xFFFFF380, 0x000003AC, 0x000016EA, 0xFFFFFA6C, 0x000002CE, 0x000016EA, 0xFFFFFA6C, 0x000002CE },
+       { 0x0213F0FE990221A4, 0x00002FE2, 0xFFFFEB2F, 0x000004E9, 0x00001D4E, 0xFFFFF56B, 0x00000380, 0x00001D4E, 0xFFFFF56B, 0x00000380 },
+       { 0x0213F0FE990A2884, 0x00003283, 0xFFFFE9E7, 0x0000051D, 0x00000694, 0xFFFFFD32, 0x000003C3, 0x00000694, 0xFFFFFD32, 0x000003C3 },
+       { 0x0213F0FD42D850C4, 0x00002EE4, 0xFFFFEBFD, 0x000004D3, 0x0000151A, 0xFFFFFAF6, 0x000002A4, 0x0000151A, 0xFFFFFAF6, 0x000002A4 },
+       { 0x0213F0FD42DC18E4, 0x0000302D, 0xFFFFEB7F, 0x000004DA, 0x00001E6D, 0xFFFFF54B, 0x00000380, 0x00001E6D, 0xFFFFF54B, 0x00000380 },
+       { 0x0213F0FD42DA50C4, 0x000033DA, 0xFFFFE7FB, 0x0000057F, 0x00001DED, 0xFFFFF50E, 0x0000038D, 0x00001DED, 0xFFFFF50E, 0x0000038D },
+       { 0x0213F0FE992C4084, 0x000030B5, 0xFFFFEBB8, 0x000004C4, 0x00001C3F, 0xFFFFF726, 0x0000032A, 0x00001C3F, 0xFFFFF726, 0x0000032A },
+       { 0x0213F0FE990831C4, 0x00003BBD, 0xFFFFE55C, 0x000005B8, 0x000019DB, 0xFFFFF8BB, 0x000002EF, 0x000019DB, 0xFFFFF8BB, 0x000002EF },
+       { 0x0213F0FE990E3884, 0x00002964, 0xFFFFF051, 0x0000040E, 0x000025CD, 0xFFFFF11B, 0x0000041F, 0x000025CD, 0xFFFFF11B, 0x0000041F },
+       { 0x0213F0FD42DC4884, 0x000033F5, 0xFFFFE863, 0x00000560, 0x00001BCE, 0xFFFFF689, 0x0000034B, 0x00001BCE, 0xFFFFF689, 0x0000034B },
+       { 0x0213F0FE990A2864, 0x00003294, 0xFFFFE924, 0x00000548, 0x00001D41, 0xFFFFF580, 0x0000037D, 0x00001D41, 0xFFFFF580, 0x0000037D },
+       { 0x0213F0FD42DC39A4, 0x000034FB, 0xFFFFE7FE, 0x0000056D, 0x00001CB1, 0xFFFFF635, 0x00000357, 0x00001CB1, 0xFFFFF635, 0x00000357 },
+       { 0x0213F0FE990A10A4, 0x00002E28, 0xFFFFEBB9, 0x000004E0, 0x00001B20, 0xFFFFF6E3, 0x0000033C, 0x00001B20, 0xFFFFF6E3, 0x0000033C },
+       { 0x0213F0FD42DA1904, 0x00002799, 0xFFFFF0F4, 0x000003FC, 0x00001C9D, 0xFFFFF6A1, 0x00000345, 0x00001C9D, 0xFFFFF6A1, 0x00000345 },
+       { 0x0213F0FE99064104, 0x00003AEA, 0xFFFFE5DB, 0x0000059D, 0x00001B61, 0xFFFFF7F0, 0x00000301, 0x00001B61, 0xFFFFF7F0, 0x00000301 },
+       { 0x0213EA94DE041984, 0x000031F6, 0xFFFFEAB8, 0x000004F3, 0x00001D90, 0xFFFFF622, 0x00000359, 0x00001D90, 0xFFFFF622, 0x00000359 },
+       { 0x0213F0FE990C4064, 0x000031B8, 0xFFFFEA61, 0x0000050F, 0x0000199D, 0xFFFFF87C, 0x000002FD, 0x0000199D, 0xFFFFF87C, 0x000002FD },
+       { 0x0213F0FD42D23144, 0x00004514, 0xFFFFDDFF, 0x000006F6, 0x000022CD, 0xFFFFF29F, 0x000003D9, 0x000022CD, 0xFFFFF29F, 0x000003D9 },
+       { 0x0213EA94DE043164, 0x00002F30, 0xFFFFECB8, 0x000004A0, 0x00001B07, 0xFFFFF7E2, 0x00000313, 0x00001B07, 0xFFFFF7E2, 0x00000313 },
+       { 0x0213F0FD42DC30A4, 0x0000383B, 0xFFFFE702, 0x00000581, 0x00001A08, 0xFFFFF8CA, 0x000002E2, 0x00001A08, 0xFFFFF8CA, 0x000002E2 },
+       { 0x0213F0FE99022164, 0x00002CC5, 0xFFFFEDF8, 0x00000465, 0x00001F47, 0xFFFFF4B2, 0x00000393, 0x00001F47, 0xFFFFF4B2, 0x00000393 },
+       { 0x0213F0FE991621C4, 0x00002304, 0xFFFFF453, 0x00000384, 0x0000170A, 0xFFFFFA3F, 0x000002CE, 0x0000170A, 0xFFFFFA3F, 0x000002CE },
+       { 0x0213F0FE990A5124, 0x0000337E, 0xFFFFE850, 0x0000056E, 0x00001BDD, 0xFFFFF668, 0x00000353, 0x00001BDD, 0xFFFFF668, 0x00000353 },
+       { 0x0213F0FE990E4924, 0x00002E2F, 0xFFFFEC9B, 0x000004AE, 0x00001C4D, 0xFFFFF6D3, 0x00000338, 0x00001C4D, 0xFFFFF6D3, 0x00000338 },
+       { 0x0213EA94DE061124, 0x00002DDD, 0xFFFFEDA4, 0x00000477, 0x00002010, 0xFFFFF4BB, 0x00000390, 0x00002010, 0xFFFFF4BB, 0x00000390 },
+       { 0x0213F0FD42DA48E4, 0x0000290C, 0xFFFFEF61, 0x00000445, 0x00002133, 0xFFFFF324, 0x000003D8, 0x00002133, 0xFFFFF324, 0x000003D8 },
+       { 0x0213F0FE99062924, 0x0000371E, 0xFFFFE8D5, 0x00000524, 0x00001C3A, 0xFFFFF7AE, 0x00000314, 0x00001C3A, 0xFFFFF7AE, 0x00000314 },
+       { 0x0213F0FD42D838E4, 0x00002A58, 0xFFFFF007, 0x00000429, 0x000018A6, 0xFFFFF98F, 0x000002E1, 0x000018A6, 0xFFFFF98F, 0x000002E1 },
+       { 0x0213F0FE99023084, 0x00002FED, 0xFFFFEC48, 0x000004AA, 0x00001E9D, 0xFFFFF584, 0x00000370, 0x00001E9D, 0xFFFFF584, 0x00000370 },
+       { 0x0213F0FE99181884, 0x00002829, 0xFFFFF15F, 0x000003F7, 0x0000157E, 0xFFFFFBD4, 0x00000282, 0x0000157E, 0xFFFFFBD4, 0x00000282 },
+       { 0x0213F0FE99101924, 0x000030CF, 0xFFFFEB8D, 0x000004CE, 0x00001A4C, 0xFFFFF868, 0x000002F7, 0x00001A4C, 0xFFFFF868, 0x000002F7 },
+       { 0x0213F0FD42DA2084, 0x00002C8F, 0xFFFFEDD2, 0x0000047D, 0x00001CCE, 0xFFFFF6A1, 0x00000343, 0x00001CCE, 0xFFFFF6A1, 0x00000343 },
+       { 0x0213F0FE99182164, 0x00002A84, 0xFFFFEFBA, 0x0000043E, 0x000015EF, 0xFFFFFB4B, 0x0000029E, 0x000015EF, 0xFFFFFB4B, 0x0000029E },
+       { 0x0213F0FE990C28A4, 0x000034CA, 0xFFFFEA08, 0x000004FF, 0x00001C19, 0xFFFFF7ED, 0x00000309, 0x00001C19, 0xFFFFF7ED, 0x00000309 },
+       { 0x0213F0FE991639A4, 0x00002187, 0xFFFFF4B0, 0x0000037E, 0x0000154A, 0xFFFFFB0C, 0x000002AE, 0x0000154A, 0xFFFFFB0C, 0x000002AE },
+       { 0x0213F0FD42DA3844, 0x00002F4F, 0xFFFFEB3C, 0x000004F8, 0x0000181F, 0xFFFFF92D, 0x000002DF, 0x0000181F, 0xFFFFF92D, 0x000002DF },
+       { 0x0213F0FE990410E4, 0x0000290C, 0xFFFFF0B1, 0x000003FC, 0x00001DB0, 0xFFFFF636, 0x00000355, 0x00001DB0, 0xFFFFF636, 0x00000355 },
+       { 0x0213F0FE990A1064, 0x000034C1, 0xFFFFE888, 0x0000055A, 0x000019BF, 0xFFFFF881, 0x000002FB, 0x000019BF, 0xFFFFF881, 0x000002FB },
+       { 0x0213F0FD42DC18C4, 0x00003139, 0xFFFFEA98, 0x00000504, 0x000019F2, 0xFFFFF820, 0x0000030B, 0x000019F2, 0xFFFFF820, 0x0000030B },
+       { 0x0213F0FD42D83144, 0x00002CAC, 0xFFFFEEB2, 0x00000458, 0x0000152C, 0xFFFFFBEF, 0x0000027B, 0x0000152C, 0xFFFFFBEF, 0x0000027B },
+       { 0x0213F0FE992C38E4, 0x00003577, 0xFFFFE99C, 0x0000050D, 0x00001E64, 0xFFFFF679, 0x0000033F, 0x00001E64, 0xFFFFF679, 0x0000033F },
+       { 0x0213F0FD42DA4104, 0x0000263A, 0xFFFFF1E4, 0x000003D4, 0x00001F68, 0xFFFFF4ED, 0x00000386, 0x00001F68, 0xFFFFF4ED, 0x00000386 },
+       { 0x0213F0FD42D81984, 0x00002CE9, 0xFFFFED63, 0x00000497, 0x00001810, 0xFFFFF94D, 0x000002E3, 0x00001810, 0xFFFFF94D, 0x000002E3 },
+       { 0x0213EA94DE044104, 0x0000318A, 0xFFFFEAC8, 0x000004F5, 0x0000195C, 0xFFFFF896, 0x000002FB, 0x0000195C, 0xFFFFF896, 0x000002FB },
+       { 0x0213F0FD42D83904, 0x00002C41, 0xFFFFEEC6, 0x0000045D, 0x000017DD, 0xFFFFFA16, 0x000002CB, 0x000017DD, 0xFFFFFA16, 0x000002CB },
+       { 0x0213F0FE990231A4, 0x00002DD4, 0xFFFFEC98, 0x000004AD, 0x00001BD7, 0xFFFFF69F, 0x00000347, 0x00001BD7, 0xFFFFF69F, 0x00000347 },
+       { 0x0213F0FD42DA3944, 0x00003351, 0xFFFFE9B2, 0x0000051A, 0x00001CA1, 0xFFFFF6A4, 0x00000341, 0x00001CA1, 0xFFFFF6A4, 0x00000341 },
+       { 0x0213F0FE99021104, 0x0000322D, 0xFFFFE9BE, 0x00000527, 0x00001CF9, 0xFFFFF5EB, 0x00000366, 0x00001CF9, 0xFFFFF5EB, 0x00000366 },
+       { 0x0213F0FE990C28C4, 0x00003678, 0xFFFFE9A8, 0x00000503, 0x00001AD4, 0xFFFFF8F6, 0x000002E3, 0x00001AD4, 0xFFFFF8F6, 0x000002E3 },
+       { 0x0213F0FE99161924, 0x0000260E, 0xFFFFF2C1, 0x000003CA, 0x00001139, 0xFFFFFE48, 0x00000236, 0x00001139, 0xFFFFFE48, 0x00000236 },
+       { 0x0213F0FE990A2164, 0x000033D3, 0xFFFFE872, 0x00000565, 0x00001B72, 0xFFFFF713, 0x00000332, 0x00001B72, 0xFFFFF713, 0x00000332 },
+       { 0x0213F0FE99323844, 0x0000309B, 0xFFFFEB42, 0x000004E4, 0x00001918, 0xFFFFF8C8, 0x000002F2, 0x00001918, 0xFFFFF8C8, 0x000002F2 },
+       { 0x0213F0FE99182864, 0x000028B8, 0xFFFFF105, 0x00000402, 0x000018BB, 0xFFFFF9BC, 0x000002D3, 0x000018BB, 0xFFFFF9BC, 0x000002D3 },
+       { 0x0213F0FE990A1884, 0x00003123, 0xFFFFE9D1, 0x00000534, 0x00001B19, 0xFFFFF6FE, 0x0000033C, 0x00001B19, 0xFFFFF6FE, 0x0000033C },
+       { 0x0213F0FE99022144, 0x00003216, 0xFFFFEA8E, 0x000004F6, 0x00001F72, 0xFFFFF4CE, 0x0000038B, 0x00001F72, 0xFFFFF4CE, 0x0000038B },
+       { 0x0213F0FE99162964, 0x00002564, 0xFFFFF32D, 0x000003B6, 0x00001685, 0xFFFFFADB, 0x000002BB, 0x00001685, 0xFFFFFADB, 0x000002BB },
+       { 0x0213F0FD42DA2924, 0x00002E60, 0xFFFFED13, 0x00000497, 0x00001CA5, 0xFFFFF6B9, 0x00000346, 0x00001CA5, 0xFFFFF6B9, 0x00000346 },
+       { 0x0213F0FE990E39A4, 0x0000336D, 0xFFFFE934, 0x0000053B, 0x00001B3E, 0xFFFFF763, 0x00000327, 0x00001B3E, 0xFFFFF763, 0x00000327 },
+       { 0x0213F0FE99101084, 0x0000274A, 0xFFFFF119, 0x000003FA, 0x00001D75, 0xFFFFF5CD, 0x0000036F, 0x00001D75, 0xFFFFF5CD, 0x0000036F },
+       { 0x0213F0FD42DA2164, 0x0000366B, 0xFFFFE70A, 0x0000059A, 0x00001ED8, 0xFFFFF501, 0x00000389, 0x00001ED8, 0xFFFFF501, 0x00000389 },
+       { 0x0213F0FE99223964, 0x00003164, 0xFFFFEAB4, 0x000004FA, 0x00001C52, 0xFFFFF6E0, 0x00000336, 0x00001C52, 0xFFFFF6E0, 0x00000336 },
+       { 0x0213F0FD42D23064, 0x00004224, 0xFFFFDF7F, 0x000006C1, 0x00002A52, 0xFFFFED5E, 0x000004BB, 0x00002A52, 0xFFFFED5E, 0x000004BB },
+       { 0x0213F0FE99102864, 0x000030E3, 0xFFFFEB07, 0x000004ED, 0x00001FD3, 0xFFFFF46D, 0x000003A1, 0x00001FD3, 0xFFFFF46D, 0x000003A1 },
+       { 0x0213F0FD42D82884, 0x00002AEB, 0xFFFFEF1B, 0x00000454, 0x00001829, 0xFFFFF995, 0x000002DD, 0x00001829, 0xFFFFF995, 0x000002DD },
+       { 0x0213F0FD42DC50E4, 0x0000346B, 0xFFFFE7A2, 0x0000058B, 0x000020C5, 0xFFFFF2E8, 0x000003EC, 0x000020C5, 0xFFFFF2E8, 0x000003EC },
+       { 0x0213F0FD42DC4164, 0x000039CF, 0xFFFFE5D7, 0x000005A9, 0x00001D66, 0xFFFFF5D6, 0x00000366, 0x00001D66, 0xFFFFF5D6, 0x00000366 },
+       { 0x0213F0FE990418E4, 0x000034AC, 0xFFFFE9AE, 0x00000515, 0x00001A28, 0xFFFFF904, 0x000002DC, 0x00001A28, 0xFFFFF904, 0x000002DC },
+       { 0x0213F0FD42DC2084, 0x00002D68, 0xFFFFED21, 0x00000498, 0x00001C6F, 0xFFFFF686, 0x0000034C, 0x00001C6F, 0xFFFFF686, 0x0000034C },
+       { 0x0213F0FE990820C4, 0x0000328B, 0xFFFFEBA1, 0x000004B4, 0x00001DA3, 0xFFFFF683, 0x00000349, 0x00001DA3, 0xFFFFF683, 0x00000349 },
+       { 0x0213F0FE991828C4, 0x000027DC, 0xFFFFF295, 0x000003BF, 0x000019C1, 0xFFFFF98E, 0x000002E8, 0x000019C1, 0xFFFFF98E, 0x000002E8 },
+       { 0x0213F0FE99184084, 0x00002756, 0xFFFFF1D7, 0x000003DF, 0x000015D9, 0xFFFFFB51, 0x00000298, 0x000015D9, 0xFFFFFB51, 0x00000298 },
+       { 0x0213F0FE99083884, 0x00003526, 0xFFFFE907, 0x00000526, 0x000017AB, 0xFFFFFA12, 0x000002AB, 0x000017AB, 0xFFFFFA12, 0x000002AB },
+       { 0x0213F0FD42DA18E4, 0x0000351B, 0xFFFFE8B7, 0x00000540, 0x00001A86, 0xFFFFF821, 0x00000303, 0x00001A86, 0xFFFFF821, 0x00000303 },
+       { 0x0213F0FE99164144, 0x000024B2, 0xFFFFF34E, 0x000003B1, 0x000018E2, 0xFFFFF926, 0x000002FC, 0x000018E2, 0xFFFFF926, 0x000002FC },
+       { 0x0213F0FD42D828A4, 0x00002F36, 0xFFFFED5D, 0x00000486, 0x0000157A, 0xFFFFFB85, 0x00000293, 0x0000157A, 0xFFFFFB85, 0x00000293 },
+       { 0x0213F0FD42DC50C4, 0x00003A6E, 0xFFFFE456, 0x000005FD, 0x00001F68, 0xFFFFF3D1, 0x000003C3, 0x00001F68, 0xFFFFF3D1, 0x000003C3 },
+       { 0x0213F0FE990A31A4, 0x00002BC3, 0xFFFFED2D, 0x000004A7, 0x00001C3F, 0xFFFFF609, 0x00000364, 0x00001C3F, 0xFFFFF609, 0x00000364 },
+       { 0x0213F0FE990E2084, 0x000032E1, 0xFFFFEA83, 0x000004F6, 0x00001B37, 0xFFFFF842, 0x000002F5, 0x00001B37, 0xFFFFF842, 0x000002F5 },
+       { 0x0213F0FD42D83184, 0x000028E3, 0xFFFFF07F, 0x00000412, 0x00001676, 0xFFFFFA68, 0x000002BE, 0x00001676, 0xFFFFFA68, 0x000002BE },
+       { 0x0213F0FD42D21104, 0x0000444C, 0xFFFFDDAD, 0x00000712, 0x00002634, 0xFFFFEF89, 0x0000046C, 0x00002634, 0xFFFFEF89, 0x0000046C },
+       { 0x0213F0FE990418C4, 0x00003121, 0xFFFFEBBB, 0x000004C6, 0x00001C98, 0xFFFFF72B, 0x0000032D, 0x00001C98, 0xFFFFF72B, 0x0000032D },
+       { 0x0213F0FD42D840A4, 0x00002C31, 0xFFFFEDC4, 0x00000490, 0x0000162D, 0xFFFFFA8E, 0x000002B4, 0x0000162D, 0xFFFFFA8E, 0x000002B4 },
+       { 0x0213F0FD42DA18C4, 0x00002749, 0xFFFFF112, 0x000003FC, 0x00001C85, 0xFFFFF6B8, 0x00000342, 0x00001C85, 0xFFFFF6B8, 0x00000342 },
+       { 0x0213F0FE99044104, 0x00003159, 0xFFFFEB99, 0x000004C2, 0x00001BD0, 0xFFFFF7CA, 0x00000307, 0x00001BD0, 0xFFFFF7CA, 0x00000307 },
+       { 0x0213F0FE99164164, 0x00002610, 0xFFFFF1FD, 0x000003EC, 0x000016BE, 0xFFFFFA53, 0x000002CB, 0x000016BE, 0xFFFFFA53, 0x000002CB },
+       { 0x0213F0FE99023184, 0x000037B5, 0xFFFFE63D, 0x000005B5, 0x00002285, 0xFFFFF25D, 0x000003F7, 0x00002285, 0xFFFFF25D, 0x000003F7 },
+       { 0x0213F0FE990A28A4, 0x00002FEE, 0xFFFFEB47, 0x000004EF, 0x00001CBE, 0xFFFFF64E, 0x00000358, 0x00001CBE, 0xFFFFF64E, 0x00000358 },
+       { 0x0213F0FE99105104, 0x00002E90, 0xFFFFEC48, 0x000004C0, 0x00001A47, 0xFFFFF7D1, 0x0000031A, 0x00001A47, 0xFFFFF7D1, 0x0000031A },
+       { 0x0213F0FD42DA4084, 0x000034AB, 0xFFFFE84A, 0x00000559, 0x00001A72, 0xFFFFF79A, 0x0000031C, 0x00001A72, 0xFFFFF79A, 0x0000031C },
+       { 0x0213F0FE99183884, 0x00002F7B, 0xFFFFECFC, 0x0000049C, 0x00001814, 0xFFFFFA22, 0x000002C2, 0x00001814, 0xFFFFFA22, 0x000002C2 },
+       { 0x0213F0FE99021964, 0x00003618, 0xFFFFE709, 0x00000596, 0x00001EBF, 0xFFFFF482, 0x000003A5, 0x00001EBF, 0xFFFFF482, 0x000003A5 },
+       { 0x0213EA94DE024904, 0x0000341B, 0xFFFFE8B2, 0x0000054F, 0x00001D26, 0xFFFFF578, 0x00000388, 0x00001D26, 0xFFFFF578, 0x00000388 },
+       { 0x0213F0FE99102144, 0x000030F6, 0xFFFFEB89, 0x000004CD, 0x000019C0, 0xFFFFF8CC, 0x000002E6, 0x000019C0, 0xFFFFF8CC, 0x000002E6 },
+       { 0x0213F0FE992841A4, 0x00002B76, 0xFFFFEF6C, 0x00000444, 0x00001563, 0xFFFFFBBE, 0x0000028D, 0x00001563, 0xFFFFFBBE, 0x0000028D },
+       { 0x0213F0FD42D81864, 0x00002BA2, 0xFFFFEE31, 0x0000047F, 0x00001A3D, 0xFFFFF7F3, 0x00000320, 0x00001A3D, 0xFFFFF7F3, 0x00000320 },
+       { 0x0213F0FE992C48E4, 0x00003545, 0xFFFFE87A, 0x0000054A, 0x00001B5A, 0xFFFFF7B0, 0x0000030C, 0x00001B5A, 0xFFFFF7B0, 0x0000030C },
+       { 0x0213EA94DE042944, 0x00003879, 0xFFFFE73F, 0x00000578, 0x00001649, 0xFFFFFB57, 0x00000283, 0x00001649, 0xFFFFFB57, 0x00000283 },
+       { 0x0213F0FD42D840C4, 0x00002772, 0xFFFFF0F1, 0x00000410, 0x0000142F, 0xFFFFFBCF, 0x00000287, 0x0000142F, 0xFFFFFBCF, 0x00000287 },
+       { 0x0213F0FD42DA3184, 0x00003228, 0xFFFFE98E, 0x00000535, 0x00001F48, 0xFFFFF495, 0x00000399, 0x00001F48, 0xFFFFF495, 0x00000399 },
+       { 0x0213F0FE990E40E4, 0x00002887, 0xFFFFF119, 0x000003E8, 0x000021AA, 0xFFFFF3F5, 0x000003A5, 0x000021AA, 0xFFFFF3F5, 0x000003A5 },
+       { 0x0213F0FD42DA28A4, 0x0000301F, 0xFFFFEBB2, 0x000004D2, 0x00001C02, 0xFFFFF736, 0x0000032B, 0x00001C02, 0xFFFFF736, 0x0000032B },
+       { 0x0213F0FE991820A4, 0x00002E13, 0xFFFFEE3F, 0x00000468, 0x000016AC, 0xFFFFFB32, 0x0000029E, 0x000016AC, 0xFFFFFB32, 0x0000029E },
+       { 0x0213F0FE99044924, 0x00003478, 0xFFFFE8F9, 0x00000538, 0x00001DAB, 0xFFFFF645, 0x00000345, 0x00001DAB, 0xFFFFF645, 0x00000345 },
+       { 0x0213F0FE990608C4, 0x000030C6, 0xFFFFEB6C, 0x000004D4, 0x0000184A, 0xFFFFF934, 0x000002E1, 0x0000184A, 0xFFFFF934, 0x000002E1 },
+       { 0x0213F0FE990A2044, 0x00002F1B, 0xFFFFEBD3, 0x000004D3, 0x000019E7, 0xFFFFF813, 0x0000030D, 0x000019E7, 0xFFFFF813, 0x0000030D },
+       { 0x0213F0FE99023904, 0x00003214, 0xFFFFEAE9, 0x000004E0, 0x0000178F, 0xFFFFFA1C, 0x000002B1, 0x0000178F, 0xFFFFFA1C, 0x000002B1 },
+       { 0x0213F0FD42DC3144, 0x0000399C, 0xFFFFE738, 0x0000055E, 0x00001EA1, 0xFFFFF5E7, 0x0000035A, 0x00001EA1, 0xFFFFF5E7, 0x0000035A },
+       { 0x0213F0FE990650C4, 0x00003A01, 0xFFFFE5B2, 0x000005B6, 0x00001D95, 0xFFFFF5D2, 0x0000036A, 0x00001D95, 0xFFFFF5D2, 0x0000036A },
+       { 0x0213F0FE99043884, 0x0000310D, 0xFFFFEB78, 0x000004D0, 0x00001C06, 0xFFFFF76E, 0x0000031A, 0x00001C06, 0xFFFFF76E, 0x0000031A },
+       { 0x0213F0FE99063864, 0x00003CD1, 0xFFFFE42F, 0x000005EB, 0x00001933, 0xFFFFF91F, 0x000002D4, 0x00001933, 0xFFFFF91F, 0x000002D4 },
+       { 0x0213F0FD42DA3164, 0x00003119, 0xFFFFEB1B, 0x000004E1, 0x00001FC7, 0xFFFFF46A, 0x000003A2, 0x00001FC7, 0xFFFFF46A, 0x000003A2 },
+       { 0x0213EA94DE0648A4, 0x0000390D, 0xFFFFE566, 0x000005D8, 0x00001EC6, 0xFFFFF4DC, 0x00000391, 0x00001EC6, 0xFFFFF4DC, 0x00000391 },
+       { 0x0213F0FD42DA10C4, 0x00003446, 0xFFFFE858, 0x00000561, 0x00001FDB, 0xFFFFF3FF, 0x000003B9, 0x00001FDB, 0xFFFFF3FF, 0x000003B9 },
+       { 0x0213F0FE99044904, 0x000032BA, 0xFFFFEA07, 0x00000511, 0x00001B25, 0xFFFFF7C9, 0x0000030D, 0x00001B25, 0xFFFFF7C9, 0x0000030D },
+       { 0x0213F0FE990E1864, 0x00002CCF, 0xFFFFEDE5, 0x00000478, 0x00001BC8, 0xFFFFF761, 0x00000326, 0x00001BC8, 0xFFFFF761, 0x00000326 },
+       { 0x0213F0FE99062984, 0x0000400E, 0xFFFFE1CB, 0x00000652, 0x00001AF8, 0xFFFFF7B9, 0x00000312, 0x00001AF8, 0xFFFFF7B9, 0x00000312 },
+       { 0x0213F0FE990408E4, 0x00002F24, 0xFFFFEC2A, 0x000004C7, 0x00001B94, 0xFFFFF748, 0x00000333, 0x00001B94, 0xFFFFF748, 0x00000333 },
+       { 0x0213F0FD42D21924, 0x00003FDA, 0xFFFFE1C1, 0x0000064B, 0x00002427, 0xFFFFF180, 0x0000040C, 0x00002427, 0xFFFFF180, 0x0000040C },
+       { 0x0213F0FE990A18C4, 0x00002F6B, 0xFFFFEBA7, 0x000004DD, 0x00001C25, 0xFFFFF6C1, 0x00000344, 0x00001C25, 0xFFFFF6C1, 0x00000344 },
+       { 0x0213F0FE99182104, 0x00002A53, 0xFFFFF0EE, 0x00000402, 0x000017C6, 0xFFFFFAA0, 0x000002BF, 0x000017C6, 0xFFFFFAA0, 0x000002BF },
+       { 0x0213F0FE99105144, 0x000031F4, 0xFFFFEA34, 0x00000517, 0x000016FF, 0xFFFFFA4E, 0x000002AC, 0x000016FF, 0xFFFFFA4E, 0x000002AC },
+       { 0x0213F0FE99322144, 0x00002E24, 0xFFFFED46, 0x00000489, 0x00001712, 0xFFFFFA5D, 0x000002AC, 0x00001712, 0xFFFFFA5D, 0x000002AC },
+       { 0x0213F0FE99182824, 0x000028CD, 0xFFFFF0E3, 0x0000040E, 0x00001606, 0xFFFFFB37, 0x000002A4, 0x00001606, 0xFFFFFB37, 0x000002A4 },
+       { 0x0213F0FE990220C4, 0x00003184, 0xFFFFEB88, 0x000004C3, 0x000018DA, 0xFFFFF939, 0x000002DB, 0x000018DA, 0xFFFFF939, 0x000002DB },
+       { 0x0213F0FE99162124, 0x0000239B, 0xFFFFF470, 0x00000386, 0x00001714, 0xFFFFFA9F, 0x000002C8, 0x00001714, 0xFFFFFA9F, 0x000002C8 },
+       { 0x0213F0FD42DC38E4, 0x00003641, 0xFFFFE92B, 0x00000515, 0x00001BE2, 0xFFFFF795, 0x0000031B, 0x00001BE2, 0xFFFFF795, 0x0000031B },
+       { 0x0213F0FE992C1144, 0x00003278, 0xFFFFEA17, 0x00000510, 0x00001B71, 0xFFFFF778, 0x0000031D, 0x00001B71, 0xFFFFF778, 0x0000031D },
+       { 0x0213F0FE99062844, 0x000035B9, 0xFFFFE8DA, 0x0000052D, 0x00001A6A, 0xFFFFF83B, 0x000002FF, 0x00001A6A, 0xFFFFF83B, 0x000002FF },
+       { 0x0213F0FE990E18C4, 0x00002E5E, 0xFFFFED32, 0x0000048B, 0x00001E7D, 0xFFFFF60E, 0x0000034E, 0x00001E7D, 0xFFFFF60E, 0x0000034E },
+       { 0x0213F0FE991019A4, 0x00003178, 0xFFFFEA52, 0x00000513, 0x00001AD0, 0xFFFFF793, 0x0000031F, 0x00001AD0, 0xFFFFF793, 0x0000031F },
+       { 0x0213F0FD42D44104, 0x00003A2C, 0xFFFFE346, 0x00000641, 0x000023D0, 0xFFFFF0CE, 0x00000433, 0x000023D0, 0xFFFFF0CE, 0x00000433 },
+       { 0x0213F0FD42D818C4, 0x000028FD, 0xFFFFF02A, 0x0000042B, 0x0000152B, 0xFFFFFB90, 0x00000289, 0x0000152B, 0xFFFFFB90, 0x00000289 },
+       { 0x0213F0FE990E3084, 0x000030DE, 0xFFFFEBDF, 0x000004BE, 0x00001CDC, 0xFFFFF747, 0x0000031C, 0x00001CDC, 0xFFFFF747, 0x0000031C },
+       { 0x0213F0FE99021944, 0x000036CB, 0xFFFFE6EE, 0x00000596, 0x00002096, 0xFFFFF3C2, 0x000003BB, 0x00002096, 0xFFFFF3C2, 0x000003BB },
+       { 0x0213F0FE990C48C4, 0x00003172, 0xFFFFEAC1, 0x000004F4, 0x00001C87, 0xFFFFF6CD, 0x00000337, 0x00001C87, 0xFFFFF6CD, 0x00000337 },
+       { 0x0213F0FD42D24864, 0x00004A18, 0xFFFFDB34, 0x00000758, 0x0000213C, 0xFFFFF3A2, 0x000003AC, 0x0000213C, 0xFFFFF3A2, 0x000003AC },
+       { 0x0213F0FE99022104, 0x000031F3, 0xFFFFEB73, 0x000004C6, 0x00001B23, 0xFFFFF7CB, 0x0000031A, 0x00001B23, 0xFFFFF7CB, 0x0000031A },
+       { 0x0213F0FE990A2924, 0x000031C0, 0xFFFFEABA, 0x000004F7, 0x00001A5A, 0xFFFFF845, 0x000002FF, 0x00001A5A, 0xFFFFF845, 0x000002FF },
+       { 0x0213F0FE99104944, 0x00003B77, 0xFFFFE3B3, 0x00000623, 0x00001BCA, 0xFFFFF6F8, 0x00000333, 0x00001BCA, 0xFFFFF6F8, 0x00000333 },
+       { 0x0213F0FE990A3944, 0x000035AF, 0xFFFFE76D, 0x00000588, 0x00001C16, 0xFFFFF6AB, 0x00000341, 0x00001C16, 0xFFFFF6AB, 0x00000341 },
+       { 0x0213EA94DE0438C4, 0x000032AD, 0xFFFFEA8E, 0x000004F8, 0x00001A3A, 0xFFFFF832, 0x0000030E, 0x00001A3A, 0xFFFFF832, 0x0000030E },
+       { 0x0213F0FE99104884, 0x00002E92, 0xFFFFEBD2, 0x000004DA, 0x00001E04, 0xFFFFF51E, 0x0000038A, 0x00001E04, 0xFFFFF51E, 0x0000038A },
+       { 0x0213F0FD42D440A4, 0x00003E57, 0xFFFFE0F7, 0x0000068F, 0x000021F1, 0xFFFFF1C6, 0x00000411, 0x000021F1, 0xFFFFF1C6, 0x00000411 },
+       { 0x0213F0FE990821A4, 0x00003598, 0xFFFFE8BB, 0x00000535, 0x00001B62, 0xFFFFF764, 0x00000326, 0x00001B62, 0xFFFFF764, 0x00000326 },
+       { 0x0213F0FE990A3884, 0x00002B15, 0xFFFFEDEC, 0x00000487, 0x00001E8B, 0xFFFFF4AB, 0x0000039F, 0x00001E8B, 0xFFFFF4AB, 0x0000039F },
+       { 0x0213EA94DE060904, 0x0000267E, 0xFFFFF1A7, 0x000003E1, 0x000021C1, 0xFFFFF2E9, 0x000003EA, 0x000021C1, 0xFFFFF2E9, 0x000003EA },
+       { 0x0213EA94DE0239A4, 0x00002ED7, 0xFFFFEC88, 0x000004A6, 0x00001DEC, 0xFFFFF57C, 0x00000378, 0x00001DEC, 0xFFFFF57C, 0x00000378 },
+       { 0x0213EA94DE0441A4, 0x00003365, 0xFFFFE946, 0x00000536, 0x000019E9, 0xFFFFF7E0, 0x0000031D, 0x000019E9, 0xFFFFF7E0, 0x0000031D },
+       { 0x0213F0FE991818E4, 0x000029A4, 0xFFFFF0FD, 0x000003FE, 0x0000163F, 0xFFFFFB68, 0x00000299, 0x0000163F, 0xFFFFFB68, 0x00000299 },
+       { 0x0213EA94DE021904, 0x0000348D, 0xFFFFE9F7, 0x00000509, 0x000017A0, 0xFFFFFA59, 0x000002B6, 0x000017A0, 0xFFFFFA59, 0x000002B6 },
+       { 0x0213F0FE990610C4, 0x00003144, 0xFFFFEB23, 0x000004D9, 0x00001C9B, 0xFFFFF664, 0x00000351, 0x00001C9B, 0xFFFFF664, 0x00000351 },
+       { 0x0213EA94DE0620E4, 0x00002E95, 0xFFFFEE1A, 0x00000463, 0x00001707, 0xFFFFFAB7, 0x000002B3, 0x00001707, 0xFFFFFAB7, 0x000002B3 },
+       { 0x0213F0FD42D41864, 0x0000489C, 0xFFFFDA43, 0x000007AC, 0x00002866, 0xFFFFED6B, 0x000004D0, 0x00002866, 0xFFFFED6B, 0x000004D0 },
+       { 0x0213F0FE99161844, 0x00002895, 0xFFFFF10A, 0x0000040A, 0x000013E9, 0xFFFFFC9F, 0x0000026E, 0x000013E9, 0xFFFFFC9F, 0x0000026E },
+       { 0x0213F0FE99061964, 0x000033A0, 0xFFFFE9B1, 0x00000510, 0x00001D96, 0xFFFFF5AE, 0x0000036F, 0x00001D96, 0xFFFFF5AE, 0x0000036F },
+       { 0x0213F0FE99083984, 0x0000327C, 0xFFFFEAEA, 0x000004DD, 0x00001D45, 0xFFFFF649, 0x00000356, 0x00001D45, 0xFFFFF649, 0x00000356 },
+       { 0x0213EA94DE0248A4, 0x000031DF, 0xFFFFE9AB, 0x0000052F, 0x000019C8, 0xFFFFF7B7, 0x00000321, 0x000019C8, 0xFFFFF7B7, 0x00000321 },
+       { 0x0213F0FE991640A4, 0x00002BCC, 0xFFFFEEF4, 0x0000045C, 0x000015CD, 0xFFFFFB58, 0x0000029E, 0x000015CD, 0xFFFFFB58, 0x0000029E },
+       { 0x0213F0FE990638E4, 0x00003534, 0xFFFFEA10, 0x000004EB, 0x00001BB6, 0xFFFFF7B9, 0x00000314, 0x00001BB6, 0xFFFFF7B9, 0x00000314 },
+       { 0x0213F0FE99041984, 0x00002F4F, 0xFFFFEC35, 0x000004B9, 0x0000205D, 0xFFFFF47F, 0x00000392, 0x0000205D, 0xFFFFF47F, 0x00000392 },
+       { 0x0213F0FE990C20A4, 0x00003295, 0xFFFFEB1C, 0x000004D6, 0x000019C1, 0xFFFFF931, 0x000002D5, 0x000019C1, 0xFFFFF931, 0x000002D5 },
+       { 0x0213F0FE99024144, 0x00003557, 0xFFFFE7F7, 0x00000568, 0x00002342, 0xFFFFF1F9, 0x00000405, 0x00002342, 0xFFFFF1F9, 0x00000405 },
+       { 0x0213F0FE990450C4, 0x00003487, 0xFFFFE872, 0x0000055D, 0x000019D7, 0xFFFFF823, 0x0000030C, 0x000019D7, 0xFFFFF823, 0x0000030C },
+       { 0x0213F0FE992C3944, 0x0000378F, 0xFFFFE7A6, 0x00000566, 0x00001875, 0xFFFFFA04, 0x000002AF, 0x00001875, 0xFFFFFA04, 0x000002AF },
+       { 0x0213EA94DE0230E4, 0x00002A67, 0xFFFFF157, 0x000003DD, 0x000017BD, 0xFFFFFA53, 0x000002D1, 0x000017BD, 0xFFFFFA53, 0x000002D1 },
+       { 0x0213F0FD42D220E4, 0x000030B5, 0xFFFFEB32, 0x000004D9, 0x00002129, 0xFFFFF38A, 0x000003BB, 0x00002129, 0xFFFFF38A, 0x000003BB },
+       { 0x0213F0FE990610A4, 0x00003786, 0xFFFFE703, 0x00000584, 0x00001D63, 0xFFFFF5DC, 0x00000367, 0x00001D63, 0xFFFFF5DC, 0x00000367 },
+       { 0x0213F0FD42DA20C4, 0x0000346A, 0xFFFFE93E, 0x0000052C, 0x00001B27, 0xFFFFF79D, 0x0000031F, 0x00001B27, 0xFFFFF79D, 0x0000031F },
+       { 0x0213F0FE990E3024, 0x0000294E, 0xFFFFF0A5, 0x00000409, 0x00001928, 0xFFFFF93B, 0x000002E6, 0x00001928, 0xFFFFF93B, 0x000002E6 },
+       { 0x0213F0FD42D410C4, 0x00003E09, 0xFFFFE0FF, 0x00000694, 0x000025A0, 0xFFFFEF0F, 0x0000048F, 0x000025A0, 0xFFFFEF0F, 0x0000048F },
+       { 0x0213F0FE990A2964, 0x00003197, 0xFFFFEA06, 0x00000520, 0x00001B42, 0xFFFFF73B, 0x0000032A, 0x00001B42, 0xFFFFF73B, 0x0000032A },
+       { 0x0213F0FE99161864, 0x000022CB, 0xFFFFF3FC, 0x000003A3, 0x00001449, 0xFFFFFBD0, 0x00000297, 0x00001449, 0xFFFFFBD0, 0x00000297 },
+       { 0x0213F0FD42D82944, 0x00002A79, 0xFFFFEFD2, 0x00000433, 0x00001585, 0xFFFFFB92, 0x0000028E, 0x00001585, 0xFFFFFB92, 0x0000028E },
+       { 0x0213F0FE990C4184, 0x00003249, 0xFFFFEA92, 0x000004F4, 0x000019CB, 0xFFFFF8CF, 0x000002E1, 0x000019CB, 0xFFFFF8CF, 0x000002E1 },
+       { 0x0213EA94DE0218A4, 0x00002CEA, 0xFFFFEE46, 0x00000463, 0x00001A5E, 0xFFFFF83C, 0x0000030D, 0x00001A5E, 0xFFFFF83C, 0x0000030D },
+       { 0x0213F0FD42DC5144, 0x00003AE2, 0xFFFFE422, 0x00000600, 0x00001C65, 0xFFFFF62F, 0x0000034B, 0x00001C65, 0xFFFFF62F, 0x0000034B },
+       { 0x0213F0FE99181184, 0x000026A0, 0xFFFFF1C2, 0x000003F8, 0x000010E5, 0xFFFFFE56, 0x0000022A, 0x000010E5, 0xFFFFFE56, 0x0000022A },
+       { 0x0213F0FE992829A4, 0x00002A7B, 0xFFFFF063, 0x00000417, 0x000016FC, 0xFFFFFAD7, 0x000002B1, 0x000016FC, 0xFFFFFAD7, 0x000002B1 },
+       { 0x0213F0FE993210C4, 0x00003092, 0xFFFFEAB9, 0x00000507, 0x00001AE3, 0xFFFFF783, 0x00000323, 0x00001AE3, 0xFFFFF783, 0x00000323 },
+       { 0x0213F0FE990438E4, 0x00003265, 0xFFFFEBE8, 0x000004AA, 0x00001D65, 0xFFFFF73F, 0x00000321, 0x00001D65, 0xFFFFF73F, 0x00000321 },
+       { 0x0213EA94DE023084, 0x00002F14, 0xFFFFECC2, 0x000004A4, 0x00001A8D, 0xFFFFF7F3, 0x0000031D, 0x00001A8D, 0xFFFFF7F3, 0x0000031D },
+       { 0x0213F0FD42DC10E4, 0x000035FB, 0xFFFFE6D3, 0x000005AC, 0x00001B19, 0xFFFFF712, 0x00000338, 0x00001B19, 0xFFFFF712, 0x00000338 },
+       { 0x0213F0FD42DA2124, 0x00003519, 0xFFFFE8CC, 0x0000053A, 0x00001A0F, 0xFFFFF86E, 0x000002F5, 0x00001A0F, 0xFFFFF86E, 0x000002F5 },
+       { 0x0213F0FE992C2144, 0x0000364C, 0xFFFFE879, 0x00000541, 0x00001A42, 0xFFFFF8BA, 0x000002E2, 0x00001A42, 0xFFFFF8BA, 0x000002E2 },
+       { 0x0213EA94DE0218C4, 0x000029BA, 0xFFFFF09A, 0x00000408, 0x00001986, 0xFFFFF8D9, 0x000002FE, 0x00001986, 0xFFFFF8D9, 0x000002FE },
+       { 0x0213F0FD42DA38E4, 0x00003507, 0xFFFFE961, 0x00000518, 0x00001B79, 0xFFFFF775, 0x00000325, 0x00001B79, 0xFFFFF775, 0x00000325 },
+       { 0x0213F0FD42DC3184, 0x00003AD5, 0xFFFFE415, 0x00000613, 0x00001CB4, 0xFFFFF66D, 0x00000348, 0x00001CB4, 0xFFFFF66D, 0x00000348 },
+       { 0x0213F0FE991640E4, 0x000023D1, 0xFFFFF42B, 0x0000038F, 0x00001546, 0xFFFFFBA0, 0x0000029F, 0x00001546, 0xFFFFFBA0, 0x0000029F },
+       { 0x0213F0FE990A1924, 0x0000399E, 0xFFFFE518, 0x000005E7, 0x00001990, 0xFFFFF871, 0x000002FB, 0x00001990, 0xFFFFF871, 0x000002FB },
+       { 0x0213F0FD42D82964, 0x00002EDE, 0xFFFFEC93, 0x000004B8, 0x0000152C, 0xFFFFFBB3, 0x0000027E, 0x0000152C, 0xFFFFFBB3, 0x0000027E },
+       { 0x0213EA94DE042964, 0x00003140, 0xFFFFEBC9, 0x000004BB, 0x000016BE, 0xFFFFFB0A, 0x00000288, 0x000016BE, 0xFFFFFB0A, 0x00000288 },
+       { 0x0213F0FE99064064, 0x000030F6, 0xFFFFEB89, 0x000004CD, 0x0000185D, 0xFFFFF95A, 0x000002D9, 0x0000185D, 0xFFFFF95A, 0x000002D9 },
+       { 0x0213F0FE99023844, 0x0000389C, 0xFFFFE65A, 0x000005A2, 0x0000195D, 0xFFFFF8C8, 0x000002E8, 0x0000195D, 0xFFFFF8C8, 0x000002E8 },
+       { 0x0213F0FE99042104, 0x0000362B, 0xFFFFE9EC, 0x000004F6, 0x00001605, 0xFFFFFC1C, 0x00000263, 0x00001605, 0xFFFFFC1C, 0x00000263 },
+       { 0x0213F0FE992A1964, 0x00002946, 0xFFFFF04F, 0x00000426, 0x000015BA, 0xFFFFFB2F, 0x000002A3, 0x000015BA, 0xFFFFFB2F, 0x000002A3 },
+       { 0x0213F0FE99082184, 0x0000368E, 0xFFFFE837, 0x0000054A, 0x000017D7, 0xFFFFF9EB, 0x000002BA, 0x000017D7, 0xFFFFF9EB, 0x000002BA },
+       { 0x0213F0FD42DA2844, 0x00002E74, 0xFFFFEBE8, 0x000004DA, 0x00001DD6, 0xFFFFF57E, 0x00000379, 0x00001DD6, 0xFFFFF57E, 0x00000379 },
+       { 0x0213F0FE99041944, 0x0000322D, 0xFFFFEAA8, 0x000004F5, 0x00001B55, 0xFFFFF7DD, 0x0000030B, 0x00001B55, 0xFFFFF7DD, 0x0000030B },
+       { 0x0213F0FE99181904, 0x00002A29, 0xFFFFF07B, 0x00000416, 0x00001671, 0xFFFFFB3E, 0x0000029F, 0x00001671, 0xFFFFFB3E, 0x0000029F },
+       { 0x0213F0FD42DA2104, 0x000030F6, 0xFFFFEB89, 0x000004CD, 0x00001815, 0xFFFFF9AE, 0x000002C9, 0x00001815, 0xFFFFF9AE, 0x000002C9 },
+       { 0x0213F0FE990E10E4, 0x0000265F, 0xFFFFF1CB, 0x000003D5, 0x00001ED2, 0xFFFFF539, 0x0000037A, 0x00001ED2, 0xFFFFF539, 0x0000037A },
+       { 0x0213F0FE99162184, 0x000027A8, 0xFFFFF10D, 0x00000413, 0x000014B5, 0xFFFFFBA1, 0x00000299, 0x000014B5, 0xFFFFFBA1, 0x00000299 },
+       { 0x0213F0FE99043064, 0x00002CEE, 0xFFFFEDF6, 0x00000476, 0x00001A99, 0xFFFFF83E, 0x00000305, 0x00001A99, 0xFFFFF83E, 0x00000305 },
+       { 0x0213F0FE990640C4, 0x0000346C, 0xFFFFEA17, 0x000004EF, 0x00001D38, 0xFFFFF69F, 0x0000033D, 0x00001D38, 0xFFFFF69F, 0x0000033D },
+       { 0x0213F0FD42DA2944, 0x00002DBB, 0xFFFFED35, 0x00000490, 0x000018C1, 0xFFFFF930, 0x000002DA, 0x000018C1, 0xFFFFF930, 0x000002DA },
+       { 0x0213F0FE99042924, 0x000038DF, 0xFFFFE8A7, 0x0000051E, 0x00001B59, 0xFFFFF915, 0x000002D3, 0x00001B59, 0xFFFFF915, 0x000002D3 },
+       { 0x0213F0FE99080944, 0x00003384, 0xFFFFE979, 0x00000524, 0x00001AF3, 0xFFFFF74C, 0x0000032F, 0x00001AF3, 0xFFFFF74C, 0x0000032F },
+       { 0x0213F0FE99181864, 0x0000258B, 0xFFFFF2AE, 0x000003CB, 0x0000190C, 0xFFFFF93E, 0x000002EF, 0x0000190C, 0xFFFFF93E, 0x000002EF },
+       { 0x0213F0FE99103884, 0x000034F1, 0xFFFFE84B, 0x0000055E, 0x00001CB8, 0xFFFFF670, 0x0000034A, 0x00001CB8, 0xFFFFF670, 0x0000034A },
+       { 0x0213F0FE990C2104, 0x000030FB, 0xFFFFECD2, 0x00000488, 0x00001BF4, 0xFFFFF821, 0x00000302, 0x00001BF4, 0xFFFFF821, 0x00000302 },
+       { 0x0213F0FE99063044, 0x000036A6, 0xFFFFE815, 0x00000556, 0x000018FD, 0xFFFFF925, 0x000002DF, 0x000018FD, 0xFFFFF925, 0x000002DF },
+       { 0x0213EA94DE023044, 0x0000302A, 0xFFFFEB79, 0x000004E0, 0x00001C11, 0xFFFFF694, 0x00000358, 0x00001C11, 0xFFFFF694, 0x00000358 },
+       { 0x0213F0FE99181124, 0x00002555, 0xFFFFF2C4, 0x000003CB, 0x000017E3, 0xFFFFFA1F, 0x000002CB, 0x000017E3, 0xFFFFFA1F, 0x000002CB },
+       { 0x0213F0FE990A3164, 0x000032A3, 0xFFFFE933, 0x00000544, 0x000019D3, 0xFFFFF81A, 0x00000306, 0x000019D3, 0xFFFFF81A, 0x00000306 },
+       { 0x0213F0FD42D85104, 0x00002B91, 0xFFFFED81, 0x000004A9, 0x0000158B, 0xFFFFFAB9, 0x000002AC, 0x0000158B, 0xFFFFFAB9, 0x000002AC },
+       { 0x0213F0FE990E20C4, 0x00003537, 0xFFFFE912, 0x0000052C, 0x00001C8A, 0xFFFFF754, 0x0000031B, 0x00001C8A, 0xFFFFF754, 0x0000031B },
+       { 0x0213EA94DE063184, 0x000032E1, 0xFFFFEA5A, 0x000004F9, 0x000017B4, 0xFFFFF9D9, 0x000002C2, 0x000017B4, 0xFFFFF9D9, 0x000002C2 },
+       { 0x0213F0FD42D210C4, 0x00003B76, 0xFFFFE330, 0x00000636, 0x000026FB, 0xFFFFEF06, 0x00000481, 0x000026FB, 0xFFFFEF06, 0x00000481 },
+       { 0x0213F0FE99042144, 0x0000320C, 0xFFFFEB84, 0x000004C3, 0x00001A3A, 0xFFFFF8E9, 0x000002DF, 0x00001A3A, 0xFFFFF8E9, 0x000002DF },
+       { 0x0213F0FE99023984, 0x0000317D, 0xFFFFEA1F, 0x00000515, 0x00002100, 0xFFFFF31B, 0x000003DD, 0x00002100, 0xFFFFF31B, 0x000003DD },
+       { 0x0213F0FD42D43164, 0x00003DCB, 0xFFFFE0B4, 0x000006B4, 0x00002160, 0xFFFFF269, 0x000003F0, 0x00002160, 0xFFFFF269, 0x000003F0 },
+       { 0x0213F0FE991618C4, 0x00002737, 0xFFFFF218, 0x000003E1, 0x000015B5, 0xFFFFFB8F, 0x0000029C, 0x000015B5, 0xFFFFFB8F, 0x0000029C },
+       { 0x0213EA94DE023184, 0x0000318F, 0xFFFFEB3F, 0x000004D8, 0x00001938, 0xFFFFF8E9, 0x000002EB, 0x00001938, 0xFFFFF8E9, 0x000002EB },
+       { 0x0213F0FE991048C4, 0x000031BD, 0xFFFFE9DE, 0x00000527, 0x000018A7, 0xFFFFF8CA, 0x000002ED, 0x000018A7, 0xFFFFF8CA, 0x000002ED },
+       { 0x0213F0FD42DA3884, 0x00002F77, 0xFFFFEC2F, 0x000004B4, 0x00001D25, 0xFFFFF61B, 0x0000035D, 0x00001D25, 0xFFFFF61B, 0x0000035D },
+       { 0x0213F0FE990E4904, 0x00002CCA, 0xFFFFEDB3, 0x0000047C, 0x00001FBD, 0xFFFFF4A7, 0x00000391, 0x00001FBD, 0xFFFFF4A7, 0x00000391 },
+       { 0x0213F0FD42D438A4, 0x00003FF6, 0xFFFFE058, 0x000006A2, 0x000024CD, 0xFFFFF026, 0x00000452, 0x000024CD, 0xFFFFF026, 0x00000452 },
+       { 0x0213F0FE990A38E4, 0x00003161, 0xFFFFEAC8, 0x000004F3, 0x00001BB6, 0xFFFFF72A, 0x0000032B, 0x00001BB6, 0xFFFFF72A, 0x0000032B },
+       { 0x0213F0FD42D838A4, 0x00002EA0, 0xFFFFECA6, 0x000004B7, 0x000018C2, 0xFFFFF94E, 0x000002E1, 0x000018C2, 0xFFFFF94E, 0x000002E1 },
+       { 0x0213F0FE99182184, 0x00002F62, 0xFFFFEC9E, 0x000004B8, 0x00001531, 0xFFFFFBCD, 0x00000285, 0x00001531, 0xFFFFFBCD, 0x00000285 },
+       { 0x0213F0FE990440A4, 0x00003013, 0xFFFFEBD6, 0x000004C2, 0x00001B01, 0xFFFFF802, 0x000002FF, 0x00001B01, 0xFFFFF802, 0x000002FF },
+       { 0x0213F0FE99183064, 0x00002972, 0xFFFFF08D, 0x00000417, 0x00001A32, 0xFFFFF8A4, 0x00000305, 0x00001A32, 0xFFFFF8A4, 0x00000305 },
+       { 0x0213F0FD42D820E4, 0x00002E95, 0xFFFFED94, 0x00000487, 0x00001529, 0xFFFFFC26, 0x00000271, 0x00001529, 0xFFFFFC26, 0x00000271 },
+       { 0x0213F0FE990A1084, 0x00002D6A, 0xFFFFEC79, 0x000004C1, 0x00001AE2, 0xFFFFF725, 0x00000337, 0x00001AE2, 0xFFFFF725, 0x00000337 },
+       { 0x0213F0FE99021884, 0x000036B4, 0xFFFFE704, 0x00000591, 0x00001E7E, 0xFFFFF51C, 0x00000383, 0x00001E7E, 0xFFFFF51C, 0x00000383 },
+       { 0x0213F0FE99041844, 0x00002A6F, 0xFFFFEF70, 0x00000443, 0x00001BAA, 0xFFFFF752, 0x00000336, 0x00001BAA, 0xFFFFF752, 0x00000336 },
+       { 0x0213F0FE99183944, 0x00002C66, 0xFFFFEF5F, 0x0000043A, 0x000019F7, 0xFFFFF931, 0x000002EC, 0x000019F7, 0xFFFFF931, 0x000002EC },
+       { 0x0213EA94DE0631C4, 0x00003852, 0xFFFFE6AB, 0x00000590, 0x000019C1, 0xFFFFF8B1, 0x000002E5, 0x000019C1, 0xFFFFF8B1, 0x000002E5 },
+       { 0x0213F0FD42DA3124, 0x00003521, 0xFFFFE932, 0x00000523, 0x000018A9, 0xFFFFF96B, 0x000002D0, 0x000018A9, 0xFFFFF96B, 0x000002D0 },
+       { 0x0213F0FE99062164, 0x000031B9, 0xFFFFEB36, 0x000004D0, 0x00001D65, 0xFFFFF612, 0x0000035D, 0x00001D65, 0xFFFFF612, 0x0000035D },
+       { 0x0213F0FD42D41064, 0x00003ED0, 0xFFFFE135, 0x00000679, 0x00002351, 0xFFFFF0FE, 0x00000433, 0x00002351, 0xFFFFF0FE, 0x00000433 },
+       { 0x0213F0FE990A20E4, 0x000033ED, 0xFFFFE91A, 0x00000541, 0x00001C93, 0xFFFFF6A0, 0x0000034A, 0x00001C93, 0xFFFFF6A0, 0x0000034A },
+       { 0x0213EA94DE021844, 0x0000356F, 0xFFFFE8F7, 0x00000530, 0x000016BF, 0xFFFFFA85, 0x000002AB, 0x000016BF, 0xFFFFFA85, 0x000002AB },
+       { 0x0213F0FE991840E4, 0x00002304, 0xFFFFF4F3, 0x00000364, 0x000017CC, 0xFFFFFA41, 0x000002CA, 0x000017CC, 0xFFFFFA41, 0x000002CA },
+       { 0x0213F0FE99161164, 0x00002887, 0xFFFFEFD7, 0x00000450, 0x00001474, 0xFFFFFB94, 0x00000299, 0x00001474, 0xFFFFFB94, 0x00000299 },
+       { 0x0213F0FE99063064, 0x00003D0B, 0xFFFFE416, 0x000005EF, 0x00001C7E, 0xFFFFF71D, 0x00000325, 0x00001C7E, 0xFFFFF71D, 0x00000325 },
+       { 0x0213F0FE990810E4, 0x00003185, 0xFFFFEAFA, 0x000004E4, 0x00001A12, 0xFFFFF83C, 0x00000303, 0x00001A12, 0xFFFFF83C, 0x00000303 },
+       { 0x0213F0FE990A1944, 0x00003032, 0xFFFFEAE6, 0x000004FC, 0x00001B2A, 0xFFFFF73F, 0x0000032B, 0x00001B2A, 0xFFFFF73F, 0x0000032B },
+       { 0x0213F0FD42D838C4, 0x00002691, 0xFFFFF22D, 0x000003D6, 0x00001700, 0xFFFFFA6E, 0x000002C0, 0x00001700, 0xFFFFFA6E, 0x000002C0 },
+       { 0x0213F0FE990218A4, 0x00002B2F, 0xFFFFEEC4, 0x0000044B, 0x0000215F, 0xFFFFF33F, 0x000003D2, 0x0000215F, 0xFFFFF33F, 0x000003D2 },
+       { 0x0213F0FE990A4184, 0x000034AA, 0xFFFFE706, 0x000005B1, 0x00001B28, 0xFFFFF6B5, 0x00000349, 0x00001B28, 0xFFFFF6B5, 0x00000349 },
+       { 0x0213F0FD42DA2964, 0x0000307E, 0xFFFFEB38, 0x000004E6, 0x00001A22, 0xFFFFF83F, 0x00000300, 0x00001A22, 0xFFFFF83F, 0x00000300 },
+       { 0x0213F0FE990618A4, 0x000038D6, 0xFFFFE6D8, 0x0000057C, 0x00001B24, 0xFFFFF7E4, 0x00000307, 0x00001B24, 0xFFFFF7E4, 0x00000307 },
+       { 0x0213F0FE99183044, 0x00002757, 0xFFFFF1E8, 0x000003DD, 0x000017F5, 0xFFFFFA15, 0x000002C8, 0x000017F5, 0xFFFFFA15, 0x000002C8 },
+       { 0x0213F0FE99083184, 0x000031FC, 0xFFFFEB3E, 0x000004CE, 0x00001B4C, 0xFFFFF7AD, 0x00000319, 0x00001B4C, 0xFFFFF7AD, 0x00000319 },
+       { 0x0213F0FE99301864, 0x00002933, 0xFFFFF073, 0x0000040E, 0x00001C3C, 0xFFFFF701, 0x0000033C, 0x00001C3C, 0xFFFFF701, 0x0000033C },
+       { 0x0213F0FD42D218A4, 0x000040BB, 0xFFFFE066, 0x0000069A, 0x0000257F, 0xFFFFF08A, 0x00000435, 0x0000257F, 0xFFFFF08A, 0x00000435 },
+       { 0x0213F0FE991010A4, 0x0000305B, 0xFFFFEB9B, 0x000004CB, 0x00001996, 0xFFFFF846, 0x00000308, 0x00001996, 0xFFFFF846, 0x00000308 },
+       { 0x0213F0FE99064884, 0x000039C0, 0xFFFFE5D3, 0x000005B0, 0x00001A8D, 0xFFFFF7DA, 0x00000313, 0x00001A8D, 0xFFFFF7DA, 0x00000313 },
+       { 0x0213EA94DE0210A4, 0x00002E23, 0xFFFFED3F, 0x0000048F, 0x0000189D, 0xFFFFF94C, 0x000002DE, 0x0000189D, 0xFFFFF94C, 0x000002DE },
+       { 0x0213EA94DE021984, 0x0000332B, 0xFFFFE9F1, 0x00000516, 0x000018E6, 0xFFFFF8FE, 0x000002EC, 0x000018E6, 0xFFFFF8FE, 0x000002EC },
+       { 0x0213F0FE990838C4, 0x000034A0, 0xFFFFEA44, 0x000004E4, 0x00001ECD, 0xFFFFF5B4, 0x00000364, 0x00001ECD, 0xFFFFF5B4, 0x00000364 },
+       { 0x0213F0FD42D24104, 0x0000448C, 0xFFFFDF34, 0x000006A8, 0x0000231C, 0xFFFFF286, 0x000003D9, 0x0000231C, 0xFFFFF286, 0x000003D9 },
+       { 0x0213EA94DE062144, 0x00002D8C, 0xFFFFEE65, 0x00000456, 0x000018B1, 0xFFFFF9C8, 0x000002C8, 0x000018B1, 0xFFFFF9C8, 0x000002C8 },
+       { 0x0213F0FE99061904, 0x00003527, 0xFFFFE9BF, 0x000004FD, 0x00001D23, 0xFFFFF69F, 0x00000342, 0x00001D23, 0xFFFFF69F, 0x00000342 },
+       { 0x0213F0FD42DC38A4, 0x00002C51, 0xFFFFEDC3, 0x00000483, 0x00001BE0, 0xFFFFF720, 0x0000032D, 0x00001BE0, 0xFFFFF720, 0x0000032D },
+       { 0x0213F0FE990A3044, 0x00002C6C, 0xFFFFECEB, 0x000004B7, 0x00001C86, 0xFFFFF5E7, 0x00000371, 0x00001C86, 0xFFFFF5E7, 0x00000371 },
+       { 0x0213F0FE99045144, 0x000037CF, 0xFFFFE6BE, 0x00000599, 0x000018CD, 0xFFFFF967, 0x000002C7, 0x000018CD, 0xFFFFF967, 0x000002C7 },
+       { 0x0213F0FE99103164, 0x00002E6F, 0xFFFFED1D, 0x0000048E, 0x00001ADC, 0xFFFFF7F4, 0x0000030E, 0x00001ADC, 0xFFFFF7F4, 0x0000030E },
+       { 0x0213F0FD42D42984, 0x00003FF3, 0xFFFFDF13, 0x000006F9, 0x000025BF, 0xFFFFEEEE, 0x00000497, 0x000025BF, 0xFFFFEEEE, 0x00000497 },
+       { 0x0213F0FD42DC5104, 0x00004135, 0xFFFFDF97, 0x000006CC, 0x00001D52, 0xFFFFF541, 0x00000383, 0x00001D52, 0xFFFFF541, 0x00000383 },
+       { 0x0213F0FD42DC20E4, 0x00002EA9, 0xFFFFEDDB, 0x0000045F, 0x0000197C, 0xFFFFF8E1, 0x000002F0, 0x0000197C, 0xFFFFF8E1, 0x000002F0 },
+       { 0x0213EA94DE043084, 0x0000345C, 0xFFFFE922, 0x00000532, 0x00001922, 0xFFFFF8C7, 0x000002F1, 0x00001922, 0xFFFFF8C7, 0x000002F1 },
+       { 0x0213F0FE99064124, 0x000035C4, 0xFFFFE8FE, 0x00000521, 0x00001C87, 0xFFFFF6F3, 0x00000330, 0x00001C87, 0xFFFFF6F3, 0x00000330 },
+       { 0x0213F0FD42D83164, 0x00002888, 0xFFFFF08A, 0x0000041E, 0x0000150F, 0xFFFFFB87, 0x00000291, 0x0000150F, 0xFFFFFB87, 0x00000291 },
+       { 0x0213F0FE990A1124, 0x000035E9, 0xFFFFE657, 0x000005CC, 0x00001BD6, 0xFFFFF664, 0x00000355, 0x00001BD6, 0xFFFFF664, 0x00000355 },
+       { 0x0213F0FE991648E4, 0x00002F94, 0xFFFFEBD0, 0x000004E5, 0x00001333, 0xFFFFFCA7, 0x00000266, 0x00001333, 0xFFFFFCA7, 0x00000266 },
+       { 0x0213F0FE99181964, 0x000029E7, 0xFFFFF009, 0x00000433, 0x0000144A, 0xFFFFFC37, 0x0000027D, 0x0000144A, 0xFFFFFC37, 0x0000027D },
+       { 0x0213F0FE992C1944, 0x00003418, 0xFFFFE979, 0x00000521, 0x00001D33, 0xFFFFF66B, 0x0000034A, 0x00001D33, 0xFFFFF66B, 0x0000034A },
+       { 0x0213EA94DE0440E4, 0x00003656, 0xFFFFE79D, 0x0000057A, 0x000017C2, 0xFFFFF992, 0x000002D4, 0x000017C2, 0xFFFFF992, 0x000002D4 },
+       { 0x0213F0FE990C40C4, 0x00002EB2, 0xFFFFECFE, 0x00000493, 0x00001F2A, 0xFFFFF543, 0x0000037B, 0x00001F2A, 0xFFFFF543, 0x0000037B },
+       { 0x0213F0FE99021124, 0x00002FC1, 0xFFFFEB3F, 0x000004E8, 0x00001CD0, 0xFFFFF5F7, 0x00000364, 0x00001CD0, 0xFFFFF5F7, 0x00000364 },
+       { 0x0213F0FE990C1124, 0x0000307B, 0xFFFFEB66, 0x000004DE, 0x00001953, 0xFFFFF8ED, 0x000002E4, 0x00001953, 0xFFFFF8ED, 0x000002E4 },
+       { 0x0213F0FD42DA1884, 0x00002CAA, 0xFFFFED07, 0x000004AC, 0x0000251C, 0xFFFFF086, 0x0000044D, 0x0000251C, 0xFFFFF086, 0x0000044D },
+       { 0x0213EA94DE043944, 0x00002C94, 0xFFFFEE5F, 0x0000045B, 0x000018D7, 0xFFFFF900, 0x000002EB, 0x000018D7, 0xFFFFF900, 0x000002EB },
+       { 0x0213F0FE99021864, 0x000031F1, 0xFFFFE9BE, 0x0000052E, 0x00001DDF, 0xFFFFF558, 0x00000380, 0x00001DDF, 0xFFFFF558, 0x00000380 },
+       { 0x0213F0FE990E50C4, 0x00002603, 0xFFFFF1E9, 0x000003DA, 0x00001B37, 0xFFFFF75A, 0x0000032F, 0x00001B37, 0xFFFFF75A, 0x0000032F },
+       { 0x0213F0FD42DA3044, 0x00003992, 0xFFFFE4F9, 0x000005EB, 0x00001775, 0xFFFFF9B8, 0x000002C2, 0x00001775, 0xFFFFF9B8, 0x000002C2 },
+       { 0x0213F0FE99184964, 0x000029DA, 0xFFFFF052, 0x0000041F, 0x000016E2, 0xFFFFFA99, 0x000002BB, 0x000016E2, 0xFFFFFA99, 0x000002BB },
+       { 0x0213F0FE99101064, 0x00002FF2, 0xFFFFEB8F, 0x000004DF, 0x00001AF6, 0xFFFFF7A1, 0x00000321, 0x00001AF6, 0xFFFFF7A1, 0x00000321 },
+       { 0x0213F0FE991608E4, 0x00002590, 0xFFFFF222, 0x000003EE, 0x0000130B, 0xFFFFFCC9, 0x00000268, 0x0000130B, 0xFFFFFCC9, 0x00000268 },
+       { 0x0213F0FE99024064, 0x000038A2, 0xFFFFE65F, 0x000005A2, 0x000018B1, 0xFFFFF917, 0x000002E1, 0x000018B1, 0xFFFFF917, 0x000002E1 },
+       { 0x0213F0FD42DC48E4, 0x000035FD, 0xFFFFE73C, 0x0000058D, 0x00001BB3, 0xFFFFF6E1, 0x00000337, 0x00001BB3, 0xFFFFF6E1, 0x00000337 },
+       { 0x0213F0FE991038C4, 0x00002AB7, 0xFFFFEF98, 0x00000429, 0x00001F35, 0xFFFFF539, 0x0000037C, 0x00001F35, 0xFFFFF539, 0x0000037C },
+       { 0x0213F0FE990A0944, 0x000034BA, 0xFFFFE73D, 0x000005A6, 0x000018A6, 0xFFFFF888, 0x000002FB, 0x000018A6, 0xFFFFF888, 0x000002FB },
+       { 0x0213F0FE99063844, 0x000032EA, 0xFFFFEA78, 0x000004F4, 0x00001AB6, 0xFFFFF812, 0x00000308, 0x00001AB6, 0xFFFFF812, 0x00000308 },
+       { 0x0213F0FE990C3044, 0x00002BE9, 0xFFFFEE9A, 0x00000457, 0x00001942, 0xFFFFF8D2, 0x000002F2, 0x00001942, 0xFFFFF8D2, 0x000002F2 },
+       { 0x0213F0FE99105124, 0x00002FAB, 0xFFFFEB76, 0x000004E1, 0x00001DCA, 0xFFFFF57D, 0x00000378, 0x00001DCA, 0xFFFFF57D, 0x00000378 },
+       { 0x0213F0FE992E2844, 0x0000330A, 0xFFFFE9E1, 0x0000051B, 0x00001CC4, 0xFFFFF6DF, 0x00000335, 0x00001CC4, 0xFFFFF6DF, 0x00000335 },
+       { 0x0213F0FE991828A4, 0x000027D8, 0xFFFFF276, 0x000003BF, 0x0000178A, 0xFFFFFABF, 0x000002B5, 0x0000178A, 0xFFFFFABF, 0x000002B5 },
+       { 0x0213F0FD42DC3864, 0x0000340A, 0xFFFFE86D, 0x00000562, 0x00001B85, 0xFFFFF719, 0x0000032F, 0x00001B85, 0xFFFFF719, 0x0000032F },
+       { 0x0213EA94DE063084, 0x00003879, 0xFFFFE73F, 0x00000578, 0x0000161C, 0xFFFFFB6B, 0x00000281, 0x0000161C, 0xFFFFFB6B, 0x00000281 },
+       { 0x0213F0FE99184064, 0x00002879, 0xFFFFF0F8, 0x0000040A, 0x00001749, 0xFFFFFA37, 0x000002CC, 0x00001749, 0xFFFFFA37, 0x000002CC },
+       { 0x0213F0FE99043964, 0x00002C3A, 0xFFFFEEA0, 0x0000044F, 0x00001D57, 0xFFFFF6C2, 0x00000332, 0x00001D57, 0xFFFFF6C2, 0x00000332 },
+       { 0x0213EA94DE021964, 0x000035BB, 0xFFFFE90D, 0x0000052A, 0x000017D9, 0xFFFFF9F5, 0x000002C3, 0x000017D9, 0xFFFFF9F5, 0x000002C3 },
+       { 0x0213EA94DE041124, 0x000031F1, 0xFFFFEAD4, 0x000004ED, 0x00001F10, 0xFFFFF539, 0x0000037D, 0x00001F10, 0xFFFFF539, 0x0000037D },
+       { 0x0213F0FE99102824, 0x00002A1A, 0xFFFFEFAD, 0x00000430, 0x00001D47, 0xFFFFF62F, 0x0000035E, 0x00001D47, 0xFFFFF62F, 0x0000035E },
+       { 0x0213F0FE99164924, 0x00002AF0, 0xFFFFEEDC, 0x00000465, 0x0000145F, 0xFFFFFBEB, 0x00000281, 0x0000145F, 0xFFFFFBEB, 0x00000281 },
+       { 0x0213F0FE99183164, 0x00002657, 0xFFFFF2E0, 0x000003B6, 0x00001664, 0xFFFFFB37, 0x000002A2, 0x00001664, 0xFFFFFB37, 0x000002A2 },
+       { 0x0213F0FD42D03864, 0x00003183, 0xFFFFE9F1, 0x0000052B, 0x00002020, 0xFFFFF3CE, 0x000003C1, 0x00002020, 0xFFFFF3CE, 0x000003C1 },
+       { 0x0213F0FD42C628E4, 0x00003240, 0xFFFFEB65, 0x000004C7, 0x00002425, 0xFFFFF245, 0x000003F3, 0x00002425, 0xFFFFF245, 0x000003F3 },
+       { 0x0213EA94DE321104, 0x000023D0, 0xFFFFF400, 0x00000397, 0x00001345, 0xFFFFFD6B, 0x00000241, 0x00001345, 0xFFFFFD6B, 0x00000241 },
+       { 0x0213F0FD42CE38A4, 0x00003440, 0xFFFFE872, 0x0000055B, 0x00002247, 0xFFFFF296, 0x000003E8, 0x00002247, 0xFFFFF296, 0x000003E8 },
+       { 0x0213F0FD42D04904, 0x00003275, 0xFFFFE970, 0x00000538, 0x00001F94, 0xFFFFF429, 0x000003AD, 0x00001F94, 0xFFFFF429, 0x000003AD },
+       { 0x0213F0FD42C640A4, 0x00003918, 0xFFFFE5DA, 0x000005B6, 0x000024FC, 0xFFFFF106, 0x00000426, 0x000024FC, 0xFFFFF106, 0x00000426 },
+       { 0x0213EA94DE062044, 0x0000334B, 0xFFFFEA39, 0x000004FD, 0x00001983, 0xFFFFF8F6, 0x000002E2, 0x00001983, 0xFFFFF8F6, 0x000002E2 },
+       { 0x0213F0FD42C64984, 0x00003B59, 0xFFFFE4D0, 0x000005DA, 0x00002605, 0xFFFFF090, 0x00000439, 0x00002605, 0xFFFFF090, 0x00000439 },
+       { 0x0213F0FD42D03124, 0x00003251, 0xFFFFEA46, 0x00000511, 0x00002781, 0xFFFFEF84, 0x00000470, 0x00002781, 0xFFFFEF84, 0x00000470 },
+       { 0x0213F0FD42CA3164, 0x00003304, 0xFFFFE926, 0x00000542, 0x00001EE9, 0xFFFFF4E4, 0x0000038B, 0x00001EE9, 0xFFFFF4E4, 0x0000038B },
+       { 0x0213F0FD42CC38C4, 0x00002F4C, 0xFFFFEC0C, 0x000004C4, 0x00001E49, 0xFFFFF578, 0x00000374, 0x00001E49, 0xFFFFF578, 0x00000374 },
+       { 0x0213EA94DE1C2164, 0x00002034, 0xFFFFF692, 0x0000034C, 0x000014B8, 0xFFFFFC5B, 0x00000294, 0x000014B8, 0xFFFFFC5B, 0x00000294 },
+       { 0x0213F0FD42CE4924, 0x0000385F, 0xFFFFE513, 0x000005F3, 0x000024E7, 0xFFFFF053, 0x00000450, 0x000024E7, 0xFFFFF053, 0x00000450 },
+       { 0x0213EA94DE1C40E4, 0x00001D70, 0xFFFFF821, 0x0000030F, 0x00001541, 0xFFFFFBB4, 0x000002B0, 0x00001541, 0xFFFFFBB4, 0x000002B0 },
+       { 0x0213F0FD42D02084, 0x000034EB, 0xFFFFE7FF, 0x00000575, 0x000019B4, 0xFFFFF836, 0x00000308, 0x000019B4, 0xFFFFF836, 0x00000308 },
+       { 0x0213F0FD42D050E4, 0x000037C9, 0xFFFFE5D4, 0x000005CD, 0x000026A1, 0xFFFFEF0C, 0x00000491, 0x000026A1, 0xFFFFEF0C, 0x00000491 },
+       { 0x0213EA94DE121944, 0x00002918, 0xFFFFF148, 0x000003E9, 0x00001A49, 0xFFFFF94C, 0x000002CF, 0x00001A49, 0xFFFFF94C, 0x000002CF },
+       { 0x0213F0FD42CA4064, 0x00002F90, 0xFFFFEAB5, 0x00000514, 0x00001707, 0xFFFFF9C7, 0x000002C4, 0x00001707, 0xFFFFF9C7, 0x000002C4 },
+       { 0x0213EA94DE062064, 0x0000327E, 0xFFFFEA99, 0x000004F4, 0x0000194F, 0xFFFFF929, 0x000002DC, 0x0000194F, 0xFFFFF929, 0x000002DC },
+       { 0x0213F0FD42C64084, 0x0000326F, 0xFFFFE9CF, 0x00000519, 0x00002240, 0xFFFFF299, 0x000003E7, 0x00002240, 0xFFFFF299, 0x000003E7 },
+       { 0x0213EA94DE321124, 0x000022FB, 0xFFFFF4C6, 0x00000371, 0x00001506, 0xFFFFFC73, 0x00000265, 0x00001506, 0xFFFFFC73, 0x00000265 },
+       { 0x0213F0FD42CA3924, 0x00003AD6, 0xFFFFE470, 0x000005FE, 0x00001F03, 0xFFFFF4F3, 0x00000387, 0x00001F03, 0xFFFFF4F3, 0x00000387 },
+       { 0x0213EA94DE201124, 0x00001F11, 0xFFFFF756, 0x00000332, 0x00001666, 0xFFFFFB8A, 0x000002B2, 0x00001666, 0xFFFFFB8A, 0x000002B2 },
+       { 0x0213EA94DE0238A4, 0x00002A5F, 0xFFFFEFA7, 0x00000430, 0x00001943, 0xFFFFF8C6, 0x000002F7, 0x00001943, 0xFFFFF8C6, 0x000002F7 },
+       { 0x0213EA94DE1650E4, 0x0000235E, 0xFFFFF3B4, 0x000003B3, 0x00001489, 0xFFFFFBCF, 0x0000029B, 0x00001489, 0xFFFFFBCF, 0x0000029B },
+       { 0x0213F0FD42CC38A4, 0x00003570, 0xFFFFE780, 0x0000058D, 0x00001B1D, 0xFFFFF767, 0x00000325, 0x00001B1D, 0xFFFFF767, 0x00000325 },
+       { 0x0213EA94DE042064, 0x00003678, 0xFFFFE7C3, 0x00000569, 0x00001831, 0xFFFFF98E, 0x000002C8, 0x00001831, 0xFFFFF98E, 0x000002C8 },
+       { 0x0213EA94DE201864, 0x000020B9, 0xFFFFF625, 0x0000035A, 0x000015C5, 0xFFFFFB8A, 0x000002B5, 0x000015C5, 0xFFFFFB8A, 0x000002B5 },
+       { 0x0213F0FD42C63184, 0x00003985, 0xFFFFE529, 0x000005DD, 0x00002165, 0xFFFFF351, 0x000003C5, 0x00002165, 0xFFFFF351, 0x000003C5 },
+       { 0x0213F0FD42D02064, 0x0000322A, 0xFFFFE99D, 0x00000535, 0x000019A1, 0xFFFFF844, 0x00000305, 0x000019A1, 0xFFFFF844, 0x00000305 },
+       { 0x0213F0FD42D05104, 0x000033ED, 0xFFFFE834, 0x00000571, 0x00002094, 0xFFFFF33A, 0x000003DB, 0x00002094, 0xFFFFF33A, 0x000003DB },
+       { 0x0213EA94DE2040C4, 0x00001D10, 0xFFFFF84D, 0x0000030B, 0x00001659, 0xFFFFFB0A, 0x000002CB, 0x00001659, 0xFFFFFB0A, 0x000002CB },
+       { 0x0213EA94DE1C1124, 0x0000210F, 0xFFFFF644, 0x00000355, 0x00001A4A, 0xFFFFF90F, 0x00000310, 0x00001A4A, 0xFFFFF90F, 0x00000310 },
+       { 0x0213EA94DE164164, 0x00001CA8, 0xFFFFF813, 0x00000316, 0x00001440, 0xFFFFFC1C, 0x0000029D, 0x00001440, 0xFFFFFC1C, 0x0000029D },
+       { 0x0213EA94DE3210C4, 0x00002864, 0xFFFFF15A, 0x000003FA, 0x0000137F, 0xFFFFFD43, 0x00000248, 0x0000137F, 0xFFFFFD43, 0x00000248 },
+       { 0x0213F0FD42D04184, 0x00002CDB, 0xFFFFECFD, 0x000004A7, 0x00002472, 0xFFFFF0E1, 0x00000437, 0x00002472, 0xFFFFF0E1, 0x00000437 },
+       { 0x0213F0FD42CC5104, 0x00003348, 0xFFFFE8CA, 0x00000554, 0x00001E91, 0xFFFFF4D4, 0x00000392, 0x00001E91, 0xFFFFF4D4, 0x00000392 },
+       { 0x0213F0FD42C64944, 0x00003989, 0xFFFFE4BB, 0x000005F8, 0x00001ACB, 0xFFFFF780, 0x00000319, 0x00001ACB, 0xFFFFF780, 0x00000319 },
+       { 0x0213F0FD42CA2104, 0x00003238, 0xFFFFEA09, 0x0000051E, 0x00001F08, 0xFFFFF4F4, 0x0000038C, 0x00001F08, 0xFFFFF4F4, 0x0000038C },
+       { 0x0213EA94DE120904, 0x00002453, 0xFFFFF3B0, 0x0000038D, 0x00001AED, 0xFFFFF8A2, 0x000002EA, 0x00001AED, 0xFFFFF8A2, 0x000002EA },
+       { 0x0213EA94DE1C3024, 0x00002459, 0xFFFFF409, 0x000003A8, 0x000017B5, 0xFFFFFA53, 0x000002E1, 0x000017B5, 0xFFFFFA53, 0x000002E1 },
+       { 0x0213EA94DE021184, 0x0000310D, 0xFFFFEB78, 0x000004D0, 0x00001DC9, 0xFFFFF5D5, 0x00000368, 0x00001DC9, 0xFFFFF5D5, 0x00000368 },
+       { 0x0213EA94DE023104, 0x000031BF, 0xFFFFECA3, 0x00000498, 0x00001DC9, 0xFFFFF717, 0x00000336, 0x00001DC9, 0xFFFFF717, 0x00000336 },
+       { 0x0213F0FD42CE2104, 0x00003896, 0xFFFFE5DD, 0x000005C5, 0x000023E2, 0xFFFFF1A1, 0x00000416, 0x000023E2, 0xFFFFF1A1, 0x00000416 },
+       { 0x0213EA94DE323904, 0x000023CB, 0xFFFFF4C8, 0x00000372, 0x00001C33, 0xFFFFF7D5, 0x0000032A, 0x00001C33, 0xFFFFF7D5, 0x0000032A },
+       { 0x0213F0FD42D020C4, 0x00002F6B, 0xFFFFEBF0, 0x000004CE, 0x00001C89, 0xFFFFF689, 0x0000034D, 0x00001C89, 0xFFFFF689, 0x0000034D },
+       { 0x0213F0FD42CE3904, 0x00003E72, 0xFFFFE211, 0x0000065D, 0x0000218D, 0xFFFFF309, 0x000003DC, 0x0000218D, 0xFFFFF309, 0x000003DC },
+       { 0x0213EA94DE022084, 0x00002612, 0xFFFFF2C3, 0x000003AD, 0x000019F7, 0xFFFFF891, 0x000002FE, 0x000019F7, 0xFFFFF891, 0x000002FE },
+       { 0x0213EA94DE164184, 0x0000205D, 0xFFFFF59F, 0x00000372, 0x000012E6, 0xFFFFFD0A, 0x00000270, 0x000012E6, 0xFFFFFD0A, 0x00000270 },
+       { 0x0213F0FD42CA2124, 0x00002ECB, 0xFFFFEC47, 0x000004BD, 0x00001936, 0xFFFFF8D9, 0x000002E4, 0x00001936, 0xFFFFF8D9, 0x000002E4 },
+       { 0x0213EA94DE064904, 0x00002BDB, 0xFFFFEE6D, 0x00000458, 0x00001852, 0xFFFFF943, 0x000002D9, 0x00001852, 0xFFFFF943, 0x000002D9 },
+       { 0x0213EA94DE124904, 0x00003387, 0xFFFFE958, 0x00000534, 0x00001932, 0xFFFFF8FA, 0x000002E4, 0x00001932, 0xFFFFF8FA, 0x000002E4 },
+       { 0x0213EA94DE0208C4, 0x00002E3C, 0xFFFFED26, 0x00000495, 0x00001858, 0xFFFFF990, 0x000002D1, 0x00001858, 0xFFFFF990, 0x000002D1 },
+       { 0x0213EA94DE022964, 0x000033B8, 0xFFFFEA5C, 0x000004F9, 0x00001BD1, 0xFFFFF76A, 0x0000032E, 0x00001BD1, 0xFFFFF76A, 0x0000032E },
+       { 0x0213EA94DE062984, 0x00002BCE, 0xFFFFEEE9, 0x00000443, 0x00001982, 0xFFFFF90D, 0x000002DF, 0x00001982, 0xFFFFF90D, 0x000002DF },
+       { 0x0213F0FD42D048E4, 0x00003495, 0xFFFFE7D9, 0x0000057B, 0x00001D2A, 0xFFFFF5A5, 0x00000372, 0x00001D2A, 0xFFFFF5A5, 0x00000372 },
+       { 0x0213F0FD42CA38E4, 0x000034B1, 0xFFFFE88D, 0x00000556, 0x00002014, 0xFFFFF43A, 0x000003AA, 0x00002014, 0xFFFFF43A, 0x000003AA },
+       { 0x0213F0FD42CC3124, 0x00002F96, 0xFFFFEC84, 0x000004AD, 0x000024A2, 0xFFFFF1CE, 0x0000040A, 0x000024A2, 0xFFFFF1CE, 0x0000040A },
+       { 0x0213EA94DE161064, 0x0000203B, 0xFFFFF640, 0x00000359, 0x000014EC, 0xFFFFFC14, 0x0000029C, 0x000014EC, 0xFFFFFC14, 0x0000029C },
+       { 0x0213F0FD42D02984, 0x000034E2, 0xFFFFE7B8, 0x00000582, 0x00001938, 0xFFFFF872, 0x000002FA, 0x00001938, 0xFFFFF872, 0x000002FA },
+       { 0x0213EA94DE063124, 0x00002AC7, 0xFFFFF0C1, 0x000003F5, 0x00002268, 0xFFFFF39C, 0x000003C9, 0x00002268, 0xFFFFF39C, 0x000003C9 },
+       { 0x0213F0FD42C63144, 0x000036F6, 0xFFFFE77F, 0x00000571, 0x000027D9, 0xFFFFEF6F, 0x00000461, 0x000027D9, 0xFFFFEF6F, 0x00000461 },
+       { 0x0213EA94DE123124, 0x00002BAB, 0xFFFFF018, 0x00000419, 0x00002126, 0xFFFFF4E2, 0x0000038F, 0x00002126, 0xFFFFF4E2, 0x0000038F },
+       { 0x0213EA94DE323924, 0x000028C4, 0xFFFFF161, 0x000003F8, 0x0000180C, 0xFFFFFA4B, 0x000002C8, 0x0000180C, 0xFFFFFA4B, 0x000002C8 },
+       { 0x0213F0FD42CA2864, 0x00002F48, 0xFFFFEB62, 0x000004EE, 0x00001912, 0xFFFFF8C8, 0x000002EA, 0x00001912, 0xFFFFF8C8, 0x000002EA },
+       { 0x0213F0FD42CE2864, 0x000032DF, 0xFFFFE911, 0x00000545, 0x00001F06, 0xFFFFF485, 0x0000039C, 0x00001F06, 0xFFFFF485, 0x0000039C },
+       { 0x0213F0FD42D04144, 0x000035B8, 0xFFFFE74F, 0x00000590, 0x00001FD7, 0xFFFFF410, 0x000003AF, 0x00001FD7, 0xFFFFF410, 0x000003AF },
+       { 0x0213F0FD42D050C4, 0x00003608, 0xFFFFE6D7, 0x000005A9, 0x000024A6, 0xFFFFF075, 0x00000450, 0x000024A6, 0xFFFFF075, 0x00000450 },
+       { 0x0213F0FD42CA3884, 0x000030AB, 0xFFFFEAED, 0x000004F5, 0x000019EE, 0xFFFFF84E, 0x000002FC, 0x000019EE, 0xFFFFF84E, 0x000002FC },
+       { 0x0213EA94DE0620C4, 0x000030C6, 0xFFFFEC92, 0x0000049E, 0x000019BB, 0xFFFFF8F1, 0x000002F3, 0x000019BB, 0xFFFFF8F1, 0x000002F3 },
+       { 0x0213F0FD42C630A4, 0x00003B27, 0xFFFFE544, 0x000005C1, 0x00002697, 0xFFFFF072, 0x00000438, 0x00002697, 0xFFFFF072, 0x00000438 },
+       { 0x0213EA94DE1248E4, 0x00002F23, 0xFFFFEC48, 0x000004B9, 0x0000199A, 0xFFFFF8CF, 0x000002E9, 0x0000199A, 0xFFFFF8CF, 0x000002E9 },
+       { 0x0213EA94DE0629A4, 0x00002BD7, 0xFFFFEEAC, 0x00000450, 0x00001991, 0xFFFFF8F4, 0x000002E2, 0x00001991, 0xFFFFF8F4, 0x000002E2 },
+       { 0x0213EA94DE022024, 0x00003210, 0xFFFFEB24, 0x000004DE, 0x00001BDF, 0xFFFFF744, 0x00000333, 0x00001BDF, 0xFFFFF744, 0x00000333 },
+       { 0x0213EA94DE244144, 0x00002DDC, 0xFFFFED0D, 0x000004AC, 0x000019D0, 0xFFFFF869, 0x0000030F, 0x000019D0, 0xFFFFF869, 0x0000030F },
+       { 0x0213EA94DE203964, 0x000023E6, 0xFFFFF40C, 0x000003A9, 0x000014EB, 0xFFFFFBC4, 0x000002AF, 0x000014EB, 0xFFFFFBC4, 0x000002AF },
+       { 0x0213F0FD42CA29A4, 0x000030CE, 0xFFFFE9A5, 0x0000053C, 0x00001C45, 0xFFFFF60E, 0x0000035D, 0x00001C45, 0xFFFFF60E, 0x0000035D },
+       { 0x0213EA94DE161084, 0x00001E89, 0xFFFFF73A, 0x00000337, 0x0000157C, 0xFFFFFBC0, 0x000002AA, 0x0000157C, 0xFFFFFBC0, 0x000002AA },
+       { 0x0213F0FD42D04124, 0x000036C6, 0xFFFFE6CF, 0x000005A1, 0x00002457, 0xFFFFF11D, 0x0000042D, 0x00002457, 0xFFFFF11D, 0x0000042D },
+       { 0x0213EA94DE321944, 0x00002815, 0xFFFFF19A, 0x000003F2, 0x000016D2, 0xFFFFFB40, 0x00000299, 0x000016D2, 0xFFFFFB40, 0x00000299 },
+       { 0x0213EA94DE1C19A4, 0x00001FE2, 0xFFFFF660, 0x00000354, 0x000015A7, 0xFFFFFB47, 0x000002C1, 0x000015A7, 0xFFFFFB47, 0x000002C1 },
+       { 0x0213EA94DE161964, 0x00002114, 0xFFFFF634, 0x00000356, 0x000016C1, 0xFFFFFB43, 0x000002B8, 0x000016C1, 0xFFFFFB43, 0x000002B8 },
+       { 0x0213F0FD42CC28C4, 0x000028E3, 0xFFFFF075, 0x00000414, 0x0000203C, 0xFFFFF438, 0x000003B3, 0x0000203C, 0xFFFFF438, 0x000003B3 },
+       { 0x0213EA94DE1C3924, 0x00001EEB, 0xFFFFF7BB, 0x0000031A, 0x00001580, 0xFFFFFBD7, 0x000002AD, 0x00001580, 0xFFFFFBD7, 0x000002AD },
+       { 0x0213EA94DE2408C4, 0x00002BB2, 0xFFFFEE72, 0x00000470, 0x0000192C, 0xFFFFF91E, 0x000002E7, 0x0000192C, 0xFFFFF91E, 0x000002E7 },
+       { 0x0213EA94DE0650E4, 0x00003A3D, 0xFFFFE49D, 0x000005F5, 0x00001A3B, 0xFFFFF7B1, 0x00000320, 0x00001A3B, 0xFFFFF7B1, 0x00000320 },
+       { 0x0213F0FD42CE3164, 0x00002E93, 0xFFFFEC5A, 0x000004B4, 0x000025EB, 0xFFFFF03C, 0x0000044A, 0x000025EB, 0xFFFFF03C, 0x0000044A },
+       { 0x0213F0FD42CA20C4, 0x0000331F, 0xFFFFE97A, 0x00000531, 0x00001A06, 0xFFFFF850, 0x000002FD, 0x00001A06, 0xFFFFF850, 0x000002FD },
+       { 0x0213F0FD42C63964, 0x00003937, 0xFFFFE5A0, 0x000005C7, 0x0000235E, 0xFFFFF234, 0x000003F2, 0x0000235E, 0xFFFFF234, 0x000003F2 },
+       { 0x0213EA94DE1E3924, 0x00001DD0, 0xFFFFF80E, 0x00000319, 0x000015C7, 0xFFFFFB91, 0x000002BC, 0x000015C7, 0xFFFFFB91, 0x000002BC },
+       { 0x0213F0FD42D03964, 0x00003328, 0xFFFFE905, 0x0000054A, 0x00002054, 0xFFFFF3BF, 0x000003C0, 0x00002054, 0xFFFFF3BF, 0x000003C0 },
+       { 0x0213F0FD42CC1104, 0x00002FE5, 0xFFFFEA65, 0x00000520, 0x0000188B, 0xFFFFF8A7, 0x000002F5, 0x0000188B, 0xFFFFF8A7, 0x000002F5 },
+       { 0x0213F0FD42CA38A4, 0x00002ED3, 0xFFFFEC51, 0x000004B9, 0x00001888, 0xFFFFF96A, 0x000002CA, 0x00001888, 0xFFFFF96A, 0x000002CA },
+       { 0x0213F0FD42D03084, 0x00002FCC, 0xFFFFEB60, 0x000004EA, 0x00001F8D, 0xFFFFF436, 0x000003B4, 0x00001F8D, 0xFFFFF436, 0x000003B4 },
+       { 0x0213F0FD42CE4084, 0x0000329F, 0xFFFFE8F7, 0x0000054F, 0x000023DB, 0xFFFFF0EE, 0x0000043A, 0x000023DB, 0xFFFFF0EE, 0x0000043A },
+       { 0x0213EA94DE0438A4, 0x000030B5, 0xFFFFEBB8, 0x000004C4, 0x00001AFD, 0xFFFFF781, 0x00000329, 0x00001AFD, 0xFFFFF781, 0x00000329 },
+       { 0x0213EA94DE1E19A4, 0x00001BBF, 0xFFFFF8E2, 0x000002F7, 0x00001722, 0xFFFFFA85, 0x000002DB, 0x00001722, 0xFFFFFA85, 0x000002DB },
+       { 0x0213EA94DE022044, 0x000030E4, 0xFFFFEBE6, 0x000004BB, 0x00001C80, 0xFFFFF6E1, 0x0000033E, 0x00001C80, 0xFFFFF6E1, 0x0000033E },
+       { 0x0213EA94DE122944, 0x000030E2, 0xFFFFECD0, 0x00000492, 0x00001CE0, 0xFFFFF753, 0x0000032F, 0x00001CE0, 0xFFFFF753, 0x0000032F },
+       { 0x0213EA94DE322864, 0x00002513, 0xFFFFF323, 0x000003BC, 0x00001965, 0xFFFFF93C, 0x000002F0, 0x00001965, 0xFFFFF93C, 0x000002F0 },
+       { 0x0213EA94DE1610A4, 0x00002147, 0xFFFFF585, 0x0000037A, 0x000014CC, 0xFFFFFC3B, 0x00000296, 0x000014CC, 0xFFFFFC3B, 0x00000296 },
+       { 0x0213EA94DE322124, 0x00002507, 0xFFFFF432, 0x0000038A, 0x00001890, 0xFFFFFA61, 0x000002C6, 0x00001890, 0xFFFFFA61, 0x000002C6 },
+       { 0x0213EA94DE0638A4, 0x0000339B, 0xFFFFEA7D, 0x000004F0, 0x0000191E, 0xFFFFF944, 0x000002DF, 0x0000191E, 0xFFFFF944, 0x000002DF },
+       { 0x0213F0FD42CC28A4, 0x00002842, 0xFFFFF043, 0x00000427, 0x00001988, 0xFFFFF892, 0x000002F7, 0x00001988, 0xFFFFF892, 0x000002F7 },
+       { 0x0213F0FD42C618A4, 0x0000389D, 0xFFFFE5D8, 0x000005BF, 0x00001EE1, 0xFFFFF4EF, 0x00000387, 0x00001EE1, 0xFFFFF4EF, 0x00000387 },
+       { 0x0213F0FD42CE3184, 0x0000396D, 0xFFFFE4D7, 0x000005F2, 0x000020DA, 0xFFFFF34E, 0x000003CD, 0x000020DA, 0xFFFFF34E, 0x000003CD },
+       { 0x0213F0FD42CA3104, 0x0000355F, 0xFFFFE85A, 0x0000055F, 0x0000281F, 0xFFFFEF28, 0x0000047D, 0x0000281F, 0xFFFFEF28, 0x0000047D },
+       { 0x0213EA94DE1C50E4, 0x00002284, 0xFFFFF46E, 0x00000399, 0x00001498, 0xFFFFFBE3, 0x0000029C, 0x00001498, 0xFFFFFBE3, 0x0000029C },
+       { 0x0213EA94DE023944, 0x000031B6, 0xFFFFEB42, 0x000004D9, 0x00001F54, 0xFFFFF4D2, 0x00000399, 0x00001F54, 0xFFFFF4D2, 0x00000399 },
+       { 0x0213F0FD42C63064, 0x000035CE, 0xFFFFE79D, 0x00000578, 0x00001C78, 0xFFFFF68C, 0x00000344, 0x00001C78, 0xFFFFF68C, 0x00000344 },
+       { 0x0213EA94DE1E4964, 0x00001C0A, 0xFFFFF81B, 0x00000318, 0x00001492, 0xFFFFFBCC, 0x000002A5, 0x00001492, 0xFFFFFBCC, 0x000002A5 },
+       { 0x0213EA94DE022184, 0x00003492, 0xFFFFE95C, 0x00000526, 0x00001A97, 0xFFFFF81B, 0x0000030B, 0x00001A97, 0xFFFFF81B, 0x0000030B },
+       { 0x0213EA94DE163164, 0x00001E89, 0xFFFFF7D0, 0x0000031A, 0x000017A5, 0xFFFFFA99, 0x000002D9, 0x000017A5, 0xFFFFFA99, 0x000002D9 },
+       { 0x0213F0FD42CA48C4, 0x00002DCC, 0xFFFFEBE0, 0x000004DE, 0x000019BA, 0xFFFFF7F5, 0x0000030D, 0x000019BA, 0xFFFFF7F5, 0x0000030D },
+       { 0x0213EA94DE042984, 0x000030EF, 0xFFFFEBC1, 0x000004C0, 0x00001AA9, 0xFFFFF814, 0x0000030A, 0x00001AA9, 0xFFFFF814, 0x0000030A },
+       { 0x0213EA94DE245124, 0x00002EA3, 0xFFFFEBF6, 0x000004D8, 0x00001DCF, 0xFFFFF521, 0x00000399, 0x00001DCF, 0xFFFFF521, 0x00000399 },
+       { 0x0213EA94DE324164, 0x00002B5F, 0xFFFFEEA1, 0x0000046C, 0x000017EB, 0xFFFFF9C9, 0x000002D4, 0x000017EB, 0xFFFFF9C9, 0x000002D4 },
+       { 0x0213EA94DE024104, 0x00002C63, 0xFFFFEE82, 0x00000455, 0x00002268, 0xFFFFF29D, 0x000003F6, 0x00002268, 0xFFFFF29D, 0x000003F6 },
+       { 0x0213EA94DE121904, 0x00002B1A, 0xFFFFF016, 0x0000041C, 0x000019AA, 0xFFFFF988, 0x000002D2, 0x000019AA, 0xFFFFF988, 0x000002D2 },
+       { 0x0213F0FD42CA2964, 0x0000332F, 0xFFFFE934, 0x0000053B, 0x00001E47, 0xFFFFF566, 0x00000374, 0x00001E47, 0xFFFFF566, 0x00000374 },
+       { 0x0213F0FD42CA48E4, 0x00002995, 0xFFFFEEC1, 0x00000465, 0x0000178F, 0xFFFFF995, 0x000002C5, 0x0000178F, 0xFFFFF995, 0x000002C5 },
+       { 0x0213EA94DE201884, 0x00001C2E, 0xFFFFF932, 0x000002E9, 0x000015C2, 0xFFFFFBC5, 0x000002AD, 0x000015C2, 0xFFFFFBC5, 0x000002AD },
+       { 0x0213F0FD42C640E4, 0x00003B08, 0xFFFFE4E8, 0x000005D8, 0x0000209D, 0xFFFFF444, 0x00000398, 0x0000209D, 0xFFFFF444, 0x00000398 },
+       { 0x0213EA94DE0450E4, 0x00002F1F, 0xFFFFEB74, 0x000004EB, 0x00001F4C, 0xFFFFF3D4, 0x000003CE, 0x00001F4C, 0xFFFFF3D4, 0x000003CE },
+       { 0x0213EA94DE043884, 0x00003415, 0xFFFFE89F, 0x00000553, 0x0000186B, 0xFFFFF8E1, 0x000002EF, 0x0000186B, 0xFFFFF8E1, 0x000002EF },
+       { 0x0213F0FD42CC10C4, 0x00003441, 0xFFFFE779, 0x0000059D, 0x000019EA, 0xFFFFF7B2, 0x0000031F, 0x000019EA, 0xFFFFF7B2, 0x0000031F },
+       { 0x0213EA94DE164064, 0x00002174, 0xFFFFF546, 0x00000378, 0x00001456, 0xFFFFFC5F, 0x00000284, 0x00001456, 0xFFFFFC5F, 0x00000284 },
+       { 0x0213F0FD42CE40C4, 0x00003788, 0xFFFFE61E, 0x000005BF, 0x00001DF4, 0xFFFFF562, 0x00000374, 0x00001DF4, 0xFFFFF562, 0x00000374 },
+       { 0x0213EA94DE1E1844, 0x00001C41, 0xFFFFF8C1, 0x000002FC, 0x0000171E, 0xFFFFFA93, 0x000002DE, 0x0000171E, 0xFFFFFA93, 0x000002DE },
+       { 0x0213F0FD42CA3864, 0x00002B15, 0xFFFFEDEC, 0x00000487, 0x000017E4, 0xFFFFF934, 0x000002DF, 0x000017E4, 0xFFFFF934, 0x000002DF },
+       { 0x0213F0FD42CC3144, 0x0000327A, 0xFFFFEA71, 0x000004FF, 0x00001D96, 0xFFFFF63B, 0x00000351, 0x00001D96, 0xFFFFF63B, 0x00000351 },
+       { 0x0213EA94DE1E4064, 0x000023C6, 0xFFFFF3E5, 0x000003B6, 0x000014DE, 0xFFFFFC29, 0x00000294, 0x000014DE, 0xFFFFFC29, 0x00000294 },
+       { 0x0213EA94DE164944, 0x00001F96, 0xFFFFF5FA, 0x00000364, 0x00001397, 0xFFFFFC9D, 0x0000027D, 0x00001397, 0xFFFFFC9D, 0x0000027D },
+       { 0x0213EA94DE063144, 0x00002B51, 0xFFFFEFB5, 0x00000420, 0x00001ACA, 0xFFFFF824, 0x0000030D, 0x00001ACA, 0xFFFFF824, 0x0000030D },
+       { 0x0213EA94DE1E4944, 0x000020DB, 0xFFFFF55B, 0x0000037C, 0x0000153D, 0xFFFFFB5F, 0x000002BA, 0x0000153D, 0xFFFFFB5F, 0x000002BA },
+       { 0x0213EA94DE0221A4, 0x000030BB, 0xFFFFEBDA, 0x000004BC, 0x00001B0E, 0xFFFFF7A8, 0x0000031E, 0x00001B0E, 0xFFFFF7A8, 0x0000031E },
+       { 0x0213F0FD42C62904, 0x000033C4, 0xFFFFEA41, 0x000004FA, 0x000022C6, 0xFFFFF363, 0x000003BC, 0x000022C6, 0xFFFFF363, 0x000003BC },
+       { 0x0213EA94DE240924, 0x00002D47, 0xFFFFEE01, 0x00000477, 0x000021CD, 0xFFFFF36E, 0x000003D6, 0x000021CD, 0xFFFFF36E, 0x000003D6 },
+       { 0x0213EA94DE1E31A4, 0x00001E7B, 0xFFFFF733, 0x00000339, 0x00001668, 0xFFFFFB29, 0x000002BF, 0x00001668, 0xFFFFFB29, 0x000002BF },
+       { 0x0213F0FD42CA2984, 0x00002F7E, 0xFFFFEAFF, 0x000004FC, 0x000018D4, 0xFFFFF8BE, 0x000002E8, 0x000018D4, 0xFFFFF8BE, 0x000002E8 },
+       { 0x0213EA94DE3238A4, 0x00002635, 0xFFFFF2E1, 0x000003BC, 0x000017A4, 0xFFFFFA67, 0x000002C3, 0x000017A4, 0xFFFFFA67, 0x000002C3 },
+       { 0x0213EA94DE1230A4, 0x000026CA, 0xFFFFF2C1, 0x000003B2, 0x00001C3E, 0xFFFFF7AE, 0x0000031F, 0x00001C3E, 0xFFFFF7AE, 0x0000031F },
+       { 0x0213EA94DE1C1064, 0x00002550, 0xFFFFF380, 0x000003B5, 0x000019F5, 0xFFFFF8E7, 0x00000313, 0x000019F5, 0xFFFFF8E7, 0x00000313 },
+       { 0x0213F0FD42CA4904, 0x00002FBC, 0xFFFFEAF8, 0x000004FA, 0x000018CC, 0xFFFFF8C6, 0x000002E8, 0x000018CC, 0xFFFFF8C6, 0x000002E8 },
+       { 0x0213F0FD42D018E4, 0x00002FCC, 0xFFFFEB60, 0x000004EA, 0x00001EFF, 0xFFFFF4DA, 0x0000038F, 0x00001EFF, 0xFFFFF4DA, 0x0000038F },
+       { 0x0213EA94DE164084, 0x000023E6, 0xFFFFF413, 0x000003A1, 0x00001544, 0xFFFFFC16, 0x0000028B, 0x00001544, 0xFFFFFC16, 0x0000028B },
+       { 0x0213F0FD42CE3024, 0x00003251, 0xFFFFEAA2, 0x000004F5, 0x000025B0, 0xFFFFF0DF, 0x00000431, 0x000025B0, 0xFFFFF0DF, 0x00000431 },
+       { 0x0213F0FD42D03984, 0x00002F6F, 0xFFFFEB67, 0x000004E6, 0x00002275, 0xFFFFF249, 0x000003FB, 0x00002275, 0xFFFFF249, 0x000003FB },
+       { 0x0213EA94DE322964, 0x00002597, 0xFFFFF34A, 0x000003B1, 0x00001BCC, 0xFFFFF822, 0x0000031A, 0x00001BCC, 0xFFFFF822, 0x0000031A },
+       { 0x0213F0FD42C63864, 0x00003B1D, 0xFFFFE40E, 0x0000060D, 0x00001F61, 0xFFFFF470, 0x0000039F, 0x00001F61, 0xFFFFF470, 0x0000039F },
+       { 0x0213F0FD42C64144, 0x0000379F, 0xFFFFE6DB, 0x0000058C, 0x00002460, 0xFFFFF170, 0x00000415, 0x00002460, 0xFFFFF170, 0x00000415 },
+       { 0x0213EA94DE165144, 0x00002442, 0xFFFFF2FB, 0x000003D9, 0x00001414, 0xFFFFFBDC, 0x000002A2, 0x00001414, 0xFFFFFBDC, 0x000002A2 },
+       { 0x0213EA94DE0240C4, 0x00003270, 0xFFFFEA0D, 0x0000051C, 0x00001AFD, 0xFFFFF783, 0x00000328, 0x00001AFD, 0xFFFFF783, 0x00000328 },
+       { 0x0213EA94DE161104, 0x00001B23, 0xFFFFF94B, 0x000002EB, 0x000015F1, 0xFFFFFB82, 0x000002B4, 0x000015F1, 0xFFFFFB82, 0x000002B4 },
+       { 0x0213EA94DE323844, 0x000026AE, 0xFFFFF21A, 0x000003DB, 0x00001827, 0xFFFFFA10, 0x000002C8, 0x00001827, 0xFFFFFA10, 0x000002C8 },
+       { 0x0213F0FD42CA4884, 0x00002DCF, 0xFFFFEBD8, 0x000004DB, 0x00001A75, 0xFFFFF719, 0x0000033A, 0x00001A75, 0xFFFFF719, 0x0000033A },
+       { 0x0213F0FD42CE40E4, 0x00003983, 0xFFFFE500, 0x000005EA, 0x000022A6, 0xFFFFF25F, 0x000003F1, 0x000022A6, 0xFFFFF25F, 0x000003F1 },
+       { 0x0213EA94DE1218C4, 0x00002AD5, 0xFFFFF07A, 0x00000406, 0x000019FB, 0xFFFFF961, 0x000002D8, 0x000019FB, 0xFFFFF961, 0x000002D8 },
+       { 0x0213F0FD42CA39A4, 0x00002A43, 0xFFFFEE43, 0x00000474, 0x00001D65, 0xFFFFF538, 0x00000387, 0x00001D65, 0xFFFFF538, 0x00000387 },
+       { 0x0213F0FD42C62084, 0x0000311E, 0xFFFFEAF8, 0x000004E8, 0x00001959, 0xFFFFF8E4, 0x000002DC, 0x00001959, 0xFFFFF8E4, 0x000002DC },
+       { 0x0213F0FD42D031A4, 0x0000339A, 0xFFFFE8A7, 0x00000559, 0x00001A04, 0xFFFFF7E5, 0x00000311, 0x00001A04, 0xFFFFF7E5, 0x00000311 },
+       { 0x0213EA94DE204144, 0x000021B3, 0xFFFFF50F, 0x00000389, 0x00001470, 0xFFFFFBF7, 0x000002A5, 0x00001470, 0xFFFFFBF7, 0x000002A5 },
+       { 0x0213EA94DE021884, 0x00003417, 0xFFFFE9A6, 0x0000051D, 0x000018A4, 0xFFFFF984, 0x000002CF, 0x000018A4, 0xFFFFF984, 0x000002CF },
+       { 0x0213EA94DE202984, 0x00001FED, 0xFFFFF6A2, 0x00000347, 0x00001639, 0xFFFFFB59, 0x000002BB, 0x00001639, 0xFFFFFB59, 0x000002BB },
+       { 0x0213EA94DE1218A4, 0x000032D2, 0xFFFFEB18, 0x000004DC, 0x00001A01, 0xFFFFF95E, 0x000002CF, 0x00001A01, 0xFFFFF95E, 0x000002CF },
+       { 0x0213F0FD42D04084, 0x00003147, 0xFFFFEA3B, 0x00000518, 0x0000241D, 0xFFFFF11C, 0x00000431, 0x0000241D, 0xFFFFF11C, 0x00000431 },
+       { 0x0213EA94DE1C0904, 0x00001D44, 0xFFFFF7E7, 0x0000031A, 0x0000153F, 0xFFFFFBBC, 0x000002A9, 0x0000153F, 0xFFFFFBBC, 0x000002A9 },
+       { 0x0213F0FD42CC4104, 0x00003690, 0xFFFFE6E3, 0x000005A4, 0x000018DE, 0xFFFFF908, 0x000002DD, 0x000018DE, 0xFFFFF908, 0x000002DD },
+       { 0x0213F0FD42CC2184, 0x00003561, 0xFFFFE6F8, 0x000005AB, 0x000018B5, 0xFFFFF8A0, 0x000002F3, 0x000018B5, 0xFFFFF8A0, 0x000002F3 },
+       { 0x0213EA94DE323124, 0x000028F4, 0xFFFFF23A, 0x000003CE, 0x00001BC6, 0xFFFFF881, 0x00000311, 0x00001BC6, 0xFFFFF881, 0x00000311 },
+       { 0x0213F0FD42D03184, 0x000035D7, 0xFFFFE71C, 0x0000059B, 0x00001D49, 0xFFFFF5C8, 0x00000368, 0x00001D49, 0xFFFFF5C8, 0x00000368 },
+       { 0x0213F0FD42CE18A4, 0x0000397E, 0xFFFFE4CB, 0x000005F4, 0x00001989, 0xFFFFF844, 0x000002FD, 0x00001989, 0xFFFFF844, 0x000002FD },
+       { 0x0213F0FD42C62064, 0x00003BAB, 0xFFFFE332, 0x0000063F, 0x00001A69, 0xFFFFF7B9, 0x00000312, 0x00001A69, 0xFFFFF7B9, 0x00000312 },
+       { 0x0213F0FD42D03064, 0x00002F26, 0xFFFFEB82, 0x000004E8, 0x00001D7D, 0xFFFFF590, 0x00000379, 0x00001D7D, 0xFFFFF590, 0x00000379 },
+       { 0x0213EA94DE0631A4, 0x00002FDC, 0xFFFFEBE0, 0x000004C3, 0x00001940, 0xFFFFF8CC, 0x000002EE, 0x00001940, 0xFFFFF8CC, 0x000002EE },
+       { 0x0213EA94DE1C08E4, 0x000021B2, 0xFFFFF558, 0x00000379, 0x00001643, 0xFFFFFB1C, 0x000002C3, 0x00001643, 0xFFFFFB1C, 0x000002C3 },
+       { 0x0213EA94DE321904, 0x00002897, 0xFFFFF181, 0x000003F7, 0x00001990, 0xFFFFF994, 0x000002E2, 0x00001990, 0xFFFFF994, 0x000002E2 },
+       { 0x0213EA94DE1E0924, 0x00001D19, 0xFFFFF829, 0x0000031A, 0x00001558, 0xFFFFFBCA, 0x000002AF, 0x00001558, 0xFFFFFBCA, 0x000002AF },
+       { 0x0213EA94DE043144, 0x00003311, 0xFFFFEAD9, 0x000004E1, 0x00001BDC, 0xFFFFF79E, 0x0000031D, 0x00001BDC, 0xFFFFF79E, 0x0000031D },
+       { 0x0213EA94DE1E29C4, 0x00001E54, 0xFFFFF740, 0x00000333, 0x000016A1, 0xFFFFFAF0, 0x000002C4, 0x000016A1, 0xFFFFFAF0, 0x000002C4 },
+       { 0x0213F0FD42CE3964, 0x00003266, 0xFFFFE9A8, 0x00000527, 0x00002307, 0xFFFFF219, 0x000003FC, 0x00002307, 0xFFFFF219, 0x000003FC },
+       { 0x0213EA94DE321144, 0x00001D1F, 0xFFFFF82B, 0x000002F0, 0x000013F0, 0xFFFFFD0B, 0x0000024E, 0x000013F0, 0xFFFFFD0B, 0x0000024E },
+       { 0x0213F0FD42C648A4, 0x0000312E, 0xFFFFEA67, 0x00000502, 0x0000222A, 0xFFFFF253, 0x000003F9, 0x0000222A, 0xFFFFF253, 0x000003F9 },
+       { 0x0213F0FD42CA4124, 0x000032B2, 0xFFFFE9AD, 0x00000523, 0x00001E97, 0xFFFFF527, 0x0000037F, 0x00001E97, 0xFFFFF527, 0x0000037F },
+       { 0x0213EA94DE1640E4, 0x00001F6A, 0xFFFFF6FC, 0x00000338, 0x0000164B, 0xFFFFFB2C, 0x000002C2, 0x0000164B, 0xFFFFFB2C, 0x000002C2 },
+       { 0x0213EA94DE0228C4, 0x00002603, 0xFFFFF386, 0x00000392, 0x00001EE0, 0xFFFFF601, 0x00000369, 0x00001EE0, 0xFFFFF601, 0x00000369 },
+       { 0x0213EA94DE201164, 0x00001D0C, 0xFFFFF803, 0x00000317, 0x00001345, 0xFFFFFD52, 0x00000260, 0x00001345, 0xFFFFFD52, 0x00000260 },
+       { 0x0213F0FD42CC1884, 0x0000327A, 0xFFFFE8E5, 0x0000055C, 0x00001680, 0xFFFFFA2D, 0x000002B2, 0x00001680, 0xFFFFFA2D, 0x000002B2 },
+       { 0x0213F0FD42CA3964, 0x000032B8, 0xFFFFE91A, 0x0000054A, 0x00001BAB, 0xFFFFF6EC, 0x00000338, 0x00001BAB, 0xFFFFF6EC, 0x00000338 },
+       { 0x0213F0FD42CC3044, 0x00002F79, 0xFFFFEB63, 0x000004EF, 0x000017BB, 0xFFFFF9B1, 0x000002CA, 0x000017BB, 0xFFFFF9B1, 0x000002CA },
+       { 0x0213EA94DE0438E4, 0x00002AE5, 0xFFFFEFCB, 0x0000041D, 0x0000214A, 0xFFFFF3A7, 0x000003C7, 0x0000214A, 0xFFFFF3A7, 0x000003C7 },
+       { 0x0213EA94DE322064, 0x0000212C, 0xFFFFF5BC, 0x0000034F, 0x000017ED, 0xFFFFFA4C, 0x000002C1, 0x000017ED, 0xFFFFFA4C, 0x000002C1 },
+       { 0x0213EA94DE121124, 0x00002BE7, 0xFFFFEF40, 0x0000043C, 0x00001AE2, 0xFFFFF8CF, 0x000002E3, 0x00001AE2, 0xFFFFF8CF, 0x000002E3 },
+       { 0x0213F0FD42D05144, 0x000032DC, 0xFFFFE90F, 0x00000549, 0x00002A2D, 0xFFFFECC9, 0x000004ED, 0x00002A2D, 0xFFFFECC9, 0x000004ED },
+       { 0x0213EA94DE1618A4, 0x00001DE3, 0xFFFFF80D, 0x00000319, 0x000016FA, 0xFFFFFB42, 0x000002BC, 0x000016FA, 0xFFFFFB42, 0x000002BC },
+       { 0x0213EA94DE1E2844, 0x00001F1B, 0xFFFFF6DE, 0x00000346, 0x00001502, 0xFFFFFC23, 0x00000298, 0x00001502, 0xFFFFFC23, 0x00000298 },
+       { 0x0213EA94DE061864, 0x00003203, 0xFFFFEA87, 0x000004FE, 0x0000194E, 0xFFFFF8E3, 0x000002EC, 0x0000194E, 0xFFFFF8E3, 0x000002EC },
+       { 0x0213F0FD42D02144, 0x0000337A, 0xFFFFE8DD, 0x00000551, 0x00001E3C, 0xFFFFF534, 0x00000385, 0x00001E3C, 0xFFFFF534, 0x00000385 },
+       { 0x0213F0FD42CA4864, 0x000036F6, 0xFFFFE62A, 0x000005C5, 0x000023C0, 0xFFFFF117, 0x00000435, 0x000023C0, 0xFFFFF117, 0x00000435 },
+       { 0x0213F0FD42CC2144, 0x00003125, 0xFFFFEA4E, 0x0000051A, 0x00001E6C, 0xFFFFF503, 0x0000038E, 0x00001E6C, 0xFFFFF503, 0x0000038E },
+       { 0x0213EA94DE1C08A4, 0x00001CD4, 0xFFFFF82D, 0x0000030E, 0x0000156D, 0xFFFFFB64, 0x000002B8, 0x0000156D, 0xFFFFFB64, 0x000002B8 },
+       { 0x0213EA94DE0240A4, 0x00002F14, 0xFFFFEC46, 0x000004B8, 0x000017F1, 0xFFFFF977, 0x000002D2, 0x000017F1, 0xFFFFF977, 0x000002D2 },
+       { 0x0213EA94DE0640A4, 0x000031F1, 0xFFFFEAD4, 0x000004ED, 0x0000184C, 0xFFFFF983, 0x000002D4, 0x0000184C, 0xFFFFF983, 0x000002D4 },
+       { 0x0213F0FD42D04984, 0x00002EA9, 0xFFFFEBD7, 0x000004D5, 0x0000288D, 0xFFFFEDDB, 0x000004C0, 0x0000288D, 0xFFFFEDDB, 0x000004C0 },
+       { 0x0213F0FD42CA3984, 0x0000335F, 0xFFFFE82C, 0x00000579, 0x00001DBF, 0xFFFFF512, 0x0000038C, 0x00001DBF, 0xFFFFF512, 0x0000038C },
+       { 0x0213EA94DE201184, 0x0000224F, 0xFFFFF4B5, 0x00000391, 0x0000138C, 0xFFFFFCC3, 0x0000027A, 0x0000138C, 0xFFFFFCC3, 0x0000027A },
+       { 0x0213EA94DE1240A4, 0x0000320D, 0xFFFFEACD, 0x000004F5, 0x00001976, 0xFFFFF913, 0x000002E2, 0x00001976, 0xFFFFF913, 0x000002E2 },
+       { 0x0213EA94DE202104, 0x00001BEB, 0xFFFFF99C, 0x000002E4, 0x000016A4, 0xFFFFFB77, 0x000002C3, 0x000016A4, 0xFFFFFB77, 0x000002C3 },
+       { 0x0213EA94DE063044, 0x0000396E, 0xFFFFE616, 0x000005A9, 0x000018F4, 0xFFFFF91A, 0x000002E3, 0x000018F4, 0xFFFFF91A, 0x000002E3 },
+       { 0x0213EA94DE022864, 0x00003251, 0xFFFFEA8E, 0x000004FA, 0x000018EF, 0xFFFFF910, 0x000002E4, 0x000018EF, 0xFFFFF910, 0x000002E4 },
+       { 0x0213EA94DE1C1924, 0x00001DAF, 0xFFFFF857, 0x0000030D, 0x00001915, 0xFFFFF9D8, 0x000002F7, 0x00001915, 0xFFFFF9D8, 0x000002F7 },
+       { 0x0213EA94DE2041A4, 0x000025B6, 0xFFFFF26B, 0x000003E5, 0x00001531, 0xFFFFFB68, 0x000002AF, 0x00001531, 0xFFFFFB68, 0x000002AF },
+       { 0x0213EA94DE061884, 0x00002B2E, 0xFFFFEF2E, 0x00000440, 0x00001968, 0xFFFFF91A, 0x000002DF, 0x00001968, 0xFFFFF91A, 0x000002DF },
+       { 0x0213EA94DE1C2064, 0x00002305, 0xFFFFF528, 0x00000377, 0x000018A4, 0xFFFFF9EB, 0x000002F0, 0x000018A4, 0xFFFFF9EB, 0x000002F0 },
+       { 0x0213F0FD42CA40C4, 0x000032A1, 0xFFFFE992, 0x0000052E, 0x00001A55, 0xFFFFF826, 0x000002FE, 0x00001A55, 0xFFFFF826, 0x000002FE },
+       { 0x0213EA94DE042184, 0x00002CCD, 0xFFFFEE35, 0x00000462, 0x00001B09, 0xFFFFF7E6, 0x0000030F, 0x00001B09, 0xFFFFF7E6, 0x0000030F },
+       { 0x0213EA94DE323084, 0x00002602, 0xFFFFF2CF, 0x000003C5, 0x000016EE, 0xFFFFFAD4, 0x000002B4, 0x000016EE, 0xFFFFFAD4, 0x000002B4 },
+       { 0x0213F0FD42D01964, 0x00003370, 0xFFFFE891, 0x00000560, 0x000017F0, 0xFFFFF930, 0x000002DF, 0x000017F0, 0xFFFFF930, 0x000002DF },
+       { 0x0213F0FD42CA1884, 0x00002EDC, 0xFFFFEB6D, 0x000004EC, 0x000016E6, 0xFFFFF9ED, 0x000002BC, 0x000016E6, 0xFFFFF9ED, 0x000002BC },
+       { 0x0213EA94DE1228C4, 0x00002A05, 0xFFFFF13D, 0x000003F0, 0x00002065, 0xFFFFF57B, 0x00000378, 0x00002065, 0xFFFFF57B, 0x00000378 },
+       { 0x0213F0FD42CE2044, 0x00002F8A, 0xFFFFEB6E, 0x000004E4, 0x00001E3E, 0xFFFFF50E, 0x0000038D, 0x00001E3E, 0xFFFFF50E, 0x0000038D },
+       { 0x0213F0FD42CA3044, 0x00002BB5, 0xFFFFED6A, 0x000004A1, 0x000017BF, 0xFFFFF937, 0x000002E5, 0x000017BF, 0xFFFFF937, 0x000002E5 },
+       { 0x0213EA94DE201964, 0x0000202C, 0xFFFFF6CE, 0x0000033F, 0x000015EE, 0xFFFFFB83, 0x000002B9, 0x000015EE, 0xFFFFFB83, 0x000002B9 },
+       { 0x0213EA94DE022884, 0x00002C0C, 0xFFFFEF10, 0x0000043F, 0x00001A73, 0xFFFFF83E, 0x0000030C, 0x00001A73, 0xFFFFF83E, 0x0000030C },
+       { 0x0213EA94DE324104, 0x0000234F, 0xFFFFF460, 0x00000385, 0x000018C3, 0xFFFFF9A5, 0x000002DD, 0x000018C3, 0xFFFFF9A5, 0x000002DD },
+       { 0x0213F0FD42CE1904, 0x00003679, 0xFFFFE704, 0x00000595, 0x00002177, 0xFFFFF31A, 0x000003D7, 0x00002177, 0xFFFFF31A, 0x000003D7 },
+       { 0x0213F0FD42CA2924, 0x00003008, 0xFFFFEBB8, 0x000004D5, 0x000024FF, 0xFFFFF112, 0x00000430, 0x000024FF, 0xFFFFF112, 0x00000430 },
+       { 0x0213F0FD42C641A4, 0x00003848, 0xFFFFE6A3, 0x00000594, 0x00002958, 0xFFFFEE37, 0x000004A0, 0x00002958, 0xFFFFEE37, 0x000004A0 },
+       { 0x0213F0FD42CC1924, 0x00002FDF, 0xFFFFEB08, 0x000004FD, 0x00001D77, 0xFFFFF58B, 0x0000037A, 0x00001D77, 0xFFFFF58B, 0x0000037A },
+       { 0x0213EA94DE063064, 0x00002EC8, 0xFFFFED41, 0x00000481, 0x00001949, 0xFFFFF91C, 0x000002DF, 0x00001949, 0xFFFFF91C, 0x000002DF },
+       { 0x0213F0FD42D041A4, 0x000037C1, 0xFFFFE5BA, 0x000005D7, 0x0000252C, 0xFFFFF023, 0x00000460, 0x0000252C, 0xFFFFF023, 0x00000460 },
+       { 0x0213F0FD42CE2944, 0x00003716, 0xFFFFE70C, 0x0000058A, 0x000028CC, 0xFFFFEE57, 0x0000049D, 0x000028CC, 0xFFFFEE57, 0x0000049D },
+       { 0x0213F0FD42CA40E4, 0x000033D1, 0xFFFFE8E8, 0x00000547, 0x00001AB1, 0xFFFFF7E5, 0x00000309, 0x00001AB1, 0xFFFFF7E5, 0x00000309 },
+       { 0x0213F0FD42CC2944, 0x00002D72, 0xFFFFED65, 0x0000048E, 0x00001E0D, 0xFFFFF5A7, 0x00000370, 0x00001E0D, 0xFFFFF5A7, 0x00000370 },
+       { 0x0213EA94DE1C39A4, 0x00002292, 0xFFFFF49F, 0x00000393, 0x000017F4, 0xFFFFF9CD, 0x000002F5, 0x000017F4, 0xFFFFF9CD, 0x000002F5 },
+       { 0x0213EA94DE243044, 0x000026EE, 0xFFFFF18C, 0x000003F7, 0x000018A7, 0xFFFFF95A, 0x000002E5, 0x000018A7, 0xFFFFF95A, 0x000002E5 },
+       { 0x0213EA94DE042164, 0x00002F62, 0xFFFFEC9B, 0x000004A4, 0x0000194E, 0xFFFFF932, 0x000002D9, 0x0000194E, 0xFFFFF932, 0x000002D9 },
+       { 0x0213EA94DE1E3984, 0x00001CE8, 0xFFFFF7FA, 0x0000031C, 0x000014CE, 0xFFFFFBD4, 0x000002AB, 0x000014CE, 0xFFFFFBD4, 0x000002AB },
+       { 0x0213EA94DE1210E4, 0x00002E5A, 0xFFFFEDAB, 0x0000047C, 0x00001A82, 0xFFFFF8F7, 0x000002DE, 0x00001A82, 0xFFFFF8F7, 0x000002DE },
+       { 0x0213F0FD42CC30E4, 0x00003057, 0xFFFFEC34, 0x000004B9, 0x00002296, 0xFFFFF342, 0x000003D0, 0x00002296, 0xFFFFF342, 0x000003D0 },
+       { 0x0213EA94DE0418A4, 0x00002B0F, 0xFFFFEF58, 0x00000434, 0x00001BFD, 0xFFFFF721, 0x00000330, 0x00001BFD, 0xFFFFF721, 0x00000330 },
+       { 0x0213EA94DE2010A4, 0x00001F01, 0xFFFFF751, 0x0000032F, 0x00001502, 0xFFFFFC3E, 0x00000296, 0x00001502, 0xFFFFFC3E, 0x00000296 },
+       { 0x0213F0FD42CA3064, 0x00002FF4, 0xFFFFEAE2, 0x00000503, 0x00001B36, 0xFFFFF736, 0x00000330, 0x00001B36, 0xFFFFF736, 0x00000330 },
+       { 0x0213F0FD42CE2064, 0x00003762, 0xFFFFE5AB, 0x000005DE, 0x000018CB, 0xFFFFF896, 0x000002F4, 0x000018CB, 0xFFFFF896, 0x000002F4 },
+       { 0x0213F0FD42CC2064, 0x00002890, 0xFFFFEF92, 0x00000445, 0x0000191D, 0xFFFFF86F, 0x00000302, 0x0000191D, 0xFFFFF86F, 0x00000302 },
+       { 0x0213EA94DE043064, 0x00002F76, 0xFFFFEC0E, 0x000004BF, 0x00001F7D, 0xFFFFF41A, 0x000003C0, 0x00001F7D, 0xFFFFF41A, 0x000003C0 },
+       { 0x0213EA94DE1E08A4, 0x00001D55, 0xFFFFF7F8, 0x0000031E, 0x000015DF, 0xFFFFFB79, 0x000002B7, 0x000015DF, 0xFFFFFB79, 0x000002B7 },
+       { 0x0213EA94DE204924, 0x00001FE9, 0xFFFFF64A, 0x00000353, 0x000019E8, 0xFFFFF882, 0x0000032A, 0x000019E8, 0xFFFFF882, 0x0000032A },
+       { 0x0213EA94DE063964, 0x000030B5, 0xFFFFEBB8, 0x000004C4, 0x00001857, 0xFFFFF968, 0x000002D8, 0x00001857, 0xFFFFF968, 0x000002D8 },
+       { 0x0213F0FD42CA28C4, 0x00003398, 0xFFFFE9A3, 0x00000524, 0x00001FF9, 0xFFFFF458, 0x000003AD, 0x00001FF9, 0xFFFFF458, 0x000003AD },
+       { 0x0213F0FD42CE2964, 0x00003897, 0xFFFFE5BD, 0x000005C8, 0x00002519, 0xFFFFF0BA, 0x00000438, 0x00002519, 0xFFFFF0BA, 0x00000438 },
+       { 0x0213F0FD42D04064, 0x00003234, 0xFFFFE9B1, 0x00000530, 0x000022CC, 0xFFFFF20E, 0x00000409, 0x000022CC, 0xFFFFF20E, 0x00000409 },
+       { 0x0213EA94DE205104, 0x00001FD2, 0xFFFFF641, 0x00000354, 0x000017C9, 0xFFFFF9C0, 0x000002FB, 0x000017C9, 0xFFFFF9C0, 0x000002FB },
+       { 0x0213F0FD42CE48E4, 0x00003234, 0xFFFFE946, 0x0000053D, 0x00002267, 0xFFFFF1F5, 0x0000040D, 0x00002267, 0xFFFFF1F5, 0x0000040D },
+       { 0x0213EA94DE2029A4, 0x00002330, 0xFFFFF474, 0x00000399, 0x00001490, 0xFFFFFC67, 0x00000288, 0x00001490, 0xFFFFFC67, 0x00000288 },
+       { 0x0213F0FD42D03924, 0x000032A3, 0xFFFFE9EB, 0x0000051B, 0x0000234D, 0xFFFFF23C, 0x000003F7, 0x0000234D, 0xFFFFF23C, 0x000003F7 },
+       { 0x0213EA94DE200904, 0x0000217E, 0xFFFFF53A, 0x00000384, 0x00001511, 0xFFFFFBF5, 0x0000029E, 0x00001511, 0xFFFFFBF5, 0x0000029E },
+       { 0x0213F0FD42CE50E4, 0x0000384F, 0xFFFFE562, 0x000005E2, 0x0000295A, 0xFFFFED53, 0x000004D3, 0x0000295A, 0xFFFFED53, 0x000004D3 },
+       { 0x0213F0FD42D05124, 0x00003315, 0xFFFFE8D1, 0x00000552, 0x000025D1, 0xFFFFEFAF, 0x00000471, 0x000025D1, 0xFFFFEFAF, 0x00000471 },
+       { 0x0213F0FD42C64924, 0x00004183, 0xFFFFDF61, 0x000006DA, 0x0000193C, 0xFFFFF88F, 0x000002EC, 0x0000193C, 0xFFFFF88F, 0x000002EC },
+       { 0x0213EA94DE242164, 0x00002DFC, 0xFFFFEDF2, 0x0000047A, 0x00001755, 0xFFFFFAC2, 0x000002AC, 0x00001755, 0xFFFFFAC2, 0x000002AC },
+       { 0x0213F0FD42CA31A4, 0x000033FE, 0xFFFFE774, 0x0000059F, 0x00001E70, 0xFFFFF492, 0x000003A0, 0x00001E70, 0xFFFFF492, 0x000003A0 },
+       { 0x0213F0FD42C629A4, 0x000040D7, 0xFFFFDFB8, 0x000006CE, 0x00001AC8, 0xFFFFF773, 0x0000031D, 0x00001AC8, 0xFFFFF773, 0x0000031D },
+       { 0x0213EA94DE1E1164, 0x00001D02, 0xFFFFF803, 0x00000322, 0x000015FE, 0xFFFFFB71, 0x000002BB, 0x000015FE, 0xFFFFFB71, 0x000002BB },
+       { 0x0213F0FD42D02884, 0x00002EB0, 0xFFFFEC31, 0x000004C4, 0x00001B3C, 0xFFFFF73B, 0x00000330, 0x00001B3C, 0xFFFFF73B, 0x00000330 },
+       { 0x0213F0FD42CA4984, 0x00002D9F, 0xFFFFECBF, 0x000004A8, 0x000022B0, 0xFFFFF23C, 0x000003F9, 0x000022B0, 0xFFFFF23C, 0x000003F9 },
+       { 0x0213F0FD42CC18E4, 0x00002C6A, 0xFFFFEDAC, 0x00000488, 0x00002419, 0xFFFFF159, 0x00000427, 0x00002419, 0xFFFFF159, 0x00000427 },
+       { 0x0213EA94DE1210A4, 0x00002991, 0xFFFFF06C, 0x0000040E, 0x00001AA9, 0xFFFFF8D0, 0x000002E1, 0x00001AA9, 0xFFFFF8D0, 0x000002E1 },
+       { 0x0213EA94DE123904, 0x00002F8E, 0xFFFFED1B, 0x00000493, 0x00001DE4, 0xFFFFF69C, 0x00000347, 0x00001DE4, 0xFFFFF69C, 0x00000347 },
+       { 0x0213EA94DE204184, 0x00002136, 0xFFFFF540, 0x0000037C, 0x000014FF, 0xFFFFFB83, 0x000002B2, 0x000014FF, 0xFFFFFB83, 0x000002B2 },
+       { 0x0213EA94DE0618E4, 0x0000354C, 0xFFFFE97D, 0x0000051A, 0x00001906, 0xFFFFF965, 0x000002DD, 0x00001906, 0xFFFFF965, 0x000002DD },
+       { 0x0213F0FD42C620C4, 0x0000348B, 0xFFFFE94D, 0x0000051F, 0x0000285B, 0xFFFFEF1A, 0x00000473, 0x0000285B, 0xFFFFEF1A, 0x00000473 },
+       { 0x0213EA94DE3218A4, 0x000026E6, 0xFFFFF24E, 0x000003D6, 0x0000141F, 0xFFFFFCCE, 0x00000260, 0x0000141F, 0xFFFFFCCE, 0x00000260 },
+       { 0x0213F0FD42C64164, 0x00003CED, 0xFFFFE2A5, 0x0000064E, 0x00002060, 0xFFFFF3E0, 0x000003B0, 0x00002060, 0xFFFFF3E0, 0x000003B0 },
+       { 0x0213EA94DE021084, 0x000029D4, 0xFFFFEFF7, 0x00000426, 0x00001976, 0xFFFFF8E1, 0x000002EE, 0x00001976, 0xFFFFF8E1, 0x000002EE },
+       { 0x0213F0FD42CA40A4, 0x00003767, 0xFFFFE601, 0x000005CC, 0x00001D22, 0xFFFFF5F4, 0x00000361, 0x00001D22, 0xFFFFF5F4, 0x00000361 },
+       { 0x0213F0FD42C650C4, 0x00003CE8, 0xFFFFE2E8, 0x00000637, 0x0000232C, 0xFFFFF1E7, 0x00000405, 0x0000232C, 0xFFFFF1E7, 0x00000405 },
+       { 0x0213EA94DE201064, 0x000023A8, 0xFFFFF4CD, 0x00000386, 0x00001944, 0xFFFFF983, 0x00000300, 0x00001944, 0xFFFFF983, 0x00000300 },
+       { 0x0213F0FD42CC30A4, 0x00003451, 0xFFFFE8B9, 0x00000551, 0x00001AD7, 0xFFFFF7BF, 0x00000318, 0x00001AD7, 0xFFFFF7BF, 0x00000318 },
+       { 0x0213F0FD42CE2984, 0x0000381B, 0xFFFFE5A0, 0x000005D0, 0x00001E0F, 0xFFFFF521, 0x00000382, 0x00001E0F, 0xFFFFF521, 0x00000382 },
+       { 0x0213EA94DE2038C4, 0x000023A4, 0xFFFFF4A6, 0x00000394, 0x0000171F, 0xFFFFFABB, 0x000002D9, 0x0000171F, 0xFFFFFABB, 0x000002D9 },
+       { 0x0213F0FD42C620A4, 0x00003C2B, 0xFFFFE447, 0x000005F0, 0x0000207F, 0xFFFFF44E, 0x0000039A, 0x0000207F, 0xFFFFF44E, 0x0000039A },
+       { 0x0213F0FD42CC3984, 0x00002F07, 0xFFFFEB70, 0x000004E9, 0x00001765, 0xFFFFF9A5, 0x000002C6, 0x00001765, 0xFFFFF9A5, 0x000002C6 },
+       { 0x0213F0FD42C62984, 0x00003A01, 0xFFFFE4E0, 0x000005E7, 0x0000227A, 0xFFFFF292, 0x000003E5, 0x0000227A, 0xFFFFF292, 0x000003E5 },
+       { 0x0213F0FD42CE20A4, 0x0000376E, 0xFFFFE686, 0x000005A6, 0x00001FCF, 0xFFFFF43B, 0x000003A8, 0x00001FCF, 0xFFFFF43B, 0x000003A8 },
+       { 0x0213F0FFEF5A4984, 0x0000485F, 0xFFFFDCC1, 0x00000713, 0x00002CF8, 0xFFFFEC45, 0x000004DA, 0x00002CF8, 0xFFFFEC45, 0x000004DA },
+       { 0x0213F0FFEF5C3184, 0x0000331C, 0xFFFFE8FF, 0x00000541, 0x00002366, 0xFFFFF19D, 0x00000411, 0x00002366, 0xFFFFF19D, 0x00000411 },
+       { 0x0213F0FFEF643864, 0x00003CF3, 0xFFFFE15A, 0x00000694, 0x00002FB3, 0xFFFFE827, 0x000005B9, 0x00002FB3, 0xFFFFE827, 0x000005B9 },
+       { 0x0213EA94DE321104, 0x000023F3, 0xFFFFF3EA, 0x0000039A, 0x00001345, 0xFFFFFD6B, 0x00000241, 0x00001345, 0xFFFFFD6B, 0x00000241 },
+       { 0x0213F0FFEF5C28A4, 0x000038C0, 0xFFFFE58A, 0x000005CC, 0x000023CA, 0xFFFFF1AA, 0x00000408, 0x000023CA, 0xFFFFF1AA, 0x00000408 },
+       { 0x0213F0FFEF662944, 0x00004976, 0xFFFFDD6A, 0x000006D7, 0x000033C6, 0xFFFFE8EB, 0x0000054D, 0x000033C6, 0xFFFFE8EB, 0x0000054D },
+       { 0x0213F0FFEF644904, 0x00004049, 0xFFFFDF6D, 0x000006D8, 0x00003129, 0xFFFFE716, 0x000005E9, 0x00003129, 0xFFFFE716, 0x000005E9 },
+       { 0x0213F0FFEF661164, 0x000046C2, 0xFFFFDCEB, 0x0000071C, 0x00002E6D, 0xFFFFEA8F, 0x0000052E, 0x00002E6D, 0xFFFFEA8F, 0x0000052E },
+       { 0x0213F0FFEF6238A4, 0x00004080, 0xFFFFE1E1, 0x0000063A, 0x0000396D, 0xFFFFE40A, 0x0000062C, 0x0000396D, 0xFFFFE40A, 0x0000062C },
+       { 0x0213F0FFEF5E2124, 0x00003DE0, 0xFFFFE358, 0x0000060C, 0x00002AA2, 0xFFFFEDBF, 0x000004A0, 0x00002AA2, 0xFFFFEDBF, 0x000004A0 },
+       { 0x0213F0FFEF5E3144, 0x00003FC0, 0xFFFFE2A1, 0x0000061A, 0x000027D8, 0xFFFFEFEC, 0x0000043A, 0x000027D8, 0xFFFFEFEC, 0x0000043A },
+       { 0x0213F0FFEF661924, 0x00003FBF, 0xFFFFE2F5, 0x00000603, 0x000032D7, 0xFFFFE900, 0x00000552, 0x000032D7, 0xFFFFE900, 0x00000552 },
+       { 0x0213F0FFEF5C10E4, 0x000035EE, 0xFFFFE6CA, 0x000005A2, 0x0000247C, 0xFFFFF088, 0x00000446, 0x0000247C, 0xFFFFF088, 0x00000446 },
+       { 0x0213F0FFEF643884, 0x000039C8, 0xFFFFE3AE, 0x0000062A, 0x000028AF, 0xFFFFED24, 0x000004DF, 0x000028AF, 0xFFFFED24, 0x000004DF },
+       { 0x0213F0FFEF5C2884, 0x00003BDE, 0xFFFFE33B, 0x00000632, 0x00001B6C, 0xFFFFF720, 0x00000326, 0x00001B6C, 0xFFFFF720, 0x00000326 },
+       { 0x0213F0FFEF7210A4, 0x00003818, 0xFFFFE57D, 0x000005D4, 0x000020EF, 0xFFFFF327, 0x000003CE, 0x000020EF, 0xFFFFF327, 0x000003CE },
+       { 0x0213F0FFEF5E19A4, 0x000038DA, 0xFFFFE561, 0x000005D3, 0x0000297D, 0xFFFFED6D, 0x000004C5, 0x0000297D, 0xFFFFED6D, 0x000004C5 },
+       { 0x0213F0FFEF684884, 0x000027AC, 0xFFFFF0CE, 0x00000417, 0x00001F5F, 0xFFFFF484, 0x000003B2, 0x00001F5F, 0xFFFFF484, 0x000003B2 },
+       { 0x0213F0FFEF6648A4, 0x00003F02, 0xFFFFE222, 0x00000643, 0x000026D4, 0xFFFFF000, 0x00000443, 0x000026D4, 0xFFFFF000, 0x00000443 },
+       { 0x0213F0FFEF624164, 0x00004303, 0xFFFFDFE3, 0x00000690, 0x0000312C, 0xFFFFE912, 0x00000561, 0x0000312C, 0xFFFFE912, 0x00000561 },
+       { 0x0213F0FFEF600904, 0x000039E5, 0xFFFFE31F, 0x00000657, 0x00001D23, 0xFFFFF51F, 0x00000386, 0x00001D23, 0xFFFFF51F, 0x00000386 },
+       { 0x0213F0FFEF661144, 0x000041FA, 0xFFFFE01B, 0x00000697, 0x00002767, 0xFFFFEF90, 0x00000455, 0x00002767, 0xFFFFEF90, 0x00000455 },
+       { 0x0213F0FFEF6830A4, 0x00002888, 0xFFFFF11C, 0x00000403, 0x00001864, 0xFFFFF9D8, 0x000002D3, 0x00001864, 0xFFFFF9D8, 0x000002D3 },
+       { 0x0213EA94DE201864, 0x0000215C, 0xFFFFF5B6, 0x0000036D, 0x000015C5, 0xFFFFFB8A, 0x000002B5, 0x000015C5, 0xFFFFFB8A, 0x000002B5 },
+       { 0x0213F0FFEF683984, 0x00002FAF, 0xFFFFEC27, 0x000004CA, 0x00002184, 0xFFFFF39C, 0x000003CD, 0x00002184, 0xFFFFF39C, 0x000003CD },
+       { 0x0213F0FFEF5E10C4, 0x00004ACE, 0xFFFFD9A3, 0x000007BC, 0x00001A5D, 0xFFFFF7F6, 0x000002FC, 0x00001A5D, 0xFFFFF7F6, 0x000002FC },
+       { 0x0213F0FFEF5A3044, 0x00003763, 0xFFFFE797, 0x0000055F, 0x000029B5, 0xFFFFEEA1, 0x00000474, 0x000029B5, 0xFFFFEEA1, 0x00000474 },
+       { 0x0213F0FFEF5E3164, 0x00003832, 0xFFFFE6F9, 0x00000575, 0x00002C99, 0xFFFFEC42, 0x000004E3, 0x00002C99, 0xFFFFEC42, 0x000004E3 },
+       { 0x0213F0FFEF604164, 0x000041C9, 0xFFFFDE33, 0x0000071E, 0x0000199D, 0xFFFFF808, 0x000002F9, 0x0000199D, 0xFFFFF808, 0x000002F9 },
+       { 0x0213F0FFEF641164, 0x0000474A, 0xFFFFD96E, 0x00000802, 0x00002A30, 0xFFFFEB57, 0x0000053F, 0x00002A30, 0xFFFFEB57, 0x0000053F },
+       { 0x0213F0FFEF5C31C4, 0x0000312F, 0xFFFFEA6A, 0x00000508, 0x000029D3, 0xFFFFED38, 0x000004D3, 0x000029D3, 0xFFFFED38, 0x000004D3 },
+       { 0x0213F0FFEF7210C4, 0x00003BD6, 0xFFFFE2E7, 0x00000644, 0x00002093, 0xFFFFF37B, 0x000003BD, 0x00002093, 0xFFFFF37B, 0x000003BD },
+       { 0x0213F0FFEF6840E4, 0x00002F94, 0xFFFFECD4, 0x000004A3, 0x00002196, 0xFFFFF40B, 0x000003B5, 0x00002196, 0xFFFFF40B, 0x000003B5 },
+       { 0x0213F0FFEF5E1944, 0x0000369B, 0xFFFFE762, 0x00000571, 0x00002726, 0xFFFFEF99, 0x00000459, 0x00002726, 0xFFFFEF99, 0x00000459 },
+       { 0x0213F0FFEF642064, 0x00003F57, 0xFFFFDF47, 0x000006F4, 0x00002E5F, 0xFFFFE8AE, 0x000005AB, 0x00002E5F, 0xFFFFE8AE, 0x000005AB },
+       { 0x0213EA94DE0A40C4, 0x00004313, 0xFFFFDD81, 0x0000072D, 0x00002468, 0xFFFFF068, 0x00000440, 0x00002468, 0xFFFFF068, 0x00000440 },
+       { 0x0213F0FFEF683044, 0x00002A35, 0xFFFFEFA8, 0x00000441, 0x00001F3F, 0xFFFFF4F3, 0x000003A0, 0x00001F3F, 0xFFFFF4F3, 0x000003A0 },
+       { 0x0213F0FFEF6630A4, 0x00003E33, 0xFFFFE4B0, 0x000005AF, 0x00002802, 0xFFFFF092, 0x00000412, 0x00002802, 0xFFFFF092, 0x00000412 },
+       { 0x0213EA94DE323904, 0x00002815, 0xFFFFF20E, 0x000003DD, 0x00001C33, 0xFFFFF7D5, 0x0000032A, 0x00001C33, 0xFFFFF7D5, 0x0000032A },
+       { 0x0213F0FFEF5A2184, 0x00003CC2, 0xFFFFE43E, 0x000005DE, 0x00002C16, 0xFFFFECED, 0x000004BA, 0x00002C16, 0xFFFFECED, 0x000004BA },
+       { 0x0213F0FFEF5C4084, 0x00003CFA, 0xFFFFE1EE, 0x00000673, 0x00001F7D, 0xFFFFF402, 0x000003AE, 0x00001F7D, 0xFFFFF402, 0x000003AE },
+       { 0x0213F0FFEF622104, 0x0000486E, 0xFFFFDD43, 0x000006EE, 0x000036F0, 0xFFFFE609, 0x000005D5, 0x000036F0, 0xFFFFE609, 0x000005D5 },
+       { 0x0213F0FFEF5C4964, 0x000039FE, 0xFFFFE41F, 0x00000613, 0x0000266C, 0xFFFFEF35, 0x0000047D, 0x0000266C, 0xFFFFEF35, 0x0000047D },
+       { 0x0213EA94DE123124, 0x00002EA4, 0xFFFFEE3B, 0x00000462, 0x00002126, 0xFFFFF4E2, 0x0000038F, 0x00002126, 0xFFFFF4E2, 0x0000038F },
+       { 0x0213F0FFEF683944, 0x00002D2E, 0xFFFFEE7B, 0x00000462, 0x0000229D, 0xFFFFF363, 0x000003D4, 0x0000229D, 0xFFFFF363, 0x000003D4 },
+       { 0x0213F0FFEF5E2844, 0x0000375C, 0xFFFFE695, 0x0000059D, 0x00002319, 0xFFFFF237, 0x000003EE, 0x00002319, 0xFFFFF237, 0x000003EE },
+       { 0x0213F0FFEF7250C4, 0x00004522, 0xFFFFDC71, 0x0000075E, 0x0000247E, 0xFFFFF0A0, 0x0000043C, 0x0000247E, 0xFFFFF0A0, 0x0000043C },
+       { 0x0213EA94DE1248E4, 0x00002E58, 0xFFFFECB9, 0x000004A9, 0x0000199A, 0xFFFFF8CF, 0x000002E9, 0x0000199A, 0xFFFFF8CF, 0x000002E9 },
+       { 0x0213F0FFEF6438E4, 0x00003791, 0xFFFFE5FE, 0x000005B6, 0x000029F5, 0xFFFFED0D, 0x000004CD, 0x000029F5, 0xFFFFED0D, 0x000004CD },
+       { 0x0213EA94DE244144, 0x00002E9E, 0xFFFFEC8D, 0x000004C1, 0x000019D0, 0xFFFFF869, 0x0000030F, 0x000019D0, 0xFFFFF869, 0x0000030F },
+       { 0x0213EA94DE203964, 0x0000237C, 0xFFFFF435, 0x000003A6, 0x000014EB, 0xFFFFFBC4, 0x000002AF, 0x000014EB, 0xFFFFFBC4, 0x000002AF },
+       { 0x0213F0FFEF662924, 0x00003FE5, 0xFFFFE4A2, 0x000005A0, 0x00003416, 0xFFFFE995, 0x00000523, 0x00003416, 0xFFFFE995, 0x00000523 },
+       { 0x0213F0FFEF5C0924, 0x00002B27, 0xFFFFED51, 0x000004A5, 0x000025D1, 0xFFFFEF18, 0x00000492, 0x000025D1, 0xFFFFEF18, 0x00000492 },
+       { 0x0213F0FFEF684904, 0x00002D77, 0xFFFFED79, 0x00000494, 0x00002196, 0xFFFFF352, 0x000003DE, 0x00002196, 0xFFFFF352, 0x000003DE },
+       { 0x0213F0FFEF5C20C4, 0x00003750, 0xFFFFE6AC, 0x00000596, 0x00002524, 0xFFFFF0B5, 0x00000431, 0x00002524, 0xFFFFF0B5, 0x00000431 },
+       { 0x0213EA94DE122944, 0x00002896, 0xFFFFF1BB, 0x000003D9, 0x00001CE0, 0xFFFFF753, 0x0000032F, 0x00001CE0, 0xFFFFF753, 0x0000032F },
+       { 0x0213F0FFEF641984, 0x00003CA7, 0xFFFFE0F7, 0x000006B1, 0x00002CB8, 0xFFFFE9AB, 0x00000587, 0x00002CB8, 0xFFFFE9AB, 0x00000587 },
+       { 0x0213EA94DE322864, 0x00002513, 0xFFFFF323, 0x000003BC, 0x00001965, 0xFFFFF93C, 0x000002F0, 0x00001965, 0xFFFFF93C, 0x000002F0 },
+       { 0x0213F0FFEF662164, 0x00003914, 0xFFFFE683, 0x00000586, 0x00003120, 0xFFFFE9A6, 0x00000543, 0x00003120, 0xFFFFE9A6, 0x00000543 },
+       { 0x0213F0FFEF643904, 0x000040D0, 0xFFFFE007, 0x000006AC, 0x00002B9E, 0xFFFFEBF5, 0x000004FB, 0x00002B9E, 0xFFFFEBF5, 0x000004FB },
+       { 0x0213F0FFEF5A4884, 0x00004412, 0xFFFFDF5F, 0x000006A9, 0x00002A9E, 0xFFFFEDCE, 0x00000498, 0x00002A9E, 0xFFFFEDCE, 0x00000498 },
+       { 0x0213F0FFEF624884, 0x000042A6, 0xFFFFDFEF, 0x00000696, 0x00002E65, 0xFFFFEAAE, 0x00000529, 0x00002E65, 0xFFFFEAAE, 0x00000529 },
+       { 0x0213EA94DE322124, 0x000022E8, 0xFFFFF565, 0x0000035F, 0x00001890, 0xFFFFFA61, 0x000002C6, 0x00001890, 0xFFFFFA61, 0x000002C6 },
+       { 0x0213F0FFEF6239A4, 0x00004637, 0xFFFFDDD8, 0x000006E9, 0x0000349D, 0xFFFFE6C8, 0x000005C7, 0x0000349D, 0xFFFFE6C8, 0x000005C7 },
+       { 0x0213EA94DE263904, 0x00004686, 0xFFFFDC58, 0x0000073D, 0x00003972, 0xFFFFE27B, 0x0000068E, 0x00003972, 0xFFFFE27B, 0x0000068E },
+       { 0x0213F0FFEF6808E4, 0x00002B35, 0xFFFFEE9C, 0x0000046C, 0x00001F5B, 0xFFFFF4A3, 0x000003A9, 0x00001F5B, 0xFFFFF4A3, 0x000003A9 },
+       { 0x0213F0FFEF724144, 0x00003AC9, 0xFFFFE3B2, 0x0000061B, 0x000023A1, 0xFFFFF170, 0x0000040F, 0x000023A1, 0xFFFFF170, 0x0000040F },
+       { 0x0213F0FFEF5E1884, 0x00003C50, 0xFFFFE37E, 0x00000617, 0x0000218F, 0xFFFFF339, 0x000003C4, 0x0000218F, 0xFFFFF339, 0x000003C4 },
+       { 0x0213F0FFEF663044, 0x00003793, 0xFFFFE761, 0x0000055D, 0x000029C7, 0xFFFFEE03, 0x00000496, 0x000029C7, 0xFFFFEE03, 0x00000496 },
+       { 0x0213F0FFEF6438A4, 0x000040B5, 0xFFFFDF78, 0x000006DA, 0x00002DED, 0xFFFFEA20, 0x00000551, 0x00002DED, 0xFFFFEA20, 0x00000551 },
+       { 0x0213F0FFEF601144, 0x000039D6, 0xFFFFE37D, 0x0000063C, 0x00001AED, 0xFFFFF6E2, 0x00000331, 0x00001AED, 0xFFFFF6E2, 0x00000331 },
+       { 0x0213F0FFEF662144, 0x0000431F, 0xFFFFE09B, 0x0000066A, 0x00002BDF, 0xFFFFED93, 0x00000496, 0x00002BDF, 0xFFFFED93, 0x00000496 },
+       { 0x0213F0FFEF623864, 0x00004887, 0xFFFFDC65, 0x00000721, 0x00003669, 0xFFFFE5C4, 0x000005E9, 0x00003669, 0xFFFFE5C4, 0x000005E9 },
+       { 0x0213F0FFEF640924, 0x00004120, 0xFFFFDDAE, 0x00000748, 0x0000303B, 0xFFFFE70D, 0x000005FC, 0x0000303B, 0xFFFFE70D, 0x000005FC },
+       { 0x0213F0FFEF5E28A4, 0x0000415D, 0xFFFFE0BE, 0x0000067B, 0x00002FA7, 0xFFFFEA28, 0x00000538, 0x00002FA7, 0xFFFFEA28, 0x00000538 },
+       { 0x0213F0FFEF681904, 0x00002B12, 0xFFFFEFF9, 0x00000428, 0x00001DDA, 0xFFFFF693, 0x00000356, 0x00001DDA, 0xFFFFF693, 0x00000356 },
+       { 0x0213F0FFEF5E3184, 0x00003ED3, 0xFFFFE28D, 0x0000062D, 0x00002B00, 0xFFFFED4E, 0x000004B3, 0x00002B00, 0xFFFFED4E, 0x000004B3 },
+       { 0x0213F0FFEF6250A4, 0x00004218, 0xFFFFE039, 0x0000068F, 0x00002F84, 0xFFFFEA0C, 0x00000541, 0x00002F84, 0xFFFFEA0C, 0x00000541 },
+       { 0x0213F0FFEF5A3844, 0x00003FF5, 0xFFFFE2A3, 0x00000617, 0x00003017, 0xFFFFEA7A, 0x00000520, 0x00003017, 0xFFFFEA7A, 0x00000520 },
+       { 0x0213F0FFEF5A08A4, 0x00004304, 0xFFFFDFCC, 0x0000069E, 0x00002E0C, 0xFFFFEB51, 0x00000505, 0x00002E0C, 0xFFFFEB51, 0x00000505 },
+       { 0x0213F0FFEF641944, 0x00003D3A, 0xFFFFE17F, 0x00000687, 0x0000284C, 0xFFFFED83, 0x000004CD, 0x0000284C, 0xFFFFED83, 0x000004CD },
+       { 0x0213F0FFEF5E40A4, 0x000042F5, 0xFFFFDF76, 0x000006B2, 0x000027B6, 0xFFFFEF72, 0x00000455, 0x000027B6, 0xFFFFEF72, 0x00000455 },
+       { 0x0213F0FFEF5C38C4, 0x00004267, 0xFFFFDF29, 0x000006D5, 0x0000298F, 0xFFFFEDBD, 0x000004AC, 0x0000298F, 0xFFFFEDBD, 0x000004AC },
+       { 0x0213EA94DE240924, 0x0000303E, 0xFFFFEC00, 0x000004CB, 0x000021CD, 0xFFFFF36E, 0x000003D6, 0x000021CD, 0xFFFFF36E, 0x000003D6 },
+       { 0x0213F0FFEF5E28C4, 0x00003127, 0xFFFFEBDB, 0x000004A6, 0x00002E95, 0xFFFFEB78, 0x000004F3, 0x00002E95, 0xFFFFEB78, 0x000004F3 },
+       { 0x0213EA94DE1C1064, 0x00002655, 0xFFFFF2D9, 0x000003CF, 0x000019F5, 0xFFFFF8E7, 0x00000313, 0x000019F5, 0xFFFFF8E7, 0x00000313 },
+       { 0x0213EA94DE164084, 0x00002372, 0xFFFFF449, 0x0000039B, 0x00001544, 0xFFFFFC16, 0x0000028B, 0x00001544, 0xFFFFFC16, 0x0000028B },
+       { 0x0213F0FFEF6628C4, 0x0000348E, 0xFFFFEB20, 0x000004B2, 0x00002BE8, 0xFFFFEE80, 0x00000467, 0x00002BE8, 0xFFFFEE80, 0x00000467 },
+       { 0x0213F0FFEF5E1104, 0x00004092, 0xFFFFE073, 0x0000069B, 0x00002061, 0xFFFFF403, 0x000003A0, 0x00002061, 0xFFFFF403, 0x000003A0 },
+       { 0x0213F0FFEF7220E4, 0x000039D1, 0xFFFFE55D, 0x000005CC, 0x000025CB, 0xFFFFF0C0, 0x00000428, 0x000025CB, 0xFFFFF0C0, 0x00000428 },
+       { 0x0213F0FFEF5E4884, 0x000042AA, 0xFFFFDF68, 0x000006C2, 0x0000290B, 0xFFFFEE78, 0x00000485, 0x0000290B, 0xFFFFEE78, 0x00000485 },
+       { 0x0213F0FFEF7218C4, 0x0000356F, 0xFFFFE7AC, 0x0000056E, 0x00001BE8, 0xFFFFF6E3, 0x0000032A, 0x00001BE8, 0xFFFFF6E3, 0x0000032A },
+       { 0x0213F0FFEF5E1144, 0x00003525, 0xFFFFE7FF, 0x0000055D, 0x0000242C, 0xFFFFF12E, 0x0000041D, 0x0000242C, 0xFFFFF12E, 0x0000041D },
+       { 0x0213F0FFEF5C48C4, 0x00003360, 0xFFFFE895, 0x00000550, 0x00002175, 0xFFFFF29E, 0x000003E9, 0x00002175, 0xFFFFF29E, 0x000003E9 },
+       { 0x0213F0FFEF6440A4, 0x00003C94, 0xFFFFE1C4, 0x0000067E, 0x00002E28, 0xFFFFE964, 0x0000057F, 0x00002E28, 0xFFFFE964, 0x0000057F },
+       { 0x0213F0FFEF724124, 0x0000431C, 0xFFFFDE4B, 0x000006FF, 0x00002270, 0xFFFFF268, 0x000003E5, 0x00002270, 0xFFFFF268, 0x000003E5 },
+       { 0x0213EA94DE1218C4, 0x00002B67, 0xFFFFF01D, 0x00000414, 0x000019FB, 0xFFFFF961, 0x000002D8, 0x000019FB, 0xFFFFF961, 0x000002D8 },
+       { 0x0213F0FFEF5E3984, 0x0000400B, 0xFFFFE13D, 0x0000066F, 0x000024F3, 0xFFFFF125, 0x00000417, 0x000024F3, 0xFFFFF125, 0x00000417 },
+       { 0x0213F0FFEF5A20A4, 0x00004460, 0xFFFFE00E, 0x0000067B, 0x000023DF, 0xFFFFF2E6, 0x000003BB, 0x000023DF, 0xFFFFF2E6, 0x000003BB },
+       { 0x0213F0FFEF641864, 0x00003AFB, 0xFFFFE2C5, 0x00000650, 0x00002D46, 0xFFFFE9C4, 0x00000571, 0x00002D46, 0xFFFFE9C4, 0x00000571 },
+       { 0x0213F0FFEF622924, 0x00005482, 0xFFFFD5BC, 0x0000081A, 0x00003250, 0xFFFFE961, 0x00000541, 0x00003250, 0xFFFFE961, 0x00000541 },
+       { 0x0213F0FFEF5C2944, 0x00003D27, 0xFFFFE2FA, 0x00000632, 0x00002A4D, 0xFFFFED6A, 0x000004BB, 0x00002A4D, 0xFFFFED6A, 0x000004BB },
+       { 0x0213F0FFEF6018A4, 0x00003E03, 0xFFFFE142, 0x00000690, 0x00001E08, 0xFFFFF555, 0x0000036C, 0x00001E08, 0xFFFFF555, 0x0000036C },
+       { 0x0213F0FFEF5C2064, 0x000031B5, 0xFFFFE97D, 0x00000535, 0x0000232E, 0xFFFFF166, 0x00000422, 0x0000232E, 0xFFFFF166, 0x00000422 },
+       { 0x0213F0FFEF5E18E4, 0x00003753, 0xFFFFE724, 0x00000575, 0x0000281A, 0xFFFFEF1A, 0x0000046B, 0x0000281A, 0xFFFFEF1A, 0x0000046B },
+       { 0x0213EA94DE204144, 0x00002071, 0xFFFFF5C9, 0x0000036F, 0x00001470, 0xFFFFFBF7, 0x000002A5, 0x00001470, 0xFFFFFBF7, 0x000002A5 },
+       { 0x0213F0FFEF683144, 0x00002799, 0xFFFFF223, 0x000003CF, 0x00001CD3, 0xFFFFF74A, 0x00000333, 0x00001CD3, 0xFFFFF74A, 0x00000333 },
+       { 0x0213F0FFEF6610C4, 0x000040DF, 0xFFFFE11C, 0x00000664, 0x000031D4, 0xFFFFE8BC, 0x0000056F, 0x000031D4, 0xFFFFE8BC, 0x0000056F },
+       { 0x0213F0FFEF6440C4, 0x00003A4D, 0xFFFFE3A6, 0x00000627, 0x00002871, 0xFFFFEDA0, 0x000004C0, 0x00002871, 0xFFFFEDA0, 0x000004C0 },
+       { 0x0213F0FFEF681984, 0x00002AF9, 0xFFFFEED7, 0x00000464, 0x0000219B, 0xFFFFF368, 0x000003D6, 0x0000219B, 0xFFFFF368, 0x000003D6 },
+       { 0x0213EA94DE323124, 0x000026D5, 0xFFFFF36C, 0x000003A3, 0x00001BC6, 0xFFFFF881, 0x00000311, 0x00001BC6, 0xFFFFF881, 0x00000311 },
+       { 0x0213F0FFEF5E2044, 0x0000325D, 0xFFFFEA07, 0x0000050B, 0x000026D1, 0xFFFFEFB3, 0x0000045A, 0x000026D1, 0xFFFFEFB3, 0x0000045A },
+       { 0x0213F0FFEF682864, 0x00002F75, 0xFFFFEC64, 0x000004BE, 0x00001EEB, 0xFFFFF559, 0x00000386, 0x00001EEB, 0xFFFFF559, 0x00000386 },
+       { 0x0213F0FFEF5A38A4, 0x00003C2F, 0xFFFFE541, 0x000005A3, 0x000025B6, 0xFFFFF16F, 0x000003FA, 0x000025B6, 0xFFFFF16F, 0x000003FA },
+       { 0x0213F0FFEF684924, 0x00002BC2, 0xFFFFEE89, 0x0000046A, 0x00001D04, 0xFFFFF651, 0x00000361, 0x00001D04, 0xFFFFF651, 0x00000361 },
+       { 0x0213F0FFEF6829A4, 0x00002DD0, 0xFFFFED40, 0x0000049F, 0x00001C8C, 0xFFFFF6B3, 0x00000353, 0x00001C8C, 0xFFFFF6B3, 0x00000353 },
+       { 0x0213EA94DE1C08E4, 0x000021ED, 0xFFFFF530, 0x00000380, 0x00001643, 0xFFFFFB1C, 0x000002C3, 0x00001643, 0xFFFFFB1C, 0x000002C3 },
+       { 0x0213EA94DE321904, 0x000028C7, 0xFFFFF160, 0x000003FD, 0x00001990, 0xFFFFF994, 0x000002E2, 0x00001990, 0xFFFFF994, 0x000002E2 },
+       { 0x0213F0FFEF6610A4, 0x0000431C, 0xFFFFDF9D, 0x000006A3, 0x000034A6, 0xFFFFE6B0, 0x000005C9, 0x000034A6, 0xFFFFE6B0, 0x000005C9 },
+       { 0x0213EA94DE2630A4, 0x00004115, 0xFFFFE0D6, 0x00000667, 0x000031AD, 0xFFFFE850, 0x00000585, 0x000031AD, 0xFFFFE850, 0x00000585 },
+       { 0x0213F0FFEF643924, 0x0000424A, 0xFFFFDEEC, 0x000006E1, 0x0000346A, 0xFFFFE5EA, 0x00000602, 0x0000346A, 0xFFFFE5EA, 0x00000602 },
+       { 0x0213F0FFEF661984, 0x00004990, 0xFFFFDAFA, 0x00000771, 0x00002A9C, 0xFFFFED37, 0x000004BC, 0x00002A9C, 0xFFFFED37, 0x000004BC },
+       { 0x0213F0FFEF6428A4, 0x00003858, 0xFFFFE568, 0x000005D2, 0x00003030, 0xFFFFE8B0, 0x0000058E, 0x00003030, 0xFFFFE8B0, 0x0000058E },
+       { 0x0213F0FFEF684164, 0x00001EDC, 0xFFFFF6CD, 0x00000322, 0x00001FCA, 0xFFFFF4BD, 0x0000039E, 0x00001FCA, 0xFFFFF4BD, 0x0000039E },
+       { 0x0213F0FFEF662124, 0x00004C88, 0xFFFFDBA3, 0x0000071B, 0x000030C4, 0xFFFFEAFD, 0x000004F7, 0x000030C4, 0xFFFFEAFD, 0x000004F7 },
+       { 0x0213F0FFEF680904, 0x00002B9A, 0xFFFFEE41, 0x0000047D, 0x00002131, 0xFFFFF344, 0x000003E5, 0x00002131, 0xFFFFF344, 0x000003E5 },
+       { 0x0213F0FFEF623984, 0x00003E4B, 0xFFFFE33C, 0x000005FA, 0x00003877, 0xFFFFE437, 0x0000062E, 0x00003877, 0xFFFFE437, 0x0000062E },
+       { 0x0213EA94DE322064, 0x00002376, 0xFFFFF444, 0x0000038A, 0x000017ED, 0xFFFFFA4C, 0x000002C1, 0x000017ED, 0xFFFFFA4C, 0x000002C1 },
+       { 0x0213F0FFEF661084, 0x00004517, 0xFFFFDDF4, 0x000006F2, 0x000030DC, 0xFFFFE8EF, 0x00000571, 0x000030DC, 0xFFFFE8EF, 0x00000571 },
+       { 0x0213F0FFEF681944, 0x0000270C, 0xFFFFF1F3, 0x000003DF, 0x0000207B, 0xFFFFF474, 0x000003AD, 0x0000207B, 0xFFFFF474, 0x000003AD },
+       { 0x0213F0FFEF645144, 0x00004086, 0xFFFFDF39, 0x000006E3, 0x00002A24, 0xFFFFEC2B, 0x000004FF, 0x00002A24, 0xFFFFEC2B, 0x000004FF },
+       { 0x0213F0FFEF5C3124, 0x00003BDE, 0xFFFFE45E, 0x000005EB, 0x00002CD5, 0xFFFFEC45, 0x000004DD, 0x00002CD5, 0xFFFFEC45, 0x000004DD },
+       { 0x0213F0FFEF7230E4, 0x00003803, 0xFFFFE714, 0x00000579, 0x0000288A, 0xFFFFEF21, 0x0000046B, 0x0000288A, 0xFFFFEF21, 0x0000046B },
+       { 0x0213F0FFEF601104, 0x00003F50, 0xFFFFE002, 0x000006CD, 0x00001AD4, 0xFFFFF72E, 0x0000031F, 0x00001AD4, 0xFFFFF72E, 0x0000031F },
+       { 0x0213F0FFEF6820E4, 0x00002968, 0xFFFFF100, 0x00000402, 0x00001FB5, 0xFFFFF57C, 0x0000037F, 0x00001FB5, 0xFFFFF57C, 0x0000037F },
+       { 0x0213F0FFEF662104, 0x00004283, 0xFFFFE2A7, 0x000005F5, 0x00003165, 0xFFFFEB0C, 0x000004EC, 0x00003165, 0xFFFFEB0C, 0x000004EC },
+       { 0x0213F0FFEF6431A4, 0x00004253, 0xFFFFDDA8, 0x00000732, 0x00002E5C, 0xFFFFE90A, 0x00000593, 0x00002E5C, 0xFFFFE90A, 0x00000593 },
+       { 0x0213F0FFEF5C50A4, 0x00003551, 0xFFFFE756, 0x0000058D, 0x000029A7, 0xFFFFED0C, 0x000004DE, 0x000029A7, 0xFFFFED0C, 0x000004DE },
+       { 0x0213F0FFEF6428C4, 0x00003728, 0xFFFFE604, 0x000005C4, 0x00002832, 0xFFFFEE64, 0x00000493, 0x00002832, 0xFFFFEE64, 0x00000493 },
+       { 0x0213F0FFEF623964, 0x00004796, 0xFFFFDCC8, 0x00000715, 0x000032AB, 0xFFFFE848, 0x0000057C, 0x000032AB, 0xFFFFE848, 0x0000057C },
+       { 0x0213F0FFEF6210C4, 0x000049DF, 0xFFFFDB24, 0x0000075F, 0x00003076, 0xFFFFE967, 0x0000055C, 0x00003076, 0xFFFFE967, 0x0000055C },
+       { 0x0213F0FFEF721104, 0x00003F13, 0xFFFFE099, 0x000006A8, 0x00002279, 0xFFFFF226, 0x000003F3, 0x00002279, 0xFFFFF226, 0x000003F3 },
+       { 0x0213F0FFEF6430A4, 0x00003E03, 0xFFFFE19F, 0x00000674, 0x00002D66, 0xFFFFEAA7, 0x00000537, 0x00002D66, 0xFFFFEAA7, 0x00000537 },
+       { 0x0213F0FFEF5C4104, 0x000037DA, 0xFFFFE63F, 0x000005A7, 0x00002543, 0xFFFFF0A0, 0x00000431, 0x00002543, 0xFFFFF0A0, 0x00000431 },
+       { 0x0213F0FFEF624944, 0x00003D82, 0xFFFFE3F5, 0x000005D9, 0x0000332F, 0xFFFFE834, 0x00000577, 0x0000332F, 0xFFFFE834, 0x00000577 },
+       { 0x0213EA94DE1228C4, 0x00002915, 0xFFFFF1E0, 0x000003D4, 0x00002065, 0xFFFFF57B, 0x00000378, 0x00002065, 0xFFFFF57B, 0x00000378 },
+       { 0x0213F0FFEF5E4904, 0x000036FC, 0xFFFFE72D, 0x00000577, 0x00002811, 0xFFFFEF30, 0x00000464, 0x00002811, 0xFFFFEF30, 0x00000464 },
+       { 0x0213F0FFEF623184, 0x00004767, 0xFFFFDD30, 0x000006FD, 0x00003703, 0xFFFFE564, 0x000005F8, 0x00003703, 0xFFFFE564, 0x000005F8 },
+       { 0x0213F0FFEF603184, 0x00003094, 0xFFFFEAA9, 0x000004F5, 0x000022E7, 0xFFFFF200, 0x000003FB, 0x000022E7, 0xFFFFF200, 0x000003FB },
+       { 0x0213F0FFEF641144, 0x00003EF0, 0xFFFFDF83, 0x000006ED, 0x00002A27, 0xFFFFEB7C, 0x00000537, 0x00002A27, 0xFFFFEB7C, 0x00000537 },
+       { 0x0213F0FFEF681124, 0x0000243C, 0xFFFFF358, 0x000003AC, 0x00001DC4, 0xFFFFF5E9, 0x00000372, 0x00001DC4, 0xFFFFF5E9, 0x00000372 },
+       { 0x0213F0FFEF722144, 0x0000284B, 0xFFFFF036, 0x0000040F, 0x00001FCD, 0xFFFFF445, 0x00000395, 0x00001FCD, 0xFFFFF445, 0x00000395 },
+       { 0x0213F0FFEF6840C4, 0x00002611, 0xFFFFF285, 0x000003C7, 0x00001CFE, 0xFFFFF6A0, 0x00000355, 0x00001CFE, 0xFFFFF6A0, 0x00000355 },
+       { 0x0213EA94DE1C39A4, 0x00002292, 0xFFFFF49F, 0x00000393, 0x000017F4, 0xFFFFF9CD, 0x000002F5, 0x000017F4, 0xFFFFF9CD, 0x000002F5 },
+       { 0x0213F0FFEF5E38A4, 0x000037F3, 0xFFFFE68D, 0x00000590, 0x00002443, 0xFFFFF1AD, 0x000003FA, 0x00002443, 0xFFFFF1AD, 0x000003FA },
+       { 0x0213F0FFEF682144, 0x00002C01, 0xFFFFEF3F, 0x00000444, 0x0000210A, 0xFFFFF475, 0x000003A7, 0x0000210A, 0xFFFFF475, 0x000003A7 },
+       { 0x0213EA94DE1210E4, 0x00002C0E, 0xFFFFEF0F, 0x00000446, 0x00001A82, 0xFFFFF8F7, 0x000002DE, 0x00001A82, 0xFFFFF8F7, 0x000002DE },
+       { 0x0213F0FFEF5E20C4, 0x00003FA6, 0xFFFFE20A, 0x0000063F, 0x00002E29, 0xFFFFEB21, 0x00000510, 0x00002E29, 0xFFFFEB21, 0x00000510 },
+       { 0x0213F0FFEF5C2164, 0x00003BCD, 0xFFFFE31B, 0x0000063C, 0x000019AF, 0xFFFFF83D, 0x000002F8, 0x000019AF, 0xFFFFF83D, 0x000002F8 },
+       { 0x0213F0FFEF664164, 0x000044C8, 0xFFFFDF08, 0x000006B0, 0x00002E2E, 0xFFFFEB62, 0x000004FD, 0x00002E2E, 0xFFFFEB62, 0x000004FD },
+       { 0x0213F0FFEF5C1884, 0x00003790, 0xFFFFE571, 0x000005E3, 0x00002042, 0xFFFFF35D, 0x000003CF, 0x00002042, 0xFFFFF35D, 0x000003CF },
+       { 0x0213F0FFEF6050E4, 0x000038AC, 0xFFFFE46C, 0x00000609, 0x0000215E, 0xFFFFF22D, 0x00000403, 0x0000215E, 0xFFFFF22D, 0x00000403 },
+       { 0x0213F0FFEF5E29A4, 0x00003A1E, 0xFFFFE536, 0x000005C9, 0x000024F3, 0xFFFFF11A, 0x0000041B, 0x000024F3, 0xFFFFF11A, 0x0000041B },
+       { 0x0213F0FFEF6650E4, 0x0000431A, 0xFFFFDF1B, 0x000006C5, 0x00002F34, 0xFFFFEA02, 0x00000545, 0x00002F34, 0xFFFFEA02, 0x00000545 },
+       { 0x0213F0FFEF641904, 0x000042DC, 0xFFFFDE28, 0x0000070C, 0x00003B53, 0xFFFFE0EA, 0x000006E2, 0x00003B53, 0xFFFFE0EA, 0x000006E2 },
+       { 0x0213F0FFEF683164, 0x0000264B, 0xFFFFF29A, 0x000003C4, 0x000021D0, 0xFFFFF3CE, 0x000003C4, 0x000021D0, 0xFFFFF3CE, 0x000003C4 },
+       { 0x0213F0FFEF5A4064, 0x00004225, 0xFFFFE0E8, 0x00000665, 0x00002B53, 0xFFFFED89, 0x0000049F, 0x00002B53, 0xFFFFED89, 0x0000049F },
+       { 0x0213EA94DE204924, 0x00001FCC, 0xFFFFF63F, 0x00000358, 0x000019E8, 0xFFFFF882, 0x0000032A, 0x000019E8, 0xFFFFF882, 0x0000032A },
+       { 0x0213F0FFEF6240A4, 0x000045E0, 0xFFFFDDD0, 0x000006ED, 0x00003193, 0xFFFFE8BD, 0x00000572, 0x00003193, 0xFFFFE8BD, 0x00000572 },
+       { 0x0213F0FFEF683924, 0x000024FC, 0xFFFFF366, 0x000003A6, 0x00001FE8, 0xFFFFF509, 0x00000394, 0x00001FE8, 0xFFFFF509, 0x00000394 },
+       { 0x0213F0FFEF5C4884, 0x0000378F, 0xFFFFE54B, 0x000005F1, 0x00001C9B, 0xFFFFF5C7, 0x00000368, 0x00001C9B, 0xFFFFF5C7, 0x00000368 },
+       { 0x0213F0FFEF6418A4, 0x00003CF3, 0xFFFFE15A, 0x00000694, 0x00002CDD, 0xFFFFEA44, 0x00000557, 0x00002CDD, 0xFFFFEA44, 0x00000557 },
+       { 0x0213EA94DE200904, 0x000021EC, 0xFFFFF4F4, 0x0000038F, 0x00001511, 0xFFFFFBF5, 0x0000029E, 0x00001511, 0xFFFFFBF5, 0x0000029E },
+       { 0x0213F0FFEF6010A4, 0x00003C8A, 0xFFFFE1C1, 0x00000685, 0x000019C7, 0xFFFFF7E2, 0x00000301, 0x000019C7, 0xFFFFF7E2, 0x00000301 },
+       { 0x0213F0FFEF5E2064, 0x00003908, 0xFFFFE5C7, 0x000005B3, 0x00002793, 0xFFFFEF46, 0x00000465, 0x00002793, 0xFFFFEF46, 0x00000465 },
+       { 0x0213F0FFEF605104, 0x000040A3, 0xFFFFDE61, 0x00000725, 0x00002077, 0xFFFFF2CE, 0x000003E8, 0x00002077, 0xFFFFF2CE, 0x000003E8 },
+       { 0x0213F0FFEF664144, 0x00003DCA, 0xFFFFE34D, 0x00000608, 0x00002D66, 0xFFFFEBDF, 0x000004E8, 0x00002D66, 0xFFFFEBDF, 0x000004E8 },
+       { 0x0213F0FFEF5E50C4, 0x00003085, 0xFFFFEB70, 0x000004C8, 0x000029B1, 0xFFFFEDD9, 0x000004A5, 0x000029B1, 0xFFFFEDD9, 0x000004A5 },
+       { 0x0213EA94DE083884, 0x00004C73, 0xFFFFD676, 0x0000086C, 0x0000280A, 0xFFFFED89, 0x000004C2, 0x0000280A, 0xFFFFED89, 0x000004C2 },
+       { 0x0213EA94DE242164, 0x00002CE5, 0xFFFFEE8C, 0x00000466, 0x00001755, 0xFFFFFAC2, 0x000002AC, 0x00001755, 0xFFFFFAC2, 0x000002AC },
+       { 0x0213F0FFEF621124, 0x0000489F, 0xFFFFDBF1, 0x0000073E, 0x0000332D, 0xFFFFE786, 0x000005AD, 0x0000332D, 0xFFFFE786, 0x000005AD },
+       { 0x0213F0FFEF602864, 0x00003D09, 0xFFFFE193, 0x00000689, 0x00001E82, 0xFFFFF4C0, 0x00000386, 0x00001E82, 0xFFFFF4C0, 0x00000386 },
+       { 0x0213F0FFEF644104, 0x00003E4C, 0xFFFFE131, 0x00000689, 0x00002F4E, 0xFFFFE925, 0x0000057B, 0x00002F4E, 0xFFFFE925, 0x0000057B },
+       { 0x0213F0FFEF5A4084, 0x00003B31, 0xFFFFE53F, 0x000005B3, 0x0000248A, 0xFFFFF211, 0x000003DF, 0x0000248A, 0xFFFFF211, 0x000003DF },
+       { 0x0213F0FFEF644124, 0x000038DD, 0xFFFFE54A, 0x000005C9, 0x00002B6D, 0xFFFFEBDF, 0x00000502, 0x00002B6D, 0xFFFFEBDF, 0x00000502 },
+       { 0x0213F0FFEF684064, 0x00002698, 0xFFFFF1A8, 0x000003F2, 0x00002163, 0xFFFFF34B, 0x000003E3, 0x00002163, 0xFFFFF34B, 0x000003E3 },
+       { 0x0213EA94DE201064, 0x000023A8, 0xFFFFF4CD, 0x00000386, 0x00001944, 0xFFFFF983, 0x00000300, 0x00001944, 0xFFFFF983, 0x00000300 },
+       { 0x0213F0FFEF6418C4, 0x00003EAF, 0xFFFFE0C3, 0x000006A0, 0x000030AB, 0xFFFFE829, 0x000005A6, 0x000030AB, 0xFFFFE829, 0x000005A6 },
+       { 0x0213F0FFEF684944, 0x00002E89, 0xFFFFECA6, 0x000004B6, 0x00001FA0, 0xFFFFF4A8, 0x000003A3, 0x00001FA0, 0xFFFFF4A8, 0x000003A3 },
+       { 0x0213F0FFEF6828A4, 0x000028A4, 0xFFFFF112, 0x00000402, 0x00001F7C, 0xFFFFF545, 0x0000038A, 0x00001F7C, 0xFFFFF545, 0x0000038A },
+       { 0x0213F0FFEF6650A4, 0x00004135, 0xFFFFDFA2, 0x000006C5, 0x0000324C, 0xFFFFE7AA, 0x000005AF, 0x0000324C, 0xFFFFE7AA, 0x000005AF },
+       { 0x0213EA94DE2038C4, 0x00002012, 0xFFFFF693, 0x00000352, 0x0000171F, 0xFFFFFABB, 0x000002D9, 0x0000171F, 0xFFFFFABB, 0x000002D9 },
+       { 0x0213F0FFEF643084, 0x00003D7C, 0xFFFFE1BC, 0x00000671, 0x00002A45, 0xFFFFEC84, 0x000004EC, 0x00002A45, 0xFFFFEC84, 0x000004EC },
+       { 0x0213F0FFEF723064, 0x00004172, 0xFFFFDF58, 0x000006DA, 0x00002504, 0xFFFFF0A6, 0x00000431, 0x00002504, 0xFFFFF0A6, 0x00000431 },
+       { 0x0213F0FE99281944, 0x000029C7, 0xFFFFF087, 0x00000414, 0x00001DCB, 0xFFFFF675, 0x0000035F, 0x00001DCB, 0xFFFFF675, 0x0000035F },
+       { 0x0213F0FE992A29A4, 0x000027F0, 0xFFFFF05A, 0x00000432, 0x00001707, 0xFFFFFA0E, 0x000002D1, 0x00001707, 0xFFFFFA0E, 0x000002D1 },
+       { 0x0213F0FE99222144, 0x00003279, 0xFFFFE9F7, 0x00000511, 0x00001B5E, 0xFFFFF787, 0x00000317, 0x00001B5E, 0xFFFFF787, 0x00000317 },
+       { 0x0213F0FE99322184, 0x000030A5, 0xFFFFEABC, 0x000004FF, 0x000019D1, 0xFFFFF83C, 0x00000304, 0x000019D1, 0xFFFFF83C, 0x00000304 },
+       { 0x0213F0FE99282844, 0x0000283B, 0xFFFFF122, 0x00000402, 0x000019C2, 0xFFFFF8E9, 0x000002FB, 0x000019C2, 0xFFFFF8E9, 0x000002FB },
+       { 0x0213F0FE992C2084, 0x00003376, 0xFFFFE9E1, 0x00000510, 0x000021A7, 0xFFFFF39F, 0x000003BF, 0x000021A7, 0xFFFFF39F, 0x000003BF },
+       { 0x0213F0FE993218C4, 0x000031D2, 0xFFFFEA9C, 0x000004FC, 0x00001F66, 0xFFFFF4E4, 0x00000390, 0x00001F66, 0xFFFFF4E4, 0x00000390 },
+       { 0x0213F0FE991A3864, 0x00003006, 0xFFFFEB18, 0x000004F2, 0x000019B3, 0xFFFFF84E, 0x00000301, 0x000019B3, 0xFFFFF84E, 0x00000301 },
+       { 0x0213F0FE993039A4, 0x0000364F, 0xFFFFE81F, 0x00000556, 0x00002AC9, 0xFFFFED87, 0x000004BD, 0x00002AC9, 0xFFFFED87, 0x000004BD },
+       { 0x0213F0FE992E3844, 0x00003043, 0xFFFFEBAE, 0x000004CD, 0x00001B0C, 0xFFFFF7ED, 0x0000030C, 0x00001B0C, 0xFFFFF7ED, 0x0000030C },
+       { 0x0213F0FE993048A4, 0x000037CE, 0xFFFFE69E, 0x00000596, 0x0000276B, 0xFFFFEF65, 0x0000046E, 0x0000276B, 0xFFFFEF65, 0x0000046E },
+       { 0x0213F0FE992C3104, 0x00003063, 0xFFFFED5E, 0x0000046F, 0x000024AE, 0xFFFFF2C4, 0x000003D8, 0x000024AE, 0xFFFFF2C4, 0x000003D8 },
+       { 0x0213F0FE992E08A4, 0x00002F5D, 0xFFFFEBDC, 0x000004D3, 0x00001EDB, 0xFFFFF50F, 0x0000038E, 0x00001EDB, 0xFFFFF50F, 0x0000038E },
+       { 0x0213F0FE992E48A4, 0x00003148, 0xFFFFEA9A, 0x000004FB, 0x0000192D, 0xFFFFF8E9, 0x000002DF, 0x0000192D, 0xFFFFF8E9, 0x000002DF },
+       { 0x0213F0FE992C2064, 0x00003682, 0xFFFFE7E4, 0x0000055C, 0x0000250E, 0xFFFFF150, 0x0000041A, 0x0000250E, 0xFFFFF150, 0x0000041A },
+       { 0x0213F0FE992A2084, 0x0000284E, 0xFFFFF15A, 0x000003F8, 0x00001CE2, 0xFFFFF6F9, 0x0000034F, 0x00001CE2, 0xFFFFF6F9, 0x0000034F },
+       { 0x0213F0FE993018A4, 0x00003171, 0xFFFFEAE9, 0x000004ED, 0x00001F40, 0xFFFFF513, 0x00000384, 0x00001F40, 0xFFFFF513, 0x00000384 },
+       { 0x0213F0FE99323044, 0x000031BD, 0xFFFFEA64, 0x0000050A, 0x00001EFD, 0xFFFFF4F7, 0x00000390, 0x00001EFD, 0xFFFFF4F7, 0x00000390 },
+       { 0x0213F0FE992E50E4, 0x00003050, 0xFFFFEB29, 0x000004EA, 0x000019B3, 0xFFFFF878, 0x000002F9, 0x000019B3, 0xFFFFF878, 0x000002F9 },
+       { 0x0213F0FE992C1904, 0x00003400, 0xFFFFE9A0, 0x0000051A, 0x00002460, 0xFFFFF1DA, 0x00000409, 0x00002460, 0xFFFFF1DA, 0x00000409 },
+       { 0x0213F0FE992C4884, 0x000034A1, 0xFFFFE86F, 0x00000558, 0x0000255D, 0xFFFFF09E, 0x00000443, 0x0000255D, 0xFFFFF09E, 0x00000443 },
+       { 0x0213F0FE992E48E4, 0x00003103, 0xFFFFEAD7, 0x000004F0, 0x00001896, 0xFFFFF95A, 0x000002CC, 0x00001896, 0xFFFFF95A, 0x000002CC },
+       { 0x0213F0FE993018E4, 0x00003120, 0xFFFFEB9E, 0x000004CB, 0x000021E8, 0xFFFFF3A2, 0x000003C1, 0x000021E8, 0xFFFFF3A2, 0x000003C1 },
+       { 0x0213F0FE991C50E4, 0x00003558, 0xFFFFE812, 0x00000565, 0x0000256E, 0xFFFFF097, 0x00000447, 0x0000256E, 0xFFFFF097, 0x00000447 },
+       { 0x0213F0FE991A2844, 0x00002DA8, 0xFFFFECA8, 0x000004B7, 0x0000180B, 0xFFFFF96D, 0x000002D8, 0x0000180B, 0xFFFFF96D, 0x000002D8 },
+       { 0x0213F0FE992E3064, 0x00003232, 0xFFFFEA66, 0x000004FF, 0x00001DDE, 0xFFFFF5FE, 0x0000035A, 0x00001DDE, 0xFFFFF5FE, 0x0000035A },
+       { 0x0213F0FE993050E4, 0x000034D2, 0xFFFFE89F, 0x00000548, 0x0000246C, 0xFFFFF17F, 0x00000418, 0x0000246C, 0xFFFFF17F, 0x00000418 },
+       { 0x0213F0FE99304904, 0x000033EC, 0xFFFFE954, 0x0000052A, 0x00002323, 0xFFFFF279, 0x000003EE, 0x00002323, 0xFFFFF279, 0x000003EE },
+       { 0x0213F0FE99303884, 0x000033AA, 0xFFFFE955, 0x0000052D, 0x0000229F, 0xFFFFF2B2, 0x000003E7, 0x0000229F, 0xFFFFF2B2, 0x000003E7 },
+       { 0x0213F0FE99324964, 0x00003258, 0xFFFFE9AA, 0x0000052A, 0x00001D5F, 0xFFFFF5D1, 0x0000036B, 0x00001D5F, 0xFFFFF5D1, 0x0000036B },
+       { 0x0213F0FE993029A4, 0x0000323A, 0xFFFFEA5F, 0x00000504, 0x00002108, 0xFFFFF3D5, 0x000003BA, 0x00002108, 0xFFFFF3D5, 0x000003BA },
+       { 0x0213F0FE992C2184, 0x00003216, 0xFFFFEA6B, 0x000004FF, 0x00001D6E, 0xFFFFF640, 0x00000350, 0x00001D6E, 0xFFFFF640, 0x00000350 },
+       { 0x0213F0FE993210E4, 0x000030C5, 0xFFFFEAC4, 0x000004FC, 0x00001924, 0xFFFFF8C2, 0x000002EE, 0x00001924, 0xFFFFF8C2, 0x000002EE },
+       { 0x0213F0FE99305104, 0x000032BB, 0xFFFFE9F1, 0x00000515, 0x00002211, 0xFFFFF31B, 0x000003D5, 0x00002211, 0xFFFFF31B, 0x000003D5 },
+       { 0x0213F0FE993048C4, 0x0000352C, 0xFFFFE85B, 0x00000553, 0x00002410, 0xFFFFF1B4, 0x0000040F, 0x00002410, 0xFFFFF1B4, 0x0000040F },
+       { 0x0213F0FE992238C4, 0x000036A0, 0xFFFFE7E8, 0x0000055D, 0x00002901, 0xFFFFEEB8, 0x00000489, 0x00002901, 0xFFFFEEB8, 0x00000489 },
+       { 0x0213F0FE992C3044, 0x00003340, 0xFFFFE9D9, 0x00000516, 0x00002332, 0xFFFFF27A, 0x000003F0, 0x00002332, 0xFFFFF27A, 0x000003F0 },
+       { 0x0213F0FE991A38A4, 0x00003564, 0xFFFFE86D, 0x0000054E, 0x00002613, 0xFFFFF07C, 0x00000444, 0x00002613, 0xFFFFF07C, 0x00000444 },
+       { 0x0213F0FE99280904, 0x00002AD1, 0xFFFFEF0B, 0x0000045C, 0x00001DEA, 0xFFFFF5C8, 0x00000381, 0x00001DEA, 0xFFFFF5C8, 0x00000381 },
+       { 0x0213F0FE992220E4, 0x000035B0, 0xFFFFE846, 0x00000555, 0x000027BE, 0xFFFFEF5D, 0x00000474, 0x000027BE, 0xFFFFEF5D, 0x00000474 },
+       { 0x0213F0FE992238A4, 0x000032C4, 0xFFFFEA48, 0x00000502, 0x000022C6, 0xFFFFF2DF, 0x000003DE, 0x000022C6, 0xFFFFF2DF, 0x000003DE },
+       { 0x0213F0FE993008C4, 0x00003036, 0xFFFFEB0D, 0x000004F9, 0x00001FE8, 0xFFFFF41A, 0x000003BC, 0x00001FE8, 0xFFFFF41A, 0x000003BC },
+       { 0x0213F0FE991A0904, 0x000030F8, 0xFFFFEA13, 0x00000524, 0x00001B6A, 0xFFFFF6C9, 0x0000034A, 0x00001B6A, 0xFFFFF6C9, 0x0000034A },
+       { 0x0213F0FE993010A4, 0x00002EE2, 0xFFFFEC0C, 0x000004CB, 0x00001A39, 0xFFFFF814, 0x0000030F, 0x00001A39, 0xFFFFF814, 0x0000030F },
+       { 0x0213F0FE991C3184, 0x00003457, 0xFFFFE924, 0x0000052A, 0x00001E9D, 0xFFFFF59C, 0x00000363, 0x00001E9D, 0xFFFFF59C, 0x00000363 },
+       { 0x0213F0FE99322844, 0x000030BF, 0xFFFFEB18, 0x000004ED, 0x00001D37, 0xFFFFF636, 0x0000035C, 0x00001D37, 0xFFFFF636, 0x0000035C },
+       { 0x0213F0FE992E4084, 0x000031AF, 0xFFFFEA75, 0x000004FE, 0x000019F2, 0xFFFFF87A, 0x000002F0, 0x000019F2, 0xFFFFF87A, 0x000002F0 },
+       { 0x0213F0FE99302884, 0x00003642, 0xFFFFE85B, 0x00000547, 0x00002975, 0xFFFFEE98, 0x0000048B, 0x00002975, 0xFFFFEE98, 0x0000048B },
+       { 0x0213F0FE992E2884, 0x00002E8B, 0xFFFFED1E, 0x0000048E, 0x000019C1, 0xFFFFF917, 0x000002D6, 0x000019C1, 0xFFFFF917, 0x000002D6 },
+       { 0x0213F0FE993241A4, 0x000033D9, 0xFFFFE8E1, 0x00000548, 0x0000224B, 0xFFFFF298, 0x000003F4, 0x0000224B, 0xFFFFF298, 0x000003F4 },
+       { 0x0213F0FE992E28C4, 0x000032BC, 0xFFFFEB0F, 0x000004D6, 0x00002488, 0xFFFFF240, 0x000003F2, 0x00002488, 0xFFFFF240, 0x000003F2 },
+       { 0x0213F0FE99304944, 0x000035FD, 0xFFFFE838, 0x00000553, 0x00002762, 0xFFFFEFBC, 0x00000460, 0x00002762, 0xFFFFEFBC, 0x00000460 },
+       { 0x0213F0FE992818A4, 0x0000268B, 0xFFFFF263, 0x000003D1, 0x00001914, 0xFFFFF977, 0x000002E8, 0x00001914, 0xFFFFF977, 0x000002E8 },
+       { 0x0213F0FE992C3184, 0x0000330B, 0xFFFFEA1E, 0x00000505, 0x000020B1, 0xFFFFF44D, 0x0000039E, 0x000020B1, 0xFFFFF44D, 0x0000039E },
+       { 0x0213F0FE99222084, 0x0000326E, 0xFFFFEA26, 0x00000508, 0x00001C17, 0xFFFFF722, 0x00000328, 0x00001C17, 0xFFFFF722, 0x00000328 },
+       { 0x0213F0FE992A31A4, 0x00002A3F, 0xFFFFEEE8, 0x0000046D, 0x00001B2B, 0xFFFFF737, 0x0000034D, 0x00001B2B, 0xFFFFF737, 0x0000034D },
+       { 0x0213F0FE992C4064, 0x00003732, 0xFFFFE765, 0x00000574, 0x00002A6D, 0xFFFFEDA8, 0x000004B7, 0x00002A6D, 0xFFFFEDA8, 0x000004B7 },
+       { 0x0213F0FE99300924, 0x000034D3, 0xFFFFE827, 0x00000569, 0x000027AA, 0xFFFFEEE7, 0x00000492, 0x000027AA, 0xFFFFEEE7, 0x00000492 },
+       { 0x0213F0FE992E40C4, 0x00003306, 0xFFFFEA39, 0x000004FC, 0x00001DCC, 0xFFFFF655, 0x00000344, 0x00001DCC, 0xFFFFF655, 0x00000344 },
+       { 0x0213F0FE99282044, 0x00002A48, 0xFFFFEFCA, 0x00000439, 0x00001DED, 0xFFFFF60D, 0x00000375, 0x00001DED, 0xFFFFF60D, 0x00000375 },
+       { 0x0213F0FE993038C4, 0x000033A3, 0xFFFFEA36, 0x000004F9, 0x0000247C, 0xFFFFF21F, 0x000003F4, 0x0000247C, 0xFFFFF21F, 0x000003F4 },
+       { 0x0213F0FE992C3164, 0x0000311B, 0xFFFFEB76, 0x000004D1, 0x00001EB1, 0xFFFFF5B6, 0x00000366, 0x00001EB1, 0xFFFFF5B6, 0x00000366 },
+       { 0x0213F0FE99324164, 0x00003307, 0xFFFFE97F, 0x0000052A, 0x00001E76, 0xFFFFF54D, 0x0000037C, 0x00001E76, 0xFFFFF54D, 0x0000037C },
+       { 0x0213F0FE991C2144, 0x0000344B, 0xFFFFE9C5, 0x00000509, 0x000020D6, 0xFFFFF486, 0x0000038F, 0x000020D6, 0xFFFFF486, 0x0000038F },
+       { 0x0213F0FE992C3144, 0x000034B9, 0xFFFFEA0B, 0x000004F7, 0x000027B3, 0xFFFFF057, 0x0000043A, 0x000027B3, 0xFFFFF057, 0x0000043A },
+       { 0x0213F0FE99301964, 0x00003360, 0xFFFFE984, 0x00000527, 0x00002238, 0xFFFFF2EE, 0x000003E0, 0x00002238, 0xFFFFF2EE, 0x000003E0 },
+       { 0x0213F0FE99302124, 0x0000315C, 0xFFFFEC05, 0x000004B1, 0x000023C8, 0xFFFFF2CC, 0x000003DE, 0x000023C8, 0xFFFFF2CC, 0x000003DE },
+       { 0x0213F0FE992C2864, 0x0000389B, 0xFFFFE6D5, 0x00000582, 0x00002C6C, 0xFFFFEC92, 0x000004DE, 0x00002C6C, 0xFFFFEC92, 0x000004DE },
+       { 0x0213F0FE992E1124, 0x00003058, 0xFFFFEB30, 0x000004E6, 0x000019B5, 0xFFFFF88B, 0x000002F1, 0x000019B5, 0xFFFFF88B, 0x000002F1 },
+       { 0x0213F0FE992E0904, 0x00002F69, 0xFFFFEB4A, 0x000004F1, 0x00001B82, 0xFFFFF6EC, 0x00000341, 0x00001B82, 0xFFFFF6EC, 0x00000341 },
+       { 0x0213F0FE991A18E4, 0x000031EB, 0xFFFFEA64, 0x00000508, 0x00002059, 0xFFFFF427, 0x000003B0, 0x00002059, 0xFFFFF427, 0x000003B0 },
+       { 0x0213F0FE99224124, 0x000033E2, 0xFFFFE94D, 0x0000052A, 0x000020BF, 0xFFFFF40B, 0x000003AB, 0x000020BF, 0xFFFFF40B, 0x000003AB },
+       { 0x0213F0FE99283184, 0x00002AF9, 0xFFFFEFE9, 0x00000427, 0x00001F72, 0xFFFFF57A, 0x00000383, 0x00001F72, 0xFFFFF57A, 0x00000383 },
+       { 0x0213F0FE992C2824, 0x00003282, 0xFFFFEA88, 0x000004FA, 0x00002561, 0xFFFFF126, 0x0000042B, 0x00002561, 0xFFFFF126, 0x0000042B },
+       { 0x0213F0FE993010E4, 0x0000308A, 0xFFFFEB5D, 0x000004E0, 0x00001E83, 0xFFFFF577, 0x00000378, 0x00001E83, 0xFFFFF577, 0x00000378 },
+       { 0x0213F0FE99324884, 0x0000336E, 0xFFFFE8C8, 0x00000553, 0x0000217C, 0xFFFFF2E1, 0x000003EB, 0x0000217C, 0xFFFFF2E1, 0x000003EB },
+       { 0x0213F0FE991A2164, 0x000034A9, 0xFFFFE838, 0x00000561, 0x000020CE, 0xFFFFF38A, 0x000003C7, 0x000020CE, 0xFFFFF38A, 0x000003C7 },
+       { 0x0213F0FE99222184, 0x00003152, 0xFFFFE9EB, 0x00000522, 0x00001755, 0xFFFFF9A9, 0x000002C6, 0x00001755, 0xFFFFF9A9, 0x000002C6 },
+       { 0x0213F0FE99281884, 0x0000286E, 0xFFFFF136, 0x000003FD, 0x00001BAB, 0xFFFFF7C3, 0x0000032C, 0x00001BAB, 0xFFFFF7C3, 0x0000032C },
+       { 0x0213F0FE99300944, 0x0000316B, 0xFFFFEA02, 0x00000528, 0x00002247, 0xFFFFF24E, 0x00000408, 0x00002247, 0xFFFFF24E, 0x00000408 },
+       { 0x0213F0FE992C08E4, 0x000034CF, 0xFFFFE83D, 0x00000562, 0x00002458, 0xFFFFF130, 0x00000430, 0x00002458, 0xFFFFF130, 0x00000430 },
+       { 0x0213F0FE992C2984, 0x00003352, 0xFFFFE9D1, 0x00000515, 0x0000212A, 0xFFFFF3DC, 0x000003B4, 0x0000212A, 0xFFFFF3DC, 0x000003B4 },
+       { 0x0213F0FE992840A4, 0x00002946, 0xFFFFF09B, 0x00000415, 0x00001DC9, 0xFFFFF650, 0x00000366, 0x00001DC9, 0xFFFFF650, 0x00000366 },
+       { 0x0213F0FE99301124, 0x00003080, 0xFFFFEB47, 0x000004E1, 0x00001BD5, 0xFFFFF73B, 0x00000329, 0x00001BD5, 0xFFFFF73B, 0x00000329 },
+       { 0x0213F0FE991A1884, 0x00002FBD, 0xFFFFEB7B, 0x000004DD, 0x000017FC, 0xFFFFF99E, 0x000002C7, 0x000017FC, 0xFFFFF99E, 0x000002C7 },
+       { 0x0213F0FE99281124, 0x00002A28, 0xFFFFF032, 0x0000041F, 0x00001B19, 0xFFFFF83A, 0x00000312, 0x00001B19, 0xFFFFF83A, 0x00000312 },
+       { 0x0213F0FE992240C4, 0x00003420, 0xFFFFE936, 0x00000530, 0x000023C2, 0xFFFFF203, 0x00000406, 0x000023C2, 0xFFFFF203, 0x00000406 },
+       { 0x0213F0FE99301144, 0x00002F7C, 0xFFFFEBBA, 0x000004D1, 0x0000185D, 0xFFFFF975, 0x000002CA, 0x0000185D, 0xFFFFF975, 0x000002CA },
+       { 0x0213F0FE992E2044, 0x00002C51, 0xFFFFEE3B, 0x0000046F, 0x000019AA, 0xFFFFF8DD, 0x000002ED, 0x000019AA, 0xFFFFF8DD, 0x000002ED },
+       { 0x0213F0FE991A4144, 0x000033D6, 0xFFFFE8F2, 0x0000053D, 0x00001D73, 0xFFFFF5FB, 0x0000035B, 0x00001D73, 0xFFFFF5FB, 0x0000035B },
+       { 0x0213F0FE99323084, 0x000031D9, 0xFFFFEAF7, 0x000004E4, 0x00001EBD, 0xFFFFF5A6, 0x00000368, 0x00001EBD, 0xFFFFF5A6, 0x00000368 },
+       { 0x0213F0FE991A20A4, 0x00003386, 0xFFFFE9CE, 0x00000515, 0x00002422, 0xFFFFF1F3, 0x00000405, 0x00002422, 0xFFFFF1F3, 0x00000405 },
+       { 0x0213F0FE992C50E4, 0x000032FB, 0xFFFFE9BC, 0x00000520, 0x00002301, 0xFFFFF267, 0x000003F7, 0x00002301, 0xFFFFF267, 0x000003F7 },
+       { 0x0213F0FE99322924, 0x000032C2, 0xFFFFEAC0, 0x000004EA, 0x0000250F, 0xFFFFF1A2, 0x00000413, 0x0000250F, 0xFFFFF1A2, 0x00000413 },
+       { 0x0213F0FE991C2944, 0x00003722, 0xFFFFE8A6, 0x00000527, 0x000026E4, 0xFFFFF0F5, 0x0000041C, 0x000026E4, 0xFFFFF0F5, 0x0000041C },
+       { 0x0213F0FE992C48C4, 0x000035A4, 0xFFFFE822, 0x00000558, 0x000022F2, 0xFFFFF288, 0x000003E8, 0x000022F2, 0xFFFFF288, 0x000003E8 },
+       { 0x0213F0FE99280924, 0x00002CD1, 0xFFFFEDC6, 0x0000048C, 0x00001EAF, 0xFFFFF53D, 0x00000396, 0x00001EAF, 0xFFFFF53D, 0x00000396 },
+       { 0x0213F0FE99301164, 0x00003156, 0xFFFFEA60, 0x0000050B, 0x00001BBC, 0xFFFFF704, 0x00000335, 0x00001BBC, 0xFFFFF704, 0x00000335 },
+       { 0x0213F0FE992C5104, 0x000034A1, 0xFFFFE8C0, 0x00000544, 0x00002528, 0xFFFFF105, 0x0000042C, 0x00002528, 0xFFFFF105, 0x0000042C },
+       { 0x0213F0FE99323064, 0x000032CE, 0xFFFFE9D3, 0x00000520, 0x000021FF, 0xFFFFF2FD, 0x000003E4, 0x000021FF, 0xFFFFF2FD, 0x000003E4 },
+       { 0x0213F0FE991A50A4, 0x000034A0, 0xFFFFE823, 0x0000056D, 0x0000256F, 0xFFFFF047, 0x0000045A, 0x0000256F, 0xFFFFF047, 0x0000045A },
+       { 0x0213F0FE99303944, 0x00003109, 0xFFFFEBD6, 0x000004BF, 0x000022D4, 0xFFFFF32D, 0x000003D0, 0x000022D4, 0xFFFFF32D, 0x000003D0 },
+       { 0x0213F0FE992C1164, 0x000030B7, 0xFFFFEAF0, 0x000004F3, 0x00001AEC, 0xFFFFF7A9, 0x0000031B, 0x00001AEC, 0xFFFFF7A9, 0x0000031B },
+       { 0x0213F0FE992C39A4, 0x00003078, 0xFFFFEBA4, 0x000004CF, 0x00001E7A, 0xFFFFF5AF, 0x0000036B, 0x00001E7A, 0xFFFFF5AF, 0x0000036B },
+       { 0x0213F0FE99304124, 0x00003442, 0xFFFFE998, 0x00000518, 0x000025EA, 0xFFFFF0F3, 0x0000042B, 0x000025EA, 0xFFFFF0F3, 0x0000042B },
+       { 0x0213F0FE993021A4, 0x000031CB, 0xFFFFEA80, 0x00000501, 0x000020A3, 0xFFFFF403, 0x000003B2, 0x000020A3, 0xFFFFF403, 0x000003B2 },
+       { 0x0213F0FE992A2984, 0x00002947, 0xFFFFF018, 0x00000433, 0x00001BA5, 0xFFFFF75C, 0x00000340, 0x00001BA5, 0xFFFFF75C, 0x00000340 },
+       { 0x0213F0FE992C3984, 0x000033F9, 0xFFFFE99D, 0x00000518, 0x00002231, 0xFFFFF358, 0x000003C5, 0x00002231, 0xFFFFF358, 0x000003C5 },
+       { 0x0213F0FE99321124, 0x00003131, 0xFFFFEA45, 0x00000513, 0x00001973, 0xFFFFF85E, 0x00000301, 0x00001973, 0xFFFFF85E, 0x00000301 },
+       { 0x0213F0FE991C29A4, 0x00003571, 0xFFFFE8AC, 0x00000539, 0x00002049, 0xFFFFF49C, 0x0000038D, 0x00002049, 0xFFFFF49C, 0x0000038D },
+       { 0x0213F0FE992E3864, 0x0000309E, 0xFFFFEB1D, 0x000004E8, 0x000019ED, 0xFFFFF86E, 0x000002F8, 0x000019ED, 0xFFFFF86E, 0x000002F8 },
+       { 0x0213F0FE99302984, 0x00003091, 0xFFFFEB9B, 0x000004CC, 0x00001D2C, 0xFFFFF6A2, 0x0000033D, 0x00001D2C, 0xFFFFF6A2, 0x0000033D },
+       { 0x0213F0FE993008E4, 0x00003069, 0xFFFFEAFD, 0x000004F8, 0x00001E82, 0xFFFFF51C, 0x0000038D, 0x00001E82, 0xFFFFF51C, 0x0000038D },
+       { 0x0213F0FE992210A4, 0x00003459, 0xFFFFE7F2, 0x00000572, 0x00001DA7, 0xFFFFF552, 0x0000037F, 0x00001DA7, 0xFFFFF552, 0x0000037F },
+       { 0x0213F0FE99321104, 0x0000304B, 0xFFFFEAFB, 0x000004F4, 0x0000191E, 0xFFFFF8BD, 0x000002EE, 0x0000191E, 0xFFFFF8BD, 0x000002EE },
+       { 0x0213F0FE993020C4, 0x0000346E, 0xFFFFEA07, 0x000004FD, 0x00002767, 0xFFFFF058, 0x00000440, 0x00002767, 0xFFFFF058, 0x00000440 },
+       { 0x0213F0FE992E3084, 0x000030B5, 0xFFFFEBC1, 0x000004C1, 0x00001B3C, 0xFFFFF818, 0x000002FD, 0x00001B3C, 0xFFFFF818, 0x000002FD },
+       { 0x0213F0FE99300904, 0x0000321F, 0xFFFFE9EA, 0x00000524, 0x00002380, 0xFFFFF1C2, 0x0000041A, 0x00002380, 0xFFFFF1C2, 0x0000041A },
+       { 0x0213F0FE992E3044, 0x000030DF, 0xFFFFEB37, 0x000004E2, 0x00001E3C, 0xFFFFF5BB, 0x00000369, 0x00001E3C, 0xFFFFF5BB, 0x00000369 },
+       { 0x0213F0FE992848A4, 0x000027E0, 0xFFFFF0E2, 0x00000416, 0x00001A6A, 0xFFFFF820, 0x00000321, 0x00001A6A, 0xFFFFF820, 0x00000321 },
+       { 0x0213F0FE991A1084, 0x00002FA1, 0xFFFFEB63, 0x000004E7, 0x0000196B, 0xFFFFF880, 0x000002FB, 0x0000196B, 0xFFFFF880, 0x000002FB },
+       { 0x0213F0FE991C1084, 0x0000310C, 0xFFFFEAAF, 0x000004FC, 0x000019EF, 0xFFFFF850, 0x000002FD, 0x000019EF, 0xFFFFF850, 0x000002FD },
+       { 0x0213F0FE99323904, 0x0000334A, 0xFFFFEA07, 0x0000050B, 0x00002380, 0xFFFFF26F, 0x000003F0, 0x00002380, 0xFFFFF26F, 0x000003F0 },
+       { 0x0213F0FE99302944, 0x00002FF9, 0xFFFFECDC, 0x00000492, 0x00002297, 0xFFFFF394, 0x000003BF, 0x00002297, 0xFFFFF394, 0x000003BF },
+       { 0x0213F0FE992C2164, 0x0000354B, 0xFFFFE894, 0x00000546, 0x000024C4, 0xFFFFF16C, 0x0000041B, 0x000024C4, 0xFFFFF16C, 0x0000041B },
+       { 0x0213F0FE99220924, 0x00003245, 0xFFFFE92F, 0x00000544, 0x00001829, 0xFFFFF8F1, 0x000002EA, 0x00001829, 0xFFFFF8F1, 0x000002EA },
+       { 0x0213F0FE992E4884, 0x0000302F, 0xFFFFEB51, 0x000004E3, 0x0000199F, 0xFFFFF894, 0x000002F4, 0x0000199F, 0xFFFFF894, 0x000002F4 },
+       { 0x0213F0FE992E18C4, 0x00002F54, 0xFFFFEC86, 0x000004A6, 0x00001A6F, 0xFFFFF891, 0x000002EC, 0x00001A6F, 0xFFFFF891, 0x000002EC },
+       { 0x0213F0FE99284164, 0x00002908, 0xFFFFF0D8, 0x0000040A, 0x00001C9B, 0xFFFFF729, 0x00000342, 0x00001C9B, 0xFFFFF729, 0x00000342 },
+       { 0x0213F0FE99302964, 0x000031D9, 0xFFFFEB40, 0x000004D7, 0x000023F5, 0xFFFFF259, 0x000003F4, 0x000023F5, 0xFFFFF259, 0x000003F4 },
+       { 0x0213F0FE993048E4, 0x000034C8, 0xFFFFE8C6, 0x0000053F, 0x00002313, 0xFFFFF280, 0x000003EC, 0x00002313, 0xFFFFF280, 0x000003EC },
+       { 0x0213F0FE993050C4, 0x000037D1, 0xFFFFE6A1, 0x0000059C, 0x00002C6A, 0xFFFFEBFF, 0x00000504, 0x00002C6A, 0xFFFFEBFF, 0x00000504 },
+       { 0x0213F0FE99321964, 0x000030E9, 0xFFFFEA6B, 0x0000050F, 0x00001A2D, 0xFFFFF7DF, 0x00000316, 0x00001A2D, 0xFFFFF7DF, 0x00000316 },
+       { 0x0213F0FE99302084, 0x0000323D, 0xFFFFEA95, 0x000004F4, 0x00001ED2, 0xFFFFF584, 0x0000036C, 0x00001ED2, 0xFFFFF584, 0x0000036C },
+       { 0x0213F0FE992C3024, 0x000033D6, 0xFFFFE9DB, 0x00000510, 0x000027A7, 0xFFFFEFC7, 0x0000045E, 0x000027A7, 0xFFFFEFC7, 0x0000045E },
+       { 0x0213F0FE991C3164, 0x00003444, 0xFFFFE98A, 0x00000517, 0x000020FD, 0xFFFFF43F, 0x0000039D, 0x000020FD, 0xFFFFF43F, 0x0000039D },
+       { 0x0213F0FE992808E4, 0x00002987, 0xFFFFEFA1, 0x0000044B, 0x00001B06, 0xFFFFF788, 0x0000033C, 0x00001B06, 0xFFFFF788, 0x0000033C },
+       { 0x0213F0FE992C28E4, 0x0000311D, 0xFFFFED20, 0x00000474, 0x000025DA, 0xFFFFF223, 0x000003F0, 0x000025DA, 0xFFFFF223, 0x000003F0 },
+       { 0x0213F0FE992C1124, 0x000032A2, 0xFFFFEA0A, 0x0000050D, 0x00001D48, 0xFFFFF659, 0x0000034A, 0x00001D48, 0xFFFFF659, 0x0000034A },
+       { 0x0213F0FE992208E4, 0x00003110, 0xFFFFE9EA, 0x00000529, 0x00001786, 0xFFFFF958, 0x000002DB, 0x00001786, 0xFFFFF958, 0x000002DB },
+       { 0x0213F0FE992821A4, 0x000027F2, 0xFFFFF174, 0x000003F7, 0x00001C7A, 0xFFFFF72A, 0x00000348, 0x00001C7A, 0xFFFFF72A, 0x00000348 },
+       { 0x0213F0FE991C10E4, 0x000031DB, 0xFFFFEA7D, 0x000004FB, 0x000019C4, 0xFFFFF8B1, 0x000002E6, 0x000019C4, 0xFFFFF8B1, 0x000002E6 },
+       { 0x0213F0FE992C1104, 0x00003158, 0xFFFFEAAC, 0x000004FA, 0x00001BC1, 0xFFFFF737, 0x0000032B, 0x00001BC1, 0xFFFFF737, 0x0000032B },
+       { 0x0213F0FE993010C4, 0x00002F36, 0xFFFFEBF9, 0x000004CA, 0x00001A2A, 0xFFFFF83F, 0x00000303, 0x00001A2A, 0xFFFFF83F, 0x00000303 },
+       { 0x0213F0FE993238A4, 0x000032B4, 0xFFFFEA72, 0x000004FA, 0x000021FF, 0xFFFFF378, 0x000003C5, 0x000021FF, 0xFFFFF378, 0x000003C5 },
+       { 0x0213F0FE99303164, 0x00003262, 0xFFFFEAFA, 0x000004DF, 0x00002441, 0xFFFFF237, 0x000003F6, 0x00002441, 0xFFFFF237, 0x000003F6 },
+       { 0x0213F0FE99303924, 0x0000336A, 0xFFFFEAFB, 0x000004D1, 0x00002746, 0xFFFFF0B8, 0x0000042B, 0x00002746, 0xFFFFF0B8, 0x0000042B },
+       { 0x0213F0FE991A4084, 0x000032E5, 0xFFFFE923, 0x00000541, 0x00001DF0, 0xFFFFF552, 0x00000380, 0x00001DF0, 0xFFFFF552, 0x00000380 },
+       { 0x0213F0FE99304064, 0x000035D1, 0xFFFFE80B, 0x0000055F, 0x00002780, 0xFFFFEF74, 0x0000046F, 0x00002780, 0xFFFFEF74, 0x0000046F },
+       { 0x0213F0FE993028A4, 0x000033EC, 0xFFFFEA48, 0x000004F4, 0x0000269F, 0xFFFFF0D8, 0x0000042A, 0x0000269F, 0xFFFFF0D8, 0x0000042A },
+       { 0x0213F0FE99323884, 0x000030C4, 0xFFFFEB39, 0x000004E2, 0x00001B44, 0xFFFFF7AA, 0x00000318, 0x00001B44, 0xFFFFF7AA, 0x00000318 },
+       { 0x0213F0FE99281144, 0x00002926, 0xFFFFF0AF, 0x0000040E, 0x0000194E, 0xFFFFF959, 0x000002E2, 0x0000194E, 0xFFFFF959, 0x000002E2 },
+       { 0x0213F0FE992C10C4, 0x00003141, 0xFFFFEAAF, 0x000004F6, 0x00001864, 0xFFFFF97C, 0x000002C6, 0x00001864, 0xFFFFF97C, 0x000002C6 },
+       { 0x0213F0FE99301064, 0x000030B2, 0xFFFFEB7C, 0x000004DB, 0x000022CE, 0xFFFFF2B5, 0x000003F0, 0x000022CE, 0xFFFFF2B5, 0x000003F0 },
+       { 0x0213F0FE99301944, 0x0000318C, 0xFFFFEAC7, 0x000004F6, 0x00002113, 0xFFFFF3CA, 0x000003BD, 0x00002113, 0xFFFFF3CA, 0x000003BD },
+       { 0x0213F0FE992E1104, 0x00002FD2, 0xFFFFEB8F, 0x000004D9, 0x00001996, 0xFFFFF89F, 0x000002F1, 0x00001996, 0xFFFFF89F, 0x000002F1 },
+       { 0x0213F0FE991A28A4, 0x0000310D, 0xFFFFEB25, 0x000004E7, 0x00001F67, 0xFFFFF4EF, 0x0000038E, 0x00001F67, 0xFFFFF4EF, 0x0000038E },
+       { 0x0213F0FE992A4964, 0x00002BBC, 0xFFFFEE68, 0x00000477, 0x00002050, 0xFFFFF41D, 0x000003C8, 0x00002050, 0xFFFFF41D, 0x000003C8 },
+       { 0x0213F0FE99302104, 0x00003096, 0xFFFFECED, 0x00000486, 0x000024C9, 0xFFFFF278, 0x000003E7, 0x000024C9, 0xFFFFF278, 0x000003E7 },
+       { 0x0213F0FE992C10A4, 0x00003401, 0xFFFFE8F1, 0x0000053C, 0x00001E75, 0xFFFFF55C, 0x00000376, 0x00001E75, 0xFFFFF55C, 0x00000376 },
+       { 0x0213F0FE99302844, 0x0000319E, 0xFFFFEAB1, 0x000004F8, 0x00001EA3, 0xFFFFF567, 0x00000378, 0x00001EA3, 0xFFFFF567, 0x00000378 },
+       { 0x0213F0FE99322964, 0x000030FD, 0xFFFFEB4C, 0x000004DB, 0x00001CA6, 0xFFFFF6E8, 0x00000335, 0x00001CA6, 0xFFFFF6E8, 0x00000335 },
+       { 0x0213F0FE992E40A4, 0x000030D6, 0xFFFFEB1A, 0x000004E4, 0x00001A0D, 0xFFFFF87D, 0x000002EF, 0x00001A0D, 0xFFFFF87D, 0x000002EF },
+       { 0x0213F0FE992C2124, 0x0000324B, 0xFFFFEB17, 0x000004D9, 0x00002225, 0xFFFFF3A8, 0x000003BA, 0x00002225, 0xFFFFF3A8, 0x000003BA },
+       { 0x0213F0FE99284084, 0x00002A00, 0xFFFFF02E, 0x00000424, 0x00001E21, 0xFFFFF61D, 0x0000036C, 0x00001E21, 0xFFFFF61D, 0x0000036C },
+       { 0x0213F0FE992A48A4, 0x000029CF, 0xFFFFEF53, 0x00000457, 0x00001B11, 0xFFFFF772, 0x0000033D, 0x00001B11, 0xFFFFF772, 0x0000033D },
+       { 0x0213F0FE991A30A4, 0x000032A1, 0xFFFFEA63, 0x000004FB, 0x00001F83, 0xFFFFF516, 0x0000037E, 0x00001F83, 0xFFFFF516, 0x0000037E },
+       { 0x0213F0FE992E20C4, 0x0000305C, 0xFFFFEC14, 0x000004B5, 0x00001D0B, 0xFFFFF6ED, 0x00000332, 0x00001D0B, 0xFFFFF6ED, 0x00000332 },
+       { 0x0213F0FE992C1064, 0x00003467, 0xFFFFE8D5, 0x00000543, 0x0000243F, 0xFFFFF190, 0x00000418, 0x0000243F, 0xFFFFF190, 0x00000418 },
+       { 0x0213F0FE992A2064, 0x00002796, 0xFFFFF133, 0x00000409, 0x00001903, 0xFFFFF91C, 0x000002FC, 0x00001903, 0xFFFFF91C, 0x000002FC },
+       { 0x0213F0FE99302164, 0x000031F6, 0xFFFFEAB7, 0x000004F5, 0x000022B9, 0xFFFFF2D0, 0x000003E6, 0x000022B9, 0xFFFFF2D0, 0x000003E6 },
+       { 0x0213F0FE992E5104, 0x00003196, 0xFFFFEA76, 0x00000503, 0x00001CC5, 0xFFFFF67D, 0x0000034A, 0x00001CC5, 0xFFFFF67D, 0x0000034A },
+       { 0x0213F0FE99321144, 0x00002F9E, 0xFFFFEAD9, 0x00000505, 0x000017C1, 0xFFFFF93D, 0x000002DF, 0x000017C1, 0xFFFFF93D, 0x000002DF },
+       { 0x0213F0FE992E2124, 0x00002FBC, 0xFFFFEC75, 0x000004A8, 0x00001D6D, 0xFFFFF6AC, 0x0000033D, 0x00001D6D, 0xFFFFF6AC, 0x0000033D },
+       { 0x0213F0FE992C38A4, 0x00003541, 0xFFFFE921, 0x00000524, 0x00002662, 0xFFFFF0CB, 0x0000042B, 0x00002662, 0xFFFFF0CB, 0x0000042B },
+       { 0x0213F0FE992A21A4, 0x00002953, 0xFFFFEF76, 0x00000459, 0x00001C05, 0xFFFFF6A0, 0x00000368, 0x00001C05, 0xFFFFF6A0, 0x00000368 },
+       { 0x0213F0FE992C4924, 0x000034BC, 0xFFFFE8DD, 0x00000536, 0x0000210E, 0xFFFFF3F4, 0x000003A8, 0x0000210E, 0xFFFFF3F4, 0x000003A8 },
+       { 0x0213F0FE992C29A4, 0x000034BE, 0xFFFFE916, 0x0000052F, 0x000024A1, 0xFFFFF1A6, 0x00000410, 0x000024A1, 0xFFFFF1A6, 0x00000410 },
+       { 0x0213F0FE99304964, 0x000037B5, 0xFFFFE7A9, 0x0000055B, 0x000028A1, 0xFFFFEF51, 0x00000467, 0x000028A1, 0xFFFFEF51, 0x00000467 },
+       { 0x0213F0FE99301104, 0x00002FC5, 0xFFFFEBBE, 0x000004D1, 0x00001BA5, 0xFFFFF757, 0x00000328, 0x00001BA5, 0xFFFFF757, 0x00000328 },
+       { 0x0213F0FE993040A4, 0x000033CB, 0xFFFFE944, 0x0000052B, 0x00001FBE, 0xFFFFF4B1, 0x0000038C, 0x00001FBE, 0xFFFFF4B1, 0x0000038C },
+       { 0x0213F0FE99301844, 0x000030AE, 0xFFFFEBA0, 0x000004D3, 0x00002268, 0xFFFFF316, 0x000003DD, 0x00002268, 0xFFFFF316, 0x000003DD },
+       { 0x0213F0FE992C20A4, 0x00002F90, 0xFFFFEC5A, 0x000004B0, 0x00001C3A, 0xFFFFF752, 0x00000323, 0x00001C3A, 0xFFFFF752, 0x00000323 },
+       { 0x0213F0FE992E38E4, 0x00003113, 0xFFFFEB91, 0x000004C8, 0x00001E3C, 0xFFFFF623, 0x0000034E, 0x00001E3C, 0xFFFFF623, 0x0000034E },
+       { 0x0213F0FE99323984, 0x0000330B, 0xFFFFE94B, 0x00000539, 0x000020E7, 0xFFFFF37E, 0x000003CD, 0x000020E7, 0xFFFFF37E, 0x000003CD },
+       { 0x0213F0FE992E2864, 0x000031D1, 0xFFFFEACB, 0x000004ED, 0x00001E82, 0xFFFFF5B2, 0x00000365, 0x00001E82, 0xFFFFF5B2, 0x00000365 },
+       { 0x0213F0FE992A3984, 0x00002CD5, 0xFFFFEDC1, 0x0000048D, 0x000020F8, 0xFFFFF3C1, 0x000003D1, 0x000020F8, 0xFFFFF3C1, 0x000003D1 },
+       { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
 };
 
 int pp_override_get_default_fuse_value(uint64_t key,
-                       struct phm_fuses_default list[],
                        struct phm_fuses_default *result)
 {
+       const struct phm_fuses_default *list = vega10_fuses_default;
        uint32_t i;
-       uint64_t temp_serial_numer;
-       uint32_t bit;
-       const char *temp;
 
-       for (i = 0; list[i].key != NULL; i++) {
-               temp = list[i].key;
-               temp_serial_numer = 0;
-               do {
-                       bit = *temp=='1'? 1 : 0;
-                       temp_serial_numer = (temp_serial_numer <<1 ) | bit;
-                       temp++;
-               } while (*temp);
-
-               if (key == temp_serial_numer) {
+       for (i = 0; list[i].key != 0; i++) {
+               if (key == list[i].key) {
                        result->key =  list[i].key;
                        result->VFT2_m1 = list[i].VFT2_m1;
                        result->VFT2_m2 = list[i].VFT2_m2;
index 6e8f7a2..c6ba0d6 100644 (file)
@@ -28,7 +28,7 @@
 #include <linux/kernel.h>
 
 struct phm_fuses_default {
-       const char *key;
+       uint64_t key;
        uint32_t VFT2_m1;
        uint32_t VFT2_m2;
        uint32_t VFT2_b;
@@ -40,9 +40,7 @@ struct phm_fuses_default {
        uint32_t VFT0_b;
 };
 
-extern struct phm_fuses_default vega10_fuses_default[];
 extern int pp_override_get_default_fuse_value(uint64_t key,
-                       struct phm_fuses_default list[],
                        struct phm_fuses_default *result);
 
 #endif
\ No newline at end of file
index 167cdc3..ffa44bb 100644 (file)
@@ -224,6 +224,8 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
        if (skip)
                return 0;
 
+       phm_display_configuration_changed(hwmgr);
+
        if (new_ps != NULL)
                requested = new_ps;
        else
@@ -232,7 +234,6 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
        pcurrent = hwmgr->current_ps;
 
        phm_apply_state_adjust_rules(hwmgr, requested, pcurrent);
-
        if (pcurrent == NULL || (0 != phm_check_states_equal(hwmgr,
                        &pcurrent->hardware, &requested->hardware, &equal)))
                equal = false;
@@ -241,6 +242,9 @@ int psm_adjust_power_state_dynamic(struct pp_hwmgr *hwmgr, bool skip,
                phm_set_power_state(hwmgr, &pcurrent->hardware, &requested->hardware);
                memcpy(hwmgr->current_ps, hwmgr->request_ps, hwmgr->ps_size);
        }
+
+       phm_notify_smc_display_config_after_ps_adjustment(hwmgr);
+
        return 0;
 }
 
index 485f7eb..afae32e 100644 (file)
@@ -790,7 +790,7 @@ static const ATOM_PPLIB_STATE_V2 *get_state_entry_v2(
        return pstate;
 }
 
-static unsigned char soft_dummy_pp_table[] = {
+static const unsigned char soft_dummy_pp_table[] = {
        0xe1, 0x01, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x4a, 0x00, 0x6c, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x42, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
        0x00, 0x4e, 0x00, 0x88, 0x00, 0x00, 0x9e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00,
index 9186b07..9380108 100644 (file)
@@ -312,37 +312,37 @@ static int rv_apply_state_adjust_rules(struct pp_hwmgr *hwmgr,
 }
 
 /* temporary hardcoded clock voltage breakdown tables */
-DpmClock_t VddDcfClk[]= {
+static const DpmClock_t VddDcfClk[]= {
        { 300, 2600},
        { 600, 3200},
        { 600, 3600},
 };
 
-DpmClock_t VddSocClk[]= {
+static const DpmClock_t VddSocClk[]= {
        { 478, 2600},
        { 722, 3200},
        { 722, 3600},
 };
 
-DpmClock_t VddFClk[]= {
+static const DpmClock_t VddFClk[]= {
        { 400, 2600},
        {1200, 3200},
        {1200, 3600},
 };
 
-DpmClock_t VddDispClk[]= {
+static const DpmClock_t VddDispClk[]= {
        { 435, 2600},
        { 661, 3200},
        {1086, 3600},
 };
 
-DpmClock_t VddDppClk[]= {
+static const DpmClock_t VddDppClk[]= {
        { 435, 2600},
        { 661, 3200},
        { 661, 3600},
 };
 
-DpmClock_t VddPhyClk[]= {
+static const DpmClock_t VddPhyClk[]= {
        { 540, 2600},
        { 810, 3200},
        { 810, 3600},
@@ -350,7 +350,7 @@ DpmClock_t VddPhyClk[]= {
 
 static int rv_get_clock_voltage_dependency_table(struct pp_hwmgr *hwmgr,
                        struct rv_voltage_dependency_table **pptable,
-                       uint32_t num_entry, DpmClock_t *pclk_dependency_table)
+                       uint32_t num_entry, const DpmClock_t *pclk_dependency_table)
 {
        uint32_t table_size, i;
        struct rv_voltage_dependency_table *ptable;
@@ -421,6 +421,26 @@ static int rv_populate_clock_table(struct pp_hwmgr *hwmgr)
        rv_get_clock_voltage_dependency_table(hwmgr, &pinfo->vdd_dep_on_phyclk,
                                        ARRAY_SIZE(VddPhyClk), &VddPhyClk[0]);
 
+       PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr,
+                       PPSMC_MSG_GetMinGfxclkFrequency),
+                       "Attempt to get min GFXCLK Failed!",
+                       return -1);
+       PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr,
+                       &result),
+                       "Attempt to get min GFXCLK Failed!",
+                       return -1);
+       rv_data->gfx_min_freq_limit = result * 100;
+
+       PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr,
+                       PPSMC_MSG_GetMaxGfxclkFrequency),
+                       "Attempt to get max GFXCLK Failed!",
+                       return -1);
+       PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr,
+                       &result),
+                       "Attempt to get max GFXCLK Failed!",
+                       return -1);
+       rv_data->gfx_max_freq_limit = result * 100;
+
        return 0;
 }
 
@@ -599,7 +619,53 @@ static int rv_force_clock_level(struct pp_hwmgr *hwmgr,
 static int rv_print_clock_levels(struct pp_hwmgr *hwmgr,
                enum pp_clock_type type, char *buf)
 {
-       return 0;
+       struct rv_hwmgr *data = (struct rv_hwmgr *)(hwmgr->backend);
+       struct rv_voltage_dependency_table *mclk_table =
+                       data->clock_vol_info.vdd_dep_on_fclk;
+       int i, now, size = 0;
+
+       switch (type) {
+       case PP_SCLK:
+               PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr,
+                               PPSMC_MSG_GetGfxclkFrequency),
+                               "Attempt to get current GFXCLK Failed!",
+                               return -1);
+               PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr,
+                               &now),
+                               "Attempt to get current GFXCLK Failed!",
+                               return -1);
+
+               size += sprintf(buf + size, "0: %uMhz %s\n",
+                               data->gfx_min_freq_limit / 100,
+                               ((data->gfx_min_freq_limit / 100)
+                                == now) ? "*" : "");
+               size += sprintf(buf + size, "1: %uMhz %s\n",
+                               data->gfx_max_freq_limit / 100,
+                               ((data->gfx_max_freq_limit / 100)
+                                == now) ? "*" : "");
+               break;
+       case PP_MCLK:
+               PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr,
+                               PPSMC_MSG_GetFclkFrequency),
+                               "Attempt to get current MEMCLK Failed!",
+                               return -1);
+               PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr,
+                               &now),
+                               "Attempt to get current MEMCLK Failed!",
+                               return -1);
+
+               for (i = 0; i < mclk_table->count; i++)
+                       size += sprintf(buf + size, "%d: %uMhz %s\n",
+                                       i,
+                                       mclk_table->entries[i].clk / 100,
+                                       ((mclk_table->entries[i].clk / 100)
+                                        == now) ? "*" : "");
+               break;
+       default:
+               break;
+       }
+
+       return size;
 }
 
 static int rv_get_performance_level(struct pp_hwmgr *hwmgr, const struct pp_hw_power_state *state,
@@ -830,13 +896,37 @@ static int rv_thermal_get_temperature(struct pp_hwmgr *hwmgr)
 static int rv_read_sensor(struct pp_hwmgr *hwmgr, int idx,
                          void *value, int *size)
 {
+       uint32_t sclk, mclk;
+       int ret = 0;
+
        switch (idx) {
+       case AMDGPU_PP_SENSOR_GFX_SCLK:
+               ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetGfxclkFrequency);
+               if (!ret) {
+                       rv_read_arg_from_smc(hwmgr, &sclk);
+                       /* in units of 10KHZ */
+                       *((uint32_t *)value) = sclk * 100;
+                       *size = 4;
+               }
+               break;
+       case AMDGPU_PP_SENSOR_GFX_MCLK:
+               ret = smum_send_msg_to_smc(hwmgr, PPSMC_MSG_GetFclkFrequency);
+               if (!ret) {
+                       rv_read_arg_from_smc(hwmgr, &mclk);
+                       /* in units of 10KHZ */
+                       *((uint32_t *)value) = mclk * 100;
+                       *size = 4;
+               }
+               break;
        case AMDGPU_PP_SENSOR_GPU_TEMP:
                *((uint32_t *)value) = rv_thermal_get_temperature(hwmgr);
-               return 0;
+               break;
        default:
-               return -EINVAL;
+               ret = -EINVAL;
+               break;
        }
+
+       return ret;
 }
 
 static const struct pp_hwmgr_func rv_hwmgr_funcs = {
index 68d61bd..9dc5030 100644 (file)
@@ -283,6 +283,8 @@ struct rv_hwmgr {
        uint32_t                        vclk_soft_min;
        uint32_t                        dclk_soft_min;
        uint32_t                        gfx_actual_soft_min_freq;
+       uint32_t                        gfx_min_freq_limit;
+       uint32_t                        gfx_max_freq_limit;
 
        bool                           vcn_power_gated;
        bool                           vcn_dpg_mode;
index 8dbe914..4826b29 100644 (file)
@@ -3825,14 +3825,11 @@ static int smu7_notify_link_speed_change_after_state_change(
 static int smu7_notify_smc_display(struct pp_hwmgr *hwmgr)
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
-       int ret = 0;
 
-       if (hwmgr->feature_mask & PP_VBI_TIME_SUPPORT_MASK) {
+       if (hwmgr->feature_mask & PP_VBI_TIME_SUPPORT_MASK)
                smum_send_msg_to_smc_with_parameter(hwmgr,
                        (PPSMC_Msg)PPSMC_MSG_SetVBITimeout, data->frame_time_x2);
-               ret = (smum_send_msg_to_smc(hwmgr, (PPSMC_Msg)PPSMC_HasDisplay) == 0) ?  0 : -EINVAL;
-       }
-       return ret;
+       return (smum_send_msg_to_smc(hwmgr, (PPSMC_Msg)PPSMC_HasDisplay) == 0) ?  0 : -EINVAL;
 }
 
 static int smu7_set_power_state_tasks(struct pp_hwmgr *hwmgr, const void *input)
index a59d282..48de45e 100644 (file)
@@ -56,7 +56,7 @@
 
 #define HBM_MEMORY_CHANNEL_WIDTH    128
 
-uint32_t channel_number[] = {1, 2, 0, 4, 0, 8, 0, 16, 2};
+static const uint32_t channel_number[] = {1, 2, 0, 4, 0, 8, 0, 16, 2};
 
 #define MEM_FREQ_LOW_LATENCY        25000
 #define MEM_FREQ_HIGH_LATENCY       80000
@@ -81,7 +81,7 @@ uint32_t channel_number[] = {1, 2, 0, 4, 0, 8, 0, 16, 2};
 static int vega10_force_clock_level(struct pp_hwmgr *hwmgr,
                enum pp_clock_type type, uint32_t mask);
 
-const ULONG PhwVega10_Magic = (ULONG)(PHM_VIslands_Magic);
+static const ULONG PhwVega10_Magic = (ULONG)(PHM_VIslands_Magic);
 
 struct vega10_power_state *cast_phw_vega10_power_state(
                                  struct pp_hw_power_state *hw_ps)
@@ -2364,7 +2364,7 @@ static int vega10_avfs_enable(struct pp_hwmgr *hwmgr, bool enable)
                } else {
                        PP_ASSERT_WITH_CODE(!vega10_enable_smc_features(hwmgr,
                                        false,
-                                       data->smu_features[GNLD_AVFS].smu_feature_id),
+                                       data->smu_features[GNLD_AVFS].smu_feature_bitmap),
                                        "[avfs_control] Attempt to Disable AVFS feature Failed!",
                                        return -1);
                        data->smu_features[GNLD_AVFS].enabled = false;
@@ -2393,7 +2393,7 @@ static int vega10_populate_and_upload_avfs_fuse_override(struct pp_hwmgr *hwmgr)
 
        serial_number = ((uint64_t)bottom32 << 32) | top32;
 
-       if (pp_override_get_default_fuse_value(serial_number, vega10_fuses_default, &fuse) == 0) {
+       if (pp_override_get_default_fuse_value(serial_number, &fuse) == 0) {
                avfs_fuse_table->VFT0_b  = fuse.VFT0_b;
                avfs_fuse_table->VFT0_m1 = fuse.VFT0_m1;
                avfs_fuse_table->VFT0_m2 = fuse.VFT0_m2;
index 676cd77..b4b461c 100644 (file)
@@ -31,7 +31,6 @@
 #include "vega10_ppsmc.h"
 #include "vega10_powertune.h"
 
-extern const uint32_t PhwVega10_Magic;
 #define VEGA10_MAX_HARDWARE_POWERLEVELS 2
 
 #define WaterMarksExist  1
index d2f6956..598a194 100644 (file)
@@ -1243,8 +1243,8 @@ int vega10_enable_didt_config(struct pp_hwmgr *hwmgr)
                }
 
                if (0 == result) {
-                       PP_ASSERT_WITH_CODE((!vega10_enable_smc_features(hwmgr, true, data->smu_features[GNLD_DIDT].smu_feature_bitmap)),
-                               "[EnableDiDtConfig] Attempt to Enable DiDt feature Failed!", return result);
+                       result = vega10_enable_smc_features(hwmgr, true, data->smu_features[GNLD_DIDT].smu_feature_bitmap);
+                       PP_ASSERT_WITH_CODE((0 == result), "[EnableDiDtConfig] Attempt to Enable DiDt feature Failed!", return result);
                        data->smu_features[GNLD_DIDT].enabled = true;
                }
        }
@@ -1290,8 +1290,8 @@ int vega10_disable_didt_config(struct pp_hwmgr *hwmgr)
                }
 
                if (0 == result) {
-                       PP_ASSERT_WITH_CODE((0 != vega10_enable_smc_features(hwmgr, false, data->smu_features[GNLD_DIDT].smu_feature_bitmap)),
-                                       "[DisableDiDtConfig] Attempt to Disable DiDt feature Failed!", return result);
+                       result = vega10_enable_smc_features(hwmgr, false, data->smu_features[GNLD_DIDT].smu_feature_bitmap);
+                       PP_ASSERT_WITH_CODE((0 == result), "[DisableDiDtConfig] Attempt to Disable DiDt feature Failed!", return result);
                        data->smu_features[GNLD_DIDT].enabled = false;
                }
        }
index 435da26..95932cc 100644 (file)
@@ -33,8 +33,6 @@
 extern const struct amd_ip_funcs pp_ip_funcs;
 extern const struct amd_pm_funcs pp_dpm_funcs;
 
-#define PP_DPM_DISABLED 0xCCCC
-
 enum amd_pp_sensors {
        AMDGPU_PP_SENSOR_GFX_SCLK = 0,
        AMDGPU_PP_SENSOR_VDDNB,
@@ -268,16 +266,12 @@ struct pp_display_clock_request {
                                                                state << PP_STATE_SHIFT)
 
 struct amd_powerplay {
+       struct cgs_device *cgs_device;
        void *pp_handle;
        const struct amd_ip_funcs *ip_funcs;
        const struct amd_pm_funcs *pp_funcs;
 };
 
-int amd_powerplay_create(struct amd_pp_init *pp_init,
-                               void **handle);
-
-int amd_powerplay_destroy(void *handle);
-
 int amd_powerplay_reset(void *handle);
 
 int amd_powerplay_display_configuration_change(void *handle,
@@ -310,6 +304,5 @@ int amd_powerplay_display_clock_voltage_request(void *handle,
 int amd_powerplay_get_display_mode_validation_clocks(void *handle,
                struct amd_pp_simple_clock_info *output);
 
-int amd_set_clockgating_by_smu(void *handle, uint32_t msg_id);
 
 #endif /* _AMD_POWERPLAY_H_ */
index 8a31665..9d391f0 100644 (file)
 #define mmCP_HYP_MEC2_UCODE_ADDR       0xf81c
 #define mmCP_HYP_MEC2_UCODE_DATA       0xf81d
 
-enum PWR_Command
-{
-   PwrCmdNull = 0,
-   PwrCmdWrite,
-   PwrCmdEnd,
-   PwrCmdMax
-};
-typedef enum PWR_Command PWR_Command;
-
 struct PWR_Command_Table
 {
-   PWR_Command        command;
-   ULONG              data;
-   ULONG              reg;
+   uint32_t           data;
+   uint32_t           reg;
 };
 typedef struct PWR_Command_Table PWR_Command_Table;
 
-#define PWR_VIRUS_TABLE_SIZE  10243
-static const PWR_Command_Table PwrVirusTable[PWR_VIRUS_TABLE_SIZE] =
+struct PWR_DFY_Section {
+       uint32_t dfy_cntl;
+       uint32_t dfy_addr_hi, dfy_addr_lo;
+       uint32_t dfy_size;
+       uint32_t dfy_data[];
+};
+
+typedef struct PWR_DFY_Section PWR_DFY_Section;
+
+static const PWR_Command_Table PwrVirusTable_pre[] =
 {
-    { PwrCmdWrite, 0x100100b6, mmPCIE_INDEX                               },
-    { PwrCmdWrite, 0x00000000, mmPCIE_DATA                                },
-    { PwrCmdWrite, 0x100100b6, mmPCIE_INDEX                               },
-    { PwrCmdWrite, 0x0300078c, mmPCIE_DATA                                },
-    { PwrCmdWrite, 0x00000000, mmBIF_CLK_CTRL                             },
-    { PwrCmdWrite, 0x00000001, mmBIF_CLK_CTRL                             },
-    { PwrCmdWrite, 0x00000000, mmBIF_CLK_CTRL                             },
-    { PwrCmdWrite, 0x00000003, mmBIF_FB_EN                                },
-    { PwrCmdWrite, 0x00000000, mmBIF_FB_EN                                },
-    { PwrCmdWrite, 0x00000001, mmBIF_DOORBELL_APER_EN                     },
-    { PwrCmdWrite, 0x00000000, mmBIF_DOORBELL_APER_EN                     },
-    { PwrCmdWrite, 0x014000c0, mmPCIE_INDEX                               },
-    { PwrCmdWrite, 0x00000000, mmPCIE_DATA                                },
-    { PwrCmdWrite, 0x014000c0, mmPCIE_INDEX                               },
-    { PwrCmdWrite, 0x22000000, mmPCIE_DATA                                },
-    { PwrCmdWrite, 0x014000c0, mmPCIE_INDEX                               },
-    { PwrCmdWrite, 0x00000000, mmPCIE_DATA                                },
+    { 0x100100b6, mmPCIE_INDEX                               },
+    { 0x00000000, mmPCIE_DATA                                },
+    { 0x100100b6, mmPCIE_INDEX                               },
+    { 0x0300078c, mmPCIE_DATA                                },
+    { 0x00000000, mmBIF_CLK_CTRL                             },
+    { 0x00000001, mmBIF_CLK_CTRL                             },
+    { 0x00000000, mmBIF_CLK_CTRL                             },
+    { 0x00000003, mmBIF_FB_EN                                },
+    { 0x00000000, mmBIF_FB_EN                                },
+    { 0x00000001, mmBIF_DOORBELL_APER_EN                     },
+    { 0x00000000, mmBIF_DOORBELL_APER_EN                     },
+    { 0x014000c0, mmPCIE_INDEX                               },
+    { 0x00000000, mmPCIE_DATA                                },
+    { 0x014000c0, mmPCIE_INDEX                               },
+    { 0x22000000, mmPCIE_DATA                                },
+    { 0x014000c0, mmPCIE_INDEX                               },
+    { 0x00000000, mmPCIE_DATA                                },
     /*
-    { PwrCmdWrite, 0x009f0090, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x00000000, mmMC_CITF_CNTL                             },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x009f0090, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x009f0090, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_FB_OFFSET                          },*/
-    { PwrCmdWrite, 0x00000000, mmRLC_CSIB_ADDR_LO                         },
-    { PwrCmdWrite, 0x00000000, mmRLC_CSIB_ADDR_HI                         },
-    { PwrCmdWrite, 0x00000000, mmRLC_CSIB_LENGTH                          },
+    { 0x009f0090, mmMC_VM_FB_LOCATION                        },
+    { 0x00000000, mmMC_CITF_CNTL                             },
+    { 0x00000000, mmMC_VM_FB_LOCATION                        },
+    { 0x009f0090, mmMC_VM_FB_LOCATION                        },
+    { 0x00000000, mmMC_VM_FB_LOCATION                        },
+    { 0x009f0090, mmMC_VM_FB_LOCATION                        },
+    { 0x00000000, mmMC_VM_FB_OFFSET                          },*/
+    { 0x00000000, mmRLC_CSIB_ADDR_LO                         },
+    { 0x00000000, mmRLC_CSIB_ADDR_HI                         },
+    { 0x00000000, mmRLC_CSIB_LENGTH                          },
     /*
-    { PwrCmdWrite, 0x00000000, mmMC_VM_MX_L1_TLB_CNTL                     },
-    { PwrCmdWrite, 0x00000001, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR           },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR          },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_FB_LOCATION                        },
-    { PwrCmdWrite, 0x009f0090, mmMC_VM_FB_LOCATION                        },*/
-    { PwrCmdWrite, 0x00000000, mmVM_CONTEXT0_CNTL                         },
-    { PwrCmdWrite, 0x00000000, mmVM_CONTEXT1_CNTL                         },
+    { 0x00000000, mmMC_VM_MX_L1_TLB_CNTL                     },
+    { 0x00000001, mmMC_VM_SYSTEM_APERTURE_LOW_ADDR           },
+    { 0x00000000, mmMC_VM_SYSTEM_APERTURE_HIGH_ADDR          },
+    { 0x00000000, mmMC_VM_FB_LOCATION                        },
+    { 0x009f0090, mmMC_VM_FB_LOCATION                        },*/
+    { 0x00000000, mmVM_CONTEXT0_CNTL                         },
+    { 0x00000000, mmVM_CONTEXT1_CNTL                         },
     /*
-    { PwrCmdWrite, 0x00000000, mmMC_VM_AGP_BASE                           },
-    { PwrCmdWrite, 0x00000002, mmMC_VM_AGP_BOT                            },
-    { PwrCmdWrite, 0x00000000, mmMC_VM_AGP_TOP                            },*/
-    { PwrCmdWrite, 0x04000000, mmATC_VM_APERTURE0_LOW_ADDR                },
-    { PwrCmdWrite, 0x0400ff20, mmATC_VM_APERTURE0_HIGH_ADDR               },
-    { PwrCmdWrite, 0x00000002, mmATC_VM_APERTURE0_CNTL                    },
-    { PwrCmdWrite, 0x0000ffff, mmATC_VM_APERTURE0_CNTL2                   },
-    { PwrCmdWrite, 0x00000001, mmATC_VM_APERTURE1_LOW_ADDR                },
-    { PwrCmdWrite, 0x00000000, mmATC_VM_APERTURE1_HIGH_ADDR               },
-    { PwrCmdWrite, 0x00000000, mmATC_VM_APERTURE1_CNTL                    },
-    { PwrCmdWrite, 0x00000000, mmATC_VM_APERTURE1_CNTL2                   },
-    //{ PwrCmdWrite, 0x00000000, mmMC_ARB_RAMCFG                            },
-    { PwrCmdWrite, 0x12011003, mmGB_ADDR_CONFIG                           },
-    { PwrCmdWrite, 0x00800010, mmGB_TILE_MODE0                            },
-    { PwrCmdWrite, 0x00800810, mmGB_TILE_MODE1                            },
-    { PwrCmdWrite, 0x00801010, mmGB_TILE_MODE2                            },
-    { PwrCmdWrite, 0x00801810, mmGB_TILE_MODE3                            },
-    { PwrCmdWrite, 0x00802810, mmGB_TILE_MODE4                            },
-    { PwrCmdWrite, 0x00802808, mmGB_TILE_MODE5                            },
-    { PwrCmdWrite, 0x00802814, mmGB_TILE_MODE6                            },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE7                            },
-    { PwrCmdWrite, 0x00000004, mmGB_TILE_MODE8                            },
-    { PwrCmdWrite, 0x02000008, mmGB_TILE_MODE9                            },
-    { PwrCmdWrite, 0x02000010, mmGB_TILE_MODE10                           },
-    { PwrCmdWrite, 0x06000014, mmGB_TILE_MODE11                           },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE12                           },
-    { PwrCmdWrite, 0x02400008, mmGB_TILE_MODE13                           },
-    { PwrCmdWrite, 0x02400010, mmGB_TILE_MODE14                           },
-    { PwrCmdWrite, 0x02400030, mmGB_TILE_MODE15                           },
-    { PwrCmdWrite, 0x06400014, mmGB_TILE_MODE16                           },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE17                           },
-    { PwrCmdWrite, 0x0040000c, mmGB_TILE_MODE18                           },
-    { PwrCmdWrite, 0x0100000c, mmGB_TILE_MODE19                           },
-    { PwrCmdWrite, 0x0100001c, mmGB_TILE_MODE20                           },
-    { PwrCmdWrite, 0x01000034, mmGB_TILE_MODE21                           },
-    { PwrCmdWrite, 0x01000024, mmGB_TILE_MODE22                           },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE23                           },
-    { PwrCmdWrite, 0x0040001c, mmGB_TILE_MODE24                           },
-    { PwrCmdWrite, 0x01000020, mmGB_TILE_MODE25                           },
-    { PwrCmdWrite, 0x01000038, mmGB_TILE_MODE26                           },
-    { PwrCmdWrite, 0x02c00008, mmGB_TILE_MODE27                           },
-    { PwrCmdWrite, 0x02c00010, mmGB_TILE_MODE28                           },
-    { PwrCmdWrite, 0x06c00014, mmGB_TILE_MODE29                           },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE30                           },
-    { PwrCmdWrite, 0x00000000, mmGB_TILE_MODE31                           },
-    { PwrCmdWrite, 0x000000a8, mmGB_MACROTILE_MODE0                       },
-    { PwrCmdWrite, 0x000000a4, mmGB_MACROTILE_MODE1                       },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE2                       },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE3                       },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE4                       },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE5                       },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE6                       },
-    { PwrCmdWrite, 0x00000000, mmGB_MACROTILE_MODE7                       },
-    { PwrCmdWrite, 0x000000ee, mmGB_MACROTILE_MODE8                       },
-    { PwrCmdWrite, 0x000000ea, mmGB_MACROTILE_MODE9                       },
-    { PwrCmdWrite, 0x000000e9, mmGB_MACROTILE_MODE10                      },
-    { PwrCmdWrite, 0x000000e5, mmGB_MACROTILE_MODE11                      },
-    { PwrCmdWrite, 0x000000e4, mmGB_MACROTILE_MODE12                      },
-    { PwrCmdWrite, 0x000000e0, mmGB_MACROTILE_MODE13                      },
-    { PwrCmdWrite, 0x00000090, mmGB_MACROTILE_MODE14                      },
-    { PwrCmdWrite, 0x00000000, mmGB_MACROTILE_MODE15                      },
-    { PwrCmdWrite, 0x00900000, mmHDP_NONSURFACE_BASE                      },
-    { PwrCmdWrite, 0x00008000, mmHDP_NONSURFACE_INFO                      },
-    { PwrCmdWrite, 0x3fffffff, mmHDP_NONSURFACE_SIZE                      },
-    { PwrCmdWrite, 0x00000003, mmBIF_FB_EN                                },
-    //{ PwrCmdWrite, 0x00000000, mmMC_VM_FB_OFFSET                          },
-    { PwrCmdWrite, 0x00000000, mmSRBM_CNTL                                },
-    { PwrCmdWrite, 0x00020000, mmSRBM_CNTL                                },
-    { PwrCmdWrite, 0x80000000, mmATC_VMID0_PASID_MAPPING                  },
-    { PwrCmdWrite, 0x00000000, mmATC_VMID_PASID_MAPPING_UPDATE_STATUS     },
-    { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-    { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-    { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-    { PwrCmdWrite, 0xe0000000, mmGRBM_GFX_INDEX                           },
-    { PwrCmdWrite, 0x00000000, mmCGTS_TCC_DISABLE                         },
-    { PwrCmdWrite, 0x00000000, mmTCP_ADDR_CONFIG                          },
-    { PwrCmdWrite, 0x000000ff, mmTCP_ADDR_CONFIG                          },
-    { PwrCmdWrite, 0x76543210, mmTCP_CHAN_STEER_LO                        },
-    { PwrCmdWrite, 0xfedcba98, mmTCP_CHAN_STEER_HI                        },
-    { PwrCmdWrite, 0x00000000, mmDB_DEBUG2                                },
-    { PwrCmdWrite, 0x00000000, mmDB_DEBUG                                 },
-    { PwrCmdWrite, 0x00002b16, mmCP_QUEUE_THRESHOLDS                      },
-    { PwrCmdWrite, 0x00006030, mmCP_MEQ_THRESHOLDS                        },
-    { PwrCmdWrite, 0x01000104, mmSPI_CONFIG_CNTL_1                        },
-    { PwrCmdWrite, 0x98184020, mmPA_SC_FIFO_SIZE                          },
-    { PwrCmdWrite, 0x00000001, mmVGT_NUM_INSTANCES                        },
-    { PwrCmdWrite, 0x00000000, mmCP_PERFMON_CNTL                          },
-    { PwrCmdWrite, 0x01180000, mmSQ_CONFIG                                },
-    { PwrCmdWrite, 0x00000000, mmVGT_CACHE_INVALIDATION                   },
-    { PwrCmdWrite, 0x00000000, mmSQ_THREAD_TRACE_BASE                     },
-    { PwrCmdWrite, 0x0000df80, mmSQ_THREAD_TRACE_MASK                     },
-    { PwrCmdWrite, 0x02249249, mmSQ_THREAD_TRACE_MODE                     },
-    { PwrCmdWrite, 0x00000000, mmPA_SC_LINE_STIPPLE_STATE                 },
-    { PwrCmdWrite, 0x00000000, mmCB_PERFCOUNTER0_SELECT1                  },
-    { PwrCmdWrite, 0x06000100, mmCGTT_VGT_CLK_CTRL                        },
-    { PwrCmdWrite, 0x00000007, mmPA_CL_ENHANCE                            },
-    { PwrCmdWrite, 0x00000001, mmPA_SC_ENHANCE                            },
-    { PwrCmdWrite, 0x00ffffff, mmPA_SC_FORCE_EOV_MAX_CNTS                 },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000010, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000020, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000030, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000040, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000050, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000060, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000070, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000080, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000090, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000a0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000b0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000c0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000d0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000e0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x000000f0, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmRLC_PG_CNTL                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS2                             },
-    { PwrCmdWrite, 0x15000000, mmCP_ME_CNTL                               },
-    { PwrCmdWrite, 0x50000000, mmCP_MEC_CNTL                              },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x0000000e, mmSH_MEM_APE1_BASE                         },
-    { PwrCmdWrite, 0x0000020d, mmSH_MEM_APE1_LIMIT                        },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000320, mmSH_MEM_CONFIG                            },
-    { PwrCmdWrite, 0x00000000, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_RB_VMID                               },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-    { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-    { PwrCmdWrite, 0x00000000, mmRLC_SRM_CNTL                             },
-    { PwrCmdWrite, 0x00000002, mmRLC_SRM_CNTL                             },
-    { PwrCmdWrite, 0x00000000, mmCP_ME_CNTL                               },
-    { PwrCmdWrite, 0x15000000, mmCP_ME_CNTL                               },
-    { PwrCmdWrite, 0x00000000, mmCP_MEC_CNTL                              },
-    { PwrCmdWrite, 0x50000000, mmCP_MEC_CNTL                              },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x0840800a, mmCP_RB0_CNTL                              },
-    { PwrCmdWrite, 0xf30fff0f, mmTCC_CTRL                                 },
-    { PwrCmdWrite, 0x00000002, mmTCC_EXE_DISABLE                          },
-    { PwrCmdWrite, 0x000000ff, mmTCP_ADDR_CONFIG                          },
-    { PwrCmdWrite, 0x540ff000, mmCP_CPC_IC_BASE_LO                        },
-    { PwrCmdWrite, 0x000000b4, mmCP_CPC_IC_BASE_HI                        },
-    { PwrCmdWrite, 0x00010000, mmCP_HYP_MEC1_UCODE_ADDR                   },
-    { PwrCmdWrite, 0x00041b75, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000710e8, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000910dd, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000a1081, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000b016f, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000c0e3c, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000d10ec, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000e0188, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00101b5d, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00150a6c, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00170c5e, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x001d0c8c, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x001e0cfe, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00221408, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00370d7b, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00390dcb, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x003c142f, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x003f0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00400e63, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00500f62, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00460fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00490fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005811d4, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00680ad6, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00760b00, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00780b0c, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00790af7, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x007d1aba, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x007e1abe, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00591260, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005a12fb, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00861ac7, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x008c1b01, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x008d1b34, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a014b9, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a1152e, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a216fb, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a41890, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a31906, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a50b14, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00621387, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005c0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00160a75, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00010000, mmCP_HYP_MEC2_UCODE_ADDR                   },
-    { PwrCmdWrite, 0x00041b75, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000710e8, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000910dd, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000a1081, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000b016f, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000c0e3c, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000d10ec, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000e0188, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00101b5d, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00150a6c, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00170c5e, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x001d0c8c, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x001e0cfe, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00221408, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00370d7b, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00390dcb, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x003c142f, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x003f0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00400e63, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00500f62, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00460fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00490fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005811d4, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00680ad6, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00760b00, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00780b0c, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00790af7, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x007d1aba, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x007e1abe, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00591260, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005a12fb, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00861ac7, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x008c1b01, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x008d1b34, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a014b9, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a1152e, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a216fb, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a41890, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a31906, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00a50b14, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00621387, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x005c0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x00160a75, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x540fe800, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0x7e000200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e020201, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e040204, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e060205, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54106f00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000400b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00004000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00804fac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x540fef00, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0xc0031502, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00001e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x540ff000, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000145, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdcc10000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd010000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080061, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24ccffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3cd08000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1cd0ffcf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d018001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x050c0019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x84c00000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000067, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000006a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000006d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000008f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000099, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800000a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800000af, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x388c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08880002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98800003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000002d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28080001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d808001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc0700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d10ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d10c017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0d000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14cc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000005d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14d00011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c01b10, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00e0080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00e0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x280c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x280c0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x280c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000069, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28080001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca88004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc00006f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28180080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d10c017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd4c0380, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdcc0388, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55dc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdcc038c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce0c0390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce0c0394, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce4c0398, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce4c039c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce8c03a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56a80020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce8c03a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcecc03a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcecc03ac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf0c03b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf0c03b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4c03b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57740020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4c03bc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8c03c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57b80020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8c03c4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfcc03c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57fc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfcc03cc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05dc002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc12009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d200a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc012009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25e01c00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25e40300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25e800c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25ec003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e25c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de5c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xddc10000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31100006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc1c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4df0388, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d7038c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d5dc01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4e30390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d70394, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d62001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4e70398, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d7039c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d66401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4eb03a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d6a801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ef03a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703ac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d6ec01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4f303b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d73001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4f703b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703bc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d77401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4fb03c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703c4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d7b801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ff03c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d703cc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d7fc01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4d70380, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1c88001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0e0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc01e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3cd00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0085, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc006a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc01e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3cd00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1c88001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400051, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04180018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aac0027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80002f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04080002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08880001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000367, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9880fff3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04080010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08880001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80c0309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80c0319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9880fffc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00e0100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d4001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x155c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e80180, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202c003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900091a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05280196, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d4fe04, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800001b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000032b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000350, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000352, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000035f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000701, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000047c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000019f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d98001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0044, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9400036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40005b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40005d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840006d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11540015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a4003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1998003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af0007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1264001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15dc000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d65400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a38003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd5c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7df1c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800045, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411326a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc415326b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293279, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000056, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00059, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c8000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40005a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29988000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000073, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25140fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001b6d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153279, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd00005f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000075, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26f00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15100010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d190004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af07fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4412e01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0434001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4412e40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04343000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf413267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd1c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0160, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc810001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b4c0057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f4f400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55180020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x248dfffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc12e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af4007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33740003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26d80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ae8003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26680001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253348, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413348, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253348, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x958000d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000315, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04303000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26680001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1714000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25540800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x459801b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d77400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x199c01e2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e4002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e5c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e540002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1334e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01334f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd413350, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813351, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd881334d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3271, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153274, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50cc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cdcc011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05900008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd00006a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0006b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3272, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d594002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc12e23, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd012e24, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc12e25, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15540002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b340057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b280213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980198, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e40020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20cc003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113274, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01e0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2d540002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x078c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07d40000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001239, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04f80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x057c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd5c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840007c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400069, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c018a6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4412e22, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800007c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c018a2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd4c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680fffc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800002e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800002e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000069, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9540188f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc013cfff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x38d00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdcc30000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c01882, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000304, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x49980198, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e40020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x459801a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000329, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc812e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16ec001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1998003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce00000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a18003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4093249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1888003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419324c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1598001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14d80011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24dc00ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31e00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31dc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95801827, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14dc0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800006d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a0000ad, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04080000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af4003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740004d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca88005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24880001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f4b4009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313274, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d33400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a4004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1eecffdd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800003c3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aa80030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a8004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3272, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19e80042, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e8e800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de9c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3271, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50cc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ce8c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd30011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11e80007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd300001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240059, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1660001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e320009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0328000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e72400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0430000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02ac000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d310002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa87600, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280222, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4280058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x22ec003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8380018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57b00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04343108, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13740008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2374007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32a80003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ec0057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e40213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc0199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cecc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ce4c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800003e7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980104, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x49980104, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800003f2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000448, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813279, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf41326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x254c0700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a641fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0726, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a640200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1237b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8813260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4280034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c01755, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde830000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0174c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bb80040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100044, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19180024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x551c003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000043d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c8000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840006c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28200000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000043f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x282000f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x195c00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2555fff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0360001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5e124dc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e624001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80fff9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2555fff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980158, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x49980158, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980170, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16200010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x195400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1154000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e80488, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0006c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18f807f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e40077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ec0199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000048e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000494, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004de, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000685, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000686, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800006ac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ccc001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1264000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d79400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e7a400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52a8001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d69401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202c007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aec0028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004cc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419324e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26e8003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aec003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12f4000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d324d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d75401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d290004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f8f4001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f52800f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50e00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004d1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0dc002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x6665fc00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1c011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a644000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f534002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x6665fc00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e76401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004d7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aec003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3257, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12f4000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d75401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1c011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a644000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202c003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e804e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004e7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800004f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000505, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x277401ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf41325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640fff4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17e00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84131db, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26edf000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8413260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05a80507, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000050c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000528, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000057d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800005c2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800005f3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c004d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00063b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000624, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1be00fe4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000066, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400068, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c004d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400067, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00063b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000624, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ed6c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113271, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193272, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d51401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113274, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253276, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400061, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2730000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7db1800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00062, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000063, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400065, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b700057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b680213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46ec0188, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17e00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26e01000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c131fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x191807e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x192007ec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x69dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de20014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x561c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013344, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13345, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425334d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419334e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d334f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213350, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253351, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46ec01b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800068, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2010007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1910003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd00001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd00001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2010003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x191807e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9540000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013344, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013345, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180050, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0052, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280042, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813273, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13275, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000068, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400067, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07d40000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00124f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x057c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46ec0190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2154003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bd800e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd80005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420004d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1e000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28340001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f598004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1be800e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801327a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800005f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000075, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424004c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a4004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x277401ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf41325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xda000068, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9540002d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425334d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419334e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d334f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213350, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253351, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46ec01b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1be000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0360001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc63124dc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80fff9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fc14001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x194c1c03, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc0003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c002d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000697, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x194c00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c004c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27301fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce00005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cf0c00d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25100007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31100005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900008e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000075e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202c007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a9feff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d30b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce813265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00ac006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00e0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28880700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0006de, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14cc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30d4000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41530b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19980028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800006c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8380023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fa38011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x282c2002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd3800025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202400d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d8003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x194c00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c004c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27301fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce00005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cf0c00d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000712, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x194c1c03, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc0003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c002d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e80714, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000071c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000720, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000747, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000071d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800007c4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000732, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000745, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000744, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000072e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a64008c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b301fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000075e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0fff1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000723, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41f02f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000743, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8813247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0ffde, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000072e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84131db, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8413260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc8000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x195800e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd80005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418004c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dd7fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1a001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46200200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04283247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af80057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af40213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6f400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2000025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc6990000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x329c325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x329c3269, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x329c3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01defff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d8009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000078a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fff2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03e7ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3f0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1f30001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03e4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d30b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bf0003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000b80, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x203c003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf0130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46200008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2000025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31dc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ec0057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e40213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc0199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cecc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ce4c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000448, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31980002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19580066, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0120001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11980003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da18001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d24db, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580137b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00ee000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113269, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19080070, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x190c00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2518000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05a80809, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000080e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000080f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000898, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000946, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800009e1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04a80811, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000815, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000834, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3045, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c091, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31300021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84002f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293059, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56a8001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000241, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000084a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02f0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4252087, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5668001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000084a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431ecaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02e0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31300021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84002f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293059, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56a8001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00021d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001a41, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43b02f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec80278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56f00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8813247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80802e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x950001fa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02e0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aec0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a40006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de6000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10e40008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e2e000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d10ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2110003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d10ff9e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0245301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801325f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0121fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29108eff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0127ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0131fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013279, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0100010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd2400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0180003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd1c002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04a8089a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000089e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800008fa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000945, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000945, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31300022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x459801e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2738000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc79d3300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc7a13301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8393300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0260001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce793301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x964012a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c028009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800008d2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x242c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02620c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0260400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae8001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2f0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800008d2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdf93300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce393301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000903, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31240022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ec30011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32f80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x67180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bfc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd981325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000915, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c1325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0fff6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f818001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001606, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d838001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16240014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a2801f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e2a000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00075e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x66d80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1330000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13f40014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33e80010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680ffec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04a80948, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000094c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000099b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800009e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800009e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x459801e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2738000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc79d3300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc7a13301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8393300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0260001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce793301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x964011fe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c028009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000978, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x242c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0260010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0260800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae8001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2f0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000978, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdf93300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce393301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dda801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e838011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001802, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x469c0390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4280011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0014df, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31280014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce8802ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800062, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31280034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04a809e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800009ec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a45, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a59, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a59, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a70250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e72401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x66740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04383000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b38007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33b40003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x4598001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740002f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4002eb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4002ec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4002ed, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4002ee, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04382000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001715, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04382000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffbc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431ecaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a55, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x233c0032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf0130b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49302ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5198001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193269, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2598000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80002f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53b8001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7db9801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000a5e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c01106, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e02, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e03, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c010fd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ce4c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc80c0072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x58e801fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc01e2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e4002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e5c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e540002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9540000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x44cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55900020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x44cc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd812e01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd012e02, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd412e03, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1e64001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14d00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ab1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a0010ac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd880003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc010ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d403f7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0cc009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41b0367, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d958004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d85800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc1e0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d001fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05280adc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000af1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000adf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ae7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000ace, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd8d2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d803f7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc010ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0cc009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11940014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29544001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29544003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000af4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd44d2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd44dc000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000ace, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd8d2c00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000b0a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd44d2c00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28148004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4593240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0105e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x199c0034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef3400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14e80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a8000af, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c01043, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a01fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3620005c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2464003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc6290ce7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16ac001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ac003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ee6c00d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00fff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000367, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640102e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x199c0037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a00035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0005d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16f8001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9780000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc035f0ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e764009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19b401f8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13740008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e76400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x199c0034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ae4003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000b7c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aec003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a4003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12ec001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02e4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc01e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13fc0018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dbd800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d98ff15, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x592c00fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd80000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12e00016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x592c007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12e00015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1264001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1620000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12e4001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5924007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a4003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013257, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd413258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00fdb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9780f5ca, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001b6d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d324e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431324d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07740003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x269c003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e4004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f67000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f674002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53740002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab42010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab8c006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a8000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b740000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf40001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000bec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000b47, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b34060b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec00ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a8004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc415325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18580037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x262001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d54001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14f00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd280200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd680208, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcda80210, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc6930200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc6970208, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc69b0210, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd900003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd940003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9400040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14fc0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24f800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d83c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4093249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1888003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419324c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1598001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14d80011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24e000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x321c0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580ffee, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c30, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9480000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800f29, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800f23, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800f1a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9600f502, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0f500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000f05, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1f30001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16e4001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640f4f4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33740002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40f4f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aec003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12ec001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02e4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00ac005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00e0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc8000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28884900, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ff3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400ee1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c40a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c40c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c40d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d0007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15580010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x255400ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c411, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c40f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c40e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c410, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e80033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ec0034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c414, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c415, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c413, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c412, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc0032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c030011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c038011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431c417, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435c416, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c419, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc418, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf413261, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013262, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13263, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813264, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc0030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d77000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000cd6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51b80020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f97801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000cd6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ca7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc0031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435c40b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4280032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f8cc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000cf4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc032800b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d42011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd4c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800e6c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x596001fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ce0c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x505c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50600020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8240010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e800c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x122c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000d1f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8240010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x566c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413261, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13262, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b740008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x566c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce413261, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec13262, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f8cc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000d57, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0328009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04143000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd413267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e51001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d2d0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19640057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19580213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19600199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da6400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04142000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd413267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4153267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d40030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d80034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05280d83, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c424001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000d8a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000d95, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000db1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000d95, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000dbc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11540010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e010001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d75400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4610000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580f3d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x526c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e80058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e2ec01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5ae0073a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea2800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580f3c6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc3a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980fff5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01c405, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd441c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580f3b1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c409, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11540010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4610000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580f3a5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00da7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5aac007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12d80017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56a00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e82400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e58c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19d4003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28182002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc011000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c908009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20880188, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20240090, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd901a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1624001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841325f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ac0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ac0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b301ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0001a2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1910003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2220003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e2a000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d40030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18fc0034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24e8000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80e71, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000edd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e91, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e91, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ea1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000eaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e7c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e7f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e7f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e87, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000e8f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9e001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a200008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213262, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253261, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a200008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213264, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253263, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e82005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da1801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1800072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8180072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x59a001fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea2800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15980002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421c401, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425c401, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2580, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac260c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0828, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2440, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0093, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac31dc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac31e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ede, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac7c06, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db07c00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acc337, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0c330, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acc335, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0c336, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac9002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db09001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac9012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db09011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acec70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0ec6f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5a10000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5a50000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05280eea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ef1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000efe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f11, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f2e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000efe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f1f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0f26f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e80058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7daec01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5af8073a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eba800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0f25c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15980002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c405, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0f24e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c409, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40f247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0f240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2580, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac260c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0828, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2440, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac2390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac0093, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac31dc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31ac31e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ef2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac7c06, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db07c00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acc337, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0c330, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acc335, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0c336, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39acec70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db0ec6f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac9002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db09002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39ac9012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3db09012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ef1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b740008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c1325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c034001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c038001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e0007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32240003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f88, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e52401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ac0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26f0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af000fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1334000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24e02000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f63400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e00074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32240003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000f9d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51e40020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5a401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ac0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26f0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1af000fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13380016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e00039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e0007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1220001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e00074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1c084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31140005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31140006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05280fb7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28140002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fc2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fd1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ff2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ff2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e80039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52a8003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d69401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140004b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d958004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x159c0011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31a00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31a40001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e25800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0fff5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fff4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000fef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d100010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01326f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc011000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33b40003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0340008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000ffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c908009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x282c2002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x208801a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20240030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28340000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x507c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d7d401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x557c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28342002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000102f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1cccfe08, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00b33, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da2400f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da28002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1ac002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d2ac002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3ef40010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40f11d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde410000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdcc10000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd010000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdd810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xddc10000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde010000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c024001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100086, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5510003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001075, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15800f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15c002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d520002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cde0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e20001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001071, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00b01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc200000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc1c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc240000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc40003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4080029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a400e5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12500009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x248c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x200c006d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x200c0228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410002b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18881fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d4072c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc00d1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd4c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3094000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x38d80000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x311c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30940007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1620001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010c4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x259c007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a00030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010cb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x199c0fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010cb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000aac, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434002e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2020002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07a810d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000104c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x200c007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28240007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xde430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x192400fd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06681110, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19180070, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19100078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18f40058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5978073a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001117, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001118, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000112d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001130, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001133, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24ec0f00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32ec0600, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24ec0f00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32ec0600, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc81c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02a0200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e8e8009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x22a8003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x22a80074, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2774001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13740014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eb6800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25ecffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55700020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15f40010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13740002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x275c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15dc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39e00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc1c01e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e40008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc2001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e40008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e62000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da58001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001165, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc2001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1a0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e0d000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95000007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e02401e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06640008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05d80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc2401e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da58001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05e00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da2000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9600ffe6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00116b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce00001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81c078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x22640435, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0528117e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x312c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001185, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001182, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001182, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a0400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1198001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d81c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19a000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de2c00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26200010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc415326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc420007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011a3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d654001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c020001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011b6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253279, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc415326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2730003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3b380006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3f38000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0430000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb10004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e57000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e578002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d67c002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0be40001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d3a4002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x202c002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26200010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e640010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce81325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434002e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07a811cf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00feb8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x954009a7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1c07c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c07d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c08c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c07e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18f0012f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18f40612, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc00c1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cf7400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x39600004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0140004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11600001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18fc003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011ee, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a6c003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800011e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ac007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab00030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aac0fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001205, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11600001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ffbc00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a2800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03ae000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a0800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03ae000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a4000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30d00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000052, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640090f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1514001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19180038, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d324e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431324d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab0c006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000127f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d3258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313257, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab0c012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e624004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f67800f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53740002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ab42010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a8000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b740000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf40001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1514001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0012e1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x964008d7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9800036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300677, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012aa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b34060b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec00ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a8002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef6c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7edec00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4140032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1858003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0cc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0006c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d407f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2598003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d190004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d5d4001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d52000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d514002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d958001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd5c002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc1325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1ccc001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14f00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd980003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9800040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd9c00040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33f80003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800051, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b74003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b4c00f8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50700020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04e81324, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50600020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30e40004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d71401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x596401fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b74008d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e76400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a640000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000132c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000133b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001344, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42530b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a68003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2024003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11980014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d19000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce4130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de6800f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce40001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8240011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de6800f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffe0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28182002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20240030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b4c00f8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28340000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x507c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30e40004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d7d401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x557c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28342002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf81a2a4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c007eb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d0d001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x591c01fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45140210, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x595801fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11980009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1624001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400069, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a307fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x23304076, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc00e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0015, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x4514020c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a2001e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a204001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a64003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1264001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15dc000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dcdc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5dc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340022, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4412e01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0434001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4412e40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c030, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41c031, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x248dfffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc12e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc812e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45140248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013257, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0434000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdb000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013259, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0337fff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f220009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d01c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f01c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8240072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd240001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19682011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5a6c01fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12ec0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eeac00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aec0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf830000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfa0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4380007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d40038, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9540073d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18c80066, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30880001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd910000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x4220000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24e80007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24ec0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5310000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001465, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18f02011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5aec01fc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12ec0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aec0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a8146a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1f0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001478, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001478, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f1b400e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f334002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000147b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e024001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000144a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fbfc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94800007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd910000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800014a9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0328007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03a0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45dc0390, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b380057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b340213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c424001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c428001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c42c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c430001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a0800fd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x109c000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce080228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9880000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce480250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce880258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0ec75, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce480250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce880258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52a80020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x66580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc80260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec80288, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf080290, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec80298, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf0802a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4802a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc802b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80802b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x178c000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b8003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cf8c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8802c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc802c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8802d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf8802d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25b8ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd2800c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5230309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e3a400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001539, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd08034b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd880353, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b0353, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd14005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000154f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd080238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd08034b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d200008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd900309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8100319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340801, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd910ce7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4190ce6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d918005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d918004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd810ce6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdd1054f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000156e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x090c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdcd050e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x110c0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc4001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41230a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41230b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41230c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc41230d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc480329, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc48032a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc4802e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f02e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d8003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09940001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x44100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x69100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000157f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970290, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b0288, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b02a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49f0298, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x041c0040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dcdc002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d924019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d26400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001579, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d010021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d914019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd480298, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd8802a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10d40010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12180016, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc51f0309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d95800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d62000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdd00309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce113320, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f02e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b02b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18dc01e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9400e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c0001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015aa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a302b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12240004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e5e400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ab02a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce4c0319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d9d8002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea14005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015bc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e624004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d25000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fff4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd0d3330, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce0802b8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd8802b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ab02e0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aa807f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f02d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49702d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b02c8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49f02c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96800028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d4e000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9600000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d964002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d694001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cde4002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de94001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd64002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d694001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800015cd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d698002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd4802d8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x129c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc50f0319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11a0000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1e000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1198000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd953300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e0e000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a8000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce953301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce100319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b70280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73800a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x536c0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9780eb68, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001609, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30b40000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b400011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b70258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53780020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb3801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7faf8019, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x67b40001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x57b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bb0260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fab8001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf880260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x66f40001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4353247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7f4009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fff7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x269c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a00018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a00060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x269c0018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a40060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11dc0006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de5c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b70228, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f514005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001644, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd080240, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f130005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001688, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340801, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f130004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01051e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42d051f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ed2c005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96c0fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01051f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000055, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5170309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x195c07f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x196007f6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04340001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x6b740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001665, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a702a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ab0298, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f634014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e76401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56680020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8113320, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce480298, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce8802a0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc5170319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b702b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x255c000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f5f4001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8113330, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf4802b0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11340001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x195c07e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x196007ee, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8353300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1e4001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8353301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce4802d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8100309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8100319, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc48f0250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd4c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x64d80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580005c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc24001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd2000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7df5c00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800016f1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a7003e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a7000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a700064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800016df, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800016f2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ff9c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd80802e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18fc0064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00042, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dd9801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x45980400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b380057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b340213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14f4001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x192807fa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bf0258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a70250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53fc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e7e401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x667c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eebc00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x43300007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7db30011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd3000025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc03ec005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfca200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x192807fa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1d0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2110007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x203c003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0017f5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18fc01e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00185b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40ffd5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0ea24, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14d4001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d52400e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49f0258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a30250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400017, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d534002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dae4005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32e0001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec80270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000174f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00178a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40fff3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ab0268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7daa4005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32a0001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001765, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d1d0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2110007d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8013256, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c0017f2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4113248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b3034b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f13000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001855, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32a4001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd080260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce880268, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ffc0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ec28001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32e0001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253255, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431324f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e72400c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9680fff7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aa4003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aa400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32680003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a800046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4293260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1aa400e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800017e2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc027ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2e6400ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a4009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4240009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19e403e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26680003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12a80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19e400e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19e40064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a40005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06640003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce412082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a640003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800017d0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16a40005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce412082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea64002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4292083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ea68005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a80ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26a400ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40ffca, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2024007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800017e3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4a70280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4ab0278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7eae8014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56680020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce480278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce880280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec80270, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800017fe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800017fe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43b02eb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42302ec, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fa3801a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x47b8020c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x15e00008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1220000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2a206032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x513c001e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e3e001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000180f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b3c0077, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd200000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd3800002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc30001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc1e0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04380032, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf80000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc413248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3269, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33fc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bfc0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd441326a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x173c0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300303, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3f0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ff3c004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001842, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4413249, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x23fc003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1326d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdf830000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd441326e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1fb8ffc6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xddc30000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf813265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001852, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001878, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49f02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c00018, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c0012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001878, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41f02ed, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42302ee, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e2a0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28340001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x313c0bcc, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x393c051f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d3c050e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x393c0560, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d3c054f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x393c1538, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d3c1537, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b740800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e8007c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c42c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a8189a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800018c5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800018f2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0007e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09240002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc42130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a24002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2020002c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1198001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14cc0004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7cd8c00a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc130b7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce0130b5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x5978073a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bb80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf800024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9600e8a8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9640e8a5, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800018a9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc55b0309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d5c0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dad800c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0ffd2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fff9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x442c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7df9c00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c13260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd901325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940fff1, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x66d80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26240007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940fff7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc023007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19e4003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7de1c009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dee000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96000007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c13260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd901325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x261c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940fff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18e00064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06281911, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14f4001d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24cc0003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001915, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x800019af, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001a2b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc48032b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc480333, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc48033b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc480343, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98800011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46640400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04203000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b3c0057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b200213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e3e000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04180000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f438001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00068, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213254, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a1c003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00065, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1e0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97800062, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x43bc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fcbc001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc7df032b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1fc00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0101, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c0102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001994, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001982, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffcb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001995, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc1325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98800009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x41bc0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x53fc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e7fc011, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd3c00025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0012, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x653c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dbd8001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ff8f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc55b0309, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x3d5c0010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x05540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d91800c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580fff8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09780001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9580005d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200101, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400058, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dc24001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7df9c00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95c00053, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e41c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a70003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a7000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33240003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a400046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1a7000e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001a21, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f270009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x266400ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27240003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06640002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16700005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001a0f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x16700005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e730002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4252083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e724005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a40ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x267000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001a22, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ff9f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001a31, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213246, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4253245, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e26401a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x46640400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04203000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4213267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b180057, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b200213, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e1a000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce000024, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800060, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4193247, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200101, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x30f00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95800056, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001aa2, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001a90, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf00325b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001aa3, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd2400025, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x4664001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ff9c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc49b02e9, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99800008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc430000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2b300008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf000013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x244c00ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc4c0200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc44f0200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc410000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d158010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x059cc000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccdd0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0037, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000049, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c003a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500e69a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d0003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d40021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd840004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c003c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x14cc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c00028, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000033, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc438000b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x27fc0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1bfc0078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7ffbc00c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x99000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0120840, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x282c0040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001ae8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0121841, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x282c001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c07c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04200004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9ac0fffb, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8000034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940e66b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800004a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0036, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9900fffe, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18cc0021, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc00047, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc000046, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0039, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c003d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24d003ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d47fea, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x18d87ff4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd00004c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd40004e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd80004d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c405, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c406, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x295c0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8c1325e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcdc0001a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11980002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x4110000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0160800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7d15000a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0164010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c080, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c082, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc01c083, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c084, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400048, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c003b, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c40a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd901c40d, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c410, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c40e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd801c40f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc40c0040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9940ffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04140096, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1c400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc411c401, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9500fffa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424003e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04d00001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x11100002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd01c40c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0180034, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd81c411, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd841c414, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0a540001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcd41c412, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x2468000f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc419c416, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x41980003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc41c003f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7dda0001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x12200002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x10cc0002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xccc1c40c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd901c411, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce41c412, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xce292e40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e01, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e02, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e03, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc120000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x31144000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xcc3c000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x33f80003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x9780e601, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x188cfff0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x04e40002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400006, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x96400003, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80001b74, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x54106500, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0x7e000200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e020204, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc00a0505, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbf8c007f, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb8900904, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb8911a04, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb8920304, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb8930b44, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x921c0d0c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x921c1c13, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x921d0c12, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x811c1d1c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x811c111c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x921cff1c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000400, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x921dff10, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000100, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x81181d1c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e040218, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x54106900, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0x7e080200, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x7e100204, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbefc00ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00010000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x24200087, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x262200ff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000001f0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x20222282, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x28182111, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-    { PwrCmdWrite, 0x54116f00, mmCP_DFY_ADDR_LO                           },
-    { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4540fe8, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000041, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000000c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54116f00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb454105e, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000c0, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54117300, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4541065, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000500, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000001c, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54117700, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4541069, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000444, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x0000008a, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x54117b00, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-    { PwrCmdWrite, 0x00000000, mmCP_MEC_CNTL                              },
-    { PwrCmdWrite, 0x00000000, mmCP_MEC_CNTL                              },
-    { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x54116f00, mmCP_MQD_BASE_ADDR                         },
-    { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-    { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-    { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-    { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-    { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-    { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-    { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-    { PwrCmdWrite, 0x00000005, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x54117300, mmCP_MQD_BASE_ADDR                         },
-    { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-    { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-    { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-    { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-    { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-    { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-    { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-    { PwrCmdWrite, 0x00000006, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x54117700, mmCP_MQD_BASE_ADDR                         },
-    { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-    { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-    { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-    { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-    { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-    { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-    { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-    { PwrCmdWrite, 0x00000007, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x54117b00, mmCP_MQD_BASE_ADDR                         },
-    { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-    { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-    { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-    { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-    { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-    { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-    { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-    { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000104, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000204, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000304, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000404, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000504, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000604, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000704, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000005, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000105, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000205, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000305, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000405, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000505, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000605, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000705, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000006, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000106, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000206, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000306, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000406, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000506, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000606, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000706, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000007, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000107, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000207, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000307, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000407, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000507, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000607, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000707, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000008, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000108, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000208, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000308, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000408, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000508, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000608, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000708, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000009, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000109, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000209, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000309, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000409, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000509, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000609, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000709, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-    { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-    { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-    { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-    { PwrCmdWrite, 0x01010101, mmCP_PQ_WPTR_POLL_CNTL1                    },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-    { PwrCmdEnd,   0x00000000, 0x00000000                                 },
+    { 0x00000000, mmMC_VM_AGP_BASE                           },
+    { 0x00000002, mmMC_VM_AGP_BOT                            },
+    { 0x00000000, mmMC_VM_AGP_TOP                            },*/
+    { 0x04000000, mmATC_VM_APERTURE0_LOW_ADDR                },
+    { 0x0400ff20, mmATC_VM_APERTURE0_HIGH_ADDR               },
+    { 0x00000002, mmATC_VM_APERTURE0_CNTL                    },
+    { 0x0000ffff, mmATC_VM_APERTURE0_CNTL2                   },
+    { 0x00000001, mmATC_VM_APERTURE1_LOW_ADDR                },
+    { 0x00000000, mmATC_VM_APERTURE1_HIGH_ADDR               },
+    { 0x00000000, mmATC_VM_APERTURE1_CNTL                    },
+    { 0x00000000, mmATC_VM_APERTURE1_CNTL2                   },
+    //{ 0x00000000, mmMC_ARB_RAMCFG                            },
+    { 0x12011003, mmGB_ADDR_CONFIG                           },
+    { 0x00800010, mmGB_TILE_MODE0                            },
+    { 0x00800810, mmGB_TILE_MODE1                            },
+    { 0x00801010, mmGB_TILE_MODE2                            },
+    { 0x00801810, mmGB_TILE_MODE3                            },
+    { 0x00802810, mmGB_TILE_MODE4                            },
+    { 0x00802808, mmGB_TILE_MODE5                            },
+    { 0x00802814, mmGB_TILE_MODE6                            },
+    { 0x00000000, mmGB_TILE_MODE7                            },
+    { 0x00000004, mmGB_TILE_MODE8                            },
+    { 0x02000008, mmGB_TILE_MODE9                            },
+    { 0x02000010, mmGB_TILE_MODE10                           },
+    { 0x06000014, mmGB_TILE_MODE11                           },
+    { 0x00000000, mmGB_TILE_MODE12                           },
+    { 0x02400008, mmGB_TILE_MODE13                           },
+    { 0x02400010, mmGB_TILE_MODE14                           },
+    { 0x02400030, mmGB_TILE_MODE15                           },
+    { 0x06400014, mmGB_TILE_MODE16                           },
+    { 0x00000000, mmGB_TILE_MODE17                           },
+    { 0x0040000c, mmGB_TILE_MODE18                           },
+    { 0x0100000c, mmGB_TILE_MODE19                           },
+    { 0x0100001c, mmGB_TILE_MODE20                           },
+    { 0x01000034, mmGB_TILE_MODE21                           },
+    { 0x01000024, mmGB_TILE_MODE22                           },
+    { 0x00000000, mmGB_TILE_MODE23                           },
+    { 0x0040001c, mmGB_TILE_MODE24                           },
+    { 0x01000020, mmGB_TILE_MODE25                           },
+    { 0x01000038, mmGB_TILE_MODE26                           },
+    { 0x02c00008, mmGB_TILE_MODE27                           },
+    { 0x02c00010, mmGB_TILE_MODE28                           },
+    { 0x06c00014, mmGB_TILE_MODE29                           },
+    { 0x00000000, mmGB_TILE_MODE30                           },
+    { 0x00000000, mmGB_TILE_MODE31                           },
+    { 0x000000a8, mmGB_MACROTILE_MODE0                       },
+    { 0x000000a4, mmGB_MACROTILE_MODE1                       },
+    { 0x00000090, mmGB_MACROTILE_MODE2                       },
+    { 0x00000090, mmGB_MACROTILE_MODE3                       },
+    { 0x00000090, mmGB_MACROTILE_MODE4                       },
+    { 0x00000090, mmGB_MACROTILE_MODE5                       },
+    { 0x00000090, mmGB_MACROTILE_MODE6                       },
+    { 0x00000000, mmGB_MACROTILE_MODE7                       },
+    { 0x000000ee, mmGB_MACROTILE_MODE8                       },
+    { 0x000000ea, mmGB_MACROTILE_MODE9                       },
+    { 0x000000e9, mmGB_MACROTILE_MODE10                      },
+    { 0x000000e5, mmGB_MACROTILE_MODE11                      },
+    { 0x000000e4, mmGB_MACROTILE_MODE12                      },
+    { 0x000000e0, mmGB_MACROTILE_MODE13                      },
+    { 0x00000090, mmGB_MACROTILE_MODE14                      },
+    { 0x00000000, mmGB_MACROTILE_MODE15                      },
+    { 0x00900000, mmHDP_NONSURFACE_BASE                      },
+    { 0x00008000, mmHDP_NONSURFACE_INFO                      },
+    { 0x3fffffff, mmHDP_NONSURFACE_SIZE                      },
+    { 0x00000003, mmBIF_FB_EN                                },
+    //{ 0x00000000, mmMC_VM_FB_OFFSET                          },
+    { 0x00000000, mmSRBM_CNTL                                },
+    { 0x00020000, mmSRBM_CNTL                                },
+    { 0x80000000, mmATC_VMID0_PASID_MAPPING                  },
+    { 0x00000000, mmATC_VMID_PASID_MAPPING_UPDATE_STATUS     },
+    { 0x00000000, mmRLC_CNTL                                 },
+    { 0x00000000, mmRLC_CNTL                                 },
+    { 0x00000000, mmRLC_CNTL                                 },
+    { 0xe0000000, mmGRBM_GFX_INDEX                           },
+    { 0x00000000, mmCGTS_TCC_DISABLE                         },
+    { 0x00000000, mmTCP_ADDR_CONFIG                          },
+    { 0x000000ff, mmTCP_ADDR_CONFIG                          },
+    { 0x76543210, mmTCP_CHAN_STEER_LO                        },
+    { 0xfedcba98, mmTCP_CHAN_STEER_HI                        },
+    { 0x00000000, mmDB_DEBUG2                                },
+    { 0x00000000, mmDB_DEBUG                                 },
+    { 0x00002b16, mmCP_QUEUE_THRESHOLDS                      },
+    { 0x00006030, mmCP_MEQ_THRESHOLDS                        },
+    { 0x01000104, mmSPI_CONFIG_CNTL_1                        },
+    { 0x98184020, mmPA_SC_FIFO_SIZE                          },
+    { 0x00000001, mmVGT_NUM_INSTANCES                        },
+    { 0x00000000, mmCP_PERFMON_CNTL                          },
+    { 0x01180000, mmSQ_CONFIG                                },
+    { 0x00000000, mmVGT_CACHE_INVALIDATION                   },
+    { 0x00000000, mmSQ_THREAD_TRACE_BASE                     },
+    { 0x0000df80, mmSQ_THREAD_TRACE_MASK                     },
+    { 0x02249249, mmSQ_THREAD_TRACE_MODE                     },
+    { 0x00000000, mmPA_SC_LINE_STIPPLE_STATE                 },
+    { 0x00000000, mmCB_PERFCOUNTER0_SELECT1                  },
+    { 0x06000100, mmCGTT_VGT_CLK_CTRL                        },
+    { 0x00000007, mmPA_CL_ENHANCE                            },
+    { 0x00000001, mmPA_SC_ENHANCE                            },
+    { 0x00ffffff, mmPA_SC_FORCE_EOV_MAX_CNTS                 },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000010, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000020, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000030, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000040, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000050, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000060, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000070, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000080, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000090, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000a0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000b0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000c0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000d0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000e0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x000000f0, mmSRBM_GFX_CNTL                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmRLC_PG_CNTL                              },
+    { 0x00000000, mmGRBM_STATUS2                             },
+    { 0x15000000, mmCP_ME_CNTL                               },
+    { 0x50000000, mmCP_MEC_CNTL                              },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x0000000e, mmSH_MEM_APE1_BASE                         },
+    { 0x0000020d, mmSH_MEM_APE1_LIMIT                        },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmSH_MEM_CONFIG                            },
+    { 0x00000320, mmSH_MEM_CONFIG                            },
+    { 0x00000000, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_RB_VMID                               },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmRLC_CNTL                                 },
+    { 0x00000000, mmRLC_CNTL                                 },
+    { 0x00000000, mmRLC_SRM_CNTL                             },
+    { 0x00000002, mmRLC_SRM_CNTL                             },
+    { 0x00000000, mmCP_ME_CNTL                               },
+    { 0x15000000, mmCP_ME_CNTL                               },
+    { 0x00000000, mmCP_MEC_CNTL                              },
+    { 0x50000000, mmCP_MEC_CNTL                              },
+    { 0x80000004, mmCP_DFY_CNTL                              },
+    { 0x0840800a, mmCP_RB0_CNTL                              },
+    { 0xf30fff0f, mmTCC_CTRL                                 },
+    { 0x00000002, mmTCC_EXE_DISABLE                          },
+    { 0x000000ff, mmTCP_ADDR_CONFIG                          },
+    { 0x540ff000, mmCP_CPC_IC_BASE_LO                        },
+    { 0x000000b4, mmCP_CPC_IC_BASE_HI                        },
+    { 0x00010000, mmCP_HYP_MEC1_UCODE_ADDR                   },
+    { 0x00041b75, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000710e8, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000910dd, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000a1081, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000b016f, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000c0e3c, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000d10ec, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000e0188, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00101b5d, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00150a6c, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00170c5e, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x001d0c8c, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x001e0cfe, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00221408, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00370d7b, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00390dcb, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x003c142f, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x003f0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00400e63, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00500f62, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00460fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00490fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x005811d4, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00680ad6, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00760b00, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00780b0c, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00790af7, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x007d1aba, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x007e1abe, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00591260, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x005a12fb, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00861ac7, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x008c1b01, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x008d1b34, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a014b9, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a1152e, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a216fb, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a41890, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a31906, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00a50b14, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00621387, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x005c0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00160a75, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+    { 0x00010000, mmCP_HYP_MEC2_UCODE_ADDR                   },
+    { 0x00041b75, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000710e8, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000910dd, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000a1081, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000b016f, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000c0e3c, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000d10ec, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000e0188, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00101b5d, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00150a6c, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00170c5e, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x001d0c8c, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x001e0cfe, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00221408, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00370d7b, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00390dcb, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x003c142f, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x003f0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00400e63, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00500f62, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00460fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00490fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x005811d4, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00680ad6, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00760b00, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00780b0c, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00790af7, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x007d1aba, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x007e1abe, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00591260, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x005a12fb, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00861ac7, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x008c1b01, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x008d1b34, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a014b9, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a1152e, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a216fb, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a41890, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a31906, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00a50b14, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00621387, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x005c0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00160a75, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+    { 0x00000000, 0xFFFFFFFF                                 },
+};
+
+static const PWR_DFY_Section pwr_virus_section1 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540fe800,
+       .dfy_data = {
+       0x7e000200, 0x7e020201, 0x7e040204, 0x7e060205, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0xbf810000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54106f00, 0x000400b4, 0x00004000, 0x00804fac, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 416
+};
+
+static const PWR_DFY_Section pwr_virus_section2 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540fef00,
+       .dfy_data = {
+       0xc0031502, 0x00001e00, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 16
+};
+
+static const PWR_DFY_Section pwr_virus_section3 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540ff000,
+       .dfy_data = {
+       0xc424000b, 0x80000145, 0x94800001, 0x94c00001, 0x95000001, 0x95400001, 0x95800001, 0xdc810000,
+       0xdcc10000, 0xdd010000, 0xdd410000, 0xdd810000, 0xc4080061, 0xd8400013, 0xd8000003, 0xc40c0001,
+       0x24ccffff, 0x3cd08000, 0x9500fffd, 0x1cd0ffcf, 0x7d018001, 0xc4140004, 0x050c0019, 0xd8400008,
+       0x84c00000, 0x80000023, 0x80000067, 0x8000006a, 0x8000006d, 0x80000079, 0x80000084, 0x8000008f,
+       0x80000099, 0x800000a0, 0x800000af, 0xd8400053, 0xc4080007, 0x388c0001, 0x08880002, 0x04100003,
+       0x94c00005, 0x98800003, 0x04100004, 0x8000002d, 0x04100005, 0x8c00003f, 0x8c000043, 0x28cc0000,
+       0xccc00050, 0x8c000055, 0x28080001, 0xcc000004, 0x7d808001, 0xd8400013, 0xd88130b8, 0xcd400008,
+       0xdc180000, 0xdc140000, 0xdc100000, 0xdc0c0000, 0xcc800005, 0xdc080000, 0x80000168, 0xc40c000e,
+       0x28cc0008, 0xccc00013, 0x90000000, 0xcd013278, 0xc4113278, 0x95000001, 0x24cc0700, 0xd8400029,
+       0xc4113255, 0xcd01324f, 0xc4113254, 0x1d10ffdf, 0xcd013254, 0x10cc0014, 0x1d10c017, 0x7d0d000a,
+       0xd8400013, 0xd8400008, 0xcd0130b7, 0x14cc0010, 0x90000000, 0xd9c00036, 0x8000005d, 0xd8400013,
+       0xc00c4000, 0xccc130b5, 0xc40c000e, 0x28cc0008, 0xccc00013, 0xc40c0021, 0x14d00011, 0x9500fffe,
+       0xdc030000, 0xd800000c, 0xd800000d, 0xc40c005e, 0x94c01b10, 0xd8400013, 0x90000000, 0xc00e0080,
+       0xccc130b5, 0x8000013b, 0xc00e0800, 0xccc130b5, 0x8000013b, 0xd8400053, 0x04100006, 0x8c00003f,
+       0x8c000043, 0x28cc0000, 0xccc00050, 0x8c000055, 0x280c0008, 0xccc00052, 0xd8000021, 0x28180039,
+       0x80000034, 0xd8400053, 0x04100007, 0x8c00003f, 0x8c000043, 0x28cc0001, 0xccc00050, 0x8c000055,
+       0x280c0010, 0xccc00052, 0x28180039, 0x80000034, 0xd8400053, 0x04100008, 0x8c00003f, 0x8c000043,
+       0x28cc0003, 0xccc00050, 0x8c000055, 0x280c0020, 0xccc00052, 0x28180039, 0x80000034, 0xdc030000,
+       0xd8000069, 0x28080001, 0xc428000d, 0x7ca88004, 0xcc800079, 0x04280001, 0xcc00006f, 0x8000013b,
+       0x80000034, 0x04100010, 0x8c00003f, 0x8c000043, 0xccc00078, 0x8c000055, 0x28180080, 0x80000034,
+       0x04100001, 0xc40c000e, 0x28cc0008, 0xccc00013, 0xcd013278, 0xc4113278, 0x95000001, 0xc00c4000,
+       0xc4113254, 0x1d10c017, 0xd8400013, 0xd8400008, 0xccc130b5, 0xcd0130b7, 0x8000013b, 0x95c00001,
+       0x96000001, 0x96400001, 0x96800001, 0x96c00001, 0x97000001, 0x97400001, 0x97800001, 0x97c00001,
+       0xdc810000, 0xc40c000c, 0xcd4c0380, 0xcdcc0388, 0x55dc0020, 0xcdcc038c, 0xce0c0390, 0x56200020,
+       0xce0c0394, 0xce4c0398, 0x56640020, 0xce4c039c, 0xce8c03a0, 0x56a80020, 0xce8c03a4, 0xcecc03a8,
+       0x56ec0020, 0xcecc03ac, 0xcf0c03b0, 0x57300020, 0xcf0c03b4, 0xcf4c03b8, 0x57740020, 0xcf4c03bc,
+       0xcf8c03c0, 0x57b80020, 0xcf8c03c4, 0xcfcc03c8, 0x57fc0020, 0xcfcc03cc, 0xd9000033, 0xc41c0009,
+       0x25dc0010, 0x95c0fffe, 0xd8400013, 0xc41c000c, 0x05dc002f, 0xcdc12009, 0xc41d200a, 0xd8400013,
+       0xcc012009, 0xd9000034, 0x25e01c00, 0x12200013, 0x25e40300, 0x12640008, 0x25e800c0, 0x12a80002,
+       0x25ec003f, 0x7e25c00a, 0x7eae400a, 0x7de5c00a, 0xddc10000, 0xc02ee000, 0xcec1c200, 0xc40c005f,
+       0xccc00037, 0x24d000ff, 0x31100006, 0x9500007b, 0x8c000190, 0xdc1c0000, 0xd8400013, 0xcdc1c200,
+       0xc40c000c, 0xc4df0388, 0xc4d7038c, 0x51540020, 0x7d5dc01a, 0xc4e30390, 0xc4d70394, 0x51540020,
+       0x7d62001a, 0xc4e70398, 0xc4d7039c, 0x51540020, 0x7d66401a, 0xc4eb03a0, 0xc4d703a4, 0x51540020,
+       0x7d6a801a, 0xc4ef03a8, 0xc4d703ac, 0x51540020, 0x7d6ec01a, 0xc4f303b0, 0xc4d703b4, 0x51540020,
+       0x7d73001a, 0xc4f703b8, 0xc4d703bc, 0x51540020, 0x7d77401a, 0xc4fb03c0, 0xc4d703c4, 0x51540020,
+       0x7d7b801a, 0xc4ff03c8, 0xc4d703cc, 0x51540020, 0x7d7fc01a, 0xdc080000, 0xcc800013, 0xc4d70380,
+       0xc4080001, 0x1c88001c, 0xcd400008, 0xc40c0083, 0x94c00010, 0xdc0e0000, 0x94c0000e, 0xc40c0082,
+       0x24d00001, 0x9900000b, 0x18cc01e3, 0x3cd00004, 0x95000008, 0xc40c0085, 0x18cc006a, 0x98c00005,
+       0xc40c0082, 0x18cc01e3, 0x3cd00004, 0x9900fffa, 0xdc180000, 0xdc140000, 0xdc100000, 0xdc0c0000,
+       0xcc800004, 0xdc080000, 0x90000000, 0xc4080001, 0x1c88001c, 0xcd400008, 0xdc180000, 0xdc140000,
+       0xdc100000, 0xdc0c0000, 0xcc800004, 0xdc080000, 0x90000000, 0xd8400051, 0xc428000c, 0x04180018,
+       0x32640002, 0x9a80001f, 0x9a40001e, 0xcd800013, 0xc4293265, 0x040c0000, 0x1aac0027, 0x2aa80080,
+       0xce813265, 0x9ac00017, 0xd80002f1, 0x04080002, 0x08880001, 0xd8080250, 0xd8080258, 0xd8080230,
+       0xd8080238, 0xd8080240, 0xd8080248, 0xd8080268, 0xd8080270, 0xd8080278, 0xd8080280, 0xd8080228,
+       0xd8000367, 0x9880fff3, 0x04080010, 0x08880001, 0xd80c0309, 0xd80c0319, 0x04cc0001, 0x9880fffc,
+       0x7c408001, 0x88000000, 0xc00e0100, 0xd8400013, 0xd8400008, 0xccc130b5, 0x8000016e, 0xc4180032,
+       0x29980008, 0xcd800013, 0x95800001, 0x7c40c001, 0x18d0003f, 0x24d4001f, 0x24d80001, 0x155c0001,
+       0x05e80180, 0x9900000b, 0x202c003d, 0xcd800010, 0xcec1325b, 0xc42d325b, 0x96c00001, 0x86800000,
+       0x80000168, 0x80000aa7, 0x80000bfc, 0x800012e9, 0xc4200007, 0x0a200001, 0xce000010, 0x80001b70,
+       0x7c40c001, 0x8c000190, 0xc410001b, 0xd8000032, 0xd8000031, 0x9900091a, 0x7c408001, 0x88000000,
+       0x24d000ff, 0x05280196, 0x18d4fe04, 0x29540008, 0xcd400013, 0x86800000, 0x800001b4, 0x8000032b,
+       0x80000350, 0x80000352, 0x8000035f, 0x80000701, 0x8000047c, 0x8000019f, 0x80000800, 0xc419325b,
+       0x1d98001f, 0xcd81325b, 0x8c00003f, 0xc4140004, 0xd8400008, 0x04100002, 0x8c000043, 0x28cc0002,
+       0xccc00050, 0xc43c0044, 0x27fc0003, 0x9bc00002, 0x97c00006, 0xc00c4000, 0xccc130b5, 0x8c000055,
+       0xd8400013, 0xd88130b8, 0xcd400008, 0x90000000, 0xd8400008, 0xcd400013, 0x7d40c001, 0xd8400028,
+       0xd8400029, 0xd9400036, 0xc4193256, 0xc41d3254, 0x15540008, 0xcd400009, 0xcd40005b, 0xcd40005e,
+       0xcd40005d, 0xd840006d, 0xc421325a, 0xc42d3249, 0x11540015, 0x19a4003c, 0x1998003f, 0x1af0007d,
+       0x11dc000b, 0x1264001f, 0x15dc000d, 0x7d65400a, 0x13300018, 0x1a38003f, 0x7dd5c00a, 0x7df1c00a,
+       0xcd800045, 0xcdc00100, 0xc411326a, 0xc415326b, 0xc419326c, 0xc41d326d, 0xc425326e, 0xc4293279,
+       0xce800077, 0xcd000056, 0xcd400057, 0xcd800058, 0xcdc00059, 0xc4193265, 0x259c8000, 0x99c00004,
+       0xce40005a, 0x29988000, 0xcd813265, 0xc4113248, 0x2510000f, 0xcd000073, 0xc418000d, 0xc411326f,
+       0x17300019, 0x97000009, 0x25140fff, 0x95400007, 0xd800003a, 0x8c001b6d, 0xc4153279, 0xcd400077,
+       0xcd00005f, 0xd8000075, 0x26f00001, 0x15100010, 0x7d190004, 0xcd000035, 0x97000035, 0x1af07fe8,
+       0xd8800013, 0xd8400010, 0xd8400008, 0xcf00000d, 0xcf00000a, 0x8c001427, 0x04340022, 0x07740001,
+       0x04300010, 0xdf430000, 0x7c434001, 0x7c408001, 0xd4412e01, 0x0434001e, 0xdf430000, 0xd4400078,
+       0xdf030000, 0xd4412e40, 0xd8400013, 0xcc41c030, 0xcc41c031, 0xc43dc031, 0xccc00013, 0x04343000,
+       0xc4113246, 0xc41d3245, 0xcf413267, 0x51100020, 0x7dd1c01a, 0xc4353267, 0x45dc0160, 0xc810001f,
+       0x1b4c0057, 0x1b700213, 0x1b740199, 0x7f4f400a, 0x7f73400a, 0x55180020, 0x2198003f, 0xd1c00025,
+       0xcf400024, 0xcd000026, 0xcd800026, 0xd8400027, 0x9bc00001, 0x248dfffe, 0xd8800013, 0xccc12e00,
+       0x7c434001, 0x7c434001, 0x8c00142b, 0xc43c000e, 0x1af4007d, 0x2bfc0008, 0x33740003, 0x26d80001,
+       0xcfc00013, 0x1ae8003e, 0x9680000c, 0xc4253277, 0x26680001, 0x96800009, 0x2a640002, 0xce413277,
+       0xd8400013, 0xc4253348, 0xce413348, 0xc4253348, 0x96400001, 0xcfc00013, 0x9b400003, 0x958000d8,
+       0x80000315, 0xc4253277, 0x04303000, 0x26680001, 0xcf013267, 0xc4193246, 0xc41d3245, 0xc4313267,
+       0x96800041, 0x51980020, 0x1b342010, 0x7d9d801a, 0x1714000c, 0x25540800, 0x1b30c012, 0x459801b0,
+       0x7d77400a, 0x7f37000a, 0x2b300000, 0xcf00001c, 0xd180001e, 0xd8400021, 0x04240010, 0x199c01e2,
+       0x7e5e4002, 0x3e5c0004, 0x3e540002, 0xc428000f, 0x9a80ffff, 0x95c00006, 0xc80c0011, 0xc8140011,
+       0x54d00020, 0x55580020, 0x80000282, 0x95400015, 0xc80c0011, 0x0a640002, 0x041c0001, 0x45980008,
+       0x54d00020, 0x96400004, 0xc8140011, 0x45980004, 0x041c0000, 0xcf00001c, 0xd180001e, 0xd8400021,
+       0xc428000f, 0x9a80ffff, 0x99c00003, 0xc8180011, 0x80000282, 0xc8140011, 0x55580020, 0x80000282,
+       0x45980004, 0xc80c0011, 0xcf00001c, 0xd180001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc8100011,
+       0xc8140011, 0x55580020, 0xd8400013, 0xccc1334e, 0xcd01334f, 0xcd413350, 0xcd813351, 0xd881334d,
+       0xcfc00013, 0xc4193273, 0xc41d3275, 0xc40d3271, 0xc4113270, 0xc4153274, 0x50cc0020, 0x7cd0c01a,
+       0x7cdcc011, 0x05900008, 0xcd00006a, 0xcdc0006b, 0xc41d3272, 0x7d594002, 0x54d00020, 0xd8800013,
+       0xccc12e23, 0xcd012e24, 0xcdc12e25, 0xcfc00013, 0xc4193246, 0xc41d3245, 0xc4313267, 0x15540002,
+       0x51980020, 0x7d9d801a, 0xc81c001f, 0x1b340057, 0x1b280213, 0x1b300199, 0x45980198, 0x7f37000a,
+       0x7f2b000a, 0x55e40020, 0xcf000024, 0xd1800025, 0xcdc00026, 0xce400026, 0xd8400027, 0xcd40000d,
+       0xcd40000a, 0xc40d3249, 0x20cc003c, 0xccc13249, 0xc4113274, 0xdd430000, 0xc01e0001, 0x29dc0002,
+       0x04280000, 0xd8000036, 0xcc400078, 0xcc400078, 0x2d540002, 0x95400022, 0x078c0000, 0x07d40000,
+       0x8c00120d, 0x8c001239, 0x8c001232, 0x04f80000, 0x057c0000, 0xcdc00013, 0xc414000d, 0xc41c0019,
+       0x7dd5c005, 0x25dc0001, 0xd840007c, 0xd8400074, 0xd8400069, 0xc40c005e, 0x94c018a6, 0xd4412e22,
+       0xd800007c, 0xc40c005e, 0x94c018a2, 0x95c00007, 0xc40c0019, 0x7cd4c005, 0x24cc0001, 0x94c00008,
+       0x9680fffc, 0x800002e3, 0xc40c0057, 0x7cd0c002, 0x94c00003, 0x9680fffd, 0x800002e3, 0xd8000069,
+       0xcfc00013, 0xcd013273, 0xcd013275, 0xd8000074, 0xc414005e, 0x9540188f, 0xcfc00013, 0xc40d3249,
+       0xc013cfff, 0x7cd0c009, 0xccc13249, 0x9680000b, 0xc40c0077, 0x38d00001, 0x99000006, 0x04cc0002,
+       0xdcc30000, 0xc40c005e, 0x94c01882, 0xd4400078, 0xd800000d, 0x80000304, 0x7c41c001, 0x7c41c001,
+       0xd840002f, 0xc41c0015, 0x95c0ffff, 0xd8400030, 0xc41c0016, 0x95c0ffff, 0xd8000030, 0xc41c0016,
+       0x99c0ffff, 0xd800002f, 0xc41c0015, 0x99c0ffff, 0xc81c001f, 0x49980198, 0x55e40020, 0x459801a0,
+       0xcf000024, 0xd1800025, 0xcdc00026, 0xce400026, 0xd8400027, 0x04302000, 0xcfc00013, 0xcf013267,
+       0xc4313267, 0x96800004, 0x97000001, 0xd8000036, 0x80000329, 0xd8800013, 0xcc812e00, 0x04302000,
+       0xcfc00013, 0xcf013267, 0xc4313267, 0x97000001, 0xc4193256, 0xc42d3249, 0x16ec001f, 0xd8000028,
+       0xd800002b, 0x1998003e, 0xcec00031, 0xd8000036, 0xd8000010, 0x97800004, 0xd8400010, 0xce00000a,
+       0x1a18003e, 0xcd800008, 0x90000000, 0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0x04100000,
+       0x7d43c001, 0xcd400013, 0xc4093249, 0x1888003e, 0x94800015, 0xd8400074, 0x8c000671, 0xcd400013,
+       0x9a400006, 0xc419324c, 0x259c0001, 0x1598001f, 0x95c0000d, 0x9580000c, 0x99000003, 0xd8400036,
+       0x04100001, 0xc40c0021, 0x14d80011, 0x24dc00ff, 0x31e00002, 0x31dc0003, 0x9580fff0, 0x9a000003,
+       0x99c00002, 0xd9c00036, 0x94800004, 0xd8000074, 0xc418005e, 0x95801827, 0xcf800008, 0x90000000,
+       0xd8800036, 0x90000000, 0xd8c00036, 0xc424000b, 0x32640002, 0x9a400004, 0xc4180014, 0x9580ffff,
+       0xd840002f, 0xc40c0021, 0x14dc0011, 0x95c0fffe, 0xccc00037, 0x8c000190, 0x90000000, 0xd8400008,
+       0xd800006d, 0xc41d3246, 0xc4193245, 0x51dc0020, 0x7d9d801a, 0xd8400028, 0xd8400029, 0xc420000b,
+       0x32200002, 0x9a0000ad, 0x04200032, 0xd9000010, 0xde030000, 0xd8400033, 0x04080000, 0xc43c0009,
+       0x27fc0002, 0x97c0fffe, 0xc42c0015, 0x96c0ffff, 0xd800002e, 0xc42d3249, 0x1af4003e, 0x9740004d,
+       0xc428000d, 0xc4080060, 0x7ca88005, 0x24880001, 0x7f4b4009, 0x97400046, 0xc4313274, 0xc4100057,
+       0x7d33400c, 0x97400009, 0x28240100, 0x7e6a4004, 0xce400079, 0x1eecffdd, 0xcec13249, 0xcf013273,
+       0xcf013275, 0x800003c3, 0xc429326f, 0x1aa80030, 0x96800006, 0x28240001, 0xc428000d, 0x06a80008,
+       0x7e6a8004, 0xce800035, 0xc41d3272, 0x25cc0001, 0x10cc0004, 0x19e80042, 0x25dc0006, 0x11dc0001,
+       0x7e8e800a, 0x7de9c00a, 0xc40d3271, 0xc4293270, 0x50cc0020, 0x7ce8c01a, 0x7cd30011, 0x11e80007,
+       0x2aa80000, 0xce80001c, 0xd300001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc4300011, 0x1b30003f,
+       0x33300000, 0xc4240059, 0x1660001f, 0x7e320009, 0xc0328000, 0x7e72400a, 0x0430000c, 0x9a000002,
+       0x04300008, 0xc02ac000, 0x7d310002, 0x17300002, 0x2aa87600, 0x7cd0c011, 0xcdc00024, 0xd0c00025,
+       0xce800026, 0x04280222, 0xce800026, 0x96000002, 0xce400026, 0xd8400027, 0xc4280058, 0x22ec003d,
+       0xcec13249, 0xcd013273, 0xce813275, 0xd800007b, 0xc8380018, 0x57b00020, 0x04343108, 0xc429325d,
+       0x040c3000, 0x13740008, 0x2374007e, 0x32a80003, 0xccc13267, 0xc40d3267, 0x18ec0057, 0x18e40213,
+       0x18cc0199, 0x7cecc00a, 0x7ce4c00a, 0x94800003, 0xd4400078, 0x800003e7, 0x04200022, 0xde030000,
+       0xccc00024, 0xd1800025, 0xcf400026, 0xd4400026, 0xd8400027, 0x04200010, 0xde030000, 0xccc00024,
+       0x45980104, 0xd1800025, 0xd4400026, 0xcf800026, 0xcf000026, 0xd8400027, 0x49980104, 0x9a80000a,
+       0xc81c001f, 0x45980168, 0x55e00020, 0xccc00024, 0xd1800025, 0xcdc00026, 0xce000026, 0xd8400027,
+       0x800003f2, 0x8c000448, 0xcd400013, 0x040c2000, 0xccc13267, 0xc40d3267, 0x94c00001, 0xc40d3249,
+       0x18cc003e, 0xd8400030, 0xc42c0016, 0x96c0ffff, 0xd8000030, 0xc42c0016, 0x9ac0ffff, 0xd800002f,
+       0xc42c0015, 0x9ac0ffff, 0xd8400034, 0xc4300025, 0xc4340024, 0xc4380081, 0xcf813279, 0xcf41326e,
+       0xcf01326d, 0x94c0000d, 0x254c0700, 0xc424001e, 0x10cc0010, 0x1a641fe8, 0x28cc0726, 0x2a640200,
+       0xd8400013, 0xccc1237b, 0x2264003f, 0xcd400013, 0xd8813260, 0xce41325b, 0xc4240033, 0xc4280034,
+       0xd9000036, 0xd8000010, 0x8c001427, 0x96400006, 0xde430000, 0xce40000c, 0xc40c005e, 0x94c01755,
+       0xd4400078, 0x9680000a, 0xce80000a, 0x06a80002, 0xd8400010, 0xde830000, 0xce80000d, 0xc40c005e,
+       0x94c0174c, 0xd4400078, 0xd8000010, 0x8c00142b, 0xc4393265, 0x2bb80040, 0xd8400032, 0xcf813265,
+       0xc4200012, 0x9a00ffff, 0xc4100044, 0x19180024, 0xc8100072, 0x551c003f, 0x99c00003, 0x95800010,
+       0x8000043d, 0xc00c8000, 0xd840006c, 0x28200000, 0x8000043f, 0xc00c4000, 0x282000f0, 0xcd400013,
+       0xd8400008, 0xc4113255, 0xcd01324f, 0xd8400013, 0xd88130b8, 0xccc130b5, 0xce000053, 0x90000000,
+       0x195c00e8, 0xc4100004, 0x2555fff0, 0xc0360001, 0x042c0000, 0x29540001, 0xd8400008, 0x04240000,
+       0x04280004, 0xc420000b, 0x32200002, 0x9a000009, 0xcd400013, 0xcec1c200, 0xc5e124dc, 0x0aa80001,
+       0x7ef6c001, 0x7e624001, 0x96000001, 0x9a80fff9, 0xc02ee000, 0xcd400013, 0x2555fff0, 0xcec1c200,
+       0x29540008, 0xc81c001f, 0xcd400013, 0x55e00020, 0xc42d3255, 0xc4353259, 0xd8013260, 0x45980158,
+       0xccc00024, 0xd1800025, 0xcdc00026, 0xce000026, 0xd8400027, 0x49980158, 0x45980170, 0xc4200012,
+       0x16200010, 0x9a00fffe, 0xccc00024, 0xd1800025, 0xc429324f, 0xce400026, 0xce800026, 0xcec00026,
+       0xcf400026, 0xd8400027, 0xcd000008, 0x90000000, 0xc40d325b, 0x7d43c001, 0x195400e8, 0x1154000a,
+       0x18dc00e8, 0x05e80488, 0x18d0006c, 0x18f807f0, 0x18e40077, 0x18ec0199, 0x7e6e400a, 0x86800000,
+       0x8000048e, 0x80000494, 0x800004de, 0x80000685, 0x80000686, 0x800006ac, 0x1ccc001f, 0xccc1325b,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x90000000, 0xc4293254, 0x1264000a, 0xc4300004, 0x7d79400a,
+       0x7e7a400a, 0x52a8001e, 0x15180001, 0x7d69401a, 0x202c007d, 0xcec1325b, 0x95000008, 0x95800028,
+       0xc42d3267, 0xc4193246, 0xc41d3245, 0x1aec0028, 0xc40d325c, 0x800004cc, 0xc42d3256, 0xc419324e,
+       0x26e8003f, 0x1aec003e, 0x12f4000e, 0xc41d324d, 0xc40d324f, 0x7d75401a, 0x04100002, 0x7d290004,
+       0x7f8f4001, 0x7f52800f, 0x51980020, 0x7d9d801a, 0x50e00002, 0x51980008, 0x9a800002, 0x800004d1,
+       0x7d0dc002, 0x6665fc00, 0x7e5e401a, 0xcec00008, 0x7da1c011, 0xd140000b, 0xd1c00002, 0x2a644000,
+       0xce400002, 0x7f534002, 0x6665fc00, 0x7e76401a, 0xd1800002, 0xce400002, 0x800004d7, 0xc42d325a,
+       0xc4193258, 0x1aec003e, 0xc41d3257, 0xc4213259, 0x12f4000e, 0x7d75401a, 0x51980020, 0x52200002,
+       0x7d9d801a, 0xcec00008, 0x7da1c011, 0xd140000b, 0xd1c00002, 0x2a644000, 0xce400002, 0x202c003d,
+       0xcf000008, 0xcfc00013, 0xcec1325b, 0xc42d325b, 0x96c00001, 0x90000000, 0xc4193260, 0x259c0007,
+       0x15980004, 0x05e804e3, 0x86800000, 0x800004e7, 0x800004f0, 0x80000505, 0x8000016a, 0xc4380004,
+       0xcfc00013, 0xd8400008, 0xc435325d, 0xd801325b, 0x277401ef, 0xcf41325d, 0xcf800008, 0x90000000,
+       0xc4380004, 0xd8400008, 0x8c000671, 0x9640fff4, 0x17e00008, 0xc418000d, 0xce000009, 0xd84131db,
+       0xcf800008, 0xcd800009, 0xc430001e, 0xcfc00013, 0xc42d325b, 0x1b301ff8, 0x2b300400, 0x2330003f,
+       0x26edf000, 0x7ef2c00a, 0xd8413260, 0xcec1325b, 0x90000000, 0x05a80507, 0x86800000, 0x8000050c,
+       0x80000528, 0x8000057d, 0x800005c2, 0x800005f3, 0xc4380004, 0xd8400008, 0x8c000671, 0xcfc00013,
+       0x9a400012, 0x1bd400e8, 0xc42c004a, 0xcd40005e, 0xc41c004d, 0xcec0005e, 0x99c0000c, 0xc4100019,
+       0x7d150005, 0x25100001, 0x99000008, 0x8c00063b, 0xcfc00013, 0xc4113277, 0x2511fffd, 0xcd013277,
+       0xd801326f, 0x80000624, 0x04240012, 0x1be00fe4, 0xce413260, 0xce000066, 0xcf800008, 0x90000000,
+       0xd8400068, 0xc4380004, 0xd8400008, 0x8c000671, 0xcfc00013, 0x9a400013, 0x1bd400e8, 0xc42c004a,
+       0xcd40005e, 0xc41c004d, 0xcec0005e, 0x99c0000d, 0xc4100019, 0x7d150005, 0x25100001, 0x99000009,
+       0xd8400067, 0x8c00063b, 0xcfc00013, 0xc4113277, 0x2511fffd, 0xcd013277, 0xd801326f, 0x80000624,
+       0x1bd400e8, 0xc42c0060, 0x7ed6c005, 0x26ec0001, 0xc4113271, 0xc4153270, 0xc4193272, 0xc41d3273,
+       0x04280022, 0x51100020, 0x7d51401a, 0xc4113274, 0xc4213275, 0xc4253276, 0xc4313248, 0xd1400061,
+       0x2730000f, 0x13300010, 0x7db1800a, 0xcd800060, 0x96c00002, 0x05dc0008, 0xcdc00062, 0x042c3000,
+       0xcd000063, 0xce000064, 0xce400065, 0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267, 0xce813260,
+       0x52ec0020, 0x7ef2c01a, 0xc820001f, 0x1b700057, 0x1b680213, 0x1b740199, 0x46ec0188, 0x7f73400a,
+       0x7f6b400a, 0x56240020, 0xcf400024, 0xd2c00025, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027,
+       0xc418000d, 0x17e00008, 0xce000009, 0xcec13267, 0xc42d3267, 0x26e01000, 0x9a00fffe, 0xd8400013,
+       0xd9c131fc, 0xcd800009, 0xcf800008, 0x96c00001, 0x90000000, 0xc4380004, 0xd8400008, 0xc4113277,
+       0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001, 0x11dc0008, 0x29dc0001, 0x25140001, 0x191807e4,
+       0x192007ec, 0x95400004, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x9580000e, 0x09980001, 0x041c0001,
+       0x95800005, 0x09980001, 0x51dc0001, 0x69dc0001, 0x9980fffd, 0x7de20014, 0x561c0020, 0xd8400013,
+       0xce013344, 0xcdc13345, 0xcfc00013, 0x95400022, 0x042c3000, 0xcec13267, 0xc42d3246, 0xc4313245,
+       0xc4353267, 0xd8400013, 0xc425334d, 0x26640001, 0x9640fffe, 0xc419334e, 0xc41d334f, 0xc4213350,
+       0xc4253351, 0x52ec0020, 0x1b680057, 0x7ef2c01a, 0x1b700213, 0x1b740199, 0x46ec01b0, 0x7f6b400a,
+       0x7f73400a, 0xcfc00013, 0xcf400024, 0xd2c00025, 0xcd800026, 0xcdc00026, 0xce000026, 0xce400026,
+       0x042c2000, 0xd8400027, 0xcec13267, 0xc42d3267, 0x96c00001, 0x04280032, 0xce813260, 0xd8800068,
+       0xcf800008, 0x90000000, 0xc4380004, 0xd8400008, 0x2010007d, 0xcd01325b, 0xc411325b, 0x1910003e,
+       0x9500fffe, 0x04100040, 0xcd00001b, 0xd8400021, 0xc410000f, 0x9900ffff, 0x04100060, 0xcd00001b,
+       0xd8400021, 0xc410000f, 0x9900ffff, 0xcfc00013, 0x2010003d, 0xcd01325b, 0xc4113277, 0x25140001,
+       0x191807e4, 0x9540000b, 0x2511fffd, 0xcd013277, 0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001,
+       0x11dc0008, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x95800005, 0xd8400013, 0xd8013344, 0xd8013345,
+       0xcfc00013, 0xc4180050, 0xc41c0052, 0x04280042, 0xcd813273, 0xcdc13275, 0xce813260, 0xd9000068,
+       0xd8400067, 0xcf800008, 0x90000000, 0x07d40000, 0x8c00120d, 0x8c00124f, 0x8c001232, 0x057c0000,
+       0x042c3000, 0xc4380004, 0xcfc00013, 0xd8400008, 0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267,
+       0x52ec0020, 0x7ef2c01a, 0x1b680057, 0x1b700213, 0x1b740199, 0xc820001f, 0x46ec0190, 0x7f6b400a,
+       0x7f73400a, 0x56240020, 0xcf400024, 0xd2c00025, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027,
+       0xcfc00013, 0xcec13267, 0xc4153249, 0x2154003d, 0xc41c0019, 0x1bd800e8, 0x7dd9c005, 0x25dc0001,
+       0xc42c004a, 0xcd80005e, 0xc420004d, 0xcec0005e, 0x11dc0010, 0x7e1e000a, 0xcd413249, 0xce01326f,
+       0x28340001, 0x05980008, 0x7f598004, 0xcd800035, 0x1be800e8, 0xc42c004a, 0xce80005e, 0xd801327a,
+       0xd800005f, 0xd8000075, 0xd800007f, 0xc424004c, 0xce41326e, 0xcec0005e, 0x28240100, 0x7e6a4004,
+       0xce400079, 0xc435325d, 0x277401ef, 0x04240020, 0xce41325e, 0xd801325b, 0xd8013260, 0xcf41325d,
+       0xda000068, 0xcf800008, 0x90000000, 0xc4113277, 0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001,
+       0x11dc0008, 0x29dc0001, 0x25140001, 0x9540002d, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x042c3000,
+       0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267, 0xd8400013, 0xc425334d, 0x26640001, 0x9640fffe,
+       0xc419334e, 0xc41d334f, 0xc4213350, 0xc4253351, 0x52ec0020, 0x1b680057, 0x7ef2c01a, 0x1b700213,
+       0x1b740199, 0x46ec01b0, 0x7f6b400a, 0x7f73400a, 0xcfc00013, 0xcf400024, 0xd2c00025, 0xcd800026,
+       0xcdc00026, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027, 0xcec13267, 0xc42d3267, 0x96c00001,
+       0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001, 0x11dc0008, 0xd8400013, 0xcdc1334a, 0xcfc00013,
+       0x90000000, 0xc430000b, 0x33300002, 0x04240000, 0x9b000010, 0x1be000e8, 0x042c0000, 0xc0360001,
+       0x04280004, 0xd8400013, 0xcec1c200, 0xc63124dc, 0x0aa80001, 0x7ef6c001, 0x7e724001, 0x97000001,
+       0x9a80fff9, 0xc02ee000, 0xd8400013, 0xcec1c200, 0x90000000, 0x90000000, 0xc4253260, 0x7fc14001,
+       0xc40d3249, 0x18cc003e, 0x98c00005, 0x194c1c03, 0xccc0003b, 0xc40c002d, 0x80000697, 0xc420004a,
+       0x194c00e8, 0xccc0005e, 0xc40c004c, 0xc431326d, 0x27301fff, 0xce00005e, 0x7cf0c00d, 0x98c00003,
+       0x8c0007e0, 0x95c00008, 0xc430001e, 0x1b301ff8, 0x2b300400, 0x2330003f, 0xcd400013, 0xcf01325b,
+       0x90000000, 0xcd400013, 0xd801325b, 0xc411325d, 0x251001ef, 0xcd01325d, 0x25100007, 0x31100005,
+       0x9900008e, 0xc40c0007, 0xd9000010, 0x8000075e, 0x202c007d, 0xcec1325b, 0xc4293265, 0xc4353254,
+       0x26a9feff, 0xc4380004, 0xd8400008, 0x1374000b, 0xc40c000d, 0xd8000009, 0x1774000d, 0xd8400013,
+       0xc41d30b8, 0xcfc00013, 0x95c00008, 0xc411325d, 0xd801325b, 0xccc00009, 0xcf800008, 0x251001ef,
+       0xcd01325d, 0x90000000, 0xce813265, 0xcf400100, 0xc00ac006, 0xc00e0000, 0x28880700, 0x28cc0014,
+       0x8c0006de, 0x14cc0010, 0x30d4000f, 0x04cc0001, 0x10cc0010, 0x28cc0014, 0x99400009, 0xd8400013,
+       0xc41530b8, 0xcfc00013, 0xc4193265, 0x19980028, 0x99400003, 0x99800002, 0x800006c8, 0xcfc00013,
+       0xc411325d, 0xd801325b, 0xcf800008, 0x251001ef, 0xcd01325d, 0x90000000, 0x15600008, 0xce000009,
+       0xc8380023, 0xc4180081, 0x11a00002, 0x7fa38011, 0xc4100026, 0x05980008, 0x7d1a0002, 0x282c2002,
+       0x3e280008, 0xcec00013, 0xc4300027, 0x042c0008, 0xd3800025, 0xcf000024, 0x202400d0, 0x7ca48001,
+       0xcc800026, 0xccc00026, 0x28240006, 0xcc000026, 0x0a640001, 0x9a40fffe, 0x9a800004, 0x32280000,
+       0x9a800002, 0x9a000000, 0xd8400027, 0x24d8003f, 0xd840003c, 0xcec0003a, 0xd8800013, 0xcd81a2a4,
+       0x90000000, 0xc41d325d, 0x25dc0007, 0xc40d3249, 0x18cc003e, 0x94c0000a, 0xc420004a, 0x194c00e8,
+       0xccc0005e, 0xc40c004c, 0xc431326d, 0x27301fff, 0xce00005e, 0x7cf0c00d, 0x80000712, 0x194c1c03,
+       0xccc0003b, 0xc40c002d, 0x05e80714, 0x86800000, 0x8000071c, 0x80000720, 0x80000747, 0x8000071d,
+       0x800007c4, 0x80000732, 0x80000745, 0x80000744, 0x90000000, 0x98c00006, 0x8000072e, 0x90000000,
+       0x98c00003, 0x8c0007e0, 0x95c0000c, 0xcd400013, 0xc4253265, 0x2a64008c, 0xce413265, 0xc430001e,
+       0x1b301fe8, 0x2b300400, 0x2330003f, 0xd8013260, 0xcf01325b, 0x90000000, 0xc40c0007, 0xd9000010,
+       0x04240000, 0x8000075e, 0x98c0fff1, 0x8c0007e0, 0x95c00002, 0x80000723, 0xcd400013, 0xc41f02f1,
+       0x95c00004, 0xd8013247, 0xd801325d, 0x80000743, 0xd8813247, 0xd801325d, 0xc4100004, 0xd8400008,
+       0xd8400013, 0xd88130b8, 0xcd000008, 0x90000000, 0x04100001, 0x98c0ffde, 0x8000072e, 0x98c00003,
+       0x8c0007e0, 0x95c00012, 0xc4340004, 0xd8400008, 0x15600008, 0xc418000d, 0xce000009, 0xd8400013,
+       0xd84131db, 0xcf400008, 0xcd800009, 0xc430001e, 0x1b301ff8, 0x2b300400, 0x2330003f, 0xcd400013,
+       0xd8413260, 0xcf01325b, 0x90000000, 0xc40c0007, 0xd9000010, 0x04240000, 0xcd400013, 0x041c3000,
+       0xcdc13267, 0xc41d3267, 0xc41d3265, 0x25dc8000, 0x95c00007, 0xc41c004a, 0x195800e8, 0xcd80005e,
+       0xc418004c, 0xcd81326e, 0xcdc0005e, 0xc41d3265, 0x25dd7fff, 0xcdc13265, 0xc41d3246, 0xc4193245,
+       0xc42d3267, 0x51e00020, 0x7e1a001a, 0x46200200, 0x04283247, 0x04300033, 0x1af80057, 0x1af40213,
+       0x042c000c, 0x7f7b400a, 0x7f6f400a, 0xcf400024, 0xd2000025, 0xcd800026, 0xcdc00026, 0xc6990000,
+       0x329c325d, 0x99c00008, 0x329c3269, 0x99c00006, 0x329c3267, 0x95c00005, 0xc01defff, 0x7d9d8009,
+       0x8000078a, 0x25980000, 0x0b300001, 0x06a80001, 0xcd800026, 0x9b00fff2, 0xd8400027, 0xc43c0012,
+       0x9bc0ffff, 0xcd400013, 0xd801325b, 0xc431325a, 0xc03e7ff0, 0x7f3f0009, 0xcf01325a, 0xc4313249,
+       0x1f30001f, 0xcf013249, 0xc03e4000, 0xcfc13254, 0xcd400013, 0xd8013254, 0xc431325d, 0xd801324f,
+       0xd8013255, 0xd8013247, 0xd801325d, 0x1b300028, 0x8c00120d, 0x8c001219, 0x8c001232, 0xc4380004,
+       0xd8400008, 0xd8400013, 0x9900000d, 0xd88130b8, 0x9700000b, 0xc43d30b5, 0x1bf0003a, 0x9b000b80,
+       0x203c003a, 0xc430000e, 0x27300700, 0x13300014, 0x2b300001, 0xcf0130b7, 0xcfc130b5, 0x46200008,
+       0xcf400024, 0xd2000025, 0xd8000026, 0xd8400027, 0x043c2000, 0xcd400013, 0xcfc13267, 0xc43d3267,
+       0x9bc00001, 0xccc00010, 0xcf800008, 0x90000000, 0xc4080007, 0xd9000010, 0xc4193260, 0x259c0003,
+       0x31dc0003, 0x95c00014, 0x040c3000, 0xd8400008, 0xccc13267, 0xc40d3267, 0x18ec0057, 0x18e40213,
+       0x18cc0199, 0x7cecc00a, 0x7ce4c00a, 0xc4193246, 0xc41d3245, 0x51980020, 0x7d9d801a, 0x8c000448,
+       0xcd400013, 0x040c2000, 0xccc13267, 0xc40d3267, 0x94c00001, 0xcc800010, 0xd801325d, 0x90000000,
+       0xc418000b, 0x31980002, 0x041c0000, 0x9980001c, 0x19580066, 0x15600008, 0x040c0000, 0xc0120001,
+       0x11980003, 0x04240004, 0x7da18001, 0xc4200007, 0xc4340004, 0xd9000010, 0xd8400008, 0xd8400013,
+       0xccc1c200, 0xc41d24db, 0x7cd0c001, 0x0a640001, 0x7dd9c005, 0x25dc0001, 0x99c00002, 0x9a40fff8,
+       0xc418005e, 0x9580137b, 0xc00ee000, 0xd8400013, 0xccc1c200, 0xce000010, 0xcf400008, 0x90000000,
+       0xd840004f, 0xc4113269, 0x19080070, 0x190c00e8, 0x2510003f, 0x2518000f, 0xcd813268, 0x05a80809,
+       0x86800000, 0x8000080e, 0x8000080f, 0x80000898, 0x80000946, 0x800009e1, 0x80000a5a, 0x04a80811,
+       0x86800000, 0x80000815, 0x80000834, 0x8000085e, 0x8000085e, 0x04341001, 0xcf400013, 0xc4380004,
+       0xd8400008, 0xc42d3045, 0xcec1c091, 0x31300021, 0x9700000b, 0xd84002f1, 0xd8400013, 0xc43130b8,
+       0x27300001, 0xc4293059, 0x56a8001f, 0x7f2b000a, 0xcf800008, 0x9b000241, 0x8000084a, 0xcf400013,
+       0xd8400008, 0xc43130b6, 0x9b000003, 0xc02f0001, 0xcec130b6, 0xc4252087, 0x5668001a, 0x26a80005,
+       0x9a80fffd, 0xcf400013, 0xd80130b6, 0x8000084a, 0xc4380004, 0xd8400008, 0x04341001, 0xcf400013,
+       0xc431ecaa, 0x27300080, 0x9b000010, 0xc02e0001, 0xcec130b6, 0xcf400013, 0xd80130b6, 0x31300021,
+       0x9700000a, 0xd84002f1, 0xd8400013, 0xc43130b8, 0x27300001, 0xc4293059, 0x56a8001f, 0x7f2b000a,
+       0xcf800008, 0x9b00021d, 0xdd410000, 0x040c0005, 0xd84802e9, 0x8c001a41, 0xc43b02f1, 0x9b800006,
+       0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0xcf800008, 0xcec80278, 0x56f00020, 0xcf080280,
+       0x8c001608, 0xdc140000, 0xcd400013, 0xd8813247, 0xd80802e9, 0x8000085e, 0xcd400013, 0x31100011,
+       0x950001fa, 0xc02e0001, 0x2aec0008, 0xc01c0020, 0xc0180001, 0xc00c0007, 0x11a40006, 0x7de6000a,
+       0x10e40008, 0x7e26000a, 0x7e2e000a, 0xce000013, 0xc4113254, 0x1d10ffdf, 0x2110003e, 0xcd013254,
+       0xd801324f, 0xd8013255, 0x1d10ff9e, 0xcd013254, 0xd8013247, 0xd801325d, 0xd801325e, 0xc0245301,
+       0xce413249, 0xd801325f, 0xc425326c, 0xc0121fff, 0x29108eff, 0x7e524009, 0xce41326c, 0xc425325a,
+       0xc0127ff0, 0x7e524009, 0xce41325a, 0xc425325b, 0xc0131fff, 0x7e524009, 0xce41325b, 0xd801326d,
+       0xd801326e, 0xd8013279, 0x94c00003, 0x08cc0001, 0x80000866, 0xc00c0007, 0x95800003, 0x09980001,
+       0x80000866, 0xc0100010, 0x7dd2400c, 0x9a400004, 0xc0180003, 0x7dd1c002, 0x80000866, 0x80000a5a,
+       0x04a8089a, 0x86800000, 0x8000089e, 0x800008fa, 0x80000945, 0x80000945, 0x31300022, 0x97000007,
+       0xc4380004, 0xd8400008, 0xd8400013, 0xc43130b8, 0x27300001, 0xcf800008, 0xcd400013, 0x04183000,
+       0xcd813267, 0xc4113246, 0xc4193245, 0x51100020, 0x7d91801a, 0x459801e0, 0xc4313267, 0x2738000f,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0xd180001e, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8300011, 0x97000036, 0x45980008, 0xd180001e,
+       0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8340011, 0x9740002f, 0xc43c0004, 0xd8400008, 0xd8400013,
+       0x13b80001, 0xc79d3300, 0xc7a13301, 0x96000001, 0xd8393300, 0xc0260001, 0xce793301, 0xc424005e,
+       0x964012a4, 0x7c028009, 0x9740001c, 0x27580001, 0x99800004, 0x57740001, 0x06a80400, 0x800008d2,
+       0xc4180006, 0x9980ffff, 0x29640001, 0xce40001a, 0x242c0000, 0x06ec0400, 0x57740001, 0x27580001,
+       0x9980fffd, 0xc02620c0, 0xce41c078, 0xce81c080, 0xcc01c081, 0xcf01c082, 0x57240020, 0xce41c083,
+       0xc0260400, 0x7e6e400a, 0xce41c084, 0x7eae8001, 0x7f2f0011, 0x800008d2, 0xc4180006, 0x9980ffff,
+       0xcdf93300, 0xce393301, 0xcfc00008, 0xcd400013, 0xc43c0004, 0xd8400008, 0x04182000, 0xcd813267,
+       0xcfc00008, 0x80000903, 0x31240022, 0x96400008, 0x04100001, 0xc4380004, 0xd8400008, 0xd8400013,
+       0xc43130b8, 0x27300001, 0xcf800008, 0xc4af0280, 0xc4b30278, 0x52ec0020, 0x7ef2c01a, 0x7ec30011,
+       0x32f80000, 0x9b800011, 0x043c0020, 0x04280000, 0x67180001, 0x0bfc0001, 0x57300001, 0x95800006,
+       0x8c001628, 0x9a400003, 0xd981325d, 0x80000915, 0xd9c1325d, 0x06a80001, 0x9bc0fff6, 0x7f818001,
+       0x8c001606, 0x7d838001, 0x94800010, 0xcd400013, 0xc41d3259, 0xc421325a, 0x16240014, 0x12640014,
+       0x1a2801f0, 0x12a80010, 0x2620ffff, 0x7e2a000a, 0x7de1c001, 0x7e5e400a, 0x9b800002, 0x2264003f,
+       0xce41325a, 0xd8013259, 0xc40c0007, 0xd9000010, 0x8c00075e, 0xc4af0228, 0x043c0000, 0x66d80001,
+       0x95800010, 0x04300002, 0x1330000d, 0x13f40014, 0x7f73400a, 0xcf400013, 0x04380040, 0xcf80001b,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380060, 0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff,
+       0x07fc0001, 0x56ec0001, 0x33e80010, 0x9680ffec, 0x80000a5a, 0x80000a5a, 0x04a80948, 0x86800000,
+       0x8000094c, 0x8000099b, 0x800009e0, 0x800009e0, 0xc43c0004, 0xd8400008, 0xcd400013, 0x04183000,
+       0xcd813267, 0xc4113246, 0xc4193245, 0x51100020, 0x7d91801a, 0x459801e0, 0xc4313267, 0x2738000f,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0xd180001e, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8300011, 0x97000033, 0x45980008, 0xd180001e,
+       0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8340011, 0x9740002c, 0xd8400013, 0x13b80001, 0xc79d3300,
+       0xc7a13301, 0x96000001, 0xd8393300, 0xc0260001, 0xce793301, 0xc424005e, 0x964011fe, 0x7c028009,
+       0x9740001c, 0x27580001, 0x99800004, 0x57740001, 0x06a80400, 0x80000978, 0xc4180006, 0x9980ffff,
+       0x29640001, 0xce40001a, 0x242c0000, 0x06ec0400, 0x57740001, 0x27580001, 0x9980fffd, 0xc0260010,
+       0xce41c078, 0xcf01c080, 0x57240020, 0xce41c081, 0xce81c082, 0xcc01c083, 0xc0260800, 0x7e6e400a,
+       0xce41c084, 0x7eae8001, 0x7f2f0011, 0x80000978, 0xc4180006, 0x9980ffff, 0xcdf93300, 0xce393301,
+       0x04182000, 0xcd813267, 0xcfc00008, 0xcd400013, 0xc4193246, 0xc41d3245, 0x51980020, 0x7dda801a,
+       0x7d41c001, 0x7e838011, 0xd84802e9, 0x8c001802, 0x469c0390, 0xc4313267, 0x04183000, 0xcd813267,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4200011, 0x45dc0004, 0xd1c0001e,
+       0xd8400021, 0xc418000f, 0x9980ffff, 0xc4240011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc4280011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc42c0011,
+       0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4300011, 0x45dc0004, 0xd1c0001e,
+       0xd8400021, 0xc418000f, 0x9980ffff, 0xc4340011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc4380011, 0xcd400013, 0x04182000, 0xcd813267, 0x043c0001, 0x8c0014df, 0x80000a5a,
+       0x80000a5a, 0x31280014, 0xce8802ef, 0x9a800062, 0x31280034, 0x9a800060, 0x04a809e8, 0x86800000,
+       0x800009ec, 0x80000a45, 0x80000a59, 0x80000a59, 0xcd400013, 0xc4113246, 0xc4193245, 0x51100020,
+       0x7d91801a, 0x45980400, 0xc4b30258, 0xc4a70250, 0x53300020, 0x7e72401a, 0xc4313267, 0x1b342010,
+       0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c, 0x042c0020,
+       0x66740001, 0x97400041, 0xcd400013, 0x04383000, 0xcf813267, 0xc4393267, 0x9b800001, 0xd180001e,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4300011, 0x1b38007e, 0x33b40003, 0x9b400003, 0x4598001c,
+       0x9740002f, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc40c0011, 0x45980004,
+       0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4100011, 0x45980004, 0xd180001e, 0xd8400021,
+       0xc438000f, 0x9b80ffff, 0xc4340011, 0xcf4002eb, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f,
+       0x9b80ffff, 0xc4340011, 0xcf4002ec, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff,
+       0xc4340011, 0xcf4002ed, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4340011,
+       0xcf4002ee, 0x45980004, 0xcd400013, 0x04382000, 0xcf813267, 0xd84802e9, 0x8c001715, 0xcd400013,
+       0x04382000, 0xcf813267, 0x56640001, 0x0aec0001, 0x9ac0ffbc, 0xc4380004, 0xd8400008, 0x04341001,
+       0xcf400013, 0x94800005, 0xc431ecaa, 0x27300080, 0x97000002, 0x80000a55, 0xc43130b6, 0x233c0032,
+       0xcfc130b6, 0xcf400013, 0xcf0130b6, 0xc49302ef, 0x99000003, 0xcd400013, 0xd8413247, 0xcf800008,
+       0x80000a5a, 0x80000a5a, 0xcd400013, 0x04180001, 0x5198001f, 0xcd813268, 0xc4193269, 0x2598000f,
+       0x9980fffe, 0xd80002f1, 0xcd400013, 0xd8013268, 0xd800004f, 0x90000000, 0xcd400013, 0x04380001,
+       0x53b8001f, 0x7db9801a, 0xcd813268, 0x80000a5e, 0xd8400029, 0xc40c005e, 0x94c01106, 0xd8800013,
+       0xcc412e01, 0xcc412e02, 0xcc412e03, 0xcc412e00, 0x80000aa7, 0xd8400029, 0xc40c005e, 0x94c010fd,
+       0x7c40c001, 0x50640020, 0x7ce4c01a, 0xd0c00072, 0xc80c0072, 0x58e801fc, 0x12a80009, 0x2aa80000,
+       0xd0c0001e, 0xce80001c, 0xd8400021, 0xc424000f, 0x9a40ffff, 0x04240010, 0x18dc01e2, 0x7e5e4002,
+       0x3e5c0003, 0x3e540002, 0x95c00006, 0xc8180011, 0xc8100011, 0xc8100011, 0x55140020, 0x80000aa2,
+       0x9540000a, 0xc8180011, 0x44cc0008, 0x55900020, 0xd0c0001e, 0xd8400021, 0xc424000f, 0x9a40ffff,
+       0xc4140011, 0x80000aa2, 0x44cc0004, 0xc4180011, 0xd0c0001e, 0xd8400021, 0xc424000f, 0x9a40ffff,
+       0xc8100011, 0x55140020, 0xd8800013, 0xcd812e01, 0xcd012e02, 0xcd412e03, 0xcc412e00, 0xc428000e,
+       0x2aa80008, 0xce800013, 0xc4253249, 0x2264003f, 0xce413249, 0xce800013, 0xc4253249, 0x96400001,
+       0xd800002a, 0xc410001a, 0xc40c0021, 0xc4140028, 0x95000005, 0x1e64001f, 0xce800013, 0xce413249,
+       0x80001b70, 0x14d00010, 0xc4180030, 0xc41c0007, 0x99000004, 0x99400009, 0x9980000c, 0x80000ab1,
+       0xccc00037, 0x8c000190, 0xc420001c, 0xd8000032, 0x9a0010ac, 0x80000aa7, 0xd880003f, 0x95c00002,
+       0xd8c0003f, 0x80001082, 0xd8800040, 0x95c00002, 0xd8c00040, 0x800010de, 0xc010ffff, 0x18d403f7,
+       0x7d0cc009, 0xc41b0367, 0x7d958004, 0x7d85800a, 0xdc1e0000, 0x90000000, 0xc424000b, 0x32640002,
+       0x7c40c001, 0x18d001fc, 0x05280adc, 0x86800000, 0x80000af1, 0x80000adf, 0x80000ae7, 0x8c000ace,
+       0xd8c00013, 0x96400002, 0xd8400013, 0xcd8d2000, 0x99c00010, 0x7c408001, 0x88000000, 0x18d803f7,
+       0xc010ffff, 0x7d0cc009, 0x04140000, 0x11940014, 0x29544001, 0x9a400002, 0x29544003, 0xcd400013,
+       0x80000af4, 0xd8c00013, 0x96400002, 0xd8400013, 0xd44d2000, 0x7c408001, 0x88000000, 0xc424000b,
+       0x32640002, 0x7c40c001, 0xd8c00013, 0x96400002, 0xd8400013, 0xd44dc000, 0x7c408001, 0x88000000,
+       0x7c40c001, 0x18d0003c, 0x95000006, 0x8c000ace, 0xd8800013, 0xcd8d2c00, 0x99c00003, 0x80000b0a,
+       0xd8800013, 0xd44d2c00, 0x7c408001, 0x88000000, 0x7c40c001, 0x28148004, 0x24d800ff, 0xccc00019,
+       0xcd400013, 0xd4593240, 0x7c408001, 0x88000000, 0xd8400029, 0xc40c005e, 0x94c0105e, 0x7c410001,
+       0x50540020, 0x7c418001, 0x2198003f, 0x199c0034, 0xc40c0007, 0x95c00028, 0xc428000e, 0x2aa80008,
+       0xce800013, 0xc42d324f, 0xc4313255, 0x7ef3400c, 0x9b400021, 0xd800002a, 0x80001b70, 0xc40c0007,
+       0x14e80001, 0x9a8000af, 0xd9000010, 0x041c0002, 0x042c01c8, 0x8c000d61, 0xccc00010, 0xd8400029,
+       0xc40c005e, 0x94c01043, 0x7c410001, 0x50540020, 0x7c418001, 0x18a01fe8, 0x3620005c, 0x9a00000e,
+       0x2464003f, 0xd8400013, 0xc6290ce7, 0x16ac001f, 0x96c00004, 0x26ac003f, 0x7ee6c00d, 0x96c00005,
+       0x06200001, 0x2620000f, 0x9a00fff8, 0x8000016a, 0xce000367, 0xc424005e, 0x9640102e, 0xc428000e,
+       0x199c0037, 0x19a00035, 0x2aa80008, 0xce800013, 0x95c0005d, 0xd800002a, 0xc42d3256, 0xc431325a,
+       0x2330003f, 0x16f8001f, 0x9780000d, 0xc4253248, 0xc035f0ff, 0x7e764009, 0x19b401f8, 0x13740008,
+       0x7e76400a, 0xce800013, 0xce413248, 0xcf01325a, 0xce800013, 0xc431325a, 0x97000001, 0x7d15001a,
+       0xd1000072, 0xc8100072, 0x55140020, 0x199c0034, 0xd8400010, 0xd8400029, 0x9b800004, 0x1ae4003e,
+       0xce400008, 0x80000b7c, 0xc4353254, 0x16a80008, 0x1aec003c, 0x19a4003f, 0x12a80015, 0x12ec001f,
+       0x1374000b, 0x7eae800a, 0xc02e4000, 0x1774000d, 0x7eae800a, 0xce400008, 0x7f6b400a, 0x95c00005,
+       0xc43d3248, 0x1bfc01e8, 0x13fc0018, 0x7dbd800a, 0x1d98ff15, 0x592c00fc, 0xcd80000a, 0x12e00016,
+       0x7da1800a, 0x592c007e, 0x12e00015, 0x7da1800a, 0xd1000001, 0xcd800001, 0x11a0000c, 0x1264001e,
+       0x1620000c, 0x7e26000a, 0x7e32000a, 0x12e4001b, 0x7e26000a, 0x5924007e, 0x12640017, 0x7e26000a,
+       0x19a4003c, 0x12640018, 0x7e26000a, 0xd800002a, 0xce01325a, 0xcd013257, 0xcd413258, 0xc429325a,
+       0xc40c005e, 0x94c00fdb, 0x96800001, 0x95c00003, 0x7c40c001, 0x7c410001, 0x9780f5ca, 0xcf400100,
+       0xc40c0007, 0xd9000010, 0x8c00120d, 0x8c001219, 0x8c001232, 0xccc00010, 0x8c001b6d, 0x7c408001,
+       0x88000000, 0xc42d324e, 0xc431324d, 0x52ec0020, 0x7ef2c01a, 0xc435324f, 0xc4293256, 0x52ec0008,
+       0x07740003, 0x04240002, 0x269c003f, 0x7e5e4004, 0x7f67000f, 0x97000003, 0x7f674002, 0x0b740001,
+       0x53740002, 0x7ef6c011, 0x1ab42010, 0x1ab8c006, 0x16a8000c, 0x26a80800, 0x2b740000, 0x7f7b400a,
+       0x7f6b400a, 0xcf40001c, 0xd2c0001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4180011, 0x9a000003,
+       0x8c000bec, 0x80000b47, 0xc42c001d, 0xc4313256, 0x1b34060b, 0x1b300077, 0x7f37000a, 0x13300017,
+       0x04340100, 0x26ec00ff, 0xc03a8004, 0x7ef6c00a, 0x7f3b000a, 0x7ef2c00a, 0xcec1325b, 0x80000c16,
+       0xc40c0032, 0xc410001d, 0x28cc0008, 0xccc00013, 0xc415325b, 0x7c418001, 0x7c418001, 0x18580037,
+       0x251000ff, 0xc421325d, 0x262001ef, 0xce01325d, 0x99800004, 0x7d15400a, 0xcd41325b, 0x80000168,
+       0x1d54001f, 0xcd41325b, 0x7c408001, 0x88000000, 0xc428000b, 0xc42c000c, 0x12a80001, 0x26a80004,
+       0x7eae800a, 0xc40c0021, 0xc4340028, 0x14f00010, 0xc4380030, 0xc43c0007, 0xcd280200, 0xcd680208,
+       0xcda80210, 0x9b00000c, 0x9b400014, 0x9b800017, 0xc428000b, 0xc42c000c, 0x12a80001, 0x26a80004,
+       0x7eae800a, 0xc6930200, 0xc6970208, 0xc69b0210, 0x90000000, 0x17300001, 0x9b000005, 0xccc00037,
+       0x8c000190, 0xd8000032, 0x90000000, 0xd8000028, 0xd800002b, 0x80000168, 0xd900003f, 0x97c00002,
+       0xd940003f, 0x80001082, 0xd9000040, 0x97c00002, 0xd9400040, 0x800010de, 0xc40c0021, 0x14fc0011,
+       0x24f800ff, 0x33b80001, 0x97c0fffc, 0x9b800007, 0xccc00037, 0x8c000190, 0xd8000032, 0xd8000028,
+       0xd800002b, 0x80001b70, 0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0x04100000, 0x04140000,
+       0xc418000e, 0x29980008, 0x7d83c001, 0xcd800013, 0xc4093249, 0x1888003e, 0x94800020, 0xd8400074,
+       0x8c000671, 0x9a400009, 0xc418000e, 0x29980008, 0xcd800013, 0xc419324c, 0x259c0001, 0x1598001f,
+       0x95c00016, 0x95800015, 0x99000003, 0xd8400036, 0x04100001, 0xc40c0021, 0x14d80011, 0x24e000ff,
+       0x321c0002, 0x32200001, 0x9580ffee, 0x99c00014, 0x96000004, 0xccc00037, 0x04140001, 0x80000c30,
+       0x9480000a, 0xd8000074, 0xc418005e, 0x95800f29, 0xcf800008, 0x80000c16, 0x94800004, 0xd8000074,
+       0xc418005e, 0x95800f23, 0xd9c00036, 0x99400002, 0xccc00037, 0xcf800008, 0x80000c16, 0x94800004,
+       0xd8000074, 0xc418005e, 0x95800f1a, 0xccc00037, 0xd8800036, 0x80001b70, 0x041c0003, 0x042c01c8,
+       0x8c000d61, 0xc4200007, 0xc40c0077, 0x94c00001, 0x7c418001, 0xc428000e, 0x9600f502, 0x0a200001,
+       0x98c0f500, 0x2aa80008, 0xce000010, 0x9a000f05, 0xce800013, 0xc431325a, 0xc42d3256, 0x1f30001f,
+       0x16e4001f, 0xcf01325a, 0xc431325a, 0x97000001, 0x9640f4f4, 0xc434000b, 0x33740002, 0x9b40f4f1,
+       0xc4353254, 0x16a80008, 0x1aec003c, 0x12a80015, 0x12ec001f, 0x1374000b, 0x7eae800a, 0xc02e4000,
+       0x1774000d, 0x7eae800a, 0x7f6b400a, 0xcf400100, 0x12780001, 0x2bb80001, 0xc00ac005, 0xc00e0002,
+       0x28cc8000, 0x28884900, 0x28cc0014, 0x80000ff3, 0xc43c0007, 0x7c40c001, 0x17fc0001, 0xd8400013,
+       0x9bc00004, 0xd8400029, 0xc424005e, 0x96400ee1, 0xcc41c40a, 0xcc41c40c, 0xcc41c40d, 0x7c414001,
+       0x24d0007f, 0x15580010, 0x255400ff, 0xcd01c411, 0xcd81c40f, 0xcd41c40e, 0xcc41c410, 0x7c414001,
+       0x7c418001, 0x04200000, 0x18e80033, 0x18ec0034, 0xcc41c414, 0xcc41c415, 0xcd81c413, 0xcd41c412,
+       0x18dc0032, 0x7c030011, 0x7c038011, 0x95c00027, 0x96c00002, 0xc431c417, 0xc435c416, 0x96800004,
+       0x96c00002, 0xc439c419, 0xc43dc418, 0xc41c000e, 0x29dc0008, 0xcdc00013, 0xcf413261, 0x96c00002,
+       0xcf013262, 0x96800004, 0xcfc13263, 0x96c00002, 0xcf813264, 0x18dc0030, 0xc43c0007, 0x95c00017,
+       0x17fc0001, 0x9ac00005, 0x7d77000c, 0x9bc00015, 0x9700000a, 0x80000cd6, 0x51b80020, 0x53300020,
+       0x7f97801a, 0x7f37001a, 0x7f3b000c, 0x9bc0000d, 0x97800002, 0x80000cd6, 0x9a000018, 0xd8400013,
+       0x28200001, 0x80000ca7, 0x18dc0031, 0x95c00003, 0xc435c40b, 0x9740fffd, 0xd800002a, 0x80001b70,
+       0xc4280032, 0x2aa80008, 0xce800013, 0xc40d325b, 0x97000002, 0x800012c2, 0xc438001d, 0x1bb81ff0,
+       0x7f8cc00a, 0xccc1325b, 0xc411325d, 0x251001ef, 0xcd01325d, 0x80001b70, 0xc428000e, 0xc43c0007,
+       0x2aa80008, 0xc438001d, 0xce800013, 0x13f4000c, 0x9bc00006, 0xc43d3256, 0x1bf0060b, 0x1bfc0077,
+       0x7ff3c00a, 0x80000cf4, 0xc43d325a, 0x1bfc0677, 0x13fc0017, 0x04300100, 0x1bb81fe8, 0x7f73400a,
+       0xc032800b, 0x7fb7800a, 0x7ff3c00a, 0x7ffbc00a, 0xcfc1325b, 0x80000c16, 0xc43c0007, 0x7c40c001,
+       0x18d42011, 0x17fc0001, 0x18d001e8, 0x24cc007f, 0x7cd4c00a, 0x9bc00004, 0xd8400029, 0xc428005e,
+       0x96800e6c, 0x7c414001, 0x50580020, 0x7d59401a, 0xd1400072, 0xc8140072, 0x596001fc, 0x12200009,
+       0x7ce0c00a, 0x7c418001, 0x505c0020, 0x7d9d801a, 0x7c41c001, 0x50600020, 0x7de1c01a, 0x7c420001,
+       0xccc0001b, 0xd140001d, 0xd180001f, 0xd1c00020, 0xd8400021, 0x95000010, 0x04300000, 0xc428000f,
+       0x9a80ffff, 0xc8240010, 0x7e5e800c, 0x9bc00015, 0x9a80000c, 0x9b000024, 0x28300001, 0x122c0004,
+       0x06ec0001, 0x0aec0001, 0x9ac0ffff, 0xd8400021, 0x80000d1f, 0xc428000f, 0x9a80ffff, 0xc8240010,
+       0x566c0020, 0xc428000e, 0x2aa80008, 0xce800013, 0xce413261, 0xcec13262, 0xd800002a, 0x80001b70,
+       0xc4340032, 0x2b740008, 0xcf400013, 0xc40d325b, 0x96800005, 0x566c0020, 0xce413261, 0xcec13262,
+       0x800012c2, 0xc438001d, 0x1bb81fe8, 0x7f8cc00a, 0xccc1325b, 0xc411325d, 0x251001ef, 0xcd01325d,
+       0x80001b70, 0xc43c0007, 0xc438001d, 0xc428000e, 0x2aa80008, 0xce800013, 0x13f4000c, 0x9bc00006,
+       0xc43d3256, 0x1bf0060b, 0x1bfc0077, 0x7ff3c00a, 0x80000d57, 0xc43d325a, 0x1bfc0677, 0x13fc0017,
+       0x04300100, 0x1bb81fe8, 0x7f73400a, 0xc0328009, 0x7fb7800a, 0x7ff3c00a, 0x7ffbc00a, 0xcfc1325b,
+       0x80000c16, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0xc4253246, 0xc4113245, 0x04143000, 0xcd413267,
+       0x52640020, 0x7e51001a, 0xc4153267, 0x7d2d0011, 0x19640057, 0x19580213, 0x19600199, 0x7da6400a,
+       0x7e26400a, 0xd1000025, 0xce400024, 0xcdc00026, 0xd8400027, 0x04142000, 0xcfc00013, 0xcd413267,
+       0xc4153267, 0x99400001, 0x90000000, 0x7c40c001, 0x18d001e8, 0x18d40030, 0x18d80034, 0x05280d83,
+       0x7c420001, 0x7c424001, 0x86800000, 0x80000d8a, 0x8000016a, 0x80000d95, 0x80000db1, 0x8000016a,
+       0x80000d95, 0x80000dbc, 0x11540010, 0x7e010001, 0x8c00187c, 0x7d75400a, 0xcd400013, 0xd4610000,
+       0x9580f3d8, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0xd8000016, 0x526c0020, 0x18e80058,
+       0x7e2ec01a, 0xd2c00072, 0xc82c0072, 0x5ae0073a, 0x7ea2800a, 0x9940000a, 0xce800024, 0xd2c00025,
+       0xd4400026, 0xd8400027, 0x9580f3c6, 0xc4380012, 0x9b80ffff, 0x7c408001, 0x88000000, 0xdc3a0000,
+       0x0bb80001, 0xce800024, 0xd2c00025, 0xcc400026, 0xd8400027, 0x9b80fffb, 0x9980fff5, 0x7c408001,
+       0x88000000, 0xc02a0001, 0x2aa80001, 0x16200002, 0xce800013, 0xce01c405, 0xd441c406, 0x9580f3b1,
+       0xc439c409, 0x97800001, 0x7c408001, 0x88000000, 0xc424000b, 0x32640002, 0x9a40000b, 0x11540010,
+       0x29540002, 0xcd400013, 0xd4610000, 0x9580f3a5, 0xd8400013, 0xc439c040, 0x97800001, 0x7c408001,
+       0x88000000, 0xd4400078, 0x80000168, 0xd8400029, 0xc40c005e, 0x94c00da7, 0x7c40c001, 0x50500020,
+       0x7cd0c01a, 0xd0c00072, 0xc8280072, 0x5aac007e, 0x12d80017, 0x7c41c001, 0x7d9d800a, 0x56a00020,
+       0x2620ffff, 0x7da1800a, 0x51980020, 0x7e82400a, 0x7e58c01a, 0x19d4003d, 0x28182002, 0x99400030,
+       0x8c00104f, 0xc430000d, 0xc4340035, 0xd800002a, 0xcd800013, 0xc8140023, 0xc4180081, 0x13300005,
+       0xc011000f, 0xc4240004, 0x11a00002, 0x7c908009, 0x12640004, 0x7d614011, 0xc4100026, 0x05980008,
+       0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x3e280008, 0x20880188, 0x54ec0020, 0x7cb4800a, 0xc4300027,
+       0x04380008, 0xd1400025, 0xcf000024, 0x20240090, 0x7ca48001, 0xcc800026, 0xccc00026, 0xcec00026,
+       0xcec00026, 0x28240004, 0xcc000026, 0x0a640001, 0x9a40fffe, 0x9a800005, 0x32280000, 0x9a800002,
+       0x9a000000, 0x7c018001, 0xd8400027, 0xd8000016, 0xcf80003a, 0xd901a2a4, 0x80001037, 0xc418000e,
+       0x29980008, 0xcd800013, 0xc421326c, 0x1624001f, 0x9a40fffe, 0xd841325f, 0xd8800033, 0xc43c0009,
+       0x27fc0004, 0x97c0fffe, 0xd8000039, 0xd0c00038, 0xc43c0022, 0x9bc0ffff, 0xd8800034, 0xc429325f,
+       0x26ac0001, 0x9ac0fffe, 0x26ac0002, 0x96c00003, 0xd800002a, 0x80001b70, 0xc43c0007, 0xc430001e,
+       0xd8800033, 0x13f4000c, 0x1b301ff0, 0x2b300300, 0x2330003f, 0x7f37000a, 0x9680000b, 0xc43c0009,
+       0x27fc0004, 0x97c0fffe, 0xd8400039, 0xd0c00038, 0xc43c0022, 0x9bc0ffff, 0xcf01325b, 0xd8800034,
+       0x80000c16, 0xd8800034, 0x8c0001a2, 0x80001b70, 0xcc80003b, 0x24b00008, 0xc418000e, 0x1330000a,
+       0x18ac0024, 0x2b304000, 0x7c40c001, 0xcec00008, 0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a,
+       0x29980008, 0xcd800013, 0xc4113249, 0x1910003e, 0x99000002, 0xd840003d, 0x7c410001, 0xd4400078,
+       0x51100020, 0xcf01326c, 0x7cd0c01a, 0xc421326c, 0x12a80014, 0x2220003f, 0x7e2a000a, 0xcd800013,
+       0xce01326c, 0xd8800033, 0xc43c0009, 0x27fc0004, 0x97c0fffe, 0xd8000039, 0xd0c00038, 0xc43c0022,
+       0x9bc0ffff, 0xd8800034, 0x80001190, 0x7c40c001, 0x18dc003d, 0x95c00004, 0x041c0001, 0x042c01c8,
+       0x8c000d61, 0x18d40030, 0x18d001e8, 0x18fc0034, 0x24e8000f, 0x06a80e71, 0x7c418001, 0x7c41c001,
+       0x86800000, 0x80000edd, 0x80000e91, 0x80000e91, 0x80000ea1, 0x80000eaa, 0x80000e7c, 0x80000e7f,
+       0x80000e7f, 0x80000e87, 0x80000e8f, 0x8000016a, 0x51dc0020, 0x7d9e001a, 0x80000ee6, 0xc420000e,
+       0x2a200008, 0xce000013, 0xc4213262, 0xc4253261, 0x52200020, 0x7e26001a, 0x80000ee6, 0xc420000e,
+       0x2a200008, 0xce000013, 0xc4213264, 0xc4253263, 0x52200020, 0x7e26001a, 0x80000ee6, 0xc820001f,
+       0x80000ee6, 0x18e82005, 0x51e00020, 0x2aa80000, 0x7da1801a, 0xd1800072, 0xc8180072, 0x59a001fc,
+       0x12200009, 0x7ea2800a, 0xce80001c, 0xd180001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc8200011,
+       0x80000ee6, 0x15980002, 0xd8400013, 0xcd81c400, 0xc421c401, 0x95400041, 0xc425c401, 0x52640020,
+       0x7e26001a, 0x80000ee6, 0x31ac2580, 0x9ac00011, 0x31ac260c, 0x9ac0000f, 0x31ac0800, 0x9ac0000d,
+       0x31ac0828, 0x9ac0000b, 0x31ac2440, 0x9ac00009, 0x31ac2390, 0x9ac00007, 0x31ac0093, 0x9ac00005,
+       0x31ac31dc, 0x9ac00003, 0x31ac31e6, 0x96c00004, 0xc4340004, 0xd8400008, 0x80000ede, 0x39ac7c06,
+       0x3db07c00, 0x9ac00003, 0x97000002, 0x80000ebc, 0x39acc337, 0x3db0c330, 0x9ac00003, 0x97000002,
+       0x80000ebc, 0x39acc335, 0x3db0c336, 0x9ac00003, 0x97000002, 0x80000ebc, 0x39ac9002, 0x3db09001,
+       0x9ac00003, 0x97000002, 0x80000ebc, 0x39ac9012, 0x3db09011, 0x9ac00003, 0x97000002, 0x80000ebc,
+       0x39acec70, 0x3db0ec6f, 0x9ac00003, 0x97000002, 0x80000ebc, 0xc4340004, 0xd8400013, 0xc5a10000,
+       0x95400005, 0x05980001, 0xc5a50000, 0x52640020, 0x7e26001a, 0xcf400008, 0x05280eea, 0x7c418001,
+       0x7c41c001, 0x86800000, 0x80000ef1, 0x8000016a, 0x80000efe, 0x80000f11, 0x80000f2e, 0x80000efe,
+       0x80000f1f, 0xc4340004, 0xd8400013, 0xce190000, 0x95400005, 0x05980001, 0x56200020, 0xce190000,
+       0xcf400008, 0x97c0f26f, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0x51ec0020, 0x18e80058,
+       0x7daec01a, 0xd2c00072, 0xc82c0072, 0x5af8073a, 0x7eba800a, 0xd2c00025, 0xce800024, 0xce000026,
+       0x95400003, 0x56240020, 0xce400026, 0xd8400027, 0x97c0f25c, 0xc4380012, 0x9b80ffff, 0x7c408001,
+       0x88000000, 0xc02a0001, 0x2aa80001, 0x15980002, 0xce800013, 0xcd81c405, 0xce01c406, 0x95400003,
+       0x56240020, 0xce41c406, 0x97c0f24e, 0xc439c409, 0x97800001, 0x7c408001, 0x88000000, 0xc424000b,
+       0x32640002, 0x9a40f247, 0xd8800013, 0xce190000, 0x95400004, 0x05980001, 0x56200020, 0xce190000,
+       0x97c0f240, 0xd8400013, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0x31ac2580, 0x9ac00011,
+       0x31ac260c, 0x9ac0000f, 0x31ac0800, 0x9ac0000d, 0x31ac0828, 0x9ac0000b, 0x31ac2440, 0x9ac00009,
+       0x31ac2390, 0x9ac00007, 0x31ac0093, 0x9ac00005, 0x31ac31dc, 0x9ac00003, 0x31ac31e6, 0x96c00004,
+       0xc4340004, 0xd8400008, 0x80000ef2, 0x39ac7c06, 0x3db07c00, 0x9ac00003, 0x97000002, 0x80000f40,
+       0x39acc337, 0x3db0c330, 0x9ac00003, 0x97000002, 0x80000f40, 0x39acc335, 0x3db0c336, 0x9ac00003,
+       0x97000002, 0x80000f40, 0x39acec70, 0x3db0ec6f, 0x9ac00003, 0x97000002, 0x80000f40, 0x39ac9002,
+       0x3db09002, 0x9ac00003, 0x97000002, 0x80000f40, 0x39ac9012, 0x3db09012, 0x9ac00003, 0x97000002,
+       0x80000f40, 0x80000ef1, 0xc40c0006, 0x98c0ffff, 0x7c40c001, 0x7c410001, 0x7c414001, 0x7c418001,
+       0x7c41c001, 0x7c43c001, 0x95c00001, 0xc434000e, 0x2b740008, 0x2b780001, 0xcf400013, 0xd8c1325e,
+       0xcf80001a, 0xd8400013, 0x7c034001, 0x7c038001, 0x18e0007d, 0x32240003, 0x9a400006, 0x32240000,
+       0x9a400004, 0xcd01c080, 0xcd41c081, 0x80000f88, 0x51640020, 0x7e52401a, 0xd2400072, 0xc8280072,
+       0xce81c080, 0x56ac0020, 0x26f0ffff, 0xcf01c081, 0x1af000fc, 0x1334000a, 0x24e02000, 0x7f63400a,
+       0x18e00074, 0x32240003, 0x9a400006, 0x32240000, 0x9a400004, 0xcd81c082, 0xcdc1c083, 0x80000f9d,
+       0x51e40020, 0x7e5a401a, 0xd2400072, 0xc8280072, 0xce81c082, 0x56ac0020, 0x26f0ffff, 0xcf01c083,
+       0x1af000fc, 0x13380016, 0x18e00039, 0x12200019, 0x7fa3800a, 0x7fb7800a, 0x18e0007d, 0x1220001d,
+       0x7fa3800a, 0x18e00074, 0x12200014, 0x7fa3800a, 0xcf81c078, 0xcfc1c084, 0x80000c16, 0x7c40c001,
+       0x18dc003d, 0x95c00004, 0x041c0000, 0x042c01c8, 0x8c000d61, 0x18d001e8, 0x31140005, 0x99400003,
+       0x31140006, 0x95400002, 0x8c00104f, 0x05280fb7, 0x28140002, 0xcd400013, 0x86800000, 0x80000fbe,
+       0x80000fbe, 0x80000fc2, 0x80000fbe, 0x80000fd1, 0x80000ff2, 0x80000ff2, 0x24cc003f, 0xccc1a2a4,
+       0x7c408001, 0x88000000, 0x7c414001, 0x18e80039, 0x52a8003b, 0x50580020, 0x24cc003f, 0x7d59401a,
+       0xd1400072, 0xc8140072, 0x7d69401a, 0xc41c0017, 0x99c0ffff, 0xd140004b, 0xccc1a2a4, 0x7c408001,
+       0x88000000, 0xc414000d, 0x04180001, 0x24cc003f, 0x7d958004, 0xcd800035, 0xccc1a2a4, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0xc43d3249, 0x1bfc003e, 0x97c00002, 0xd8400074, 0xc4100019, 0x7d150005,
+       0x25100001, 0x9500000b, 0x97c0fffc, 0xc4180021, 0x159c0011, 0x259800ff, 0x31a00003, 0x31a40001,
+       0x7e25800a, 0x95c0fff5, 0x9580fff4, 0x80000fef, 0xc411326f, 0x1d100010, 0xcd01326f, 0x97c00002,
+       0xd8000074, 0x80001b70, 0x04380000, 0xc430000d, 0xc8140023, 0xc4180081, 0x13300005, 0xc011000f,
+       0xc4240004, 0x33b40003, 0x97400003, 0xc0340008, 0x80000ffe, 0xc4340035, 0x11a00002, 0x7c908009,
+       0x12640004, 0x7d614011, 0xc4100026, 0x05980008, 0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x282c2002,
+       0x208801a8, 0x3e280008, 0x7cb4800a, 0xcec00013, 0xc4300027, 0x042c0008, 0xd1400025, 0xcf000024,
+       0x20240030, 0x7ca48001, 0xcc800026, 0xccc00026, 0x9b800013, 0xcc400026, 0x7c414001, 0x28340000,
+       0xcf400013, 0x507c0020, 0x7d7d401a, 0xd1400072, 0xc8140072, 0x557c0020, 0x28342002, 0xcf400013,
+       0xcd400026, 0xcfc00026, 0xd4400026, 0x9a80000e, 0x32280000, 0x9a80000b, 0x8000102f, 0xcc000026,
+       0xcc000026, 0xcc000026, 0xcc000026, 0xcc000026, 0x9a800005, 0x32280000, 0x9a800002, 0x9a000000,
+       0x7c018001, 0xcc000026, 0xd8400027, 0x1cccfe08, 0xd8800013, 0xcec0003a, 0xccc1a2a4, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0xc43d3249, 0x1bfc003e, 0x9bc00007, 0xc428000e, 0x16a80008, 0xce800009,
+       0xc42c005e, 0x96c00b33, 0xd840003c, 0xc4200025, 0x7da2400f, 0x7da28002, 0x7e1ac002, 0x0aec0001,
+       0x96400002, 0x7d2ac002, 0x3ef40010, 0x9b40f11d, 0x04380030, 0xcf81325e, 0x80000c16, 0xde410000,
+       0xdcc10000, 0xdd010000, 0xdd410000, 0xdd810000, 0xddc10000, 0xde010000, 0xc40c000e, 0x7c024001,
+       0x28cc0008, 0xccc00013, 0xc8100086, 0x5510003f, 0xc40d3249, 0x18cc003e, 0x98c00003, 0x99000011,
+       0x80001075, 0x9900000c, 0xc40c0026, 0xc4100081, 0xc4140025, 0x7d15800f, 0x7d15c002, 0x7d520002,
+       0x0a200001, 0x95800002, 0x7cde0002, 0x3e20001a, 0x9a000009, 0x040c0030, 0xccc1325e, 0x80001071,
+       0xd9c00036, 0xd8400029, 0xc40c005e, 0x94c00b01, 0x04240001, 0xdc200000, 0xdc1c0000, 0xdc180000,
+       0xdc140000, 0xdc100000, 0xdc0c0000, 0x96400004, 0xdc240000, 0xdc0c0000, 0x80000c16, 0xdc240000,
+       0x90000000, 0xcc40003f, 0xd8c00010, 0xc4080029, 0xcc80003b, 0xc418000e, 0x18a800e5, 0x1d980008,
+       0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013, 0x18a400e5, 0x12500009, 0x248c0008, 0x94c00006,
+       0x200c006d, 0x7cd0c00a, 0xccc1326c, 0xc421326c, 0x96000001, 0xcd800013, 0x200c0228, 0x7cd0c00a,
+       0xccc1326c, 0xc421326c, 0x96000001, 0xc40c002a, 0xc410002b, 0x18881fe8, 0x18d4072c, 0x18cc00d1,
+       0x7cd4c00a, 0x3094000d, 0x38d80000, 0x311c0003, 0x99400006, 0x30940007, 0x1620001f, 0x9940001d,
+       0x9a000023, 0x800010c4, 0x9580001a, 0x99c00019, 0xccc00041, 0x25140001, 0xc418002c, 0x9940000d,
+       0x259c007f, 0x95c00013, 0x19a00030, 0xcdc0001b, 0xd8400021, 0xd8400022, 0xc430000f, 0x17300001,
+       0x9b00fffe, 0x9a000012, 0xd8400023, 0x800010cb, 0x199c0fe8, 0xcdc0001b, 0xd8400021, 0xd8400023,
+       0xc430000f, 0x17300001, 0x9b00fffe, 0x800010cb, 0xd8c00010, 0xd8000022, 0xd8000023, 0xc430005e,
+       0x97000aac, 0x7c408001, 0x88000000, 0xc43c000e, 0xc434002e, 0x2bfc0008, 0x2020002c, 0xcfc00013,
+       0xce01326c, 0x17780001, 0x27740001, 0x07a810d8, 0xcf400010, 0xc421326c, 0x96000001, 0x86800000,
+       0x80000168, 0x80000aa7, 0x80000bfc, 0x800012e9, 0x8000104c, 0xcc400040, 0xd8800010, 0xc4180032,
+       0x29980008, 0xcd800013, 0x200c007d, 0xccc1325b, 0xc411325b, 0x95000001, 0x7c408001, 0x88000000,
+       0x28240007, 0xde430000, 0xd4400078, 0x80001190, 0xcc80003b, 0x24b00008, 0xc418000e, 0x1330000a,
+       0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013, 0xc40d3249, 0x18cc003e,
+       0x98c00002, 0xd840003d, 0x2b304000, 0xcf01326c, 0xc431326c, 0x7c40c001, 0x7c410001, 0x7c414001,
+       0x192400fd, 0x50580020, 0x7d59401a, 0x7c41c001, 0x06681110, 0x7c420001, 0xcc400078, 0x18ac0024,
+       0x19180070, 0x19100078, 0xcec00008, 0x18f40058, 0x5978073a, 0x7f7b400a, 0x97000001, 0x86800000,
+       0x80001117, 0x80001118, 0x80001122, 0x8000112d, 0x80001130, 0x80001133, 0x8000016a, 0x8000117b,
+       0x24ec0f00, 0x32ec0600, 0x96c00003, 0xc4300006, 0x9b00ffff, 0xd1400025, 0xcf400024, 0xcdc00026,
+       0xd8400027, 0x8000117b, 0x24ec0f00, 0x32ec0600, 0x96c00003, 0xc4300006, 0x9b00ffff, 0xd1400025,
+       0xcf400024, 0xcdc00026, 0xce000026, 0xd8400027, 0x8000117b, 0xc81c001f, 0x55e00020, 0x80001122,
+       0xc81c0020, 0x55e00020, 0x80001122, 0x8c00116b, 0xd8400013, 0xc02a0200, 0x7e8e8009, 0x22a8003d,
+       0x22a80074, 0x2774001c, 0x13740014, 0x7eb6800a, 0x25ecffff, 0x55700020, 0x15f40010, 0x13740002,
+       0x275c001f, 0x95c00027, 0x7c018001, 0x7f41c001, 0x15dc0002, 0x39e00008, 0x25dc0007, 0x7dc1c01e,
+       0x05dc0001, 0x96000004, 0x05e40008, 0x8c00116e, 0x80001168, 0x7dc2001e, 0x06200001, 0x05e40008,
+       0x7e62000e, 0x9a000004, 0x7da58001, 0x8c00116e, 0x80001165, 0x7dc2001e, 0x06200001, 0x7e1a0001,
+       0x05cc0008, 0x7e0d000e, 0x95000007, 0x7e02401e, 0x06640001, 0x06640008, 0x05d80008, 0x8c00116e,
+       0x80001168, 0x7dc2401e, 0x06640001, 0x7da58001, 0x8c00116e, 0x05e00008, 0x7da2000c, 0x9600ffe6,
+       0x17640002, 0x8c00116e, 0x80001190, 0xc4200006, 0x9a00ffff, 0x90000000, 0x8c00116b, 0xc420000e,
+       0x2a200001, 0xce00001a, 0xce81c078, 0xcec1c080, 0xcc01c081, 0xcd41c082, 0xcf01c083, 0x12640002,
+       0x22640435, 0xce41c084, 0x90000000, 0x0528117e, 0x312c0003, 0x86800000, 0x80001190, 0x80001185,
+       0x80001182, 0x80001182, 0xc4300012, 0x9b00ffff, 0x9ac0000c, 0xc03a0400, 0xc4340004, 0xd8400013,
+       0xd8400008, 0xc418000e, 0x15980008, 0x1198001c, 0x7d81c00a, 0xcdc130b7, 0xcf8130b5, 0xcf400008,
+       0x04240008, 0xc418000e, 0xc41c0049, 0x19a000e8, 0x29a80008, 0x7de2c00c, 0xce800013, 0xc421325e,
+       0x26200010, 0xc415326d, 0x9a000006, 0xc420007d, 0x96000004, 0x96c00003, 0xce40003e, 0x800011a3,
+       0x7d654001, 0xcd41326d, 0x7c020001, 0x96000005, 0xc4100026, 0xc4240081, 0xc4140025, 0x800011b6,
+       0xc4253279, 0xc415326d, 0xc431326c, 0x2730003f, 0x3b380006, 0x97800004, 0x3f38000b, 0x9b800004,
+       0x800011b4, 0x04300006, 0x800011b4, 0x0430000b, 0x04380002, 0x7fb10004, 0x7e57000f, 0x7e578002,
+       0x7d67c002, 0x0be40001, 0x97000002, 0x7d3a4002, 0x202c002c, 0xc421325e, 0x04280020, 0xcec1326c,
+       0x26200010, 0x3e640010, 0x96000003, 0x96400002, 0xce81325e, 0xc4300028, 0xc434002e, 0x17780001,
+       0x27740001, 0x07a811cf, 0x9b00feb8, 0xcf400010, 0xc414005e, 0x954009a7, 0x86800000, 0x80000168,
+       0x80000aa7, 0x80000bfc, 0x800012e9, 0x80000168, 0x8c00120d, 0x7c40c001, 0xccc1c07c, 0xcc41c07d,
+       0xcc41c08c, 0x7c410001, 0xcc41c079, 0xcd01c07e, 0x7c414001, 0x18f0012f, 0x18f40612, 0x18cc00c1,
+       0x7f73400a, 0x7cf7400a, 0x39600004, 0x9a000002, 0xc0140004, 0x11600001, 0x18fc003e, 0x9740001c,
+       0xcf400041, 0xc425c07f, 0x97c00003, 0x166c001f, 0x800011ee, 0x1a6c003e, 0x96c00006, 0x04200002,
+       0x0a200001, 0x9a00ffff, 0xd8400013, 0x800011e8, 0xc428002c, 0x96800010, 0x26ac007f, 0xcec0001b,
+       0xd8400021, 0x1ab00030, 0x1aac0fe8, 0xc434000f, 0x9b40ffff, 0x97000008, 0xcec0001b, 0xd8400021,
+       0xc434000f, 0x9b40ffff, 0x80001205, 0x0a200001, 0x9a00ffff, 0xd8400013, 0xc425c07f, 0x166c001f,
+       0x11600001, 0x9ac0fffa, 0x8c001232, 0x7c408001, 0x88000000, 0xd8000033, 0xc438000b, 0xc43c0009,
+       0x27fc0001, 0x97c0fffe, 0xd8400013, 0xd841c07f, 0xc43dc07f, 0x1bfc0078, 0x7ffbc00c, 0x97c0fffd,
+       0x90000000, 0xc03a2800, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04380040,
+       0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380060, 0xcf80001b, 0xd8400021, 0xc438000f,
+       0x9b80ffff, 0x04380002, 0x0bb80001, 0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010,
+       0x9bc0fffa, 0x90000000, 0xd8400013, 0xd801c07f, 0xd8400013, 0xc43dc07f, 0xcfc00078, 0xd8000034,
+       0x90000000, 0xc03ae000, 0xcf81c200, 0xc03a0800, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079,
+       0xcc01c07e, 0x04380040, 0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380002, 0x0bb80001,
+       0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010, 0x9bc0fffa, 0x90000000, 0xc03ae000,
+       0xcf81c200, 0xc03a4000, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04380002,
+       0x0bb80001, 0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010, 0x9bc0fffa, 0x90000000,
+       0xc40c0007, 0x30d00002, 0x99000052, 0xd8400029, 0xc424005e, 0x9640090f, 0x7c410001, 0xc428000e,
+       0x1514001f, 0x19180038, 0x2aa80008, 0x99400030, 0x30dc0001, 0xce800013, 0x99c0000a, 0xc42d324e,
+       0xc431324d, 0x52ec0020, 0x7ef2c01a, 0xc435324f, 0xc4293256, 0x1ab0c006, 0x52ec0008, 0x8000127f,
+       0xc42d3258, 0xc4313257, 0x52ec0020, 0x7ef2c01a, 0xc4353259, 0xc429325a, 0x1ab0c012, 0x07740001,
+       0x04240002, 0x26a0003f, 0x7e624004, 0x7f67800f, 0x97800002, 0x04340000, 0x53740002, 0x7ef6c011,
+       0x1ab42010, 0x16a8000c, 0x26a80800, 0x2b740000, 0x7f73400a, 0x7f6b400a, 0xcf40001c, 0xd2c0001e,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4100011, 0x1514001f, 0x99400006, 0x9980000a, 0x8c0012e1,
+       0xc40c0007, 0x04100000, 0x80001267, 0xd800002a, 0xc424005e, 0x964008d7, 0xd9800036, 0x80000c16,
+       0xc42c001d, 0x95c00005, 0xc431325a, 0x1b300677, 0x11dc000c, 0x800012aa, 0xc4313256, 0x1b34060b,
+       0x1b300077, 0x7f37000a, 0x13300017, 0x04340100, 0x26ec00ff, 0xc03a8002, 0x7ef6c00a, 0x7edec00a,
+       0x7f3b000a, 0x7ef2c00a, 0xcec1325b, 0x80000c16, 0xc4140032, 0xc410001d, 0x29540008, 0xcd400013,
+       0xc40d325b, 0x1858003f, 0x251000ff, 0x99800007, 0x7d0cc00a, 0xccc1325b, 0xc411325d, 0x251001ef,
+       0xcd01325d, 0x80000168, 0x18d0006c, 0x18d407f0, 0x9900000e, 0x04100002, 0xc4193256, 0xc41d324f,
+       0x2598003f, 0x7d190004, 0x7d5d4001, 0x7d52000f, 0x9a000003, 0xcd41324f, 0x800012d8, 0x7d514002,
+       0xcd41324f, 0x800012d8, 0xc4193259, 0xc41d325a, 0x7d958001, 0x7dd5c002, 0xcd813259, 0xcdc1325a,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x1ccc001e, 0xccc1325b, 0xc40d325b, 0x94c00001, 0x7c408001,
+       0x88000000, 0xc40c0021, 0xc4340028, 0x14f00010, 0xc4380030, 0xc43c0007, 0x9b000004, 0x9b40000c,
+       0x9b80000f, 0x90000000, 0x17300001, 0x9b000005, 0xccc00037, 0x8c000190, 0xd8000032, 0x90000000,
+       0xd8000028, 0xd800002b, 0x80000168, 0xd980003f, 0x97c00002, 0xd9c0003f, 0x80001082, 0xd9800040,
+       0x97c00002, 0xd9c00040, 0x800010de, 0xc43c0007, 0x33f80003, 0x97800051, 0xcc80003b, 0x24b00008,
+       0xc418000e, 0x1330000a, 0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013,
+       0xc4353249, 0x1b74003e, 0x9b400002, 0xd840003d, 0x2b304000, 0xcf01326c, 0xc431326c, 0x97000001,
+       0x7c434001, 0x1b4c00f8, 0x7c410001, 0x7c414001, 0x50700020, 0x04e81324, 0x18ac0024, 0x7c41c001,
+       0x50600020, 0xcc400078, 0x30e40004, 0x9a400007, 0x7d71401a, 0x596401fc, 0x12640009, 0x1b74008d,
+       0x7e76400a, 0x2a640000, 0xcec00008, 0x86800000, 0x8000016a, 0x8000016a, 0x8000016a, 0x8000016a,
+       0x8000132c, 0x8000133b, 0x80001344, 0x8000016a, 0xc4340004, 0xd8400013, 0xd8400008, 0xc42530b5,
+       0x1a68003a, 0x9a80fffe, 0x2024003a, 0xc418000e, 0x25980700, 0x11980014, 0x7d19000a, 0xcd0130b7,
+       0xce4130b5, 0xcf400008, 0x80001190, 0xce40001c, 0xd140001e, 0xd8400021, 0xc428000f, 0x9a80ffff,
+       0xc4240011, 0x7de6800f, 0x9a80ffea, 0x80001190, 0xce40001c, 0xd140001e, 0xd8400021, 0xc428000f,
+       0x9a80ffff, 0xc8240011, 0x7de1c01a, 0x7de6800f, 0x9a80ffe0, 0x80001190, 0x8c00104f, 0x28182002,
+       0xc430000d, 0xc4340035, 0xcd800013, 0xc8140023, 0xc4180081, 0x13300005, 0xc4240004, 0x11a00002,
+       0x12640004, 0x7d614011, 0xc4100026, 0x05980008, 0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x3e280008,
+       0x7cb4800a, 0xc4300027, 0x042c0008, 0xd1400025, 0xcf000024, 0x20240030, 0x7ca48001, 0xcc800026,
+       0x7c434001, 0x1b4c00f8, 0xcf400026, 0xcc400026, 0x28340000, 0xcf400013, 0x7c414001, 0x507c0020,
+       0x30e40004, 0x9a400005, 0x7d7d401a, 0xd1400072, 0xc8140072, 0x557c0020, 0x28342002, 0xcf400013,
+       0xcd400026, 0xcfc00026, 0xd4400026, 0xcc000026, 0x9a800005, 0x32280000, 0x9a800002, 0x9a000000,
+       0x7c018001, 0xd8400027, 0xd8800013, 0x04380028, 0xcec0003a, 0xcf81a2a4, 0x80001037, 0xd8400029,
+       0xc40c005e, 0x94c007eb, 0x7c40c001, 0x50500020, 0x7d0d001a, 0xd1000072, 0xc8100072, 0x591c01fc,
+       0x11dc0009, 0x45140210, 0x595801fc, 0x11980009, 0x29dc0000, 0xcdc0001c, 0xd140001e, 0xd8400021,
+       0xc418000f, 0x9980ffff, 0xc4200011, 0x1624001f, 0x96400069, 0xc40c000e, 0x28cc0008, 0xccc00013,
+       0xce013249, 0x1a307fe8, 0xcf00000a, 0x23304076, 0xd1000001, 0xcf000001, 0xc41d3254, 0xc4253256,
+       0x18cc00e8, 0x10cc0015, 0x4514020c, 0xd140001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4200011,
+       0xce013248, 0x1a2001e8, 0x12200014, 0x2a204001, 0xce000013, 0x1a64003c, 0x1264001f, 0x11dc0009,
+       0x15dc000b, 0x7dcdc00a, 0x7e5dc00a, 0xcdc00100, 0xd8800013, 0xd8400010, 0xd800002a, 0xd8400008,
+       0xcf00000d, 0xcf00000a, 0x8c001427, 0x04340022, 0x07740001, 0x04300010, 0xdf430000, 0x7c434001,
+       0x7c408001, 0xd4412e01, 0x0434001e, 0xdf430000, 0xd4400078, 0xdf030000, 0xd4412e40, 0xd8400013,
+       0xcc41c030, 0xcc41c031, 0x248dfffe, 0xccc12e00, 0xd8800013, 0xcc812e00, 0x7c434001, 0x7c434001,
+       0x8c00142b, 0xd8000010, 0xc40c000e, 0x28cc0008, 0xccc00013, 0x45140248, 0xd140001e, 0xd8400021,
+       0xc418000f, 0x9980ffff, 0xc8200011, 0xce013257, 0x56200020, 0xce013258, 0x0434000c, 0xdb000024,
+       0xd1400025, 0xd8000026, 0xd8000026, 0xd8400027, 0x45540008, 0xd140001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc8200011, 0xce013259, 0x56200020, 0xc0337fff, 0x7f220009, 0xce01325a, 0x55300020,
+       0x7d01c001, 0x042c01d0, 0x8c000d61, 0x06ec0004, 0x7f01c001, 0x8c000d61, 0x041c0002, 0x042c01c8,
+       0x8c000d61, 0xc4380012, 0x9b80ffff, 0xd800002a, 0x80000aa7, 0xd800002a, 0x7c408001, 0x88000000,
+       0xd8400029, 0x7c40c001, 0x50500020, 0x8c001427, 0x7cd0c01a, 0xc4200007, 0xd0c00072, 0xc8240072,
+       0xd240001e, 0x7c414001, 0x19682011, 0x5a6c01fc, 0x12ec0009, 0x7eeac00a, 0x2aec0000, 0xcec0001c,
+       0xd8400021, 0xc430000f, 0x9b00ffff, 0xc4180011, 0x7c438001, 0x99800007, 0xdf830000, 0xcfa0000c,
+       0x8c00142b, 0xd4400078, 0xd800002a, 0x80001b70, 0x8c00142b, 0xd800002a, 0x80001b70, 0xd8000012,
+       0xc43c0008, 0x9bc0ffff, 0x90000000, 0xd8400012, 0xc43c0008, 0x97c0ffff, 0x90000000, 0xc4380007,
+       0x7c40c001, 0x17b80001, 0x18d40038, 0x7c410001, 0x9b800004, 0xd8400029, 0xc414005e, 0x9540073d,
+       0x18c80066, 0x7c414001, 0x30880001, 0x7c418001, 0x94800008, 0x8c00187c, 0xcf400013, 0xc42c0004,
+       0xd8400008, 0xcd910000, 0xcec00008, 0x7d410001, 0x043c0000, 0x7c41c001, 0x7c420001, 0x04240001,
+       0x06200001, 0x4220000c, 0x0a640001, 0xcc000078, 0x9a40fffe, 0x24e80007, 0x24ec0010, 0xd8400013,
+       0x9ac00006, 0xc42c0004, 0xd8400008, 0xc5310000, 0xcec00008, 0x80001465, 0x51540020, 0x7d15001a,
+       0xd1000072, 0xc82c0072, 0xd2c0001e, 0x18f02011, 0x5aec01fc, 0x12ec0009, 0x7ef2c00a, 0x2aec0000,
+       0xcec0001c, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc4300011, 0x96800012, 0x12a80001, 0x0aa80001,
+       0x06a8146a, 0x7f1f0009, 0x86800000, 0x7f1b400f, 0x80001478, 0x7f1b400e, 0x80001478, 0x7f1b400c,
+       0x8000147a, 0x7f1b400d, 0x8000147a, 0x7f1b400f, 0x8000147a, 0x7f1b400e, 0x8000147a, 0x7f334002,
+       0x97400014, 0x8000147b, 0x9b400012, 0x9b800005, 0x9bc0001f, 0x7e024001, 0x043c0001, 0x8000144a,
+       0xc40c0032, 0xc438001d, 0x28cc0008, 0xccc00013, 0xc43d325b, 0x1bb81ff0, 0x7fbfc00a, 0xcfc1325b,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x80001b70, 0x94800007, 0x8c00187c, 0xcf400013, 0xc42c0004,
+       0xd8400008, 0xcd910000, 0xcec00008, 0x9b800003, 0xd800002a, 0x80001b70, 0xc40c0032, 0x28cc0008,
+       0xccc00013, 0xc40d325b, 0x800012c2, 0xc40c000e, 0xc43c0007, 0xc438001d, 0x28cc0008, 0xccc00013,
+       0x13f4000c, 0x9bc00006, 0xc43d3256, 0x1bf0060b, 0x1bfc0077, 0x7ff3c00a, 0x800014a9, 0xc43d325a,
+       0x1bfc0677, 0x04300100, 0x1bb81ff0, 0x7f73400a, 0xc0328007, 0x7fb7800a, 0x13fc0017, 0x7ff3c00a,
+       0x7ffbc00a, 0xcfc1325b, 0xc03a0002, 0xc4340004, 0xd8400013, 0xd8400008, 0xcf8130b5, 0xcf400008,
+       0x80000c16, 0x043c0000, 0xc414000e, 0x29540008, 0xcd400013, 0xc4193246, 0xc41d3245, 0x51980020,
+       0x7dd9c01a, 0x45dc0390, 0xc4313267, 0x04183000, 0xcd813267, 0x1b380057, 0x1b340213, 0x1b300199,
+       0x7f7b400a, 0x7f73400a, 0xcf400024, 0xd1c00025, 0xcc800026, 0x7c420001, 0xce000026, 0x7c424001,
+       0xce400026, 0x7c428001, 0xce800026, 0x7c42c001, 0xcec00026, 0x7c430001, 0xcf000026, 0x7c434001,
+       0xcf400026, 0x7c438001, 0xcf800026, 0xd8400027, 0xcd400013, 0x04182000, 0xcd813267, 0xd840004f,
+       0x1a0800fd, 0x109c000a, 0xc4193265, 0x7dd9c00a, 0xcdc13265, 0x2620ffff, 0xce080228, 0x9880000e,
+       0xce480250, 0xce880258, 0xd8080230, 0xd8080238, 0xd8080240, 0xd8080248, 0xd8080268, 0xd8080270,
+       0xd8080278, 0xd8080280, 0xd800004f, 0x97c0ec75, 0x90000000, 0x040c0000, 0x041c0010, 0x26180001,
+       0x09dc0001, 0x16200001, 0x95800002, 0x04cc0001, 0x99c0fffb, 0xccc80230, 0xd8080238, 0xd8080240,
+       0xd8080248, 0x040c0000, 0xce480250, 0xce880258, 0x52a80020, 0x7e6a401a, 0x041c0020, 0x66580001,
+       0x09dc0001, 0x56640001, 0x95800002, 0x04cc0001, 0x99c0fffb, 0xccc80260, 0xd8080268, 0xd8080270,
+       0xd8080278, 0xd8080280, 0x040c0000, 0xcec80288, 0xcf080290, 0xcec80298, 0xcf0802a0, 0x040c0000,
+       0x041c0010, 0xcf4802a8, 0x27580001, 0x09dc0001, 0x17740001, 0x95800002, 0x04cc0001, 0x99c0fffb,
+       0xccc802b0, 0xd80802b8, 0x178c000b, 0x27b8003f, 0x7cf8c001, 0xcf8802c0, 0xccc802c8, 0xcf8802d0,
+       0xcf8802d8, 0xd800004f, 0x97c00002, 0x90000000, 0x7c408001, 0x88000000, 0xc40c000e, 0x28cc0008,
+       0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c418001, 0x25b8ffff, 0xc4930240, 0xc48f0238, 0x04cc0001,
+       0x24cc000f, 0x7cd2800c, 0x9a80000b, 0xc5230309, 0x2620ffff, 0x7e3a400c, 0x9a400004, 0x05100001,
+       0x2510000f, 0x80001539, 0xcd08034b, 0xd4400078, 0x80000168, 0xc48f0230, 0xc4930240, 0x98c00004,
+       0xcd880353, 0x8c00163f, 0xc49b0353, 0xc4930238, 0xc48f0228, 0x05100001, 0x2510000f, 0x7cd14005,
+       0x25540001, 0x99400004, 0x05100001, 0x2510000f, 0x8000154f, 0xc48f0230, 0x7c41c001, 0xcd080238,
+       0xcd08034b, 0x08cc0001, 0x2598ffff, 0x3d200008, 0xccc80230, 0xcd900309, 0xd8100319, 0x04340801,
+       0x2198003f, 0xcf400013, 0xcd910ce7, 0xc4190ce6, 0x7d918005, 0x25980001, 0x9580fffd, 0x7d918004,
+       0xcd810ce6, 0x9a000003, 0xcdd1054f, 0x8000156e, 0x090c0008, 0xcdcd050e, 0x040c0000, 0x110c0014,
+       0x28cc4001, 0xccc00013, 0xcc41230a, 0xcc41230b, 0xcc41230c, 0xcc41230d, 0xcc480329, 0xcc48032a,
+       0xcc4802e0, 0xd8000055, 0xc48f02e0, 0x24d8003f, 0x09940001, 0x44100001, 0x9580002c, 0x95400005,
+       0x09540001, 0x51100001, 0x69100001, 0x8000157f, 0x24cc003f, 0xc4970290, 0xc49b0288, 0x51540020,
+       0x7d59401a, 0xc49b02a0, 0xc49f0298, 0x51980020, 0x7d9d801a, 0x041c0040, 0x04200000, 0x7dcdc002,
+       0x7d924019, 0x7d26400c, 0x09dc0001, 0x9a400008, 0x51100001, 0x06200001, 0x99c0fffa, 0xc48f0230,
+       0xc4930240, 0x8c00163f, 0x80001579, 0x7d010021, 0x7d914019, 0xc4930238, 0x55580020, 0xcd480298,
+       0xcd8802a0, 0x10d40010, 0x12180016, 0xc51f0309, 0x7d95800a, 0x7d62000a, 0x7dd9c00a, 0xd8400013,
+       0xcdd00309, 0xce113320, 0xc48f02e0, 0xc49b02b0, 0x18dc01e8, 0x7dd9400e, 0xc48f0230, 0xc4930240,
+       0x95c0001d, 0x95400003, 0x8c00163f, 0x800015aa, 0xc48f0238, 0xc4a302b8, 0x12240004, 0x7e5e400a,
+       0xc4ab02a8, 0x04100000, 0xce4c0319, 0x7d9d8002, 0x7ea14005, 0x25540001, 0x99400004, 0x06200001,
+       0x2620000f, 0x800015bc, 0x09dc0001, 0x04240001, 0x7e624004, 0x06200001, 0x7d25000a, 0x2620000f,
+       0x99c0fff4, 0xd8400013, 0xcd0d3330, 0xce0802b8, 0xcd8802b0, 0xc4ab02e0, 0x1aa807f0, 0xc48f02d0,
+       0xc49702d8, 0xc49b02c8, 0xc49f02c0, 0x96800028, 0x7d4e000f, 0x9600000b, 0x7d964002, 0x7e6a000f,
+       0x96000003, 0x7d694001, 0x800015e9, 0x7cde4002, 0x7e6a000f, 0x96000008, 0x7de94001, 0x800015e9,
+       0x7cd64002, 0x7e6a000e, 0x96000003, 0x7d694001, 0x800015e9, 0xc48f0230, 0xc4930240, 0x8c00163f,
+       0x800015cd, 0xc4930238, 0x7d698002, 0xcd4802d8, 0x129c0008, 0xc50f0319, 0x11a0000e, 0x11140001,
+       0xc4340004, 0xd8400008, 0xd8400013, 0x7e1e000a, 0x1198000a, 0xcd953300, 0x7e0e000a, 0x12a8000a,
+       0xce953301, 0xce100319, 0xcf400008, 0xc4b70280, 0xc4b30278, 0x7f73800a, 0x536c0020, 0x7ef2c01a,
+       0x9780eb68, 0x8c001608, 0xd8080278, 0xd8080280, 0x7c408001, 0x88000000, 0x043c0003, 0x80001609,
+       0x043c0001, 0x30b40000, 0x9b400011, 0xc4b70258, 0xc4b30250, 0x53780020, 0x7fb3801a, 0x7faf8019,
+       0x04300020, 0x04280000, 0x67b40001, 0x0b300001, 0x57b80001, 0x97400002, 0x06a80001, 0x9b00fffb,
+       0xc4bb0260, 0x7fab8001, 0xcf880260, 0x04300020, 0x04280000, 0x66f40001, 0x0b300001, 0x56ec0001,
+       0x97400005, 0x8c001628, 0xc4353247, 0x7f7f4009, 0x9b40fffe, 0x06a80001, 0x9b00fff7, 0x90000000,
+       0x269c0007, 0x11dc0008, 0x29dc0008, 0x26a00018, 0x12200003, 0x7de1c00a, 0x26a00060, 0x06200020,
+       0x16200001, 0x7de1c00a, 0xcdc00013, 0x90000000, 0x269c0018, 0x26a00007, 0x26a40060, 0x11dc0006,
+       0x12200006, 0x16640001, 0x29dc0008, 0x7de1c00a, 0x7de5c00a, 0xcdc00013, 0x90000000, 0xc4b70228,
+       0x05100001, 0x04cc0001, 0x2510000f, 0xccc80230, 0x7f514005, 0x25540001, 0x99400004, 0x05100001,
+       0x2510000f, 0x80001644, 0xc4b30248, 0xcd080240, 0x7f130005, 0x27300001, 0x9b000002, 0x8c001688,
+       0x8c00120d, 0x8c001219, 0x8c001232, 0x04300001, 0x04340801, 0x7f130004, 0xcf400013, 0xcf01051e,
+       0xc42d051f, 0x7ed2c005, 0x26ec0001, 0x96c0fffd, 0xcf01051f, 0xd8000055, 0xc5170309, 0x195c07f0,
+       0x196007f6, 0x04340000, 0x95c00008, 0x09dc0001, 0x04340001, 0x95c00005, 0x09dc0001, 0x53740001,
+       0x6b740001, 0x80001665, 0xc4a702a0, 0xc4ab0298, 0x52640020, 0x7e6a401a, 0x7f634014, 0x7e76401a,
+       0xc4300004, 0xd8400008, 0xd8400013, 0x56680020, 0xd8113320, 0xce480298, 0xce8802a0, 0xc5170319,
+       0xc4b702b0, 0x255c000f, 0x7f5f4001, 0xd8113330, 0xcf4802b0, 0x11340001, 0x195c07e8, 0x196007ee,
+       0xd8353300, 0x7e1e4001, 0xd8353301, 0xce4802d0, 0xd8100309, 0xd8100319, 0xcf000008, 0x90000000,
+       0xc4970258, 0xc48f0250, 0x51540020, 0x7cd4c01a, 0xc4af0280, 0xc4b30278, 0x52ec0020, 0x7ef2c01a,
+       0x04140020, 0x04280000, 0x64d80001, 0x09540001, 0x54cc0001, 0x95800060, 0x8c001628, 0xc4193247,
+       0x25980001, 0x9580005c, 0x7dc24001, 0xc41d3248, 0x25dc000f, 0x7dd2000c, 0x96000057, 0xc41d3255,
+       0xc435324f, 0x7df5c00c, 0x99c00004, 0xc4193265, 0x25980040, 0x9580fffe, 0xc439325b, 0x1bb0003f,
+       0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002, 0x9700000a, 0xc4393260, 0x1bb000e4,
+       0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x800016f1, 0xce400013, 0xc033ffff,
+       0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b, 0x27b800ff, 0x9b80fffe, 0xd8c00033,
+       0xc4300009, 0x27300008, 0x9700fffe, 0x1a7003e6, 0x27380003, 0x13b80004, 0x27300003, 0x13300003,
+       0x7fb38001, 0x1a7000e8, 0x7fb38001, 0x13300001, 0x7fb38001, 0x07b80002, 0xd8400013, 0x1a700064,
+       0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x0b300003, 0x800016df, 0x17b00005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f, 0x13300005,
+       0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf, 0xd8c00034, 0xce400013, 0xc431325d,
+       0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffca, 0xd841325d, 0x2030007b, 0xcf01325b,
+       0x800016f2, 0xd841325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0x06a80001, 0x9940ff9c, 0x8c001608,
+       0xd8080278, 0xd8080280, 0x90000000, 0xd840004f, 0xc414000e, 0x29540008, 0xcd400013, 0xc43d3265,
+       0x1bc800ea, 0xd80802e9, 0x7c40c001, 0x18fc0064, 0x9bc00042, 0xc4193246, 0xc41d3245, 0x51980020,
+       0x7dd9801a, 0x45980400, 0xc4313267, 0x043c3000, 0xcfc13267, 0xc43d3267, 0x9bc00001, 0x1b380057,
+       0x1b340213, 0x1b300199, 0x7f7b400a, 0x7f73400a, 0xcf400024, 0x14f4001d, 0xc4bf02e9, 0x9bc0001c,
+       0x7c410001, 0x192807fa, 0xc4bf0258, 0xc4a70250, 0x53fc0020, 0x7e7e401a, 0x042c0000, 0x04300000,
+       0x667c0001, 0x56640001, 0x06ec0001, 0x97c0fffd, 0x07300001, 0x0aec0001, 0x7eebc00c, 0x06ec0001,
+       0x97c0fff8, 0x0b300001, 0x43300007, 0x53300002, 0x7db30011, 0xd3000025, 0xc03ec005, 0x2bfca200,
+       0xcfc00026, 0xccc00026, 0xcd000026, 0x192807fa, 0xc01f007f, 0x7d1d0009, 0x2110007d, 0x8c001628,
+       0x203c003f, 0xcfc13256, 0x8c0017f5, 0xcd013254, 0x18fc01e8, 0xcfc13248, 0x8c00185b, 0xd8413247,
+       0x0b740001, 0x9b40ffd5, 0xd800004f, 0xc4bf02e9, 0x97c0ea24, 0x90000000, 0x14d4001d, 0xc4930260,
+       0x7d52400e, 0xc49f0258, 0xc4a30250, 0x51dc0020, 0x7de1801a, 0x96400017, 0x7d534002, 0xc4af0270,
+       0x7dae4005, 0x26640001, 0x32e0001f, 0x9a400006, 0x06ec0001, 0x96000002, 0x042c0000, 0xcec80270,
+       0x8000174f, 0x0b740001, 0x8c00178a, 0x05100001, 0x9b40fff3, 0xc4af0280, 0xc4b30278, 0x52ec0020,
+       0x7ef2c01a, 0x8c001608, 0xd8080278, 0xd8080280, 0xc4ab0268, 0x7daa4005, 0x26640001, 0x32a0001f,
+       0x9a400005, 0x06a80001, 0x96000002, 0x24280000, 0x80001765, 0x7c410001, 0xc01f007f, 0x09540001,
+       0x7d1d0009, 0x2110007d, 0x8c001628, 0xd8013256, 0x8c0017f2, 0xcd013254, 0xc4113248, 0x15100004,
+       0x11100004, 0xc4b3034b, 0x7f13000a, 0xcf013248, 0xc4930260, 0x8c001855, 0x32a4001f, 0xd8413247,
+       0xd800004f, 0x09100001, 0x06a80001, 0x96400002, 0x24280000, 0xcd080260, 0xce880268, 0x9940ffc0,
+       0x7c408001, 0x88000000, 0x7ec28001, 0x8c001628, 0x32e0001f, 0xc4253247, 0x26640001, 0x9640005e,
+       0xc4293265, 0xc4253255, 0xc431324f, 0x7e72400c, 0x26a80040, 0x9a400002, 0x9680fff7, 0xc429325b,
+       0x1aa4003f, 0x96400049, 0x1aa400e8, 0x32680003, 0x9a800046, 0x32640002, 0x9640000a, 0xc4293260,
+       0x1aa400e4, 0x32640004, 0x96400040, 0xc425325d, 0x26640010, 0x9a40fffe, 0x800017e2, 0xcdc00013,
+       0xc027ffff, 0x2e6400ff, 0xc429325b, 0x7e6a4009, 0xce41325b, 0xc429325b, 0x26a800ff, 0x9a80fffe,
+       0xd8c00033, 0xc4240009, 0x26640008, 0x9640fffe, 0x19e403e6, 0x26680003, 0x12a80004, 0x26640003,
+       0x12640003, 0x7ea68001, 0x19e400e8, 0x7ea68001, 0x12640001, 0x7ea68001, 0x06a80002, 0xd8400013,
+       0x19e40064, 0x32640002, 0x96400009, 0x16a40005, 0x06640003, 0xce412082, 0xcc01203f, 0xd8400013,
+       0xcc01203f, 0x0a640003, 0x800017d0, 0x16a40005, 0xce412082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x12640005, 0x7ea64002, 0xc4292083, 0x7ea68005, 0x26a80001, 0x9a80ffdf, 0xd8c00034, 0xcdc00013,
+       0xc425325d, 0x26640010, 0x9a40fffe, 0xc429325b, 0x26a400ff, 0x9a40ffca, 0xd841325d, 0x2024007b,
+       0xce41325b, 0x800017e3, 0xd841325d, 0xc4a70280, 0xc4ab0278, 0x52640020, 0x7e6a401a, 0x04280001,
+       0x7eae8014, 0x7e6a401a, 0x56680020, 0xce480278, 0xce880280, 0x06ec0001, 0x96000002, 0x042c0000,
+       0xcec80270, 0x90000000, 0x7c438001, 0x7c420001, 0x800017fe, 0xc4bf02e9, 0x9bc00006, 0x7c438001,
+       0x7c420001, 0xcf800026, 0xce000026, 0x800017fe, 0xc43b02eb, 0xc42302ec, 0xcf813245, 0xce013246,
+       0x52200020, 0x7fa3801a, 0x47b8020c, 0x15e00008, 0x1220000a, 0x2a206032, 0x513c001e, 0x7e3e001a,
+       0xc4bf02e9, 0x9bc00005, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0x8000180f, 0xcd400013, 0xc4313267,
+       0x1b3c0077, 0x1b300199, 0x7ff3000a, 0x1330000a, 0x2b300032, 0x043c3000, 0xcfc13267, 0xc43d3267,
+       0xd200000b, 0xc4200007, 0xd3800002, 0xcf000002, 0xd8000040, 0x96000002, 0xd8400040, 0xd8400018,
+       0x043c2000, 0xcfc13267, 0xd8000018, 0xd8800010, 0xcdc00013, 0x7dc30001, 0xdc1e0000, 0x04380032,
+       0xcf80000e, 0x8c001427, 0xcc413248, 0xc43d3269, 0x27fc000f, 0x33fc0003, 0x97c00011, 0x043c001f,
+       0xdfc30000, 0xd4413249, 0x7c43c001, 0x7c43c001, 0x043c0024, 0x0bfc0021, 0xdfc30000, 0xd441326a,
+       0x173c0008, 0x1b300303, 0x7f3f0001, 0x043c0001, 0x7ff3c004, 0xcfc13084, 0x80001842, 0x043c0024,
+       0xdfc30000, 0xd4413249, 0x7c43c001, 0x23fc003f, 0xcfc1326d, 0x0bb80026, 0xdf830000, 0xd441326e,
+       0x7c438001, 0x7c438001, 0xc4393265, 0x1fb8ffc6, 0xddc30000, 0xcf813265, 0x9a000003, 0xcdc0000c,
+       0x80001852, 0xcdc0000d, 0xce000010, 0x8c00142b, 0x90000000, 0x7c41c001, 0x7c420001, 0xcdc13252,
+       0xce013253, 0x8c001628, 0x80001878, 0xc49f02e9, 0x99c00018, 0x7c41c001, 0x7c420001, 0xcdc13252,
+       0xce013253, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0x043c3000, 0xcfc13267, 0xc43d3267, 0x97c0ffff,
+       0xcdc00026, 0xce000026, 0xd8400027, 0xc41c0012, 0x99c0ffff, 0xc43c000e, 0x2bfc0008, 0xcfc00013,
+       0x043c2000, 0xcfc13267, 0x8c001628, 0x80001878, 0xc41f02ed, 0xc42302ee, 0xcdc13252, 0xce013253,
+       0x04200001, 0x7e2a0004, 0xce013084, 0x90000000, 0x28340001, 0x313c0bcc, 0x9bc00010, 0x393c051f,
+       0x9bc00004, 0x3d3c050e, 0x9bc0000c, 0x97c0000c, 0x393c0560, 0x9bc00004, 0x3d3c054f, 0x9bc00007,
+       0x97c00007, 0x393c1538, 0x9bc00005, 0x3d3c1537, 0x9bc00002, 0x97c00002, 0x2b740800, 0x90000000,
+       0xc40c000e, 0x28cc0008, 0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c40c001, 0x18e8007c, 0x7c42c001,
+       0x06a8189a, 0x86800000, 0x8000189e, 0x800018c5, 0x800018f2, 0x8000016a, 0x7c414001, 0x18d0007e,
+       0x50580020, 0x09200001, 0x7d59401a, 0xd1400072, 0xc8140072, 0x09240002, 0x7c418001, 0x7c41c001,
+       0x99000011, 0xc4340004, 0xd8400013, 0xd8400008, 0xc42130b5, 0x1a24002c, 0x9a40fffe, 0x2020002c,
+       0xc418000d, 0x1198001c, 0x10cc0004, 0x14cc0004, 0x7cd8c00a, 0xccc130b7, 0xce0130b5, 0xcf400008,
+       0x80000168, 0xd1400025, 0x5978073a, 0x2bb80002, 0xcf800024, 0xcd800026, 0xcdc00026, 0xd8400027,
+       0x9600e8a8, 0xc4300012, 0x9b00ffff, 0x9640e8a5, 0x800018a9, 0x04140000, 0xc55b0309, 0x3d5c0010,
+       0x05540001, 0x2598ffff, 0x09780001, 0x7dad800c, 0x99c0ffd2, 0x9580fff9, 0xc4970258, 0xc4930250,
+       0x51540020, 0x7d15001a, 0x04140020, 0x04280000, 0x442c0000, 0x65180001, 0x09540001, 0x55100001,
+       0x9580000b, 0x8c001628, 0xc41d3248, 0x04300001, 0x7f2b0014, 0x25dc000f, 0x7df9c00c, 0x95c00004,
+       0x7ef2c01a, 0xd8c13260, 0xd901325d, 0x06a80001, 0x9940fff1, 0x04140020, 0x04280000, 0x66d80001,
+       0x09540001, 0x56ec0001, 0x95800005, 0x8c001628, 0xc421325d, 0x26240007, 0x9a40fffe, 0x06a80001,
+       0x9940fff7, 0x8000189e, 0x04140020, 0x04280000, 0x09540001, 0x8c001628, 0xc41d3254, 0xc023007f,
+       0x19e4003e, 0x7de1c009, 0x7dee000c, 0x96400008, 0x96000007, 0xd8c13260, 0xd901325d, 0xc421325d,
+       0x261c0007, 0x99c0fffe, 0x8000189e, 0x06a80001, 0x9940fff0, 0x8000189e, 0xc40c000e, 0x28cc0008,
+       0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c40c001, 0x18e00064, 0x06281911, 0x14f4001d, 0x24cc0003,
+       0x86800000, 0x80001915, 0x800019af, 0x80001a2b, 0x8000016a, 0xcc48032b, 0xcc480333, 0xcc48033b,
+       0xcc480343, 0x98800011, 0xc4213246, 0xc4253245, 0x52200020, 0x7e26401a, 0x46640400, 0xc4313267,
+       0x04203000, 0xce013267, 0xc4213267, 0x9a000001, 0x1b3c0057, 0x1b200213, 0x1b300199, 0x7e3e000a,
+       0x7e32000a, 0xce000024, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280, 0xc4b30278,
+       0x52ec0020, 0x7ef2c01a, 0x04180000, 0x04140020, 0x04280000, 0x7f438001, 0x8c001628, 0xc41d3247,
+       0x25dc0001, 0x95c00068, 0xc4213254, 0x1a1c003e, 0x95c00065, 0xc01f007f, 0x7e1e0009, 0x97800062,
+       0x0bb80001, 0x43bc0008, 0x7fcbc001, 0xc7df032b, 0x7e1fc00c, 0x97c0fffa, 0x043c0101, 0x94c00002,
+       0x043c0102, 0xc439325b, 0x1bb0003f, 0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002,
+       0x97000009, 0xc4393260, 0x1bb000e4, 0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe,
+       0x80001994, 0x8c001628, 0xc033ffff, 0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b,
+       0x27b800ff, 0x9b80fffe, 0xd8c00033, 0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27380003,
+       0x13b80004, 0x27300003, 0x13300003, 0x7fb38001, 0x19f000e8, 0x7fb38001, 0x13300001, 0x7fb38001,
+       0x07b80002, 0xd8400013, 0x19f00064, 0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082,
+       0xcc01203f, 0xd8400013, 0xcc01203f, 0x0b300003, 0x80001982, 0x17b00005, 0xcf012082, 0xcc01203f,
+       0xd8400013, 0xcc01203f, 0x13300005, 0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf,
+       0xd8c00034, 0xcdc00013, 0xc431325d, 0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffcb,
+       0xcfc1325d, 0x2030007b, 0xcf01325b, 0x80001995, 0xcfc1325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a,
+       0x98800009, 0x41bc0007, 0x53fc0002, 0x7e7fc011, 0xd3c00025, 0xd8000026, 0xd8400027, 0xc43c0012,
+       0x9bc0ffff, 0x653c0001, 0x7dbd8001, 0x06a80001, 0x09540001, 0x55100001, 0x9940ff8f, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0x043c2000, 0xcfc13267, 0xd8080278, 0xd8080280, 0x80000168, 0x7c410001,
+       0x04140000, 0xc55b0309, 0x3d5c0010, 0x2598ffff, 0x05540001, 0x7d91800c, 0x95c00003, 0xd4400078,
+       0x80000168, 0x9580fff8, 0x09780001, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280,
+       0xc4b30278, 0x52ec0020, 0x7ef2c01a, 0x04140020, 0x04280000, 0x65180001, 0x09540001, 0x55100001,
+       0x9580005d, 0x8c001628, 0xc4253247, 0x26640001, 0x04200101, 0x96400058, 0x7dc24001, 0xc41d3248,
+       0x25dc000f, 0x7df9c00c, 0x95c00053, 0x94c00002, 0x04200102, 0x7e41c001, 0xc425325b, 0x1a70003f,
+       0x97000049, 0x1a7000e8, 0x33240003, 0x9a400046, 0x33300002, 0x9700000a, 0xc4253260, 0x1a7000e4,
+       0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x80001a21, 0xcdc00013, 0xc033ffff,
+       0x2f3000ff, 0xc425325b, 0x7f270009, 0xcf01325b, 0xc425325b, 0x266400ff, 0x9a40fffe, 0xd8c00033,
+       0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27240003, 0x12640004, 0x27300003, 0x13300003,
+       0x7e724001, 0x19f000e8, 0x7e724001, 0x13300001, 0x7e724001, 0x06640002, 0xd8400013, 0x19f00064,
+       0x33300002, 0x97000009, 0x16700005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x0b300003, 0x80001a0f, 0x16700005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f, 0x13300005,
+       0x7e730002, 0xc4252083, 0x7e724005, 0x26640001, 0x9a40ffdf, 0xd8c00034, 0xcdc00013, 0xc431325d,
+       0x27300010, 0x9b00fffe, 0xc425325b, 0x267000ff, 0x9b00ffca, 0xce01325d, 0x2030007b, 0xcf01325b,
+       0x80001a22, 0xce01325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0x06a80001, 0x9940ff9f, 0xd4400078,
+       0xd8080278, 0xd8080280, 0x80000168, 0x8c001a31, 0xd4400078, 0xd8080278, 0xd8080280, 0x7c408001,
+       0x88000000, 0xc4213246, 0xc4253245, 0x52200020, 0x7e26401a, 0x46640400, 0xc4313267, 0x04203000,
+       0xce013267, 0xc4213267, 0x9a000001, 0x1b180057, 0x1b200213, 0x1b300199, 0x7e1a000a, 0x7e32000a,
+       0xce000024, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280, 0xc4b30278, 0x52ec0020,
+       0x7ef2c01a, 0x04140020, 0x04280000, 0x65180001, 0x95800060, 0x8c001628, 0xc4193247, 0x25980001,
+       0x04200101, 0x94c00005, 0x30f00005, 0x04200005, 0x9b000002, 0x04200102, 0x95800056, 0xc439325b,
+       0x1bb0003f, 0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002, 0x9700000a, 0xc4393260,
+       0x1bb000e4, 0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x80001aa2, 0xcdc00013,
+       0xc033ffff, 0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b, 0x27b800ff, 0x9b80fffe,
+       0xd8c00033, 0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27380003, 0x13b80004, 0x27300003,
+       0x13300003, 0x7fb38001, 0x19f000e8, 0x7fb38001, 0x13300001, 0x7fb38001, 0x07b80002, 0xd8400013,
+       0x19f00064, 0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013,
+       0xcc01203f, 0x0b300003, 0x80001a90, 0x17b00005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x13300005, 0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf, 0xd8c00034, 0xcdc00013,
+       0xc431325d, 0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffca, 0xce01325d, 0x2030007b,
+       0xcf00325b, 0x80001aa3, 0xce01325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0xc49b02e9, 0x99800005,
+       0xd2400025, 0x4664001c, 0xd8000026, 0xd8400027, 0x06a80001, 0x09540001, 0x55100001, 0x9940ff9c,
+       0xc49b02e9, 0x99800008, 0xc430000e, 0x2b300008, 0xcf000013, 0x04302000, 0xcf013267, 0xc4313267,
+       0x97000001, 0x90000000, 0x244c00ff, 0xcc4c0200, 0x7c408001, 0x88000000, 0xc44f0200, 0xc410000b,
+       0xc414000c, 0x7d158010, 0x059cc000, 0xd8400013, 0xccdd0000, 0x7c408001, 0x88000000, 0xc40c0037,
+       0x94c0ffff, 0xcc000049, 0xc40c003a, 0x94c0ffff, 0x7c40c001, 0x24d00001, 0x9500e69a, 0x18d0003b,
+       0x18d40021, 0x99400006, 0xd840004a, 0xc40c003c, 0x94c0ffff, 0x14cc0001, 0x94c00028, 0xd8000033,
+       0xc438000b, 0xc43c0009, 0x27fc0001, 0x97c0fffe, 0xd8400013, 0xd841c07f, 0xc43dc07f, 0x1bfc0078,
+       0x7ffbc00c, 0x97c0fffd, 0x99000004, 0xc0120840, 0x282c0040, 0x80001ae8, 0xc0121841, 0x282c001a,
+       0xcd01c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04200004, 0xcec0001b, 0xd8400021,
+       0x0a200001, 0x9a00ffff, 0xc425c07f, 0x166c001f, 0x04200004, 0x9ac0fffb, 0xc434000f, 0x9b40ffff,
+       0xd801c07f, 0xd8400013, 0xc425c07f, 0xce400078, 0xd8000034, 0x9940e66b, 0xd800004a, 0x7c408001,
+       0x88000000, 0xc40c0036, 0x24d00001, 0x9900fffe, 0x18cc0021, 0xccc00047, 0xcc000046, 0xc40c0039,
+       0x94c0ffff, 0xc40c003d, 0x98c0ffff, 0x7c40c001, 0x24d003ff, 0x18d47fea, 0x18d87ff4, 0xcd00004c,
+       0xcd40004e, 0xcd80004d, 0xd8400013, 0xcd41c405, 0xc02a0001, 0x2aa80001, 0xce800013, 0xcd01c406,
+       0xcc01c406, 0xcc01c406, 0xc40c0006, 0x98c0ffff, 0xc414000e, 0x29540008, 0x295c0001, 0xcd400013,
+       0xd8c1325e, 0xcdc0001a, 0x11980002, 0x4110000c, 0xc0160800, 0x7d15000a, 0xc0164010, 0xd8400013,
+       0xcd41c078, 0xcc01c080, 0xcc01c081, 0xcd81c082, 0xcc01c083, 0xcd01c084, 0xc40c0006, 0x98c0ffff,
+       0xd8400048, 0xc40c003b, 0x94c0ffff, 0x80000c16, 0xd8400013, 0xd801c40a, 0xd901c40d, 0xd801c410,
+       0xd801c40e, 0xd801c40f, 0xc40c0040, 0x04140001, 0x09540001, 0x9940ffff, 0x04140096, 0xd8400013,
+       0xccc1c400, 0xc411c401, 0x9500fffa, 0xc424003e, 0x04d00001, 0x11100002, 0xcd01c40c, 0xc0180034,
+       0xcd81c411, 0xd841c414, 0x0a540001, 0xcd41c412, 0x2468000f, 0xc419c416, 0x41980003, 0xc41c003f,
+       0x7dda0001, 0x12200002, 0x10cc0002, 0xccc1c40c, 0xd901c411, 0xce41c412, 0xd8800013, 0xce292e40,
+       0xcc412e01, 0xcc412e02, 0xcc412e03, 0xcc412e00, 0x80000aa7, 0xc43c0007, 0xdc120000, 0x31144000,
+       0x95400005, 0xdc030000, 0xd800002a, 0xcc3c000c, 0x80001b70, 0x33f80003, 0xd4400078, 0x9780e601,
+       0x188cfff0, 0x04e40002, 0x80001190, 0x7c408001, 0x88000000, 0xc424005e, 0x96400006, 0x90000000,
+       0xc424005e, 0x96400003, 0x7c408001, 0x88000000, 0x80001b74, 0x80000168, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 7440
+};
+
+static const PWR_DFY_Section pwr_virus_section4 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54106500,
+       .dfy_data = {
+       0x7e000200, 0x7e020204, 0xc00a0505, 0x00000000, 0xbf8c007f, 0xb8900904, 0xb8911a04, 0xb8920304,
+       0xb8930b44, 0x921c0d0c, 0x921c1c13, 0x921d0c12, 0x811c1d1c, 0x811c111c, 0x921cff1c, 0x00000400,
+       0x921dff10, 0x00000100, 0x81181d1c, 0x7e040218, 0xe0701000, 0x80050002, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050102,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0701000, 0x80050002, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0701000, 0x80050102, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050002, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050102,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 240
+};
+
+static const PWR_DFY_Section pwr_virus_section5 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54106900,
+       .dfy_data = {
+       0x7e080200, 0x7e100204, 0xbefc00ff, 0x00010000, 0x24200087, 0x262200ff, 0x000001f0, 0x20222282,
+       0x28182111, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 384
+};
+
+static const PWR_DFY_Section pwr_virus_section6 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54116f00,
+       .dfy_data = {
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4540fe8, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000041, 0x0000000c, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54116f00, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb454105e, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x000000c0, 0x00000010, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117300, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4541065, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000500, 0x0000001c, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117700, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4541069, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000444, 0x0000008a, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117b00, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 1024
+};
+
+static const PWR_Command_Table PwrVirusTable_post[] = {
+    { 0x00000000, mmCP_MEC_CNTL                              },
+    { 0x00000000, mmCP_MEC_CNTL                              },
+    { 0x00000004, mmSRBM_GFX_CNTL                            },
+    { 0x54116f00, mmCP_MQD_BASE_ADDR                         },
+    { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+    { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+    { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+    { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+    { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+    { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+    { 0x00010000, mmCP_HQD_VMID                              },
+    { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+    { 0x00000005, mmSRBM_GFX_CNTL                            },
+    { 0x54117300, mmCP_MQD_BASE_ADDR                         },
+    { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+    { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+    { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+    { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+    { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+    { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+    { 0x00010000, mmCP_HQD_VMID                              },
+    { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+    { 0x00000006, mmSRBM_GFX_CNTL                            },
+    { 0x54117700, mmCP_MQD_BASE_ADDR                         },
+    { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+    { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+    { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+    { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+    { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+    { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+    { 0x00010000, mmCP_HQD_VMID                              },
+    { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+    { 0x00000007, mmSRBM_GFX_CNTL                            },
+    { 0x54117b00, mmCP_MQD_BASE_ADDR                         },
+    { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+    { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+    { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+    { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+    { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+    { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+    { 0x00010000, mmCP_HQD_VMID                              },
+    { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+    { 0x00000004, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000104, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000204, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000304, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000404, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000504, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000604, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000704, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000005, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000105, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000205, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000305, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000405, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000505, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000605, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000705, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000006, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000106, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000206, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000306, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000406, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000506, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000606, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000706, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000007, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000107, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000207, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000307, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000407, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000507, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000607, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000707, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000008, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000108, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000208, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000308, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000408, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000508, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000608, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000708, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000009, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000109, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000209, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000309, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000409, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000509, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000609, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000709, mmSRBM_GFX_CNTL                            },
+    { 0x00000000, mmCP_HQD_ACTIVE                            },
+    { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+    { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+    { 0x00000001, mmCP_HQD_ACTIVE                            },
+    { 0x00000004, mmSRBM_GFX_CNTL                            },
+    { 0x01010101, mmCP_PQ_WPTR_POLL_CNTL1                    },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, mmGRBM_STATUS                              },
+    { 0x00000000, 0xffffffff                                 },
 };
 
 #endif
index 0de4436..6a53b7e 100644 (file)
 #define mmCP_HYP_MEC2_UCODE_ADDR       0xf81c
 #define mmCP_HYP_MEC2_UCODE_DATA       0xf81d
 
-enum PWR_Command {
-       PwrCmdNull = 0,
-       PwrCmdWrite,
-       PwrCmdEnd,
-       PwrCmdMax
-};
-
-typedef enum PWR_Command PWR_Command;
-
 struct PWR_Command_Table {
-       PWR_Command        command;
        uint32_t              data;
        uint32_t reg;
 };
 
 typedef struct PWR_Command_Table PWR_Command_Table;
 
+struct PWR_DFY_Section {
+       uint32_t dfy_cntl;
+       uint32_t dfy_addr_hi, dfy_addr_lo;
+       uint32_t dfy_size;
+       uint32_t dfy_data[];
+};
+
+typedef struct PWR_DFY_Section PWR_DFY_Section;
+
+static const PWR_Command_Table pwr_virus_table_pre[] = {
+       { 0x00000000, mmRLC_CNTL                                 },
+       { 0x00000002, mmRLC_SRM_CNTL                             },
+       { 0x15000000, mmCP_ME_CNTL                               },
+       { 0x50000000, mmCP_MEC_CNTL                              },
+       { 0x80000004, mmCP_DFY_CNTL                              },
+       { 0x0840800a, mmCP_RB0_CNTL                              },
+       { 0xf30fff0f, mmTCC_CTRL                                 },
+       { 0x00000002, mmTCC_EXE_DISABLE                          },
+       { 0x000000ff, mmTCP_ADDR_CONFIG                          },
+       { 0x540ff000, mmCP_CPC_IC_BASE_LO                        },
+       { 0x000000b4, mmCP_CPC_IC_BASE_HI                        },
+       { 0x00010000, mmCP_HYP_MEC1_UCODE_ADDR                   },
+       { 0x00041b75, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000710e8, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000910dd, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000a1081, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000b016f, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000c0e3c, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000d10ec, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000e0188, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00101b5d, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00150a6c, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00170c5e, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x001d0c8c, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x001e0cfe, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00221408, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00370d7b, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00390dcb, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x003c142f, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x003f0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00400e63, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00500f62, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00460fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00490fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x005811d4, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00680ad6, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00760b00, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00780b0c, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00790af7, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x007d1aba, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x007e1abe, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00591260, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x005a12fb, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00861ac7, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x008c1b01, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x008d1b34, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a014b9, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a1152e, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a216fb, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a41890, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a31906, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00a50b14, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00621387, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x005c0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00160a75, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
+       { 0x00010000, mmCP_HYP_MEC2_UCODE_ADDR                   },
+       { 0x00041b75, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000710e8, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000910dd, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000a1081, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000b016f, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000c0e3c, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000d10ec, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000e0188, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00101b5d, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00150a6c, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00170c5e, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x001d0c8c, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x001e0cfe, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00221408, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00370d7b, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00390dcb, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x003c142f, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x003f0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00400e63, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00500f62, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00460fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00490fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x005811d4, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00680ad6, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00760b00, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00780b0c, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00790af7, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x007d1aba, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x007e1abe, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00591260, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x005a12fb, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00861ac7, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x008c1b01, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x008d1b34, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a014b9, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a1152e, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a216fb, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a41890, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a31906, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00a50b14, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00621387, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x005c0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00160a75, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
+       { 0x00000000, 0xFFFFFFFF                                 },
+};
+
+static const PWR_DFY_Section pwr_virus_section1 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540fe800,
+       .dfy_data = {
+       0x7e000200, 0x7e020201, 0x7e040204, 0x7e060205, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0x0a080102, 0x0a0a0701, 0x0a080102, 0x0a0a0701,
+       0x0a080500, 0x0a0a0303, 0x0a080500, 0x0a0a0303, 0xbf810000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000005, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54106f00, 0x000400b4, 0x00004000, 0x00804fac, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 416
+};
+
+static const PWR_DFY_Section pwr_virus_section2 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540fef00,
+       .dfy_data = {
+       0xc0031502, 0x00001e00, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 16
+};
 
-#define PWR_VIRUS_TABLE_SIZE  10031
+static const PWR_DFY_Section pwr_virus_section3 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x540ff000,
+       .dfy_data = {
+       0xc424000b, 0x80000145, 0x94800001, 0x94c00001, 0x95000001, 0x95400001, 0x95800001, 0xdc810000,
+       0xdcc10000, 0xdd010000, 0xdd410000, 0xdd810000, 0xc4080061, 0xd8400013, 0xd8000003, 0xc40c0001,
+       0x24ccffff, 0x3cd08000, 0x9500fffd, 0x1cd0ffcf, 0x7d018001, 0xc4140004, 0x050c0019, 0xd8400008,
+       0x84c00000, 0x80000023, 0x80000067, 0x8000006a, 0x8000006d, 0x80000079, 0x80000084, 0x8000008f,
+       0x80000099, 0x800000a0, 0x800000af, 0xd8400053, 0xc4080007, 0x388c0001, 0x08880002, 0x04100003,
+       0x94c00005, 0x98800003, 0x04100004, 0x8000002d, 0x04100005, 0x8c00003f, 0x8c000043, 0x28cc0000,
+       0xccc00050, 0x8c000055, 0x28080001, 0xcc000004, 0x7d808001, 0xd8400013, 0xd88130b8, 0xcd400008,
+       0xdc180000, 0xdc140000, 0xdc100000, 0xdc0c0000, 0xcc800005, 0xdc080000, 0x80000168, 0xc40c000e,
+       0x28cc0008, 0xccc00013, 0x90000000, 0xcd013278, 0xc4113278, 0x95000001, 0x24cc0700, 0xd8400029,
+       0xc4113255, 0xcd01324f, 0xc4113254, 0x1d10ffdf, 0xcd013254, 0x10cc0014, 0x1d10c017, 0x7d0d000a,
+       0xd8400013, 0xd8400008, 0xcd0130b7, 0x14cc0010, 0x90000000, 0xd9c00036, 0x8000005d, 0xd8400013,
+       0xc00c4000, 0xccc130b5, 0xc40c000e, 0x28cc0008, 0xccc00013, 0xc40c0021, 0x14d00011, 0x9500fffe,
+       0xdc030000, 0xd800000c, 0xd800000d, 0xc40c005e, 0x94c01b10, 0xd8400013, 0x90000000, 0xc00e0080,
+       0xccc130b5, 0x8000013b, 0xc00e0800, 0xccc130b5, 0x8000013b, 0xd8400053, 0x04100006, 0x8c00003f,
+       0x8c000043, 0x28cc0000, 0xccc00050, 0x8c000055, 0x280c0008, 0xccc00052, 0xd8000021, 0x28180039,
+       0x80000034, 0xd8400053, 0x04100007, 0x8c00003f, 0x8c000043, 0x28cc0001, 0xccc00050, 0x8c000055,
+       0x280c0010, 0xccc00052, 0x28180039, 0x80000034, 0xd8400053, 0x04100008, 0x8c00003f, 0x8c000043,
+       0x28cc0003, 0xccc00050, 0x8c000055, 0x280c0020, 0xccc00052, 0x28180039, 0x80000034, 0xdc030000,
+       0xd8000069, 0x28080001, 0xc428000d, 0x7ca88004, 0xcc800079, 0x04280001, 0xcc00006f, 0x8000013b,
+       0x80000034, 0x04100010, 0x8c00003f, 0x8c000043, 0xccc00078, 0x8c000055, 0x28180080, 0x80000034,
+       0x04100001, 0xc40c000e, 0x28cc0008, 0xccc00013, 0xcd013278, 0xc4113278, 0x95000001, 0xc00c4000,
+       0xc4113254, 0x1d10c017, 0xd8400013, 0xd8400008, 0xccc130b5, 0xcd0130b7, 0x8000013b, 0x95c00001,
+       0x96000001, 0x96400001, 0x96800001, 0x96c00001, 0x97000001, 0x97400001, 0x97800001, 0x97c00001,
+       0xdc810000, 0xc40c000c, 0xcd4c0380, 0xcdcc0388, 0x55dc0020, 0xcdcc038c, 0xce0c0390, 0x56200020,
+       0xce0c0394, 0xce4c0398, 0x56640020, 0xce4c039c, 0xce8c03a0, 0x56a80020, 0xce8c03a4, 0xcecc03a8,
+       0x56ec0020, 0xcecc03ac, 0xcf0c03b0, 0x57300020, 0xcf0c03b4, 0xcf4c03b8, 0x57740020, 0xcf4c03bc,
+       0xcf8c03c0, 0x57b80020, 0xcf8c03c4, 0xcfcc03c8, 0x57fc0020, 0xcfcc03cc, 0xd9000033, 0xc41c0009,
+       0x25dc0010, 0x95c0fffe, 0xd8400013, 0xc41c000c, 0x05dc002f, 0xcdc12009, 0xc41d200a, 0xd8400013,
+       0xcc012009, 0xd9000034, 0x25e01c00, 0x12200013, 0x25e40300, 0x12640008, 0x25e800c0, 0x12a80002,
+       0x25ec003f, 0x7e25c00a, 0x7eae400a, 0x7de5c00a, 0xddc10000, 0xc02ee000, 0xcec1c200, 0xc40c005f,
+       0xccc00037, 0x24d000ff, 0x31100006, 0x9500007b, 0x8c000190, 0xdc1c0000, 0xd8400013, 0xcdc1c200,
+       0xc40c000c, 0xc4df0388, 0xc4d7038c, 0x51540020, 0x7d5dc01a, 0xc4e30390, 0xc4d70394, 0x51540020,
+       0x7d62001a, 0xc4e70398, 0xc4d7039c, 0x51540020, 0x7d66401a, 0xc4eb03a0, 0xc4d703a4, 0x51540020,
+       0x7d6a801a, 0xc4ef03a8, 0xc4d703ac, 0x51540020, 0x7d6ec01a, 0xc4f303b0, 0xc4d703b4, 0x51540020,
+       0x7d73001a, 0xc4f703b8, 0xc4d703bc, 0x51540020, 0x7d77401a, 0xc4fb03c0, 0xc4d703c4, 0x51540020,
+       0x7d7b801a, 0xc4ff03c8, 0xc4d703cc, 0x51540020, 0x7d7fc01a, 0xdc080000, 0xcc800013, 0xc4d70380,
+       0xc4080001, 0x1c88001c, 0xcd400008, 0xc40c0083, 0x94c00010, 0xdc0e0000, 0x94c0000e, 0xc40c0082,
+       0x24d00001, 0x9900000b, 0x18cc01e3, 0x3cd00004, 0x95000008, 0xc40c0085, 0x18cc006a, 0x98c00005,
+       0xc40c0082, 0x18cc01e3, 0x3cd00004, 0x9900fffa, 0xdc180000, 0xdc140000, 0xdc100000, 0xdc0c0000,
+       0xcc800004, 0xdc080000, 0x90000000, 0xc4080001, 0x1c88001c, 0xcd400008, 0xdc180000, 0xdc140000,
+       0xdc100000, 0xdc0c0000, 0xcc800004, 0xdc080000, 0x90000000, 0xd8400051, 0xc428000c, 0x04180018,
+       0x32640002, 0x9a80001f, 0x9a40001e, 0xcd800013, 0xc4293265, 0x040c0000, 0x1aac0027, 0x2aa80080,
+       0xce813265, 0x9ac00017, 0xd80002f1, 0x04080002, 0x08880001, 0xd8080250, 0xd8080258, 0xd8080230,
+       0xd8080238, 0xd8080240, 0xd8080248, 0xd8080268, 0xd8080270, 0xd8080278, 0xd8080280, 0xd8080228,
+       0xd8000367, 0x9880fff3, 0x04080010, 0x08880001, 0xd80c0309, 0xd80c0319, 0x04cc0001, 0x9880fffc,
+       0x7c408001, 0x88000000, 0xc00e0100, 0xd8400013, 0xd8400008, 0xccc130b5, 0x8000016e, 0xc4180032,
+       0x29980008, 0xcd800013, 0x95800001, 0x7c40c001, 0x18d0003f, 0x24d4001f, 0x24d80001, 0x155c0001,
+       0x05e80180, 0x9900000b, 0x202c003d, 0xcd800010, 0xcec1325b, 0xc42d325b, 0x96c00001, 0x86800000,
+       0x80000168, 0x80000aa7, 0x80000bfc, 0x800012e9, 0xc4200007, 0x0a200001, 0xce000010, 0x80001b70,
+       0x7c40c001, 0x8c000190, 0xc410001b, 0xd8000032, 0xd8000031, 0x9900091a, 0x7c408001, 0x88000000,
+       0x24d000ff, 0x05280196, 0x18d4fe04, 0x29540008, 0xcd400013, 0x86800000, 0x800001b4, 0x8000032b,
+       0x80000350, 0x80000352, 0x8000035f, 0x80000701, 0x8000047c, 0x8000019f, 0x80000800, 0xc419325b,
+       0x1d98001f, 0xcd81325b, 0x8c00003f, 0xc4140004, 0xd8400008, 0x04100002, 0x8c000043, 0x28cc0002,
+       0xccc00050, 0xc43c0044, 0x27fc0003, 0x9bc00002, 0x97c00006, 0xc00c4000, 0xccc130b5, 0x8c000055,
+       0xd8400013, 0xd88130b8, 0xcd400008, 0x90000000, 0xd8400008, 0xcd400013, 0x7d40c001, 0xd8400028,
+       0xd8400029, 0xd9400036, 0xc4193256, 0xc41d3254, 0x15540008, 0xcd400009, 0xcd40005b, 0xcd40005e,
+       0xcd40005d, 0xd840006d, 0xc421325a, 0xc42d3249, 0x11540015, 0x19a4003c, 0x1998003f, 0x1af0007d,
+       0x11dc000b, 0x1264001f, 0x15dc000d, 0x7d65400a, 0x13300018, 0x1a38003f, 0x7dd5c00a, 0x7df1c00a,
+       0xcd800045, 0xcdc00100, 0xc411326a, 0xc415326b, 0xc419326c, 0xc41d326d, 0xc425326e, 0xc4293279,
+       0xce800077, 0xcd000056, 0xcd400057, 0xcd800058, 0xcdc00059, 0xc4193265, 0x259c8000, 0x99c00004,
+       0xce40005a, 0x29988000, 0xcd813265, 0xc4113248, 0x2510000f, 0xcd000073, 0xc418000d, 0xc411326f,
+       0x17300019, 0x97000009, 0x25140fff, 0x95400007, 0xd800003a, 0x8c001b6d, 0xc4153279, 0xcd400077,
+       0xcd00005f, 0xd8000075, 0x26f00001, 0x15100010, 0x7d190004, 0xcd000035, 0x97000035, 0x1af07fe8,
+       0xd8800013, 0xd8400010, 0xd8400008, 0xcf00000d, 0xcf00000a, 0x8c001427, 0x04340022, 0x07740001,
+       0x04300010, 0xdf430000, 0x7c434001, 0x7c408001, 0xd4412e01, 0x0434001e, 0xdf430000, 0xd4400078,
+       0xdf030000, 0xd4412e40, 0xd8400013, 0xcc41c030, 0xcc41c031, 0xc43dc031, 0xccc00013, 0x04343000,
+       0xc4113246, 0xc41d3245, 0xcf413267, 0x51100020, 0x7dd1c01a, 0xc4353267, 0x45dc0160, 0xc810001f,
+       0x1b4c0057, 0x1b700213, 0x1b740199, 0x7f4f400a, 0x7f73400a, 0x55180020, 0x2198003f, 0xd1c00025,
+       0xcf400024, 0xcd000026, 0xcd800026, 0xd8400027, 0x9bc00001, 0x248dfffe, 0xd8800013, 0xccc12e00,
+       0x7c434001, 0x7c434001, 0x8c00142b, 0xc43c000e, 0x1af4007d, 0x2bfc0008, 0x33740003, 0x26d80001,
+       0xcfc00013, 0x1ae8003e, 0x9680000c, 0xc4253277, 0x26680001, 0x96800009, 0x2a640002, 0xce413277,
+       0xd8400013, 0xc4253348, 0xce413348, 0xc4253348, 0x96400001, 0xcfc00013, 0x9b400003, 0x958000d8,
+       0x80000315, 0xc4253277, 0x04303000, 0x26680001, 0xcf013267, 0xc4193246, 0xc41d3245, 0xc4313267,
+       0x96800041, 0x51980020, 0x1b342010, 0x7d9d801a, 0x1714000c, 0x25540800, 0x1b30c012, 0x459801b0,
+       0x7d77400a, 0x7f37000a, 0x2b300000, 0xcf00001c, 0xd180001e, 0xd8400021, 0x04240010, 0x199c01e2,
+       0x7e5e4002, 0x3e5c0004, 0x3e540002, 0xc428000f, 0x9a80ffff, 0x95c00006, 0xc80c0011, 0xc8140011,
+       0x54d00020, 0x55580020, 0x80000282, 0x95400015, 0xc80c0011, 0x0a640002, 0x041c0001, 0x45980008,
+       0x54d00020, 0x96400004, 0xc8140011, 0x45980004, 0x041c0000, 0xcf00001c, 0xd180001e, 0xd8400021,
+       0xc428000f, 0x9a80ffff, 0x99c00003, 0xc8180011, 0x80000282, 0xc8140011, 0x55580020, 0x80000282,
+       0x45980004, 0xc80c0011, 0xcf00001c, 0xd180001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc8100011,
+       0xc8140011, 0x55580020, 0xd8400013, 0xccc1334e, 0xcd01334f, 0xcd413350, 0xcd813351, 0xd881334d,
+       0xcfc00013, 0xc4193273, 0xc41d3275, 0xc40d3271, 0xc4113270, 0xc4153274, 0x50cc0020, 0x7cd0c01a,
+       0x7cdcc011, 0x05900008, 0xcd00006a, 0xcdc0006b, 0xc41d3272, 0x7d594002, 0x54d00020, 0xd8800013,
+       0xccc12e23, 0xcd012e24, 0xcdc12e25, 0xcfc00013, 0xc4193246, 0xc41d3245, 0xc4313267, 0x15540002,
+       0x51980020, 0x7d9d801a, 0xc81c001f, 0x1b340057, 0x1b280213, 0x1b300199, 0x45980198, 0x7f37000a,
+       0x7f2b000a, 0x55e40020, 0xcf000024, 0xd1800025, 0xcdc00026, 0xce400026, 0xd8400027, 0xcd40000d,
+       0xcd40000a, 0xc40d3249, 0x20cc003c, 0xccc13249, 0xc4113274, 0xdd430000, 0xc01e0001, 0x29dc0002,
+       0x04280000, 0xd8000036, 0xcc400078, 0xcc400078, 0x2d540002, 0x95400022, 0x078c0000, 0x07d40000,
+       0x8c00120d, 0x8c001239, 0x8c001232, 0x04f80000, 0x057c0000, 0xcdc00013, 0xc414000d, 0xc41c0019,
+       0x7dd5c005, 0x25dc0001, 0xd840007c, 0xd8400074, 0xd8400069, 0xc40c005e, 0x94c018a6, 0xd4412e22,
+       0xd800007c, 0xc40c005e, 0x94c018a2, 0x95c00007, 0xc40c0019, 0x7cd4c005, 0x24cc0001, 0x94c00008,
+       0x9680fffc, 0x800002e3, 0xc40c0057, 0x7cd0c002, 0x94c00003, 0x9680fffd, 0x800002e3, 0xd8000069,
+       0xcfc00013, 0xcd013273, 0xcd013275, 0xd8000074, 0xc414005e, 0x9540188f, 0xcfc00013, 0xc40d3249,
+       0xc013cfff, 0x7cd0c009, 0xccc13249, 0x9680000b, 0xc40c0077, 0x38d00001, 0x99000006, 0x04cc0002,
+       0xdcc30000, 0xc40c005e, 0x94c01882, 0xd4400078, 0xd800000d, 0x80000304, 0x7c41c001, 0x7c41c001,
+       0xd840002f, 0xc41c0015, 0x95c0ffff, 0xd8400030, 0xc41c0016, 0x95c0ffff, 0xd8000030, 0xc41c0016,
+       0x99c0ffff, 0xd800002f, 0xc41c0015, 0x99c0ffff, 0xc81c001f, 0x49980198, 0x55e40020, 0x459801a0,
+       0xcf000024, 0xd1800025, 0xcdc00026, 0xce400026, 0xd8400027, 0x04302000, 0xcfc00013, 0xcf013267,
+       0xc4313267, 0x96800004, 0x97000001, 0xd8000036, 0x80000329, 0xd8800013, 0xcc812e00, 0x04302000,
+       0xcfc00013, 0xcf013267, 0xc4313267, 0x97000001, 0xc4193256, 0xc42d3249, 0x16ec001f, 0xd8000028,
+       0xd800002b, 0x1998003e, 0xcec00031, 0xd8000036, 0xd8000010, 0x97800004, 0xd8400010, 0xce00000a,
+       0x1a18003e, 0xcd800008, 0x90000000, 0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0x04100000,
+       0x7d43c001, 0xcd400013, 0xc4093249, 0x1888003e, 0x94800015, 0xd8400074, 0x8c000671, 0xcd400013,
+       0x9a400006, 0xc419324c, 0x259c0001, 0x1598001f, 0x95c0000d, 0x9580000c, 0x99000003, 0xd8400036,
+       0x04100001, 0xc40c0021, 0x14d80011, 0x24dc00ff, 0x31e00002, 0x31dc0003, 0x9580fff0, 0x9a000003,
+       0x99c00002, 0xd9c00036, 0x94800004, 0xd8000074, 0xc418005e, 0x95801827, 0xcf800008, 0x90000000,
+       0xd8800036, 0x90000000, 0xd8c00036, 0xc424000b, 0x32640002, 0x9a400004, 0xc4180014, 0x9580ffff,
+       0xd840002f, 0xc40c0021, 0x14dc0011, 0x95c0fffe, 0xccc00037, 0x8c000190, 0x90000000, 0xd8400008,
+       0xd800006d, 0xc41d3246, 0xc4193245, 0x51dc0020, 0x7d9d801a, 0xd8400028, 0xd8400029, 0xc420000b,
+       0x32200002, 0x9a0000ad, 0x04200032, 0xd9000010, 0xde030000, 0xd8400033, 0x04080000, 0xc43c0009,
+       0x27fc0002, 0x97c0fffe, 0xc42c0015, 0x96c0ffff, 0xd800002e, 0xc42d3249, 0x1af4003e, 0x9740004d,
+       0xc428000d, 0xc4080060, 0x7ca88005, 0x24880001, 0x7f4b4009, 0x97400046, 0xc4313274, 0xc4100057,
+       0x7d33400c, 0x97400009, 0x28240100, 0x7e6a4004, 0xce400079, 0x1eecffdd, 0xcec13249, 0xcf013273,
+       0xcf013275, 0x800003c3, 0xc429326f, 0x1aa80030, 0x96800006, 0x28240001, 0xc428000d, 0x06a80008,
+       0x7e6a8004, 0xce800035, 0xc41d3272, 0x25cc0001, 0x10cc0004, 0x19e80042, 0x25dc0006, 0x11dc0001,
+       0x7e8e800a, 0x7de9c00a, 0xc40d3271, 0xc4293270, 0x50cc0020, 0x7ce8c01a, 0x7cd30011, 0x11e80007,
+       0x2aa80000, 0xce80001c, 0xd300001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc4300011, 0x1b30003f,
+       0x33300000, 0xc4240059, 0x1660001f, 0x7e320009, 0xc0328000, 0x7e72400a, 0x0430000c, 0x9a000002,
+       0x04300008, 0xc02ac000, 0x7d310002, 0x17300002, 0x2aa87600, 0x7cd0c011, 0xcdc00024, 0xd0c00025,
+       0xce800026, 0x04280222, 0xce800026, 0x96000002, 0xce400026, 0xd8400027, 0xc4280058, 0x22ec003d,
+       0xcec13249, 0xcd013273, 0xce813275, 0xd800007b, 0xc8380018, 0x57b00020, 0x04343108, 0xc429325d,
+       0x040c3000, 0x13740008, 0x2374007e, 0x32a80003, 0xccc13267, 0xc40d3267, 0x18ec0057, 0x18e40213,
+       0x18cc0199, 0x7cecc00a, 0x7ce4c00a, 0x94800003, 0xd4400078, 0x800003e7, 0x04200022, 0xde030000,
+       0xccc00024, 0xd1800025, 0xcf400026, 0xd4400026, 0xd8400027, 0x04200010, 0xde030000, 0xccc00024,
+       0x45980104, 0xd1800025, 0xd4400026, 0xcf800026, 0xcf000026, 0xd8400027, 0x49980104, 0x9a80000a,
+       0xc81c001f, 0x45980168, 0x55e00020, 0xccc00024, 0xd1800025, 0xcdc00026, 0xce000026, 0xd8400027,
+       0x800003f2, 0x8c000448, 0xcd400013, 0x040c2000, 0xccc13267, 0xc40d3267, 0x94c00001, 0xc40d3249,
+       0x18cc003e, 0xd8400030, 0xc42c0016, 0x96c0ffff, 0xd8000030, 0xc42c0016, 0x9ac0ffff, 0xd800002f,
+       0xc42c0015, 0x9ac0ffff, 0xd8400034, 0xc4300025, 0xc4340024, 0xc4380081, 0xcf813279, 0xcf41326e,
+       0xcf01326d, 0x94c0000d, 0x254c0700, 0xc424001e, 0x10cc0010, 0x1a641fe8, 0x28cc0726, 0x2a640200,
+       0xd8400013, 0xccc1237b, 0x2264003f, 0xcd400013, 0xd8813260, 0xce41325b, 0xc4240033, 0xc4280034,
+       0xd9000036, 0xd8000010, 0x8c001427, 0x96400006, 0xde430000, 0xce40000c, 0xc40c005e, 0x94c01755,
+       0xd4400078, 0x9680000a, 0xce80000a, 0x06a80002, 0xd8400010, 0xde830000, 0xce80000d, 0xc40c005e,
+       0x94c0174c, 0xd4400078, 0xd8000010, 0x8c00142b, 0xc4393265, 0x2bb80040, 0xd8400032, 0xcf813265,
+       0xc4200012, 0x9a00ffff, 0xc4100044, 0x19180024, 0xc8100072, 0x551c003f, 0x99c00003, 0x95800010,
+       0x8000043d, 0xc00c8000, 0xd840006c, 0x28200000, 0x8000043f, 0xc00c4000, 0x282000f0, 0xcd400013,
+       0xd8400008, 0xc4113255, 0xcd01324f, 0xd8400013, 0xd88130b8, 0xccc130b5, 0xce000053, 0x90000000,
+       0x195c00e8, 0xc4100004, 0x2555fff0, 0xc0360001, 0x042c0000, 0x29540001, 0xd8400008, 0x04240000,
+       0x04280004, 0xc420000b, 0x32200002, 0x9a000009, 0xcd400013, 0xcec1c200, 0xc5e124dc, 0x0aa80001,
+       0x7ef6c001, 0x7e624001, 0x96000001, 0x9a80fff9, 0xc02ee000, 0xcd400013, 0x2555fff0, 0xcec1c200,
+       0x29540008, 0xc81c001f, 0xcd400013, 0x55e00020, 0xc42d3255, 0xc4353259, 0xd8013260, 0x45980158,
+       0xccc00024, 0xd1800025, 0xcdc00026, 0xce000026, 0xd8400027, 0x49980158, 0x45980170, 0xc4200012,
+       0x16200010, 0x9a00fffe, 0xccc00024, 0xd1800025, 0xc429324f, 0xce400026, 0xce800026, 0xcec00026,
+       0xcf400026, 0xd8400027, 0xcd000008, 0x90000000, 0xc40d325b, 0x7d43c001, 0x195400e8, 0x1154000a,
+       0x18dc00e8, 0x05e80488, 0x18d0006c, 0x18f807f0, 0x18e40077, 0x18ec0199, 0x7e6e400a, 0x86800000,
+       0x8000048e, 0x80000494, 0x800004de, 0x80000685, 0x80000686, 0x800006ac, 0x1ccc001f, 0xccc1325b,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x90000000, 0xc4293254, 0x1264000a, 0xc4300004, 0x7d79400a,
+       0x7e7a400a, 0x52a8001e, 0x15180001, 0x7d69401a, 0x202c007d, 0xcec1325b, 0x95000008, 0x95800028,
+       0xc42d3267, 0xc4193246, 0xc41d3245, 0x1aec0028, 0xc40d325c, 0x800004cc, 0xc42d3256, 0xc419324e,
+       0x26e8003f, 0x1aec003e, 0x12f4000e, 0xc41d324d, 0xc40d324f, 0x7d75401a, 0x04100002, 0x7d290004,
+       0x7f8f4001, 0x7f52800f, 0x51980020, 0x7d9d801a, 0x50e00002, 0x51980008, 0x9a800002, 0x800004d1,
+       0x7d0dc002, 0x6665fc00, 0x7e5e401a, 0xcec00008, 0x7da1c011, 0xd140000b, 0xd1c00002, 0x2a644000,
+       0xce400002, 0x7f534002, 0x6665fc00, 0x7e76401a, 0xd1800002, 0xce400002, 0x800004d7, 0xc42d325a,
+       0xc4193258, 0x1aec003e, 0xc41d3257, 0xc4213259, 0x12f4000e, 0x7d75401a, 0x51980020, 0x52200002,
+       0x7d9d801a, 0xcec00008, 0x7da1c011, 0xd140000b, 0xd1c00002, 0x2a644000, 0xce400002, 0x202c003d,
+       0xcf000008, 0xcfc00013, 0xcec1325b, 0xc42d325b, 0x96c00001, 0x90000000, 0xc4193260, 0x259c0007,
+       0x15980004, 0x05e804e3, 0x86800000, 0x800004e7, 0x800004f0, 0x80000505, 0x8000016a, 0xc4380004,
+       0xcfc00013, 0xd8400008, 0xc435325d, 0xd801325b, 0x277401ef, 0xcf41325d, 0xcf800008, 0x90000000,
+       0xc4380004, 0xd8400008, 0x8c000671, 0x9640fff4, 0x17e00008, 0xc418000d, 0xce000009, 0xd84131db,
+       0xcf800008, 0xcd800009, 0xc430001e, 0xcfc00013, 0xc42d325b, 0x1b301ff8, 0x2b300400, 0x2330003f,
+       0x26edf000, 0x7ef2c00a, 0xd8413260, 0xcec1325b, 0x90000000, 0x05a80507, 0x86800000, 0x8000050c,
+       0x80000528, 0x8000057d, 0x800005c2, 0x800005f3, 0xc4380004, 0xd8400008, 0x8c000671, 0xcfc00013,
+       0x9a400012, 0x1bd400e8, 0xc42c004a, 0xcd40005e, 0xc41c004d, 0xcec0005e, 0x99c0000c, 0xc4100019,
+       0x7d150005, 0x25100001, 0x99000008, 0x8c00063b, 0xcfc00013, 0xc4113277, 0x2511fffd, 0xcd013277,
+       0xd801326f, 0x80000624, 0x04240012, 0x1be00fe4, 0xce413260, 0xce000066, 0xcf800008, 0x90000000,
+       0xd8400068, 0xc4380004, 0xd8400008, 0x8c000671, 0xcfc00013, 0x9a400013, 0x1bd400e8, 0xc42c004a,
+       0xcd40005e, 0xc41c004d, 0xcec0005e, 0x99c0000d, 0xc4100019, 0x7d150005, 0x25100001, 0x99000009,
+       0xd8400067, 0x8c00063b, 0xcfc00013, 0xc4113277, 0x2511fffd, 0xcd013277, 0xd801326f, 0x80000624,
+       0x1bd400e8, 0xc42c0060, 0x7ed6c005, 0x26ec0001, 0xc4113271, 0xc4153270, 0xc4193272, 0xc41d3273,
+       0x04280022, 0x51100020, 0x7d51401a, 0xc4113274, 0xc4213275, 0xc4253276, 0xc4313248, 0xd1400061,
+       0x2730000f, 0x13300010, 0x7db1800a, 0xcd800060, 0x96c00002, 0x05dc0008, 0xcdc00062, 0x042c3000,
+       0xcd000063, 0xce000064, 0xce400065, 0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267, 0xce813260,
+       0x52ec0020, 0x7ef2c01a, 0xc820001f, 0x1b700057, 0x1b680213, 0x1b740199, 0x46ec0188, 0x7f73400a,
+       0x7f6b400a, 0x56240020, 0xcf400024, 0xd2c00025, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027,
+       0xc418000d, 0x17e00008, 0xce000009, 0xcec13267, 0xc42d3267, 0x26e01000, 0x9a00fffe, 0xd8400013,
+       0xd9c131fc, 0xcd800009, 0xcf800008, 0x96c00001, 0x90000000, 0xc4380004, 0xd8400008, 0xc4113277,
+       0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001, 0x11dc0008, 0x29dc0001, 0x25140001, 0x191807e4,
+       0x192007ec, 0x95400004, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x9580000e, 0x09980001, 0x041c0001,
+       0x95800005, 0x09980001, 0x51dc0001, 0x69dc0001, 0x9980fffd, 0x7de20014, 0x561c0020, 0xd8400013,
+       0xce013344, 0xcdc13345, 0xcfc00013, 0x95400022, 0x042c3000, 0xcec13267, 0xc42d3246, 0xc4313245,
+       0xc4353267, 0xd8400013, 0xc425334d, 0x26640001, 0x9640fffe, 0xc419334e, 0xc41d334f, 0xc4213350,
+       0xc4253351, 0x52ec0020, 0x1b680057, 0x7ef2c01a, 0x1b700213, 0x1b740199, 0x46ec01b0, 0x7f6b400a,
+       0x7f73400a, 0xcfc00013, 0xcf400024, 0xd2c00025, 0xcd800026, 0xcdc00026, 0xce000026, 0xce400026,
+       0x042c2000, 0xd8400027, 0xcec13267, 0xc42d3267, 0x96c00001, 0x04280032, 0xce813260, 0xd8800068,
+       0xcf800008, 0x90000000, 0xc4380004, 0xd8400008, 0x2010007d, 0xcd01325b, 0xc411325b, 0x1910003e,
+       0x9500fffe, 0x04100040, 0xcd00001b, 0xd8400021, 0xc410000f, 0x9900ffff, 0x04100060, 0xcd00001b,
+       0xd8400021, 0xc410000f, 0x9900ffff, 0xcfc00013, 0x2010003d, 0xcd01325b, 0xc4113277, 0x25140001,
+       0x191807e4, 0x9540000b, 0x2511fffd, 0xcd013277, 0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001,
+       0x11dc0008, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x95800005, 0xd8400013, 0xd8013344, 0xd8013345,
+       0xcfc00013, 0xc4180050, 0xc41c0052, 0x04280042, 0xcd813273, 0xcdc13275, 0xce813260, 0xd9000068,
+       0xd8400067, 0xcf800008, 0x90000000, 0x07d40000, 0x8c00120d, 0x8c00124f, 0x8c001232, 0x057c0000,
+       0x042c3000, 0xc4380004, 0xcfc00013, 0xd8400008, 0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267,
+       0x52ec0020, 0x7ef2c01a, 0x1b680057, 0x1b700213, 0x1b740199, 0xc820001f, 0x46ec0190, 0x7f6b400a,
+       0x7f73400a, 0x56240020, 0xcf400024, 0xd2c00025, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027,
+       0xcfc00013, 0xcec13267, 0xc4153249, 0x2154003d, 0xc41c0019, 0x1bd800e8, 0x7dd9c005, 0x25dc0001,
+       0xc42c004a, 0xcd80005e, 0xc420004d, 0xcec0005e, 0x11dc0010, 0x7e1e000a, 0xcd413249, 0xce01326f,
+       0x28340001, 0x05980008, 0x7f598004, 0xcd800035, 0x1be800e8, 0xc42c004a, 0xce80005e, 0xd801327a,
+       0xd800005f, 0xd8000075, 0xd800007f, 0xc424004c, 0xce41326e, 0xcec0005e, 0x28240100, 0x7e6a4004,
+       0xce400079, 0xc435325d, 0x277401ef, 0x04240020, 0xce41325e, 0xd801325b, 0xd8013260, 0xcf41325d,
+       0xda000068, 0xcf800008, 0x90000000, 0xc4113277, 0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001,
+       0x11dc0008, 0x29dc0001, 0x25140001, 0x9540002d, 0xd8400013, 0xcdc1334a, 0xcfc00013, 0x042c3000,
+       0xcec13267, 0xc42d3246, 0xc4313245, 0xc4353267, 0xd8400013, 0xc425334d, 0x26640001, 0x9640fffe,
+       0xc419334e, 0xc41d334f, 0xc4213350, 0xc4253351, 0x52ec0020, 0x1b680057, 0x7ef2c01a, 0x1b700213,
+       0x1b740199, 0x46ec01b0, 0x7f6b400a, 0x7f73400a, 0xcfc00013, 0xcf400024, 0xd2c00025, 0xcd800026,
+       0xcdc00026, 0xce000026, 0xce400026, 0x042c2000, 0xd8400027, 0xcec13267, 0xc42d3267, 0x96c00001,
+       0xc41c000b, 0xc420000c, 0x11dc0002, 0x7de1c001, 0x11dc0008, 0xd8400013, 0xcdc1334a, 0xcfc00013,
+       0x90000000, 0xc430000b, 0x33300002, 0x04240000, 0x9b000010, 0x1be000e8, 0x042c0000, 0xc0360001,
+       0x04280004, 0xd8400013, 0xcec1c200, 0xc63124dc, 0x0aa80001, 0x7ef6c001, 0x7e724001, 0x97000001,
+       0x9a80fff9, 0xc02ee000, 0xd8400013, 0xcec1c200, 0x90000000, 0x90000000, 0xc4253260, 0x7fc14001,
+       0xc40d3249, 0x18cc003e, 0x98c00005, 0x194c1c03, 0xccc0003b, 0xc40c002d, 0x80000697, 0xc420004a,
+       0x194c00e8, 0xccc0005e, 0xc40c004c, 0xc431326d, 0x27301fff, 0xce00005e, 0x7cf0c00d, 0x98c00003,
+       0x8c0007e0, 0x95c00008, 0xc430001e, 0x1b301ff8, 0x2b300400, 0x2330003f, 0xcd400013, 0xcf01325b,
+       0x90000000, 0xcd400013, 0xd801325b, 0xc411325d, 0x251001ef, 0xcd01325d, 0x25100007, 0x31100005,
+       0x9900008e, 0xc40c0007, 0xd9000010, 0x8000075e, 0x202c007d, 0xcec1325b, 0xc4293265, 0xc4353254,
+       0x26a9feff, 0xc4380004, 0xd8400008, 0x1374000b, 0xc40c000d, 0xd8000009, 0x1774000d, 0xd8400013,
+       0xc41d30b8, 0xcfc00013, 0x95c00008, 0xc411325d, 0xd801325b, 0xccc00009, 0xcf800008, 0x251001ef,
+       0xcd01325d, 0x90000000, 0xce813265, 0xcf400100, 0xc00ac006, 0xc00e0000, 0x28880700, 0x28cc0014,
+       0x8c0006de, 0x14cc0010, 0x30d4000f, 0x04cc0001, 0x10cc0010, 0x28cc0014, 0x99400009, 0xd8400013,
+       0xc41530b8, 0xcfc00013, 0xc4193265, 0x19980028, 0x99400003, 0x99800002, 0x800006c8, 0xcfc00013,
+       0xc411325d, 0xd801325b, 0xcf800008, 0x251001ef, 0xcd01325d, 0x90000000, 0x15600008, 0xce000009,
+       0xc8380023, 0xc4180081, 0x11a00002, 0x7fa38011, 0xc4100026, 0x05980008, 0x7d1a0002, 0x282c2002,
+       0x3e280008, 0xcec00013, 0xc4300027, 0x042c0008, 0xd3800025, 0xcf000024, 0x202400d0, 0x7ca48001,
+       0xcc800026, 0xccc00026, 0x28240006, 0xcc000026, 0x0a640001, 0x9a40fffe, 0x9a800004, 0x32280000,
+       0x9a800002, 0x9a000000, 0xd8400027, 0x24d8003f, 0xd840003c, 0xcec0003a, 0xd8800013, 0xcd81a2a4,
+       0x90000000, 0xc41d325d, 0x25dc0007, 0xc40d3249, 0x18cc003e, 0x94c0000a, 0xc420004a, 0x194c00e8,
+       0xccc0005e, 0xc40c004c, 0xc431326d, 0x27301fff, 0xce00005e, 0x7cf0c00d, 0x80000712, 0x194c1c03,
+       0xccc0003b, 0xc40c002d, 0x05e80714, 0x86800000, 0x8000071c, 0x80000720, 0x80000747, 0x8000071d,
+       0x800007c4, 0x80000732, 0x80000745, 0x80000744, 0x90000000, 0x98c00006, 0x8000072e, 0x90000000,
+       0x98c00003, 0x8c0007e0, 0x95c0000c, 0xcd400013, 0xc4253265, 0x2a64008c, 0xce413265, 0xc430001e,
+       0x1b301fe8, 0x2b300400, 0x2330003f, 0xd8013260, 0xcf01325b, 0x90000000, 0xc40c0007, 0xd9000010,
+       0x04240000, 0x8000075e, 0x98c0fff1, 0x8c0007e0, 0x95c00002, 0x80000723, 0xcd400013, 0xc41f02f1,
+       0x95c00004, 0xd8013247, 0xd801325d, 0x80000743, 0xd8813247, 0xd801325d, 0xc4100004, 0xd8400008,
+       0xd8400013, 0xd88130b8, 0xcd000008, 0x90000000, 0x04100001, 0x98c0ffde, 0x8000072e, 0x98c00003,
+       0x8c0007e0, 0x95c00012, 0xc4340004, 0xd8400008, 0x15600008, 0xc418000d, 0xce000009, 0xd8400013,
+       0xd84131db, 0xcf400008, 0xcd800009, 0xc430001e, 0x1b301ff8, 0x2b300400, 0x2330003f, 0xcd400013,
+       0xd8413260, 0xcf01325b, 0x90000000, 0xc40c0007, 0xd9000010, 0x04240000, 0xcd400013, 0x041c3000,
+       0xcdc13267, 0xc41d3267, 0xc41d3265, 0x25dc8000, 0x95c00007, 0xc41c004a, 0x195800e8, 0xcd80005e,
+       0xc418004c, 0xcd81326e, 0xcdc0005e, 0xc41d3265, 0x25dd7fff, 0xcdc13265, 0xc41d3246, 0xc4193245,
+       0xc42d3267, 0x51e00020, 0x7e1a001a, 0x46200200, 0x04283247, 0x04300033, 0x1af80057, 0x1af40213,
+       0x042c000c, 0x7f7b400a, 0x7f6f400a, 0xcf400024, 0xd2000025, 0xcd800026, 0xcdc00026, 0xc6990000,
+       0x329c325d, 0x99c00008, 0x329c3269, 0x99c00006, 0x329c3267, 0x95c00005, 0xc01defff, 0x7d9d8009,
+       0x8000078a, 0x25980000, 0x0b300001, 0x06a80001, 0xcd800026, 0x9b00fff2, 0xd8400027, 0xc43c0012,
+       0x9bc0ffff, 0xcd400013, 0xd801325b, 0xc431325a, 0xc03e7ff0, 0x7f3f0009, 0xcf01325a, 0xc4313249,
+       0x1f30001f, 0xcf013249, 0xc03e4000, 0xcfc13254, 0xcd400013, 0xd8013254, 0xc431325d, 0xd801324f,
+       0xd8013255, 0xd8013247, 0xd801325d, 0x1b300028, 0x8c00120d, 0x8c001219, 0x8c001232, 0xc4380004,
+       0xd8400008, 0xd8400013, 0x9900000d, 0xd88130b8, 0x9700000b, 0xc43d30b5, 0x1bf0003a, 0x9b000b80,
+       0x203c003a, 0xc430000e, 0x27300700, 0x13300014, 0x2b300001, 0xcf0130b7, 0xcfc130b5, 0x46200008,
+       0xcf400024, 0xd2000025, 0xd8000026, 0xd8400027, 0x043c2000, 0xcd400013, 0xcfc13267, 0xc43d3267,
+       0x9bc00001, 0xccc00010, 0xcf800008, 0x90000000, 0xc4080007, 0xd9000010, 0xc4193260, 0x259c0003,
+       0x31dc0003, 0x95c00014, 0x040c3000, 0xd8400008, 0xccc13267, 0xc40d3267, 0x18ec0057, 0x18e40213,
+       0x18cc0199, 0x7cecc00a, 0x7ce4c00a, 0xc4193246, 0xc41d3245, 0x51980020, 0x7d9d801a, 0x8c000448,
+       0xcd400013, 0x040c2000, 0xccc13267, 0xc40d3267, 0x94c00001, 0xcc800010, 0xd801325d, 0x90000000,
+       0xc418000b, 0x31980002, 0x041c0000, 0x9980001c, 0x19580066, 0x15600008, 0x040c0000, 0xc0120001,
+       0x11980003, 0x04240004, 0x7da18001, 0xc4200007, 0xc4340004, 0xd9000010, 0xd8400008, 0xd8400013,
+       0xccc1c200, 0xc41d24db, 0x7cd0c001, 0x0a640001, 0x7dd9c005, 0x25dc0001, 0x99c00002, 0x9a40fff8,
+       0xc418005e, 0x9580137b, 0xc00ee000, 0xd8400013, 0xccc1c200, 0xce000010, 0xcf400008, 0x90000000,
+       0xd840004f, 0xc4113269, 0x19080070, 0x190c00e8, 0x2510003f, 0x2518000f, 0xcd813268, 0x05a80809,
+       0x86800000, 0x8000080e, 0x8000080f, 0x80000898, 0x80000946, 0x800009e1, 0x80000a5a, 0x04a80811,
+       0x86800000, 0x80000815, 0x80000834, 0x8000085e, 0x8000085e, 0x04341001, 0xcf400013, 0xc4380004,
+       0xd8400008, 0xc42d3045, 0xcec1c091, 0x31300021, 0x9700000b, 0xd84002f1, 0xd8400013, 0xc43130b8,
+       0x27300001, 0xc4293059, 0x56a8001f, 0x7f2b000a, 0xcf800008, 0x9b000241, 0x8000084a, 0xcf400013,
+       0xd8400008, 0xc43130b6, 0x9b000003, 0xc02f0001, 0xcec130b6, 0xc4252087, 0x5668001a, 0x26a80005,
+       0x9a80fffd, 0xcf400013, 0xd80130b6, 0x8000084a, 0xc4380004, 0xd8400008, 0x04341001, 0xcf400013,
+       0xc431ecaa, 0x27300080, 0x9b000010, 0xc02e0001, 0xcec130b6, 0xcf400013, 0xd80130b6, 0x31300021,
+       0x9700000a, 0xd84002f1, 0xd8400013, 0xc43130b8, 0x27300001, 0xc4293059, 0x56a8001f, 0x7f2b000a,
+       0xcf800008, 0x9b00021d, 0xdd410000, 0x040c0005, 0xd84802e9, 0x8c001a41, 0xc43b02f1, 0x9b800006,
+       0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0xcf800008, 0xcec80278, 0x56f00020, 0xcf080280,
+       0x8c001608, 0xdc140000, 0xcd400013, 0xd8813247, 0xd80802e9, 0x8000085e, 0xcd400013, 0x31100011,
+       0x950001fa, 0xc02e0001, 0x2aec0008, 0xc01c0020, 0xc0180001, 0xc00c0007, 0x11a40006, 0x7de6000a,
+       0x10e40008, 0x7e26000a, 0x7e2e000a, 0xce000013, 0xc4113254, 0x1d10ffdf, 0x2110003e, 0xcd013254,
+       0xd801324f, 0xd8013255, 0x1d10ff9e, 0xcd013254, 0xd8013247, 0xd801325d, 0xd801325e, 0xc0245301,
+       0xce413249, 0xd801325f, 0xc425326c, 0xc0121fff, 0x29108eff, 0x7e524009, 0xce41326c, 0xc425325a,
+       0xc0127ff0, 0x7e524009, 0xce41325a, 0xc425325b, 0xc0131fff, 0x7e524009, 0xce41325b, 0xd801326d,
+       0xd801326e, 0xd8013279, 0x94c00003, 0x08cc0001, 0x80000866, 0xc00c0007, 0x95800003, 0x09980001,
+       0x80000866, 0xc0100010, 0x7dd2400c, 0x9a400004, 0xc0180003, 0x7dd1c002, 0x80000866, 0x80000a5a,
+       0x04a8089a, 0x86800000, 0x8000089e, 0x800008fa, 0x80000945, 0x80000945, 0x31300022, 0x97000007,
+       0xc4380004, 0xd8400008, 0xd8400013, 0xc43130b8, 0x27300001, 0xcf800008, 0xcd400013, 0x04183000,
+       0xcd813267, 0xc4113246, 0xc4193245, 0x51100020, 0x7d91801a, 0x459801e0, 0xc4313267, 0x2738000f,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0xd180001e, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8300011, 0x97000036, 0x45980008, 0xd180001e,
+       0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8340011, 0x9740002f, 0xc43c0004, 0xd8400008, 0xd8400013,
+       0x13b80001, 0xc79d3300, 0xc7a13301, 0x96000001, 0xd8393300, 0xc0260001, 0xce793301, 0xc424005e,
+       0x964012a4, 0x7c028009, 0x9740001c, 0x27580001, 0x99800004, 0x57740001, 0x06a80400, 0x800008d2,
+       0xc4180006, 0x9980ffff, 0x29640001, 0xce40001a, 0x242c0000, 0x06ec0400, 0x57740001, 0x27580001,
+       0x9980fffd, 0xc02620c0, 0xce41c078, 0xce81c080, 0xcc01c081, 0xcf01c082, 0x57240020, 0xce41c083,
+       0xc0260400, 0x7e6e400a, 0xce41c084, 0x7eae8001, 0x7f2f0011, 0x800008d2, 0xc4180006, 0x9980ffff,
+       0xcdf93300, 0xce393301, 0xcfc00008, 0xcd400013, 0xc43c0004, 0xd8400008, 0x04182000, 0xcd813267,
+       0xcfc00008, 0x80000903, 0x31240022, 0x96400008, 0x04100001, 0xc4380004, 0xd8400008, 0xd8400013,
+       0xc43130b8, 0x27300001, 0xcf800008, 0xc4af0280, 0xc4b30278, 0x52ec0020, 0x7ef2c01a, 0x7ec30011,
+       0x32f80000, 0x9b800011, 0x043c0020, 0x04280000, 0x67180001, 0x0bfc0001, 0x57300001, 0x95800006,
+       0x8c001628, 0x9a400003, 0xd981325d, 0x80000915, 0xd9c1325d, 0x06a80001, 0x9bc0fff6, 0x7f818001,
+       0x8c001606, 0x7d838001, 0x94800010, 0xcd400013, 0xc41d3259, 0xc421325a, 0x16240014, 0x12640014,
+       0x1a2801f0, 0x12a80010, 0x2620ffff, 0x7e2a000a, 0x7de1c001, 0x7e5e400a, 0x9b800002, 0x2264003f,
+       0xce41325a, 0xd8013259, 0xc40c0007, 0xd9000010, 0x8c00075e, 0xc4af0228, 0x043c0000, 0x66d80001,
+       0x95800010, 0x04300002, 0x1330000d, 0x13f40014, 0x7f73400a, 0xcf400013, 0x04380040, 0xcf80001b,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380060, 0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff,
+       0x07fc0001, 0x56ec0001, 0x33e80010, 0x9680ffec, 0x80000a5a, 0x80000a5a, 0x04a80948, 0x86800000,
+       0x8000094c, 0x8000099b, 0x800009e0, 0x800009e0, 0xc43c0004, 0xd8400008, 0xcd400013, 0x04183000,
+       0xcd813267, 0xc4113246, 0xc4193245, 0x51100020, 0x7d91801a, 0x459801e0, 0xc4313267, 0x2738000f,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0xd180001e, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8300011, 0x97000033, 0x45980008, 0xd180001e,
+       0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc8340011, 0x9740002c, 0xd8400013, 0x13b80001, 0xc79d3300,
+       0xc7a13301, 0x96000001, 0xd8393300, 0xc0260001, 0xce793301, 0xc424005e, 0x964011fe, 0x7c028009,
+       0x9740001c, 0x27580001, 0x99800004, 0x57740001, 0x06a80400, 0x80000978, 0xc4180006, 0x9980ffff,
+       0x29640001, 0xce40001a, 0x242c0000, 0x06ec0400, 0x57740001, 0x27580001, 0x9980fffd, 0xc0260010,
+       0xce41c078, 0xcf01c080, 0x57240020, 0xce41c081, 0xce81c082, 0xcc01c083, 0xc0260800, 0x7e6e400a,
+       0xce41c084, 0x7eae8001, 0x7f2f0011, 0x80000978, 0xc4180006, 0x9980ffff, 0xcdf93300, 0xce393301,
+       0x04182000, 0xcd813267, 0xcfc00008, 0xcd400013, 0xc4193246, 0xc41d3245, 0x51980020, 0x7dda801a,
+       0x7d41c001, 0x7e838011, 0xd84802e9, 0x8c001802, 0x469c0390, 0xc4313267, 0x04183000, 0xcd813267,
+       0x1b342010, 0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c,
+       0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4200011, 0x45dc0004, 0xd1c0001e,
+       0xd8400021, 0xc418000f, 0x9980ffff, 0xc4240011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc4280011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc42c0011,
+       0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4300011, 0x45dc0004, 0xd1c0001e,
+       0xd8400021, 0xc418000f, 0x9980ffff, 0xc4340011, 0x45dc0004, 0xd1c0001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc4380011, 0xcd400013, 0x04182000, 0xcd813267, 0x043c0001, 0x8c0014df, 0x80000a5a,
+       0x80000a5a, 0x31280014, 0xce8802ef, 0x9a800062, 0x31280034, 0x9a800060, 0x04a809e8, 0x86800000,
+       0x800009ec, 0x80000a45, 0x80000a59, 0x80000a59, 0xcd400013, 0xc4113246, 0xc4193245, 0x51100020,
+       0x7d91801a, 0x45980400, 0xc4b30258, 0xc4a70250, 0x53300020, 0x7e72401a, 0xc4313267, 0x1b342010,
+       0x172c000c, 0x26ec0800, 0x1b30c012, 0x7ef7400a, 0x7f37000a, 0x2b300000, 0xcf00001c, 0x042c0020,
+       0x66740001, 0x97400041, 0xcd400013, 0x04383000, 0xcf813267, 0xc4393267, 0x9b800001, 0xd180001e,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4300011, 0x1b38007e, 0x33b40003, 0x9b400003, 0x4598001c,
+       0x9740002f, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc40c0011, 0x45980004,
+       0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4100011, 0x45980004, 0xd180001e, 0xd8400021,
+       0xc438000f, 0x9b80ffff, 0xc4340011, 0xcf4002eb, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f,
+       0x9b80ffff, 0xc4340011, 0xcf4002ec, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff,
+       0xc4340011, 0xcf4002ed, 0x45980004, 0xd180001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4340011,
+       0xcf4002ee, 0x45980004, 0xcd400013, 0x04382000, 0xcf813267, 0xd84802e9, 0x8c001715, 0xcd400013,
+       0x04382000, 0xcf813267, 0x56640001, 0x0aec0001, 0x9ac0ffbc, 0xc4380004, 0xd8400008, 0x04341001,
+       0xcf400013, 0x94800005, 0xc431ecaa, 0x27300080, 0x97000002, 0x80000a55, 0xc43130b6, 0x233c0032,
+       0xcfc130b6, 0xcf400013, 0xcf0130b6, 0xc49302ef, 0x99000003, 0xcd400013, 0xd8413247, 0xcf800008,
+       0x80000a5a, 0x80000a5a, 0xcd400013, 0x04180001, 0x5198001f, 0xcd813268, 0xc4193269, 0x2598000f,
+       0x9980fffe, 0xd80002f1, 0xcd400013, 0xd8013268, 0xd800004f, 0x90000000, 0xcd400013, 0x04380001,
+       0x53b8001f, 0x7db9801a, 0xcd813268, 0x80000a5e, 0xd8400029, 0xc40c005e, 0x94c01106, 0xd8800013,
+       0xcc412e01, 0xcc412e02, 0xcc412e03, 0xcc412e00, 0x80000aa7, 0xd8400029, 0xc40c005e, 0x94c010fd,
+       0x7c40c001, 0x50640020, 0x7ce4c01a, 0xd0c00072, 0xc80c0072, 0x58e801fc, 0x12a80009, 0x2aa80000,
+       0xd0c0001e, 0xce80001c, 0xd8400021, 0xc424000f, 0x9a40ffff, 0x04240010, 0x18dc01e2, 0x7e5e4002,
+       0x3e5c0003, 0x3e540002, 0x95c00006, 0xc8180011, 0xc8100011, 0xc8100011, 0x55140020, 0x80000aa2,
+       0x9540000a, 0xc8180011, 0x44cc0008, 0x55900020, 0xd0c0001e, 0xd8400021, 0xc424000f, 0x9a40ffff,
+       0xc4140011, 0x80000aa2, 0x44cc0004, 0xc4180011, 0xd0c0001e, 0xd8400021, 0xc424000f, 0x9a40ffff,
+       0xc8100011, 0x55140020, 0xd8800013, 0xcd812e01, 0xcd012e02, 0xcd412e03, 0xcc412e00, 0xc428000e,
+       0x2aa80008, 0xce800013, 0xc4253249, 0x2264003f, 0xce413249, 0xce800013, 0xc4253249, 0x96400001,
+       0xd800002a, 0xc410001a, 0xc40c0021, 0xc4140028, 0x95000005, 0x1e64001f, 0xce800013, 0xce413249,
+       0x80001b70, 0x14d00010, 0xc4180030, 0xc41c0007, 0x99000004, 0x99400009, 0x9980000c, 0x80000ab1,
+       0xccc00037, 0x8c000190, 0xc420001c, 0xd8000032, 0x9a0010ac, 0x80000aa7, 0xd880003f, 0x95c00002,
+       0xd8c0003f, 0x80001082, 0xd8800040, 0x95c00002, 0xd8c00040, 0x800010de, 0xc010ffff, 0x18d403f7,
+       0x7d0cc009, 0xc41b0367, 0x7d958004, 0x7d85800a, 0xdc1e0000, 0x90000000, 0xc424000b, 0x32640002,
+       0x7c40c001, 0x18d001fc, 0x05280adc, 0x86800000, 0x80000af1, 0x80000adf, 0x80000ae7, 0x8c000ace,
+       0xd8c00013, 0x96400002, 0xd8400013, 0xcd8d2000, 0x99c00010, 0x7c408001, 0x88000000, 0x18d803f7,
+       0xc010ffff, 0x7d0cc009, 0x04140000, 0x11940014, 0x29544001, 0x9a400002, 0x29544003, 0xcd400013,
+       0x80000af4, 0xd8c00013, 0x96400002, 0xd8400013, 0xd44d2000, 0x7c408001, 0x88000000, 0xc424000b,
+       0x32640002, 0x7c40c001, 0xd8c00013, 0x96400002, 0xd8400013, 0xd44dc000, 0x7c408001, 0x88000000,
+       0x7c40c001, 0x18d0003c, 0x95000006, 0x8c000ace, 0xd8800013, 0xcd8d2c00, 0x99c00003, 0x80000b0a,
+       0xd8800013, 0xd44d2c00, 0x7c408001, 0x88000000, 0x7c40c001, 0x28148004, 0x24d800ff, 0xccc00019,
+       0xcd400013, 0xd4593240, 0x7c408001, 0x88000000, 0xd8400029, 0xc40c005e, 0x94c0105e, 0x7c410001,
+       0x50540020, 0x7c418001, 0x2198003f, 0x199c0034, 0xc40c0007, 0x95c00028, 0xc428000e, 0x2aa80008,
+       0xce800013, 0xc42d324f, 0xc4313255, 0x7ef3400c, 0x9b400021, 0xd800002a, 0x80001b70, 0xc40c0007,
+       0x14e80001, 0x9a8000af, 0xd9000010, 0x041c0002, 0x042c01c8, 0x8c000d61, 0xccc00010, 0xd8400029,
+       0xc40c005e, 0x94c01043, 0x7c410001, 0x50540020, 0x7c418001, 0x18a01fe8, 0x3620005c, 0x9a00000e,
+       0x2464003f, 0xd8400013, 0xc6290ce7, 0x16ac001f, 0x96c00004, 0x26ac003f, 0x7ee6c00d, 0x96c00005,
+       0x06200001, 0x2620000f, 0x9a00fff8, 0x8000016a, 0xce000367, 0xc424005e, 0x9640102e, 0xc428000e,
+       0x199c0037, 0x19a00035, 0x2aa80008, 0xce800013, 0x95c0005d, 0xd800002a, 0xc42d3256, 0xc431325a,
+       0x2330003f, 0x16f8001f, 0x9780000d, 0xc4253248, 0xc035f0ff, 0x7e764009, 0x19b401f8, 0x13740008,
+       0x7e76400a, 0xce800013, 0xce413248, 0xcf01325a, 0xce800013, 0xc431325a, 0x97000001, 0x7d15001a,
+       0xd1000072, 0xc8100072, 0x55140020, 0x199c0034, 0xd8400010, 0xd8400029, 0x9b800004, 0x1ae4003e,
+       0xce400008, 0x80000b7c, 0xc4353254, 0x16a80008, 0x1aec003c, 0x19a4003f, 0x12a80015, 0x12ec001f,
+       0x1374000b, 0x7eae800a, 0xc02e4000, 0x1774000d, 0x7eae800a, 0xce400008, 0x7f6b400a, 0x95c00005,
+       0xc43d3248, 0x1bfc01e8, 0x13fc0018, 0x7dbd800a, 0x1d98ff15, 0x592c00fc, 0xcd80000a, 0x12e00016,
+       0x7da1800a, 0x592c007e, 0x12e00015, 0x7da1800a, 0xd1000001, 0xcd800001, 0x11a0000c, 0x1264001e,
+       0x1620000c, 0x7e26000a, 0x7e32000a, 0x12e4001b, 0x7e26000a, 0x5924007e, 0x12640017, 0x7e26000a,
+       0x19a4003c, 0x12640018, 0x7e26000a, 0xd800002a, 0xce01325a, 0xcd013257, 0xcd413258, 0xc429325a,
+       0xc40c005e, 0x94c00fdb, 0x96800001, 0x95c00003, 0x7c40c001, 0x7c410001, 0x9780f5ca, 0xcf400100,
+       0xc40c0007, 0xd9000010, 0x8c00120d, 0x8c001219, 0x8c001232, 0xccc00010, 0x8c001b6d, 0x7c408001,
+       0x88000000, 0xc42d324e, 0xc431324d, 0x52ec0020, 0x7ef2c01a, 0xc435324f, 0xc4293256, 0x52ec0008,
+       0x07740003, 0x04240002, 0x269c003f, 0x7e5e4004, 0x7f67000f, 0x97000003, 0x7f674002, 0x0b740001,
+       0x53740002, 0x7ef6c011, 0x1ab42010, 0x1ab8c006, 0x16a8000c, 0x26a80800, 0x2b740000, 0x7f7b400a,
+       0x7f6b400a, 0xcf40001c, 0xd2c0001e, 0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4180011, 0x9a000003,
+       0x8c000bec, 0x80000b47, 0xc42c001d, 0xc4313256, 0x1b34060b, 0x1b300077, 0x7f370009, 0x13300017,
+       0x04340100, 0x26ec00ff, 0xc03a8004, 0x7ef6c00a, 0x7f3b000a, 0x7ef2c00a, 0xcec1325b, 0x80000c16,
+       0xc40c0032, 0xc410001d, 0x28cc0008, 0xccc00013, 0xc415325b, 0x7c418001, 0x7c418001, 0x18580037,
+       0x251000ff, 0xc421325d, 0x262001ef, 0xce01325d, 0x99800004, 0x7d15400a, 0xcd41325b, 0x80000168,
+       0x1d54001f, 0xcd41325b, 0x7c408001, 0x88000000, 0xc428000b, 0xc42c000c, 0x12a80001, 0x26a80004,
+       0x7eae800a, 0xc40c0021, 0xc4340028, 0x14f00010, 0xc4380030, 0xc43c0007, 0xcd280200, 0xcd680208,
+       0xcda80210, 0x9b00000c, 0x9b400014, 0x9b800017, 0xc428000b, 0xc42c000c, 0x12a80001, 0x26a80004,
+       0x7eae800a, 0xc6930200, 0xc6970208, 0xc69b0210, 0x90000000, 0x17300001, 0x9b000005, 0xccc00037,
+       0x8c000190, 0xd8000032, 0x90000000, 0xd8000028, 0xd800002b, 0x80000168, 0xd900003f, 0x97c00002,
+       0xd940003f, 0x80001082, 0xd9000040, 0x97c00002, 0xd9400040, 0x800010de, 0xc40c0021, 0x14fc0011,
+       0x24f800ff, 0x33b80001, 0x97c0fffc, 0x9b800007, 0xccc00037, 0x8c000190, 0xd8000032, 0xd8000028,
+       0xd800002b, 0x80001b70, 0xc4380004, 0xd8400008, 0xd8400013, 0xd88130b8, 0x04100000, 0x04140000,
+       0xc418000e, 0x29980008, 0x7d83c001, 0xcd800013, 0xc4093249, 0x1888003e, 0x94800020, 0xd8400074,
+       0x8c000671, 0x9a400009, 0xc418000e, 0x29980008, 0xcd800013, 0xc419324c, 0x259c0001, 0x1598001f,
+       0x95c00016, 0x95800015, 0x99000003, 0xd8400036, 0x04100001, 0xc40c0021, 0x14d80011, 0x24e000ff,
+       0x321c0002, 0x32200001, 0x9580ffee, 0x99c00014, 0x96000004, 0xccc00037, 0x04140001, 0x80000c30,
+       0x9480000a, 0xd8000074, 0xc418005e, 0x95800f29, 0xcf800008, 0x80000c16, 0x94800004, 0xd8000074,
+       0xc418005e, 0x95800f23, 0xd9c00036, 0x99400002, 0xccc00037, 0xcf800008, 0x80000c16, 0x94800004,
+       0xd8000074, 0xc418005e, 0x95800f1a, 0xccc00037, 0xd8800036, 0x80001b70, 0x041c0003, 0x042c01c8,
+       0x8c000d61, 0xc4200007, 0xc40c0077, 0x94c00001, 0x7c418001, 0xc428000e, 0x9600f502, 0x0a200001,
+       0x98c0f500, 0x2aa80008, 0xce000010, 0x9a000f05, 0xce800013, 0xc431325a, 0xc42d3256, 0x1f30001f,
+       0x16e4001f, 0xcf01325a, 0xc431325a, 0x97000001, 0x9640f4f4, 0xc434000b, 0x33740002, 0x9b40f4f1,
+       0xc4353254, 0x16a80008, 0x1aec003c, 0x12a80015, 0x12ec001f, 0x1374000b, 0x7eae800a, 0xc02e4000,
+       0x1774000d, 0x7eae800a, 0x7f6b400a, 0xcf400100, 0x12780001, 0x2bb80001, 0xc00ac005, 0xc00e0002,
+       0x28cc8000, 0x28884900, 0x28cc0014, 0x80000ff3, 0xc43c0007, 0x7c40c001, 0x17fc0001, 0xd8400013,
+       0x9bc00004, 0xd8400029, 0xc424005e, 0x96400ee1, 0xcc41c40a, 0xcc41c40c, 0xcc41c40d, 0x7c414001,
+       0x24d0007f, 0x15580010, 0x255400ff, 0xcd01c411, 0xcd81c40f, 0xcd41c40e, 0xcc41c410, 0x7c414001,
+       0x7c418001, 0x04200000, 0x18e80033, 0x18ec0034, 0xcc41c414, 0xcc41c415, 0xcd81c413, 0xcd41c412,
+       0x18dc0032, 0x7c030011, 0x7c038011, 0x95c00027, 0x96c00002, 0xc431c417, 0xc435c416, 0x96800004,
+       0x96c00002, 0xc439c419, 0xc43dc418, 0xc41c000e, 0x29dc0008, 0xcdc00013, 0xcf413261, 0x96c00002,
+       0xcf013262, 0x96800004, 0xcfc13263, 0x96c00002, 0xcf813264, 0x18dc0030, 0xc43c0007, 0x95c00017,
+       0x17fc0001, 0x9ac00005, 0x7d77000c, 0x9bc00015, 0x9700000a, 0x80000cd6, 0x51b80020, 0x53300020,
+       0x7f97801a, 0x7f37001a, 0x7f3b000c, 0x9bc0000d, 0x97800002, 0x80000cd6, 0x9a000018, 0xd8400013,
+       0x28200001, 0x80000ca7, 0x18dc0031, 0x95c00003, 0xc435c40b, 0x9740fffd, 0xd800002a, 0x80001b70,
+       0xc4280032, 0x2aa80008, 0xce800013, 0xc40d325b, 0x97000002, 0x800012c2, 0xc438001d, 0x1bb81ff0,
+       0x7f8cc00a, 0xccc1325b, 0xc411325d, 0x251001ef, 0xcd01325d, 0x80001b70, 0xc428000e, 0xc43c0007,
+       0x2aa80008, 0xc438001d, 0xce800013, 0x13f4000c, 0x9bc00006, 0xc43d3256, 0x1bf0060b, 0x1bfc0077,
+       0x7ff3c00a, 0x80000cf4, 0xc43d325a, 0x1bfc0677, 0x13fc0017, 0x04300100, 0x1bb81fe8, 0x7f73400a,
+       0xc032800b, 0x7fb7800a, 0x7ff3c00a, 0x7ffbc00a, 0xcfc1325b, 0x80000c16, 0xc43c0007, 0x7c40c001,
+       0x18d42011, 0x17fc0001, 0x18d001e8, 0x24cc007f, 0x7cd4c00a, 0x9bc00004, 0xd8400029, 0xc428005e,
+       0x96800e6c, 0x7c414001, 0x50580020, 0x7d59401a, 0xd1400072, 0xc8140072, 0x596001fc, 0x12200009,
+       0x7ce0c00a, 0x7c418001, 0x505c0020, 0x7d9d801a, 0x7c41c001, 0x50600020, 0x7de1c01a, 0x7c420001,
+       0xccc0001b, 0xd140001d, 0xd180001f, 0xd1c00020, 0xd8400021, 0x95000010, 0x04300000, 0xc428000f,
+       0x9a80ffff, 0xc8240010, 0x7e5e800c, 0x9bc00015, 0x9a80000c, 0x9b000024, 0x28300001, 0x122c0004,
+       0x06ec0001, 0x0aec0001, 0x9ac0ffff, 0xd8400021, 0x80000d1f, 0xc428000f, 0x9a80ffff, 0xc8240010,
+       0x566c0020, 0xc428000e, 0x2aa80008, 0xce800013, 0xce413261, 0xcec13262, 0xd800002a, 0x80001b70,
+       0xc4340032, 0x2b740008, 0xcf400013, 0xc40d325b, 0x96800005, 0x566c0020, 0xce413261, 0xcec13262,
+       0x800012c2, 0xc438001d, 0x1bb81fe8, 0x7f8cc00a, 0xccc1325b, 0xc411325d, 0x251001ef, 0xcd01325d,
+       0x80001b70, 0xc43c0007, 0xc438001d, 0xc428000e, 0x2aa80008, 0xce800013, 0x13f4000c, 0x9bc00006,
+       0xc43d3256, 0x1bf0060b, 0x1bfc0077, 0x7ff3c00a, 0x80000d57, 0xc43d325a, 0x1bfc0677, 0x13fc0017,
+       0x04300100, 0x1bb81fe8, 0x7f73400a, 0xc0328009, 0x7fb7800a, 0x7ff3c00a, 0x7ffbc00a, 0xcfc1325b,
+       0x80000c16, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0xc4253246, 0xc4113245, 0x04143000, 0xcd413267,
+       0x52640020, 0x7e51001a, 0xc4153267, 0x7d2d0011, 0x19640057, 0x19580213, 0x19600199, 0x7da6400a,
+       0x7e26400a, 0xd1000025, 0xce400024, 0xcdc00026, 0xd8400027, 0x04142000, 0xcfc00013, 0xcd413267,
+       0xc4153267, 0x99400001, 0x90000000, 0x7c40c001, 0x18d001e8, 0x18d40030, 0x18d80034, 0x05280d83,
+       0x7c420001, 0x7c424001, 0x86800000, 0x80000d8a, 0x8000016a, 0x80000d95, 0x80000db1, 0x8000016a,
+       0x80000d95, 0x80000dbc, 0x11540010, 0x7e010001, 0x8c00187c, 0x7d75400a, 0xcd400013, 0xd4610000,
+       0x9580f3d8, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0xd8000016, 0x526c0020, 0x18e80058,
+       0x7e2ec01a, 0xd2c00072, 0xc82c0072, 0x5ae0073a, 0x7ea2800a, 0x9940000a, 0xce800024, 0xd2c00025,
+       0xd4400026, 0xd8400027, 0x9580f3c6, 0xc4380012, 0x9b80ffff, 0x7c408001, 0x88000000, 0xdc3a0000,
+       0x0bb80001, 0xce800024, 0xd2c00025, 0xcc400026, 0xd8400027, 0x9b80fffb, 0x9980fff5, 0x7c408001,
+       0x88000000, 0xc02a0001, 0x2aa80001, 0x16200002, 0xce800013, 0xce01c405, 0xd441c406, 0x9580f3b1,
+       0xc439c409, 0x97800001, 0x7c408001, 0x88000000, 0xc424000b, 0x32640002, 0x9a40000b, 0x11540010,
+       0x29540002, 0xcd400013, 0xd4610000, 0x9580f3a5, 0xd8400013, 0xc439c040, 0x97800001, 0x7c408001,
+       0x88000000, 0xd4400078, 0x80000168, 0xd8400029, 0xc40c005e, 0x94c00da7, 0x7c40c001, 0x50500020,
+       0x7cd0c01a, 0xd0c00072, 0xc8280072, 0x5aac007e, 0x12d80017, 0x7c41c001, 0x7d9d800a, 0x56a00020,
+       0x2620ffff, 0x7da1800a, 0x51980020, 0x7e82400a, 0x7e58c01a, 0x19d4003d, 0x28182002, 0x99400030,
+       0x8c00104f, 0xc430000d, 0xc4340035, 0xd800002a, 0xcd800013, 0xc8140023, 0xc4180081, 0x13300005,
+       0xc011000f, 0xc4240004, 0x11a00002, 0x7c908009, 0x12640004, 0x7d614011, 0xc4100026, 0x05980008,
+       0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x3e280008, 0x20880188, 0x54ec0020, 0x7cb4800a, 0xc4300027,
+       0x04380008, 0xd1400025, 0xcf000024, 0x20240090, 0x7ca48001, 0xcc800026, 0xccc00026, 0xcec00026,
+       0xcec00026, 0x28240004, 0xcc000026, 0x0a640001, 0x9a40fffe, 0x9a800005, 0x32280000, 0x9a800002,
+       0x9a000000, 0x7c018001, 0xd8400027, 0xd8000016, 0xcf80003a, 0xd901a2a4, 0x80001037, 0xc418000e,
+       0x29980008, 0xcd800013, 0xc421326c, 0x1624001f, 0x9a40fffe, 0xd841325f, 0xd8800033, 0xc43c0009,
+       0x27fc0004, 0x97c0fffe, 0xd8000039, 0xd0c00038, 0xc43c0022, 0x9bc0ffff, 0xd8800034, 0xc429325f,
+       0x26ac0001, 0x9ac0fffe, 0x26ac0002, 0x96c00003, 0xd800002a, 0x80001b70, 0xc43c0007, 0xc430001e,
+       0xd8800033, 0x13f4000c, 0x1b301ff0, 0x2b300300, 0x2330003f, 0x7f37000a, 0x9680000b, 0xc43c0009,
+       0x27fc0004, 0x97c0fffe, 0xd8400039, 0xd0c00038, 0xc43c0022, 0x9bc0ffff, 0xcf01325b, 0xd8800034,
+       0x80000c16, 0xd8800034, 0x8c0001a2, 0x80001b70, 0xcc80003b, 0x24b00008, 0xc418000e, 0x1330000a,
+       0x18ac0024, 0x2b304000, 0x7c40c001, 0xcec00008, 0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a,
+       0x29980008, 0xcd800013, 0xc4113249, 0x1910003e, 0x99000002, 0xd840003d, 0x7c410001, 0xd4400078,
+       0x51100020, 0xcf01326c, 0x7cd0c01a, 0xc421326c, 0x12a80014, 0x2220003f, 0x7e2a000a, 0xcd800013,
+       0xce01326c, 0xd8800033, 0xc43c0009, 0x27fc0004, 0x97c0fffe, 0xd8000039, 0xd0c00038, 0xc43c0022,
+       0x9bc0ffff, 0xd8800034, 0x80001190, 0x7c40c001, 0x18dc003d, 0x95c00004, 0x041c0001, 0x042c01c8,
+       0x8c000d61, 0x18d40030, 0x18d001e8, 0x18fc0034, 0x24e8000f, 0x06a80e71, 0x7c418001, 0x7c41c001,
+       0x86800000, 0x80000edd, 0x80000e91, 0x80000e91, 0x80000ea1, 0x80000eaa, 0x80000e7c, 0x80000e7f,
+       0x80000e7f, 0x80000e87, 0x80000e8f, 0x8000016a, 0x51dc0020, 0x7d9e001a, 0x80000ee6, 0xc420000e,
+       0x2a200008, 0xce000013, 0xc4213262, 0xc4253261, 0x52200020, 0x7e26001a, 0x80000ee6, 0xc420000e,
+       0x2a200008, 0xce000013, 0xc4213264, 0xc4253263, 0x52200020, 0x7e26001a, 0x80000ee6, 0xc820001f,
+       0x80000ee6, 0x18e82005, 0x51e00020, 0x2aa80000, 0x7da1801a, 0xd1800072, 0xc8180072, 0x59a001fc,
+       0x12200009, 0x7ea2800a, 0xce80001c, 0xd180001e, 0xd8400021, 0xc428000f, 0x9a80ffff, 0xc8200011,
+       0x80000ee6, 0x15980002, 0xd8400013, 0xcd81c400, 0xc421c401, 0x95400041, 0xc425c401, 0x52640020,
+       0x7e26001a, 0x80000ee6, 0x31ac2580, 0x9ac00011, 0x31ac260c, 0x9ac0000f, 0x31ac0800, 0x9ac0000d,
+       0x31ac0828, 0x9ac0000b, 0x31ac2440, 0x9ac00009, 0x31ac2390, 0x9ac00007, 0x31ac0093, 0x9ac00005,
+       0x31ac31dc, 0x9ac00003, 0x31ac31e6, 0x96c00004, 0xc4340004, 0xd8400008, 0x80000ede, 0x39ac7c06,
+       0x3db07c00, 0x9ac00003, 0x97000002, 0x80000ebc, 0x39acc337, 0x3db0c330, 0x9ac00003, 0x97000002,
+       0x80000ebc, 0x39acc335, 0x3db0c336, 0x9ac00003, 0x97000002, 0x80000ebc, 0x39ac9002, 0x3db09001,
+       0x9ac00003, 0x97000002, 0x80000ebc, 0x39ac9012, 0x3db09011, 0x9ac00003, 0x97000002, 0x80000ebc,
+       0x39acec70, 0x3db0ec6f, 0x9ac00003, 0x97000002, 0x80000ebc, 0xc4340004, 0xd8400013, 0xc5a10000,
+       0x95400005, 0x05980001, 0xc5a50000, 0x52640020, 0x7e26001a, 0xcf400008, 0x05280eea, 0x7c418001,
+       0x7c41c001, 0x86800000, 0x80000ef1, 0x8000016a, 0x80000efe, 0x80000f11, 0x80000f2e, 0x80000efe,
+       0x80000f1f, 0xc4340004, 0xd8400013, 0xce190000, 0x95400005, 0x05980001, 0x56200020, 0xce190000,
+       0xcf400008, 0x97c0f26f, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0x51ec0020, 0x18e80058,
+       0x7daec01a, 0xd2c00072, 0xc82c0072, 0x5af8073a, 0x7eba800a, 0xd2c00025, 0xce800024, 0xce000026,
+       0x95400003, 0x56240020, 0xce400026, 0xd8400027, 0x97c0f25c, 0xc4380012, 0x9b80ffff, 0x7c408001,
+       0x88000000, 0xc02a0001, 0x2aa80001, 0x15980002, 0xce800013, 0xcd81c405, 0xce01c406, 0x95400003,
+       0x56240020, 0xce41c406, 0x97c0f24e, 0xc439c409, 0x97800001, 0x7c408001, 0x88000000, 0xc424000b,
+       0x32640002, 0x9a40f247, 0xd8800013, 0xce190000, 0x95400004, 0x05980001, 0x56200020, 0xce190000,
+       0x97c0f240, 0xd8400013, 0xc439c040, 0x97800001, 0x7c408001, 0x88000000, 0x31ac2580, 0x9ac00011,
+       0x31ac260c, 0x9ac0000f, 0x31ac0800, 0x9ac0000d, 0x31ac0828, 0x9ac0000b, 0x31ac2440, 0x9ac00009,
+       0x31ac2390, 0x9ac00007, 0x31ac0093, 0x9ac00005, 0x31ac31dc, 0x9ac00003, 0x31ac31e6, 0x96c00004,
+       0xc4340004, 0xd8400008, 0x80000ef2, 0x39ac7c06, 0x3db07c00, 0x9ac00003, 0x97000002, 0x80000f40,
+       0x39acc337, 0x3db0c330, 0x9ac00003, 0x97000002, 0x80000f40, 0x39acc335, 0x3db0c336, 0x9ac00003,
+       0x97000002, 0x80000f40, 0x39acec70, 0x3db0ec6f, 0x9ac00003, 0x97000002, 0x80000f40, 0x39ac9002,
+       0x3db09002, 0x9ac00003, 0x97000002, 0x80000f40, 0x39ac9012, 0x3db09012, 0x9ac00003, 0x97000002,
+       0x80000f40, 0x80000ef1, 0xc40c0006, 0x98c0ffff, 0x7c40c001, 0x7c410001, 0x7c414001, 0x7c418001,
+       0x7c41c001, 0x7c43c001, 0x95c00001, 0xc434000e, 0x2b740008, 0x2b780001, 0xcf400013, 0xd8c1325e,
+       0xcf80001a, 0xd8400013, 0x7c034001, 0x7c038001, 0x18e0007d, 0x32240003, 0x9a400006, 0x32240000,
+       0x9a400004, 0xcd01c080, 0xcd41c081, 0x80000f88, 0x51640020, 0x7e52401a, 0xd2400072, 0xc8280072,
+       0xce81c080, 0x56ac0020, 0x26f0ffff, 0xcf01c081, 0x1af000fc, 0x1334000a, 0x24e02000, 0x7f63400a,
+       0x18e00074, 0x32240003, 0x9a400006, 0x32240000, 0x9a400004, 0xcd81c082, 0xcdc1c083, 0x80000f9d,
+       0x51e40020, 0x7e5a401a, 0xd2400072, 0xc8280072, 0xce81c082, 0x56ac0020, 0x26f0ffff, 0xcf01c083,
+       0x1af000fc, 0x13380016, 0x18e00039, 0x12200019, 0x7fa3800a, 0x7fb7800a, 0x18e0007d, 0x1220001d,
+       0x7fa3800a, 0x18e00074, 0x12200014, 0x7fa3800a, 0xcf81c078, 0xcfc1c084, 0x80000c16, 0x7c40c001,
+       0x18dc003d, 0x95c00004, 0x041c0000, 0x042c01c8, 0x8c000d61, 0x18d001e8, 0x31140005, 0x99400003,
+       0x31140006, 0x95400002, 0x8c00104f, 0x05280fb7, 0x28140002, 0xcd400013, 0x86800000, 0x80000fbe,
+       0x80000fbe, 0x80000fc2, 0x80000fbe, 0x80000fd1, 0x80000ff2, 0x80000ff2, 0x24cc003f, 0xccc1a2a4,
+       0x7c408001, 0x88000000, 0x7c414001, 0x18e80039, 0x52a8003b, 0x50580020, 0x24cc003f, 0x7d59401a,
+       0xd1400072, 0xc8140072, 0x7d69401a, 0xc41c0017, 0x99c0ffff, 0xd140004b, 0xccc1a2a4, 0x7c408001,
+       0x88000000, 0xc414000d, 0x04180001, 0x24cc003f, 0x7d958004, 0xcd800035, 0xccc1a2a4, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0xc43d3249, 0x1bfc003e, 0x97c00002, 0xd8400074, 0xc4100019, 0x7d150005,
+       0x25100001, 0x9500000b, 0x97c0fffc, 0xc4180021, 0x159c0011, 0x259800ff, 0x31a00003, 0x31a40001,
+       0x7e25800a, 0x95c0fff5, 0x9580fff4, 0x80000fef, 0xc411326f, 0x1d100010, 0xcd01326f, 0x97c00002,
+       0xd8000074, 0x80001b70, 0x04380000, 0xc430000d, 0xc8140023, 0xc4180081, 0x13300005, 0xc011000f,
+       0xc4240004, 0x33b40003, 0x97400003, 0xc0340008, 0x80000ffe, 0xc4340035, 0x11a00002, 0x7c908009,
+       0x12640004, 0x7d614011, 0xc4100026, 0x05980008, 0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x282c2002,
+       0x208801a8, 0x3e280008, 0x7cb4800a, 0xcec00013, 0xc4300027, 0x042c0008, 0xd1400025, 0xcf000024,
+       0x20240030, 0x7ca48001, 0xcc800026, 0xccc00026, 0x9b800013, 0xcc400026, 0x7c414001, 0x28340000,
+       0xcf400013, 0x507c0020, 0x7d7d401a, 0xd1400072, 0xc8140072, 0x557c0020, 0x28342002, 0xcf400013,
+       0xcd400026, 0xcfc00026, 0xd4400026, 0x9a80000e, 0x32280000, 0x9a80000b, 0x8000102f, 0xcc000026,
+       0xcc000026, 0xcc000026, 0xcc000026, 0xcc000026, 0x9a800005, 0x32280000, 0x9a800002, 0x9a000000,
+       0x7c018001, 0xcc000026, 0xd8400027, 0x1cccfe08, 0xd8800013, 0xcec0003a, 0xccc1a2a4, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0xc43d3249, 0x1bfc003e, 0x9bc00007, 0xc428000e, 0x16a80008, 0xce800009,
+       0xc42c005e, 0x96c00b33, 0xd840003c, 0xc4200025, 0x7da2400f, 0x7da28002, 0x7e1ac002, 0x0aec0001,
+       0x96400002, 0x7d2ac002, 0x3ef40010, 0x9b40f11d, 0x04380030, 0xcf81325e, 0x80000c16, 0xde410000,
+       0xdcc10000, 0xdd010000, 0xdd410000, 0xdd810000, 0xddc10000, 0xde010000, 0xc40c000e, 0x7c024001,
+       0x28cc0008, 0xccc00013, 0xc8100086, 0x5510003f, 0xc40d3249, 0x18cc003e, 0x98c00003, 0x99000011,
+       0x80001075, 0x9900000c, 0xc40c0026, 0xc4100081, 0xc4140025, 0x7d15800f, 0x7d15c002, 0x7d520002,
+       0x0a200001, 0x95800002, 0x7cde0002, 0x3e20001a, 0x9a000009, 0x040c0030, 0xccc1325e, 0x80001071,
+       0xd9c00036, 0xd8400029, 0xc40c005e, 0x94c00b01, 0x04240001, 0xdc200000, 0xdc1c0000, 0xdc180000,
+       0xdc140000, 0xdc100000, 0xdc0c0000, 0x96400004, 0xdc240000, 0xdc0c0000, 0x80000c16, 0xdc240000,
+       0x90000000, 0xcc40003f, 0xd8c00010, 0xc4080029, 0xcc80003b, 0xc418000e, 0x18a800e5, 0x1d980008,
+       0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013, 0x18a400e5, 0x12500009, 0x248c0008, 0x94c00006,
+       0x200c006d, 0x7cd0c00a, 0xccc1326c, 0xc421326c, 0x96000001, 0xcd800013, 0x200c0228, 0x7cd0c00a,
+       0xccc1326c, 0xc421326c, 0x96000001, 0xc40c002a, 0xc410002b, 0x18881fe8, 0x18d4072c, 0x18cc00d1,
+       0x7cd4c00a, 0x3094000d, 0x38d80000, 0x311c0003, 0x99400006, 0x30940007, 0x1620001f, 0x9940001d,
+       0x9a000023, 0x800010c4, 0x9580001a, 0x99c00019, 0xccc00041, 0x25140001, 0xc418002c, 0x9940000d,
+       0x259c007f, 0x95c00013, 0x19a00030, 0xcdc0001b, 0xd8400021, 0xd8400022, 0xc430000f, 0x17300001,
+       0x9b00fffe, 0x9a000012, 0xd8400023, 0x800010cb, 0x199c0fe8, 0xcdc0001b, 0xd8400021, 0xd8400023,
+       0xc430000f, 0x17300001, 0x9b00fffe, 0x800010cb, 0xd8c00010, 0xd8000022, 0xd8000023, 0xc430005e,
+       0x97000aac, 0x7c408001, 0x88000000, 0xc43c000e, 0xc434002e, 0x2bfc0008, 0x2020002c, 0xcfc00013,
+       0xce01326c, 0x17780001, 0x27740001, 0x07a810d8, 0xcf400010, 0xc421326c, 0x96000001, 0x86800000,
+       0x80000168, 0x80000aa7, 0x80000bfc, 0x800012e9, 0x8000104c, 0xcc400040, 0xd8800010, 0xc4180032,
+       0x29980008, 0xcd800013, 0x200c007d, 0xccc1325b, 0xc411325b, 0x95000001, 0x7c408001, 0x88000000,
+       0x28240007, 0xde430000, 0xd4400078, 0x80001190, 0xcc80003b, 0x24b00008, 0xc418000e, 0x1330000a,
+       0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013, 0xc40d3249, 0x18cc003e,
+       0x98c00002, 0xd840003d, 0x2b304000, 0xcf01326c, 0xc431326c, 0x7c40c001, 0x7c410001, 0x7c414001,
+       0x192400fd, 0x50580020, 0x7d59401a, 0x7c41c001, 0x06681110, 0x7c420001, 0xcc400078, 0x18ac0024,
+       0x19180070, 0x19100078, 0xcec00008, 0x18f40058, 0x5978073a, 0x7f7b400a, 0x97000001, 0x86800000,
+       0x80001117, 0x80001118, 0x80001122, 0x8000112d, 0x80001130, 0x80001133, 0x8000016a, 0x8000117b,
+       0x24ec0f00, 0x32ec0600, 0x96c00003, 0xc4300006, 0x9b00ffff, 0xd1400025, 0xcf400024, 0xcdc00026,
+       0xd8400027, 0x8000117b, 0x24ec0f00, 0x32ec0600, 0x96c00003, 0xc4300006, 0x9b00ffff, 0xd1400025,
+       0xcf400024, 0xcdc00026, 0xce000026, 0xd8400027, 0x8000117b, 0xc81c001f, 0x55e00020, 0x80001122,
+       0xc81c0020, 0x55e00020, 0x80001122, 0x8c00116b, 0xd8400013, 0xc02a0200, 0x7e8e8009, 0x22a8003d,
+       0x22a80074, 0x2774001c, 0x13740014, 0x7eb6800a, 0x25ecffff, 0x55700020, 0x15f40010, 0x13740002,
+       0x275c001f, 0x95c00027, 0x7c018001, 0x7f41c001, 0x15dc0002, 0x39e00008, 0x25dc0007, 0x7dc1c01e,
+       0x05dc0001, 0x96000004, 0x05e40008, 0x8c00116e, 0x80001168, 0x7dc2001e, 0x06200001, 0x05e40008,
+       0x7e62000e, 0x9a000004, 0x7da58001, 0x8c00116e, 0x80001165, 0x7dc2001e, 0x06200001, 0x7e1a0001,
+       0x05cc0008, 0x7e0d000e, 0x95000007, 0x7e02401e, 0x06640001, 0x06640008, 0x05d80008, 0x8c00116e,
+       0x80001168, 0x7dc2401e, 0x06640001, 0x7da58001, 0x8c00116e, 0x05e00008, 0x7da2000c, 0x9600ffe6,
+       0x17640002, 0x8c00116e, 0x80001190, 0xc4200006, 0x9a00ffff, 0x90000000, 0x8c00116b, 0xc420000e,
+       0x2a200001, 0xce00001a, 0xce81c078, 0xcec1c080, 0xcc01c081, 0xcd41c082, 0xcf01c083, 0x12640002,
+       0x22640435, 0xce41c084, 0x90000000, 0x0528117e, 0x312c0003, 0x86800000, 0x80001190, 0x80001185,
+       0x80001182, 0x80001182, 0xc4300012, 0x9b00ffff, 0x9ac0000c, 0xc03a0400, 0xc4340004, 0xd8400013,
+       0xd8400008, 0xc418000e, 0x15980008, 0x1198001c, 0x7d81c00a, 0xcdc130b7, 0xcf8130b5, 0xcf400008,
+       0x04240008, 0xc418000e, 0xc41c0049, 0x19a000e8, 0x29a80008, 0x7de2c00c, 0xce800013, 0xc421325e,
+       0x26200010, 0xc415326d, 0x9a000006, 0xc420007d, 0x96000004, 0x96c00003, 0xce40003e, 0x800011a3,
+       0x7d654001, 0xcd41326d, 0x7c020001, 0x96000005, 0xc4100026, 0xc4240081, 0xc4140025, 0x800011b6,
+       0xc4253279, 0xc415326d, 0xc431326c, 0x2730003f, 0x3b380006, 0x97800004, 0x3f38000b, 0x9b800004,
+       0x800011b4, 0x04300006, 0x800011b4, 0x0430000b, 0x04380002, 0x7fb10004, 0x7e57000f, 0x7e578002,
+       0x7d67c002, 0x0be40001, 0x97000002, 0x7d3a4002, 0x202c002c, 0xc421325e, 0x04280020, 0xcec1326c,
+       0x26200010, 0x3e640010, 0x96000003, 0x96400002, 0xce81325e, 0xc4300028, 0xc434002e, 0x17780001,
+       0x27740001, 0x07a811cf, 0x9b00feb8, 0xcf400010, 0xc414005e, 0x954009a7, 0x86800000, 0x80000168,
+       0x80000aa7, 0x80000bfc, 0x800012e9, 0x80000168, 0x8c00120d, 0x7c40c001, 0xccc1c07c, 0xcc41c07d,
+       0xcc41c08c, 0x7c410001, 0xcc41c079, 0xcd01c07e, 0x7c414001, 0x18f0012f, 0x18f40612, 0x18cc00c1,
+       0x7f73400a, 0x7cf7400a, 0x39600004, 0x9a000002, 0xc0140004, 0x11600001, 0x18fc003e, 0x9740001c,
+       0xcf400041, 0xc425c07f, 0x97c00003, 0x166c001f, 0x800011ee, 0x1a6c003e, 0x96c00006, 0x04200002,
+       0x0a200001, 0x9a00ffff, 0xd8400013, 0x800011e8, 0xc428002c, 0x96800010, 0x26ac007f, 0xcec0001b,
+       0xd8400021, 0x1ab00030, 0x1aac0fe8, 0xc434000f, 0x9b40ffff, 0x97000008, 0xcec0001b, 0xd8400021,
+       0xc434000f, 0x9b40ffff, 0x80001205, 0x0a200001, 0x9a00ffff, 0xd8400013, 0xc425c07f, 0x166c001f,
+       0x11600001, 0x9ac0fffa, 0x8c001232, 0x7c408001, 0x88000000, 0xd8000033, 0xc438000b, 0xc43c0009,
+       0x27fc0001, 0x97c0fffe, 0xd8400013, 0xd841c07f, 0xc43dc07f, 0x1bfc0078, 0x7ffbc00c, 0x97c0fffd,
+       0x90000000, 0xc03a2800, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04380040,
+       0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380060, 0xcf80001b, 0xd8400021, 0xc438000f,
+       0x9b80ffff, 0x04380002, 0x0bb80001, 0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010,
+       0x9bc0fffa, 0x90000000, 0xd8400013, 0xd801c07f, 0xd8400013, 0xc43dc07f, 0xcfc00078, 0xd8000034,
+       0x90000000, 0xc03ae000, 0xcf81c200, 0xc03a0800, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079,
+       0xcc01c07e, 0x04380040, 0xcf80001b, 0xd8400021, 0xc438000f, 0x9b80ffff, 0x04380002, 0x0bb80001,
+       0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010, 0x9bc0fffa, 0x90000000, 0xc03ae000,
+       0xcf81c200, 0xc03a4000, 0xcf81c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04380002,
+       0x0bb80001, 0x9b80ffff, 0xd8400013, 0xc43dc07f, 0x17fc001f, 0x04380010, 0x9bc0fffa, 0x90000000,
+       0xc40c0007, 0x30d00002, 0x99000052, 0xd8400029, 0xc424005e, 0x9640090f, 0x7c410001, 0xc428000e,
+       0x1514001f, 0x19180038, 0x2aa80008, 0x99400030, 0x30dc0001, 0xce800013, 0x99c0000a, 0xc42d324e,
+       0xc431324d, 0x52ec0020, 0x7ef2c01a, 0xc435324f, 0xc4293256, 0x1ab0c006, 0x52ec0008, 0x8000127f,
+       0xc42d3258, 0xc4313257, 0x52ec0020, 0x7ef2c01a, 0xc4353259, 0xc429325a, 0x1ab0c012, 0x07740001,
+       0x04240002, 0x26a0003f, 0x7e624004, 0x7f67800f, 0x97800002, 0x04340000, 0x53740002, 0x7ef6c011,
+       0x1ab42010, 0x16a8000c, 0x26a80800, 0x2b740000, 0x7f73400a, 0x7f6b400a, 0xcf40001c, 0xd2c0001e,
+       0xd8400021, 0xc438000f, 0x9b80ffff, 0xc4100011, 0x1514001f, 0x99400006, 0x9980000a, 0x8c0012e1,
+       0xc40c0007, 0x04100000, 0x80001267, 0xd800002a, 0xc424005e, 0x964008d7, 0xd9800036, 0x80000c16,
+       0xc42c001d, 0x95c00005, 0xc431325a, 0x1b300677, 0x11dc000c, 0x800012aa, 0xc4313256, 0x1b34060b,
+       0x1b300077, 0x7f37000a, 0x13300017, 0x04340100, 0x26ec00ff, 0xc03a8002, 0x7ef6c00a, 0x7edec00a,
+       0x7f3b000a, 0x7ef2c00a, 0xcec1325b, 0x80000c16, 0xc4140032, 0xc410001d, 0x29540008, 0xcd400013,
+       0xc40d325b, 0x1858003f, 0x251000ff, 0x99800007, 0x7d0cc00a, 0xccc1325b, 0xc411325d, 0x251001ef,
+       0xcd01325d, 0x80000168, 0x18d0006c, 0x18d407f0, 0x9900000e, 0x04100002, 0xc4193256, 0xc41d324f,
+       0x2598003f, 0x7d190004, 0x7d5d4001, 0x7d52000f, 0x9a000003, 0xcd41324f, 0x800012d8, 0x7d514002,
+       0xcd41324f, 0x800012d8, 0xc4193259, 0xc41d325a, 0x7d958001, 0x7dd5c002, 0xcd813259, 0xcdc1325a,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x1ccc001e, 0xccc1325b, 0xc40d325b, 0x94c00001, 0x7c408001,
+       0x88000000, 0xc40c0021, 0xc4340028, 0x14f00010, 0xc4380030, 0xc43c0007, 0x9b000004, 0x9b40000c,
+       0x9b80000f, 0x90000000, 0x17300001, 0x9b000005, 0xccc00037, 0x8c000190, 0xd8000032, 0x90000000,
+       0xd8000028, 0xd800002b, 0x80000168, 0xd980003f, 0x97c00002, 0xd9c0003f, 0x80001082, 0xd9800040,
+       0x97c00002, 0xd9c00040, 0x800010de, 0xc43c0007, 0x33f80003, 0x97800051, 0xcc80003b, 0x24b00008,
+       0xc418000e, 0x1330000a, 0x18a800e5, 0x1d980008, 0x12a80008, 0x7da9800a, 0x29980008, 0xcd800013,
+       0xc4353249, 0x1b74003e, 0x9b400002, 0xd840003d, 0x2b304000, 0xcf01326c, 0xc431326c, 0x97000001,
+       0x7c434001, 0x1b4c00f8, 0x7c410001, 0x7c414001, 0x50700020, 0x04e81324, 0x18ac0024, 0x7c41c001,
+       0x50600020, 0xcc400078, 0x30e40004, 0x9a400007, 0x7d71401a, 0x596401fc, 0x12640009, 0x1b74008d,
+       0x7e76400a, 0x2a640000, 0xcec00008, 0x86800000, 0x8000016a, 0x8000016a, 0x8000016a, 0x8000016a,
+       0x8000132c, 0x8000133b, 0x80001344, 0x8000016a, 0xc4340004, 0xd8400013, 0xd8400008, 0xc42530b5,
+       0x1a68003a, 0x9a80fffe, 0x2024003a, 0xc418000e, 0x25980700, 0x11980014, 0x7d19000a, 0xcd0130b7,
+       0xce4130b5, 0xcf400008, 0x80001190, 0xce40001c, 0xd140001e, 0xd8400021, 0xc428000f, 0x9a80ffff,
+       0xc4240011, 0x7de6800f, 0x9a80ffea, 0x80001190, 0xce40001c, 0xd140001e, 0xd8400021, 0xc428000f,
+       0x9a80ffff, 0xc8240011, 0x7de1c01a, 0x7de6800f, 0x9a80ffe0, 0x80001190, 0x8c00104f, 0x28182002,
+       0xc430000d, 0xc4340035, 0xcd800013, 0xc8140023, 0xc4180081, 0x13300005, 0xc4240004, 0x11a00002,
+       0x12640004, 0x7d614011, 0xc4100026, 0x05980008, 0x7ca4800a, 0x7d1a0002, 0x7cb0800a, 0x3e280008,
+       0x7cb4800a, 0xc4300027, 0x042c0008, 0xd1400025, 0xcf000024, 0x20240030, 0x7ca48001, 0xcc800026,
+       0x7c434001, 0x1b4c00f8, 0xcf400026, 0xcc400026, 0x28340000, 0xcf400013, 0x7c414001, 0x507c0020,
+       0x30e40004, 0x9a400005, 0x7d7d401a, 0xd1400072, 0xc8140072, 0x557c0020, 0x28342002, 0xcf400013,
+       0xcd400026, 0xcfc00026, 0xd4400026, 0xcc000026, 0x9a800005, 0x32280000, 0x9a800002, 0x9a000000,
+       0x7c018001, 0xd8400027, 0xd8800013, 0x04380028, 0xcec0003a, 0xcf81a2a4, 0x80001037, 0xd8400029,
+       0xc40c005e, 0x94c007eb, 0x7c40c001, 0x50500020, 0x7d0d001a, 0xd1000072, 0xc8100072, 0x591c01fc,
+       0x11dc0009, 0x45140210, 0x595801fc, 0x11980009, 0x29dc0000, 0xcdc0001c, 0xd140001e, 0xd8400021,
+       0xc418000f, 0x9980ffff, 0xc4200011, 0x1624001f, 0x96400069, 0xc40c000e, 0x28cc0008, 0xccc00013,
+       0xce013249, 0x1a307fe8, 0xcf00000a, 0x23304076, 0xd1000001, 0xcf000001, 0xc41d3254, 0xc4253256,
+       0x18cc00e8, 0x10cc0015, 0x4514020c, 0xd140001e, 0xd8400021, 0xc418000f, 0x9980ffff, 0xc4200011,
+       0xce013248, 0x1a2001e8, 0x12200014, 0x2a204001, 0xce000013, 0x1a64003c, 0x1264001f, 0x11dc0009,
+       0x15dc000b, 0x7dcdc00a, 0x7e5dc00a, 0xcdc00100, 0xd8800013, 0xd8400010, 0xd800002a, 0xd8400008,
+       0xcf00000d, 0xcf00000a, 0x8c001427, 0x04340022, 0x07740001, 0x04300010, 0xdf430000, 0x7c434001,
+       0x7c408001, 0xd4412e01, 0x0434001e, 0xdf430000, 0xd4400078, 0xdf030000, 0xd4412e40, 0xd8400013,
+       0xcc41c030, 0xcc41c031, 0x248dfffe, 0xccc12e00, 0xd8800013, 0xcc812e00, 0x7c434001, 0x7c434001,
+       0x8c00142b, 0xd8000010, 0xc40c000e, 0x28cc0008, 0xccc00013, 0x45140248, 0xd140001e, 0xd8400021,
+       0xc418000f, 0x9980ffff, 0xc8200011, 0xce013257, 0x56200020, 0xce013258, 0x0434000c, 0xdb000024,
+       0xd1400025, 0xd8000026, 0xd8000026, 0xd8400027, 0x45540008, 0xd140001e, 0xd8400021, 0xc418000f,
+       0x9980ffff, 0xc8200011, 0xce013259, 0x56200020, 0xc0337fff, 0x7f220009, 0xce01325a, 0x55300020,
+       0x7d01c001, 0x042c01d0, 0x8c000d61, 0x06ec0004, 0x7f01c001, 0x8c000d61, 0x041c0002, 0x042c01c8,
+       0x8c000d61, 0xc4380012, 0x9b80ffff, 0xd800002a, 0x80000aa7, 0xd800002a, 0x7c408001, 0x88000000,
+       0xd8400029, 0x7c40c001, 0x50500020, 0x8c001427, 0x7cd0c01a, 0xc4200007, 0xd0c00072, 0xc8240072,
+       0xd240001e, 0x7c414001, 0x19682011, 0x5a6c01fc, 0x12ec0009, 0x7eeac00a, 0x2aec0000, 0xcec0001c,
+       0xd8400021, 0xc430000f, 0x9b00ffff, 0xc4180011, 0x7c438001, 0x99800007, 0xdf830000, 0xcfa0000c,
+       0x8c00142b, 0xd4400078, 0xd800002a, 0x80001b70, 0x8c00142b, 0xd800002a, 0x80001b70, 0xd8000012,
+       0xc43c0008, 0x9bc0ffff, 0x90000000, 0xd8400012, 0xc43c0008, 0x97c0ffff, 0x90000000, 0xc4380007,
+       0x7c40c001, 0x17b80001, 0x18d40038, 0x7c410001, 0x9b800004, 0xd8400029, 0xc414005e, 0x9540073d,
+       0x18c80066, 0x7c414001, 0x30880001, 0x7c418001, 0x94800008, 0x8c00187c, 0xcf400013, 0xc42c0004,
+       0xd8400008, 0xcd910000, 0xcec00008, 0x7d410001, 0x043c0000, 0x7c41c001, 0x7c420001, 0x04240001,
+       0x06200001, 0x4220000c, 0x0a640001, 0xcc000078, 0x9a40fffe, 0x24e80007, 0x24ec0010, 0xd8400013,
+       0x9ac00006, 0xc42c0004, 0xd8400008, 0xc5310000, 0xcec00008, 0x80001465, 0x51540020, 0x7d15001a,
+       0xd1000072, 0xc82c0072, 0xd2c0001e, 0x18f02011, 0x5aec01fc, 0x12ec0009, 0x7ef2c00a, 0x2aec0000,
+       0xcec0001c, 0xd8400021, 0xc42c000f, 0x9ac0ffff, 0xc4300011, 0x96800012, 0x12a80001, 0x0aa80001,
+       0x06a8146a, 0x7f1f0009, 0x86800000, 0x7f1b400f, 0x80001478, 0x7f1b400e, 0x80001478, 0x7f1b400c,
+       0x8000147a, 0x7f1b400d, 0x8000147a, 0x7f1b400f, 0x8000147a, 0x7f1b400e, 0x8000147a, 0x7f334002,
+       0x97400014, 0x8000147b, 0x9b400012, 0x9b800005, 0x9bc0001f, 0x7e024001, 0x043c0001, 0x8000144a,
+       0xc40c0032, 0xc438001d, 0x28cc0008, 0xccc00013, 0xc43d325b, 0x1bb81ff0, 0x7fbfc00a, 0xcfc1325b,
+       0xc411325d, 0x251001ef, 0xcd01325d, 0x80001b70, 0x94800007, 0x8c00187c, 0xcf400013, 0xc42c0004,
+       0xd8400008, 0xcd910000, 0xcec00008, 0x9b800003, 0xd800002a, 0x80001b70, 0xc40c0032, 0x28cc0008,
+       0xccc00013, 0xc40d325b, 0x800012c2, 0xc40c000e, 0xc43c0007, 0xc438001d, 0x28cc0008, 0xccc00013,
+       0x13f4000c, 0x9bc00006, 0xc43d3256, 0x1bf0060b, 0x1bfc0077, 0x7ff3c00a, 0x800014a9, 0xc43d325a,
+       0x1bfc0677, 0x04300100, 0x1bb81ff0, 0x7f73400a, 0xc0328007, 0x7fb7800a, 0x13fc0017, 0x7ff3c00a,
+       0x7ffbc00a, 0xcfc1325b, 0xc03a0002, 0xc4340004, 0xd8400013, 0xd8400008, 0xcf8130b5, 0xcf400008,
+       0x80000c16, 0x043c0000, 0xc414000e, 0x29540008, 0xcd400013, 0xc4193246, 0xc41d3245, 0x51980020,
+       0x7dd9c01a, 0x45dc0390, 0xc4313267, 0x04183000, 0xcd813267, 0x1b380057, 0x1b340213, 0x1b300199,
+       0x7f7b400a, 0x7f73400a, 0xcf400024, 0xd1c00025, 0xcc800026, 0x7c420001, 0xce000026, 0x7c424001,
+       0xce400026, 0x7c428001, 0xce800026, 0x7c42c001, 0xcec00026, 0x7c430001, 0xcf000026, 0x7c434001,
+       0xcf400026, 0x7c438001, 0xcf800026, 0xd8400027, 0xcd400013, 0x04182000, 0xcd813267, 0xd840004f,
+       0x1a0800fd, 0x109c000a, 0xc4193265, 0x7dd9c00a, 0xcdc13265, 0x2620ffff, 0xce080228, 0x9880000e,
+       0xce480250, 0xce880258, 0xd8080230, 0xd8080238, 0xd8080240, 0xd8080248, 0xd8080268, 0xd8080270,
+       0xd8080278, 0xd8080280, 0xd800004f, 0x97c0ec75, 0x90000000, 0x040c0000, 0x041c0010, 0x26180001,
+       0x09dc0001, 0x16200001, 0x95800002, 0x04cc0001, 0x99c0fffb, 0xccc80230, 0xd8080238, 0xd8080240,
+       0xd8080248, 0x040c0000, 0xce480250, 0xce880258, 0x52a80020, 0x7e6a401a, 0x041c0020, 0x66580001,
+       0x09dc0001, 0x56640001, 0x95800002, 0x04cc0001, 0x99c0fffb, 0xccc80260, 0xd8080268, 0xd8080270,
+       0xd8080278, 0xd8080280, 0x040c0000, 0xcec80288, 0xcf080290, 0xcec80298, 0xcf0802a0, 0x040c0000,
+       0x041c0010, 0xcf4802a8, 0x27580001, 0x09dc0001, 0x17740001, 0x95800002, 0x04cc0001, 0x99c0fffb,
+       0xccc802b0, 0xd80802b8, 0x178c000b, 0x27b8003f, 0x7cf8c001, 0xcf8802c0, 0xccc802c8, 0xcf8802d0,
+       0xcf8802d8, 0xd800004f, 0x97c00002, 0x90000000, 0x7c408001, 0x88000000, 0xc40c000e, 0x28cc0008,
+       0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c418001, 0x25b8ffff, 0xc4930240, 0xc48f0238, 0x04cc0001,
+       0x24cc000f, 0x7cd2800c, 0x9a80000b, 0xc5230309, 0x2620ffff, 0x7e3a400c, 0x9a400004, 0x05100001,
+       0x2510000f, 0x80001539, 0xcd08034b, 0xd4400078, 0x80000168, 0xc48f0230, 0xc4930240, 0x98c00004,
+       0xcd880353, 0x8c00163f, 0xc49b0353, 0xc4930238, 0xc48f0228, 0x05100001, 0x2510000f, 0x7cd14005,
+       0x25540001, 0x99400004, 0x05100001, 0x2510000f, 0x8000154f, 0xc48f0230, 0x7c41c001, 0xcd080238,
+       0xcd08034b, 0x08cc0001, 0x2598ffff, 0x3d200008, 0xccc80230, 0xcd900309, 0xd8100319, 0x04340801,
+       0x2198003f, 0xcf400013, 0xcd910ce7, 0xc4190ce6, 0x7d918005, 0x25980001, 0x9580fffd, 0x7d918004,
+       0xcd810ce6, 0x9a000003, 0xcdd1054f, 0x8000156e, 0x090c0008, 0xcdcd050e, 0x040c0000, 0x110c0014,
+       0x28cc4001, 0xccc00013, 0xcc41230a, 0xcc41230b, 0xcc41230c, 0xcc41230d, 0xcc480329, 0xcc48032a,
+       0xcc4802e0, 0xd8000055, 0xc48f02e0, 0x24d8003f, 0x09940001, 0x44100001, 0x9580002c, 0x95400005,
+       0x09540001, 0x51100001, 0x69100001, 0x8000157f, 0x24cc003f, 0xc4970290, 0xc49b0288, 0x51540020,
+       0x7d59401a, 0xc49b02a0, 0xc49f0298, 0x51980020, 0x7d9d801a, 0x041c0040, 0x04200000, 0x7dcdc002,
+       0x7d924019, 0x7d26400c, 0x09dc0001, 0x9a400008, 0x51100001, 0x06200001, 0x99c0fffa, 0xc48f0230,
+       0xc4930240, 0x8c00163f, 0x80001579, 0x7d010021, 0x7d914019, 0xc4930238, 0x55580020, 0xcd480298,
+       0xcd8802a0, 0x10d40010, 0x12180016, 0xc51f0309, 0x7d95800a, 0x7d62000a, 0x7dd9c00a, 0xd8400013,
+       0xcdd00309, 0xce113320, 0xc48f02e0, 0xc49b02b0, 0x18dc01e8, 0x7dd9400e, 0xc48f0230, 0xc4930240,
+       0x95c0001d, 0x95400003, 0x8c00163f, 0x800015aa, 0xc48f0238, 0xc4a302b8, 0x12240004, 0x7e5e400a,
+       0xc4ab02a8, 0x04100000, 0xce4c0319, 0x7d9d8002, 0x7ea14005, 0x25540001, 0x99400004, 0x06200001,
+       0x2620000f, 0x800015bc, 0x09dc0001, 0x04240001, 0x7e624004, 0x06200001, 0x7d25000a, 0x2620000f,
+       0x99c0fff4, 0xd8400013, 0xcd0d3330, 0xce0802b8, 0xcd8802b0, 0xc4ab02e0, 0x1aa807f0, 0xc48f02d0,
+       0xc49702d8, 0xc49b02c8, 0xc49f02c0, 0x96800028, 0x7d4e000f, 0x9600000b, 0x7d964002, 0x7e6a000f,
+       0x96000003, 0x7d694001, 0x800015e9, 0x7cde4002, 0x7e6a000f, 0x96000008, 0x7de94001, 0x800015e9,
+       0x7cd64002, 0x7e6a000e, 0x96000003, 0x7d694001, 0x800015e9, 0xc48f0230, 0xc4930240, 0x8c00163f,
+       0x800015cd, 0xc4930238, 0x7d698002, 0xcd4802d8, 0x129c0008, 0xc50f0319, 0x11a0000e, 0x11140001,
+       0xc4340004, 0xd8400008, 0xd8400013, 0x7e1e000a, 0x1198000a, 0xcd953300, 0x7e0e000a, 0x12a8000a,
+       0xce953301, 0xce100319, 0xcf400008, 0xc4b70280, 0xc4b30278, 0x7f73800a, 0x536c0020, 0x7ef2c01a,
+       0x9780eb68, 0x8c001608, 0xd8080278, 0xd8080280, 0x7c408001, 0x88000000, 0x043c0003, 0x80001609,
+       0x043c0001, 0x30b40000, 0x9b400011, 0xc4b70258, 0xc4b30250, 0x53780020, 0x7fb3801a, 0x7faf8019,
+       0x04300020, 0x04280000, 0x67b40001, 0x0b300001, 0x57b80001, 0x97400002, 0x06a80001, 0x9b00fffb,
+       0xc4bb0260, 0x7fab8001, 0xcf880260, 0x04300020, 0x04280000, 0x66f40001, 0x0b300001, 0x56ec0001,
+       0x97400005, 0x8c001628, 0xc4353247, 0x7f7f4009, 0x9b40fffe, 0x06a80001, 0x9b00fff7, 0x90000000,
+       0x269c0007, 0x11dc0008, 0x29dc0008, 0x26a00018, 0x12200003, 0x7de1c00a, 0x26a00060, 0x06200020,
+       0x16200001, 0x7de1c00a, 0xcdc00013, 0x90000000, 0x269c0018, 0x26a00007, 0x26a40060, 0x11dc0006,
+       0x12200006, 0x16640001, 0x29dc0008, 0x7de1c00a, 0x7de5c00a, 0xcdc00013, 0x90000000, 0xc4b70228,
+       0x05100001, 0x04cc0001, 0x2510000f, 0xccc80230, 0x7f514005, 0x25540001, 0x99400004, 0x05100001,
+       0x2510000f, 0x80001644, 0xc4b30248, 0xcd080240, 0x7f130005, 0x27300001, 0x9b000002, 0x8c001688,
+       0x8c00120d, 0x8c001219, 0x8c001232, 0x04300001, 0x04340801, 0x7f130004, 0xcf400013, 0xcf01051e,
+       0xc42d051f, 0x7ed2c005, 0x26ec0001, 0x96c0fffd, 0xcf01051f, 0xd8000055, 0xc5170309, 0x195c07f0,
+       0x196007f6, 0x04340000, 0x95c00008, 0x09dc0001, 0x04340001, 0x95c00005, 0x09dc0001, 0x53740001,
+       0x6b740001, 0x80001665, 0xc4a702a0, 0xc4ab0298, 0x52640020, 0x7e6a401a, 0x7f634014, 0x7e76401a,
+       0xc4300004, 0xd8400008, 0xd8400013, 0x56680020, 0xd8113320, 0xce480298, 0xce8802a0, 0xc5170319,
+       0xc4b702b0, 0x255c000f, 0x7f5f4001, 0xd8113330, 0xcf4802b0, 0x11340001, 0x195c07e8, 0x196007ee,
+       0xd8353300, 0x7e1e4001, 0xd8353301, 0xce4802d0, 0xd8100309, 0xd8100319, 0xcf000008, 0x90000000,
+       0xc4970258, 0xc48f0250, 0x51540020, 0x7cd4c01a, 0xc4af0280, 0xc4b30278, 0x52ec0020, 0x7ef2c01a,
+       0x04140020, 0x04280000, 0x64d80001, 0x09540001, 0x54cc0001, 0x95800060, 0x8c001628, 0xc4193247,
+       0x25980001, 0x9580005c, 0x7dc24001, 0xc41d3248, 0x25dc000f, 0x7dd2000c, 0x96000057, 0xc41d3255,
+       0xc435324f, 0x7df5c00c, 0x99c00004, 0xc4193265, 0x25980040, 0x9580fffe, 0xc439325b, 0x1bb0003f,
+       0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002, 0x9700000a, 0xc4393260, 0x1bb000e4,
+       0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x800016f1, 0xce400013, 0xc033ffff,
+       0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b, 0x27b800ff, 0x9b80fffe, 0xd8c00033,
+       0xc4300009, 0x27300008, 0x9700fffe, 0x1a7003e6, 0x27380003, 0x13b80004, 0x27300003, 0x13300003,
+       0x7fb38001, 0x1a7000e8, 0x7fb38001, 0x13300001, 0x7fb38001, 0x07b80002, 0xd8400013, 0x1a700064,
+       0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x0b300003, 0x800016df, 0x17b00005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f, 0x13300005,
+       0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf, 0xd8c00034, 0xce400013, 0xc431325d,
+       0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffca, 0xd841325d, 0x2030007b, 0xcf01325b,
+       0x800016f2, 0xd841325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0x06a80001, 0x9940ff9c, 0x8c001608,
+       0xd8080278, 0xd8080280, 0x90000000, 0xd840004f, 0xc414000e, 0x29540008, 0xcd400013, 0xc43d3265,
+       0x1bc800ea, 0xd80802e9, 0x7c40c001, 0x18fc0064, 0x9bc00042, 0xc4193246, 0xc41d3245, 0x51980020,
+       0x7dd9801a, 0x45980400, 0xc4313267, 0x043c3000, 0xcfc13267, 0xc43d3267, 0x9bc00001, 0x1b380057,
+       0x1b340213, 0x1b300199, 0x7f7b400a, 0x7f73400a, 0xcf400024, 0x14f4001d, 0xc4bf02e9, 0x9bc0001c,
+       0x7c410001, 0x192807fa, 0xc4bf0258, 0xc4a70250, 0x53fc0020, 0x7e7e401a, 0x042c0000, 0x04300000,
+       0x667c0001, 0x56640001, 0x06ec0001, 0x97c0fffd, 0x07300001, 0x0aec0001, 0x7eebc00c, 0x06ec0001,
+       0x97c0fff8, 0x0b300001, 0x43300007, 0x53300002, 0x7db30011, 0xd3000025, 0xc03ec005, 0x2bfca200,
+       0xcfc00026, 0xccc00026, 0xcd000026, 0x192807fa, 0xc01f007f, 0x7d1d0009, 0x2110007d, 0x8c001628,
+       0x203c003f, 0xcfc13256, 0x8c0017f5, 0xcd013254, 0x18fc01e8, 0xcfc13248, 0x8c00185b, 0xd8413247,
+       0x0b740001, 0x9b40ffd5, 0xd800004f, 0xc4bf02e9, 0x97c0ea24, 0x90000000, 0x14d4001d, 0xc4930260,
+       0x7d52400e, 0xc49f0258, 0xc4a30250, 0x51dc0020, 0x7de1801a, 0x96400017, 0x7d534002, 0xc4af0270,
+       0x7dae4005, 0x26640001, 0x32e0001f, 0x9a400006, 0x06ec0001, 0x96000002, 0x042c0000, 0xcec80270,
+       0x8000174f, 0x0b740001, 0x8c00178a, 0x05100001, 0x9b40fff3, 0xc4af0280, 0xc4b30278, 0x52ec0020,
+       0x7ef2c01a, 0x8c001608, 0xd8080278, 0xd8080280, 0xc4ab0268, 0x7daa4005, 0x26640001, 0x32a0001f,
+       0x9a400005, 0x06a80001, 0x96000002, 0x24280000, 0x80001765, 0x7c410001, 0xc01f007f, 0x09540001,
+       0x7d1d0009, 0x2110007d, 0x8c001628, 0xd8013256, 0x8c0017f2, 0xcd013254, 0xc4113248, 0x15100004,
+       0x11100004, 0xc4b3034b, 0x7f13000a, 0xcf013248, 0xc4930260, 0x8c001855, 0x32a4001f, 0xd8413247,
+       0xd800004f, 0x09100001, 0x06a80001, 0x96400002, 0x24280000, 0xcd080260, 0xce880268, 0x9940ffc0,
+       0x7c408001, 0x88000000, 0x7ec28001, 0x8c001628, 0x32e0001f, 0xc4253247, 0x26640001, 0x9640005e,
+       0xc4293265, 0xc4253255, 0xc431324f, 0x7e72400c, 0x26a80040, 0x9a400002, 0x9680fff7, 0xc429325b,
+       0x1aa4003f, 0x96400049, 0x1aa400e8, 0x32680003, 0x9a800046, 0x32640002, 0x9640000a, 0xc4293260,
+       0x1aa400e4, 0x32640004, 0x96400040, 0xc425325d, 0x26640010, 0x9a40fffe, 0x800017e2, 0xcdc00013,
+       0xc027ffff, 0x2e6400ff, 0xc429325b, 0x7e6a4009, 0xce41325b, 0xc429325b, 0x26a800ff, 0x9a80fffe,
+       0xd8c00033, 0xc4240009, 0x26640008, 0x9640fffe, 0x19e403e6, 0x26680003, 0x12a80004, 0x26640003,
+       0x12640003, 0x7ea68001, 0x19e400e8, 0x7ea68001, 0x12640001, 0x7ea68001, 0x06a80002, 0xd8400013,
+       0x19e40064, 0x32640002, 0x96400009, 0x16a40005, 0x06640003, 0xce412082, 0xcc01203f, 0xd8400013,
+       0xcc01203f, 0x0a640003, 0x800017d0, 0x16a40005, 0xce412082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x12640005, 0x7ea64002, 0xc4292083, 0x7ea68005, 0x26a80001, 0x9a80ffdf, 0xd8c00034, 0xcdc00013,
+       0xc425325d, 0x26640010, 0x9a40fffe, 0xc429325b, 0x26a400ff, 0x9a40ffca, 0xd841325d, 0x2024007b,
+       0xce41325b, 0x800017e3, 0xd841325d, 0xc4a70280, 0xc4ab0278, 0x52640020, 0x7e6a401a, 0x04280001,
+       0x7eae8014, 0x7e6a401a, 0x56680020, 0xce480278, 0xce880280, 0x06ec0001, 0x96000002, 0x042c0000,
+       0xcec80270, 0x90000000, 0x7c438001, 0x7c420001, 0x800017fe, 0xc4bf02e9, 0x9bc00006, 0x7c438001,
+       0x7c420001, 0xcf800026, 0xce000026, 0x800017fe, 0xc43b02eb, 0xc42302ec, 0xcf813245, 0xce013246,
+       0x52200020, 0x7fa3801a, 0x47b8020c, 0x15e00008, 0x1220000a, 0x2a206032, 0x513c001e, 0x7e3e001a,
+       0xc4bf02e9, 0x9bc00005, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0x8000180f, 0xcd400013, 0xc4313267,
+       0x1b3c0077, 0x1b300199, 0x7ff3000a, 0x1330000a, 0x2b300032, 0x043c3000, 0xcfc13267, 0xc43d3267,
+       0xd200000b, 0xc4200007, 0xd3800002, 0xcf000002, 0xd8000040, 0x96000002, 0xd8400040, 0xd8400018,
+       0x043c2000, 0xcfc13267, 0xd8000018, 0xd8800010, 0xcdc00013, 0x7dc30001, 0xdc1e0000, 0x04380032,
+       0xcf80000e, 0x8c001427, 0xcc413248, 0xc43d3269, 0x27fc000f, 0x33fc0003, 0x97c00011, 0x043c001f,
+       0xdfc30000, 0xd4413249, 0x7c43c001, 0x7c43c001, 0x043c0024, 0x0bfc0021, 0xdfc30000, 0xd441326a,
+       0x173c0008, 0x1b300303, 0x7f3f0001, 0x043c0001, 0x7ff3c004, 0xcfc13084, 0x80001842, 0x043c0024,
+       0xdfc30000, 0xd4413249, 0x7c43c001, 0x23fc003f, 0xcfc1326d, 0x0bb80026, 0xdf830000, 0xd441326e,
+       0x7c438001, 0x7c438001, 0xc4393265, 0x1fb8ffc6, 0xddc30000, 0xcf813265, 0x9a000003, 0xcdc0000c,
+       0x80001852, 0xcdc0000d, 0xce000010, 0x8c00142b, 0x90000000, 0x7c41c001, 0x7c420001, 0xcdc13252,
+       0xce013253, 0x8c001628, 0x80001878, 0xc49f02e9, 0x99c00018, 0x7c41c001, 0x7c420001, 0xcdc13252,
+       0xce013253, 0xc43c000e, 0x2bfc0008, 0xcfc00013, 0x043c3000, 0xcfc13267, 0xc43d3267, 0x97c0ffff,
+       0xcdc00026, 0xce000026, 0xd8400027, 0xc41c0012, 0x99c0ffff, 0xc43c000e, 0x2bfc0008, 0xcfc00013,
+       0x043c2000, 0xcfc13267, 0x8c001628, 0x80001878, 0xc41f02ed, 0xc42302ee, 0xcdc13252, 0xce013253,
+       0x04200001, 0x7e2a0004, 0xce013084, 0x90000000, 0x28340001, 0x313c0bcc, 0x9bc00010, 0x393c051f,
+       0x9bc00004, 0x3d3c050e, 0x9bc0000c, 0x97c0000c, 0x393c0560, 0x9bc00004, 0x3d3c054f, 0x9bc00007,
+       0x97c00007, 0x393c1538, 0x9bc00005, 0x3d3c1537, 0x9bc00002, 0x97c00002, 0x2b740800, 0x90000000,
+       0xc40c000e, 0x28cc0008, 0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c40c001, 0x18e8007c, 0x7c42c001,
+       0x06a8189a, 0x86800000, 0x8000189e, 0x800018c5, 0x800018f2, 0x8000016a, 0x7c414001, 0x18d0007e,
+       0x50580020, 0x09200001, 0x7d59401a, 0xd1400072, 0xc8140072, 0x09240002, 0x7c418001, 0x7c41c001,
+       0x99000011, 0xc4340004, 0xd8400013, 0xd8400008, 0xc42130b5, 0x1a24002c, 0x9a40fffe, 0x2020002c,
+       0xc418000d, 0x1198001c, 0x10cc0004, 0x14cc0004, 0x7cd8c00a, 0xccc130b7, 0xce0130b5, 0xcf400008,
+       0x80000168, 0xd1400025, 0x5978073a, 0x2bb80002, 0xcf800024, 0xcd800026, 0xcdc00026, 0xd8400027,
+       0x9600e8a8, 0xc4300012, 0x9b00ffff, 0x9640e8a5, 0x800018a9, 0x04140000, 0xc55b0309, 0x3d5c0010,
+       0x05540001, 0x2598ffff, 0x09780001, 0x7dad800c, 0x99c0ffd2, 0x9580fff9, 0xc4970258, 0xc4930250,
+       0x51540020, 0x7d15001a, 0x04140020, 0x04280000, 0x442c0000, 0x65180001, 0x09540001, 0x55100001,
+       0x9580000b, 0x8c001628, 0xc41d3248, 0x04300001, 0x7f2b0014, 0x25dc000f, 0x7df9c00c, 0x95c00004,
+       0x7ef2c01a, 0xd8c13260, 0xd901325d, 0x06a80001, 0x9940fff1, 0x04140020, 0x04280000, 0x66d80001,
+       0x09540001, 0x56ec0001, 0x95800005, 0x8c001628, 0xc421325d, 0x26240007, 0x9a40fffe, 0x06a80001,
+       0x9940fff7, 0x8000189e, 0x04140020, 0x04280000, 0x09540001, 0x8c001628, 0xc41d3254, 0xc023007f,
+       0x19e4003e, 0x7de1c009, 0x7dee000c, 0x96400008, 0x96000007, 0xd8c13260, 0xd901325d, 0xc421325d,
+       0x261c0007, 0x99c0fffe, 0x8000189e, 0x06a80001, 0x9940fff0, 0x8000189e, 0xc40c000e, 0x28cc0008,
+       0xccc00013, 0xc43d3265, 0x1bc800ea, 0x7c40c001, 0x18e00064, 0x06281911, 0x14f4001d, 0x24cc0003,
+       0x86800000, 0x80001915, 0x800019af, 0x80001a2b, 0x8000016a, 0xcc48032b, 0xcc480333, 0xcc48033b,
+       0xcc480343, 0x98800011, 0xc4213246, 0xc4253245, 0x52200020, 0x7e26401a, 0x46640400, 0xc4313267,
+       0x04203000, 0xce013267, 0xc4213267, 0x9a000001, 0x1b3c0057, 0x1b200213, 0x1b300199, 0x7e3e000a,
+       0x7e32000a, 0xce000024, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280, 0xc4b30278,
+       0x52ec0020, 0x7ef2c01a, 0x04180000, 0x04140020, 0x04280000, 0x7f438001, 0x8c001628, 0xc41d3247,
+       0x25dc0001, 0x95c00068, 0xc4213254, 0x1a1c003e, 0x95c00065, 0xc01f007f, 0x7e1e0009, 0x97800062,
+       0x0bb80001, 0x43bc0008, 0x7fcbc001, 0xc7df032b, 0x7e1fc00c, 0x97c0fffa, 0x043c0101, 0x94c00002,
+       0x043c0102, 0xc439325b, 0x1bb0003f, 0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002,
+       0x97000009, 0xc4393260, 0x1bb000e4, 0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe,
+       0x80001994, 0x8c001628, 0xc033ffff, 0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b,
+       0x27b800ff, 0x9b80fffe, 0xd8c00033, 0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27380003,
+       0x13b80004, 0x27300003, 0x13300003, 0x7fb38001, 0x19f000e8, 0x7fb38001, 0x13300001, 0x7fb38001,
+       0x07b80002, 0xd8400013, 0x19f00064, 0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082,
+       0xcc01203f, 0xd8400013, 0xcc01203f, 0x0b300003, 0x80001982, 0x17b00005, 0xcf012082, 0xcc01203f,
+       0xd8400013, 0xcc01203f, 0x13300005, 0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf,
+       0xd8c00034, 0xcdc00013, 0xc431325d, 0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffcb,
+       0xcfc1325d, 0x2030007b, 0xcf01325b, 0x80001995, 0xcfc1325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a,
+       0x98800009, 0x41bc0007, 0x53fc0002, 0x7e7fc011, 0xd3c00025, 0xd8000026, 0xd8400027, 0xc43c0012,
+       0x9bc0ffff, 0x653c0001, 0x7dbd8001, 0x06a80001, 0x09540001, 0x55100001, 0x9940ff8f, 0xc43c000e,
+       0x2bfc0008, 0xcfc00013, 0x043c2000, 0xcfc13267, 0xd8080278, 0xd8080280, 0x80000168, 0x7c410001,
+       0x04140000, 0xc55b0309, 0x3d5c0010, 0x2598ffff, 0x05540001, 0x7d91800c, 0x95c00003, 0xd4400078,
+       0x80000168, 0x9580fff8, 0x09780001, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280,
+       0xc4b30278, 0x52ec0020, 0x7ef2c01a, 0x04140020, 0x04280000, 0x65180001, 0x09540001, 0x55100001,
+       0x9580005d, 0x8c001628, 0xc4253247, 0x26640001, 0x04200101, 0x96400058, 0x7dc24001, 0xc41d3248,
+       0x25dc000f, 0x7df9c00c, 0x95c00053, 0x94c00002, 0x04200102, 0x7e41c001, 0xc425325b, 0x1a70003f,
+       0x97000049, 0x1a7000e8, 0x33240003, 0x9a400046, 0x33300002, 0x9700000a, 0xc4253260, 0x1a7000e4,
+       0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x80001a21, 0xcdc00013, 0xc033ffff,
+       0x2f3000ff, 0xc425325b, 0x7f270009, 0xcf01325b, 0xc425325b, 0x266400ff, 0x9a40fffe, 0xd8c00033,
+       0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27240003, 0x12640004, 0x27300003, 0x13300003,
+       0x7e724001, 0x19f000e8, 0x7e724001, 0x13300001, 0x7e724001, 0x06640002, 0xd8400013, 0x19f00064,
+       0x33300002, 0x97000009, 0x16700005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x0b300003, 0x80001a0f, 0x16700005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f, 0x13300005,
+       0x7e730002, 0xc4252083, 0x7e724005, 0x26640001, 0x9a40ffdf, 0xd8c00034, 0xcdc00013, 0xc431325d,
+       0x27300010, 0x9b00fffe, 0xc425325b, 0x267000ff, 0x9b00ffca, 0xce01325d, 0x2030007b, 0xcf01325b,
+       0x80001a22, 0xce01325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0x06a80001, 0x9940ff9f, 0xd4400078,
+       0xd8080278, 0xd8080280, 0x80000168, 0x8c001a31, 0xd4400078, 0xd8080278, 0xd8080280, 0x7c408001,
+       0x88000000, 0xc4213246, 0xc4253245, 0x52200020, 0x7e26401a, 0x46640400, 0xc4313267, 0x04203000,
+       0xce013267, 0xc4213267, 0x9a000001, 0x1b180057, 0x1b200213, 0x1b300199, 0x7e1a000a, 0x7e32000a,
+       0xce000024, 0xc4970258, 0xc4930250, 0x51540020, 0x7d15001a, 0xc4af0280, 0xc4b30278, 0x52ec0020,
+       0x7ef2c01a, 0x04140020, 0x04280000, 0x65180001, 0x95800060, 0x8c001628, 0xc4193247, 0x25980001,
+       0x04200101, 0x94c00005, 0x30f00005, 0x04200005, 0x9b000002, 0x04200102, 0x95800056, 0xc439325b,
+       0x1bb0003f, 0x97000049, 0x1bb000e8, 0x33380003, 0x9b800046, 0x33300002, 0x9700000a, 0xc4393260,
+       0x1bb000e4, 0x33300004, 0x97000040, 0xc431325d, 0x27300010, 0x9b00fffe, 0x80001aa2, 0xcdc00013,
+       0xc033ffff, 0x2f3000ff, 0xc439325b, 0x7f3b0009, 0xcf01325b, 0xc439325b, 0x27b800ff, 0x9b80fffe,
+       0xd8c00033, 0xc4300009, 0x27300008, 0x9700fffe, 0x19f003e6, 0x27380003, 0x13b80004, 0x27300003,
+       0x13300003, 0x7fb38001, 0x19f000e8, 0x7fb38001, 0x13300001, 0x7fb38001, 0x07b80002, 0xd8400013,
+       0x19f00064, 0x33300002, 0x97000009, 0x17b00005, 0x07300003, 0xcf012082, 0xcc01203f, 0xd8400013,
+       0xcc01203f, 0x0b300003, 0x80001a90, 0x17b00005, 0xcf012082, 0xcc01203f, 0xd8400013, 0xcc01203f,
+       0x13300005, 0x7fb30002, 0xc4392083, 0x7fb38005, 0x27b80001, 0x9b80ffdf, 0xd8c00034, 0xcdc00013,
+       0xc431325d, 0x27300010, 0x9b00fffe, 0xc439325b, 0x27b000ff, 0x9b00ffca, 0xce01325d, 0x2030007b,
+       0xcf00325b, 0x80001aa3, 0xce01325d, 0x04300001, 0x7f2b0014, 0x7ef2c01a, 0xc49b02e9, 0x99800005,
+       0xd2400025, 0x4664001c, 0xd8000026, 0xd8400027, 0x06a80001, 0x09540001, 0x55100001, 0x9940ff9c,
+       0xc49b02e9, 0x99800008, 0xc430000e, 0x2b300008, 0xcf000013, 0x04302000, 0xcf013267, 0xc4313267,
+       0x97000001, 0x90000000, 0x244c00ff, 0xcc4c0200, 0x7c408001, 0x88000000, 0xc44f0200, 0xc410000b,
+       0xc414000c, 0x7d158010, 0x059cc000, 0xd8400013, 0xccdd0000, 0x7c408001, 0x88000000, 0xc40c0037,
+       0x94c0ffff, 0xcc000049, 0xc40c003a, 0x94c0ffff, 0x7c40c001, 0x24d00001, 0x9500e69a, 0x18d0003b,
+       0x18d40021, 0x99400006, 0xd840004a, 0xc40c003c, 0x94c0ffff, 0x14cc0001, 0x94c00028, 0xd8000033,
+       0xc438000b, 0xc43c0009, 0x27fc0001, 0x97c0fffe, 0xd8400013, 0xd841c07f, 0xc43dc07f, 0x1bfc0078,
+       0x7ffbc00c, 0x97c0fffd, 0x99000004, 0xc0120840, 0x282c0040, 0x80001ae8, 0xc0121841, 0x282c001a,
+       0xcd01c07c, 0xcc01c07d, 0xcc01c08c, 0xcc01c079, 0xcc01c07e, 0x04200004, 0xcec0001b, 0xd8400021,
+       0x0a200001, 0x9a00ffff, 0xc425c07f, 0x166c001f, 0x04200004, 0x9ac0fffb, 0xc434000f, 0x9b40ffff,
+       0xd801c07f, 0xd8400013, 0xc425c07f, 0xce400078, 0xd8000034, 0x9940e66b, 0xd800004a, 0x7c408001,
+       0x88000000, 0xc40c0036, 0x24d00001, 0x9900fffe, 0x18cc0021, 0xccc00047, 0xcc000046, 0xc40c0039,
+       0x94c0ffff, 0xc40c003d, 0x98c0ffff, 0x7c40c001, 0x24d003ff, 0x18d47fea, 0x18d87ff4, 0xcd00004c,
+       0xcd40004e, 0xcd80004d, 0xd8400013, 0xcd41c405, 0xc02a0001, 0x2aa80001, 0xce800013, 0xcd01c406,
+       0xcc01c406, 0xcc01c406, 0xc40c0006, 0x98c0ffff, 0xc414000e, 0x29540008, 0x295c0001, 0xcd400013,
+       0xd8c1325e, 0xcdc0001a, 0x11980002, 0x4110000c, 0xc0160800, 0x7d15000a, 0xc0164010, 0xd8400013,
+       0xcd41c078, 0xcc01c080, 0xcc01c081, 0xcd81c082, 0xcc01c083, 0xcd01c084, 0xc40c0006, 0x98c0ffff,
+       0xd8400048, 0xc40c003b, 0x94c0ffff, 0x80000c16, 0xd8400013, 0xd801c40a, 0xd901c40d, 0xd801c410,
+       0xd801c40e, 0xd801c40f, 0xc40c0040, 0x04140001, 0x09540001, 0x9940ffff, 0x04140096, 0xd8400013,
+       0xccc1c400, 0xc411c401, 0x9500fffa, 0xc424003e, 0x04d00001, 0x11100002, 0xcd01c40c, 0xc0180034,
+       0xcd81c411, 0xd841c414, 0x0a540001, 0xcd41c412, 0x2468000f, 0xc419c416, 0x41980003, 0xc41c003f,
+       0x7dda0001, 0x12200002, 0x10cc0002, 0xccc1c40c, 0xd901c411, 0xce41c412, 0xd8800013, 0xce292e40,
+       0xcc412e01, 0xcc412e02, 0xcc412e03, 0xcc412e00, 0x80000aa7, 0xc43c0007, 0xdc120000, 0x31144000,
+       0x95400005, 0xdc030000, 0xd800002a, 0xcc3c000c, 0x80001b70, 0x33f80003, 0xd4400078, 0x9780e601,
+       0x188cfff0, 0x04e40002, 0x80001190, 0x7c408001, 0x88000000, 0xc424005e, 0x96400006, 0x90000000,
+       0xc424005e, 0x96400003, 0x7c408001, 0x88000000, 0x80001b74, 0x80000168, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0x92100004, 0x92110501, 0x92120206, 0x92130703, 0x92100400, 0x92110105, 0x92120602, 0x92130307,
+       0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 7440
+};
+
+static const PWR_DFY_Section pwr_virus_section4 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54106500,
+       .dfy_data = {
+       0x7e000200, 0x7e020204, 0xc00a0505, 0x00000000, 0xbf8c007f, 0xb8900904, 0xb8911a04, 0xb8920304,
+       0xb8930b44, 0x921c0d0c, 0x921c1c13, 0x921d0c12, 0x811c1d1c, 0x811c111c, 0x921cff1c, 0x00000400,
+       0x921dff10, 0x00000100, 0x81181d1c, 0x7e040218, 0xe0701000, 0x80050002, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050102,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0701000, 0x80050002, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0701000, 0x80050102, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050002, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0701000, 0x80050102,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302, 0xe0501000, 0x80050302,
+       0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 240
+};
+
+static const PWR_DFY_Section pwr_virus_section5 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54106900,
+       .dfy_data = {
+       0x7e080200, 0x7e100204, 0xbefc00ff, 0x00010000, 0x24200087, 0x262200ff, 0x000001f0, 0x20222282,
+       0x28182111, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000, 0x0000040c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd81a0000,
+       0x0000080c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000, 0x1100000c, 0xd86c0000,
+       0x1100000c, 0xbf810000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 384
+};
+
+static const PWR_DFY_Section pwr_virus_section6 = {
+       .dfy_cntl = 0x80000004,
+       .dfy_addr_hi = 0x000000b4,
+       .dfy_addr_lo = 0x54116f00,
+       .dfy_data = {
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4540fe8, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000041, 0x0000000c, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54116f00, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb454105e, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x000000c0, 0x00000010, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117300, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4541065, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000500, 0x0000001c, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117700, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0xc0310800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000040, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0xb4541069, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000444, 0x0000008a, 0x00000000, 0x07808000, 0xffffffff,
+       0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x55555555, 0x55555555, 0x55555555,
+       0x55555555, 0x00000000, 0x00000000, 0x540fee40, 0x000000b4, 0x00000010, 0x00000001, 0x00000004,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x54117b00, 0x000000b4, 0x00000000, 0x00000000, 0x00005301, 0x00000000, 0x00000000, 0x00000000,
+       0xb4540fef, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x540fee20, 0x000000b4, 0x00000000,
+       0x00000000, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+       },
+       .dfy_size = 1024
+};
 
-static const PWR_Command_Table pwr_virus_table[PWR_VIRUS_TABLE_SIZE] = {
-       { PwrCmdWrite, 0x00000000, mmRLC_CNTL                                 },
-       { PwrCmdWrite, 0x00000002, mmRLC_SRM_CNTL                             },
-       { PwrCmdWrite, 0x15000000, mmCP_ME_CNTL                               },
-       { PwrCmdWrite, 0x50000000, mmCP_MEC_CNTL                              },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x0840800a, mmCP_RB0_CNTL                              },
-       { PwrCmdWrite, 0xf30fff0f, mmTCC_CTRL                                 },
-       { PwrCmdWrite, 0x00000002, mmTCC_EXE_DISABLE                          },
-       { PwrCmdWrite, 0x000000ff, mmTCP_ADDR_CONFIG                          },
-       { PwrCmdWrite, 0x540ff000, mmCP_CPC_IC_BASE_LO                        },
-       { PwrCmdWrite, 0x000000b4, mmCP_CPC_IC_BASE_HI                        },
-       { PwrCmdWrite, 0x00010000, mmCP_HYP_MEC1_UCODE_ADDR                   },
-       { PwrCmdWrite, 0x00041b75, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000710e8, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000910dd, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000a1081, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000b016f, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000c0e3c, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000d10ec, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000e0188, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00101b5d, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00150a6c, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00170c5e, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x001d0c8c, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x001e0cfe, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00221408, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00370d7b, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00390dcb, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x003c142f, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x003f0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00400e63, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00500f62, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00460fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00490fa7, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005811d4, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00680ad6, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00760b00, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00780b0c, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00790af7, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x007d1aba, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x007e1abe, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00591260, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005a12fb, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00861ac7, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x008c1b01, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x008d1b34, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a014b9, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a1152e, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a216fb, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a41890, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a31906, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a50b14, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00621387, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005c0b27, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00160a75, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC1_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00010000, mmCP_HYP_MEC2_UCODE_ADDR                   },
-       { PwrCmdWrite, 0x00041b75, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000710e8, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000910dd, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000a1081, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000b016f, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000c0e3c, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000d10ec, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000e0188, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00101b5d, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00150a6c, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00170c5e, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x001d0c8c, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x001e0cfe, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00221408, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00370d7b, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00390dcb, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x003c142f, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x003f0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00400e63, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00500f62, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00460fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00490fa7, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005811d4, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00680ad6, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00760b00, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00780b0c, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00790af7, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x007d1aba, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x007e1abe, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00591260, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005a12fb, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00861ac7, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x008c1b01, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x008d1b34, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a014b9, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a1152e, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a216fb, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a41890, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a31906, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00a50b14, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00621387, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x005c0b27, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x00160a75, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x000f016a, mmCP_HYP_MEC2_UCODE_DATA                   },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x540fe800, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0x7e000200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e020201, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e040204, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e060205, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a080500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a0a0303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54106f00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000400b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00004000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00804fac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x540fef00, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0xc0031502, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00001e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x540ff000, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000145, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdcc10000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd010000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080061, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24ccffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3cd08000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1cd0ffcf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d018001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x050c0019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x84c00000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000067, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000006a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000006d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000008f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000099, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800000a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800000af, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x388c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08880002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98800003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000002d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28080001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d808001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc0700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d10ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d10c017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0d000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14cc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000005d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14d00011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c01b10, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00e0080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00e0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x280c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x280c0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x280c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00052, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28180039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000069, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28080001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca88004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc00006f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28180080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d10c017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000013b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd4c0380, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdcc0388, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55dc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdcc038c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce0c0390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce0c0394, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce4c0398, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce4c039c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce8c03a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56a80020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce8c03a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcecc03a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcecc03ac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf0c03b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf0c03b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4c03b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57740020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4c03bc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8c03c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57b80020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8c03c4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfcc03c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57fc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfcc03cc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05dc002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc12009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d200a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc012009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25e01c00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25e40300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25e800c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25ec003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e25c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de5c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xddc10000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31100006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc1c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4df0388, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d7038c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d5dc01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4e30390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d70394, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d62001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4e70398, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d7039c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d66401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4eb03a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d6a801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ef03a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703ac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d6ec01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4f303b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d73001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4f703b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703bc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d77401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4fb03c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703c4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d7b801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ff03c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d703cc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d7fc01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4d70380, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1c88001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0e0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc01e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3cd00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0085, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc006a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc01e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3cd00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1c88001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc080000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400051, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04180018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aac0027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80002f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04080002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08880001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000367, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9880fff3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04080010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08880001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80c0309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80c0319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9880fffc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00e0100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d4001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x155c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e80180, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202c003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900091a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05280196, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d4fe04, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800001b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000032b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000350, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000352, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000035f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000701, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000047c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000019f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d98001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0044, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9400036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40005b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40005d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840006d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11540015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a4003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1998003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af0007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1264001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15dc000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d65400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a38003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd5c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7df1c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800045, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411326a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc415326b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293279, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000056, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00059, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c8000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40005a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29988000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000073, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25140fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001b6d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153279, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd00005f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000075, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26f00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15100010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d190004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af07fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4412e01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0434001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4412e40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04343000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf413267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd1c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0160, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc810001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b4c0057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f4f400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55180020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x248dfffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc12e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af4007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33740003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26d80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ae8003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26680001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253348, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413348, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253348, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x958000d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000315, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04303000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26680001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1714000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25540800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x459801b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d77400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x199c01e2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e4002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e5c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e540002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000282, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc80c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1334e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01334f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd413350, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813351, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd881334d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3271, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153274, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50cc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cdcc011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05900008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd00006a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0006b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3272, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d594002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54d00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc12e23, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd012e24, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc12e25, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15540002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b340057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b280213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980198, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e40020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20cc003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113274, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01e0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2d540002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x078c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07d40000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001239, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04f80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x057c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd5c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840007c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400069, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c018a6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4412e22, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800007c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c018a2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd4c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680fffc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800002e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800002e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000069, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9540188f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc013cfff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x38d00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdcc30000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c01882, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000304, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x49980198, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e40020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x459801a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000329, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc812e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16ec001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1998003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce00000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a18003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4093249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1888003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419324c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1598001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14d80011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24dc00ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31e00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31dc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95801827, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14dc0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800006d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a0000ad, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04080000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af4003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740004d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca88005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24880001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f4b4009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313274, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d33400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a4004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1eecffdd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800003c3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aa80030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a8004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3272, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19e80042, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e8e800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de9c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3271, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50cc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ce8c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd30011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11e80007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd300001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240059, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1660001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e320009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0328000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e72400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0430000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02ac000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d310002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa87600, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280222, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4280058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x22ec003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8380018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57b00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04343108, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13740008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2374007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32a80003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ec0057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e40213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc0199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cecc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ce4c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800003e7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980104, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x49980104, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800003f2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000448, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813279, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf41326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x254c0700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a641fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0726, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a640200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1237b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8813260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4280034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c01755, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde830000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0174c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bb80040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100044, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19180024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x551c003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000043d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c8000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840006c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28200000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000043f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x282000f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x195c00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2555fff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0360001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5e124dc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e624001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80fff9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2555fff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980158, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x49980158, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980170, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16200010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x195400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1154000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e80488, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0006c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18f807f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e40077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ec0199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000048e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000494, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004de, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000685, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000686, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800006ac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ccc001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1264000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d79400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e7a400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52a8001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d69401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202c007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aec0028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004cc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419324e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26e8003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aec003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12f4000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d324d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d75401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d290004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f8f4001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f52800f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50e00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004d1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0dc002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x6665fc00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1c011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a644000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f534002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x6665fc00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e76401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004d7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aec003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3257, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12f4000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d75401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1c011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a644000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202c003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e804e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004e7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800004f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000505, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x277401ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf41325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640fff4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17e00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84131db, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26edf000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8413260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05a80507, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000050c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000528, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000057d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800005c2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800005f3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c004d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00063b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000624, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1be00fe4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000066, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400068, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c004d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400067, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00063b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000624, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bd400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ed6c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113271, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193272, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d51401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113274, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253276, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400061, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2730000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7db1800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00062, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000063, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400065, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b700057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b680213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46ec0188, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17e00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26e01000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c131fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x191807e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x192007ec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x69dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de20014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x561c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013344, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13345, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425334d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419334e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d334f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213350, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253351, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46ec01b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800068, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2010007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1910003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd00001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd00001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2010003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x191807e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9540000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2511fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013344, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013345, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180050, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0052, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280042, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813273, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13275, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000068, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400067, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07d40000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00124f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x057c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46ec0190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2154003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bd800e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd80005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420004d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1e000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28340001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f598004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1be800e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801327a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800005f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000075, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424004c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a4004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x277401ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf41325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xda000068, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113277, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9540002d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425334d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419334e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d334f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213350, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253351, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b680057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b700213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b740199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46ec01b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1334a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1be000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0360001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc63124dc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80fff9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02ee000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fc14001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x194c1c03, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc0003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c002d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000697, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x194c00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c004c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27301fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce00005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cf0c00d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25100007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31100005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900008e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000075e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202c007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a9feff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d30b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce813265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00ac006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00e0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28880700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0006de, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14cc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30d4000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41530b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19980028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800006c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8380023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fa38011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x282c2002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd3800025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202400d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d8003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x194c00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c004c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27301fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce00005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cf0c00d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000712, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x194c1c03, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc0003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c002d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e80714, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000071c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000720, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000747, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000071d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800007c4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000732, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000745, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000744, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000072e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a64008c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b301fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000075e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0fff1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000723, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41f02f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000743, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8813247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0ffde, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000072e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0007e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84131db, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b301ff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8413260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc8000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x195800e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd80005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418004c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dd7fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1a001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46200200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04283247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af80057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af40213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6f400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2000025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc6990000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x329c325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x329c3269, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x329c3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01defff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d8009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000078a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fff2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03e7ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3f0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1f30001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03e4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d30b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bf0003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000b80, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x203c003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf0130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46200008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2000025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31dc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ec0057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e40213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc0199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cecc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ce4c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000448, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31980002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19580066, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15600008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0120001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11980003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da18001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d24db, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580137b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00ee000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113269, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19080070, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x190c00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2518000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05a80809, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000080e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000080f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000898, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000946, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800009e1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04a80811, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000815, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000834, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3045, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c091, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31300021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84002f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293059, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56a8001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000241, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000084a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02f0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4252087, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5668001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000084a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431ecaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02e0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31300021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84002f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293059, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56a8001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00021d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001a41, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43b02f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec80278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56f00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8813247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80802e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000085e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x950001fa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02e0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aec0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a40006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de6000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10e40008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e2e000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d10ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2110003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d10ff9e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0245301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801325f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0121fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29108eff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0127ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0131fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e524009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013279, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0100010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd2400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0180003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd1c002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000866, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04a8089a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000089e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800008fa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000945, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000945, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31300022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x459801e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2738000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc79d3300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc7a13301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8393300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0260001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce793301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x964012a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c028009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800008d2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x242c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02620c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0260400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae8001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2f0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800008d2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdf93300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce393301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000903, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31240022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ec30011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32f80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x67180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bfc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd981325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000915, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c1325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0fff6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f818001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001606, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d838001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16240014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a2801f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e2a000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00075e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x66d80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1330000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13f40014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33e80010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680ffec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04a80948, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000094c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000099b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800009e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800009e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x459801e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2738000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc79d3300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc7a13301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8393300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0260001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce793301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x964011fe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c028009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000978, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x242c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0260010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0260800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6e400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae8001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2f0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000978, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdf93300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce393301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dda801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e838011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001802, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x469c0390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4280011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0014df, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31280014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce8802ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800062, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31280034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04a809e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800009ec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a45, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a59, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a59, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d91801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a70250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e72401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b342010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x172c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b30c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef7400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x66740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04383000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b38007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33b40003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x4598001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740002f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4002eb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4002ec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4002ed, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4002ee, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04382000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd84802e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001715, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04382000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffbc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04341001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431ecaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a55, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x233c0032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf0130b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49302ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5198001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193269, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2598000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80002f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53b8001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7db9801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000a5e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c01106, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e02, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e03, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c010fd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ce4c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc80c0072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x58e801fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc01e2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e4002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e5c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e540002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9540000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x44cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55900020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x44cc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd812e01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd012e02, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd412e03, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2264003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1e64001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14d00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ab1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a0010ac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd880003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc010ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d403f7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0cc009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41b0367, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d958004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d85800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc1e0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d001fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05280adc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000af1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000adf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ae7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000ace, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd8d2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d803f7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc010ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0cc009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11940014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29544001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29544003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000af4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd44d2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd44dc000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000ace, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd8d2c00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000b0a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd44d2c00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28148004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4593240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0105e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x199c0034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef3400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14e80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a8000af, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c01043, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a01fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3620005c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2464003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc6290ce7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16ac001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ac003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ee6c00d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00fff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000367, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640102e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x199c0037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a00035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0005d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16f8001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9780000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc035f0ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e764009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19b401f8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13740008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e76400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x199c0034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ae4003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000b7c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aec003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a4003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12ec001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02e4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc01e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13fc0018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dbd800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d98ff15, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x592c00fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd80000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12e00016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x592c007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12e00015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1264001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1620000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12e4001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5924007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a4003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013257, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd413258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00fdb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9780f5ca, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001b6d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d324e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431324d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07740003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x269c003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e4004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f67000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f674002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53740002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab42010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab8c006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a8000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b740000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf40001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000bec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000b47, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b34060b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec00ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a8004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc415325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18580037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x262001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d54001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14f00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd280200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd680208, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcda80210, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc6930200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc6970208, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc69b0210, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd900003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd940003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9400040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14fc0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24f800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd88130b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d83c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4093249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1888003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000671, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419324c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1598001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14d80011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24e000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x321c0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580ffee, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c30, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9480000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800f29, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800f23, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800f1a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9600f502, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0f500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000f05, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1f30001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16e4001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640f4f4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33740002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40f4f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aec003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12ec001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1374000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02e4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1774000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00ac005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00e0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc8000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28884900, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ff3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400ee1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c40a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c40c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c40d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d0007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15580010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x255400ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c411, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c40f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c40e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c410, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e80033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ec0034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c414, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c415, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c413, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c412, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc0032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c030011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c038011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431c417, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435c416, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c419, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc418, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf413261, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013262, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13263, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813264, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc0030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d77000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000cd6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51b80020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f97801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000cd6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ca7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc0031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435c40b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4280032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f8cc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000cf4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc032800b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d42011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd4c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800e6c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x596001fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ce0c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x505c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50600020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8240010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e800c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x122c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000d1f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8240010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x566c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413261, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13262, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b740008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x566c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce413261, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec13262, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f8cc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000d57, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0328009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04143000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd413267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e51001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d2d0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19640057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19580213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19600199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da6400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04142000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd413267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4153267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d40030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d80034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05280d83, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c424001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000d8a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000d95, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000db1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000d95, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000dbc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11540010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e010001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d75400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4610000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580f3d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x526c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e80058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e2ec01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5ae0073a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea2800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580f3c6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc3a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980fff5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01c405, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd441c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580f3b1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c409, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11540010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4610000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580f3a5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00da7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5aac007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12d80017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56a00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e82400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e58c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19d4003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28182002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc011000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c908009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20880188, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20240090, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd901a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1624001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841325f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ac0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ac0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b301ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2330003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0001a2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1910003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2220003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e2a000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00038, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d40030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18fc0034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24e8000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80e71, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000edd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e91, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e91, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ea1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000eaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e7c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e7f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e7f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e87, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000e8f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9e001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a200008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213262, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253261, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a200008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213264, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253263, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc820001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e82005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da1801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1800072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8180072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x59a001fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea2800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce80001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd180001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15980002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421c401, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425c401, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ee6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2580, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac260c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0828, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2440, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0093, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac31dc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac31e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ede, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac7c06, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db07c00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acc337, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0c330, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acc335, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0c336, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac9002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db09001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac9012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db09011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acec70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0ec6f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ebc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5a10000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5a50000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05280eea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ef1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000efe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f11, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f2e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000efe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f1f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0f26f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e80058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7daec01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5af8073a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eba800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0f25c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15980002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c405, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56240020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0f24e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c409, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40f247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce190000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0f240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439c040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2580, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac260c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0828, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2440, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac2390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac0093, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac31dc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31ac31e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ef2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac7c06, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db07c00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acc337, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0c330, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acc335, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0c336, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39acec70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db0ec6f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac9002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db09002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39ac9012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3db09012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ef1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b740008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c1325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c034001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c038001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e0007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32240003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f88, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e52401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ac0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26f0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af000fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1334000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24e02000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f63400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e00074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32240003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000f9d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51e40020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5a401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8280072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ac0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26f0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1af000fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13380016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e00039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e0007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1220001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e00074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fa3800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1c084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d001e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31140005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31140006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05280fb7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28140002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fc2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fbe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fd1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ff2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ff2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e80039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52a8003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d69401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140004b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d958004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d150005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x159c0011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31a00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31a40001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e25800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0fff5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fff4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000fef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d100010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01326f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc011000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33b40003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0340008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000ffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c908009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x282c2002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x208801a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20240030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28340000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x507c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d7d401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x557c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28342002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000102f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1cccfe08, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00b33, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da2400f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da28002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1ac002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d2ac002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3ef40010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40f11d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde410000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdcc10000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd010000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd410000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdd810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xddc10000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde010000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c024001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100086, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5510003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001075, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15800f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15c002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d520002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cde0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e20001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001071, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c00036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00b01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc200000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc1c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc180000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc0c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc240000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc40003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4080029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a400e5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12500009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x248c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x200c006d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x200c0228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410002b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18881fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d4072c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc00d1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd4c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3094000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x38d80000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x311c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30940007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1620001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010c4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x259c007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a00030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010cb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x199c0fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010cb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000aac, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434002e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2020002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07a810d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000104c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x200c007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28240007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xde430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d3249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x192400fd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06681110, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19180070, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19100078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18f40058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5978073a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001117, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001118, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000112d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001130, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001133, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24ec0f00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32ec0600, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24ec0f00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32ec0600, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000117b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc81c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55e00020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001122, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02a0200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e8e8009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x22a8003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x22a80074, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2774001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13740014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eb6800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25ecffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55700020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15f40010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13740002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x275c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15dc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39e00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc1c01e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e40008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc2001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e40008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e62000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da58001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001165, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc2001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1a0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e0d000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95000007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e02401e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06640008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05d80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc2401e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da58001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05e00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da2000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9600ffe6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00116b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce00001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81c078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x22640435, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0528117e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x312c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001185, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001182, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001182, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a0400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1198001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d81c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19a000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de2c00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26200010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc415326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc420007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011a3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d654001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c020001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011b6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253279, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc415326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2730003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3b380006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3f38000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0430000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb10004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e57000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e578002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d67c002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0be40001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d3a4002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x202c002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26200010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e640010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce81325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434002e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07a811cf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00feb8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x954009a7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000bfc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1c07c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c07d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c08c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c07e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18f0012f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18f40612, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc00c1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cf7400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x39600004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0140004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11600001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18fc003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9740001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011ee, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a6c003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800011e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ac007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab00030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aac0fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001205, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11600001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ffbc00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a2800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03ae000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a0800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03ae000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a4000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81c07c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17fc001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30d00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000052, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640090f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1514001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19180038, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d324e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431324d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab0c006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000127f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d3258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313257, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab0c012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e624004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f67800f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53740002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ab42010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a8000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b740000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f6b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf40001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1514001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0012e1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x964008d7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9800036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300677, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012aa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b34060b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f37000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec00ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a8002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef6c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7edec00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4140032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1858003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0cc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0006c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d407f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2598003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d190004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d5d4001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d52000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d514002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d958001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd5c002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc1325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1ccc001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14f00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd980003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9800040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd9c00040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800010de, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33f80003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800051, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc80003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24b00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18a800e5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1d980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7da9800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b74003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b304000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431326c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b4c00f8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50700020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04e81324, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18ac0024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50600020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30e40004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d71401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x596401fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b74008d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e76400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a640000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000132c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000133b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001344, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42530b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a68003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2024003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11980014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d19000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd0130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce4130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de6800f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce40001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc428000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8240011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de6800f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffe0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00104f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28182002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340035, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140023, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d614011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4100026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05980008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1a0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb0800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3e280008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cb4800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20240030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ca48001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b4c00f8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28340000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x507c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30e40004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d7d401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x557c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28342002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c018001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf81a2a4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c007eb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d0d001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8100072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x591c01fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45140210, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x595801fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11980009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1624001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400069, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a307fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x23304076, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc00e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0015, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x4514020c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a2001e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a204001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a64003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1264001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15dc000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dcdc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5dc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340022, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4412e01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0434001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf430000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4412e40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c030, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41c031, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x248dfffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc12e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc812e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45140248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013257, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0434000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdb000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd140001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9980ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8200011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013259, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0337fff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f220009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d01c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f01c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c01c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c000d61, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50500020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd0c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd0c00072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8240072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd240001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19682011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5a6c01fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12ec0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eeac00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aec0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4180011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf830000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfa0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4380007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d40038, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400029, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9540073d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18c80066, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30880001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd910000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x4220000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24e80007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24ec0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5310000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001465, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1000072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc82c0072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2c0001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18f02011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5aec01fc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12ec0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aec0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a8146a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1f0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001478, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001478, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f1b400e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000147a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f334002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000147b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e024001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000144a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fbfc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x251001ef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94800007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00187c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42c0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd910000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40d325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800012c2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13f4000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bf0060b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800014a9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d325a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0677, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb81ff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0328007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb7800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13fc0017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ffbc00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03a0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45dc0390, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04183000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b380057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b340213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c424001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c428001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c42c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c430001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c434001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04182000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd813267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a0800fd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x109c000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce080228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9880000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce480250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce880258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0ec75, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce480250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce880258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52a80020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x66580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc80260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec80288, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf080290, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec80298, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf0802a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4802a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27580001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc802b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80802b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x178c000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b8003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cf8c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8802c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc802c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8802d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf8802d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25b8ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd2800c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5230309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e3a400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001539, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd08034b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd880353, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b0353, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd14005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000154f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd080238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd08034b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d200008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd900309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8100319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340801, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2198003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd910ce7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4190ce6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d918005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d918004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd810ce6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdd1054f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000156e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x090c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdcd050e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x040c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x110c0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc4001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41230a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41230b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41230c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc41230d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc480329, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc48032a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc4802e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f02e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d8003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09940001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x44100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x69100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000157f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970290, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b0288, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b02a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49f0298, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x041c0040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dcdc002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d924019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d26400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001579, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d010021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d914019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd480298, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd8802a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10d40010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12180016, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc51f0309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d95800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d62000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdd00309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce113320, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f02e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b02b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18dc01e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9400e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c0001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015aa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a302b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12240004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e5e400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ab02a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04100000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce4c0319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d9d8002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea14005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015bc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04240001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e624004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d25000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2620000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fff4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd0d3330, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce0802b8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd8802b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ab02e0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aa807f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f02d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49702d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b02c8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49f02c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96800028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d4e000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9600000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d964002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d694001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cde4002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de94001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd64002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d694001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00163f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800015cd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930238, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d698002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd4802d8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x129c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc50f0319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11a0000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1e000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1198000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd953300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e0e000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a8000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce953301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce100319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b70280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73800a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x536c0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9780eb68, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001609, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30b40000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b400011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b70258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53780020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb3801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7faf8019, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x67b40001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x57b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bb0260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fab8001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf880260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x66f40001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4353247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7f4009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fff7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x269c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a00018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a00060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x269c0018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a40060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11dc0006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29dc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de5c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b70228, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc80230, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f514005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2510000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001644, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd080240, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f130005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001688, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00120d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001219, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001232, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340801, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f130004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01051e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42d051f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ed2c005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96c0fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01051f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000055, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5170309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x195c07f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x196007f6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04340001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x6b740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001665, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a702a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ab0298, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f634014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e76401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56680020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8113320, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce480298, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce8802a0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc5170319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b702b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x255c000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f5f4001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8113330, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf4802b0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11340001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x195c07e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x196007ee, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8353300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1e4001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8353301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce4802d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8100309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8100319, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc48f0250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd4c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x64d80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580005c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc24001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd2000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc435324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7df5c00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800016f1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a7003e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a7000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a700064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800016df, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800016f2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ff9c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd80802e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18fc0064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00042, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51980020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dd9801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x45980400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b380057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b340213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f7b400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f73400a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14f4001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x192807fa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bf0258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a70250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53fc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e7e401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x667c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0aec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eebc00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x43300007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7db30011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd3000025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc03ec005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfca200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x192807fa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1d0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2110007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x203c003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0017f5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18fc01e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00185b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40ffd5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0ea24, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14d4001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d52400e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49f0258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a30250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51dc0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400017, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d534002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dae4005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32e0001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec80270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000174f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b740001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00178a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40fff3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001608, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ab0268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7daa4005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32a0001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001765, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d1d0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2110007d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8013256, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c0017f2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd013254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4113248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b3034b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f13000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001855, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32a4001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8413247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd080260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce880268, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ffc0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ec28001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32e0001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253255, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431324f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e72400c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9680fff7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aa4003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aa400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32680003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a800046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4293260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1aa400e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800017e2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc027ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2e6400ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a4009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4240009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19e403e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26680003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12a80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19e400e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea68001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19e40064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x32640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a40005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06640003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce412082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a640003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800017d0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16a40005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce412082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea64002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4292083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ea68005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a80ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc429325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26a400ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40ffca, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2024007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800017e3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4a70280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4ab0278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52640020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7eae8014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e6a401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56680020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce480278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce880280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x042c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec80270, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800017fe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800017fe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43b02eb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42302ec, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fa3801a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x47b8020c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x15e00008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1220000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2a206032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x513c001e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e3e001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4bf02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000180f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b3c0077, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1330000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd200000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4200007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd3800002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc30001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc1e0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04380032, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf80000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001427, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc413248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3269, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33fc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bfc0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd441326a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x173c0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300303, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3f0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ff3c004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001842, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdfc30000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4413249, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c43c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x23fc003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1326d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdf830000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd441326e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1fb8ffc6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xddc30000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf813265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001852, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c00142b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001878, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49f02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c00018, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c420001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c3000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c0012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001878, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41f02ed, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42302ee, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc13252, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013253, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e2a0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28340001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x313c0bcc, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x393c051f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d3c050e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x393c0560, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d3c054f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x393c1538, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d3c1537, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b740800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e8007c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c42c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a8189a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800018c5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800018f2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c414001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0007e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x50580020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d59401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc8140072, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09240002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c418001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4340004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc42130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a24002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2020002c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc418000d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1198001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14cc0004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7cd8c00a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc130b7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce0130b5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd1400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x5978073a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bb80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf800024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd800026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9600e8a8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9640e8a5, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800018a9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc55b0309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d5c0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dad800c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0ffd2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fff9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x442c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7df9c00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c13260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd901325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940fff1, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x66d80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x56ec0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26240007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940fff7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc023007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19e4003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7de1c009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dee000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96000007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c13260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd901325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc421325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x261c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940fff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000189e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28cc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43d3265, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bc800ea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18e00064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06281911, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14f4001d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24cc0003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x86800000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001915, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x800019af, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001a2b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8000016a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc48032b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc480333, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc48033b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc480343, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98800011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46640400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04203000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b3c0057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b200213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e3e000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04180000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f438001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00068, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213254, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a1c003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00065, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc01f007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1e0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97800062, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0bb80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x43bc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fcbc001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc7df032b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1fc00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0101, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c0102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001994, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001982, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffcb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001995, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc1325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98800009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x41bc0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x53fc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e7fc011, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd3c00025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0012, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9bc0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x653c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dbd8001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ff8f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2bfc0008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x043c2000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcfc13267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c410001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc55b0309, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x3d5c0010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2598ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x05540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d91800c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580fff8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09780001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9580005d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200101, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400058, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dc24001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41d3248, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25dc000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7df9c00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95c00053, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e41c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a70003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a7000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33240003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a400046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1a7000e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001a21, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f270009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x266400ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27240003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12640004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e724001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06640002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16700005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001a0f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x16700005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e730002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4252083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e724005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x26640001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a40ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x267000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001a22, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ff9f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001a31, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8080280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213246, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4253245, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52200020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e26401a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x46640400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04203000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4213267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b180057, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b200213, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1b300199, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e1a000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e32000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce000024, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4970258, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4930250, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x51540020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4af0280, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4b30278, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x52ec0020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140020, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04280000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x65180001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800060, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x8c001628, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4193247, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x25980001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200101, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x30f00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95800056, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb0003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b800046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4393260, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bb000e4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001aa2, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc033ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2f3000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f3b0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf01325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b800ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4300009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9700fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f003e6, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27380003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13b80004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f000e8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07b80002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x19f00064, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33300002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0b300003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001a90, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x17b00005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf012082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01203f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x13300005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb30002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4392083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7fb38005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b80ffdf, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c00034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc00013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc431325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27300010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc439325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27b000ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b00ffca, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2030007b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf00325b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001aa3, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce01325d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04300001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7f2b0014, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ef2c01a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd2400025, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x4664001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000026, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400027, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x06a80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55100001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ff9c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc49b02e9, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99800008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc430000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2b300008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf000013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04302000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcf013267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc4313267, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x244c00ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc4c0200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc44f0200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc410000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d158010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x059cc000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccdd0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0037, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000049, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c003a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500e69a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d0003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d40021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd840004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c003c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x14cc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c00028, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000033, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc438000b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0009, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x27fc0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43dc07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1bfc0078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7ffbc00c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x97c0fffd, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x99000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0120840, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x282c0040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001ae8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0121841, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x282c001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c07c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c08c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c079, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c07e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcec0001b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a200001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9a00ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x166c001f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04200004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9ac0fffb, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc434000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9b40ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc425c07f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8000034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940e66b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800004a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0036, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9900fffe, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18cc0021, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc00047, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc000046, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0039, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c003d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c40c001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24d003ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d47fea, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x18d87ff4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd00004c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd40004e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd80004d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c405, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc02a0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2aa80001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c406, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc414000e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x29540008, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x295c0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8c1325e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcdc0001a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11980002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x4110000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0160800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7d15000a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0164010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c080, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c081, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c082, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc01c083, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c084, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x98c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400048, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c003b, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x94c0ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000c16, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c40a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd901c40d, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c410, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c40e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd801c40f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc40c0040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x09540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9940ffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04140096, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8400013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1c400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc411c401, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9500fffa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424003e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04d00001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x11100002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd01c40c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0180034, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd81c411, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd841c414, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0a540001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcd41c412, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x2468000f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc419c416, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x41980003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc41c003f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7dda0001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x12200002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x10cc0002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xccc1c40c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd901c411, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce41c412, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd8800013, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xce292e40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e01, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e02, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e03, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc412e00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000aa7, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc43c0007, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc120000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x31144000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x95400005, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xdc030000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd800002a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xcc3c000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b70, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x33f80003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd4400078, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x9780e601, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x188cfff0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x04e40002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001190, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400006, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x90000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc424005e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x96400003, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7c408001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x88000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80001b74, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000168, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110501, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120206, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130703, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92100400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92110105, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92120602, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x92130307, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x54106500, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0x7e000200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e020204, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc00a0505, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbf8c007f, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb8900904, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb8911a04, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb8920304, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb8930b44, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x921c0d0c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x921c1c13, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x921d0c12, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x811c1d1c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x811c111c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x921cff1c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000400, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x921dff10, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000100, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x81181d1c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e040218, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0701000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050102, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xe0501000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80050302, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x54106900, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0x7e080200, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x7e100204, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbefc00ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00010000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x24200087, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x262200ff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000001f0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x20222282, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x28182111, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000040c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd81a0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000080c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xd86c0000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x1100000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xbf810000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x80000004, mmCP_DFY_CNTL                              },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_ADDR_HI                           },
-       { PwrCmdWrite, 0x54116f00, mmCP_DFY_ADDR_LO                           },
-       { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4540fe8, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000041, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000000c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54116f00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb454105e, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000c0, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54117300, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4541065, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000500, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000001c, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54117700, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xc0310800, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000040, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4541069, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000444, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x0000008a, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x07808000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xffffffff, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000002, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xaaaaaaaa, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x55555555, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee40, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000010, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000001, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000004, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x54117b00, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00005301, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0xb4540fef, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x540fee20, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x000000b4, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x08000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_DFY_DATA_0                            },
-       { PwrCmdWrite, 0x00000000, mmCP_MEC_CNTL                              },
-       { PwrCmdWrite, 0x00000000, mmCP_MEC_CNTL                              },
-       { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x54116f00, mmCP_MQD_BASE_ADDR                         },
-       { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-       { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-       { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-       { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-       { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-       { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-       { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-       { PwrCmdWrite, 0x00000005, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x54117300, mmCP_MQD_BASE_ADDR                         },
-       { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-       { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-       { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-       { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-       { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-       { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-       { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-       { PwrCmdWrite, 0x00000006, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x54117700, mmCP_MQD_BASE_ADDR                         },
-       { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-       { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-       { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-       { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-       { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-       { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-       { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-       { PwrCmdWrite, 0x00000007, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x54117b00, mmCP_MQD_BASE_ADDR                         },
-       { PwrCmdWrite, 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
-       { PwrCmdWrite, 0xb4540fef, mmCP_HQD_PQ_BASE                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
-       { PwrCmdWrite, 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
-       { PwrCmdWrite, 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
-       { PwrCmdWrite, 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
-       { PwrCmdWrite, 0x00010000, mmCP_HQD_VMID                              },
-       { PwrCmdWrite, 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
-       { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000104, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000204, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000304, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000404, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000504, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000604, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000704, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000005, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000105, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000205, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000305, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000405, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000505, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000605, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000705, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000006, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000106, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000206, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000306, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000406, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000506, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000606, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000706, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000007, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000107, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000207, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000307, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000407, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000507, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000607, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000707, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000008, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000108, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000208, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000308, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000408, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000508, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000608, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000708, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000009, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000109, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000209, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000309, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000409, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000509, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000609, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000709, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_RPTR                           },
-       { PwrCmdWrite, 0x00000000, mmCP_HQD_PQ_WPTR                           },
-       { PwrCmdWrite, 0x00000001, mmCP_HQD_ACTIVE                            },
-       { PwrCmdWrite, 0x00000004, mmSRBM_GFX_CNTL                            },
-       { PwrCmdWrite, 0x01010101, mmCP_PQ_WPTR_POLL_CNTL1                    },
-       { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-       { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-       { PwrCmdWrite, 0x00000000, mmGRBM_STATUS                              },
-       { PwrCmdEnd,   0x00000000, 0x00000000                                 },
+static const PWR_Command_Table pwr_virus_table_post[] = {
+       { 0x00000000, mmCP_MEC_CNTL                              },
+       { 0x00000000, mmCP_MEC_CNTL                              },
+       { 0x00000004, mmSRBM_GFX_CNTL                            },
+       { 0x54116f00, mmCP_MQD_BASE_ADDR                         },
+       { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+       { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+       { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+       { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+       { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+       { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+       { 0x00010000, mmCP_HQD_VMID                              },
+       { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+       { 0x00000005, mmSRBM_GFX_CNTL                            },
+       { 0x54117300, mmCP_MQD_BASE_ADDR                         },
+       { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+       { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+       { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+       { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+       { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+       { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+       { 0x00010000, mmCP_HQD_VMID                              },
+       { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+       { 0x00000006, mmSRBM_GFX_CNTL                            },
+       { 0x54117700, mmCP_MQD_BASE_ADDR                         },
+       { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+       { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+       { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+       { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+       { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+       { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+       { 0x00010000, mmCP_HQD_VMID                              },
+       { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+       { 0x00000007, mmSRBM_GFX_CNTL                            },
+       { 0x54117b00, mmCP_MQD_BASE_ADDR                         },
+       { 0x000000b4, mmCP_MQD_BASE_ADDR_HI                      },
+       { 0xb4540fef, mmCP_HQD_PQ_BASE                           },
+       { 0x00000000, mmCP_HQD_PQ_BASE_HI                        },
+       { 0x540fee20, mmCP_HQD_PQ_WPTR_POLL_ADDR                 },
+       { 0x000000b4, mmCP_HQD_PQ_WPTR_POLL_ADDR_HI              },
+       { 0x00005301, mmCP_HQD_PERSISTENT_STATE                  },
+       { 0x00010000, mmCP_HQD_VMID                              },
+       { 0xc8318509, mmCP_HQD_PQ_CONTROL                        },
+       { 0x00000004, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000104, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000204, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000304, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000404, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000504, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000604, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000704, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000005, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000105, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000205, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000305, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000405, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000505, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000605, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000705, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000006, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000106, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000206, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000306, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000406, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000506, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000606, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000706, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000007, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000107, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000207, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000307, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000407, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000507, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000607, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000707, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000008, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000108, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000208, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000308, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000408, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000508, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000608, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000708, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000009, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000109, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000209, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000309, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000409, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000509, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000609, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000709, mmSRBM_GFX_CNTL                            },
+       { 0x00000000, mmCP_HQD_ACTIVE                            },
+       { 0x00000000, mmCP_HQD_PQ_RPTR                           },
+       { 0x00000000, mmCP_HQD_PQ_WPTR                           },
+       { 0x00000001, mmCP_HQD_ACTIVE                            },
+       { 0x00000004, mmSRBM_GFX_CNTL                            },
+       { 0x01010101, mmCP_PQ_WPTR_POLL_CNTL1                    },
+       { 0x00000000, mmGRBM_STATUS                              },
+       { 0x00000000, mmGRBM_STATUS                              },
+       { 0x00000000, mmGRBM_STATUS                              },
+       { 0x00000000, 0xFFFFFFFF                                 },
 };
 
 
index 25fb146..7d1eec5 100644 (file)
 
 #include "hwmgr.h"
 
-#define PP_VALID  0x1F1F1F1F
-
 struct pp_instance {
-       uint32_t pp_valid;
        uint32_t chip_family;
        uint32_t chip_id;
        bool pm_en;
index 901c960..2b34971 100644 (file)
 #define PPSMC_MSG_SetPhyclkVoltageByFreq        0x26
 #define PPSMC_MSG_SetDppclkVoltageByFreq        0x27
 #define PPSMC_MSG_SetSoftMinVcn                 0x28
-#define PPSMC_Message_Count                     0x29
+#define PPSMC_MSG_GetGfxclkFrequency            0x2A
+#define PPSMC_MSG_GetFclkFrequency              0x2B
+#define PPSMC_MSG_GetMinGfxclkFrequency         0x2C
+#define PPSMC_MSG_GetMaxGfxclkFrequency         0x2D
+#define PPSMC_MSG_SoftReset                     0x2E
+#define PPSMC_Message_Count                     0x2F
 
 
 typedef uint16_t PPSMC_Result;
index a423c0a..4e29888 100644 (file)
@@ -4,7 +4,7 @@
 
 SMU_MGR = smumgr.o cz_smumgr.o tonga_smumgr.o fiji_smumgr.o fiji_smc.o \
          polaris10_smumgr.o iceland_smumgr.o polaris10_smc.o tonga_smc.o \
-         smu7_smumgr.o iceland_smc.o vega10_smumgr.o rv_smumgr.o ci_smc.o ci_smumgr.o
+         smu7_smumgr.o iceland_smc.o vega10_smumgr.o rv_smumgr.o ci_smc.o
 
 AMD_PP_SMUMGR = $(addprefix $(AMD_PP_PATH)/smumgr/,$(SMU_MGR))
 
index 9ee1431..0017b9e 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "smumgr.h"
 #include "pp_debug.h"
-#include "ci_smc.h"
 #include "ci_smumgr.h"
 #include "ppsmc.h"
 #include "smu7_hwmgr.h"
@@ -208,7 +207,7 @@ static int ci_read_smc_sram_dword(struct pp_hwmgr *hwmgr, uint32_t smc_addr,
        return 0;
 }
 
-int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
+static int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
 {
        int ret;
 
@@ -227,7 +226,7 @@ int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg)
        return 0;
 }
 
-int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
+static int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
                                        uint16_t msg, uint32_t parameter)
 {
        cgs_write_register(hwmgr->device, mmSMC_MSG_ARG_0, parameter);
@@ -476,7 +475,7 @@ static int ci_populate_single_graphic_level(struct pp_hwmgr *hwmgr,
        return result;
 }
 
-int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr)
+static int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr)
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
        struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
@@ -1297,7 +1296,7 @@ static int ci_populate_single_memory_level(
        return result;
 }
 
-int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr)
+static int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr)
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
        struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
@@ -1944,7 +1943,7 @@ static int ci_start_smc(struct pp_hwmgr *hwmgr)
        return 0;
 }
 
-int ci_init_smc_table(struct pp_hwmgr *hwmgr)
+static int ci_init_smc_table(struct pp_hwmgr *hwmgr)
 {
        int result;
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
@@ -2125,7 +2124,7 @@ int ci_init_smc_table(struct pp_hwmgr *hwmgr)
        return 0;
 }
 
-int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
+static int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr)
 {
        struct ci_smumgr *ci_data = (struct ci_smumgr *)(hwmgr->smu_backend);
        SMU7_Discrete_FanTable fan_table = { FDO_MODE_HARDWARE };
@@ -2211,7 +2210,7 @@ static int ci_program_mem_timing_parameters(struct pp_hwmgr *hwmgr)
        return 0;
 }
 
-int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
+static int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
        struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
@@ -2252,7 +2251,7 @@ int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr)
        return result;
 }
 
-uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
+static uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
 {
        switch (type) {
        case SMU_SoftRegisters:
@@ -2278,7 +2277,7 @@ uint32_t ci_get_offsetof(uint32_t type, uint32_t member)
        return 0;
 }
 
-uint32_t ci_get_mac_definition(uint32_t value)
+static uint32_t ci_get_mac_definition(uint32_t value)
 {
        switch (value) {
        case SMU_MAX_LEVELS_GRAPHICS:
@@ -2332,7 +2331,7 @@ static int ci_load_smc_ucode(struct pp_hwmgr *hwmgr)
        PHM_WRITE_FIELD(hwmgr->device, SMC_IND_ACCESS_CNTL, AUTO_INCREMENT_IND_0, 0);
 
        if (0 != byte_count) {
-               pr_err("SMC size must be dividable by 4\n");
+               pr_err("SMC size must be divisible by 4\n");
                return -EINVAL;
        }
 
@@ -2355,7 +2354,7 @@ static int ci_upload_firmware(struct pp_hwmgr *hwmgr)
        return ci_load_smc_ucode(hwmgr);
 }
 
-int ci_process_firmware_header(struct pp_hwmgr *hwmgr)
+static int ci_process_firmware_header(struct pp_hwmgr *hwmgr)
 {
        struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
        struct ci_smumgr *ci_data = (struct ci_smumgr *)(hwmgr->smu_backend);
@@ -2667,7 +2666,7 @@ static int ci_set_valid_flag(struct ci_mc_reg_table *table)
        return 0;
 }
 
-int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
+static int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
 {
        int result;
        struct ci_smumgr *smu_data = (struct ci_smumgr *)(hwmgr->smu_backend);
@@ -2722,13 +2721,13 @@ int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr)
        return result;
 }
 
-bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
+static bool ci_is_dpm_running(struct pp_hwmgr *hwmgr)
 {
        return ci_is_smc_ram_running(hwmgr);
 }
 
-int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
-               struct amd_pp_profile *request)
+static int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
+                                               struct amd_pp_profile *request)
 {
        struct ci_smumgr *smu_data = (struct ci_smumgr *)
                        (hwmgr->smu_backend);
@@ -2751,3 +2750,59 @@ int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
        return ci_copy_bytes_to_smc(hwmgr, array, (uint8_t *)levels,
                                array_size, SMC_RAM_END);
 }
+
+
+static int ci_smu_init(struct pp_hwmgr *hwmgr)
+{
+       int i;
+       struct ci_smumgr *ci_priv = NULL;
+
+       ci_priv = kzalloc(sizeof(struct ci_smumgr), GFP_KERNEL);
+
+       if (ci_priv == NULL)
+               return -ENOMEM;
+
+       for (i = 0; i < SMU7_MAX_LEVELS_GRAPHICS; i++)
+               ci_priv->activity_target[i] = 30;
+
+       hwmgr->smu_backend = ci_priv;
+
+       return 0;
+}
+
+static int ci_smu_fini(struct pp_hwmgr *hwmgr)
+{
+       kfree(hwmgr->smu_backend);
+       hwmgr->smu_backend = NULL;
+       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
+       return 0;
+}
+
+static int ci_start_smu(struct pp_hwmgr *hwmgr)
+{
+       return 0;
+}
+
+const struct pp_smumgr_func ci_smu_funcs = {
+       .smu_init = ci_smu_init,
+       .smu_fini = ci_smu_fini,
+       .start_smu = ci_start_smu,
+       .check_fw_load_finish = NULL,
+       .request_smu_load_fw = NULL,
+       .request_smu_load_specific_fw = NULL,
+       .send_msg_to_smc = ci_send_msg_to_smc,
+       .send_msg_to_smc_with_parameter = ci_send_msg_to_smc_with_parameter,
+       .download_pptable_settings = NULL,
+       .upload_pptable_settings = NULL,
+       .get_offsetof = ci_get_offsetof,
+       .process_firmware_header = ci_process_firmware_header,
+       .init_smc_table = ci_init_smc_table,
+       .update_sclk_threshold = ci_update_sclk_threshold,
+       .thermal_setup_fan_table = ci_thermal_setup_fan_table,
+       .populate_all_graphic_levels = ci_populate_all_graphic_levels,
+       .populate_all_memory_levels = ci_populate_all_memory_levels,
+       .get_mac_definition = ci_get_mac_definition,
+       .initialize_mc_reg_table = ci_initialize_mc_reg_table,
+       .is_dpm_running = ci_is_dpm_running,
+       .populate_requested_graphic_levels = ci_populate_requested_graphic_levels,
+};
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smc.h
deleted file mode 100644 (file)
index cc4176d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2017 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-#ifndef CI_SMC_H
-#define CI_SMC_H
-
-#include <linux/types.h>
-
-
-struct pp_smumgr;
-struct pp_hwmgr;
-struct amd_pp_profile;
-
-int ci_send_msg_to_smc_with_parameter(struct pp_hwmgr *hwmgr,
-                                       uint16_t msg, uint32_t parameter);
-int ci_send_msg_to_smc(struct pp_hwmgr *hwmgr, uint16_t msg);
-int ci_populate_all_graphic_levels(struct pp_hwmgr *hwmgr);
-int ci_populate_all_memory_levels(struct pp_hwmgr *hwmgr);
-int ci_init_smc_table(struct pp_hwmgr *hwmgr);
-int ci_thermal_setup_fan_table(struct pp_hwmgr *hwmgr);
-int ci_update_smc_table(struct pp_hwmgr *hwmgr, uint32_t type);
-int ci_update_sclk_threshold(struct pp_hwmgr *hwmgr);
-uint32_t ci_get_offsetof(uint32_t type, uint32_t member);
-uint32_t ci_get_mac_definition(uint32_t value);
-int ci_process_firmware_header(struct pp_hwmgr *hwmgr);
-int ci_initialize_mc_reg_table(struct pp_hwmgr *hwmgr);
-bool ci_is_dpm_running(struct pp_hwmgr *hwmgr);
-int ci_populate_requested_graphic_levels(struct pp_hwmgr *hwmgr,
-                                       struct amd_pp_profile *request);
-
-
-#endif
-
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
deleted file mode 100644 (file)
index f265f42..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2015 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-#include <linux/module.h>
-#include <linux/slab.h>
-#include <linux/fb.h>
-#include "linux/delay.h"
-
-#include "smumgr.h"
-#include "ci_smumgr.h"
-#include "cgs_common.h"
-#include "ci_smc.h"
-
-static int ci_smu_init(struct pp_hwmgr *hwmgr)
-{
-       int i;
-       struct ci_smumgr *ci_priv = NULL;
-
-       ci_priv = kzalloc(sizeof(struct ci_smumgr), GFP_KERNEL);
-
-       if (ci_priv == NULL)
-               return -ENOMEM;
-
-       for (i = 0; i < SMU7_MAX_LEVELS_GRAPHICS; i++)
-               ci_priv->activity_target[i] = 30;
-
-       hwmgr->smu_backend = ci_priv;
-
-       return 0;
-}
-
-static int ci_smu_fini(struct pp_hwmgr *hwmgr)
-{
-       kfree(hwmgr->smu_backend);
-       hwmgr->smu_backend = NULL;
-       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
-       return 0;
-}
-
-static int ci_start_smu(struct pp_hwmgr *hwmgr)
-{
-       return 0;
-}
-
-const struct pp_smumgr_func ci_smu_funcs = {
-       .smu_init = ci_smu_init,
-       .smu_fini = ci_smu_fini,
-       .start_smu = ci_start_smu,
-       .check_fw_load_finish = NULL,
-       .request_smu_load_fw = NULL,
-       .request_smu_load_specific_fw = NULL,
-       .send_msg_to_smc = ci_send_msg_to_smc,
-       .send_msg_to_smc_with_parameter = ci_send_msg_to_smc_with_parameter,
-       .download_pptable_settings = NULL,
-       .upload_pptable_settings = NULL,
-       .get_offsetof = ci_get_offsetof,
-       .process_firmware_header = ci_process_firmware_header,
-       .init_smc_table = ci_init_smc_table,
-       .update_sclk_threshold = ci_update_sclk_threshold,
-       .thermal_setup_fan_table = ci_thermal_setup_fan_table,
-       .populate_all_graphic_levels = ci_populate_all_graphic_levels,
-       .populate_all_memory_levels = ci_populate_all_memory_levels,
-       .get_mac_definition = ci_get_mac_definition,
-       .initialize_mc_reg_table = ci_initialize_mc_reg_table,
-       .is_dpm_running = ci_is_dpm_running,
-       .populate_requested_graphic_levels = ci_populate_requested_graphic_levels,
-};
index 5b25e06..592a89a 100644 (file)
@@ -159,37 +159,44 @@ static int fiji_start_smu_in_non_protection_mode(struct pp_hwmgr *hwmgr)
        return result;
 }
 
-static int fiji_setup_pwr_virus(struct pp_hwmgr *hwmgr)
+static void execute_pwr_table(struct pp_hwmgr *hwmgr, const PWR_Command_Table *pvirus, int size)
 {
        int i;
-       int result = -EINVAL;
        uint32_t reg, data;
 
-       const PWR_Command_Table *pvirus = PwrVirusTable;
-       struct smu7_smumgr *smu_data = (struct smu7_smumgr *)(hwmgr->smu_backend);
-
-       for (i = 0; i < PWR_VIRUS_TABLE_SIZE; i++) {
-               switch (pvirus->command) {
-               case PwrCmdWrite:
-                       reg  = pvirus->reg;
-                       data = pvirus->data;
+       for (i = 0; i < size; i++) {
+               reg  = pvirus->reg;
+               data = pvirus->data;
+               if (reg != 0xffffffff)
                        cgs_write_register(hwmgr->device, reg, data);
+               else
                        break;
-
-               case PwrCmdEnd:
-                       result = 0;
-                       break;
-
-               default:
-                       pr_info("Table Exit with Invalid Command!");
-                       smu_data->avfs.avfs_btc_status = AVFS_BTC_VIRUS_FAIL;
-                       result = -EINVAL;
-                       break;
-               }
                pvirus++;
        }
+}
 
-       return result;
+static void execute_pwr_dfy_table(struct pp_hwmgr *hwmgr, const PWR_DFY_Section *section)
+{
+       int i;
+       cgs_write_register(hwmgr->device, mmCP_DFY_CNTL, section->dfy_cntl);
+       cgs_write_register(hwmgr->device, mmCP_DFY_ADDR_HI, section->dfy_addr_hi);
+       cgs_write_register(hwmgr->device, mmCP_DFY_ADDR_LO, section->dfy_addr_lo);
+       for (i = 0; i < section->dfy_size; i++)
+               cgs_write_register(hwmgr->device, mmCP_DFY_DATA_0, section->dfy_data[i]);
+}
+
+static int fiji_setup_pwr_virus(struct pp_hwmgr *hwmgr)
+{
+       execute_pwr_table(hwmgr, PwrVirusTable_pre, ARRAY_SIZE(PwrVirusTable_pre));
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section1);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section2);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section3);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section4);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section5);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section6);
+       execute_pwr_table(hwmgr, PwrVirusTable_post, ARRAY_SIZE(PwrVirusTable_post));
+
+       return 0;
 }
 
 static int fiji_start_avfs_btc(struct pp_hwmgr *hwmgr)
index 78aa112..a778e17 100644 (file)
@@ -108,7 +108,7 @@ static int iceland_upload_smc_firmware_data(struct pp_hwmgr *hwmgr,
 
        PHM_WRITE_FIELD(hwmgr->device, SMC_IND_ACCESS_CNTL, AUTO_INCREMENT_IND_0, 0);
 
-       PP_ASSERT_WITH_CODE((0 == byte_count), "SMC size must be dividable by 4.", return -EINVAL);
+       PP_ASSERT_WITH_CODE((0 == byte_count), "SMC size must be divisible by 4.", return -EINVAL);
 
        return 0;
 }
index 22b8ecb..61ee628 100644 (file)
@@ -60,37 +60,44 @@ static const SMU74_Discrete_GraphicsLevel avfs_graphics_level_polaris10[8] = {
 static const SMU74_Discrete_MemoryLevel avfs_memory_level_polaris10 = {
        0x100ea446, 0, 0x30750000, 0x01, 0x01, 0x01, 0x00, 0x00, 0x64, 0x00, 0x00, 0x1f00, 0x00, 0x00};
 
-static int polaris10_setup_pwr_virus(struct pp_hwmgr *hwmgr)
+static void execute_pwr_table(struct pp_hwmgr *hwmgr, const PWR_Command_Table *pvirus, int size)
 {
        int i;
-       int result = -EINVAL;
        uint32_t reg, data;
 
-       const PWR_Command_Table *pvirus = pwr_virus_table;
-       struct smu7_smumgr *smu_data = (struct smu7_smumgr *)(hwmgr->smu_backend);
-
-       for (i = 0; i < PWR_VIRUS_TABLE_SIZE; i++) {
-               switch (pvirus->command) {
-               case PwrCmdWrite:
-                       reg  = pvirus->reg;
-                       data = pvirus->data;
+       for (i = 0; i < size; i++) {
+               reg  = pvirus->reg;
+               data = pvirus->data;
+               if (reg != 0xffffffff)
                        cgs_write_register(hwmgr->device, reg, data);
+               else
                        break;
-
-               case PwrCmdEnd:
-                       result = 0;
-                       break;
-
-               default:
-                       pr_info("Table Exit with Invalid Command!");
-                       smu_data->avfs.avfs_btc_status = AVFS_BTC_VIRUS_FAIL;
-                       result = -EINVAL;
-                       break;
-               }
                pvirus++;
        }
+}
 
-       return result;
+static void execute_pwr_dfy_table(struct pp_hwmgr *hwmgr, const PWR_DFY_Section *section)
+{
+       int i;
+       cgs_write_register(hwmgr->device, mmCP_DFY_CNTL, section->dfy_cntl);
+       cgs_write_register(hwmgr->device, mmCP_DFY_ADDR_HI, section->dfy_addr_hi);
+       cgs_write_register(hwmgr->device, mmCP_DFY_ADDR_LO, section->dfy_addr_lo);
+       for (i = 0; i < section->dfy_size; i++)
+               cgs_write_register(hwmgr->device, mmCP_DFY_DATA_0, section->dfy_data[i]);
+}
+
+static int polaris10_setup_pwr_virus(struct pp_hwmgr *hwmgr)
+{
+       execute_pwr_table(hwmgr, pwr_virus_table_pre, ARRAY_SIZE(pwr_virus_table_pre));
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section1);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section2);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section3);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section4);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section5);
+       execute_pwr_dfy_table(hwmgr, &pwr_virus_section6);
+       execute_pwr_table(hwmgr, pwr_virus_table_post, ARRAY_SIZE(pwr_virus_table_post));
+
+       return 0;
 }
 
 static int polaris10_perform_btc(struct pp_hwmgr *hwmgr)
index 2ae05bb..c997117 100644 (file)
@@ -513,7 +513,7 @@ static int smu7_upload_smc_firmware_data(struct pp_hwmgr *hwmgr, uint32_t length
 
        PHM_WRITE_FIELD(hwmgr->device, SMC_IND_ACCESS_CNTL, AUTO_INCREMENT_IND_11, 0);
 
-       PP_ASSERT_WITH_CODE((0 == byte_count), "SMC size must be dividable by 4.", return -EINVAL);
+       PP_ASSERT_WITH_CODE((0 == byte_count), "SMC size must be divisible by 4.", return -EINVAL);
 
        return 0;
 }
index 97c94f9..08e1332 100644 (file)
@@ -227,8 +227,14 @@ void amd_sched_entity_fini(struct amd_gpu_scheduler *sched,
                 */
                kthread_park(sched->thread);
                kthread_unpark(sched->thread);
-               while (kfifo_out(&entity->job_queue, &job, sizeof(job)))
+               while (kfifo_out(&entity->job_queue, &job, sizeof(job))) {
+                       struct amd_sched_fence *s_fence = job->s_fence;
+                       amd_sched_fence_scheduled(s_fence);
+                       dma_fence_set_error(&s_fence->finished, -ESRCH);
+                       amd_sched_fence_finished(s_fence);
+                       dma_fence_put(&s_fence->finished);
                        sched->ops->free_job(job);
+               }
 
        }
        kfifo_free(&entity->job_queue);
@@ -308,7 +314,7 @@ static bool amd_sched_entity_add_dependency_cb(struct amd_sched_entity *entity)
 }
 
 static struct amd_sched_job *
-amd_sched_entity_pop_job(struct amd_sched_entity *entity)
+amd_sched_entity_peek_job(struct amd_sched_entity *entity)
 {
        struct amd_gpu_scheduler *sched = entity->sched;
        struct amd_sched_job *sched_job;
@@ -354,8 +360,7 @@ static bool amd_sched_entity_in(struct amd_sched_job *sched_job)
        return added;
 }
 
-/* job_finish is called after hw fence signaled, and
- * the job had already been deleted from ring_mirror_list
+/* job_finish is called after hw fence signaled
  */
 static void amd_sched_job_finish(struct work_struct *work)
 {
@@ -396,6 +401,9 @@ static void amd_sched_job_begin(struct amd_sched_job *s_job)
 {
        struct amd_gpu_scheduler *sched = s_job->sched;
 
+       dma_fence_add_callback(&s_job->s_fence->finished, &s_job->finish_cb,
+                              amd_sched_job_finish_cb);
+
        spin_lock(&sched->job_list_lock);
        list_add_tail(&s_job->node, &sched->ring_mirror_list);
        if (sched->timeout != MAX_SCHEDULE_TIMEOUT &&
@@ -488,8 +496,6 @@ void amd_sched_entity_push_job(struct amd_sched_job *sched_job)
        struct amd_sched_entity *entity = sched_job->s_entity;
 
        trace_amd_sched_job(sched_job);
-       dma_fence_add_callback(&sched_job->s_fence->finished, &sched_job->finish_cb,
-                              amd_sched_job_finish_cb);
        wait_event(entity->sched->job_scheduled,
                   amd_sched_entity_in(sched_job));
 }
@@ -600,7 +606,7 @@ static int amd_sched_main(void *param)
                if (!entity)
                        continue;
 
-               sched_job = amd_sched_entity_pop_job(entity);
+               sched_job = amd_sched_entity_peek_job(entity);
                if (!sched_job)
                        continue;
 
@@ -611,6 +617,10 @@ static int amd_sched_main(void *param)
 
                fence = sched->ops->run_job(sched_job);
                amd_sched_fence_scheduled(s_fence);
+
+               /* amd_sched_process_job drops the job's reference of the fence. */
+               sched_job->s_fence = NULL;
+
                if (fence) {
                        s_fence->parent = dma_fence_get(fence);
                        r = dma_fence_add_callback(fence, &s_fence->cb,
index 6f3849e..9555a35 100644 (file)
@@ -713,7 +713,7 @@ static struct drm_encoder *ast_best_single_encoder(struct drm_connector *connect
        int enc_id = connector->encoder_ids[0];
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
index 6a91e62..a24a18f 100644 (file)
@@ -213,7 +213,7 @@ bochs_connector_best_encoder(struct drm_connector *connector)
        int enc_id = connector->encoder_ids[0];
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
index a4c4a46..cd23b1b 100644 (file)
@@ -457,7 +457,7 @@ static struct drm_encoder *cirrus_connector_best_encoder(struct drm_connector
        int enc_id = connector->encoder_ids[0];
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
index 6c9c4a8..5624948 100644 (file)
@@ -715,7 +715,7 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane,
        struct drm_mode_config *config = &dev->mode_config;
 
        if (property == config->prop_fb_id) {
-               struct drm_framebuffer *fb = drm_framebuffer_lookup(dev, val);
+               struct drm_framebuffer *fb = drm_framebuffer_lookup(dev, NULL, val);
                drm_atomic_set_fb_for_plane(state, fb);
                if (fb)
                        drm_framebuffer_put(fb);
@@ -731,7 +731,7 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane,
                        return -EINVAL;
 
        } else if (property == config->prop_crtc_id) {
-               struct drm_crtc *crtc = drm_crtc_find(dev, val);
+               struct drm_crtc *crtc = drm_crtc_find(dev, NULL, val);
                return drm_atomic_set_crtc_for_plane(state, crtc);
        } else if (property == config->prop_crtc_x) {
                state->crtc_x = U642I64(val);
@@ -1146,7 +1146,7 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
        struct drm_mode_config *config = &dev->mode_config;
 
        if (property == config->prop_crtc_id) {
-               struct drm_crtc *crtc = drm_crtc_find(dev, val);
+               struct drm_crtc *crtc = drm_crtc_find(dev, NULL, val);
                return drm_atomic_set_crtc_for_connector(state, crtc);
        } else if (property == config->dpms_property) {
                /* setting DPMS property requires special handling, which
@@ -2256,7 +2256,7 @@ retry:
                        goto out;
                }
 
-               obj = drm_mode_object_find(dev, obj_id, DRM_MODE_OBJECT_ANY);
+               obj = drm_mode_object_find(dev, file_priv, obj_id, DRM_MODE_OBJECT_ANY);
                if (!obj) {
                        ret = -ENOENT;
                        goto out;
index b83bd46..ae56d91 100644 (file)
@@ -3207,7 +3207,7 @@ struct drm_encoder *
 drm_atomic_helper_best_encoder(struct drm_connector *connector)
 {
        WARN_ON(connector->encoder_ids[1]);
-       return drm_encoder_find(connector->dev, connector->encoder_ids[0]);
+       return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]);
 }
 EXPORT_SYMBOL(drm_atomic_helper_best_encoder);
 
index fe09827..0d002b0 100644 (file)
@@ -230,7 +230,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       crtc = drm_crtc_find(dev, crtc_lut->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id);
        if (!crtc)
                return -ENOENT;
 
@@ -308,7 +308,7 @@ int drm_mode_gamma_get_ioctl(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       crtc = drm_crtc_find(dev, crtc_lut->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, crtc_lut->crtc_id);
        if (!crtc)
                return -ENOENT;
 
index d8ca526..704fc89 100644 (file)
@@ -1310,7 +1310,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
 
        memset(&u_mode, 0, sizeof(struct drm_mode_modeinfo));
 
-       connector = drm_connector_lookup(dev, out_resp->connector_id);
+       connector = drm_connector_lookup(dev, file_priv, out_resp->connector_id);
        if (!connector)
                return -ENOENT;
 
index 68b4e97..f0556e6 100644 (file)
@@ -402,7 +402,7 @@ int drm_mode_getcrtc(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       crtc = drm_crtc_find(dev, crtc_resp->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, crtc_resp->crtc_id);
        if (!crtc)
                return -ENOENT;
 
@@ -569,7 +569,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
        if (crtc_req->x & 0xffff0000 || crtc_req->y & 0xffff0000)
                return -ERANGE;
 
-       crtc = drm_crtc_find(dev, crtc_req->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, crtc_req->crtc_id);
        if (!crtc) {
                DRM_DEBUG_KMS("Unknown CRTC ID %d\n", crtc_req->crtc_id);
                return -ENOENT;
@@ -595,7 +595,7 @@ retry:
                        /* Make refcounting symmetric with the lookup path. */
                        drm_framebuffer_get(fb);
                } else {
-                       fb = drm_framebuffer_lookup(dev, crtc_req->fb_id);
+                       fb = drm_framebuffer_lookup(dev, file_priv, crtc_req->fb_id);
                        if (!fb) {
                                DRM_DEBUG_KMS("Unknown FB ID%d\n",
                                                crtc_req->fb_id);
@@ -680,7 +680,7 @@ retry:
                                goto out;
                        }
 
-                       connector = drm_connector_lookup(dev, out_id);
+                       connector = drm_connector_lookup(dev, file_priv, out_id);
                        if (!connector) {
                                DRM_DEBUG_KMS("Connector id %d unknown\n",
                                                out_id);
index a435820..9ebb884 100644 (file)
@@ -106,6 +106,7 @@ int drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj,
 void drm_mode_object_register(struct drm_device *dev,
                              struct drm_mode_object *obj);
 struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev,
+                                              struct drm_file *file_priv,
                                               uint32_t id, uint32_t type);
 void drm_mode_object_unregister(struct drm_device *dev,
                                struct drm_mode_object *object);
index 0708779..43f6448 100644 (file)
@@ -220,7 +220,7 @@ int drm_mode_getencoder(struct drm_device *dev, void *data,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       encoder = drm_encoder_find(dev, enc_resp->encoder_id);
+       encoder = drm_encoder_find(dev, file_priv, enc_resp->encoder_id);
        if (!encoder)
                return -ENOENT;
 
index af27984..2affe53 100644 (file)
@@ -381,7 +381,7 @@ int drm_mode_rmfb(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       fb = drm_framebuffer_lookup(dev, *id);
+       fb = drm_framebuffer_lookup(dev, file_priv, *id);
        if (!fb)
                return -ENOENT;
 
@@ -450,7 +450,7 @@ int drm_mode_getfb(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       fb = drm_framebuffer_lookup(dev, r->fb_id);
+       fb = drm_framebuffer_lookup(dev, file_priv, r->fb_id);
        if (!fb)
                return -ENOENT;
 
@@ -515,7 +515,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       fb = drm_framebuffer_lookup(dev, r->fb_id);
+       fb = drm_framebuffer_lookup(dev, file_priv, r->fb_id);
        if (!fb)
                return -ENOENT;
 
@@ -688,12 +688,13 @@ EXPORT_SYMBOL(drm_framebuffer_init);
  * again, using drm_framebuffer_put().
  */
 struct drm_framebuffer *drm_framebuffer_lookup(struct drm_device *dev,
+                                              struct drm_file *file_priv,
                                               uint32_t id)
 {
        struct drm_mode_object *obj;
        struct drm_framebuffer *fb = NULL;
 
-       obj = __drm_mode_object_find(dev, id, DRM_MODE_OBJECT_FB);
+       obj = __drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_FB);
        if (obj)
                fb = obj_to_fb(obj);
        return fb;
index fbc3f30..edd921a 100644 (file)
@@ -55,7 +55,6 @@ int drm_clients_info(struct seq_file *m, void* data);
 int drm_gem_name_info(struct seq_file *m, void *data);
 
 /* drm_vblank.c */
-extern unsigned int drm_timestamp_monotonic;
 void drm_vblank_disable_and_save(struct drm_device *dev, unsigned int pipe);
 void drm_vblank_cleanup(struct drm_device *dev);
 
index a9ae6dd..a78f031 100644 (file)
@@ -235,7 +235,7 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
        /* Only some caps make sense with UMS/render-only drivers. */
        switch (req->capability) {
        case DRM_CAP_TIMESTAMP_MONOTONIC:
-               req->value = drm_timestamp_monotonic;
+               req->value = 1;
                return 0;
        case DRM_CAP_PRIME:
                req->value |= dev->driver->prime_fd_to_handle ? DRM_PRIME_CAP_IMPORT : 0;
index 7a1ea91..240a05d 100644 (file)
@@ -105,6 +105,7 @@ void drm_mode_object_unregister(struct drm_device *dev,
 }
 
 struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev,
+                                              struct drm_file *file_priv,
                                               uint32_t id, uint32_t type)
 {
        struct drm_mode_object *obj = NULL;
@@ -127,7 +128,7 @@ struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev,
 
 /**
  * drm_mode_object_find - look up a drm object with static lifetime
- * @dev: drm device
+ * @file_priv: drm file
  * @id: id of the mode object
  * @type: type of the mode object
  *
@@ -136,11 +137,12 @@ struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev,
  * by callind drm_mode_object_put().
  */
 struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
+               struct drm_file *file_priv,
                uint32_t id, uint32_t type)
 {
        struct drm_mode_object *obj = NULL;
 
-       obj = __drm_mode_object_find(dev, id, type);
+       obj = __drm_mode_object_find(dev, file_priv, id, type);
        return obj;
 }
 EXPORT_SYMBOL(drm_mode_object_find);
@@ -359,7 +361,7 @@ int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data,
 
        drm_modeset_lock_all(dev);
 
-       obj = drm_mode_object_find(dev, arg->obj_id, arg->obj_type);
+       obj = drm_mode_object_find(dev, file_priv, arg->obj_id, arg->obj_type);
        if (!obj) {
                ret = -ENOENT;
                goto out;
@@ -481,7 +483,7 @@ int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       arg_obj = drm_mode_object_find(dev, arg->obj_id, arg->obj_type);
+       arg_obj = drm_mode_object_find(dev, file_priv, arg->obj_id, arg->obj_type);
        if (!arg_obj)
                return -ENOENT;
 
index 72cba98..6af02c7 100644 (file)
@@ -513,7 +513,7 @@ int drm_mode_getplane(struct drm_device *dev, void *data,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       plane = drm_plane_find(dev, plane_resp->plane_id);
+       plane = drm_plane_find(dev, file_priv, plane_resp->plane_id);
        if (!plane)
                return -ENOENT;
 
@@ -703,7 +703,7 @@ int drm_mode_setplane(struct drm_device *dev, void *data,
         * First, find the plane, crtc, and fb objects.  If not available,
         * we don't bother to call the driver.
         */
-       plane = drm_plane_find(dev, plane_req->plane_id);
+       plane = drm_plane_find(dev, file_priv, plane_req->plane_id);
        if (!plane) {
                DRM_DEBUG_KMS("Unknown plane ID %d\n",
                              plane_req->plane_id);
@@ -711,14 +711,14 @@ int drm_mode_setplane(struct drm_device *dev, void *data,
        }
 
        if (plane_req->fb_id) {
-               fb = drm_framebuffer_lookup(dev, plane_req->fb_id);
+               fb = drm_framebuffer_lookup(dev, file_priv, plane_req->fb_id);
                if (!fb) {
                        DRM_DEBUG_KMS("Unknown framebuffer ID %d\n",
                                      plane_req->fb_id);
                        return -ENOENT;
                }
 
-               crtc = drm_crtc_find(dev, plane_req->crtc_id);
+               crtc = drm_crtc_find(dev, file_priv, plane_req->crtc_id);
                if (!crtc) {
                        drm_framebuffer_put(fb);
                        DRM_DEBUG_KMS("Unknown crtc ID %d\n",
@@ -829,7 +829,7 @@ static int drm_mode_cursor_common(struct drm_device *dev,
        if (!req->flags || (~DRM_MODE_CURSOR_FLAGS & req->flags))
                return -EINVAL;
 
-       crtc = drm_crtc_find(dev, req->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, req->crtc_id);
        if (!crtc) {
                DRM_DEBUG_KMS("Unknown CRTC ID %d\n", req->crtc_id);
                return -ENOENT;
@@ -944,7 +944,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
        if ((page_flip->flags & DRM_MODE_PAGE_FLIP_ASYNC) && !dev->mode_config.async_page_flip)
                return -EINVAL;
 
-       crtc = drm_crtc_find(dev, page_flip->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, page_flip->crtc_id);
        if (!crtc)
                return -ENOENT;
 
@@ -1005,7 +1005,7 @@ retry:
                goto out;
        }
 
-       fb = drm_framebuffer_lookup(dev, page_flip->fb_id);
+       fb = drm_framebuffer_lookup(dev, file_priv, page_flip->fb_id);
        if (!fb) {
                ret = -ENOENT;
                goto out;
index 5840aab..6dc2dde 100644 (file)
@@ -99,7 +99,7 @@ drm_mode_validate_pipeline(struct drm_display_mode *mode,
 
        /* Step 2: Validate against encoders and crtcs */
        for (i = 0; i < DRM_CONNECTOR_MAX_ENCODER; i++) {
-               struct drm_encoder *encoder = drm_encoder_find(dev, ids[i]);
+               struct drm_encoder *encoder = drm_encoder_find(dev, NULL, ids[i]);
                struct drm_crtc *crtc;
 
                if (!encoder)
index bc51282..bae50e6 100644 (file)
@@ -450,7 +450,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
        if (!drm_core_check_feature(dev, DRIVER_MODESET))
                return -EINVAL;
 
-       property = drm_property_find(dev, out_resp->prop_id);
+       property = drm_property_find(dev, file_priv, out_resp->prop_id);
        if (!property)
                return -ENOENT;
 
@@ -634,7 +634,7 @@ struct drm_property_blob *drm_property_lookup_blob(struct drm_device *dev,
        struct drm_mode_object *obj;
        struct drm_property_blob *blob = NULL;
 
-       obj = __drm_mode_object_find(dev, id, DRM_MODE_OBJECT_BLOB);
+       obj = __drm_mode_object_find(dev, NULL, id, DRM_MODE_OBJECT_BLOB);
        if (obj)
                blob = obj_to_blob(obj);
        return blob;
@@ -897,7 +897,7 @@ bool drm_property_change_valid_get(struct drm_property *property,
                if (value == 0)
                        return true;
 
-               *ref = __drm_mode_object_find(property->dev, value,
+               *ref = __drm_mode_object_find(property->dev, NULL, value,
                                              property->values[0]);
                return *ref != NULL;
        }
index 7081ae6..f776fc1 100644 (file)
@@ -262,8 +262,14 @@ void drm_syncobj_free(struct kref *kref)
 }
 EXPORT_SYMBOL(drm_syncobj_free);
 
-static int drm_syncobj_create(struct drm_file *file_private,
-                             u32 *handle, uint32_t flags)
+/**
+ * drm_syncobj_create - create a new syncobj
+ * @out_syncobj: returned syncobj
+ * @flags: DRM_SYNCOBJ_* flags
+ * @fence: if non-NULL, the syncobj will represent this fence
+ */
+int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
+                      struct dma_fence *fence)
 {
        int ret;
        struct drm_syncobj *syncobj;
@@ -284,6 +290,25 @@ static int drm_syncobj_create(struct drm_file *file_private,
                }
        }
 
+       if (fence)
+               drm_syncobj_replace_fence(syncobj, fence);
+
+       *out_syncobj = syncobj;
+       return 0;
+}
+EXPORT_SYMBOL(drm_syncobj_create);
+
+/**
+ * drm_syncobj_get_handle - get a handle from a syncobj
+ */
+int drm_syncobj_get_handle(struct drm_file *file_private,
+                          struct drm_syncobj *syncobj, u32 *handle)
+{
+       int ret;
+
+       /* take a reference to put in the idr */
+       drm_syncobj_get(syncobj);
+
        idr_preload(GFP_KERNEL);
        spin_lock(&file_private->syncobj_table_lock);
        ret = idr_alloc(&file_private->syncobj_idr, syncobj, 1, 0, GFP_NOWAIT);
@@ -299,6 +324,22 @@ static int drm_syncobj_create(struct drm_file *file_private,
        *handle = ret;
        return 0;
 }
+EXPORT_SYMBOL(drm_syncobj_get_handle);
+
+static int drm_syncobj_create_as_handle(struct drm_file *file_private,
+                                       u32 *handle, uint32_t flags)
+{
+       int ret;
+       struct drm_syncobj *syncobj;
+
+       ret = drm_syncobj_create(&syncobj, flags, NULL);
+       if (ret)
+               return ret;
+
+       ret = drm_syncobj_get_handle(file_private, syncobj, handle);
+       drm_syncobj_put(syncobj);
+       return ret;
+}
 
 static int drm_syncobj_destroy(struct drm_file *file_private,
                               u32 handle)
@@ -345,33 +386,38 @@ static int drm_syncobj_alloc_file(struct drm_syncobj *syncobj)
        return 0;
 }
 
-static int drm_syncobj_handle_to_fd(struct drm_file *file_private,
-                                   u32 handle, int *p_fd)
+int drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd)
 {
-       struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle);
        int ret;
        int fd;
 
-       if (!syncobj)
-               return -EINVAL;
-
        fd = get_unused_fd_flags(O_CLOEXEC);
-       if (fd < 0) {
-               drm_syncobj_put(syncobj);
+       if (fd < 0)
                return fd;
-       }
 
        if (!syncobj->file) {
                ret = drm_syncobj_alloc_file(syncobj);
-               if (ret)
-                       goto out_put_fd;
+               if (ret) {
+                       put_unused_fd(fd);
+                       return ret;
+               }
        }
        fd_install(fd, syncobj->file);
-       drm_syncobj_put(syncobj);
        *p_fd = fd;
        return 0;
-out_put_fd:
-       put_unused_fd(fd);
+}
+EXPORT_SYMBOL(drm_syncobj_get_fd);
+
+static int drm_syncobj_handle_to_fd(struct drm_file *file_private,
+                                   u32 handle, int *p_fd)
+{
+       struct drm_syncobj *syncobj = drm_syncobj_find(file_private, handle);
+       int ret;
+
+       if (!syncobj)
+               return -EINVAL;
+
+       ret = drm_syncobj_get_fd(syncobj, p_fd);
        drm_syncobj_put(syncobj);
        return ret;
 }
@@ -522,8 +568,8 @@ drm_syncobj_create_ioctl(struct drm_device *dev, void *data,
        if (args->flags & ~DRM_SYNCOBJ_CREATE_SIGNALED)
                return -EINVAL;
 
-       return drm_syncobj_create(file_private,
-                                 &args->handle, args->flags);
+       return drm_syncobj_create_as_handle(file_private,
+                                           &args->handle, args->flags);
 }
 
 int
index f14e6c9..3af6c20 100644 (file)
 
 static bool
 drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
-                         struct timeval *tvblank, bool in_vblank_irq);
+                         ktime_t *tvblank, bool in_vblank_irq);
 
 static unsigned int drm_timestamp_precision = 20;  /* Default to 20 usecs. */
 
-/*
- * Default to use monotonic timestamps for wait-for-vblank and page-flip
- * complete events.
- */
-unsigned int drm_timestamp_monotonic = 1;
-
 static int drm_vblank_offdelay = 5000;    /* Default to 5000 msecs. */
 
 module_param_named(vblankoffdelay, drm_vblank_offdelay, int, 0600);
 module_param_named(timestamp_precision_usec, drm_timestamp_precision, int, 0600);
-module_param_named(timestamp_monotonic, drm_timestamp_monotonic, int, 0600);
 MODULE_PARM_DESC(vblankoffdelay, "Delay until vblank irq auto-disable [msecs] (0: never disable, <0: disable immediately)");
 MODULE_PARM_DESC(timestamp_precision_usec, "Max. error on timestamps [usecs]");
-MODULE_PARM_DESC(timestamp_monotonic, "Use monotonic timestamps");
 
 static void store_vblank(struct drm_device *dev, unsigned int pipe,
                         u32 vblank_count_inc,
-                        struct timeval *t_vblank, u32 last)
+                        ktime_t t_vblank, u32 last)
 {
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
 
@@ -108,7 +100,7 @@ static void store_vblank(struct drm_device *dev, unsigned int pipe,
        vblank->last = last;
 
        write_seqlock(&vblank->seqlock);
-       vblank->time = *t_vblank;
+       vblank->time = t_vblank;
        vblank->count += vblank_count_inc;
        write_sequnlock(&vblank->seqlock);
 }
@@ -151,7 +143,7 @@ static void drm_reset_vblank_timestamp(struct drm_device *dev, unsigned int pipe
 {
        u32 cur_vblank;
        bool rc;
-       struct timeval t_vblank;
+       ktime_t t_vblank;
        int count = DRM_TIMESTAMP_MAXRETRIES;
 
        spin_lock(&dev->vblank_time_lock);
@@ -171,13 +163,13 @@ static void drm_reset_vblank_timestamp(struct drm_device *dev, unsigned int pipe
         * interrupt and assign 0 for now, to mark the vblanktimestamp as invalid.
         */
        if (!rc)
-               t_vblank = (struct timeval) {0, 0};
+               t_vblank = 0;
 
        /*
         * +1 to make sure user will never see the same
         * vblank counter value before and after a modeset
         */
-       store_vblank(dev, pipe, 1, &t_vblank, cur_vblank);
+       store_vblank(dev, pipe, 1, t_vblank, cur_vblank);
 
        spin_unlock(&dev->vblank_time_lock);
 }
@@ -200,7 +192,7 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
        u32 cur_vblank, diff;
        bool rc;
-       struct timeval t_vblank;
+       ktime_t t_vblank;
        int count = DRM_TIMESTAMP_MAXRETRIES;
        int framedur_ns = vblank->framedur_ns;
 
@@ -225,11 +217,7 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
                /* trust the hw counter when it's around */
                diff = (cur_vblank - vblank->last) & dev->max_vblank_count;
        } else if (rc && framedur_ns) {
-               const struct timeval *t_old;
-               u64 diff_ns;
-
-               t_old = &vblank->time;
-               diff_ns = timeval_to_ns(&t_vblank) - timeval_to_ns(t_old);
+               u64 diff_ns = ktime_to_ns(ktime_sub(t_vblank, vblank->time));
 
                /*
                 * Figure out how many vblanks we've missed based
@@ -278,9 +266,9 @@ static void drm_update_vblank_count(struct drm_device *dev, unsigned int pipe,
         * for now, to mark the vblanktimestamp as invalid.
         */
        if (!rc && !in_vblank_irq)
-               t_vblank = (struct timeval) {0, 0};
+               t_vblank = 0;
 
-       store_vblank(dev, pipe, diff, &t_vblank, cur_vblank);
+       store_vblank(dev, pipe, diff, t_vblank, cur_vblank);
 }
 
 static u32 drm_vblank_count(struct drm_device *dev, unsigned int pipe)
@@ -556,7 +544,7 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
  * @pipe: index of CRTC whose vblank timestamp to retrieve
  * @max_error: Desired maximum allowable error in timestamps (nanosecs)
  *             On return contains true maximum error of timestamp
- * @vblank_time: Pointer to struct timeval which should receive the timestamp
+ * @vblank_time: Pointer to time which should receive the timestamp
  * @in_vblank_irq:
  *     True when called from drm_crtc_handle_vblank().  Some drivers
  *     need to apply some workarounds for gpu-specific vblank irq quirks
@@ -584,10 +572,10 @@ EXPORT_SYMBOL(drm_calc_timestamping_constants);
 bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
                                           unsigned int pipe,
                                           int *max_error,
-                                          struct timeval *vblank_time,
+                                          ktime_t *vblank_time,
                                           bool in_vblank_irq)
 {
-       struct timeval tv_etime;
+       struct timespec64 ts_etime, ts_vblank_time;
        ktime_t stime, etime;
        bool vbl_status;
        struct drm_crtc *crtc;
@@ -676,41 +664,31 @@ bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
        delta_ns = div_s64(1000000LL * (vpos * mode->crtc_htotal + hpos),
                           mode->crtc_clock);
 
-       if (!drm_timestamp_monotonic)
-               etime = ktime_mono_to_real(etime);
-
        /* save this only for debugging purposes */
-       tv_etime = ktime_to_timeval(etime);
+       ts_etime = ktime_to_timespec64(etime);
+       ts_vblank_time = ktime_to_timespec64(*vblank_time);
        /* Subtract time delta from raw timestamp to get final
         * vblank_time timestamp for end of vblank.
         */
        etime = ktime_sub_ns(etime, delta_ns);
-       *vblank_time = ktime_to_timeval(etime);
+       *vblank_time = etime;
 
-       DRM_DEBUG_VBL("crtc %u : v p(%d,%d)@ %ld.%ld -> %ld.%ld [e %d us, %d rep]\n",
+       DRM_DEBUG_VBL("crtc %u : v p(%d,%d)@ %lld.%06ld -> %lld.%06ld [e %d us, %d rep]\n",
                      pipe, hpos, vpos,
-                     (long)tv_etime.tv_sec, (long)tv_etime.tv_usec,
-                     (long)vblank_time->tv_sec, (long)vblank_time->tv_usec,
-                     duration_ns/1000, i);
+                     (u64)ts_etime.tv_sec, ts_etime.tv_nsec / 1000,
+                     (u64)ts_vblank_time.tv_sec, ts_vblank_time.tv_nsec / 1000,
+                     duration_ns / 1000, i);
 
        return true;
 }
 EXPORT_SYMBOL(drm_calc_vbltimestamp_from_scanoutpos);
 
-static struct timeval get_drm_timestamp(void)
-{
-       ktime_t now;
-
-       now = drm_timestamp_monotonic ? ktime_get() : ktime_get_real();
-       return ktime_to_timeval(now);
-}
-
 /**
  * drm_get_last_vbltimestamp - retrieve raw timestamp for the most recent
  *                             vblank interval
  * @dev: DRM device
  * @pipe: index of CRTC whose vblank timestamp to retrieve
- * @tvblank: Pointer to target struct timeval which should receive the timestamp
+ * @tvblank: Pointer to target time which should receive the timestamp
  * @in_vblank_irq:
  *     True when called from drm_crtc_handle_vblank().  Some drivers
  *     need to apply some workarounds for gpu-specific vblank irq quirks
@@ -728,7 +706,7 @@ static struct timeval get_drm_timestamp(void)
  */
 static bool
 drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
-                         struct timeval *tvblank, bool in_vblank_irq)
+                         ktime_t *tvblank, bool in_vblank_irq)
 {
        bool ret = false;
 
@@ -744,7 +722,7 @@ drm_get_last_vbltimestamp(struct drm_device *dev, unsigned int pipe,
         * Return current monotonic/gettimeofday timestamp as best estimate.
         */
        if (!ret)
-               *tvblank = get_drm_timestamp();
+               *tvblank = ktime_get();
 
        return ret;
 }
@@ -769,14 +747,14 @@ u32 drm_crtc_vblank_count(struct drm_crtc *crtc)
 EXPORT_SYMBOL(drm_crtc_vblank_count);
 
 static u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
-                                    struct timeval *vblanktime)
+                                    ktime_t *vblanktime)
 {
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
        u32 vblank_count;
        unsigned int seq;
 
        if (WARN_ON(pipe >= dev->num_crtcs)) {
-               *vblanktime = (struct timeval) { 0 };
+               *vblanktime = 0;
                return 0;
        }
 
@@ -793,7 +771,7 @@ static u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
  * drm_crtc_vblank_count_and_time - retrieve "cooked" vblank counter value
  *     and the system timestamp corresponding to that vblank counter value
  * @crtc: which counter to retrieve
- * @vblanktime: Pointer to struct timeval to receive the vblank timestamp.
+ * @vblanktime: Pointer to time to receive the vblank timestamp.
  *
  * Fetches the "cooked" vblank count value that represents the number of
  * vblank events since the system was booted, including lost events due to
@@ -801,7 +779,7 @@ static u32 drm_vblank_count_and_time(struct drm_device *dev, unsigned int pipe,
  * of the vblank interval that corresponds to the current vblank counter value.
  */
 u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
-                                  struct timeval *vblanktime)
+                                  ktime_t *vblanktime)
 {
        return drm_vblank_count_and_time(crtc->dev, drm_crtc_index(crtc),
                                         vblanktime);
@@ -810,11 +788,18 @@ EXPORT_SYMBOL(drm_crtc_vblank_count_and_time);
 
 static void send_vblank_event(struct drm_device *dev,
                struct drm_pending_vblank_event *e,
-               unsigned long seq, struct timeval *now)
+               unsigned long seq, ktime_t now)
 {
+       struct timespec64 tv = ktime_to_timespec64(now);
+
        e->event.sequence = seq;
-       e->event.tv_sec = now->tv_sec;
-       e->event.tv_usec = now->tv_usec;
+       /*
+        * e->event is a user space structure, with hardcoded unsigned
+        * 32-bit seconds/microseconds. This is safe as we always use
+        * monotonic timestamps since linux-4.15
+        */
+       e->event.tv_sec = tv.tv_sec;
+       e->event.tv_usec = tv.tv_nsec / 1000;
 
        trace_drm_vblank_event_delivered(e->base.file_priv, e->pipe,
                                         e->event.sequence);
@@ -891,18 +876,18 @@ void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
 {
        struct drm_device *dev = crtc->dev;
        unsigned int seq, pipe = drm_crtc_index(crtc);
-       struct timeval now;
+       ktime_t now;
 
        if (dev->num_crtcs > 0) {
                seq = drm_vblank_count_and_time(dev, pipe, &now);
        } else {
                seq = 0;
 
-               now = get_drm_timestamp();
+               now = ktime_get();
        }
        e->pipe = pipe;
        e->event.crtc_id = crtc->base.id;
-       send_vblank_event(dev, e, seq, &now);
+       send_vblank_event(dev, e, seq, now);
 }
 EXPORT_SYMBOL(drm_crtc_send_vblank_event);
 
@@ -1100,7 +1085,8 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
        unsigned int pipe = drm_crtc_index(crtc);
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
        struct drm_pending_vblank_event *e, *t;
-       struct timeval now;
+
+       ktime_t now;
        unsigned long irqflags;
        unsigned int seq;
 
@@ -1141,7 +1127,7 @@ void drm_crtc_vblank_off(struct drm_crtc *crtc)
                          e->event.sequence, seq);
                list_del(&e->base.link);
                drm_vblank_put(dev, pipe);
-               send_vblank_event(dev, e, seq, &now);
+               send_vblank_event(dev, e, seq, now);
        }
        spin_unlock_irqrestore(&dev->event_lock, irqflags);
 
@@ -1321,7 +1307,7 @@ static int drm_queue_vblank_event(struct drm_device *dev, unsigned int pipe,
 {
        struct drm_vblank_crtc *vblank = &dev->vblank[pipe];
        struct drm_pending_vblank_event *e;
-       struct timeval now;
+       ktime_t now;
        unsigned long flags;
        unsigned int seq;
        int ret;
@@ -1367,7 +1353,7 @@ static int drm_queue_vblank_event(struct drm_device *dev, unsigned int pipe,
        e->event.sequence = vblwait->request.sequence;
        if (vblank_passed(seq, vblwait->request.sequence)) {
                drm_vblank_put(dev, pipe);
-               send_vblank_event(dev, e, seq, &now);
+               send_vblank_event(dev, e, seq, now);
                vblwait->reply.sequence = seq;
        } else {
                /* drm_handle_vblank_events will call drm_vblank_put */
@@ -1398,6 +1384,23 @@ static bool drm_wait_vblank_is_query(union drm_wait_vblank *vblwait)
                                          _DRM_VBLANK_NEXTONMISS));
 }
 
+static void drm_wait_vblank_reply(struct drm_device *dev, unsigned int pipe,
+                                 struct drm_wait_vblank_reply *reply)
+{
+       ktime_t now;
+       struct timespec64 ts;
+
+       /*
+        * drm_wait_vblank_reply is a UAPI structure that uses 'long'
+        * to store the seconds. This is safe as we always use monotonic
+        * timestamps since linux-4.15.
+        */
+       reply->sequence = drm_vblank_count_and_time(dev, pipe, &now);
+       ts = ktime_to_timespec64(now);
+       reply->tval_sec = (u32)ts.tv_sec;
+       reply->tval_usec = ts.tv_nsec / 1000;
+}
+
 int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
                          struct drm_file *file_priv)
 {
@@ -1439,12 +1442,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
        if (dev->vblank_disable_immediate &&
            drm_wait_vblank_is_query(vblwait) &&
            READ_ONCE(vblank->enabled)) {
-               struct timeval now;
-
-               vblwait->reply.sequence =
-                       drm_vblank_count_and_time(dev, pipe, &now);
-               vblwait->reply.tval_sec = now.tv_sec;
-               vblwait->reply.tval_usec = now.tv_usec;
+               drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
                return 0;
        }
 
@@ -1487,11 +1485,7 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
        }
 
        if (ret != -EINTR) {
-               struct timeval now;
-
-               vblwait->reply.sequence = drm_vblank_count_and_time(dev, pipe, &now);
-               vblwait->reply.tval_sec = now.tv_sec;
-               vblwait->reply.tval_usec = now.tv_usec;
+               drm_wait_vblank_reply(dev, pipe, &vblwait->reply);
 
                DRM_DEBUG("crtc %d returning %u to client\n",
                          pipe, vblwait->reply.sequence);
@@ -1507,7 +1501,7 @@ done:
 static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
 {
        struct drm_pending_vblank_event *e, *t;
-       struct timeval now;
+       ktime_t now;
        unsigned int seq;
 
        assert_spin_locked(&dev->event_lock);
@@ -1525,7 +1519,7 @@ static void drm_handle_vblank_events(struct drm_device *dev, unsigned int pipe)
 
                list_del(&e->base.link);
                drm_vblank_put(dev, pipe);
-               send_vblank_event(dev, e, seq, &now);
+               send_vblank_event(dev, e, seq, now);
        }
 
        trace_drm_vblank_event(pipe, seq);
index 38b477b..a29b8f5 100644 (file)
@@ -7,8 +7,6 @@ config DRM_ETNAVIV
        select SHMEM
        select SYNC_FILE
        select TMPFS
-       select IOMMU_API
-       select IOMMU_SUPPORT
        select WANT_DEV_COREDUMP
        select CMA if HAVE_DMA_CONTIGUOUS
        select DMA_CMA if HAVE_DMA_CONTIGUOUS
index 4f76c99..15c3bfa 100644 (file)
@@ -10,6 +10,7 @@ etnaviv-y := \
        etnaviv_gpu.o \
        etnaviv_iommu_v2.o \
        etnaviv_iommu.o \
-       etnaviv_mmu.o
+       etnaviv_mmu.o \
+       etnaviv_perfmon.o
 
 obj-$(CONFIG_DRM_ETNAVIV)      += etnaviv.o
index ed9588f..9e7098e 100644 (file)
@@ -250,6 +250,42 @@ void etnaviv_buffer_end(struct etnaviv_gpu *gpu)
        }
 }
 
+/* Append a 'sync point' to the ring buffer. */
+void etnaviv_sync_point_queue(struct etnaviv_gpu *gpu, unsigned int event)
+{
+       struct etnaviv_cmdbuf *buffer = gpu->buffer;
+       unsigned int waitlink_offset = buffer->user_size - 16;
+       u32 dwords, target;
+
+       /*
+        * We need at most 3 dwords in the return target:
+        * 1 event + 1 end + 1 wait + 1 link.
+        */
+       dwords = 4;
+       target = etnaviv_buffer_reserve(gpu, buffer, dwords);
+
+       /* Signal sync point event */
+       CMD_LOAD_STATE(buffer, VIVS_GL_EVENT, VIVS_GL_EVENT_EVENT_ID(event) |
+                      VIVS_GL_EVENT_FROM_PE);
+
+       /* Stop the FE to 'pause' the GPU */
+       CMD_END(buffer);
+
+       /* Append waitlink */
+       CMD_WAIT(buffer);
+       CMD_LINK(buffer, 2, etnaviv_cmdbuf_get_va(buffer) +
+                           buffer->user_size - 4);
+
+       /*
+        * Kick off the 'sync point' command by replacing the previous
+        * WAIT with a link to the address in the ring buffer.
+        */
+       etnaviv_buffer_replace_wait(buffer, waitlink_offset,
+                                   VIV_FE_LINK_HEADER_OP_LINK |
+                                   VIV_FE_LINK_HEADER_PREFETCH(dwords),
+                                   target);
+}
+
 /* Append a command buffer to the ring buffer. */
 void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, unsigned int event,
        struct etnaviv_cmdbuf *cmdbuf)
index 633e0f0..66ac795 100644 (file)
@@ -19,6 +19,7 @@
 #include "etnaviv_cmdbuf.h"
 #include "etnaviv_gpu.h"
 #include "etnaviv_mmu.h"
+#include "etnaviv_perfmon.h"
 
 #define SUBALLOC_SIZE          SZ_256K
 #define SUBALLOC_GRANULE       SZ_4K
@@ -87,9 +88,10 @@ void etnaviv_cmdbuf_suballoc_destroy(struct etnaviv_cmdbuf_suballoc *suballoc)
 
 struct etnaviv_cmdbuf *
 etnaviv_cmdbuf_new(struct etnaviv_cmdbuf_suballoc *suballoc, u32 size,
-                  size_t nr_bos)
+                  size_t nr_bos, size_t nr_pmrs)
 {
        struct etnaviv_cmdbuf *cmdbuf;
+       struct etnaviv_perfmon_request *pmrs;
        size_t sz = size_vstruct(nr_bos, sizeof(cmdbuf->bo_map[0]),
                                 sizeof(*cmdbuf));
        int granule_offs, order, ret;
@@ -98,6 +100,12 @@ etnaviv_cmdbuf_new(struct etnaviv_cmdbuf_suballoc *suballoc, u32 size,
        if (!cmdbuf)
                return NULL;
 
+       sz = sizeof(*pmrs) * nr_pmrs;
+       pmrs = kzalloc(sz, GFP_KERNEL);
+       if (!pmrs)
+               goto out_free_cmdbuf;
+
+       cmdbuf->pmrs = pmrs;
        cmdbuf->suballoc = suballoc;
        cmdbuf->size = size;
 
@@ -124,6 +132,10 @@ retry:
        cmdbuf->vaddr = suballoc->vaddr + cmdbuf->suballoc_offset;
 
        return cmdbuf;
+
+out_free_cmdbuf:
+       kfree(cmdbuf);
+       return NULL;
 }
 
 void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf)
@@ -139,6 +151,7 @@ void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf)
        suballoc->free_space = 1;
        mutex_unlock(&suballoc->lock);
        wake_up_all(&suballoc->free_event);
+       kfree(cmdbuf->pmrs);
        kfree(cmdbuf);
 }
 
index 80d7807..b6348b9 100644 (file)
@@ -21,6 +21,7 @@
 
 struct etnaviv_gpu;
 struct etnaviv_cmdbuf_suballoc;
+struct etnaviv_perfmon_request;
 
 struct etnaviv_cmdbuf {
        /* suballocator this cmdbuf is allocated from */
@@ -38,6 +39,9 @@ struct etnaviv_cmdbuf {
        u32 exec_state;
        /* per GPU in-flight list */
        struct list_head node;
+       /* perfmon requests */
+       unsigned int nr_pmrs;
+       struct etnaviv_perfmon_request *pmrs;
        /* BOs attached to this command buffer */
        unsigned int nr_bos;
        struct etnaviv_vram_mapping *bo_map[0];
@@ -49,7 +53,7 @@ void etnaviv_cmdbuf_suballoc_destroy(struct etnaviv_cmdbuf_suballoc *suballoc);
 
 struct etnaviv_cmdbuf *
 etnaviv_cmdbuf_new(struct etnaviv_cmdbuf_suballoc *suballoc, u32 size,
-                  size_t nr_bos);
+                  size_t nr_bos, size_t nr_pmrs);
 void etnaviv_cmdbuf_free(struct etnaviv_cmdbuf *cmdbuf);
 
 u32 etnaviv_cmdbuf_get_va(struct etnaviv_cmdbuf *buf);
index 2cb4773..3fadb8d 100644 (file)
@@ -23,6 +23,7 @@
 #include "etnaviv_gpu.h"
 #include "etnaviv_gem.h"
 #include "etnaviv_mmu.h"
+#include "etnaviv_perfmon.h"
 
 #ifdef CONFIG_DRM_ETNAVIV_REGISTER_LOGGING
 static bool reglog;
@@ -451,6 +452,40 @@ static int etnaviv_ioctl_gem_wait(struct drm_device *dev, void *data,
        return ret;
 }
 
+static int etnaviv_ioctl_pm_query_dom(struct drm_device *dev, void *data,
+       struct drm_file *file)
+{
+       struct etnaviv_drm_private *priv = dev->dev_private;
+       struct drm_etnaviv_pm_domain *args = data;
+       struct etnaviv_gpu *gpu;
+
+       if (args->pipe >= ETNA_MAX_PIPES)
+               return -EINVAL;
+
+       gpu = priv->gpu[args->pipe];
+       if (!gpu)
+               return -ENXIO;
+
+       return etnaviv_pm_query_dom(gpu, args);
+}
+
+static int etnaviv_ioctl_pm_query_sig(struct drm_device *dev, void *data,
+       struct drm_file *file)
+{
+       struct etnaviv_drm_private *priv = dev->dev_private;
+       struct drm_etnaviv_pm_signal *args = data;
+       struct etnaviv_gpu *gpu;
+
+       if (args->pipe >= ETNA_MAX_PIPES)
+               return -EINVAL;
+
+       gpu = priv->gpu[args->pipe];
+       if (!gpu)
+               return -ENXIO;
+
+       return etnaviv_pm_query_sig(gpu, args);
+}
+
 static const struct drm_ioctl_desc etnaviv_ioctls[] = {
 #define ETNA_IOCTL(n, func, flags) \
        DRM_IOCTL_DEF_DRV(ETNAVIV_##n, etnaviv_ioctl_##func, flags)
@@ -463,6 +498,8 @@ static const struct drm_ioctl_desc etnaviv_ioctls[] = {
        ETNA_IOCTL(WAIT_FENCE,   wait_fence,   DRM_AUTH|DRM_RENDER_ALLOW),
        ETNA_IOCTL(GEM_USERPTR,  gem_userptr,  DRM_AUTH|DRM_RENDER_ALLOW),
        ETNA_IOCTL(GEM_WAIT,     gem_wait,     DRM_AUTH|DRM_RENDER_ALLOW),
+       ETNA_IOCTL(PM_QUERY_DOM, pm_query_dom, DRM_AUTH|DRM_RENDER_ALLOW),
+       ETNA_IOCTL(PM_QUERY_SIG, pm_query_sig, DRM_AUTH|DRM_RENDER_ALLOW),
 };
 
 static const struct vm_operations_struct vm_ops = {
@@ -513,7 +550,7 @@ static struct drm_driver etnaviv_drm_driver = {
        .desc               = "etnaviv DRM",
        .date               = "20151214",
        .major              = 1,
-       .minor              = 1,
+       .minor              = 2,
 };
 
 /*
index 058389f..d249acb 100644 (file)
@@ -26,7 +26,6 @@
 #include <linux/pm_runtime.h>
 #include <linux/slab.h>
 #include <linux/list.h>
-#include <linux/iommu.h>
 #include <linux/types.h>
 #include <linux/sizes.h>
 
@@ -92,15 +91,12 @@ int etnaviv_gem_cpu_fini(struct drm_gem_object *obj);
 void etnaviv_gem_free_object(struct drm_gem_object *obj);
 int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
                u32 size, u32 flags, u32 *handle);
-struct drm_gem_object *etnaviv_gem_new_locked(struct drm_device *dev,
-               u32 size, u32 flags);
-struct drm_gem_object *etnaviv_gem_new(struct drm_device *dev,
-               u32 size, u32 flags);
 int etnaviv_gem_new_userptr(struct drm_device *dev, struct drm_file *file,
        uintptr_t ptr, u32 size, u32 flags, u32 *handle);
 u16 etnaviv_buffer_init(struct etnaviv_gpu *gpu);
 u16 etnaviv_buffer_config_mmuv2(struct etnaviv_gpu *gpu, u32 mtlb_addr, u32 safe_addr);
 void etnaviv_buffer_end(struct etnaviv_gpu *gpu);
+void etnaviv_sync_point_queue(struct etnaviv_gpu *gpu, unsigned int event);
 void etnaviv_buffer_queue(struct etnaviv_gpu *gpu, unsigned int event,
        struct etnaviv_cmdbuf *cmdbuf);
 void etnaviv_validate_init(void);
index 5788116..5884ab6 100644 (file)
@@ -704,25 +704,6 @@ int etnaviv_gem_new_handle(struct drm_device *dev, struct drm_file *file,
        return ret;
 }
 
-struct drm_gem_object *etnaviv_gem_new(struct drm_device *dev,
-               u32 size, u32 flags)
-{
-       struct drm_gem_object *obj;
-       int ret;
-
-       obj = __etnaviv_gem_new(dev, size, flags);
-       if (IS_ERR(obj))
-               return obj;
-
-       ret = etnaviv_gem_obj_add(dev, obj);
-       if (ret < 0) {
-               drm_gem_object_put_unlocked(obj);
-               return ERR_PTR(ret);
-       }
-
-       return obj;
-}
-
 int etnaviv_gem_new_private(struct drm_device *dev, size_t size, u32 flags,
        struct reservation_object *robj, const struct etnaviv_gem_ops *ops,
        struct etnaviv_gem_object **res)
index 46dfe07..ff91154 100644 (file)
@@ -21,6 +21,7 @@
 #include "etnaviv_drv.h"
 #include "etnaviv_gpu.h"
 #include "etnaviv_gem.h"
+#include "etnaviv_perfmon.h"
 
 /*
  * Cmdstream submission:
@@ -283,6 +284,54 @@ static int submit_reloc(struct etnaviv_gem_submit *submit, void *stream,
        return 0;
 }
 
+static int submit_perfmon_validate(struct etnaviv_gem_submit *submit,
+               struct etnaviv_cmdbuf *cmdbuf,
+               const struct drm_etnaviv_gem_submit_pmr *pmrs,
+               u32 nr_pms)
+{
+       u32 i;
+
+       for (i = 0; i < nr_pms; i++) {
+               const struct drm_etnaviv_gem_submit_pmr *r = pmrs + i;
+               struct etnaviv_gem_submit_bo *bo;
+               int ret;
+
+               ret = submit_bo(submit, r->read_idx, &bo);
+               if (ret)
+                       return ret;
+
+               /* at offset 0 a sequence number gets stored used for userspace sync */
+               if (r->read_offset == 0) {
+                       DRM_ERROR("perfmon request: offset is 0");
+                       return -EINVAL;
+               }
+
+               if (r->read_offset >= bo->obj->base.size - sizeof(u32)) {
+                       DRM_ERROR("perfmon request: offset %u outside object", i);
+                       return -EINVAL;
+               }
+
+               if (r->flags & ~(ETNA_PM_PROCESS_PRE | ETNA_PM_PROCESS_POST)) {
+                       DRM_ERROR("perfmon request: flags are not valid");
+                       return -EINVAL;
+               }
+
+               if (etnaviv_pm_req_validate(r, cmdbuf->exec_state)) {
+                       DRM_ERROR("perfmon request: domain or signal not valid");
+                       return -EINVAL;
+               }
+
+               cmdbuf->pmrs[i].flags = r->flags;
+               cmdbuf->pmrs[i].domain = r->domain;
+               cmdbuf->pmrs[i].signal = r->signal;
+               cmdbuf->pmrs[i].sequence = r->sequence;
+               cmdbuf->pmrs[i].offset = r->read_offset;
+               cmdbuf->pmrs[i].bo_vma = etnaviv_gem_vmap(&bo->obj->base);
+       }
+
+       return 0;
+}
+
 static void submit_cleanup(struct etnaviv_gem_submit *submit)
 {
        unsigned i;
@@ -306,6 +355,7 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
        struct etnaviv_drm_private *priv = dev->dev_private;
        struct drm_etnaviv_gem_submit *args = data;
        struct drm_etnaviv_gem_submit_reloc *relocs;
+       struct drm_etnaviv_gem_submit_pmr *pmrs;
        struct drm_etnaviv_gem_submit_bo *bos;
        struct etnaviv_gem_submit *submit;
        struct etnaviv_cmdbuf *cmdbuf;
@@ -347,11 +397,12 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
         */
        bos = kvmalloc_array(args->nr_bos, sizeof(*bos), GFP_KERNEL);
        relocs = kvmalloc_array(args->nr_relocs, sizeof(*relocs), GFP_KERNEL);
+       pmrs = kvmalloc_array(args->nr_pmrs, sizeof(*pmrs), GFP_KERNEL);
        stream = kvmalloc_array(1, args->stream_size, GFP_KERNEL);
        cmdbuf = etnaviv_cmdbuf_new(gpu->cmdbuf_suballoc,
                                    ALIGN(args->stream_size, 8) + 8,
-                                   args->nr_bos);
-       if (!bos || !relocs || !stream || !cmdbuf) {
+                                   args->nr_bos, args->nr_pmrs);
+       if (!bos || !relocs || !pmrs || !stream || !cmdbuf) {
                ret = -ENOMEM;
                goto err_submit_cmds;
        }
@@ -373,6 +424,14 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
                goto err_submit_cmds;
        }
 
+       ret = copy_from_user(pmrs, u64_to_user_ptr(args->pmrs),
+                            args->nr_pmrs * sizeof(*pmrs));
+       if (ret) {
+               ret = -EFAULT;
+               goto err_submit_cmds;
+       }
+       cmdbuf->nr_pmrs = args->nr_pmrs;
+
        ret = copy_from_user(stream, u64_to_user_ptr(args->stream),
                             args->stream_size);
        if (ret) {
@@ -441,6 +500,10 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void *data,
        if (ret)
                goto out;
 
+       ret = submit_perfmon_validate(submit, cmdbuf, pmrs, args->nr_pmrs);
+       if (ret)
+               goto out;
+
        memcpy(cmdbuf->vaddr, stream, args->stream_size);
        cmdbuf->user_size = ALIGN(args->stream_size, 8);
 
@@ -496,6 +559,8 @@ err_submit_cmds:
                kvfree(bos);
        if (relocs)
                kvfree(relocs);
+       if (pmrs)
+               kvfree(pmrs);
 
        return ret;
 }
index fc9a6a8..8197e1d 100644 (file)
@@ -25,6 +25,7 @@
 #include "etnaviv_gpu.h"
 #include "etnaviv_gem.h"
 #include "etnaviv_mmu.h"
+#include "etnaviv_perfmon.h"
 #include "common.xml.h"
 #include "state.xml.h"
 #include "state_hi.xml.h"
@@ -420,9 +421,10 @@ static void etnaviv_gpu_update_clock(struct etnaviv_gpu *gpu)
                             gpu->base_rate_shader >> gpu->freq_scale);
        } else {
                unsigned int fscale = 1 << (6 - gpu->freq_scale);
-               u32 clock = VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS |
-                           VIVS_HI_CLOCK_CONTROL_FSCALE_VAL(fscale);
+               u32 clock = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL);
 
+               clock &= ~VIVS_HI_CLOCK_CONTROL_FSCALE_VAL__MASK;
+               clock |= VIVS_HI_CLOCK_CONTROL_FSCALE_VAL(fscale);
                etnaviv_gpu_load_clock(gpu, clock);
        }
 }
@@ -433,24 +435,14 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
        unsigned long timeout;
        bool failed = true;
 
-       /* TODO
-        *
-        * - clock gating
-        * - puls eater
-        * - what about VG?
-        */
-
        /* We hope that the GPU resets in under one second */
        timeout = jiffies + msecs_to_jiffies(1000);
 
        while (time_is_after_jiffies(timeout)) {
                /* enable clock */
-               etnaviv_gpu_update_clock(gpu);
-
-               control = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL);
-
-               /* Wait for stable clock.  Vivante's code waited for 1ms */
-               usleep_range(1000, 10000);
+               unsigned int fscale = 1 << (6 - gpu->freq_scale);
+               control = VIVS_HI_CLOCK_CONTROL_FSCALE_VAL(fscale);
+               etnaviv_gpu_load_clock(gpu, control);
 
                /* isolate the GPU. */
                control |= VIVS_HI_CLOCK_CONTROL_ISOLATE_GPU;
@@ -461,7 +453,7 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
                gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, control);
 
                /* wait for reset. */
-               msleep(1);
+               usleep_range(10, 20);
 
                /* reset soft reset bit. */
                control &= ~VIVS_HI_CLOCK_CONTROL_SOFT_RESET;
@@ -490,6 +482,10 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
                        continue;
                }
 
+               /* disable debug registers, as they are not normally needed */
+               control |= VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS;
+               gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, control);
+
                failed = false;
                break;
        }
@@ -721,7 +717,7 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
        }
 
        /* Create buffer: */
-       gpu->buffer = etnaviv_cmdbuf_new(gpu->cmdbuf_suballoc, PAGE_SIZE, 0);
+       gpu->buffer = etnaviv_cmdbuf_new(gpu->cmdbuf_suballoc, PAGE_SIZE, 0, 0);
        if (!gpu->buffer) {
                ret = -ENOMEM;
                dev_err(gpu->dev, "could not create command buffer\n");
@@ -739,10 +735,9 @@ int etnaviv_gpu_init(struct etnaviv_gpu *gpu)
        /* Setup event management */
        spin_lock_init(&gpu->event_spinlock);
        init_completion(&gpu->event_free);
-       for (i = 0; i < ARRAY_SIZE(gpu->event); i++) {
-               gpu->event[i].used = false;
+       bitmap_zero(gpu->event_bitmap, ETNA_NR_EVENTS);
+       for (i = 0; i < ARRAY_SIZE(gpu->event); i++)
                complete(&gpu->event_free);
-       }
 
        /* Now program the hardware */
        mutex_lock(&gpu->lock);
@@ -926,7 +921,7 @@ static void recover_worker(struct work_struct *work)
        struct etnaviv_gpu *gpu = container_of(work, struct etnaviv_gpu,
                                               recover_work);
        unsigned long flags;
-       unsigned int i;
+       unsigned int i = 0;
 
        dev_err(gpu->dev, "hangcheck recover!\n");
 
@@ -945,14 +940,12 @@ static void recover_worker(struct work_struct *work)
 
        /* complete all events, the GPU won't do it after the reset */
        spin_lock_irqsave(&gpu->event_spinlock, flags);
-       for (i = 0; i < ARRAY_SIZE(gpu->event); i++) {
-               if (!gpu->event[i].used)
-                       continue;
+       for_each_set_bit_from(i, gpu->event_bitmap, ETNA_NR_EVENTS) {
                dma_fence_signal(gpu->event[i].fence);
                gpu->event[i].fence = NULL;
-               gpu->event[i].used = false;
                complete(&gpu->event_free);
        }
+       bitmap_zero(gpu->event_bitmap, ETNA_NR_EVENTS);
        spin_unlock_irqrestore(&gpu->event_spinlock, flags);
        gpu->completed_fence = gpu->active_fence;
 
@@ -1140,30 +1133,45 @@ int etnaviv_gpu_fence_sync_obj(struct etnaviv_gem_object *etnaviv_obj,
  * event management:
  */
 
-static unsigned int event_alloc(struct etnaviv_gpu *gpu)
+static int event_alloc(struct etnaviv_gpu *gpu, unsigned nr_events,
+       unsigned int *events)
 {
-       unsigned long ret, flags;
-       unsigned int i, event = ~0U;
+       unsigned long flags, timeout = msecs_to_jiffies(10 * 10000);
+       unsigned i, acquired = 0;
 
-       ret = wait_for_completion_timeout(&gpu->event_free,
-                                         msecs_to_jiffies(10 * 10000));
-       if (!ret)
-               dev_err(gpu->dev, "wait_for_completion_timeout failed");
+       for (i = 0; i < nr_events; i++) {
+               unsigned long ret;
 
-       spin_lock_irqsave(&gpu->event_spinlock, flags);
+               ret = wait_for_completion_timeout(&gpu->event_free, timeout);
 
-       /* find first free event */
-       for (i = 0; i < ARRAY_SIZE(gpu->event); i++) {
-               if (gpu->event[i].used == false) {
-                       gpu->event[i].used = true;
-                       event = i;
-                       break;
+               if (!ret) {
+                       dev_err(gpu->dev, "wait_for_completion_timeout failed");
+                       goto out;
                }
+
+               acquired++;
+               timeout = ret;
+       }
+
+       spin_lock_irqsave(&gpu->event_spinlock, flags);
+
+       for (i = 0; i < nr_events; i++) {
+               int event = find_first_zero_bit(gpu->event_bitmap, ETNA_NR_EVENTS);
+
+               events[i] = event;
+               memset(&gpu->event[event], 0, sizeof(struct etnaviv_event));
+               set_bit(event, gpu->event_bitmap);
        }
 
        spin_unlock_irqrestore(&gpu->event_spinlock, flags);
 
-       return event;
+       return 0;
+
+out:
+       for (i = 0; i < acquired; i++)
+               complete(&gpu->event_free);
+
+       return -EBUSY;
 }
 
 static void event_free(struct etnaviv_gpu *gpu, unsigned int event)
@@ -1172,12 +1180,12 @@ static void event_free(struct etnaviv_gpu *gpu, unsigned int event)
 
        spin_lock_irqsave(&gpu->event_spinlock, flags);
 
-       if (gpu->event[event].used == false) {
+       if (!test_bit(event, gpu->event_bitmap)) {
                dev_warn(gpu->dev, "event %u is already marked as free",
                         event);
                spin_unlock_irqrestore(&gpu->event_spinlock, flags);
        } else {
-               gpu->event[event].used = false;
+               clear_bit(event, gpu->event_bitmap);
                spin_unlock_irqrestore(&gpu->event_spinlock, flags);
 
                complete(&gpu->event_free);
@@ -1311,12 +1319,71 @@ void etnaviv_gpu_pm_put(struct etnaviv_gpu *gpu)
        pm_runtime_put_autosuspend(gpu->dev);
 }
 
+static void sync_point_perfmon_sample(struct etnaviv_gpu *gpu,
+       struct etnaviv_event *event, unsigned int flags)
+{
+       const struct etnaviv_cmdbuf *cmdbuf = event->cmdbuf;
+       unsigned int i;
+
+       for (i = 0; i < cmdbuf->nr_pmrs; i++) {
+               const struct etnaviv_perfmon_request *pmr = cmdbuf->pmrs + i;
+
+               if (pmr->flags == flags)
+                       etnaviv_perfmon_process(gpu, pmr);
+       }
+}
+
+static void sync_point_perfmon_sample_pre(struct etnaviv_gpu *gpu,
+       struct etnaviv_event *event)
+{
+       u32 val;
+
+       /* disable clock gating */
+       val = gpu_read(gpu, VIVS_PM_POWER_CONTROLS);
+       val &= ~VIVS_PM_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING;
+       gpu_write(gpu, VIVS_PM_POWER_CONTROLS, val);
+
+       /* enable debug register */
+       val = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL);
+       val &= ~VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS;
+       gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, val);
+
+       sync_point_perfmon_sample(gpu, event, ETNA_PM_PROCESS_PRE);
+}
+
+static void sync_point_perfmon_sample_post(struct etnaviv_gpu *gpu,
+       struct etnaviv_event *event)
+{
+       const struct etnaviv_cmdbuf *cmdbuf = event->cmdbuf;
+       unsigned int i;
+       u32 val;
+
+       sync_point_perfmon_sample(gpu, event, ETNA_PM_PROCESS_POST);
+
+       for (i = 0; i < cmdbuf->nr_pmrs; i++) {
+               const struct etnaviv_perfmon_request *pmr = cmdbuf->pmrs + i;
+
+               *pmr->bo_vma = pmr->sequence;
+       }
+
+       /* disable debug register */
+       val = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL);
+       val |= VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS;
+       gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, val);
+
+       /* enable clock gating */
+       val = gpu_read(gpu, VIVS_PM_POWER_CONTROLS);
+       val |= VIVS_PM_POWER_CONTROLS_ENABLE_MODULE_CLOCK_GATING;
+       gpu_write(gpu, VIVS_PM_POWER_CONTROLS, val);
+}
+
+
 /* add bo's to gpu's ring, and kick gpu: */
 int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
        struct etnaviv_gem_submit *submit, struct etnaviv_cmdbuf *cmdbuf)
 {
        struct dma_fence *fence;
-       unsigned int event, i;
+       unsigned int i, nr_events = 1, event[3];
        int ret;
 
        ret = etnaviv_gpu_pm_get_sync(gpu);
@@ -1332,10 +1399,19 @@ int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
         *
         */
 
-       event = event_alloc(gpu);
-       if (unlikely(event == ~0U)) {
-               DRM_ERROR("no free event\n");
-               ret = -EBUSY;
+       /*
+        * if there are performance monitor requests we need to have
+        * - a sync point to re-configure gpu and process ETNA_PM_PROCESS_PRE
+        *   requests.
+        * - a sync point to re-configure gpu, process ETNA_PM_PROCESS_POST requests
+        *   and update the sequence number for userspace.
+        */
+       if (cmdbuf->nr_pmrs)
+               nr_events = 3;
+
+       ret = event_alloc(gpu, nr_events, event);
+       if (ret) {
+               DRM_ERROR("no free events\n");
                goto out_pm_put;
        }
 
@@ -1343,12 +1419,14 @@ int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
 
        fence = etnaviv_gpu_fence_alloc(gpu);
        if (!fence) {
-               event_free(gpu, event);
+               for (i = 0; i < nr_events; i++)
+                       event_free(gpu, event[i]);
+
                ret = -ENOMEM;
                goto out_unlock;
        }
 
-       gpu->event[event].fence = fence;
+       gpu->event[event[0]].fence = fence;
        submit->fence = dma_fence_get(fence);
        gpu->active_fence = submit->fence->seqno;
 
@@ -1358,7 +1436,19 @@ int etnaviv_gpu_submit(struct etnaviv_gpu *gpu,
                gpu->lastctx = cmdbuf->ctx;
        }
 
-       etnaviv_buffer_queue(gpu, event, cmdbuf);
+       if (cmdbuf->nr_pmrs) {
+               gpu->event[event[1]].sync_point = &sync_point_perfmon_sample_pre;
+               gpu->event[event[1]].cmdbuf = cmdbuf;
+               etnaviv_sync_point_queue(gpu, event[1]);
+       }
+
+       etnaviv_buffer_queue(gpu, event[0], cmdbuf);
+
+       if (cmdbuf->nr_pmrs) {
+               gpu->event[event[2]].sync_point = &sync_point_perfmon_sample_post;
+               gpu->event[event[2]].cmdbuf = cmdbuf;
+               etnaviv_sync_point_queue(gpu, event[2]);
+       }
 
        cmdbuf->fence = fence;
        list_add_tail(&cmdbuf->node, &gpu->active_cmd_list);
@@ -1394,6 +1484,24 @@ out_pm_put:
        return ret;
 }
 
+static void etnaviv_process_sync_point(struct etnaviv_gpu *gpu,
+       struct etnaviv_event *event)
+{
+       u32 addr = gpu_read(gpu, VIVS_FE_DMA_ADDRESS);
+
+       event->sync_point(gpu, event);
+       etnaviv_gpu_start_fe(gpu, addr + 2, 2);
+}
+
+static void sync_point_worker(struct work_struct *work)
+{
+       struct etnaviv_gpu *gpu = container_of(work, struct etnaviv_gpu,
+                                              sync_point_work);
+
+       etnaviv_process_sync_point(gpu, &gpu->event[gpu->sync_point_event]);
+       event_free(gpu, gpu->sync_point_event);
+}
+
 /*
  * Init/Cleanup:
  */
@@ -1440,7 +1548,15 @@ static irqreturn_t irq_handler(int irq, void *data)
 
                        dev_dbg(gpu->dev, "event %u\n", event);
 
+                       if (gpu->event[event].sync_point) {
+                               gpu->sync_point_event = event;
+                               etnaviv_queue_work(gpu->drm, &gpu->sync_point_work);
+                       }
+
                        fence = gpu->event[event].fence;
+                       if (!fence)
+                               continue;
+
                        gpu->event[event].fence = NULL;
                        dma_fence_signal(fence);
 
@@ -1645,6 +1761,7 @@ static int etnaviv_gpu_bind(struct device *dev, struct device *master,
 
        INIT_LIST_HEAD(&gpu->active_cmd_list);
        INIT_WORK(&gpu->retire_work, retire_worker);
+       INIT_WORK(&gpu->sync_point_work, sync_point_worker);
        INIT_WORK(&gpu->recover_work, recover_worker);
        init_waitqueue_head(&gpu->fence_event);
 
index 689cb8f..4f10f14 100644 (file)
@@ -88,13 +88,17 @@ struct etnaviv_chip_identity {
 };
 
 struct etnaviv_event {
-       bool used;
        struct dma_fence *fence;
+       struct etnaviv_cmdbuf *cmdbuf;
+
+       void (*sync_point)(struct etnaviv_gpu *gpu, struct etnaviv_event *event);
 };
 
 struct etnaviv_cmdbuf_suballoc;
 struct etnaviv_cmdbuf;
 
+#define ETNA_NR_EVENTS 30
+
 struct etnaviv_gpu {
        struct drm_device *drm;
        struct thermal_cooling_device *cooling;
@@ -112,7 +116,8 @@ struct etnaviv_gpu {
        u32 memory_base;
 
        /* event management: */
-       struct etnaviv_event event[30];
+       DECLARE_BITMAP(event_bitmap, ETNA_NR_EVENTS);
+       struct etnaviv_event event[ETNA_NR_EVENTS];
        struct completion event_free;
        spinlock_t event_spinlock;
 
@@ -133,6 +138,10 @@ struct etnaviv_gpu {
        /* worker for handling active-list retiring: */
        struct work_struct retire_work;
 
+       /* worker for handling 'sync' points: */
+       struct work_struct sync_point_work;
+       int sync_point_event;
+
        void __iomem *mmio;
        int irq;
 
index 7a7c97f..14e24ac 100644 (file)
@@ -14,7 +14,6 @@
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <linux/iommu.h>
 #include <linux/platform_device.h>
 #include <linux/sizes.h>
 #include <linux/slab.h>
 
 #define GPU_MEM_START  0x80000000
 
-struct etnaviv_iommu_domain_pgtable {
-       u32 *pgtable;
-       dma_addr_t paddr;
+struct etnaviv_iommuv1_domain {
+       struct etnaviv_iommu_domain base;
+       u32 *pgtable_cpu;
+       dma_addr_t pgtable_dma;
 };
 
-struct etnaviv_iommu_domain {
-       struct iommu_domain domain;
-       struct device *dev;
-       void *bad_page_cpu;
-       dma_addr_t bad_page_dma;
-       struct etnaviv_iommu_domain_pgtable pgtable;
-       spinlock_t map_lock;
-};
-
-static struct etnaviv_iommu_domain *to_etnaviv_domain(struct iommu_domain *domain)
-{
-       return container_of(domain, struct etnaviv_iommu_domain, domain);
-}
-
-static int pgtable_alloc(struct etnaviv_iommu_domain_pgtable *pgtable,
-                        size_t size)
-{
-       pgtable->pgtable = dma_alloc_coherent(NULL, size, &pgtable->paddr, GFP_KERNEL);
-       if (!pgtable->pgtable)
-               return -ENOMEM;
-
-       return 0;
-}
-
-static void pgtable_free(struct etnaviv_iommu_domain_pgtable *pgtable,
-                        size_t size)
+static struct etnaviv_iommuv1_domain *
+to_etnaviv_domain(struct etnaviv_iommu_domain *domain)
 {
-       dma_free_coherent(NULL, size, pgtable->pgtable, pgtable->paddr);
-}
-
-static u32 pgtable_read(struct etnaviv_iommu_domain_pgtable *pgtable,
-                          unsigned long iova)
-{
-       /* calcuate index into page table */
-       unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
-       phys_addr_t paddr;
-
-       paddr = pgtable->pgtable[index];
-
-       return paddr;
+       return container_of(domain, struct etnaviv_iommuv1_domain, base);
 }
 
-static void pgtable_write(struct etnaviv_iommu_domain_pgtable *pgtable,
-                         unsigned long iova, phys_addr_t paddr)
-{
-       /* calcuate index into page table */
-       unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
-
-       pgtable->pgtable[index] = paddr;
-}
-
-static int __etnaviv_iommu_init(struct etnaviv_iommu_domain *etnaviv_domain)
+static int __etnaviv_iommu_init(struct etnaviv_iommuv1_domain *etnaviv_domain)
 {
        u32 *p;
-       int ret, i;
-
-       etnaviv_domain->bad_page_cpu = dma_alloc_coherent(etnaviv_domain->dev,
-                                                 SZ_4K,
-                                                 &etnaviv_domain->bad_page_dma,
-                                                 GFP_KERNEL);
-       if (!etnaviv_domain->bad_page_cpu)
+       int i;
+
+       etnaviv_domain->base.bad_page_cpu = dma_alloc_coherent(
+                                               etnaviv_domain->base.dev,
+                                               SZ_4K,
+                                               &etnaviv_domain->base.bad_page_dma,
+                                               GFP_KERNEL);
+       if (!etnaviv_domain->base.bad_page_cpu)
                return -ENOMEM;
 
-       p = etnaviv_domain->bad_page_cpu;
+       p = etnaviv_domain->base.bad_page_cpu;
        for (i = 0; i < SZ_4K / 4; i++)
                *p++ = 0xdead55aa;
 
-       ret = pgtable_alloc(&etnaviv_domain->pgtable, PT_SIZE);
-       if (ret < 0) {
-               dma_free_coherent(etnaviv_domain->dev, SZ_4K,
-                                 etnaviv_domain->bad_page_cpu,
-                                 etnaviv_domain->bad_page_dma);
-               return ret;
+       etnaviv_domain->pgtable_cpu =
+                       dma_alloc_coherent(etnaviv_domain->base.dev, PT_SIZE,
+                                          &etnaviv_domain->pgtable_dma,
+                                          GFP_KERNEL);
+       if (!etnaviv_domain->pgtable_cpu) {
+               dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
+                                 etnaviv_domain->base.bad_page_cpu,
+                                 etnaviv_domain->base.bad_page_dma);
+               return -ENOMEM;
        }
 
        for (i = 0; i < PT_ENTRIES; i++)
-               etnaviv_domain->pgtable.pgtable[i] =
-                       etnaviv_domain->bad_page_dma;
-
-       spin_lock_init(&etnaviv_domain->map_lock);
+               etnaviv_domain->pgtable_cpu[i] =
+                               etnaviv_domain->base.bad_page_dma;
 
        return 0;
 }
 
-static void etnaviv_domain_free(struct iommu_domain *domain)
+static void etnaviv_iommuv1_domain_free(struct etnaviv_iommu_domain *domain)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain = to_etnaviv_domain(domain);
+       struct etnaviv_iommuv1_domain *etnaviv_domain =
+                       to_etnaviv_domain(domain);
 
-       pgtable_free(&etnaviv_domain->pgtable, PT_SIZE);
+       dma_free_coherent(etnaviv_domain->base.dev, PT_SIZE,
+                         etnaviv_domain->pgtable_cpu,
+                         etnaviv_domain->pgtable_dma);
 
-       dma_free_coherent(etnaviv_domain->dev, SZ_4K,
-                         etnaviv_domain->bad_page_cpu,
-                         etnaviv_domain->bad_page_dma);
+       dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
+                         etnaviv_domain->base.bad_page_cpu,
+                         etnaviv_domain->base.bad_page_dma);
 
        kfree(etnaviv_domain);
 }
 
-static int etnaviv_iommuv1_map(struct iommu_domain *domain, unsigned long iova,
-          phys_addr_t paddr, size_t size, int prot)
+static int etnaviv_iommuv1_map(struct etnaviv_iommu_domain *domain,
+                              unsigned long iova, phys_addr_t paddr,
+                              size_t size, int prot)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain = to_etnaviv_domain(domain);
+       struct etnaviv_iommuv1_domain *etnaviv_domain = to_etnaviv_domain(domain);
+       unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
 
        if (size != SZ_4K)
                return -EINVAL;
 
-       spin_lock(&etnaviv_domain->map_lock);
-       pgtable_write(&etnaviv_domain->pgtable, iova, paddr);
-       spin_unlock(&etnaviv_domain->map_lock);
+       etnaviv_domain->pgtable_cpu[index] = paddr;
 
        return 0;
 }
 
-static size_t etnaviv_iommuv1_unmap(struct iommu_domain *domain,
+static size_t etnaviv_iommuv1_unmap(struct etnaviv_iommu_domain *domain,
        unsigned long iova, size_t size)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain = to_etnaviv_domain(domain);
+       struct etnaviv_iommuv1_domain *etnaviv_domain =
+                       to_etnaviv_domain(domain);
+       unsigned int index = (iova - GPU_MEM_START) / SZ_4K;
 
        if (size != SZ_4K)
                return -EINVAL;
 
-       spin_lock(&etnaviv_domain->map_lock);
-       pgtable_write(&etnaviv_domain->pgtable, iova,
-                     etnaviv_domain->bad_page_dma);
-       spin_unlock(&etnaviv_domain->map_lock);
+       etnaviv_domain->pgtable_cpu[index] = etnaviv_domain->base.bad_page_dma;
 
        return SZ_4K;
 }
 
-static phys_addr_t etnaviv_iommu_iova_to_phys(struct iommu_domain *domain,
-       dma_addr_t iova)
-{
-       struct etnaviv_iommu_domain *etnaviv_domain = to_etnaviv_domain(domain);
-
-       return pgtable_read(&etnaviv_domain->pgtable, iova);
-}
-
-static size_t etnaviv_iommuv1_dump_size(struct iommu_domain *domain)
+static size_t etnaviv_iommuv1_dump_size(struct etnaviv_iommu_domain *domain)
 {
        return PT_SIZE;
 }
 
-static void etnaviv_iommuv1_dump(struct iommu_domain *domain, void *buf)
+static void etnaviv_iommuv1_dump(struct etnaviv_iommu_domain *domain, void *buf)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain = to_etnaviv_domain(domain);
+       struct etnaviv_iommuv1_domain *etnaviv_domain =
+                       to_etnaviv_domain(domain);
 
-       memcpy(buf, etnaviv_domain->pgtable.pgtable, PT_SIZE);
+       memcpy(buf, etnaviv_domain->pgtable_cpu, PT_SIZE);
 }
 
-static const struct etnaviv_iommu_ops etnaviv_iommu_ops = {
-       .ops = {
-               .domain_free = etnaviv_domain_free,
-               .map = etnaviv_iommuv1_map,
-               .unmap = etnaviv_iommuv1_unmap,
-               .iova_to_phys = etnaviv_iommu_iova_to_phys,
-               .pgsize_bitmap = SZ_4K,
-       },
-       .dump_size = etnaviv_iommuv1_dump_size,
-       .dump = etnaviv_iommuv1_dump,
-};
-
 void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain =
+       struct etnaviv_iommuv1_domain *etnaviv_domain =
                        to_etnaviv_domain(gpu->mmu->domain);
        u32 pgtable;
 
@@ -210,7 +150,7 @@ void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu)
        gpu_write(gpu, VIVS_MC_MEMORY_BASE_ADDR_PE, gpu->memory_base);
 
        /* set page table address in MC */
-       pgtable = (u32)etnaviv_domain->pgtable.paddr;
+       pgtable = (u32)etnaviv_domain->pgtable_dma;
 
        gpu_write(gpu, VIVS_MC_MMU_FE_PAGE_TABLE, pgtable);
        gpu_write(gpu, VIVS_MC_MMU_TX_PAGE_TABLE, pgtable);
@@ -219,28 +159,37 @@ void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu)
        gpu_write(gpu, VIVS_MC_MMU_RA_PAGE_TABLE, pgtable);
 }
 
-struct iommu_domain *etnaviv_iommuv1_domain_alloc(struct etnaviv_gpu *gpu)
+const struct etnaviv_iommu_domain_ops etnaviv_iommuv1_ops = {
+       .free = etnaviv_iommuv1_domain_free,
+       .map = etnaviv_iommuv1_map,
+       .unmap = etnaviv_iommuv1_unmap,
+       .dump_size = etnaviv_iommuv1_dump_size,
+       .dump = etnaviv_iommuv1_dump,
+};
+
+struct etnaviv_iommu_domain *
+etnaviv_iommuv1_domain_alloc(struct etnaviv_gpu *gpu)
 {
-       struct etnaviv_iommu_domain *etnaviv_domain;
+       struct etnaviv_iommuv1_domain *etnaviv_domain;
+       struct etnaviv_iommu_domain *domain;
        int ret;
 
        etnaviv_domain = kzalloc(sizeof(*etnaviv_domain), GFP_KERNEL);
        if (!etnaviv_domain)
                return NULL;
 
-       etnaviv_domain->dev = gpu->dev;
+       domain = &etnaviv_domain->base;
 
-       etnaviv_domain->domain.type = __IOMMU_DOMAIN_PAGING;
-       etnaviv_domain->domain.ops = &etnaviv_iommu_ops.ops;
-       etnaviv_domain->domain.pgsize_bitmap = SZ_4K;
-       etnaviv_domain->domain.geometry.aperture_start = GPU_MEM_START;
-       etnaviv_domain->domain.geometry.aperture_end = GPU_MEM_START + PT_ENTRIES * SZ_4K - 1;
+       domain->dev = gpu->dev;
+       domain->base = GPU_MEM_START;
+       domain->size = PT_ENTRIES * SZ_4K;
+       domain->ops = &etnaviv_iommuv1_ops;
 
        ret = __etnaviv_iommu_init(etnaviv_domain);
        if (ret)
                goto out_free;
 
-       return &etnaviv_domain->domain;
+       return &etnaviv_domain->base;
 
 out_free:
        kfree(etnaviv_domain);
index 8b51e7c..01d59bf 100644 (file)
 #define __ETNAVIV_IOMMU_H__
 
 struct etnaviv_gpu;
+struct etnaviv_iommu_domain;
 
-struct iommu_domain *etnaviv_iommuv1_domain_alloc(struct etnaviv_gpu *gpu);
+struct etnaviv_iommu_domain *
+etnaviv_iommuv1_domain_alloc(struct etnaviv_gpu *gpu);
 void etnaviv_iommuv1_restore(struct etnaviv_gpu *gpu);
 
-struct iommu_domain *etnaviv_iommuv2_domain_alloc(struct etnaviv_gpu *gpu);
+struct etnaviv_iommu_domain *
+etnaviv_iommuv2_domain_alloc(struct etnaviv_gpu *gpu);
 void etnaviv_iommuv2_restore(struct etnaviv_gpu *gpu);
 
 #endif /* __ETNAVIV_IOMMU_H__ */
index cbe447a..fc60fc8 100644 (file)
@@ -14,7 +14,6 @@
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <linux/iommu.h>
 #include <linux/platform_device.h>
 #include <linux/sizes.h>
 #include <linux/slab.h>
 #define MMUv2_MAX_STLB_ENTRIES         1024
 
 struct etnaviv_iommuv2_domain {
-       struct iommu_domain domain;
-       struct device *dev;
-       void *bad_page_cpu;
-       dma_addr_t bad_page_dma;
+       struct etnaviv_iommu_domain base;
        /* M(aster) TLB aka first level pagetable */
        u32 *mtlb_cpu;
        dma_addr_t mtlb_dma;
@@ -52,13 +48,15 @@ struct etnaviv_iommuv2_domain {
        dma_addr_t stlb_dma[1024];
 };
 
-static struct etnaviv_iommuv2_domain *to_etnaviv_domain(struct iommu_domain *domain)
+static struct etnaviv_iommuv2_domain *
+to_etnaviv_domain(struct etnaviv_iommu_domain *domain)
 {
-       return container_of(domain, struct etnaviv_iommuv2_domain, domain);
+       return container_of(domain, struct etnaviv_iommuv2_domain, base);
 }
 
-static int etnaviv_iommuv2_map(struct iommu_domain *domain, unsigned long iova,
-          phys_addr_t paddr, size_t size, int prot)
+static int etnaviv_iommuv2_map(struct etnaviv_iommu_domain *domain,
+                              unsigned long iova, phys_addr_t paddr,
+                              size_t size, int prot)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
                        to_etnaviv_domain(domain);
@@ -68,7 +66,7 @@ static int etnaviv_iommuv2_map(struct iommu_domain *domain, unsigned long iova,
        if (size != SZ_4K)
                return -EINVAL;
 
-       if (prot & IOMMU_WRITE)
+       if (prot & ETNAVIV_PROT_WRITE)
                entry |= MMUv2_PTE_WRITEABLE;
 
        mtlb_entry = (iova & MMUv2_MTLB_MASK) >> MMUv2_MTLB_SHIFT;
@@ -79,8 +77,8 @@ static int etnaviv_iommuv2_map(struct iommu_domain *domain, unsigned long iova,
        return 0;
 }
 
-static size_t etnaviv_iommuv2_unmap(struct iommu_domain *domain,
-       unsigned long iova, size_t size)
+static size_t etnaviv_iommuv2_unmap(struct etnaviv_iommu_domain *domain,
+                                   unsigned long iova, size_t size)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
                        to_etnaviv_domain(domain);
@@ -97,38 +95,26 @@ static size_t etnaviv_iommuv2_unmap(struct iommu_domain *domain,
        return SZ_4K;
 }
 
-static phys_addr_t etnaviv_iommuv2_iova_to_phys(struct iommu_domain *domain,
-       dma_addr_t iova)
-{
-       struct etnaviv_iommuv2_domain *etnaviv_domain =
-                       to_etnaviv_domain(domain);
-       int mtlb_entry, stlb_entry;
-
-       mtlb_entry = (iova & MMUv2_MTLB_MASK) >> MMUv2_MTLB_SHIFT;
-       stlb_entry = (iova & MMUv2_STLB_MASK) >> MMUv2_STLB_SHIFT;
-
-       return etnaviv_domain->stlb_cpu[mtlb_entry][stlb_entry] & ~(SZ_4K - 1);
-}
-
 static int etnaviv_iommuv2_init(struct etnaviv_iommuv2_domain *etnaviv_domain)
 {
        u32 *p;
        int ret, i, j;
 
        /* allocate scratch page */
-       etnaviv_domain->bad_page_cpu = dma_alloc_coherent(etnaviv_domain->dev,
-                                                 SZ_4K,
-                                                 &etnaviv_domain->bad_page_dma,
-                                                 GFP_KERNEL);
-       if (!etnaviv_domain->bad_page_cpu) {
+       etnaviv_domain->base.bad_page_cpu = dma_alloc_coherent(
+                                               etnaviv_domain->base.dev,
+                                               SZ_4K,
+                                               &etnaviv_domain->base.bad_page_dma,
+                                               GFP_KERNEL);
+       if (!etnaviv_domain->base.bad_page_cpu) {
                ret = -ENOMEM;
                goto fail_mem;
        }
-       p = etnaviv_domain->bad_page_cpu;
+       p = etnaviv_domain->base.bad_page_cpu;
        for (i = 0; i < SZ_4K / 4; i++)
                *p++ = 0xdead55aa;
 
-       etnaviv_domain->mtlb_cpu = dma_alloc_coherent(etnaviv_domain->dev,
+       etnaviv_domain->mtlb_cpu = dma_alloc_coherent(etnaviv_domain->base.dev,
                                                  SZ_4K,
                                                  &etnaviv_domain->mtlb_dma,
                                                  GFP_KERNEL);
@@ -140,7 +126,7 @@ static int etnaviv_iommuv2_init(struct etnaviv_iommuv2_domain *etnaviv_domain)
        /* pre-populate STLB pages (may want to switch to on-demand later) */
        for (i = 0; i < MMUv2_MAX_STLB_ENTRIES; i++) {
                etnaviv_domain->stlb_cpu[i] =
-                               dma_alloc_coherent(etnaviv_domain->dev,
+                               dma_alloc_coherent(etnaviv_domain->base.dev,
                                                   SZ_4K,
                                                   &etnaviv_domain->stlb_dma[i],
                                                   GFP_KERNEL);
@@ -159,19 +145,19 @@ static int etnaviv_iommuv2_init(struct etnaviv_iommuv2_domain *etnaviv_domain)
        return 0;
 
 fail_mem:
-       if (etnaviv_domain->bad_page_cpu)
-               dma_free_coherent(etnaviv_domain->dev, SZ_4K,
-                                 etnaviv_domain->bad_page_cpu,
-                                 etnaviv_domain->bad_page_dma);
+       if (etnaviv_domain->base.bad_page_cpu)
+               dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
+                                 etnaviv_domain->base.bad_page_cpu,
+                                 etnaviv_domain->base.bad_page_dma);
 
        if (etnaviv_domain->mtlb_cpu)
-               dma_free_coherent(etnaviv_domain->dev, SZ_4K,
+               dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
                                  etnaviv_domain->mtlb_cpu,
                                  etnaviv_domain->mtlb_dma);
 
        for (i = 0; i < MMUv2_MAX_STLB_ENTRIES; i++) {
                if (etnaviv_domain->stlb_cpu[i])
-                       dma_free_coherent(etnaviv_domain->dev, SZ_4K,
+                       dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
                                          etnaviv_domain->stlb_cpu[i],
                                          etnaviv_domain->stlb_dma[i]);
        }
@@ -179,23 +165,23 @@ fail_mem:
        return ret;
 }
 
-static void etnaviv_iommuv2_domain_free(struct iommu_domain *domain)
+static void etnaviv_iommuv2_domain_free(struct etnaviv_iommu_domain *domain)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
                        to_etnaviv_domain(domain);
        int i;
 
-       dma_free_coherent(etnaviv_domain->dev, SZ_4K,
-                         etnaviv_domain->bad_page_cpu,
-                         etnaviv_domain->bad_page_dma);
+       dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
+                         etnaviv_domain->base.bad_page_cpu,
+                         etnaviv_domain->base.bad_page_dma);
 
-       dma_free_coherent(etnaviv_domain->dev, SZ_4K,
+       dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
                          etnaviv_domain->mtlb_cpu,
                          etnaviv_domain->mtlb_dma);
 
        for (i = 0; i < MMUv2_MAX_STLB_ENTRIES; i++) {
                if (etnaviv_domain->stlb_cpu[i])
-                       dma_free_coherent(etnaviv_domain->dev, SZ_4K,
+                       dma_free_coherent(etnaviv_domain->base.dev, SZ_4K,
                                          etnaviv_domain->stlb_cpu[i],
                                          etnaviv_domain->stlb_dma[i]);
        }
@@ -203,7 +189,7 @@ static void etnaviv_iommuv2_domain_free(struct iommu_domain *domain)
        vfree(etnaviv_domain);
 }
 
-static size_t etnaviv_iommuv2_dump_size(struct iommu_domain *domain)
+static size_t etnaviv_iommuv2_dump_size(struct etnaviv_iommu_domain *domain)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
                        to_etnaviv_domain(domain);
@@ -217,7 +203,7 @@ static size_t etnaviv_iommuv2_dump_size(struct iommu_domain *domain)
        return dump_size;
 }
 
-static void etnaviv_iommuv2_dump(struct iommu_domain *domain, void *buf)
+static void etnaviv_iommuv2_dump(struct etnaviv_iommu_domain *domain, void *buf)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
                        to_etnaviv_domain(domain);
@@ -230,18 +216,6 @@ static void etnaviv_iommuv2_dump(struct iommu_domain *domain, void *buf)
                        memcpy(buf, etnaviv_domain->stlb_cpu[i], SZ_4K);
 }
 
-static const struct etnaviv_iommu_ops etnaviv_iommu_ops = {
-       .ops = {
-               .domain_free = etnaviv_iommuv2_domain_free,
-               .map = etnaviv_iommuv2_map,
-               .unmap = etnaviv_iommuv2_unmap,
-               .iova_to_phys = etnaviv_iommuv2_iova_to_phys,
-               .pgsize_bitmap = SZ_4K,
-       },
-       .dump_size = etnaviv_iommuv2_dump_size,
-       .dump = etnaviv_iommuv2_dump,
-};
-
 void etnaviv_iommuv2_restore(struct etnaviv_gpu *gpu)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain =
@@ -254,35 +228,45 @@ void etnaviv_iommuv2_restore(struct etnaviv_gpu *gpu)
 
        prefetch = etnaviv_buffer_config_mmuv2(gpu,
                                (u32)etnaviv_domain->mtlb_dma,
-                               (u32)etnaviv_domain->bad_page_dma);
+                               (u32)etnaviv_domain->base.bad_page_dma);
        etnaviv_gpu_start_fe(gpu, (u32)etnaviv_cmdbuf_get_pa(gpu->buffer),
                             prefetch);
        etnaviv_gpu_wait_idle(gpu, 100);
 
        gpu_write(gpu, VIVS_MMUv2_CONTROL, VIVS_MMUv2_CONTROL_ENABLE);
 }
-struct iommu_domain *etnaviv_iommuv2_domain_alloc(struct etnaviv_gpu *gpu)
+
+const struct etnaviv_iommu_domain_ops etnaviv_iommuv2_ops = {
+       .free = etnaviv_iommuv2_domain_free,
+       .map = etnaviv_iommuv2_map,
+       .unmap = etnaviv_iommuv2_unmap,
+       .dump_size = etnaviv_iommuv2_dump_size,
+       .dump = etnaviv_iommuv2_dump,
+};
+
+struct etnaviv_iommu_domain *
+etnaviv_iommuv2_domain_alloc(struct etnaviv_gpu *gpu)
 {
        struct etnaviv_iommuv2_domain *etnaviv_domain;
+       struct etnaviv_iommu_domain *domain;
        int ret;
 
        etnaviv_domain = vzalloc(sizeof(*etnaviv_domain));
        if (!etnaviv_domain)
                return NULL;
 
-       etnaviv_domain->dev = gpu->dev;
+       domain = &etnaviv_domain->base;
 
-       etnaviv_domain->domain.type = __IOMMU_DOMAIN_PAGING;
-       etnaviv_domain->domain.ops = &etnaviv_iommu_ops.ops;
-       etnaviv_domain->domain.pgsize_bitmap = SZ_4K;
-       etnaviv_domain->domain.geometry.aperture_start = 0;
-       etnaviv_domain->domain.geometry.aperture_end = ~0UL & ~(SZ_4K - 1);
+       domain->dev = gpu->dev;
+       domain->base = 0;
+       domain->size = (u64)SZ_1G * 4;
+       domain->ops = &etnaviv_iommuv2_ops;
 
        ret = etnaviv_iommuv2_init(etnaviv_domain);
        if (ret)
                goto out_free;
 
-       return &etnaviv_domain->domain;
+       return &etnaviv_domain->base;
 
 out_free:
        vfree(etnaviv_domain);
index f103e78..35074b9 100644 (file)
 #include "etnaviv_iommu.h"
 #include "etnaviv_mmu.h"
 
-static int etnaviv_fault_handler(struct iommu_domain *iommu, struct device *dev,
-               unsigned long iova, int flags, void *arg)
+static void etnaviv_domain_unmap(struct etnaviv_iommu_domain *domain,
+                                unsigned long iova, size_t size)
 {
-       DBG("*** fault: iova=%08lx, flags=%d", iova, flags);
-       return 0;
+       size_t unmapped_page, unmapped = 0;
+       size_t pgsize = SZ_4K;
+
+       if (!IS_ALIGNED(iova | size, pgsize)) {
+               pr_err("unaligned: iova 0x%lx size 0x%zx min_pagesz 0x%x\n",
+                      iova, size, pgsize);
+               return;
+       }
+
+       while (unmapped < size) {
+               unmapped_page = domain->ops->unmap(domain, iova, pgsize);
+               if (!unmapped_page)
+                       break;
+
+               iova += unmapped_page;
+               unmapped += unmapped_page;
+       }
 }
 
-int etnaviv_iommu_map(struct etnaviv_iommu *iommu, u32 iova,
-               struct sg_table *sgt, unsigned len, int prot)
+static int etnaviv_domain_map(struct etnaviv_iommu_domain *domain,
+                             unsigned long iova, phys_addr_t paddr,
+                             size_t size, int prot)
 {
-       struct iommu_domain *domain = iommu->domain;
+       unsigned long orig_iova = iova;
+       size_t pgsize = SZ_4K;
+       size_t orig_size = size;
+       int ret = 0;
+
+       if (!IS_ALIGNED(iova | paddr | size, pgsize)) {
+               pr_err("unaligned: iova 0x%lx pa %pa size 0x%zx min_pagesz 0x%x\n",
+                      iova, &paddr, size, pgsize);
+               return -EINVAL;
+       }
+
+       while (size) {
+               ret = domain->ops->map(domain, iova, paddr, pgsize, prot);
+               if (ret)
+                       break;
+
+               iova += pgsize;
+               paddr += pgsize;
+               size -= pgsize;
+       }
+
+       /* unroll mapping in case something went wrong */
+       if (ret)
+               etnaviv_domain_unmap(domain, orig_iova, orig_size - size);
+
+       return ret;
+}
+
+static int etnaviv_iommu_map(struct etnaviv_iommu *iommu, u32 iova,
+                            struct sg_table *sgt, unsigned len, int prot)
+{
+       struct etnaviv_iommu_domain *domain = iommu->domain;
        struct scatterlist *sg;
        unsigned int da = iova;
        unsigned int i, j;
@@ -47,7 +94,7 @@ int etnaviv_iommu_map(struct etnaviv_iommu *iommu, u32 iova,
 
                VERB("map[%d]: %08x %08x(%zx)", i, iova, pa, bytes);
 
-               ret = iommu_map(domain, da, pa, bytes, prot);
+               ret = etnaviv_domain_map(domain, da, pa, bytes, prot);
                if (ret)
                        goto fail;
 
@@ -62,27 +109,24 @@ fail:
        for_each_sg(sgt->sgl, sg, i, j) {
                size_t bytes = sg_dma_len(sg) + sg->offset;
 
-               iommu_unmap(domain, da, bytes);
+               etnaviv_domain_unmap(domain, da, bytes);
                da += bytes;
        }
        return ret;
 }
 
-int etnaviv_iommu_unmap(struct etnaviv_iommu *iommu, u32 iova,
-               struct sg_table *sgt, unsigned len)
+static void etnaviv_iommu_unmap(struct etnaviv_iommu *iommu, u32 iova,
+                               struct sg_table *sgt, unsigned len)
 {
-       struct iommu_domain *domain = iommu->domain;
+       struct etnaviv_iommu_domain *domain = iommu->domain;
        struct scatterlist *sg;
        unsigned int da = iova;
        int i;
 
        for_each_sg(sgt->sgl, sg, sgt->nents, i) {
                size_t bytes = sg_dma_len(sg) + sg->offset;
-               size_t unmapped;
 
-               unmapped = iommu_unmap(domain, da, bytes);
-               if (unmapped < bytes)
-                       return unmapped;
+               etnaviv_domain_unmap(domain, da, bytes);
 
                VERB("unmap[%d]: %08x(%zx)", i, iova, bytes);
 
@@ -90,8 +134,6 @@ int etnaviv_iommu_unmap(struct etnaviv_iommu *iommu, u32 iova,
 
                da += bytes;
        }
-
-       return 0;
 }
 
 static void etnaviv_iommu_remove_mapping(struct etnaviv_iommu *mmu,
@@ -237,7 +279,7 @@ int etnaviv_iommu_map_gem(struct etnaviv_iommu *mmu,
        mmu->last_iova = node->start + etnaviv_obj->base.size;
        mapping->iova = node->start;
        ret = etnaviv_iommu_map(mmu, node->start, sgt, etnaviv_obj->base.size,
-                               IOMMU_READ | IOMMU_WRITE);
+                               ETNAVIV_PROT_READ | ETNAVIV_PROT_WRITE);
 
        if (ret < 0) {
                drm_mm_remove_node(node);
@@ -271,7 +313,7 @@ void etnaviv_iommu_unmap_gem(struct etnaviv_iommu *mmu,
 void etnaviv_iommu_destroy(struct etnaviv_iommu *mmu)
 {
        drm_mm_takedown(&mmu->mm);
-       iommu_domain_free(mmu->domain);
+       mmu->domain->ops->free(mmu->domain);
        kfree(mmu);
 }
 
@@ -303,11 +345,7 @@ struct etnaviv_iommu *etnaviv_iommu_new(struct etnaviv_gpu *gpu)
        mutex_init(&mmu->lock);
        INIT_LIST_HEAD(&mmu->mappings);
 
-       drm_mm_init(&mmu->mm, mmu->domain->geometry.aperture_start,
-                   mmu->domain->geometry.aperture_end -
-                   mmu->domain->geometry.aperture_start + 1);
-
-       iommu_set_fault_handler(mmu->domain, etnaviv_fault_handler, gpu->dev);
+       drm_mm_init(&mmu->mm, mmu->domain->base, mmu->domain->size);
 
        return mmu;
 }
@@ -338,8 +376,8 @@ int etnaviv_iommu_get_suballoc_va(struct etnaviv_gpu *gpu, dma_addr_t paddr,
                        mutex_unlock(&mmu->lock);
                        return ret;
                }
-               ret = iommu_map(mmu->domain, vram_node->start, paddr, size,
-                               IOMMU_READ);
+               ret = etnaviv_domain_map(mmu->domain, vram_node->start, paddr,
+                                        size, ETNAVIV_PROT_READ);
                if (ret < 0) {
                        drm_mm_remove_node(vram_node);
                        mutex_unlock(&mmu->lock);
@@ -362,25 +400,17 @@ void etnaviv_iommu_put_suballoc_va(struct etnaviv_gpu *gpu,
 
        if (mmu->version == ETNAVIV_IOMMU_V2) {
                mutex_lock(&mmu->lock);
-               iommu_unmap(mmu->domain,iova, size);
+               etnaviv_domain_unmap(mmu->domain, iova, size);
                drm_mm_remove_node(vram_node);
                mutex_unlock(&mmu->lock);
        }
 }
 size_t etnaviv_iommu_dump_size(struct etnaviv_iommu *iommu)
 {
-       struct etnaviv_iommu_ops *ops;
-
-       ops = container_of(iommu->domain->ops, struct etnaviv_iommu_ops, ops);
-
-       return ops->dump_size(iommu->domain);
+       return iommu->domain->ops->dump_size(iommu->domain);
 }
 
 void etnaviv_iommu_dump(struct etnaviv_iommu *iommu, void *buf)
 {
-       struct etnaviv_iommu_ops *ops;
-
-       ops = container_of(iommu->domain->ops, struct etnaviv_iommu_ops, ops);
-
-       ops->dump(iommu->domain, buf);
+       iommu->domain->ops->dump(iommu->domain, buf);
 }
index 54be289..ab603f5 100644 (file)
@@ -17,7 +17,8 @@
 #ifndef __ETNAVIV_MMU_H__
 #define __ETNAVIV_MMU_H__
 
-#include <linux/iommu.h>
+#define ETNAVIV_PROT_READ      (1 << 0)
+#define ETNAVIV_PROT_WRITE     (1 << 1)
 
 enum etnaviv_iommu_version {
        ETNAVIV_IOMMU_V1 = 0,
@@ -26,16 +27,31 @@ enum etnaviv_iommu_version {
 
 struct etnaviv_gpu;
 struct etnaviv_vram_mapping;
+struct etnaviv_iommu_domain;
 
-struct etnaviv_iommu_ops {
-       struct iommu_ops ops;
-       size_t (*dump_size)(struct iommu_domain *);
-       void (*dump)(struct iommu_domain *, void *);
+struct etnaviv_iommu_domain_ops {
+       void (*free)(struct etnaviv_iommu_domain *);
+       int (*map)(struct etnaviv_iommu_domain *domain, unsigned long iova,
+                  phys_addr_t paddr, size_t size, int prot);
+       size_t (*unmap)(struct etnaviv_iommu_domain *domain, unsigned long iova,
+                       size_t size);
+       size_t (*dump_size)(struct etnaviv_iommu_domain *);
+       void (*dump)(struct etnaviv_iommu_domain *, void *);
+};
+
+struct etnaviv_iommu_domain {
+       struct device *dev;
+       void *bad_page_cpu;
+       dma_addr_t bad_page_dma;
+       u64 base;
+       u64 size;
+
+       const struct etnaviv_iommu_domain_ops *ops;
 };
 
 struct etnaviv_iommu {
        struct etnaviv_gpu *gpu;
-       struct iommu_domain *domain;
+       struct etnaviv_iommu_domain *domain;
 
        enum etnaviv_iommu_version version;
 
@@ -49,18 +65,11 @@ struct etnaviv_iommu {
 
 struct etnaviv_gem_object;
 
-int etnaviv_iommu_attach(struct etnaviv_iommu *iommu, const char **names,
-       int cnt);
-int etnaviv_iommu_map(struct etnaviv_iommu *iommu, u32 iova,
-       struct sg_table *sgt, unsigned len, int prot);
-int etnaviv_iommu_unmap(struct etnaviv_iommu *iommu, u32 iova,
-       struct sg_table *sgt, unsigned len);
 int etnaviv_iommu_map_gem(struct etnaviv_iommu *mmu,
        struct etnaviv_gem_object *etnaviv_obj, u32 memory_base,
        struct etnaviv_vram_mapping *mapping);
 void etnaviv_iommu_unmap_gem(struct etnaviv_iommu *mmu,
        struct etnaviv_vram_mapping *mapping);
-void etnaviv_iommu_destroy(struct etnaviv_iommu *iommu);
 
 int etnaviv_iommu_get_suballoc_va(struct etnaviv_gpu *gpu, dma_addr_t paddr,
                                  struct drm_mm_node *vram_node, size_t size,
@@ -73,6 +82,7 @@ size_t etnaviv_iommu_dump_size(struct etnaviv_iommu *iommu);
 void etnaviv_iommu_dump(struct etnaviv_iommu *iommu, void *buf);
 
 struct etnaviv_iommu *etnaviv_iommu_new(struct etnaviv_gpu *gpu);
+void etnaviv_iommu_destroy(struct etnaviv_iommu *iommu);
 void etnaviv_iommu_restore(struct etnaviv_gpu *gpu);
 
 #endif /* __ETNAVIV_MMU_H__ */
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.c
new file mode 100644 (file)
index 0000000..768f5aa
--- /dev/null
@@ -0,0 +1,495 @@
+/*
+ * Copyright (C) 2017 Etnaviv Project
+ * Copyright (C) 2017 Zodiac Inflight Innovations
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "etnaviv_gpu.h"
+#include "etnaviv_perfmon.h"
+#include "state_hi.xml.h"
+
+struct etnaviv_pm_domain;
+
+struct etnaviv_pm_signal {
+       char name[64];
+       u32 data;
+
+       u32 (*sample)(struct etnaviv_gpu *gpu,
+                     const struct etnaviv_pm_domain *domain,
+                     const struct etnaviv_pm_signal *signal);
+};
+
+struct etnaviv_pm_domain {
+       char name[64];
+
+       /* profile register */
+       u32 profile_read;
+       u32 profile_config;
+
+       u8 nr_signals;
+       const struct etnaviv_pm_signal *signal;
+};
+
+struct etnaviv_pm_domain_meta {
+       const struct etnaviv_pm_domain *domains;
+       u32 nr_domains;
+};
+
+static u32 simple_reg_read(struct etnaviv_gpu *gpu,
+       const struct etnaviv_pm_domain *domain,
+       const struct etnaviv_pm_signal *signal)
+{
+       return gpu_read(gpu, signal->data);
+}
+
+static u32 perf_reg_read(struct etnaviv_gpu *gpu,
+       const struct etnaviv_pm_domain *domain,
+       const struct etnaviv_pm_signal *signal)
+{
+       gpu_write(gpu, domain->profile_config, signal->data);
+
+       return gpu_read(gpu, domain->profile_read);
+}
+
+static u32 pipe_reg_read(struct etnaviv_gpu *gpu,
+       const struct etnaviv_pm_domain *domain,
+       const struct etnaviv_pm_signal *signal)
+{
+       u32 clock = gpu_read(gpu, VIVS_HI_CLOCK_CONTROL);
+       u32 value = 0;
+       unsigned i;
+
+       for (i = 0; i < gpu->identity.pixel_pipes; i++) {
+               clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK);
+               clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(i);
+               gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock);
+               gpu_write(gpu, domain->profile_config, signal->data);
+               value += gpu_read(gpu, domain->profile_read);
+       }
+
+       /* switch back to pixel pipe 0 to prevent GPU hang */
+       clock &= ~(VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE__MASK);
+       clock |= VIVS_HI_CLOCK_CONTROL_DEBUG_PIXEL_PIPE(0);
+       gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, clock);
+
+       return value;
+}
+
+static const struct etnaviv_pm_domain doms_3d[] = {
+       {
+               .name = "HI",
+               .profile_read = VIVS_MC_PROFILE_HI_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG2,
+               .nr_signals = 5,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "TOTAL_CYCLES",
+                               VIVS_HI_PROFILE_TOTAL_CYCLES,
+                               &simple_reg_read
+                       },
+                       {
+                               "IDLE_CYCLES",
+                               VIVS_HI_PROFILE_IDLE_CYCLES,
+                               &simple_reg_read
+                       },
+                       {
+                               "AXI_CYCLES_READ_REQUEST_STALLED",
+                               VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_READ_REQUEST_STALLED,
+                               &perf_reg_read
+                       },
+                       {
+                               "AXI_CYCLES_WRITE_REQUEST_STALLED",
+                               VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_REQUEST_STALLED,
+                               &perf_reg_read
+                       },
+                       {
+                               "AXI_CYCLES_WRITE_DATA_STALLED",
+                               VIVS_MC_PROFILE_CONFIG2_HI_AXI_CYCLES_WRITE_DATA_STALLED,
+                               &perf_reg_read
+                       }
+               }
+       },
+       {
+               .name = "PE",
+               .profile_read = VIVS_MC_PROFILE_PE_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG0,
+               .nr_signals = 5,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "PIXEL_COUNT_KILLED_BY_COLOR_PIPE",
+                               VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_KILLED_BY_COLOR_PIPE,
+                               &pipe_reg_read
+                       },
+                       {
+                               "PIXEL_COUNT_KILLED_BY_DEPTH_PIPE",
+                               VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_KILLED_BY_DEPTH_PIPE,
+                               &pipe_reg_read
+                       },
+                       {
+                               "PIXEL_COUNT_DRAWN_BY_COLOR_PIPE",
+                               VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_DRAWN_BY_COLOR_PIPE,
+                               &pipe_reg_read
+                       },
+                       {
+                               "PIXEL_COUNT_DRAWN_BY_DEPTH_PIPE",
+                               VIVS_MC_PROFILE_CONFIG0_PE_PIXEL_COUNT_DRAWN_BY_DEPTH_PIPE,
+                               &pipe_reg_read
+                       }
+               }
+       },
+       {
+               .name = "SH",
+               .profile_read = VIVS_MC_PROFILE_SH_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG0,
+               .nr_signals = 9,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "SHADER_CYCLES",
+                               VIVS_MC_PROFILE_CONFIG0_SH_SHADER_CYCLES,
+                               &perf_reg_read
+                       },
+                       {
+                               "PS_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_PS_INST_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "RENDERED_PIXEL_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_RENDERED_PIXEL_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "VS_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_VS_INST_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "RENDERED_VERTICE_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_RENDERED_VERTICE_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "VTX_BRANCH_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_VTX_BRANCH_INST_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "VTX_TEXLD_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_VTX_TEXLD_INST_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "PXL_BRANCH_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_PXL_BRANCH_INST_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "PXL_TEXLD_INST_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG0_SH_PXL_TEXLD_INST_COUNTER,
+                               &pipe_reg_read
+                       }
+               }
+       },
+       {
+               .name = "PA",
+               .profile_read = VIVS_MC_PROFILE_PA_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG1,
+               .nr_signals = 6,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "INPUT_VTX_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_INPUT_VTX_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "INPUT_PRIM_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_INPUT_PRIM_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "OUTPUT_PRIM_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_OUTPUT_PRIM_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "DEPTH_CLIPPED_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_DEPTH_CLIPPED_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "TRIVIAL_REJECTED_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_TRIVIAL_REJECTED_COUNTER,
+                               &pipe_reg_read
+                       },
+                       {
+                               "CULLED_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_PA_CULLED_COUNTER,
+                               &pipe_reg_read
+                       }
+               }
+       },
+       {
+               .name = "SE",
+               .profile_read = VIVS_MC_PROFILE_SE_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG1,
+               .nr_signals = 2,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "CULLED_TRIANGLE_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_SE_CULLED_TRIANGLE_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "CULLED_LINES_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_SE_CULLED_LINES_COUNT,
+                               &perf_reg_read
+                       }
+               }
+       },
+       {
+               .name = "RA",
+               .profile_read = VIVS_MC_PROFILE_RA_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG1,
+               .nr_signals = 7,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "VALID_PIXEL_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_RA_VALID_PIXEL_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_QUAD_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_RA_TOTAL_QUAD_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "VALID_QUAD_COUNT_AFTER_EARLY_Z",
+                               VIVS_MC_PROFILE_CONFIG1_RA_VALID_QUAD_COUNT_AFTER_EARLY_Z,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_PRIMITIVE_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_RA_TOTAL_PRIMITIVE_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "PIPE_CACHE_MISS_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_RA_PIPE_CACHE_MISS_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "PREFETCH_CACHE_MISS_COUNTER",
+                               VIVS_MC_PROFILE_CONFIG1_RA_PREFETCH_CACHE_MISS_COUNTER,
+                               &perf_reg_read
+                       },
+                       {
+                               "CULLED_QUAD_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_RA_CULLED_QUAD_COUNT,
+                               &perf_reg_read
+                       }
+               }
+       },
+       {
+               .name = "TX",
+               .profile_read = VIVS_MC_PROFILE_TX_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG1,
+               .nr_signals = 9,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "TOTAL_BILINEAR_REQUESTS",
+                               VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_BILINEAR_REQUESTS,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_TRILINEAR_REQUESTS",
+                               VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_TRILINEAR_REQUESTS,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_DISCARDED_TEXTURE_REQUESTS",
+                               VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_DISCARDED_TEXTURE_REQUESTS,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_TEXTURE_REQUESTS",
+                               VIVS_MC_PROFILE_CONFIG1_TX_TOTAL_TEXTURE_REQUESTS,
+                               &perf_reg_read
+                       },
+                       {
+                               "MEM_READ_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_TX_MEM_READ_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "MEM_READ_IN_8B_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_TX_MEM_READ_IN_8B_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "CACHE_MISS_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_TX_CACHE_MISS_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "CACHE_HIT_TEXEL_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_TX_CACHE_HIT_TEXEL_COUNT,
+                               &perf_reg_read
+                       },
+                       {
+                               "CACHE_MISS_TEXEL_COUNT",
+                               VIVS_MC_PROFILE_CONFIG1_TX_CACHE_MISS_TEXEL_COUNT,
+                               &perf_reg_read
+                       }
+               }
+       },
+       {
+               .name = "MC",
+               .profile_read = VIVS_MC_PROFILE_MC_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG2,
+               .nr_signals = 3,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "TOTAL_READ_REQ_8B_FROM_PIPELINE",
+                               VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_READ_REQ_8B_FROM_PIPELINE,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_READ_REQ_8B_FROM_IP",
+                               VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_READ_REQ_8B_FROM_IP,
+                               &perf_reg_read
+                       },
+                       {
+                               "TOTAL_WRITE_REQ_8B_FROM_PIPELINE",
+                               VIVS_MC_PROFILE_CONFIG2_MC_TOTAL_WRITE_REQ_8B_FROM_PIPELINE,
+                               &perf_reg_read
+                       }
+               }
+       }
+};
+
+static const struct etnaviv_pm_domain doms_2d[] = {
+       {
+               .name = "PE",
+               .profile_read = VIVS_MC_PROFILE_PE_READ,
+               .profile_config = VIVS_MC_PROFILE_CONFIG0,
+               .nr_signals = 1,
+               .signal = (const struct etnaviv_pm_signal[]) {
+                       {
+                               "PIXELS_RENDERED_2D",
+                               VIVS_MC_PROFILE_CONFIG0_PE_PIXELS_RENDERED_2D,
+                               &pipe_reg_read
+                       }
+               }
+       }
+};
+
+static const struct etnaviv_pm_domain doms_vg[] = {
+};
+
+static const struct etnaviv_pm_domain_meta doms_meta[] = {
+       {
+               .nr_domains = ARRAY_SIZE(doms_3d),
+               .domains = &doms_3d[0]
+       },
+       {
+               .nr_domains = ARRAY_SIZE(doms_2d),
+               .domains = &doms_2d[0]
+       },
+       {
+               .nr_domains = ARRAY_SIZE(doms_vg),
+               .domains = &doms_vg[0]
+       }
+};
+
+int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
+       struct drm_etnaviv_pm_domain *domain)
+{
+       const struct etnaviv_pm_domain_meta *meta = &doms_meta[domain->pipe];
+       const struct etnaviv_pm_domain *dom;
+
+       if (domain->iter >= meta->nr_domains)
+               return -EINVAL;
+
+       dom = meta->domains + domain->iter;
+
+       domain->id = domain->iter;
+       domain->nr_signals = dom->nr_signals;
+       strncpy(domain->name, dom->name, sizeof(domain->name));
+
+       domain->iter++;
+       if (domain->iter == meta->nr_domains)
+               domain->iter = 0xff;
+
+       return 0;
+}
+
+int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
+       struct drm_etnaviv_pm_signal *signal)
+{
+       const struct etnaviv_pm_domain_meta *meta = &doms_meta[signal->pipe];
+       const struct etnaviv_pm_domain *dom;
+       const struct etnaviv_pm_signal *sig;
+
+       if (signal->domain >= meta->nr_domains)
+               return -EINVAL;
+
+       dom = meta->domains + signal->domain;
+
+       if (signal->iter > dom->nr_signals)
+               return -EINVAL;
+
+       sig = &dom->signal[signal->iter];
+
+       signal->id = signal->iter;
+       strncpy(signal->name, sig->name, sizeof(signal->name));
+
+       signal->iter++;
+       if (signal->iter == dom->nr_signals)
+               signal->iter = 0xffff;
+
+       return 0;
+}
+
+int etnaviv_pm_req_validate(const struct drm_etnaviv_gem_submit_pmr *r,
+       u32 exec_state)
+{
+       const struct etnaviv_pm_domain_meta *meta = &doms_meta[exec_state];
+       const struct etnaviv_pm_domain *dom;
+
+       if (r->domain >= meta->nr_domains)
+               return -EINVAL;
+
+       dom = meta->domains + r->domain;
+
+       if (r->signal > dom->nr_signals)
+               return -EINVAL;
+
+       return 0;
+}
+
+void etnaviv_perfmon_process(struct etnaviv_gpu *gpu,
+       const struct etnaviv_perfmon_request *pmr)
+{
+       const struct etnaviv_pm_domain_meta *meta = &doms_meta[gpu->exec_state];
+       const struct etnaviv_pm_domain *dom;
+       const struct etnaviv_pm_signal *sig;
+       u32 *bo = pmr->bo_vma;
+       u32 val;
+
+       dom = meta->domains + pmr->domain;
+       sig = &dom->signal[pmr->signal];
+       val = sig->sample(gpu, dom, sig);
+
+       *(bo + pmr->offset) = val;
+}
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_perfmon.h b/drivers/gpu/drm/etnaviv/etnaviv_perfmon.h
new file mode 100644 (file)
index 0000000..35dce19
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 Etnaviv Project
+ * Copyright (C) 2017 Zodiac Inflight Innovations
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published by
+ * the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __ETNAVIV_PERFMON_H__
+#define __ETNAVIV_PERFMON_H__
+
+struct etnaviv_gpu;
+struct drm_etnaviv_pm_domain;
+struct drm_etnaviv_pm_signal;
+
+struct etnaviv_perfmon_request
+{
+       u32 flags;
+       u8 domain;
+       u8 signal;
+       u32 sequence;
+
+       /* bo to store a value */
+       u32 *bo_vma;
+       u32 offset;
+};
+
+int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
+       struct drm_etnaviv_pm_domain *domain);
+
+int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
+       struct drm_etnaviv_pm_signal *signal);
+
+int etnaviv_pm_req_validate(const struct drm_etnaviv_gem_submit_pmr *r,
+       u32 exec_state);
+
+void etnaviv_perfmon_process(struct etnaviv_gpu *gpu,
+       const struct etnaviv_perfmon_request *pmr);
+
+#endif /* __ETNAVIV_PERFMON_H__ */
index ec4dd9d..f4eba87 100644 (file)
@@ -36,7 +36,7 @@ static int hibmc_connector_mode_valid(struct drm_connector *connector,
 static struct drm_encoder *
 hibmc_connector_best_encoder(struct drm_connector *connector)
 {
-       return drm_encoder_find(connector->dev, connector->encoder_ids[0]);
+       return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]);
 }
 
 static const struct drm_connector_helper_funcs
index e9e64e8..dfd9588 100644 (file)
@@ -12,6 +12,7 @@ config DRM_I915
        select DRM_PANEL
        select DRM_MIPI_DSI
        select RELAY
+       select IRQ_WORK
        # i915 depends on ACPI_VIDEO when ACPI is enabled
        # but for select to work, need to select ACPI_VIDEO's dependencies, ick
        select BACKLIGHT_LCD_SUPPORT if ACPI
index 1cb8059..5182e3d 100644 (file)
@@ -139,7 +139,8 @@ i915-y += i915_perf.o \
          i915_oa_bxt.o \
          i915_oa_kblgt2.o \
          i915_oa_kblgt3.o \
-         i915_oa_glk.o
+         i915_oa_glk.o \
+         i915_oa_cflgt2.o
 
 ifeq ($(CONFIG_DRM_I915_GVT),y)
 i915-y += intel_gvt.o
index ff3154f..ab19545 100644 (file)
@@ -101,7 +101,7 @@ int intel_vgpu_emulate_cfg_read(struct intel_vgpu *vgpu, unsigned int offset,
        if (WARN_ON(bytes > 4))
                return -EINVAL;
 
-       if (WARN_ON(offset + bytes > INTEL_GVT_MAX_CFG_SPACE_SZ))
+       if (WARN_ON(offset + bytes > vgpu->gvt->device_info.cfg_space_size))
                return -EINVAL;
 
        memcpy(p_data, vgpu_cfg_space(vgpu) + offset, bytes);
@@ -110,13 +110,25 @@ int intel_vgpu_emulate_cfg_read(struct intel_vgpu *vgpu, unsigned int offset,
 
 static int map_aperture(struct intel_vgpu *vgpu, bool map)
 {
-       u64 first_gfn, first_mfn;
+       phys_addr_t aperture_pa = vgpu_aperture_pa_base(vgpu);
+       unsigned long aperture_sz = vgpu_aperture_sz(vgpu);
+       u64 first_gfn;
        u64 val;
        int ret;
 
        if (map == vgpu->cfg_space.bar[INTEL_GVT_PCI_BAR_APERTURE].tracked)
                return 0;
 
+       if (map) {
+               vgpu->gm.aperture_va = memremap(aperture_pa, aperture_sz,
+                                               MEMREMAP_WC);
+               if (!vgpu->gm.aperture_va)
+                       return -ENOMEM;
+       } else {
+               memunmap(vgpu->gm.aperture_va);
+               vgpu->gm.aperture_va = NULL;
+       }
+
        val = vgpu_cfg_space(vgpu)[PCI_BASE_ADDRESS_2];
        if (val & PCI_BASE_ADDRESS_MEM_TYPE_64)
                val = *(u64 *)(vgpu_cfg_space(vgpu) + PCI_BASE_ADDRESS_2);
@@ -124,14 +136,16 @@ static int map_aperture(struct intel_vgpu *vgpu, bool map)
                val = *(u32 *)(vgpu_cfg_space(vgpu) + PCI_BASE_ADDRESS_2);
 
        first_gfn = (val + vgpu_aperture_offset(vgpu)) >> PAGE_SHIFT;
-       first_mfn = vgpu_aperture_pa_base(vgpu) >> PAGE_SHIFT;
 
        ret = intel_gvt_hypervisor_map_gfn_to_mfn(vgpu, first_gfn,
-                                                 first_mfn,
-                                                 vgpu_aperture_sz(vgpu) >>
-                                                 PAGE_SHIFT, map);
-       if (ret)
+                                                 aperture_pa >> PAGE_SHIFT,
+                                                 aperture_sz >> PAGE_SHIFT,
+                                                 map);
+       if (ret) {
+               memunmap(vgpu->gm.aperture_va);
+               vgpu->gm.aperture_va = NULL;
                return ret;
+       }
 
        vgpu->cfg_space.bar[INTEL_GVT_PCI_BAR_APERTURE].tracked = map;
        return 0;
@@ -275,7 +289,7 @@ int intel_vgpu_emulate_cfg_write(struct intel_vgpu *vgpu, unsigned int offset,
        if (WARN_ON(bytes > 4))
                return -EINVAL;
 
-       if (WARN_ON(offset + bytes > INTEL_GVT_MAX_CFG_SPACE_SZ))
+       if (WARN_ON(offset + bytes > vgpu->gvt->device_info.cfg_space_size))
                return -EINVAL;
 
        /* First check if it's PCI_COMMAND */
index 21c36e2..2c0ccbb 100644 (file)
@@ -1576,11 +1576,11 @@ static int batch_buffer_needs_scan(struct parser_exec_state *s)
        return 1;
 }
 
-static uint32_t find_bb_size(struct parser_exec_state *s)
+static int find_bb_size(struct parser_exec_state *s)
 {
        unsigned long gma = 0;
        struct cmd_info *info;
-       uint32_t bb_size = 0;
+       int bb_size = 0;
        uint32_t cmd_len = 0;
        bool met_bb_end = false;
        struct intel_vgpu *vgpu = s->vgpu;
@@ -1637,6 +1637,8 @@ static int perform_bb_shadow(struct parser_exec_state *s)
 
        /* get the size of the batch buffer */
        bb_size = find_bb_size(s);
+       if (bb_size < 0)
+               return -EINVAL;
 
        /* allocate shadow batch buffer */
        entry_obj = kmalloc(sizeof(*entry_obj), GFP_KERNEL);
@@ -2603,7 +2605,8 @@ static int shadow_workload_ring_buffer(struct intel_vgpu_workload *workload)
 {
        struct intel_vgpu *vgpu = workload->vgpu;
        unsigned long gma_head, gma_tail, gma_top, guest_rb_size;
-       u32 *cs;
+       void *shadow_ring_buffer_va;
+       int ring_id = workload->ring_id;
        int ret;
 
        guest_rb_size = _RING_CTL_BUF_SIZE(workload->rb_ctl);
@@ -2616,34 +2619,42 @@ static int shadow_workload_ring_buffer(struct intel_vgpu_workload *workload)
        gma_tail = workload->rb_start + workload->rb_tail;
        gma_top = workload->rb_start + guest_rb_size;
 
-       /* allocate shadow ring buffer */
-       cs = intel_ring_begin(workload->req, workload->rb_len / sizeof(u32));
-       if (IS_ERR(cs))
-               return PTR_ERR(cs);
+       if (workload->rb_len > vgpu->reserve_ring_buffer_size[ring_id]) {
+               void *va = vgpu->reserve_ring_buffer_va[ring_id];
+               /* realloc the new ring buffer if needed */
+               vgpu->reserve_ring_buffer_va[ring_id] =
+                       krealloc(va, workload->rb_len, GFP_KERNEL);
+               if (!vgpu->reserve_ring_buffer_va[ring_id]) {
+                       gvt_vgpu_err("fail to alloc reserve ring buffer\n");
+                       return -ENOMEM;
+               }
+               vgpu->reserve_ring_buffer_size[ring_id] = workload->rb_len;
+       }
+
+       shadow_ring_buffer_va = vgpu->reserve_ring_buffer_va[ring_id];
 
        /* get shadow ring buffer va */
-       workload->shadow_ring_buffer_va = cs;
+       workload->shadow_ring_buffer_va = shadow_ring_buffer_va;
 
        /* head > tail --> copy head <-> top */
        if (gma_head > gma_tail) {
                ret = copy_gma_to_hva(vgpu, vgpu->gtt.ggtt_mm,
-                                     gma_head, gma_top, cs);
+                                     gma_head, gma_top, shadow_ring_buffer_va);
                if (ret < 0) {
                        gvt_vgpu_err("fail to copy guest ring buffer\n");
                        return ret;
                }
-               cs += ret / sizeof(u32);
+               shadow_ring_buffer_va += ret;
                gma_head = workload->rb_start;
        }
 
        /* copy head or start <-> tail */
-       ret = copy_gma_to_hva(vgpu, vgpu->gtt.ggtt_mm, gma_head, gma_tail, cs);
+       ret = copy_gma_to_hva(vgpu, vgpu->gtt.ggtt_mm, gma_head, gma_tail,
+                               shadow_ring_buffer_va);
        if (ret < 0) {
                gvt_vgpu_err("fail to copy guest ring buffer\n");
                return ret;
        }
-       cs += ret / sizeof(u32);
-       intel_ring_advance(workload->req, cs);
        return 0;
 }
 
index 91b4300..5ec07ec 100644 (file)
@@ -368,7 +368,7 @@ static void free_workload(struct intel_vgpu_workload *workload)
 #define get_desc_from_elsp_dwords(ed, i) \
        ((struct execlist_ctx_descriptor_format *)&((ed)->data[i * 2]))
 
-static void prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
+static int prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
 {
        const int gmadr_bytes = workload->vgpu->gvt->device_info.gmadr_bytes_in_cmd;
        struct intel_shadow_bb_entry *entry_obj;
@@ -379,7 +379,7 @@ static void prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
 
                vma = i915_gem_object_ggtt_pin(entry_obj->obj, NULL, 0, 4, 0);
                if (IS_ERR(vma)) {
-                       return;
+                       return PTR_ERR(vma);
                }
 
                /* FIXME: we are not tracking our pinned VMA leaving it
@@ -392,6 +392,7 @@ static void prepare_shadow_batch_buffer(struct intel_vgpu_workload *workload)
                if (gmadr_bytes == 8)
                        entry_obj->bb_start_cmd_va[2] = 0;
        }
+       return 0;
 }
 
 static int update_wa_ctx_2_shadow_ctx(struct intel_shadow_wa_ctx *wa_ctx)
@@ -420,7 +421,7 @@ static int update_wa_ctx_2_shadow_ctx(struct intel_shadow_wa_ctx *wa_ctx)
        return 0;
 }
 
-static void prepare_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
+static int prepare_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
 {
        struct i915_vma *vma;
        unsigned char *per_ctx_va =
@@ -428,12 +429,12 @@ static void prepare_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
                wa_ctx->indirect_ctx.size;
 
        if (wa_ctx->indirect_ctx.size == 0)
-               return;
+               return 0;
 
        vma = i915_gem_object_ggtt_pin(wa_ctx->indirect_ctx.obj, NULL,
                                       0, CACHELINE_BYTES, 0);
        if (IS_ERR(vma)) {
-               return;
+               return PTR_ERR(vma);
        }
 
        /* FIXME: we are not tracking our pinned VMA leaving it
@@ -447,26 +448,7 @@ static void prepare_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
        memset(per_ctx_va, 0, CACHELINE_BYTES);
 
        update_wa_ctx_2_shadow_ctx(wa_ctx);
-}
-
-static int prepare_execlist_workload(struct intel_vgpu_workload *workload)
-{
-       struct intel_vgpu *vgpu = workload->vgpu;
-       struct execlist_ctx_descriptor_format ctx[2];
-       int ring_id = workload->ring_id;
-
-       intel_vgpu_pin_mm(workload->shadow_mm);
-       intel_vgpu_sync_oos_pages(workload->vgpu);
-       intel_vgpu_flush_post_shadow(workload->vgpu);
-       prepare_shadow_batch_buffer(workload);
-       prepare_shadow_wa_ctx(&workload->wa_ctx);
-       if (!workload->emulate_schedule_in)
-               return 0;
-
-       ctx[0] = *get_desc_from_elsp_dwords(&workload->elsp_dwords, 1);
-       ctx[1] = *get_desc_from_elsp_dwords(&workload->elsp_dwords, 0);
-
-       return emulate_execlist_schedule_in(&vgpu->execlist[ring_id], ctx);
+       return 0;
 }
 
 static void release_shadow_batch_buffer(struct intel_vgpu_workload *workload)
@@ -489,13 +471,62 @@ static void release_shadow_batch_buffer(struct intel_vgpu_workload *workload)
        }
 }
 
-static void release_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
+static int prepare_execlist_workload(struct intel_vgpu_workload *workload)
 {
-       if (!wa_ctx->indirect_ctx.obj)
-               return;
+       struct intel_vgpu *vgpu = workload->vgpu;
+       struct execlist_ctx_descriptor_format ctx[2];
+       int ring_id = workload->ring_id;
+       int ret;
+
+       ret = intel_vgpu_pin_mm(workload->shadow_mm);
+       if (ret) {
+               gvt_vgpu_err("fail to vgpu pin mm\n");
+               goto out;
+       }
+
+       ret = intel_vgpu_sync_oos_pages(workload->vgpu);
+       if (ret) {
+               gvt_vgpu_err("fail to vgpu sync oos pages\n");
+               goto err_unpin_mm;
+       }
 
-       i915_gem_object_unpin_map(wa_ctx->indirect_ctx.obj);
-       i915_gem_object_put(wa_ctx->indirect_ctx.obj);
+       ret = intel_vgpu_flush_post_shadow(workload->vgpu);
+       if (ret) {
+               gvt_vgpu_err("fail to flush post shadow\n");
+               goto err_unpin_mm;
+       }
+
+       ret = prepare_shadow_batch_buffer(workload);
+       if (ret) {
+               gvt_vgpu_err("fail to prepare_shadow_batch_buffer\n");
+               goto err_unpin_mm;
+       }
+
+       ret = prepare_shadow_wa_ctx(&workload->wa_ctx);
+       if (ret) {
+               gvt_vgpu_err("fail to prepare_shadow_wa_ctx\n");
+               goto err_shadow_batch;
+       }
+
+       if (!workload->emulate_schedule_in)
+               return 0;
+
+       ctx[0] = *get_desc_from_elsp_dwords(&workload->elsp_dwords, 1);
+       ctx[1] = *get_desc_from_elsp_dwords(&workload->elsp_dwords, 0);
+
+       ret = emulate_execlist_schedule_in(&vgpu->execlist[ring_id], ctx);
+       if (!ret)
+               goto out;
+       else
+               gvt_vgpu_err("fail to emulate execlist schedule in\n");
+
+       release_shadow_wa_ctx(&workload->wa_ctx);
+err_shadow_batch:
+       release_shadow_batch_buffer(workload);
+err_unpin_mm:
+       intel_vgpu_unpin_mm(workload->shadow_mm);
+out:
+       return ret;
 }
 
 static int complete_execlist_workload(struct intel_vgpu_workload *workload)
@@ -511,8 +542,10 @@ static int complete_execlist_workload(struct intel_vgpu_workload *workload)
        gvt_dbg_el("complete workload %p status %d\n", workload,
                        workload->status);
 
-       release_shadow_batch_buffer(workload);
-       release_shadow_wa_ctx(&workload->wa_ctx);
+       if (!workload->status) {
+               release_shadow_batch_buffer(workload);
+               release_shadow_wa_ctx(&workload->wa_ctx);
+       }
 
        if (workload->status || (vgpu->resetting_eng & ENGINE_MASK(ring_id))) {
                /* if workload->status is not successful means HW GPU
@@ -820,10 +853,21 @@ static void clean_workloads(struct intel_vgpu *vgpu, unsigned long engine_mask)
 
 void intel_vgpu_clean_execlist(struct intel_vgpu *vgpu)
 {
+       enum intel_engine_id i;
+       struct intel_engine_cs *engine;
+
        clean_workloads(vgpu, ALL_ENGINES);
        kmem_cache_destroy(vgpu->workloads);
+
+       for_each_engine(engine, vgpu->gvt->dev_priv, i) {
+               kfree(vgpu->reserve_ring_buffer_va[i]);
+               vgpu->reserve_ring_buffer_va[i] = NULL;
+               vgpu->reserve_ring_buffer_size[i] = 0;
+       }
+
 }
 
+#define RESERVE_RING_BUFFER_SIZE               ((1 * PAGE_SIZE)/8)
 int intel_vgpu_init_execlist(struct intel_vgpu *vgpu)
 {
        enum intel_engine_id i;
@@ -843,7 +887,26 @@ int intel_vgpu_init_execlist(struct intel_vgpu *vgpu)
        if (!vgpu->workloads)
                return -ENOMEM;
 
+       /* each ring has a shadow ring buffer until vgpu destroyed */
+       for_each_engine(engine, vgpu->gvt->dev_priv, i) {
+               vgpu->reserve_ring_buffer_va[i] =
+                       kmalloc(RESERVE_RING_BUFFER_SIZE, GFP_KERNEL);
+               if (!vgpu->reserve_ring_buffer_va[i]) {
+                       gvt_vgpu_err("fail to alloc reserve ring buffer\n");
+                       goto out;
+               }
+               vgpu->reserve_ring_buffer_size[i] = RESERVE_RING_BUFFER_SIZE;
+       }
        return 0;
+out:
+       for_each_engine(engine, vgpu->gvt->dev_priv, i) {
+               if (vgpu->reserve_ring_buffer_size[i]) {
+                       kfree(vgpu->reserve_ring_buffer_va[i]);
+                       vgpu->reserve_ring_buffer_va[i] = NULL;
+                       vgpu->reserve_ring_buffer_size[i] = 0;
+               }
+       }
+       return -ENOMEM;
 }
 
 void intel_vgpu_reset_execlist(struct intel_vgpu *vgpu,
index e6dfc33..2801d70 100644 (file)
@@ -1647,14 +1647,13 @@ int intel_vgpu_pin_mm(struct intel_vgpu_mm *mm)
        if (WARN_ON(mm->type != INTEL_GVT_MM_PPGTT))
                return 0;
 
-       atomic_inc(&mm->pincount);
-
        if (!mm->shadowed) {
                ret = shadow_mm(mm);
                if (ret)
                        return ret;
        }
 
+       atomic_inc(&mm->pincount);
        list_del_init(&mm->lru_list);
        list_add_tail(&mm->lru_list, &mm->vgpu->gvt->gtt.mm_lru_list_head);
        return 0;
@@ -1972,7 +1971,7 @@ static int alloc_scratch_pages(struct intel_vgpu *vgpu,
                 */
                se.val64 |= _PAGE_PRESENT | _PAGE_RW;
                if (type == GTT_TYPE_PPGTT_PDE_PT)
-                       se.val64 |= PPAT_CACHED_INDEX;
+                       se.val64 |= PPAT_CACHED;
 
                for (i = 0; i < page_entry_num; i++)
                        ops->set_entry(scratch_pt, &se, i, false, 0, vgpu);
index c27c683..aaa347f 100644 (file)
@@ -111,7 +111,7 @@ static void init_device_info(struct intel_gvt *gvt)
        if (IS_BROADWELL(gvt->dev_priv) || IS_SKYLAKE(gvt->dev_priv)
                || IS_KABYLAKE(gvt->dev_priv)) {
                info->max_support_vgpus = 8;
-               info->cfg_space_size = 256;
+               info->cfg_space_size = PCI_CFG_SPACE_EXP_SIZE;
                info->mmio_size = 2 * 1024 * 1024;
                info->mmio_bar = 0;
                info->gtt_start_offset = 8 * 1024 * 1024;
index 44b719e..9c2e7c0 100644 (file)
@@ -80,6 +80,7 @@ struct intel_gvt_device_info {
 struct intel_vgpu_gm {
        u64 aperture_sz;
        u64 hidden_sz;
+       void *aperture_va;
        struct drm_mm_node low_gm_node;
        struct drm_mm_node high_gm_node;
 };
@@ -99,7 +100,6 @@ struct intel_vgpu_mmio {
        bool disable_warn_untrack;
 };
 
-#define INTEL_GVT_MAX_CFG_SPACE_SZ 256
 #define INTEL_GVT_MAX_BAR_NUM 4
 
 struct intel_vgpu_pci_bar {
@@ -108,7 +108,7 @@ struct intel_vgpu_pci_bar {
 };
 
 struct intel_vgpu_cfg_space {
-       unsigned char virtual_cfg_space[INTEL_GVT_MAX_CFG_SPACE_SZ];
+       unsigned char virtual_cfg_space[PCI_CFG_SPACE_EXP_SIZE];
        struct intel_vgpu_pci_bar bar[INTEL_GVT_MAX_BAR_NUM];
 };
 
@@ -165,6 +165,9 @@ struct intel_vgpu {
        struct list_head workload_q_head[I915_NUM_ENGINES];
        struct kmem_cache *workloads;
        atomic_t running_workload_num;
+       /* 1/2K for each reserve ring buffer */
+       void *reserve_ring_buffer_va[I915_NUM_ENGINES];
+       int reserve_ring_buffer_size[I915_NUM_ENGINES];
        DECLARE_BITMAP(tlb_handle_pending, I915_NUM_ENGINES);
        struct i915_gem_context *shadow_ctx;
        DECLARE_BITMAP(shadow_ctx_desc_updated, I915_NUM_ENGINES);
@@ -474,6 +477,13 @@ int intel_vgpu_emulate_cfg_read(struct intel_vgpu *vgpu, unsigned int offset,
 int intel_vgpu_emulate_cfg_write(struct intel_vgpu *vgpu, unsigned int offset,
                void *p_data, unsigned int bytes);
 
+static inline u64 intel_vgpu_get_bar_gpa(struct intel_vgpu *vgpu, int bar)
+{
+       /* We are 64bit bar. */
+       return (*(u64 *)(vgpu->cfg_space.virtual_cfg_space + bar)) &
+                       PCI_BASE_ADDRESS_MEM_MASK;
+}
+
 void intel_gvt_clean_opregion(struct intel_gvt *gvt);
 int intel_gvt_init_opregion(struct intel_gvt *gvt);
 
index 83e88c7..9606092 100644 (file)
@@ -609,21 +609,20 @@ static void intel_vgpu_release_work(struct work_struct *work)
        __intel_vgpu_release(vgpu);
 }
 
-static uint64_t intel_vgpu_get_bar0_addr(struct intel_vgpu *vgpu)
+static uint64_t intel_vgpu_get_bar_addr(struct intel_vgpu *vgpu, int bar)
 {
        u32 start_lo, start_hi;
        u32 mem_type;
-       int pos = PCI_BASE_ADDRESS_0;
 
-       start_lo = (*(u32 *)(vgpu->cfg_space.virtual_cfg_space + pos)) &
+       start_lo = (*(u32 *)(vgpu->cfg_space.virtual_cfg_space + bar)) &
                        PCI_BASE_ADDRESS_MEM_MASK;
-       mem_type = (*(u32 *)(vgpu->cfg_space.virtual_cfg_space + pos)) &
+       mem_type = (*(u32 *)(vgpu->cfg_space.virtual_cfg_space + bar)) &
                        PCI_BASE_ADDRESS_MEM_TYPE_MASK;
 
        switch (mem_type) {
        case PCI_BASE_ADDRESS_MEM_TYPE_64:
                start_hi = (*(u32 *)(vgpu->cfg_space.virtual_cfg_space
-                                               + pos + 4));
+                                               + bar + 4));
                break;
        case PCI_BASE_ADDRESS_MEM_TYPE_32:
        case PCI_BASE_ADDRESS_MEM_TYPE_1M:
@@ -637,6 +636,21 @@ static uint64_t intel_vgpu_get_bar0_addr(struct intel_vgpu *vgpu)
        return ((u64)start_hi << 32) | start_lo;
 }
 
+static int intel_vgpu_bar_rw(struct intel_vgpu *vgpu, int bar, uint64_t off,
+                            void *buf, unsigned int count, bool is_write)
+{
+       uint64_t bar_start = intel_vgpu_get_bar_addr(vgpu, bar);
+       int ret;
+
+       if (is_write)
+               ret = intel_gvt_ops->emulate_mmio_write(vgpu,
+                                       bar_start + off, buf, count);
+       else
+               ret = intel_gvt_ops->emulate_mmio_read(vgpu,
+                                       bar_start + off, buf, count);
+       return ret;
+}
+
 static ssize_t intel_vgpu_rw(struct mdev_device *mdev, char *buf,
                        size_t count, loff_t *ppos, bool is_write)
 {
@@ -661,20 +675,14 @@ static ssize_t intel_vgpu_rw(struct mdev_device *mdev, char *buf,
                                                buf, count);
                break;
        case VFIO_PCI_BAR0_REGION_INDEX:
-       case VFIO_PCI_BAR1_REGION_INDEX:
-               if (is_write) {
-                       uint64_t bar0_start = intel_vgpu_get_bar0_addr(vgpu);
-
-                       ret = intel_gvt_ops->emulate_mmio_write(vgpu,
-                                               bar0_start + pos, buf, count);
-               } else {
-                       uint64_t bar0_start = intel_vgpu_get_bar0_addr(vgpu);
-
-                       ret = intel_gvt_ops->emulate_mmio_read(vgpu,
-                                               bar0_start + pos, buf, count);
-               }
+               ret = intel_vgpu_bar_rw(vgpu, PCI_BASE_ADDRESS_0, pos,
+                                       buf, count, is_write);
                break;
        case VFIO_PCI_BAR2_REGION_INDEX:
+               ret = intel_vgpu_bar_rw(vgpu, PCI_BASE_ADDRESS_2, pos,
+                                       buf, count, is_write);
+               break;
+       case VFIO_PCI_BAR1_REGION_INDEX:
        case VFIO_PCI_BAR3_REGION_INDEX:
        case VFIO_PCI_BAR4_REGION_INDEX:
        case VFIO_PCI_BAR5_REGION_INDEX:
@@ -970,7 +978,7 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
                switch (info.index) {
                case VFIO_PCI_CONFIG_REGION_INDEX:
                        info.offset = VFIO_PCI_INDEX_TO_OFFSET(info.index);
-                       info.size = INTEL_GVT_MAX_CFG_SPACE_SZ;
+                       info.size = vgpu->gvt->device_info.cfg_space_size;
                        info.flags = VFIO_REGION_INFO_FLAG_READ |
                                     VFIO_REGION_INFO_FLAG_WRITE;
                        break;
index 980ec89..1e1310f 100644 (file)
@@ -45,8 +45,7 @@
  */
 int intel_vgpu_gpa_to_mmio_offset(struct intel_vgpu *vgpu, u64 gpa)
 {
-       u64 gttmmio_gpa = *(u64 *)(vgpu_cfg_space(vgpu) + PCI_BASE_ADDRESS_0) &
-                         ~GENMASK(3, 0);
+       u64 gttmmio_gpa = intel_vgpu_get_bar_gpa(vgpu, PCI_BASE_ADDRESS_0);
        return gpa - gttmmio_gpa;
 }
 
@@ -57,6 +56,38 @@ int intel_vgpu_gpa_to_mmio_offset(struct intel_vgpu *vgpu, u64 gpa)
        (reg >= gvt->device_info.gtt_start_offset \
         && reg < gvt->device_info.gtt_start_offset + gvt_ggtt_sz(gvt))
 
+static bool vgpu_gpa_is_aperture(struct intel_vgpu *vgpu, uint64_t gpa)
+{
+       u64 aperture_gpa = intel_vgpu_get_bar_gpa(vgpu, PCI_BASE_ADDRESS_2);
+       u64 aperture_sz = vgpu_aperture_sz(vgpu);
+
+       return gpa >= aperture_gpa && gpa < aperture_gpa + aperture_sz;
+}
+
+static int vgpu_aperture_rw(struct intel_vgpu *vgpu, uint64_t gpa,
+                           void *pdata, unsigned int size, bool is_read)
+{
+       u64 aperture_gpa = intel_vgpu_get_bar_gpa(vgpu, PCI_BASE_ADDRESS_2);
+       u64 offset = gpa - aperture_gpa;
+
+       if (!vgpu_gpa_is_aperture(vgpu, gpa + size - 1)) {
+               gvt_vgpu_err("Aperture rw out of range, offset %llx, size %d\n",
+                            offset, size);
+               return -EINVAL;
+       }
+
+       if (!vgpu->gm.aperture_va) {
+               gvt_vgpu_err("BAR is not enabled\n");
+               return -ENXIO;
+       }
+
+       if (is_read)
+               memcpy(pdata, vgpu->gm.aperture_va + offset, size);
+       else
+               memcpy(vgpu->gm.aperture_va + offset, pdata, size);
+       return 0;
+}
+
 static void failsafe_emulate_mmio_rw(struct intel_vgpu *vgpu, uint64_t pa,
                void *p_data, unsigned int bytes, bool read)
 {
@@ -133,6 +164,12 @@ int intel_vgpu_emulate_mmio_read(struct intel_vgpu *vgpu, uint64_t pa,
        }
        mutex_lock(&gvt->lock);
 
+       if (vgpu_gpa_is_aperture(vgpu, pa)) {
+               ret = vgpu_aperture_rw(vgpu, pa, p_data, bytes, true);
+               mutex_unlock(&gvt->lock);
+               return ret;
+       }
+
        if (atomic_read(&vgpu->gtt.n_write_protected_guest_page)) {
                struct intel_vgpu_guest_page *gp;
 
@@ -224,6 +261,12 @@ int intel_vgpu_emulate_mmio_write(struct intel_vgpu *vgpu, uint64_t pa,
 
        mutex_lock(&gvt->lock);
 
+       if (vgpu_gpa_is_aperture(vgpu, pa)) {
+               ret = vgpu_aperture_rw(vgpu, pa, p_data, bytes, false);
+               mutex_unlock(&gvt->lock);
+               return ret;
+       }
+
        if (atomic_read(&vgpu->gtt.n_write_protected_guest_page)) {
                struct intel_vgpu_guest_page *gp;
 
index 2ea5422..6d066cf 100644 (file)
@@ -293,7 +293,7 @@ static void switch_mmio_to_vgpu(struct intel_vgpu *vgpu, int ring_id)
                 */
                if (mmio->in_context &&
                                ((ctx_ctrl & inhibit_mask) != inhibit_mask) &&
-                               i915.enable_execlists)
+                               i915_modparams.enable_execlists)
                        continue;
 
                if (mmio->mask)
index 391800d..d5892d2 100644 (file)
@@ -87,7 +87,7 @@ static int populate_shadow_context(struct intel_vgpu_workload *workload)
                        return -EINVAL;
                }
 
-               page = i915_gem_object_get_page(ctx_obj, LRC_PPHWSP_PN + i);
+               page = i915_gem_object_get_page(ctx_obj, LRC_HEADER_PAGES + i);
                dst = kmap(page);
                intel_gvt_hypervisor_read_gpa(vgpu, context_gpa, dst,
                                GTT_PAGE_SIZE);
@@ -201,6 +201,43 @@ static void shadow_context_descriptor_update(struct i915_gem_context *ctx,
        ce->lrc_desc = desc;
 }
 
+static int copy_workload_to_ring_buffer(struct intel_vgpu_workload *workload)
+{
+       struct intel_vgpu *vgpu = workload->vgpu;
+       void *shadow_ring_buffer_va;
+       u32 *cs;
+
+       /* allocate shadow ring buffer */
+       cs = intel_ring_begin(workload->req, workload->rb_len / sizeof(u32));
+       if (IS_ERR(cs)) {
+               gvt_vgpu_err("fail to alloc size =%ld shadow  ring buffer\n",
+                       workload->rb_len);
+               return PTR_ERR(cs);
+       }
+
+       shadow_ring_buffer_va = workload->shadow_ring_buffer_va;
+
+       /* get shadow ring buffer va */
+       workload->shadow_ring_buffer_va = cs;
+
+       memcpy(cs, shadow_ring_buffer_va,
+                       workload->rb_len);
+
+       cs += workload->rb_len / sizeof(u32);
+       intel_ring_advance(workload->req, cs);
+
+       return 0;
+}
+
+void release_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
+{
+       if (!wa_ctx->indirect_ctx.obj)
+               return;
+
+       i915_gem_object_unpin_map(wa_ctx->indirect_ctx.obj);
+       i915_gem_object_put(wa_ctx->indirect_ctx.obj);
+}
+
 /**
  * intel_gvt_scan_and_shadow_workload - audit the workload by scanning and
  * shadow it as well, include ringbuffer,wa_ctx and ctx.
@@ -214,8 +251,10 @@ int intel_gvt_scan_and_shadow_workload(struct intel_vgpu_workload *workload)
        int ring_id = workload->ring_id;
        struct i915_gem_context *shadow_ctx = workload->vgpu->shadow_ctx;
        struct drm_i915_private *dev_priv = workload->vgpu->gvt->dev_priv;
+       struct intel_engine_cs *engine = dev_priv->engine[ring_id];
        struct drm_i915_gem_request *rq;
        struct intel_vgpu *vgpu = workload->vgpu;
+       struct intel_ring *ring;
        int ret;
 
        lockdep_assert_held(&dev_priv->drm.struct_mutex);
@@ -231,35 +270,56 @@ int intel_gvt_scan_and_shadow_workload(struct intel_vgpu_workload *workload)
                shadow_context_descriptor_update(shadow_ctx,
                                        dev_priv->engine[ring_id]);
 
-       rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx);
-       if (IS_ERR(rq)) {
-               gvt_vgpu_err("fail to allocate gem request\n");
-               ret = PTR_ERR(rq);
-               goto out;
-       }
-
-       gvt_dbg_sched("ring id %d get i915 gem request %p\n", ring_id, rq);
-
-       workload->req = i915_gem_request_get(rq);
-
        ret = intel_gvt_scan_and_shadow_ringbuffer(workload);
        if (ret)
-               goto out;
+               goto err_scan;
 
        if ((workload->ring_id == RCS) &&
            (workload->wa_ctx.indirect_ctx.size != 0)) {
                ret = intel_gvt_scan_and_shadow_wa_ctx(&workload->wa_ctx);
                if (ret)
-                       goto out;
+                       goto err_scan;
+       }
+
+       /* pin shadow context by gvt even the shadow context will be pinned
+        * when i915 alloc request. That is because gvt will update the guest
+        * context from shadow context when workload is completed, and at that
+        * moment, i915 may already unpined the shadow context to make the
+        * shadow_ctx pages invalid. So gvt need to pin itself. After update
+        * the guest context, gvt can unpin the shadow_ctx safely.
+        */
+       ring = engine->context_pin(engine, shadow_ctx);
+       if (IS_ERR(ring)) {
+               ret = PTR_ERR(ring);
+               gvt_vgpu_err("fail to pin shadow context\n");
+               goto err_shadow;
        }
 
        ret = populate_shadow_context(workload);
        if (ret)
-               goto out;
+               goto err_unpin;
 
+       rq = i915_gem_request_alloc(dev_priv->engine[ring_id], shadow_ctx);
+       if (IS_ERR(rq)) {
+               gvt_vgpu_err("fail to allocate gem request\n");
+               ret = PTR_ERR(rq);
+               goto err_unpin;
+       }
+
+       gvt_dbg_sched("ring id %d get i915 gem request %p\n", ring_id, rq);
+
+       workload->req = i915_gem_request_get(rq);
+       ret = copy_workload_to_ring_buffer(workload);
+       if (ret)
+               goto err_unpin;
        workload->shadowed = true;
+       return 0;
 
-out:
+err_unpin:
+       engine->context_unpin(engine, shadow_ctx);
+err_shadow:
+       release_shadow_wa_ctx(&workload->wa_ctx);
+err_scan:
        return ret;
 }
 
@@ -269,8 +329,6 @@ static int dispatch_workload(struct intel_vgpu_workload *workload)
        struct i915_gem_context *shadow_ctx = workload->vgpu->shadow_ctx;
        struct drm_i915_private *dev_priv = workload->vgpu->gvt->dev_priv;
        struct intel_engine_cs *engine = dev_priv->engine[ring_id];
-       struct intel_vgpu *vgpu = workload->vgpu;
-       struct intel_ring *ring;
        int ret = 0;
 
        gvt_dbg_sched("ring id %d prepare to dispatch workload %p\n",
@@ -284,22 +342,10 @@ static int dispatch_workload(struct intel_vgpu_workload *workload)
 
        if (workload->prepare) {
                ret = workload->prepare(workload);
-               if (ret)
+               if (ret) {
+                       engine->context_unpin(engine, shadow_ctx);
                        goto out;
-       }
-
-       /* pin shadow context by gvt even the shadow context will be pinned
-        * when i915 alloc request. That is because gvt will update the guest
-        * context from shadow context when workload is completed, and at that
-        * moment, i915 may already unpined the shadow context to make the
-        * shadow_ctx pages invalid. So gvt need to pin itself. After update
-        * the guest context, gvt can unpin the shadow_ctx safely.
-        */
-       ring = engine->context_pin(engine, shadow_ctx);
-       if (IS_ERR(ring)) {
-               ret = PTR_ERR(ring);
-               gvt_vgpu_err("fail to pin shadow context\n");
-               goto out;
+               }
        }
 
 out:
@@ -408,7 +454,7 @@ static void update_guest_context(struct intel_vgpu_workload *workload)
                        return;
                }
 
-               page = i915_gem_object_get_page(ctx_obj, LRC_PPHWSP_PN + i);
+               page = i915_gem_object_get_page(ctx_obj, LRC_HEADER_PAGES + i);
                src = kmap(page);
                intel_gvt_hypervisor_write_gpa(vgpu, context_gpa, src,
                                GTT_PAGE_SIZE);
index 0d431a9..f36b85f 100644 (file)
@@ -140,4 +140,5 @@ int intel_vgpu_init_gvt_context(struct intel_vgpu *vgpu);
 
 void intel_vgpu_clean_gvt_context(struct intel_vgpu *vgpu);
 
+void release_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx);
 #endif
index e4d4b6b..b4a6ac6 100644 (file)
@@ -67,7 +67,7 @@ static int i915_capabilities(struct seq_file *m, void *data)
 #undef PRINT_FLAG
 
        kernel_param_lock(THIS_MODULE);
-#define PRINT_PARAM(T, x) seq_print_param(m, #x, #T, &i915.x);
+#define PRINT_PARAM(T, x, ...) seq_print_param(m, #x, #T, &i915_modparams.x);
        I915_PARAMS_FOR_EACH(PRINT_PARAM);
 #undef PRINT_PARAM
        kernel_param_unlock(THIS_MODULE);
@@ -1267,7 +1267,7 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
        if (waitqueue_active(&dev_priv->gpu_error.reset_queue))
                seq_puts(m, "struct_mutex blocked for reset\n");
 
-       if (!i915.enable_hangcheck) {
+       if (!i915_modparams.enable_hangcheck) {
                seq_puts(m, "Hangcheck disabled\n");
                return 0;
        }
@@ -1422,6 +1422,9 @@ static int i915_forcewake_domains(struct seq_file *m, void *data)
        struct intel_uncore_forcewake_domain *fw_domain;
        unsigned int tmp;
 
+       seq_printf(m, "user.bypass_count = %u\n",
+                  i915->uncore.user_forcewake.count);
+
        for_each_fw_domain(fw_domain, i915, tmp)
                seq_printf(m, "%s.wake_count = %u\n",
                           intel_uncore_forcewake_domain_to_str(fw_domain->id),
@@ -1699,7 +1702,7 @@ static int i915_ips_status(struct seq_file *m, void *unused)
        intel_runtime_pm_get(dev_priv);
 
        seq_printf(m, "Enabled by kernel parameter: %s\n",
-                  yesno(i915.enable_ips));
+                  yesno(i915_modparams.enable_ips));
 
        if (INTEL_GEN(dev_priv) >= 8) {
                seq_puts(m, "Currently: unknown\n");
@@ -2014,7 +2017,7 @@ static int i915_dump_lrc(struct seq_file *m, void *unused)
        enum intel_engine_id id;
        int ret;
 
-       if (!i915.enable_execlists) {
+       if (!i915_modparams.enable_execlists) {
                seq_printf(m, "Logical Ring Contexts are disabled\n");
                return 0;
        }
@@ -2443,12 +2446,8 @@ static void i915_guc_client_info(struct seq_file *m,
 
        seq_printf(m, "\tPriority %d, GuC stage index: %u, PD offset 0x%x\n",
                client->priority, client->stage_id, client->proc_desc_offset);
-       seq_printf(m, "\tDoorbell id %d, offset: 0x%lx, cookie 0x%x\n",
-               client->doorbell_id, client->doorbell_offset, client->doorbell_cookie);
-       seq_printf(m, "\tWQ size %d, offset: 0x%x, tail %d\n",
-               client->wq_size, client->wq_offset, client->wq_tail);
-
-       seq_printf(m, "\tWork queue full: %u\n", client->no_wq_space);
+       seq_printf(m, "\tDoorbell id %d, offset: 0x%lx\n",
+               client->doorbell_id, client->doorbell_offset);
 
        for_each_engine(engine, dev_priv, id) {
                u64 submissions = client->submissions[id];
@@ -2594,7 +2593,7 @@ static int i915_guc_log_control_get(void *data, u64 *val)
        if (!dev_priv->guc.log.vma)
                return -EINVAL;
 
-       *val = i915.guc_log_level;
+       *val = i915_modparams.guc_log_level;
 
        return 0;
 }
@@ -3312,7 +3311,9 @@ static int i915_engine_info(struct seq_file *m, void *unused)
                seq_printf(m, "\tBBADDR: 0x%08x_%08x\n",
                           upper_32_bits(addr), lower_32_bits(addr));
 
-               if (i915.enable_execlists) {
+               if (i915_modparams.enable_execlists) {
+                       const u32 *hws = &engine->status_page.page_addr[I915_HWS_CSB_BUF0_INDEX];
+                       struct intel_engine_execlists * const execlists = &engine->execlists;
                        u32 ptr, read, write;
                        unsigned int idx;
 
@@ -3323,8 +3324,10 @@ static int i915_engine_info(struct seq_file *m, void *unused)
                        ptr = I915_READ(RING_CONTEXT_STATUS_PTR(engine));
                        read = GEN8_CSB_READ_PTR(ptr);
                        write = GEN8_CSB_WRITE_PTR(ptr);
-                       seq_printf(m, "\tExeclist CSB read %d, write %d, interrupt posted? %s\n",
-                                  read, write,
+                       seq_printf(m, "\tExeclist CSB read %d [%d cached], write %d [%d from hws], interrupt posted? %s\n",
+                                  read, execlists->csb_head,
+                                  write,
+                                  intel_read_status_page(engine, intel_hws_csb_write_index(engine->i915)),
                                   yesno(test_bit(ENGINE_IRQ_EXECLIST,
                                                  &engine->irq_posted)));
                        if (read >= GEN8_CSB_ENTRIES)
@@ -3335,18 +3338,19 @@ static int i915_engine_info(struct seq_file *m, void *unused)
                                write += GEN8_CSB_ENTRIES;
                        while (read < write) {
                                idx = ++read % GEN8_CSB_ENTRIES;
-                               seq_printf(m, "\tExeclist CSB[%d]: 0x%08x, context: %d\n",
+                               seq_printf(m, "\tExeclist CSB[%d]: 0x%08x [0x%08x in hwsp], context: %d [%d in hwsp]\n",
                                           idx,
                                           I915_READ(RING_CONTEXT_STATUS_BUF_LO(engine, idx)),
-                                          I915_READ(RING_CONTEXT_STATUS_BUF_HI(engine, idx)));
+                                          hws[idx * 2],
+                                          I915_READ(RING_CONTEXT_STATUS_BUF_HI(engine, idx)),
+                                          hws[idx * 2 + 1]);
                        }
 
                        rcu_read_lock();
-                       for (idx = 0; idx < ARRAY_SIZE(engine->execlist_port); idx++) {
+                       for (idx = 0; idx < execlists_num_ports(execlists); idx++) {
                                unsigned int count;
 
-                               rq = port_unpack(&engine->execlist_port[idx],
-                                                &count);
+                               rq = port_unpack(&execlists->port[idx], &count);
                                if (rq) {
                                        seq_printf(m, "\t\tELSP[%d] count=%d, ",
                                                   idx, count);
@@ -3359,7 +3363,7 @@ static int i915_engine_info(struct seq_file *m, void *unused)
                        rcu_read_unlock();
 
                        spin_lock_irq(&engine->timeline->lock);
-                       for (rb = engine->execlist_first; rb; rb = rb_next(rb)){
+                       for (rb = execlists->first; rb; rb = rb_next(rb)) {
                                struct i915_priolist *p =
                                        rb_entry(rb, typeof(*p), node);
 
@@ -3403,7 +3407,7 @@ static int i915_semaphore_status(struct seq_file *m, void *unused)
        enum intel_engine_id id;
        int j, ret;
 
-       if (!i915.semaphores) {
+       if (!i915_modparams.semaphores) {
                seq_puts(m, "Semaphores are disabled\n");
                return 0;
        }
@@ -3523,6 +3527,57 @@ static int i915_wa_registers(struct seq_file *m, void *unused)
        return 0;
 }
 
+static int i915_ipc_status_show(struct seq_file *m, void *data)
+{
+       struct drm_i915_private *dev_priv = m->private;
+
+       seq_printf(m, "Isochronous Priority Control: %s\n",
+                       yesno(dev_priv->ipc_enabled));
+       return 0;
+}
+
+static int i915_ipc_status_open(struct inode *inode, struct file *file)
+{
+       struct drm_i915_private *dev_priv = inode->i_private;
+
+       if (!HAS_IPC(dev_priv))
+               return -ENODEV;
+
+       return single_open(file, i915_ipc_status_show, dev_priv);
+}
+
+static ssize_t i915_ipc_status_write(struct file *file, const char __user *ubuf,
+                                    size_t len, loff_t *offp)
+{
+       struct seq_file *m = file->private_data;
+       struct drm_i915_private *dev_priv = m->private;
+       int ret;
+       bool enable;
+
+       ret = kstrtobool_from_user(ubuf, len, &enable);
+       if (ret < 0)
+               return ret;
+
+       intel_runtime_pm_get(dev_priv);
+       if (!dev_priv->ipc_enabled && enable)
+               DRM_INFO("Enabling IPC: WM will be proper only after next commit\n");
+       dev_priv->wm.distrust_bios_wm = true;
+       dev_priv->ipc_enabled = enable;
+       intel_enable_ipc(dev_priv);
+       intel_runtime_pm_put(dev_priv);
+
+       return len;
+}
+
+static const struct file_operations i915_ipc_status_fops = {
+       .owner = THIS_MODULE,
+       .open = i915_ipc_status_open,
+       .read = seq_read,
+       .llseek = seq_lseek,
+       .release = single_release,
+       .write = i915_ipc_status_write
+};
+
 static int i915_ddb_info(struct seq_file *m, void *unused)
 {
        struct drm_i915_private *dev_priv = node_to_i915(m->private);
@@ -4674,26 +4729,26 @@ static int i915_sseu_status(struct seq_file *m, void *unused)
 
 static int i915_forcewake_open(struct inode *inode, struct file *file)
 {
-       struct drm_i915_private *dev_priv = inode->i_private;
+       struct drm_i915_private *i915 = inode->i_private;
 
-       if (INTEL_GEN(dev_priv) < 6)
+       if (INTEL_GEN(i915) < 6)
                return 0;
 
-       intel_runtime_pm_get(dev_priv);
-       intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
+       intel_runtime_pm_get(i915);
+       intel_uncore_forcewake_user_get(i915);
 
        return 0;
 }
 
 static int i915_forcewake_release(struct inode *inode, struct file *file)
 {
-       struct drm_i915_private *dev_priv = inode->i_private;
+       struct drm_i915_private *i915 = inode->i_private;
 
-       if (INTEL_GEN(dev_priv) < 6)
+       if (INTEL_GEN(i915) < 6)
                return 0;
 
-       intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
-       intel_runtime_pm_put(dev_priv);
+       intel_uncore_forcewake_user_put(i915);
+       intel_runtime_pm_put(i915);
 
        return 0;
 }
@@ -4859,7 +4914,8 @@ static const struct i915_debugfs_files {
        {"i915_dp_test_type", &i915_displayport_test_type_fops},
        {"i915_dp_test_active", &i915_displayport_test_active_fops},
        {"i915_guc_log_control", &i915_guc_log_control_fops},
-       {"i915_hpd_storm_ctl", &i915_hpd_storm_ctl_fops}
+       {"i915_hpd_storm_ctl", &i915_hpd_storm_ctl_fops},
+       {"i915_ipc_status", &i915_ipc_status_fops}
 };
 
 int i915_debugfs_register(struct drm_i915_private *dev_priv)
index ff70fc4..59ac919 100644 (file)
@@ -58,12 +58,12 @@ static unsigned int i915_load_fail_count;
 
 bool __i915_inject_load_failure(const char *func, int line)
 {
-       if (i915_load_fail_count >= i915.inject_load_failure)
+       if (i915_load_fail_count >= i915_modparams.inject_load_failure)
                return false;
 
-       if (++i915_load_fail_count == i915.inject_load_failure) {
+       if (++i915_load_fail_count == i915_modparams.inject_load_failure) {
                DRM_INFO("Injecting failure at checkpoint %u [%s:%d]\n",
-                        i915.inject_load_failure, func, line);
+                        i915_modparams.inject_load_failure, func, line);
                return true;
        }
 
@@ -106,8 +106,8 @@ __i915_printk(struct drm_i915_private *dev_priv, const char *level,
 
 static bool i915_error_injected(struct drm_i915_private *dev_priv)
 {
-       return i915.inject_load_failure &&
-              i915_load_fail_count == i915.inject_load_failure;
+       return i915_modparams.inject_load_failure &&
+              i915_load_fail_count == i915_modparams.inject_load_failure;
 }
 
 #define i915_load_error(dev_priv, fmt, ...)                                 \
@@ -321,7 +321,7 @@ static int i915_getparam(struct drm_device *dev, void *data,
                value = USES_PPGTT(dev_priv);
                break;
        case I915_PARAM_HAS_SEMAPHORES:
-               value = i915.semaphores;
+               value = i915_modparams.semaphores;
                break;
        case I915_PARAM_HAS_SECURE_BATCHES:
                value = capable(CAP_SYS_ADMIN);
@@ -340,7 +340,8 @@ static int i915_getparam(struct drm_device *dev, void *data,
                        return -ENODEV;
                break;
        case I915_PARAM_HAS_GPU_RESET:
-               value = i915.enable_hangcheck && intel_has_gpu_reset(dev_priv);
+               value = i915_modparams.enable_hangcheck &&
+                       intel_has_gpu_reset(dev_priv);
                if (value && intel_has_reset_engine(dev_priv))
                        value = 2;
                break;
@@ -869,6 +870,10 @@ static int i915_driver_init_early(struct drm_i915_private *dev_priv,
        memcpy(device_info, match_info, sizeof(*device_info));
        device_info->device_id = dev_priv->drm.pdev->device;
 
+       BUILD_BUG_ON(INTEL_MAX_PLATFORMS >
+                    sizeof(device_info->platform_mask) * BITS_PER_BYTE);
+       device_info->platform_mask = BIT(device_info->platform);
+
        BUG_ON(device_info->gen > sizeof(device_info->gen_mask) * BITS_PER_BYTE);
        device_info->gen_mask = BIT(device_info->gen - 1);
 
@@ -1031,9 +1036,9 @@ static void i915_driver_cleanup_mmio(struct drm_i915_private *dev_priv)
 
 static void intel_sanitize_options(struct drm_i915_private *dev_priv)
 {
-       i915.enable_execlists =
+       i915_modparams.enable_execlists =
                intel_sanitize_enable_execlists(dev_priv,
-                                               i915.enable_execlists);
+                                               i915_modparams.enable_execlists);
 
        /*
         * i915.enable_ppgtt is read-only, so do an early pass to validate the
@@ -1041,12 +1046,15 @@ static void intel_sanitize_options(struct drm_i915_private *dev_priv)
         * do this now so that we can print out any log messages once rather
         * than every time we check intel_enable_ppgtt().
         */
-       i915.enable_ppgtt =
-               intel_sanitize_enable_ppgtt(dev_priv, i915.enable_ppgtt);
-       DRM_DEBUG_DRIVER("ppgtt mode: %i\n", i915.enable_ppgtt);
+       i915_modparams.enable_ppgtt =
+               intel_sanitize_enable_ppgtt(dev_priv,
+                                           i915_modparams.enable_ppgtt);
+       DRM_DEBUG_DRIVER("ppgtt mode: %i\n", i915_modparams.enable_ppgtt);
 
-       i915.semaphores = intel_sanitize_semaphores(dev_priv, i915.semaphores);
-       DRM_DEBUG_DRIVER("use GPU semaphores? %s\n", yesno(i915.semaphores));
+       i915_modparams.semaphores =
+               intel_sanitize_semaphores(dev_priv, i915_modparams.semaphores);
+       DRM_DEBUG_DRIVER("use GPU semaphores? %s\n",
+                        yesno(i915_modparams.semaphores));
 
        intel_uc_sanitize_options(dev_priv);
 
@@ -1277,7 +1285,7 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
        int ret;
 
        /* Enable nuclear pageflip on ILK+ */
-       if (!i915.nuclear_pageflip && match_info->gen < 5)
+       if (!i915_modparams.nuclear_pageflip && match_info->gen < 5)
                driver.driver_features &= ~DRIVER_ATOMIC;
 
        ret = -ENOMEM;
@@ -1341,7 +1349,7 @@ int i915_driver_load(struct pci_dev *pdev, const struct pci_device_id *ent)
 
        intel_runtime_pm_enable(dev_priv);
 
-       dev_priv->ipc_enabled = false;
+       intel_init_ipc(dev_priv);
 
        if (IS_ENABLED(CONFIG_DRM_I915_DEBUG))
                DRM_INFO("DRM_I915_DEBUG enabled\n");
@@ -2609,6 +2617,8 @@ static int intel_runtime_resume(struct device *kdev)
        if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv))
                intel_hpd_init(dev_priv);
 
+       intel_enable_ipc(dev_priv);
+
        enable_rpm_wakeref_asserts(dev_priv);
 
        if (ret)
index b1fa813..7ca1131 100644 (file)
@@ -80,8 +80,8 @@
 
 #define DRIVER_NAME            "i915"
 #define DRIVER_DESC            "Intel Graphics"
-#define DRIVER_DATE            "20170907"
-#define DRIVER_TIMESTAMP       1504772900
+#define DRIVER_DATE            "20170929"
+#define DRIVER_TIMESTAMP       1506682238
 
 /* Use I915_STATE_WARN(x) and I915_STATE_WARN_ON() (rather than WARN() and
  * WARN_ON()) for hw state sanity checks to check for unexpected conditions
@@ -93,7 +93,7 @@
 #define I915_STATE_WARN(condition, format...) ({                       \
        int __ret_warn_on = !!(condition);                              \
        if (unlikely(__ret_warn_on))                                    \
-               if (!WARN(i915.verbose_state_checks, format))           \
+               if (!WARN(i915_modparams.verbose_state_checks, format)) \
                        DRM_ERROR(format);                              \
        unlikely(__ret_warn_on);                                        \
 })
@@ -126,7 +126,7 @@ static inline uint_fixed_16_16_t u32_to_fixed16(uint32_t val)
 {
        uint_fixed_16_16_t fp;
 
-       WARN_ON(val >> 16);
+       WARN_ON(val > U16_MAX);
 
        fp.val = val << 16;
        return fp;
@@ -163,8 +163,8 @@ static inline uint_fixed_16_16_t max_fixed16(uint_fixed_16_16_t max1,
 static inline uint_fixed_16_16_t clamp_u64_to_fixed16(uint64_t val)
 {
        uint_fixed_16_16_t fp;
-       WARN_ON(val >> 32);
-       fp.val = clamp_t(uint32_t, val, 0, ~0);
+       WARN_ON(val > U32_MAX);
+       fp.val = (uint32_t) val;
        return fp;
 }
 
@@ -181,8 +181,8 @@ static inline uint32_t mul_round_up_u32_fixed16(uint32_t val,
 
        intermediate_val = (uint64_t) val * mul.val;
        intermediate_val = DIV_ROUND_UP_ULL(intermediate_val, 1 << 16);
-       WARN_ON(intermediate_val >> 32);
-       return clamp_t(uint32_t, intermediate_val, 0, ~0);
+       WARN_ON(intermediate_val > U32_MAX);
+       return (uint32_t) intermediate_val;
 }
 
 static inline uint_fixed_16_16_t mul_fixed16(uint_fixed_16_16_t val,
@@ -211,8 +211,8 @@ static inline uint32_t div_round_up_u32_fixed16(uint32_t val,
 
        interm_val = (uint64_t)val << 16;
        interm_val = DIV_ROUND_UP_ULL(interm_val, d.val);
-       WARN_ON(interm_val >> 32);
-       return clamp_t(uint32_t, interm_val, 0, ~0);
+       WARN_ON(interm_val > U32_MAX);
+       return (uint32_t) interm_val;
 }
 
 static inline uint_fixed_16_16_t mul_u32_fixed16(uint32_t val,
@@ -776,7 +776,6 @@ struct intel_csr {
        func(has_fpga_dbg); \
        func(has_full_ppgtt); \
        func(has_full_48bit_ppgtt); \
-       func(has_gmbus_irq); \
        func(has_gmch_display); \
        func(has_guc); \
        func(has_guc_ct); \
@@ -797,7 +796,8 @@ struct intel_csr {
        func(cursor_needs_physical); \
        func(hws_needs_physical); \
        func(overlay_needs_physical); \
-       func(supports_tv);
+       func(supports_tv); \
+       func(has_ipc);
 
 struct sseu_dev_info {
        u8 slice_mask;
@@ -851,21 +851,28 @@ enum intel_platform {
 };
 
 struct intel_device_info {
-       u32 display_mmio_offset;
        u16 device_id;
-       u8 num_pipes;
-       u8 num_sprites[I915_MAX_PIPES];
-       u8 num_scalers[I915_MAX_PIPES];
-       u8 gen;
        u16 gen_mask;
-       enum intel_platform platform;
+
+       u8 gen;
        u8 gt; /* GT number, 0 if undefined */
-       u8 ring_mask; /* Rings supported by the HW */
        u8 num_rings;
+       u8 ring_mask; /* Rings supported by the HW */
+
+       enum intel_platform platform;
+       u32 platform_mask;
+
+       u32 display_mmio_offset;
+
+       u8 num_pipes;
+       u8 num_sprites[I915_MAX_PIPES];
+       u8 num_scalers[I915_MAX_PIPES];
+
 #define DEFINE_FLAG(name) u8 name:1
        DEV_INFO_FOR_EACH_FLAG(DEFINE_FLAG);
 #undef DEFINE_FLAG
        u16 ddb_size; /* in blocks */
+
        /* Register offsets for the various display pipes and transcoders */
        int pipe_offsets[I915_MAX_TRANSCODERS];
        int trans_offsets[I915_MAX_TRANSCODERS];
@@ -1000,7 +1007,8 @@ struct i915_gpu_state {
                        u32 seqno;
                        u32 head;
                        u32 tail;
-               } *requests, execlist[2];
+               } *requests, execlist[EXECLIST_MAX_PORTS];
+               unsigned int num_ports;
 
                struct drm_i915_error_waiter {
                        char comm[TASK_COMM_LEN];
@@ -1178,6 +1186,14 @@ struct i915_psr {
        bool y_cord_support;
        bool colorimetry_support;
        bool alpm;
+
+       void (*enable_source)(struct intel_dp *,
+                             const struct intel_crtc_state *);
+       void (*disable_source)(struct intel_dp *,
+                              const struct intel_crtc_state *);
+       void (*enable_sink)(struct intel_dp *);
+       void (*activate)(struct intel_dp *);
+       void (*setup_vsc)(struct intel_dp *, const struct intel_crtc_state *);
 };
 
 enum intel_pch {
@@ -1836,6 +1852,20 @@ struct skl_wm_level {
        uint8_t plane_res_l;
 };
 
+/* Stores plane specific WM parameters */
+struct skl_wm_params {
+       bool x_tiled, y_tiled;
+       bool rc_surface;
+       uint32_t width;
+       uint8_t cpp;
+       uint32_t plane_pixel_rate;
+       uint32_t y_min_scanlines;
+       uint32_t plane_bytes_per_line;
+       uint_fixed_16_16_t plane_blocks_per_line;
+       uint_fixed_16_16_t y_tile_minimum;
+       uint32_t linetime_us;
+};
+
 /*
  * This struct helps tracking the state needed for runtime PM, which puts the
  * device in PCI D3 state. Notice that when this happens, nothing on the
@@ -2331,6 +2361,8 @@ struct drm_i915_private {
        DECLARE_HASHTABLE(mm_structs, 7);
        struct mutex mm_lock;
 
+       struct intel_ppat ppat;
+
        /* Kernel Modesetting */
 
        struct intel_crtc *plane_to_crtc_mapping[I915_MAX_PIPES];
@@ -2811,8 +2843,8 @@ static inline struct scatterlist *__sg_next(struct scatterlist *sg)
 #define for_each_sgt_dma(__dmap, __iter, __sgt)                                \
        for ((__iter) = __sgt_iter((__sgt)->sgl, true);                 \
             ((__dmap) = (__iter).dma + (__iter).curr);                 \
-            (((__iter).curr += PAGE_SIZE) < (__iter).max) ||           \
-            ((__iter) = __sgt_iter(__sg_next((__iter).sgp), true), 0))
+            (((__iter).curr += PAGE_SIZE) >= (__iter).max) ?           \
+            (__iter) = __sgt_iter(__sg_next((__iter).sgp), true), 0 : 0)
 
 /**
  * for_each_sgt_page - iterate over the pages of the given sg_table
@@ -2824,8 +2856,23 @@ static inline struct scatterlist *__sg_next(struct scatterlist *sg)
        for ((__iter) = __sgt_iter((__sgt)->sgl, false);                \
             ((__pp) = (__iter).pfn == 0 ? NULL :                       \
              pfn_to_page((__iter).pfn + ((__iter).curr >> PAGE_SHIFT))); \
-            (((__iter).curr += PAGE_SIZE) < (__iter).max) ||           \
-            ((__iter) = __sgt_iter(__sg_next((__iter).sgp), false), 0))
+            (((__iter).curr += PAGE_SIZE) >= (__iter).max) ?           \
+            (__iter) = __sgt_iter(__sg_next((__iter).sgp), false), 0 : 0)
+
+static inline unsigned int i915_sg_segment_size(void)
+{
+       unsigned int size = swiotlb_max_segment();
+
+       if (size == 0)
+               return SCATTERLIST_MAX_SEGMENT;
+
+       size = rounddown(size, PAGE_SIZE);
+       /* swiotlb_max_segment_size can return 1 byte when it means one page. */
+       if (size < PAGE_SIZE)
+               size = PAGE_SIZE;
+
+       return size;
+}
 
 static inline const struct intel_device_info *
 intel_info(const struct drm_i915_private *dev_priv)
@@ -2842,23 +2889,21 @@ intel_info(const struct drm_i915_private *dev_priv)
 #define INTEL_REVID(dev_priv)  ((dev_priv)->drm.pdev->revision)
 
 #define GEN_FOREVER (0)
+
+#define INTEL_GEN_MASK(s, e) ( \
+       BUILD_BUG_ON_ZERO(!__builtin_constant_p(s)) + \
+       BUILD_BUG_ON_ZERO(!__builtin_constant_p(e)) + \
+       GENMASK((e) != GEN_FOREVER ? (e) - 1 : BITS_PER_LONG - 1, \
+               (s) != GEN_FOREVER ? (s) - 1 : 0) \
+)
+
 /*
  * Returns true if Gen is in inclusive range [Start, End].
  *
  * Use GEN_FOREVER for unbound start and or end.
  */
-#define IS_GEN(dev_priv, s, e) ({ \
-       unsigned int __s = (s), __e = (e); \
-       BUILD_BUG_ON(!__builtin_constant_p(s)); \
-       BUILD_BUG_ON(!__builtin_constant_p(e)); \
-       if ((__s) != GEN_FOREVER) \
-               __s = (s) - 1; \
-       if ((__e) == GEN_FOREVER) \
-               __e = BITS_PER_LONG - 1; \
-       else \
-               __e = (e) - 1; \
-       !!((dev_priv)->info.gen_mask & GENMASK((__e), (__s))); \
-})
+#define IS_GEN(dev_priv, s, e) \
+       (!!((dev_priv)->info.gen_mask & INTEL_GEN_MASK((s), (e))))
 
 /*
  * Return true if revision is in range [since,until] inclusive.
@@ -2868,37 +2913,39 @@ intel_info(const struct drm_i915_private *dev_priv)
 #define IS_REVID(p, since, until) \
        (INTEL_REVID(p) >= (since) && INTEL_REVID(p) <= (until))
 
-#define IS_I830(dev_priv)      ((dev_priv)->info.platform == INTEL_I830)
-#define IS_I845G(dev_priv)     ((dev_priv)->info.platform == INTEL_I845G)
-#define IS_I85X(dev_priv)      ((dev_priv)->info.platform == INTEL_I85X)
-#define IS_I865G(dev_priv)     ((dev_priv)->info.platform == INTEL_I865G)
-#define IS_I915G(dev_priv)     ((dev_priv)->info.platform == INTEL_I915G)
-#define IS_I915GM(dev_priv)    ((dev_priv)->info.platform == INTEL_I915GM)
-#define IS_I945G(dev_priv)     ((dev_priv)->info.platform == INTEL_I945G)
-#define IS_I945GM(dev_priv)    ((dev_priv)->info.platform == INTEL_I945GM)
-#define IS_I965G(dev_priv)     ((dev_priv)->info.platform == INTEL_I965G)
-#define IS_I965GM(dev_priv)    ((dev_priv)->info.platform == INTEL_I965GM)
-#define IS_G45(dev_priv)       ((dev_priv)->info.platform == INTEL_G45)
-#define IS_GM45(dev_priv)      ((dev_priv)->info.platform == INTEL_GM45)
+#define IS_PLATFORM(dev_priv, p) ((dev_priv)->info.platform_mask & BIT(p))
+
+#define IS_I830(dev_priv)      IS_PLATFORM(dev_priv, INTEL_I830)
+#define IS_I845G(dev_priv)     IS_PLATFORM(dev_priv, INTEL_I845G)
+#define IS_I85X(dev_priv)      IS_PLATFORM(dev_priv, INTEL_I85X)
+#define IS_I865G(dev_priv)     IS_PLATFORM(dev_priv, INTEL_I865G)
+#define IS_I915G(dev_priv)     IS_PLATFORM(dev_priv, INTEL_I915G)
+#define IS_I915GM(dev_priv)    IS_PLATFORM(dev_priv, INTEL_I915GM)
+#define IS_I945G(dev_priv)     IS_PLATFORM(dev_priv, INTEL_I945G)
+#define IS_I945GM(dev_priv)    IS_PLATFORM(dev_priv, INTEL_I945GM)
+#define IS_I965G(dev_priv)     IS_PLATFORM(dev_priv, INTEL_I965G)
+#define IS_I965GM(dev_priv)    IS_PLATFORM(dev_priv, INTEL_I965GM)
+#define IS_G45(dev_priv)       IS_PLATFORM(dev_priv, INTEL_G45)
+#define IS_GM45(dev_priv)      IS_PLATFORM(dev_priv, INTEL_GM45)
 #define IS_G4X(dev_priv)       (IS_G45(dev_priv) || IS_GM45(dev_priv))
 #define IS_PINEVIEW_G(dev_priv)        (INTEL_DEVID(dev_priv) == 0xa001)
 #define IS_PINEVIEW_M(dev_priv)        (INTEL_DEVID(dev_priv) == 0xa011)
-#define IS_PINEVIEW(dev_priv)  ((dev_priv)->info.platform == INTEL_PINEVIEW)
-#define IS_G33(dev_priv)       ((dev_priv)->info.platform == INTEL_G33)
+#define IS_PINEVIEW(dev_priv)  IS_PLATFORM(dev_priv, INTEL_PINEVIEW)
+#define IS_G33(dev_priv)       IS_PLATFORM(dev_priv, INTEL_G33)
 #define IS_IRONLAKE_M(dev_priv)        (INTEL_DEVID(dev_priv) == 0x0046)
-#define IS_IVYBRIDGE(dev_priv) ((dev_priv)->info.platform == INTEL_IVYBRIDGE)
+#define IS_IVYBRIDGE(dev_priv) IS_PLATFORM(dev_priv, INTEL_IVYBRIDGE)
 #define IS_IVB_GT1(dev_priv)   (IS_IVYBRIDGE(dev_priv) && \
                                 (dev_priv)->info.gt == 1)
-#define IS_VALLEYVIEW(dev_priv)        ((dev_priv)->info.platform == INTEL_VALLEYVIEW)
-#define IS_CHERRYVIEW(dev_priv)        ((dev_priv)->info.platform == INTEL_CHERRYVIEW)
-#define IS_HASWELL(dev_priv)   ((dev_priv)->info.platform == INTEL_HASWELL)
-#define IS_BROADWELL(dev_priv) ((dev_priv)->info.platform == INTEL_BROADWELL)
-#define IS_SKYLAKE(dev_priv)   ((dev_priv)->info.platform == INTEL_SKYLAKE)
-#define IS_BROXTON(dev_priv)   ((dev_priv)->info.platform == INTEL_BROXTON)
-#define IS_KABYLAKE(dev_priv)  ((dev_priv)->info.platform == INTEL_KABYLAKE)
-#define IS_GEMINILAKE(dev_priv)        ((dev_priv)->info.platform == INTEL_GEMINILAKE)
-#define IS_COFFEELAKE(dev_priv)        ((dev_priv)->info.platform == INTEL_COFFEELAKE)
-#define IS_CANNONLAKE(dev_priv)        ((dev_priv)->info.platform == INTEL_CANNONLAKE)
+#define IS_VALLEYVIEW(dev_priv)        IS_PLATFORM(dev_priv, INTEL_VALLEYVIEW)
+#define IS_CHERRYVIEW(dev_priv)        IS_PLATFORM(dev_priv, INTEL_CHERRYVIEW)
+#define IS_HASWELL(dev_priv)   IS_PLATFORM(dev_priv, INTEL_HASWELL)
+#define IS_BROADWELL(dev_priv) IS_PLATFORM(dev_priv, INTEL_BROADWELL)
+#define IS_SKYLAKE(dev_priv)   IS_PLATFORM(dev_priv, INTEL_SKYLAKE)
+#define IS_BROXTON(dev_priv)   IS_PLATFORM(dev_priv, INTEL_BROXTON)
+#define IS_KABYLAKE(dev_priv)  IS_PLATFORM(dev_priv, INTEL_KABYLAKE)
+#define IS_GEMINILAKE(dev_priv)        IS_PLATFORM(dev_priv, INTEL_GEMINILAKE)
+#define IS_COFFEELAKE(dev_priv)        IS_PLATFORM(dev_priv, INTEL_COFFEELAKE)
+#define IS_CANNONLAKE(dev_priv)        IS_PLATFORM(dev_priv, INTEL_CANNONLAKE)
 #define IS_MOBILE(dev_priv)    ((dev_priv)->info.is_mobile)
 #define IS_HSW_EARLY_SDV(dev_priv) (IS_HASWELL(dev_priv) && \
                                    (INTEL_DEVID(dev_priv) & 0xFF00) == 0x0C00)
@@ -2946,6 +2993,8 @@ intel_info(const struct drm_i915_private *dev_priv)
                                 (dev_priv)->info.gt == 3)
 #define IS_CFL_ULT(dev_priv)   (IS_COFFEELAKE(dev_priv) && \
                                 (INTEL_DEVID(dev_priv) & 0x00F0) == 0x00A0)
+#define IS_CFL_GT2(dev_priv)   (IS_COFFEELAKE(dev_priv) && \
+                                (dev_priv)->info.gt == 2)
 
 #define IS_ALPHA_SUPPORT(intel_info) ((intel_info)->is_alpha_support)
 
@@ -3036,9 +3085,9 @@ intel_info(const struct drm_i915_private *dev_priv)
 
 #define HAS_LOGICAL_RING_CONTEXTS(dev_priv) \
                ((dev_priv)->info.has_logical_ring_contexts)
-#define USES_PPGTT(dev_priv)           (i915.enable_ppgtt)
-#define USES_FULL_PPGTT(dev_priv)      (i915.enable_ppgtt >= 2)
-#define USES_FULL_48BIT_PPGTT(dev_priv)        (i915.enable_ppgtt == 3)
+#define USES_PPGTT(dev_priv)           (i915_modparams.enable_ppgtt)
+#define USES_FULL_PPGTT(dev_priv)      (i915_modparams.enable_ppgtt >= 2)
+#define USES_FULL_48BIT_PPGTT(dev_priv)        (i915_modparams.enable_ppgtt == 3)
 
 #define HAS_OVERLAY(dev_priv)           ((dev_priv)->info.has_overlay)
 #define OVERLAY_NEEDS_PHYSICAL(dev_priv) \
@@ -3056,9 +3105,12 @@ intel_info(const struct drm_i915_private *dev_priv)
  * even when in MSI mode. This results in spurious interrupt warnings if the
  * legacy irq no. is shared with another device. The kernel then disables that
  * interrupt source and so prevents the other device from working properly.
+ *
+ * Since we don't enable MSI anymore on gen4, we can always use GMBUS/AUX
+ * interrupts.
  */
-#define HAS_AUX_IRQ(dev_priv)   ((dev_priv)->info.gen >= 5)
-#define HAS_GMBUS_IRQ(dev_priv) ((dev_priv)->info.has_gmbus_irq)
+#define HAS_AUX_IRQ(dev_priv)   true
+#define HAS_GMBUS_IRQ(dev_priv) (INTEL_GEN(dev_priv) >= 4)
 
 /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte
  * rows, which changed the alignment requirements and fence programming.
@@ -3089,6 +3141,8 @@ intel_info(const struct drm_i915_private *dev_priv)
 #define HAS_RUNTIME_PM(dev_priv) ((dev_priv)->info.has_runtime_pm)
 #define HAS_64BIT_RELOC(dev_priv) ((dev_priv)->info.has_64bit_reloc)
 
+#define HAS_IPC(dev_priv)               ((dev_priv)->info.has_ipc)
+
 /*
  * For now, anything with a GuC requires uCode loading, and then supports
  * command submission once loaded. But these are logically independent
@@ -3234,7 +3288,7 @@ static inline void i915_queue_hangcheck(struct drm_i915_private *dev_priv)
 {
        unsigned long delay;
 
-       if (unlikely(!i915.enable_hangcheck))
+       if (unlikely(!i915_modparams.enable_hangcheck))
                return;
 
        /* Don't continually defer the hangcheck so that it is always run at
@@ -3267,6 +3321,8 @@ static inline bool intel_vgpu_active(struct drm_i915_private *dev_priv)
        return dev_priv->vgpu.active;
 }
 
+u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
+                             enum pipe pipe);
 void
 i915_enable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
                     u32 status_mask);
@@ -4360,4 +4416,12 @@ int remap_io_mapping(struct vm_area_struct *vma,
                     unsigned long addr, unsigned long pfn, unsigned long size,
                     struct io_mapping *iomap);
 
+static inline int intel_hws_csb_write_index(struct drm_i915_private *i915)
+{
+       if (INTEL_GEN(i915) >= 10)
+               return CNL_HWS_CSB_WRITE_INDEX;
+       else
+               return I915_HWS_CSB_WRITE_INDEX;
+}
+
 #endif
index 8f074c7..73eeb6b 100644 (file)
@@ -179,7 +179,7 @@ i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
         * the alignment of the buddy allocation will naturally match.
         */
        phys = drm_pci_alloc(obj->base.dev,
-                            obj->base.size,
+                            roundup_pow_of_two(obj->base.size),
                             roundup_pow_of_two(obj->base.size));
        if (!phys)
                return ERR_PTR(-ENOMEM);
@@ -694,10 +694,10 @@ flush_write_domain(struct drm_i915_gem_object *obj, unsigned int flush_domains)
 
        switch (obj->base.write_domain) {
        case I915_GEM_DOMAIN_GTT:
-               if (INTEL_GEN(dev_priv) >= 6 && !HAS_LLC(dev_priv)) {
+               if (!HAS_LLC(dev_priv)) {
                        intel_runtime_pm_get(dev_priv);
                        spin_lock_irq(&dev_priv->uncore.lock);
-                       POSTING_READ_FW(RING_ACTHD(dev_priv->engine[RCS]->mmio_base));
+                       POSTING_READ_FW(RING_HEAD(dev_priv->engine[RCS]->mmio_base));
                        spin_unlock_irq(&dev_priv->uncore.lock);
                        intel_runtime_pm_put(dev_priv);
                }
@@ -2303,7 +2303,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
        struct sgt_iter sgt_iter;
        struct page *page;
        unsigned long last_pfn = 0;     /* suppress gcc warning */
-       unsigned int max_segment;
+       unsigned int max_segment = i915_sg_segment_size();
        gfp_t noreclaim;
        int ret;
 
@@ -2314,10 +2314,6 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
        GEM_BUG_ON(obj->base.read_domains & I915_GEM_GPU_DOMAINS);
        GEM_BUG_ON(obj->base.write_domain & I915_GEM_GPU_DOMAINS);
 
-       max_segment = swiotlb_max_segment();
-       if (!max_segment)
-               max_segment = rounddown(UINT_MAX, PAGE_SIZE);
-
        st = kmalloc(sizeof(*st), GFP_KERNEL);
        if (st == NULL)
                return ERR_PTR(-ENOMEM);
@@ -2819,8 +2815,8 @@ i915_gem_reset_prepare_engine(struct intel_engine_cs *engine)
         * Turning off the engine->irq_tasklet until the reset is over
         * prevents the race.
         */
-       tasklet_kill(&engine->irq_tasklet);
-       tasklet_disable(&engine->irq_tasklet);
+       tasklet_kill(&engine->execlists.irq_tasklet);
+       tasklet_disable(&engine->execlists.irq_tasklet);
 
        if (engine->irq_seqno_barrier)
                engine->irq_seqno_barrier(engine);
@@ -2999,7 +2995,7 @@ void i915_gem_reset(struct drm_i915_private *dev_priv)
 
 void i915_gem_reset_finish_engine(struct intel_engine_cs *engine)
 {
-       tasklet_enable(&engine->irq_tasklet);
+       tasklet_enable(&engine->execlists.irq_tasklet);
        kthread_unpark(engine->breadcrumbs.signaler);
 }
 
@@ -3026,9 +3022,6 @@ static void nop_submit_request(struct drm_i915_gem_request *request)
 
 static void engine_set_wedged(struct intel_engine_cs *engine)
 {
-       struct drm_i915_gem_request *request;
-       unsigned long flags;
-
        /* We need to be sure that no thread is running the old callback as
         * we install the nop handler (otherwise we would submit a request
         * to hardware that will never complete). In order to prevent this
@@ -3038,40 +3031,7 @@ static void engine_set_wedged(struct intel_engine_cs *engine)
        engine->submit_request = nop_submit_request;
 
        /* Mark all executing requests as skipped */
-       spin_lock_irqsave(&engine->timeline->lock, flags);
-       list_for_each_entry(request, &engine->timeline->requests, link)
-               if (!i915_gem_request_completed(request))
-                       dma_fence_set_error(&request->fence, -EIO);
-       spin_unlock_irqrestore(&engine->timeline->lock, flags);
-
-       /*
-        * Clear the execlists queue up before freeing the requests, as those
-        * are the ones that keep the context and ringbuffer backing objects
-        * pinned in place.
-        */
-
-       if (i915.enable_execlists) {
-               struct execlist_port *port = engine->execlist_port;
-               unsigned long flags;
-               unsigned int n;
-
-               spin_lock_irqsave(&engine->timeline->lock, flags);
-
-               for (n = 0; n < ARRAY_SIZE(engine->execlist_port); n++)
-                       i915_gem_request_put(port_request(&port[n]));
-               memset(engine->execlist_port, 0, sizeof(engine->execlist_port));
-               engine->execlist_queue = RB_ROOT;
-               engine->execlist_first = NULL;
-
-               spin_unlock_irqrestore(&engine->timeline->lock, flags);
-
-               /* The port is checked prior to scheduling a tasklet, but
-                * just in case we have suspended the tasklet to do the
-                * wedging make sure that when it wakes, it decides there
-                * is no work to do by clearing the irq_posted bit.
-                */
-               clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
-       }
+       engine->cancel_requests(engine);
 
        /* Mark all pending requests as complete so that any concurrent
         * (lockless) lookup doesn't try and wait upon the request as we
@@ -4778,7 +4738,7 @@ bool intel_sanitize_semaphores(struct drm_i915_private *dev_priv, int value)
                return false;
 
        /* TODO: make semaphores and Execlists play nicely together */
-       if (i915.enable_execlists)
+       if (i915_modparams.enable_execlists)
                return false;
 
        if (value >= 0)
@@ -4799,7 +4759,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
 
        dev_priv->mm.unordered_timeline = dma_fence_context_alloc(1);
 
-       if (!i915.enable_execlists) {
+       if (!i915_modparams.enable_execlists) {
                dev_priv->gt.resume = intel_legacy_submission_resume;
                dev_priv->gt.cleanup_engine = intel_engine_cleanup;
        } else {
index 58a2a44..921ee36 100644 (file)
@@ -314,7 +314,7 @@ __create_hw_context(struct drm_i915_private *dev_priv,
         * present or not in use we still need a small bias as ring wraparound
         * at offset 0 sometimes hangs. No idea why.
         */
-       if (HAS_GUC(dev_priv) && i915.enable_guc_loading)
+       if (HAS_GUC(dev_priv) && i915_modparams.enable_guc_loading)
                ctx->ggtt_offset_bias = GUC_WOPCM_TOP;
        else
                ctx->ggtt_offset_bias = I915_GTT_PAGE_SIZE;
@@ -407,7 +407,7 @@ i915_gem_context_create_gvt(struct drm_device *dev)
        i915_gem_context_set_closed(ctx); /* not user accessible */
        i915_gem_context_clear_bannable(ctx);
        i915_gem_context_set_force_single_submission(ctx);
-       if (!i915.enable_guc_submission)
+       if (!i915_modparams.enable_guc_submission)
                ctx->ring_size = 512 * PAGE_SIZE; /* Max ring buffer size */
 
        GEM_BUG_ON(i915_gem_context_is_kernel(ctx));
@@ -431,7 +431,7 @@ int i915_gem_contexts_init(struct drm_i915_private *dev_priv)
 
        if (intel_vgpu_active(dev_priv) &&
            HAS_LOGICAL_RING_CONTEXTS(dev_priv)) {
-               if (!i915.enable_execlists) {
+               if (!i915_modparams.enable_execlists) {
                        DRM_INFO("Only EXECLIST mode is supported in vgpu.\n");
                        return -EINVAL;
                }
@@ -483,7 +483,7 @@ void i915_gem_contexts_lost(struct drm_i915_private *dev_priv)
        }
 
        /* Force the GPU state to be restored on enabling */
-       if (!i915.enable_execlists) {
+       if (!i915_modparams.enable_execlists) {
                struct i915_gem_context *ctx;
 
                list_for_each_entry(ctx, &dev_priv->contexts.list, link) {
@@ -568,7 +568,7 @@ mi_set_context(struct drm_i915_gem_request *req, u32 flags)
        enum intel_engine_id id;
        const int num_rings =
                /* Use an extended w/a on gen7 if signalling from other rings */
-               (i915.semaphores && INTEL_GEN(dev_priv) == 7) ?
+               (i915_modparams.semaphores && INTEL_GEN(dev_priv) == 7) ?
                INTEL_INFO(dev_priv)->num_rings - 1 :
                0;
        int len;
@@ -837,7 +837,7 @@ int i915_switch_context(struct drm_i915_gem_request *req)
        struct intel_engine_cs *engine = req->engine;
 
        lockdep_assert_held(&req->i915->drm.struct_mutex);
-       if (i915.enable_execlists)
+       if (i915_modparams.enable_execlists)
                return 0;
 
        if (!req->ctx->engine[engine->id].state) {
index ca0eab3..d733c4d 100644 (file)
@@ -58,6 +58,7 @@ enum {
 
 #define __EXEC_HAS_RELOC       BIT(31)
 #define __EXEC_VALIDATED       BIT(30)
+#define __EXEC_INTERNAL_FLAGS  (~0u << 30)
 #define UPDATE                 PIN_OFFSET_FIXED
 
 #define BATCH_OFFSET_BIAS (256*1024)
@@ -679,7 +680,7 @@ static int eb_select_context(struct i915_execbuffer *eb)
 static int eb_lookup_vmas(struct i915_execbuffer *eb)
 {
        struct radix_tree_root *handles_vma = &eb->ctx->handles_vma;
-       struct drm_i915_gem_object *uninitialized_var(obj);
+       struct drm_i915_gem_object *obj;
        unsigned int i;
        int err;
 
@@ -725,19 +726,17 @@ static int eb_lookup_vmas(struct i915_execbuffer *eb)
                        goto err_obj;
                }
 
+               /* transfer ref to ctx */
                vma->open_count++;
                list_add(&lut->obj_link, &obj->lut_list);
                list_add(&lut->ctx_link, &eb->ctx->handles_list);
                lut->ctx = eb->ctx;
                lut->handle = handle;
 
-               /* transfer ref to ctx */
-               obj = NULL;
-
 add_vma:
                err = eb_add_vma(eb, i, vma);
                if (unlikely(err))
-                       goto err_obj;
+                       goto err_vma;
 
                GEM_BUG_ON(vma != eb->vma[i]);
                GEM_BUG_ON(vma->exec_flags != &eb->flags[i]);
@@ -766,8 +765,7 @@ add_vma:
        return eb_reserve(eb);
 
 err_obj:
-       if (obj)
-               i915_gem_object_put(obj);
+       i915_gem_object_put(obj);
 err_vma:
        eb->vma[i] = NULL;
        return err;
@@ -1587,7 +1585,7 @@ static int eb_prefault_relocations(const struct i915_execbuffer *eb)
        const unsigned int count = eb->buffer_count;
        unsigned int i;
 
-       if (unlikely(i915.prefault_disable))
+       if (unlikely(i915_modparams.prefault_disable))
                return 0;
 
        for (i = 0; i < count; i++) {
@@ -2188,6 +2186,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
        int out_fence_fd = -1;
        int err;
 
+       BUILD_BUG_ON(__EXEC_INTERNAL_FLAGS & ~__I915_EXEC_ILLEGAL_FLAGS);
        BUILD_BUG_ON(__EXEC_OBJECT_INTERNAL_FLAGS &
                     ~__EXEC_OBJECT_UNKNOWN_FLAGS);
 
index 40d446b..4c82ceb 100644 (file)
@@ -180,7 +180,7 @@ int intel_sanitize_enable_ppgtt(struct drm_i915_private *dev_priv,
                return 0;
        }
 
-       if (INTEL_GEN(dev_priv) >= 8 && i915.enable_execlists) {
+       if (INTEL_GEN(dev_priv) >= 8 && i915_modparams.enable_execlists) {
                if (has_full_48bit_ppgtt)
                        return 3;
 
@@ -230,13 +230,13 @@ static gen8_pte_t gen8_pte_encode(dma_addr_t addr,
 
        switch (level) {
        case I915_CACHE_NONE:
-               pte |= PPAT_UNCACHED_INDEX;
+               pte |= PPAT_UNCACHED;
                break;
        case I915_CACHE_WT:
-               pte |= PPAT_DISPLAY_ELLC_INDEX;
+               pte |= PPAT_DISPLAY_ELLC;
                break;
        default:
-               pte |= PPAT_CACHED_INDEX;
+               pte |= PPAT_CACHED;
                break;
        }
 
@@ -249,9 +249,9 @@ static gen8_pde_t gen8_pde_encode(const dma_addr_t addr,
        gen8_pde_t pde = _PAGE_PRESENT | _PAGE_RW;
        pde |= addr;
        if (level != I915_CACHE_NONE)
-               pde |= PPAT_CACHED_PDE_INDEX;
+               pde |= PPAT_CACHED_PDE;
        else
-               pde |= PPAT_UNCACHED_INDEX;
+               pde |= PPAT_UNCACHED;
        return pde;
 }
 
@@ -481,10 +481,8 @@ static void fill_page_dma(struct i915_address_space *vm,
                          const u64 val)
 {
        u64 * const vaddr = kmap_atomic(p->page);
-       int i;
 
-       for (i = 0; i < 512; i++)
-               vaddr[i] = val;
+       memset64(vaddr, val, PAGE_SIZE / sizeof(val));
 
        kunmap_atomic(vaddr);
 }
@@ -1168,19 +1166,22 @@ static int gen8_ppgtt_alloc_pd(struct i915_address_space *vm,
        unsigned int pde;
 
        gen8_for_each_pde(pt, pd, start, length, pde) {
+               int count = gen8_pte_count(start, length);
+
                if (pt == vm->scratch_pt) {
                        pt = alloc_pt(vm);
                        if (IS_ERR(pt))
                                goto unwind;
 
-                       gen8_initialize_pt(vm, pt);
+                       if (count < GEN8_PTES)
+                               gen8_initialize_pt(vm, pt);
 
                        gen8_ppgtt_set_pde(vm, pd, pt, pde);
                        pd->used_pdes++;
                        GEM_BUG_ON(pd->used_pdes > I915_PDES);
                }
 
-               pt->used_ptes += gen8_pte_count(start, length);
+               pt->used_ptes += count;
        }
        return 0;
 
@@ -1969,7 +1970,7 @@ int i915_ppgtt_init_hw(struct drm_i915_private *dev_priv)
        /* In the case of execlists, PPGTT is enabled by the context descriptor
         * and the PDPs are contained within the context itself.  We don't
         * need to do anything here. */
-       if (i915.enable_execlists)
+       if (i915_modparams.enable_execlists)
                return 0;
 
        if (!USES_PPGTT(dev_priv))
@@ -2816,41 +2817,209 @@ static int ggtt_probe_common(struct i915_ggtt *ggtt, u64 size)
        return 0;
 }
 
-static void cnl_setup_private_ppat(struct drm_i915_private *dev_priv)
+static struct intel_ppat_entry *
+__alloc_ppat_entry(struct intel_ppat *ppat, unsigned int index, u8 value)
+{
+       struct intel_ppat_entry *entry = &ppat->entries[index];
+
+       GEM_BUG_ON(index >= ppat->max_entries);
+       GEM_BUG_ON(test_bit(index, ppat->used));
+
+       entry->ppat = ppat;
+       entry->value = value;
+       kref_init(&entry->ref);
+       set_bit(index, ppat->used);
+       set_bit(index, ppat->dirty);
+
+       return entry;
+}
+
+static void __free_ppat_entry(struct intel_ppat_entry *entry)
+{
+       struct intel_ppat *ppat = entry->ppat;
+       unsigned int index = entry - ppat->entries;
+
+       GEM_BUG_ON(index >= ppat->max_entries);
+       GEM_BUG_ON(!test_bit(index, ppat->used));
+
+       entry->value = ppat->clear_value;
+       clear_bit(index, ppat->used);
+       set_bit(index, ppat->dirty);
+}
+
+/**
+ * intel_ppat_get - get a usable PPAT entry
+ * @i915: i915 device instance
+ * @value: the PPAT value required by the caller
+ *
+ * The function tries to search if there is an existing PPAT entry which
+ * matches with the required value. If perfectly matched, the existing PPAT
+ * entry will be used. If only partially matched, it will try to check if
+ * there is any available PPAT index. If yes, it will allocate a new PPAT
+ * index for the required entry and update the HW. If not, the partially
+ * matched entry will be used.
+ */
+const struct intel_ppat_entry *
+intel_ppat_get(struct drm_i915_private *i915, u8 value)
 {
+       struct intel_ppat *ppat = &i915->ppat;
+       struct intel_ppat_entry *entry;
+       unsigned int scanned, best_score;
+       int i;
+
+       GEM_BUG_ON(!ppat->max_entries);
+
+       scanned = best_score = 0;
+       for_each_set_bit(i, ppat->used, ppat->max_entries) {
+               unsigned int score;
+
+               score = ppat->match(ppat->entries[i].value, value);
+               if (score > best_score) {
+                       entry = &ppat->entries[i];
+                       if (score == INTEL_PPAT_PERFECT_MATCH) {
+                               kref_get(&entry->ref);
+                               return entry;
+                       }
+                       best_score = score;
+               }
+               scanned++;
+       }
+
+       if (scanned == ppat->max_entries) {
+               if (!best_score)
+                       return ERR_PTR(-ENOSPC);
+
+               kref_get(&entry->ref);
+               return entry;
+       }
+
+       i = find_first_zero_bit(ppat->used, ppat->max_entries);
+       entry = __alloc_ppat_entry(ppat, i, value);
+       ppat->update_hw(i915);
+       return entry;
+}
+
+static void release_ppat(struct kref *kref)
+{
+       struct intel_ppat_entry *entry =
+               container_of(kref, struct intel_ppat_entry, ref);
+       struct drm_i915_private *i915 = entry->ppat->i915;
+
+       __free_ppat_entry(entry);
+       entry->ppat->update_hw(i915);
+}
+
+/**
+ * intel_ppat_put - put back the PPAT entry got from intel_ppat_get()
+ * @entry: an intel PPAT entry
+ *
+ * Put back the PPAT entry got from intel_ppat_get(). If the PPAT index of the
+ * entry is dynamically allocated, its reference count will be decreased. Once
+ * the reference count becomes into zero, the PPAT index becomes free again.
+ */
+void intel_ppat_put(const struct intel_ppat_entry *entry)
+{
+       struct intel_ppat *ppat = entry->ppat;
+       unsigned int index = entry - ppat->entries;
+
+       GEM_BUG_ON(!ppat->max_entries);
+
+       kref_put(&ppat->entries[index].ref, release_ppat);
+}
+
+static void cnl_private_pat_update_hw(struct drm_i915_private *dev_priv)
+{
+       struct intel_ppat *ppat = &dev_priv->ppat;
+       int i;
+
+       for_each_set_bit(i, ppat->dirty, ppat->max_entries) {
+               I915_WRITE(GEN10_PAT_INDEX(i), ppat->entries[i].value);
+               clear_bit(i, ppat->dirty);
+       }
+}
+
+static void bdw_private_pat_update_hw(struct drm_i915_private *dev_priv)
+{
+       struct intel_ppat *ppat = &dev_priv->ppat;
+       u64 pat = 0;
+       int i;
+
+       for (i = 0; i < ppat->max_entries; i++)
+               pat |= GEN8_PPAT(i, ppat->entries[i].value);
+
+       bitmap_clear(ppat->dirty, 0, ppat->max_entries);
+
+       I915_WRITE(GEN8_PRIVATE_PAT_LO, lower_32_bits(pat));
+       I915_WRITE(GEN8_PRIVATE_PAT_HI, upper_32_bits(pat));
+}
+
+static unsigned int bdw_private_pat_match(u8 src, u8 dst)
+{
+       unsigned int score = 0;
+       enum {
+               AGE_MATCH = BIT(0),
+               TC_MATCH = BIT(1),
+               CA_MATCH = BIT(2),
+       };
+
+       /* Cache attribute has to be matched. */
+       if (GEN8_PPAT_GET_CA(src) != GEN8_PPAT_GET_CA(dst))
+               return 0;
+
+       score |= CA_MATCH;
+
+       if (GEN8_PPAT_GET_TC(src) == GEN8_PPAT_GET_TC(dst))
+               score |= TC_MATCH;
+
+       if (GEN8_PPAT_GET_AGE(src) == GEN8_PPAT_GET_AGE(dst))
+               score |= AGE_MATCH;
+
+       if (score == (AGE_MATCH | TC_MATCH | CA_MATCH))
+               return INTEL_PPAT_PERFECT_MATCH;
+
+       return score;
+}
+
+static unsigned int chv_private_pat_match(u8 src, u8 dst)
+{
+       return (CHV_PPAT_GET_SNOOP(src) == CHV_PPAT_GET_SNOOP(dst)) ?
+               INTEL_PPAT_PERFECT_MATCH : 0;
+}
+
+static void cnl_setup_private_ppat(struct intel_ppat *ppat)
+{
+       ppat->max_entries = 8;
+       ppat->update_hw = cnl_private_pat_update_hw;
+       ppat->match = bdw_private_pat_match;
+       ppat->clear_value = GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3);
+
        /* XXX: spec is unclear if this is still needed for CNL+ */
-       if (!USES_PPGTT(dev_priv)) {
-               I915_WRITE(GEN10_PAT_INDEX(0), GEN8_PPAT_UC);
+       if (!USES_PPGTT(ppat->i915)) {
+               __alloc_ppat_entry(ppat, 0, GEN8_PPAT_UC);
                return;
        }
 
-       I915_WRITE(GEN10_PAT_INDEX(0), GEN8_PPAT_WB | GEN8_PPAT_LLC);
-       I915_WRITE(GEN10_PAT_INDEX(1), GEN8_PPAT_WC | GEN8_PPAT_LLCELLC);
-       I915_WRITE(GEN10_PAT_INDEX(2), GEN8_PPAT_WT | GEN8_PPAT_LLCELLC);
-       I915_WRITE(GEN10_PAT_INDEX(3), GEN8_PPAT_UC);
-       I915_WRITE(GEN10_PAT_INDEX(4), GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(0));
-       I915_WRITE(GEN10_PAT_INDEX(5), GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(1));
-       I915_WRITE(GEN10_PAT_INDEX(6), GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(2));
-       I915_WRITE(GEN10_PAT_INDEX(7), GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3));
+       __alloc_ppat_entry(ppat, 0, GEN8_PPAT_WB | GEN8_PPAT_LLC);
+       __alloc_ppat_entry(ppat, 1, GEN8_PPAT_WC | GEN8_PPAT_LLCELLC);
+       __alloc_ppat_entry(ppat, 2, GEN8_PPAT_WT | GEN8_PPAT_LLCELLC);
+       __alloc_ppat_entry(ppat, 3, GEN8_PPAT_UC);
+       __alloc_ppat_entry(ppat, 4, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(0));
+       __alloc_ppat_entry(ppat, 5, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(1));
+       __alloc_ppat_entry(ppat, 6, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(2));
+       __alloc_ppat_entry(ppat, 7, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3));
 }
 
 /* The GGTT and PPGTT need a private PPAT setup in order to handle cacheability
  * bits. When using advanced contexts each context stores its own PAT, but
  * writing this data shouldn't be harmful even in those cases. */
-static void bdw_setup_private_ppat(struct drm_i915_private *dev_priv)
+static void bdw_setup_private_ppat(struct intel_ppat *ppat)
 {
-       u64 pat;
+       ppat->max_entries = 8;
+       ppat->update_hw = bdw_private_pat_update_hw;
+       ppat->match = bdw_private_pat_match;
+       ppat->clear_value = GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3);
 
-       pat = GEN8_PPAT(0, GEN8_PPAT_WB | GEN8_PPAT_LLC)     | /* for normal objects, no eLLC */
-             GEN8_PPAT(1, GEN8_PPAT_WC | GEN8_PPAT_LLCELLC) | /* for something pointing to ptes? */
-             GEN8_PPAT(2, GEN8_PPAT_WT | GEN8_PPAT_LLCELLC) | /* for scanout with eLLC */
-             GEN8_PPAT(3, GEN8_PPAT_UC)                     | /* Uncached objects, mostly for scanout */
-             GEN8_PPAT(4, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(0)) |
-             GEN8_PPAT(5, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(1)) |
-             GEN8_PPAT(6, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(2)) |
-             GEN8_PPAT(7, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3));
-
-       if (!USES_PPGTT(dev_priv))
+       if (!USES_PPGTT(ppat->i915)) {
                /* Spec: "For GGTT, there is NO pat_sel[2:0] from the entry,
                 * so RTL will always use the value corresponding to
                 * pat_sel = 000".
@@ -2864,17 +3033,26 @@ static void bdw_setup_private_ppat(struct drm_i915_private *dev_priv)
                 * So we can still hold onto all our assumptions wrt cpu
                 * clflushing on LLC machines.
                 */
-               pat = GEN8_PPAT(0, GEN8_PPAT_UC);
+               __alloc_ppat_entry(ppat, 0, GEN8_PPAT_UC);
+               return;
+       }
 
-       /* XXX: spec defines this as 2 distinct registers. It's unclear if a 64b
-        * write would work. */
-       I915_WRITE(GEN8_PRIVATE_PAT_LO, pat);
-       I915_WRITE(GEN8_PRIVATE_PAT_HI, pat >> 32);
+       __alloc_ppat_entry(ppat, 0, GEN8_PPAT_WB | GEN8_PPAT_LLC);      /* for normal objects, no eLLC */
+       __alloc_ppat_entry(ppat, 1, GEN8_PPAT_WC | GEN8_PPAT_LLCELLC);  /* for something pointing to ptes? */
+       __alloc_ppat_entry(ppat, 2, GEN8_PPAT_WT | GEN8_PPAT_LLCELLC);  /* for scanout with eLLC */
+       __alloc_ppat_entry(ppat, 3, GEN8_PPAT_UC);                      /* Uncached objects, mostly for scanout */
+       __alloc_ppat_entry(ppat, 4, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(0));
+       __alloc_ppat_entry(ppat, 5, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(1));
+       __alloc_ppat_entry(ppat, 6, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(2));
+       __alloc_ppat_entry(ppat, 7, GEN8_PPAT_WB | GEN8_PPAT_LLCELLC | GEN8_PPAT_AGE(3));
 }
 
-static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
+static void chv_setup_private_ppat(struct intel_ppat *ppat)
 {
-       u64 pat;
+       ppat->max_entries = 8;
+       ppat->update_hw = bdw_private_pat_update_hw;
+       ppat->match = chv_private_pat_match;
+       ppat->clear_value = CHV_PPAT_SNOOP;
 
        /*
         * Map WB on BDW to snooped on CHV.
@@ -2894,17 +3072,15 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
         * Which means we must set the snoop bit in PAT entry 0
         * in order to keep the global status page working.
         */
-       pat = GEN8_PPAT(0, CHV_PPAT_SNOOP) |
-             GEN8_PPAT(1, 0) |
-             GEN8_PPAT(2, 0) |
-             GEN8_PPAT(3, 0) |
-             GEN8_PPAT(4, CHV_PPAT_SNOOP) |
-             GEN8_PPAT(5, CHV_PPAT_SNOOP) |
-             GEN8_PPAT(6, CHV_PPAT_SNOOP) |
-             GEN8_PPAT(7, CHV_PPAT_SNOOP);
 
-       I915_WRITE(GEN8_PRIVATE_PAT_LO, pat);
-       I915_WRITE(GEN8_PRIVATE_PAT_HI, pat >> 32);
+       __alloc_ppat_entry(ppat, 0, CHV_PPAT_SNOOP);
+       __alloc_ppat_entry(ppat, 1, 0);
+       __alloc_ppat_entry(ppat, 2, 0);
+       __alloc_ppat_entry(ppat, 3, 0);
+       __alloc_ppat_entry(ppat, 4, CHV_PPAT_SNOOP);
+       __alloc_ppat_entry(ppat, 5, CHV_PPAT_SNOOP);
+       __alloc_ppat_entry(ppat, 6, CHV_PPAT_SNOOP);
+       __alloc_ppat_entry(ppat, 7, CHV_PPAT_SNOOP);
 }
 
 static void gen6_gmch_remove(struct i915_address_space *vm)
@@ -2915,6 +3091,31 @@ static void gen6_gmch_remove(struct i915_address_space *vm)
        cleanup_scratch_page(vm);
 }
 
+static void setup_private_pat(struct drm_i915_private *dev_priv)
+{
+       struct intel_ppat *ppat = &dev_priv->ppat;
+       int i;
+
+       ppat->i915 = dev_priv;
+
+       if (INTEL_GEN(dev_priv) >= 10)
+               cnl_setup_private_ppat(ppat);
+       else if (IS_CHERRYVIEW(dev_priv) || IS_GEN9_LP(dev_priv))
+               chv_setup_private_ppat(ppat);
+       else
+               bdw_setup_private_ppat(ppat);
+
+       GEM_BUG_ON(ppat->max_entries > INTEL_MAX_PPAT_ENTRIES);
+
+       for_each_clear_bit(i, ppat->used, ppat->max_entries) {
+               ppat->entries[i].value = ppat->clear_value;
+               ppat->entries[i].ppat = ppat;
+               set_bit(i, ppat->dirty);
+       }
+
+       ppat->update_hw(dev_priv);
+}
+
 static int gen8_gmch_probe(struct i915_ggtt *ggtt)
 {
        struct drm_i915_private *dev_priv = ggtt->base.i915;
@@ -2947,14 +3148,6 @@ static int gen8_gmch_probe(struct i915_ggtt *ggtt)
        }
 
        ggtt->base.total = (size / sizeof(gen8_pte_t)) << PAGE_SHIFT;
-
-       if (INTEL_GEN(dev_priv) >= 10)
-               cnl_setup_private_ppat(dev_priv);
-       else if (IS_CHERRYVIEW(dev_priv) || IS_GEN9_LP(dev_priv))
-               chv_setup_private_ppat(dev_priv);
-       else
-               bdw_setup_private_ppat(dev_priv);
-
        ggtt->base.cleanup = gen6_gmch_remove;
        ggtt->base.bind_vma = ggtt_bind_vma;
        ggtt->base.unbind_vma = ggtt_unbind_vma;
@@ -2975,6 +3168,8 @@ static int gen8_gmch_probe(struct i915_ggtt *ggtt)
 
        ggtt->invalidate = gen6_ggtt_invalidate;
 
+       setup_private_pat(dev_priv);
+
        return ggtt_probe_common(ggtt, size);
 }
 
@@ -3095,7 +3290,7 @@ int i915_ggtt_probe_hw(struct drm_i915_private *dev_priv)
         * currently don't have any bits spare to pass in this upper
         * restriction!
         */
-       if (HAS_GUC(dev_priv) && i915.enable_guc_loading) {
+       if (HAS_GUC(dev_priv) && i915_modparams.enable_guc_loading) {
                ggtt->base.total = min_t(u64, ggtt->base.total, GUC_GGTT_TOP);
                ggtt->mappable_end = min(ggtt->mappable_end, ggtt->base.total);
        }
@@ -3232,13 +3427,10 @@ void i915_gem_restore_gtt_mappings(struct drm_i915_private *dev_priv)
        ggtt->base.closed = false;
 
        if (INTEL_GEN(dev_priv) >= 8) {
-               if (INTEL_GEN(dev_priv) >= 10)
-                       cnl_setup_private_ppat(dev_priv);
-               else if (IS_CHERRYVIEW(dev_priv) || IS_GEN9_LP(dev_priv))
-                       chv_setup_private_ppat(dev_priv);
-               else
-                       bdw_setup_private_ppat(dev_priv);
+               struct intel_ppat *ppat = &dev_priv->ppat;
 
+               bitmap_set(ppat->dirty, 0, ppat->max_entries);
+               dev_priv->ppat.update_hw(dev_priv);
                return;
        }
 
index b4e3aa7..f62fb90 100644 (file)
@@ -126,13 +126,13 @@ typedef u64 gen8_ppgtt_pml4e_t;
  * tables */
 #define GEN8_PDPE_MASK                 0x1ff
 
-#define PPAT_UNCACHED_INDEX            (_PAGE_PWT | _PAGE_PCD)
-#define PPAT_CACHED_PDE_INDEX          0 /* WB LLC */
-#define PPAT_CACHED_INDEX              _PAGE_PAT /* WB LLCeLLC */
-#define PPAT_DISPLAY_ELLC_INDEX                _PAGE_PCD /* WT eLLC */
+#define PPAT_UNCACHED                  (_PAGE_PWT | _PAGE_PCD)
+#define PPAT_CACHED_PDE                        0 /* WB LLC */
+#define PPAT_CACHED                    _PAGE_PAT /* WB LLCeLLC */
+#define PPAT_DISPLAY_ELLC              _PAGE_PCD /* WT eLLC */
 
 #define CHV_PPAT_SNOOP                 (1<<6)
-#define GEN8_PPAT_AGE(x)               (x<<4)
+#define GEN8_PPAT_AGE(x)               ((x)<<4)
 #define GEN8_PPAT_LLCeLLC              (3<<2)
 #define GEN8_PPAT_LLCELLC              (2<<2)
 #define GEN8_PPAT_LLC                  (1<<2)
@@ -143,6 +143,11 @@ typedef u64 gen8_ppgtt_pml4e_t;
 #define GEN8_PPAT_ELLC_OVERRIDE                (0<<2)
 #define GEN8_PPAT(i, x)                        ((u64)(x) << ((i) * 8))
 
+#define GEN8_PPAT_GET_CA(x) ((x) & 3)
+#define GEN8_PPAT_GET_TC(x) ((x) & (3 << 2))
+#define GEN8_PPAT_GET_AGE(x) ((x) & (3 << 4))
+#define CHV_PPAT_GET_SNOOP(x) ((x) & (1 << 6))
+
 struct sg_table;
 
 struct intel_rotation_info {
@@ -536,6 +541,37 @@ i915_vm_to_ggtt(struct i915_address_space *vm)
        return container_of(vm, struct i915_ggtt, base);
 }
 
+#define INTEL_MAX_PPAT_ENTRIES 8
+#define INTEL_PPAT_PERFECT_MATCH (~0U)
+
+struct intel_ppat;
+
+struct intel_ppat_entry {
+       struct intel_ppat *ppat;
+       struct kref ref;
+       u8 value;
+};
+
+struct intel_ppat {
+       struct intel_ppat_entry entries[INTEL_MAX_PPAT_ENTRIES];
+       DECLARE_BITMAP(used, INTEL_MAX_PPAT_ENTRIES);
+       DECLARE_BITMAP(dirty, INTEL_MAX_PPAT_ENTRIES);
+       unsigned int max_entries;
+       u8 clear_value;
+       /*
+        * Return a score to show how two PPAT values match,
+        * a INTEL_PPAT_PERFECT_MATCH indicates a perfect match
+        */
+       unsigned int (*match)(u8 src, u8 dst);
+       void (*update_hw)(struct drm_i915_private *i915);
+
+       struct drm_i915_private *i915;
+};
+
+const struct intel_ppat_entry *
+intel_ppat_get(struct drm_i915_private *i915, u8 value);
+void intel_ppat_put(const struct intel_ppat_entry *entry);
+
 int i915_gem_init_aliasing_ppgtt(struct drm_i915_private *i915);
 void i915_gem_fini_aliasing_ppgtt(struct drm_i915_private *i915);
 
index 813a3b5..4eb1a76 100644 (file)
@@ -1021,12 +1021,28 @@ static bool busywait_stop(unsigned long timeout, unsigned int cpu)
        return this_cpu != cpu;
 }
 
-bool __i915_spin_request(const struct drm_i915_gem_request *req,
-                        u32 seqno, int state, unsigned long timeout_us)
+static bool __i915_spin_request(const struct drm_i915_gem_request *req,
+                               u32 seqno, int state, unsigned long timeout_us)
 {
        struct intel_engine_cs *engine = req->engine;
        unsigned int irq, cpu;
 
+       GEM_BUG_ON(!seqno);
+
+       /*
+        * Only wait for the request if we know it is likely to complete.
+        *
+        * We don't track the timestamps around requests, nor the average
+        * request length, so we do not have a good indicator that this
+        * request will complete within the timeout. What we do know is the
+        * order in which requests are executed by the engine and so we can
+        * tell if the request has started. If the request hasn't started yet,
+        * it is a fair assumption that it will not complete within our
+        * relatively short timeout.
+        */
+       if (!i915_seqno_passed(intel_engine_get_seqno(engine), seqno - 1))
+               return false;
+
        /* When waiting for high frequency requests, e.g. during synchronous
         * rendering split between the CPU and GPU, the finite amount of time
         * required to set up the irq and wait upon it limits the response
@@ -1040,12 +1056,8 @@ bool __i915_spin_request(const struct drm_i915_gem_request *req,
        irq = atomic_read(&engine->irq_count);
        timeout_us += local_clock_us(&cpu);
        do {
-               if (seqno != i915_gem_request_global_seqno(req))
-                       break;
-
-               if (i915_seqno_passed(intel_engine_get_seqno(req->engine),
-                                     seqno))
-                       return true;
+               if (i915_seqno_passed(intel_engine_get_seqno(engine), seqno))
+                       return seqno == i915_gem_request_global_seqno(req);
 
                /* Seqno are meant to be ordered *before* the interrupt. If
                 * we see an interrupt without a corresponding seqno advance,
@@ -1156,7 +1168,7 @@ restart:
        GEM_BUG_ON(!i915_sw_fence_signaled(&req->submit));
 
        /* Optimistic short spin before touching IRQs */
-       if (i915_spin_request(req, state, 5))
+       if (__i915_spin_request(req, wait.seqno, state, 5))
                goto complete;
 
        set_current_state(state);
@@ -1213,7 +1225,7 @@ wakeup:
                        continue;
 
                /* Only spin if we know the GPU is processing this request */
-               if (i915_spin_request(req, state, 2))
+               if (__i915_spin_request(req, wait.seqno, state, 2))
                        break;
 
                if (!intel_wait_check_request(&wait, req)) {
index 49a4c89..96eb524 100644 (file)
@@ -313,26 +313,6 @@ static inline bool i915_seqno_passed(u32 seq1, u32 seq2)
 }
 
 static inline bool
-__i915_gem_request_started(const struct drm_i915_gem_request *req, u32 seqno)
-{
-       GEM_BUG_ON(!seqno);
-       return i915_seqno_passed(intel_engine_get_seqno(req->engine),
-                                seqno - 1);
-}
-
-static inline bool
-i915_gem_request_started(const struct drm_i915_gem_request *req)
-{
-       u32 seqno;
-
-       seqno = i915_gem_request_global_seqno(req);
-       if (!seqno)
-               return false;
-
-       return __i915_gem_request_started(req, seqno);
-}
-
-static inline bool
 __i915_gem_request_completed(const struct drm_i915_gem_request *req, u32 seqno)
 {
        GEM_BUG_ON(!seqno);
@@ -352,21 +332,6 @@ i915_gem_request_completed(const struct drm_i915_gem_request *req)
        return __i915_gem_request_completed(req, seqno);
 }
 
-bool __i915_spin_request(const struct drm_i915_gem_request *request,
-                        u32 seqno, int state, unsigned long timeout_us);
-static inline bool i915_spin_request(const struct drm_i915_gem_request *request,
-                                    int state, unsigned long timeout_us)
-{
-       u32 seqno;
-
-       seqno = i915_gem_request_global_seqno(request);
-       if (!seqno)
-               return 0;
-
-       return (__i915_gem_request_started(request, seqno) &&
-               __i915_spin_request(request, seqno, state, timeout_us));
-}
-
 /* We treat requests as fences. This is not be to confused with our
  * "fence registers" but pipeline synchronisation objects ala GL_ARB_sync.
  * We use the fences to synchronize access from the CPU with activity on the
index 709efe2..2d4996d 100644 (file)
@@ -399,64 +399,42 @@ struct get_pages_work {
        struct task_struct *task;
 };
 
-#if IS_ENABLED(CONFIG_SWIOTLB)
-#define swiotlb_active() swiotlb_nr_tbl()
-#else
-#define swiotlb_active() 0
-#endif
-
-static int
-st_set_pages(struct sg_table **st, struct page **pvec, int num_pages)
-{
-       struct scatterlist *sg;
-       int ret, n;
-
-       *st = kmalloc(sizeof(**st), GFP_KERNEL);
-       if (*st == NULL)
-               return -ENOMEM;
-
-       if (swiotlb_active()) {
-               ret = sg_alloc_table(*st, num_pages, GFP_KERNEL);
-               if (ret)
-                       goto err;
-
-               for_each_sg((*st)->sgl, sg, num_pages, n)
-                       sg_set_page(sg, pvec[n], PAGE_SIZE, 0);
-       } else {
-               ret = sg_alloc_table_from_pages(*st, pvec, num_pages,
-                                               0, num_pages << PAGE_SHIFT,
-                                               GFP_KERNEL);
-               if (ret)
-                       goto err;
-       }
-
-       return 0;
-
-err:
-       kfree(*st);
-       *st = NULL;
-       return ret;
-}
-
 static struct sg_table *
-__i915_gem_userptr_set_pages(struct drm_i915_gem_object *obj,
-                            struct page **pvec, int num_pages)
+__i915_gem_userptr_alloc_pages(struct drm_i915_gem_object *obj,
+                              struct page **pvec, int num_pages)
 {
-       struct sg_table *pages;
+       unsigned int max_segment = i915_sg_segment_size();
+       struct sg_table *st;
        int ret;
 
-       ret = st_set_pages(&pages, pvec, num_pages);
-       if (ret)
+       st = kmalloc(sizeof(*st), GFP_KERNEL);
+       if (!st)
+               return ERR_PTR(-ENOMEM);
+
+alloc_table:
+       ret = __sg_alloc_table_from_pages(st, pvec, num_pages,
+                                         0, num_pages << PAGE_SHIFT,
+                                         max_segment,
+                                         GFP_KERNEL);
+       if (ret) {
+               kfree(st);
                return ERR_PTR(ret);
+       }
 
-       ret = i915_gem_gtt_prepare_pages(obj, pages);
+       ret = i915_gem_gtt_prepare_pages(obj, st);
        if (ret) {
-               sg_free_table(pages);
-               kfree(pages);
+               sg_free_table(st);
+
+               if (max_segment > PAGE_SIZE) {
+                       max_segment = PAGE_SIZE;
+                       goto alloc_table;
+               }
+
+               kfree(st);
                return ERR_PTR(ret);
        }
 
-       return pages;
+       return st;
 }
 
 static int
@@ -540,7 +518,8 @@ __i915_gem_userptr_get_pages_worker(struct work_struct *_work)
                struct sg_table *pages = ERR_PTR(ret);
 
                if (pinned == npages) {
-                       pages = __i915_gem_userptr_set_pages(obj, pvec, npages);
+                       pages = __i915_gem_userptr_alloc_pages(obj, pvec,
+                                                              npages);
                        if (!IS_ERR(pages)) {
                                __i915_gem_object_set_pages(obj, pages);
                                pinned = 0;
@@ -661,7 +640,7 @@ i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
                pages = __i915_gem_userptr_get_pages_schedule(obj);
                active = pages == ERR_PTR(-EAGAIN);
        } else {
-               pages = __i915_gem_userptr_set_pages(obj, pvec, num_pages);
+               pages = __i915_gem_userptr_alloc_pages(obj, pvec, num_pages);
                active = !IS_ERR(pages);
        }
        if (active)
@@ -834,7 +813,9 @@ int i915_gem_init_userptr(struct drm_i915_private *dev_priv)
        hash_init(dev_priv->mm_structs);
 
        dev_priv->mm.userptr_wq =
-               alloc_workqueue("i915-userptr-acquire", WQ_HIGHPRI, 0);
+               alloc_workqueue("i915-userptr-acquire",
+                               WQ_HIGHPRI | WQ_MEM_RECLAIM,
+                               0);
        if (!dev_priv->mm.userptr_wq)
                return -ENOMEM;
 
index 0c77967..c14552a 100644 (file)
@@ -396,6 +396,8 @@ static void error_print_context(struct drm_i915_error_state_buf *m,
 static void error_print_engine(struct drm_i915_error_state_buf *m,
                               const struct drm_i915_error_engine *ee)
 {
+       int n;
+
        err_printf(m, "%s command stream:\n", engine_str(ee->engine_id));
        err_printf(m, "  START: 0x%08x\n", ee->start);
        err_printf(m, "  HEAD:  0x%08x [0x%08x]\n", ee->head, ee->rq_head);
@@ -465,8 +467,11 @@ static void error_print_engine(struct drm_i915_error_state_buf *m,
                   jiffies_to_msecs(jiffies - ee->hangcheck_timestamp));
        err_printf(m, "  engine reset count: %u\n", ee->reset_count);
 
-       error_print_request(m, "  ELSP[0]: ", &ee->execlist[0]);
-       error_print_request(m, "  ELSP[1]: ", &ee->execlist[1]);
+       for (n = 0; n < ee->num_ports; n++) {
+               err_printf(m, "  ELSP[%d]:", n);
+               error_print_request(m, " ", &ee->execlist[n]);
+       }
+
        error_print_context(m, "  Active context: ", &ee->context);
 }
 
@@ -567,7 +572,7 @@ static __always_inline void err_print_param(struct drm_i915_error_state_buf *m,
 static void err_print_params(struct drm_i915_error_state_buf *m,
                             const struct i915_params *p)
 {
-#define PRINT(T, x) err_print_param(m, #x, #T, &p->x);
+#define PRINT(T, x, ...) err_print_param(m, #x, #T, &p->x);
        I915_PARAMS_FOR_EACH(PRINT);
 #undef PRINT
 }
@@ -861,7 +866,7 @@ void __i915_gpu_state_free(struct kref *error_ref)
        kfree(error->overlay);
        kfree(error->display);
 
-#define FREE(T, x) free_param(#T, &error->params.x);
+#define FREE(T, x, ...) free_param(#T, &error->params.x);
        I915_PARAMS_FOR_EACH(FREE);
 #undef FREE
 
@@ -1327,17 +1332,19 @@ static void engine_record_requests(struct intel_engine_cs *engine,
 static void error_record_engine_execlists(struct intel_engine_cs *engine,
                                          struct drm_i915_error_engine *ee)
 {
-       const struct execlist_port *port = engine->execlist_port;
+       const struct intel_engine_execlists * const execlists = &engine->execlists;
        unsigned int n;
 
-       for (n = 0; n < ARRAY_SIZE(engine->execlist_port); n++) {
-               struct drm_i915_gem_request *rq = port_request(&port[n]);
+       for (n = 0; n < execlists_num_ports(execlists); n++) {
+               struct drm_i915_gem_request *rq = port_request(&execlists->port[n]);
 
                if (!rq)
                        break;
 
                record_request(rq, &ee->execlist[n]);
        }
+
+       ee->num_ports = n;
 }
 
 static void record_context(struct drm_i915_error_context *e,
@@ -1554,7 +1561,7 @@ static void i915_gem_capture_guc_log_buffer(struct drm_i915_private *dev_priv,
                                            struct i915_gpu_state *error)
 {
        /* Capturing log buf contents won't be useful if logging was disabled */
-       if (!dev_priv->guc.log.vma || (i915.guc_log_level < 0))
+       if (!dev_priv->guc.log.vma || (i915_modparams.guc_log_level < 0))
                return;
 
        error->guc_log = i915_error_object_create(dev_priv,
@@ -1696,8 +1703,8 @@ static int capture(void *data)
                ktime_to_timeval(ktime_sub(ktime_get(),
                                           error->i915->gt.last_init_time));
 
-       error->params = i915;
-#define DUP(T, x) dup_param(#T, &error->params.x);
+       error->params = i915_modparams;
+#define DUP(T, x, ...) dup_param(#T, &error->params.x);
        I915_PARAMS_FOR_EACH(DUP);
 #undef DUP
 
@@ -1751,7 +1758,7 @@ void i915_capture_error_state(struct drm_i915_private *dev_priv,
        struct i915_gpu_state *error;
        unsigned long flags;
 
-       if (!i915.error_capture)
+       if (!i915_modparams.error_capture)
                return;
 
        if (READ_ONCE(dev_priv->gpu_error.first_error))
index 48a1e93..04f1281 100644 (file)
@@ -192,13 +192,12 @@ static int __create_doorbell(struct i915_guc_client *client)
 
        doorbell = __get_doorbell(client);
        doorbell->db_status = GUC_DOORBELL_ENABLED;
-       doorbell->cookie = client->doorbell_cookie;
+       doorbell->cookie = 0;
 
        err = __guc_allocate_doorbell(client->guc, client->stage_id);
-       if (err) {
+       if (err)
                doorbell->db_status = GUC_DOORBELL_DISABLED;
-               doorbell->cookie = 0;
-       }
+
        return err;
 }
 
@@ -306,7 +305,7 @@ static void guc_proc_desc_init(struct intel_guc *guc,
        desc->db_base_addr = 0;
 
        desc->stage_id = client->stage_id;
-       desc->wq_size_bytes = client->wq_size;
+       desc->wq_size_bytes = GUC_WQ_SIZE;
        desc->wq_status = WQ_STATUS_ACTIVE;
        desc->priority = client->priority;
 }
@@ -391,8 +390,8 @@ static void guc_stage_desc_init(struct intel_guc *guc,
        desc->db_trigger_cpu = (uintptr_t)__get_doorbell(client);
        desc->db_trigger_uk = gfx_addr + client->doorbell_offset;
        desc->process_desc = gfx_addr + client->proc_desc_offset;
-       desc->wq_addr = gfx_addr + client->wq_offset;
-       desc->wq_size = client->wq_size;
+       desc->wq_addr = gfx_addr + GUC_DB_SIZE;
+       desc->wq_size = GUC_WQ_SIZE;
 
        desc->desc_private = (uintptr_t)client;
 }
@@ -406,82 +405,23 @@ static void guc_stage_desc_fini(struct intel_guc *guc,
        memset(desc, 0, sizeof(*desc));
 }
 
-/**
- * i915_guc_wq_reserve() - reserve space in the GuC's workqueue
- * @request:   request associated with the commands
- *
- * Return:     0 if space is available
- *             -EAGAIN if space is not currently available
- *
- * This function must be called (and must return 0) before a request
- * is submitted to the GuC via i915_guc_submit() below. Once a result
- * of 0 has been returned, it must be balanced by a corresponding
- * call to submit().
- *
- * Reservation allows the caller to determine in advance that space
- * will be available for the next submission before committing resources
- * to it, and helps avoid late failures with complicated recovery paths.
- */
-int i915_guc_wq_reserve(struct drm_i915_gem_request *request)
-{
-       const size_t wqi_size = sizeof(struct guc_wq_item);
-       struct i915_guc_client *client = request->i915->guc.execbuf_client;
-       struct guc_process_desc *desc = __get_process_desc(client);
-       u32 freespace;
-       int ret;
-
-       spin_lock_irq(&client->wq_lock);
-       freespace = CIRC_SPACE(client->wq_tail, desc->head, client->wq_size);
-       freespace -= client->wq_rsvd;
-       if (likely(freespace >= wqi_size)) {
-               client->wq_rsvd += wqi_size;
-               ret = 0;
-       } else {
-               client->no_wq_space++;
-               ret = -EAGAIN;
-       }
-       spin_unlock_irq(&client->wq_lock);
-
-       return ret;
-}
-
-static void guc_client_update_wq_rsvd(struct i915_guc_client *client, int size)
-{
-       unsigned long flags;
-
-       spin_lock_irqsave(&client->wq_lock, flags);
-       client->wq_rsvd += size;
-       spin_unlock_irqrestore(&client->wq_lock, flags);
-}
-
-void i915_guc_wq_unreserve(struct drm_i915_gem_request *request)
-{
-       const int wqi_size = sizeof(struct guc_wq_item);
-       struct i915_guc_client *client = request->i915->guc.execbuf_client;
-
-       GEM_BUG_ON(READ_ONCE(client->wq_rsvd) < wqi_size);
-       guc_client_update_wq_rsvd(client, -wqi_size);
-}
-
 /* Construct a Work Item and append it to the GuC's Work Queue */
 static void guc_wq_item_append(struct i915_guc_client *client,
                               struct drm_i915_gem_request *rq)
 {
        /* wqi_len is in DWords, and does not include the one-word header */
        const size_t wqi_size = sizeof(struct guc_wq_item);
-       const u32 wqi_len = wqi_size/sizeof(u32) - 1;
+       const u32 wqi_len = wqi_size / sizeof(u32) - 1;
        struct intel_engine_cs *engine = rq->engine;
+       struct i915_gem_context *ctx = rq->ctx;
        struct guc_process_desc *desc = __get_process_desc(client);
        struct guc_wq_item *wqi;
-       u32 freespace, tail, wq_off;
+       u32 ring_tail, wq_off;
 
-       /* Free space is guaranteed, see i915_guc_wq_reserve() above */
-       freespace = CIRC_SPACE(client->wq_tail, desc->head, client->wq_size);
-       GEM_BUG_ON(freespace < wqi_size);
+       lockdep_assert_held(&client->wq_lock);
 
-       /* The GuC firmware wants the tail index in QWords, not bytes */
-       tail = intel_ring_set_tail(rq->ring, rq->tail) >> 3;
-       GEM_BUG_ON(tail > WQ_RING_TAIL_MAX);
+       ring_tail = intel_ring_set_tail(rq->ring, rq->tail) / sizeof(u64);
+       GEM_BUG_ON(ring_tail > WQ_RING_TAIL_MAX);
 
        /* For now workqueue item is 4 DWs; workqueue buffer is 2 pages. So we
         * should not have the case where structure wqi is across page, neither
@@ -491,29 +431,29 @@ static void guc_wq_item_append(struct i915_guc_client *client,
         * workqueue buffer dw by dw.
         */
        BUILD_BUG_ON(wqi_size != 16);
-       GEM_BUG_ON(client->wq_rsvd < wqi_size);
 
-       /* postincrement WQ tail for next time */
-       wq_off = client->wq_tail;
+       /* Free space is guaranteed. */
+       wq_off = READ_ONCE(desc->tail);
+       GEM_BUG_ON(CIRC_SPACE(wq_off, READ_ONCE(desc->head),
+                             GUC_WQ_SIZE) < wqi_size);
        GEM_BUG_ON(wq_off & (wqi_size - 1));
-       client->wq_tail += wqi_size;
-       client->wq_tail &= client->wq_size - 1;
-       client->wq_rsvd -= wqi_size;
 
        /* WQ starts from the page after doorbell / process_desc */
        wqi = client->vaddr + wq_off + GUC_DB_SIZE;
 
        /* Now fill in the 4-word work queue item */
        wqi->header = WQ_TYPE_INORDER |
-                       (wqi_len << WQ_LEN_SHIFT) |
-                       (engine->guc_id << WQ_TARGET_SHIFT) |
-                       WQ_NO_WCFLUSH_WAIT;
+                     (wqi_len << WQ_LEN_SHIFT) |
+                     (engine->guc_id << WQ_TARGET_SHIFT) |
+                     WQ_NO_WCFLUSH_WAIT;
 
-       /* The GuC wants only the low-order word of the context descriptor */
-       wqi->context_desc = (u32)intel_lr_context_descriptor(rq->ctx, engine);
+       wqi->context_desc = lower_32_bits(intel_lr_context_descriptor(ctx, engine));
 
-       wqi->submit_element_info = tail << WQ_RING_TAIL_SHIFT;
+       wqi->submit_element_info = ring_tail << WQ_RING_TAIL_SHIFT;
        wqi->fence_id = rq->global_seqno;
+
+       /* Postincrement WQ tail for next time. */
+       WRITE_ONCE(desc->tail, (wq_off + wqi_size) & (GUC_WQ_SIZE - 1));
 }
 
 static void guc_reset_wq(struct i915_guc_client *client)
@@ -522,106 +462,64 @@ static void guc_reset_wq(struct i915_guc_client *client)
 
        desc->head = 0;
        desc->tail = 0;
-
-       client->wq_tail = 0;
 }
 
-static int guc_ring_doorbell(struct i915_guc_client *client)
+static void guc_ring_doorbell(struct i915_guc_client *client)
 {
-       struct guc_process_desc *desc = __get_process_desc(client);
-       union guc_doorbell_qw db_cmp, db_exc, db_ret;
-       union guc_doorbell_qw *db;
-       int attempt = 2, ret = -EAGAIN;
-
-       /* Update the tail so it is visible to GuC */
-       desc->tail = client->wq_tail;
-
-       /* current cookie */
-       db_cmp.db_status = GUC_DOORBELL_ENABLED;
-       db_cmp.cookie = client->doorbell_cookie;
+       struct guc_doorbell_info *db;
+       u32 cookie;
 
-       /* cookie to be updated */
-       db_exc.db_status = GUC_DOORBELL_ENABLED;
-       db_exc.cookie = client->doorbell_cookie + 1;
-       if (db_exc.cookie == 0)
-               db_exc.cookie = 1;
+       lockdep_assert_held(&client->wq_lock);
 
        /* pointer of current doorbell cacheline */
-       db = (union guc_doorbell_qw *)__get_doorbell(client);
-
-       while (attempt--) {
-               /* lets ring the doorbell */
-               db_ret.value_qw = atomic64_cmpxchg((atomic64_t *)db,
-                       db_cmp.value_qw, db_exc.value_qw);
-
-               /* if the exchange was successfully executed */
-               if (db_ret.value_qw == db_cmp.value_qw) {
-                       /* db was successfully rung */
-                       client->doorbell_cookie = db_exc.cookie;
-                       ret = 0;
-                       break;
-               }
-
-               /* XXX: doorbell was lost and need to acquire it again */
-               if (db_ret.db_status == GUC_DOORBELL_DISABLED)
-                       break;
+       db = __get_doorbell(client);
 
-               DRM_WARN("Cookie mismatch. Expected %d, found %d\n",
-                        db_cmp.cookie, db_ret.cookie);
-
-               /* update the cookie to newly read cookie from GuC */
-               db_cmp.cookie = db_ret.cookie;
-               db_exc.cookie = db_ret.cookie + 1;
-               if (db_exc.cookie == 0)
-                       db_exc.cookie = 1;
-       }
+       /* we're not expecting the doorbell cookie to change behind our back */
+       cookie = READ_ONCE(db->cookie);
+       WARN_ON_ONCE(xchg(&db->cookie, cookie + 1) != cookie);
 
-       return ret;
+       /* XXX: doorbell was lost and need to acquire it again */
+       GEM_BUG_ON(db->db_status != GUC_DOORBELL_ENABLED);
 }
 
 /**
- * __i915_guc_submit() - Submit commands through GuC
- * @rq:                request associated with the commands
- *
- * The caller must have already called i915_guc_wq_reserve() above with
- * a result of 0 (success), guaranteeing that there is space in the work
- * queue for the new request, so enqueuing the item cannot fail.
- *
- * Bad Things Will Happen if the caller violates this protocol e.g. calls
- * submit() when _reserve() says there's no space, or calls _submit()
- * a different number of times from (successful) calls to _reserve().
+ * i915_guc_submit() - Submit commands through GuC
+ * @engine: engine associated with the commands
  *
  * The only error here arises if the doorbell hardware isn't functioning
  * as expected, which really shouln't happen.
  */
-static void __i915_guc_submit(struct drm_i915_gem_request *rq)
+static void i915_guc_submit(struct intel_engine_cs *engine)
 {
-       struct drm_i915_private *dev_priv = rq->i915;
-       struct intel_engine_cs *engine = rq->engine;
-       unsigned int engine_id = engine->id;
-       struct intel_guc *guc = &rq->i915->guc;
+       struct drm_i915_private *dev_priv = engine->i915;
+       struct intel_guc *guc = &dev_priv->guc;
        struct i915_guc_client *client = guc->execbuf_client;
-       unsigned long flags;
-       int b_ret;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct execlist_port *port = execlists->port;
+       const unsigned int engine_id = engine->id;
+       unsigned int n;
 
-       /* WA to flush out the pending GMADR writes to ring buffer. */
-       if (i915_vma_is_map_and_fenceable(rq->ring->vma))
-               POSTING_READ_FW(GUC_STATUS);
+       for (n = 0; n < ARRAY_SIZE(execlists->port); n++) {
+               struct drm_i915_gem_request *rq;
+               unsigned int count;
 
-       spin_lock_irqsave(&client->wq_lock, flags);
+               rq = port_unpack(&port[n], &count);
+               if (rq && count == 0) {
+                       port_set(&port[n], port_pack(rq, ++count));
 
-       guc_wq_item_append(client, rq);
-       b_ret = guc_ring_doorbell(client);
+                       if (i915_vma_is_map_and_fenceable(rq->ring->vma))
+                               POSTING_READ_FW(GUC_STATUS);
 
-       client->submissions[engine_id] += 1;
+                       spin_lock(&client->wq_lock);
 
-       spin_unlock_irqrestore(&client->wq_lock, flags);
-}
+                       guc_wq_item_append(client, rq);
+                       guc_ring_doorbell(client);
 
-static void i915_guc_submit(struct drm_i915_gem_request *rq)
-{
-       __i915_gem_request_submit(rq);
-       __i915_guc_submit(rq);
+                       client->submissions[engine_id] += 1;
+
+                       spin_unlock(&client->wq_lock);
+               }
+       }
 }
 
 static void nested_enable_signaling(struct drm_i915_gem_request *rq)
@@ -655,27 +553,33 @@ static void port_assign(struct execlist_port *port,
        if (port_isset(port))
                i915_gem_request_put(port_request(port));
 
-       port_set(port, i915_gem_request_get(rq));
+       port_set(port, port_pack(i915_gem_request_get(rq), port_count(port)));
        nested_enable_signaling(rq);
 }
 
-static bool i915_guc_dequeue(struct intel_engine_cs *engine)
+static void i915_guc_dequeue(struct intel_engine_cs *engine)
 {
-       struct execlist_port *port = engine->execlist_port;
-       struct drm_i915_gem_request *last = port_request(port);
-       struct rb_node *rb;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct execlist_port *port = execlists->port;
+       struct drm_i915_gem_request *last = NULL;
+       const struct execlist_port * const last_port =
+               &execlists->port[execlists->port_mask];
        bool submit = false;
+       struct rb_node *rb;
+
+       if (port_isset(port))
+               port++;
 
        spin_lock_irq(&engine->timeline->lock);
-       rb = engine->execlist_first;
-       GEM_BUG_ON(rb_first(&engine->execlist_queue) != rb);
+       rb = execlists->first;
+       GEM_BUG_ON(rb_first(&execlists->queue) != rb);
        while (rb) {
                struct i915_priolist *p = rb_entry(rb, typeof(*p), node);
                struct drm_i915_gem_request *rq, *rn;
 
                list_for_each_entry_safe(rq, rn, &p->requests, priotree.link) {
                        if (last && rq->ctx != last->ctx) {
-                               if (port != engine->execlist_port) {
+                               if (port == last_port) {
                                        __list_del_many(&p->requests,
                                                        &rq->priotree.link);
                                        goto done;
@@ -689,50 +593,48 @@ static bool i915_guc_dequeue(struct intel_engine_cs *engine)
                        INIT_LIST_HEAD(&rq->priotree.link);
                        rq->priotree.priority = INT_MAX;
 
-                       i915_guc_submit(rq);
-                       trace_i915_gem_request_in(rq, port_index(port, engine));
+                       __i915_gem_request_submit(rq);
+                       trace_i915_gem_request_in(rq, port_index(port, execlists));
                        last = rq;
                        submit = true;
                }
 
                rb = rb_next(rb);
-               rb_erase(&p->node, &engine->execlist_queue);
+               rb_erase(&p->node, &execlists->queue);
                INIT_LIST_HEAD(&p->requests);
                if (p->priority != I915_PRIORITY_NORMAL)
                        kmem_cache_free(engine->i915->priorities, p);
        }
 done:
-       engine->execlist_first = rb;
-       if (submit)
+       execlists->first = rb;
+       if (submit) {
                port_assign(port, last);
+               i915_guc_submit(engine);
+       }
        spin_unlock_irq(&engine->timeline->lock);
-
-       return submit;
 }
 
 static void i915_guc_irq_handler(unsigned long data)
 {
-       struct intel_engine_cs *engine = (struct intel_engine_cs *)data;
-       struct execlist_port *port = engine->execlist_port;
+       struct intel_engine_cs * const engine = (struct intel_engine_cs *)data;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct execlist_port *port = execlists->port;
+       const struct execlist_port * const last_port =
+               &execlists->port[execlists->port_mask];
        struct drm_i915_gem_request *rq;
-       bool submit;
 
-       do {
-               rq = port_request(&port[0]);
-               while (rq && i915_gem_request_completed(rq)) {
-                       trace_i915_gem_request_out(rq);
-                       i915_gem_request_put(rq);
+       rq = port_request(&port[0]);
+       while (rq && i915_gem_request_completed(rq)) {
+               trace_i915_gem_request_out(rq);
+               i915_gem_request_put(rq);
 
-                       port[0] = port[1];
-                       memset(&port[1], 0, sizeof(port[1]));
+               execlists_port_complete(execlists, port);
 
-                       rq = port_request(&port[0]);
-               }
+               rq = port_request(&port[0]);
+       }
 
-               submit = false;
-               if (!port_count(&port[1]))
-                       submit = i915_guc_dequeue(engine);
-       } while (submit);
+       if (!port_isset(last_port))
+               i915_guc_dequeue(engine);
 }
 
 /*
@@ -913,8 +815,6 @@ guc_client_alloc(struct drm_i915_private *dev_priv,
        client->engines = engines;
        client->priority = priority;
        client->doorbell_id = GUC_DOORBELL_INVALID;
-       client->wq_offset = GUC_DB_SIZE;
-       client->wq_size = GUC_WQ_SIZE;
        spin_lock_init(&client->wq_lock);
 
        ret = ida_simple_get(&guc->stage_ids, 0, GUC_MAX_STAGE_DESCRIPTORS,
@@ -996,28 +896,39 @@ static void guc_client_free(struct i915_guc_client *client)
        kfree(client);
 }
 
+static void guc_policy_init(struct guc_policy *policy)
+{
+       policy->execution_quantum = POLICY_DEFAULT_EXECUTION_QUANTUM_US;
+       policy->preemption_time = POLICY_DEFAULT_PREEMPTION_TIME_US;
+       policy->fault_time = POLICY_DEFAULT_FAULT_TIME_US;
+       policy->policy_flags = 0;
+}
+
 static void guc_policies_init(struct guc_policies *policies)
 {
        struct guc_policy *policy;
        u32 p, i;
 
-       policies->dpc_promote_time = 500000;
+       policies->dpc_promote_time = POLICY_DEFAULT_DPC_PROMOTE_TIME_US;
        policies->max_num_work_items = POLICY_MAX_NUM_WI;
 
        for (p = 0; p < GUC_CLIENT_PRIORITY_NUM; p++) {
                for (i = GUC_RENDER_ENGINE; i < GUC_MAX_ENGINES_NUM; i++) {
                        policy = &policies->policy[p][i];
 
-                       policy->execution_quantum = 1000000;
-                       policy->preemption_time = 500000;
-                       policy->fault_time = 250000;
-                       policy->policy_flags = 0;
+                       guc_policy_init(policy);
                }
        }
 
        policies->is_valid = 1;
 }
 
+/*
+ * The first 80 dwords of the register state context, containing the
+ * execlists and ppgtt registers.
+ */
+#define LR_HW_CONTEXT_SIZE     (80 * sizeof(u32))
+
 static int guc_ads_create(struct intel_guc *guc)
 {
        struct drm_i915_private *dev_priv = guc_to_i915(guc);
@@ -1032,6 +943,8 @@ static int guc_ads_create(struct intel_guc *guc)
        } __packed *blob;
        struct intel_engine_cs *engine;
        enum intel_engine_id id;
+       const u32 skipped_offset = LRC_HEADER_PAGES * PAGE_SIZE;
+       const u32 skipped_size = LRC_PPHWSP_SZ * PAGE_SIZE + LR_HW_CONTEXT_SIZE;
        u32 base;
 
        GEM_BUG_ON(guc->ads_vma);
@@ -1062,13 +975,20 @@ static int guc_ads_create(struct intel_guc *guc)
         * engines after a reset. Here we use the Render ring default
         * context, which must already exist and be pinned in the GGTT,
         * so its address won't change after we've told the GuC where
-        * to find it.
+        * to find it. Note that we have to skip our header (1 page),
+        * because our GuC shared data is there.
         */
        blob->ads.golden_context_lrca =
-               dev_priv->engine[RCS]->status_page.ggtt_offset;
+               guc_ggtt_offset(dev_priv->kernel_context->engine[RCS].state) + skipped_offset;
 
+       /*
+        * The GuC expects us to exclude the portion of the context image that
+        * it skips from the size it is to read. It starts reading from after
+        * the execlist context (so skipping the first page [PPHWSP] and 80
+        * dwords). Weird guc is weird.
+        */
        for_each_engine(engine, dev_priv, id)
-               blob->ads.eng_state_size[engine->guc_id] = engine->context_size;
+               blob->ads.eng_state_size[engine->guc_id] = engine->context_size - skipped_size;
 
        base = guc_ggtt_offset(vma);
        blob->ads.scheduler_policies = base + ptr_offset(blob, policies);
@@ -1221,6 +1141,19 @@ int i915_guc_submission_enable(struct drm_i915_private *dev_priv)
        enum intel_engine_id id;
        int err;
 
+       /*
+        * We're using GuC work items for submitting work through GuC. Since
+        * we're coalescing multiple requests from a single context into a
+        * single work item prior to assigning it to execlist_port, we can
+        * never have more work items than the total number of ports (for all
+        * engines). The GuC firmware is controlling the HEAD of work queue,
+        * and it is guaranteed that it will remove the work item from the
+        * queue before our request is completed.
+        */
+       BUILD_BUG_ON(ARRAY_SIZE(engine->execlists.port) *
+                    sizeof(struct guc_wq_item) *
+                    I915_NUM_ENGINES > GUC_WQ_SIZE);
+
        if (!client) {
                client = guc_client_alloc(dev_priv,
                                          INTEL_INFO(dev_priv)->ring_mask,
@@ -1248,24 +1181,15 @@ int i915_guc_submission_enable(struct drm_i915_private *dev_priv)
        guc_interrupts_capture(dev_priv);
 
        for_each_engine(engine, dev_priv, id) {
-               const int wqi_size = sizeof(struct guc_wq_item);
-               struct drm_i915_gem_request *rq;
-
+               struct intel_engine_execlists * const execlists = &engine->execlists;
                /* The tasklet was initialised by execlists, and may be in
                 * a state of flux (across a reset) and so we just want to
                 * take over the callback without changing any other state
                 * in the tasklet.
                 */
-               engine->irq_tasklet.func = i915_guc_irq_handler;
+               execlists->irq_tasklet.func = i915_guc_irq_handler;
                clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
-
-               /* Replay the current set of previously submitted requests */
-               spin_lock_irq(&engine->timeline->lock);
-               list_for_each_entry(rq, &engine->timeline->requests, link) {
-                       guc_client_update_wq_rsvd(client, wqi_size);
-                       __i915_guc_submit(rq);
-               }
-               spin_unlock_irq(&engine->timeline->lock);
+               tasklet_schedule(&execlists->irq_tasklet);
        }
 
        return 0;
@@ -1310,7 +1234,7 @@ int intel_guc_suspend(struct drm_i915_private *dev_priv)
        /* any value greater than GUC_POWER_D0 */
        data[1] = GUC_POWER_D1;
        /* first page is shared data with GuC */
-       data[2] = guc_ggtt_offset(ctx->engine[RCS].state);
+       data[2] = guc_ggtt_offset(ctx->engine[RCS].state) + LRC_GUCSHR_PN * PAGE_SIZE;
 
        return intel_guc_send(guc, data, ARRAY_SIZE(data));
 }
@@ -1328,7 +1252,7 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
        if (guc->fw.load_status != INTEL_UC_FIRMWARE_SUCCESS)
                return 0;
 
-       if (i915.guc_log_level >= 0)
+       if (i915_modparams.guc_log_level >= 0)
                gen9_enable_guc_interrupts(dev_priv);
 
        ctx = dev_priv->kernel_context;
@@ -1336,7 +1260,7 @@ int intel_guc_resume(struct drm_i915_private *dev_priv)
        data[0] = INTEL_GUC_ACTION_EXIT_S_STATE;
        data[1] = GUC_POWER_D0;
        /* first page is shared data with GuC */
-       data[2] = guc_ggtt_offset(ctx->engine[RCS].state);
+       data[2] = guc_ggtt_offset(ctx->engine[RCS].state) + LRC_GUCSHR_PN * PAGE_SIZE;
 
        return intel_guc_send(guc, data, ARRAY_SIZE(data));
 }
index 2fe92d2..efd7827 100644 (file)
@@ -126,7 +126,7 @@ static const u32 hpd_bxt[HPD_NUM_PINS] = {
        POSTING_READ(GEN8_##type##_IIR(which)); \
 } while (0)
 
-#define GEN5_IRQ_RESET(type) do { \
+#define GEN3_IRQ_RESET(type) do { \
        I915_WRITE(type##IMR, 0xffffffff); \
        POSTING_READ(type##IMR); \
        I915_WRITE(type##IER, 0); \
@@ -136,10 +136,20 @@ static const u32 hpd_bxt[HPD_NUM_PINS] = {
        POSTING_READ(type##IIR); \
 } while (0)
 
+#define GEN2_IRQ_RESET(type) do { \
+       I915_WRITE16(type##IMR, 0xffff); \
+       POSTING_READ16(type##IMR); \
+       I915_WRITE16(type##IER, 0); \
+       I915_WRITE16(type##IIR, 0xffff); \
+       POSTING_READ16(type##IIR); \
+       I915_WRITE16(type##IIR, 0xffff); \
+       POSTING_READ16(type##IIR); \
+} while (0)
+
 /*
  * We should clear IMR at preinstall/uninstall, and just check at postinstall.
  */
-static void gen5_assert_iir_is_zero(struct drm_i915_private *dev_priv,
+static void gen3_assert_iir_is_zero(struct drm_i915_private *dev_priv,
                                    i915_reg_t reg)
 {
        u32 val = I915_READ(reg);
@@ -155,20 +165,43 @@ static void gen5_assert_iir_is_zero(struct drm_i915_private *dev_priv,
        POSTING_READ(reg);
 }
 
+static void gen2_assert_iir_is_zero(struct drm_i915_private *dev_priv,
+                                   i915_reg_t reg)
+{
+       u16 val = I915_READ16(reg);
+
+       if (val == 0)
+               return;
+
+       WARN(1, "Interrupt register 0x%x is not zero: 0x%08x\n",
+            i915_mmio_reg_offset(reg), val);
+       I915_WRITE16(reg, 0xffff);
+       POSTING_READ16(reg);
+       I915_WRITE16(reg, 0xffff);
+       POSTING_READ16(reg);
+}
+
 #define GEN8_IRQ_INIT_NDX(type, which, imr_val, ier_val) do { \
-       gen5_assert_iir_is_zero(dev_priv, GEN8_##type##_IIR(which)); \
+       gen3_assert_iir_is_zero(dev_priv, GEN8_##type##_IIR(which)); \
        I915_WRITE(GEN8_##type##_IER(which), (ier_val)); \
        I915_WRITE(GEN8_##type##_IMR(which), (imr_val)); \
        POSTING_READ(GEN8_##type##_IMR(which)); \
 } while (0)
 
-#define GEN5_IRQ_INIT(type, imr_val, ier_val) do { \
-       gen5_assert_iir_is_zero(dev_priv, type##IIR); \
+#define GEN3_IRQ_INIT(type, imr_val, ier_val) do { \
+       gen3_assert_iir_is_zero(dev_priv, type##IIR); \
        I915_WRITE(type##IER, (ier_val)); \
        I915_WRITE(type##IMR, (imr_val)); \
        POSTING_READ(type##IMR); \
 } while (0)
 
+#define GEN2_IRQ_INIT(type, imr_val, ier_val) do { \
+       gen2_assert_iir_is_zero(dev_priv, type##IIR); \
+       I915_WRITE16(type##IER, (ier_val)); \
+       I915_WRITE16(type##IMR, (imr_val)); \
+       POSTING_READ16(type##IMR); \
+} while (0)
+
 static void gen6_rps_irq_handler(struct drm_i915_private *dev_priv, u32 pm_iir);
 static void gen9_guc_irq_handler(struct drm_i915_private *dev_priv, u32 pm_iir);
 
@@ -534,62 +567,16 @@ void ibx_display_interrupt_update(struct drm_i915_private *dev_priv,
        POSTING_READ(SDEIMR);
 }
 
-static void
-__i915_enable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
-                      u32 enable_mask, u32 status_mask)
+u32 i915_pipestat_enable_mask(struct drm_i915_private *dev_priv,
+                             enum pipe pipe)
 {
-       i915_reg_t reg = PIPESTAT(pipe);
-       u32 pipestat = I915_READ(reg) & PIPESTAT_INT_ENABLE_MASK;
-
-       lockdep_assert_held(&dev_priv->irq_lock);
-       WARN_ON(!intel_irqs_enabled(dev_priv));
-
-       if (WARN_ONCE(enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
-                     status_mask & ~PIPESTAT_INT_STATUS_MASK,
-                     "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
-                     pipe_name(pipe), enable_mask, status_mask))
-               return;
-
-       if ((pipestat & enable_mask) == enable_mask)
-               return;
-
-       dev_priv->pipestat_irq_mask[pipe] |= status_mask;
-
-       /* Enable the interrupt, clear any pending status */
-       pipestat |= enable_mask | status_mask;
-       I915_WRITE(reg, pipestat);
-       POSTING_READ(reg);
-}
-
-static void
-__i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
-                       u32 enable_mask, u32 status_mask)
-{
-       i915_reg_t reg = PIPESTAT(pipe);
-       u32 pipestat = I915_READ(reg) & PIPESTAT_INT_ENABLE_MASK;
+       u32 status_mask = dev_priv->pipestat_irq_mask[pipe];
+       u32 enable_mask = status_mask << 16;
 
        lockdep_assert_held(&dev_priv->irq_lock);
-       WARN_ON(!intel_irqs_enabled(dev_priv));
-
-       if (WARN_ONCE(enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
-                     status_mask & ~PIPESTAT_INT_STATUS_MASK,
-                     "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
-                     pipe_name(pipe), enable_mask, status_mask))
-               return;
-
-       if ((pipestat & enable_mask) == 0)
-               return;
-
-       dev_priv->pipestat_irq_mask[pipe] &= ~status_mask;
 
-       pipestat &= ~enable_mask;
-       I915_WRITE(reg, pipestat);
-       POSTING_READ(reg);
-}
-
-static u32 vlv_get_pipestat_enable_mask(struct drm_device *dev, u32 status_mask)
-{
-       u32 enable_mask = status_mask << 16;
+       if (INTEL_GEN(dev_priv) < 5)
+               goto out;
 
        /*
         * On pipe A we don't support the PSR interrupt yet,
@@ -612,35 +599,59 @@ static u32 vlv_get_pipestat_enable_mask(struct drm_device *dev, u32 status_mask)
        if (status_mask & SPRITE1_FLIP_DONE_INT_STATUS_VLV)
                enable_mask |= SPRITE1_FLIP_DONE_INT_EN_VLV;
 
+out:
+       WARN_ONCE(enable_mask & ~PIPESTAT_INT_ENABLE_MASK ||
+                 status_mask & ~PIPESTAT_INT_STATUS_MASK,
+                 "pipe %c: enable_mask=0x%x, status_mask=0x%x\n",
+                 pipe_name(pipe), enable_mask, status_mask);
+
        return enable_mask;
 }
 
-void
-i915_enable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
-                    u32 status_mask)
+void i915_enable_pipestat(struct drm_i915_private *dev_priv,
+                         enum pipe pipe, u32 status_mask)
 {
+       i915_reg_t reg = PIPESTAT(pipe);
        u32 enable_mask;
 
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               enable_mask = vlv_get_pipestat_enable_mask(&dev_priv->drm,
-                                                          status_mask);
-       else
-               enable_mask = status_mask << 16;
-       __i915_enable_pipestat(dev_priv, pipe, enable_mask, status_mask);
+       WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
+                 "pipe %c: status_mask=0x%x\n",
+                 pipe_name(pipe), status_mask);
+
+       lockdep_assert_held(&dev_priv->irq_lock);
+       WARN_ON(!intel_irqs_enabled(dev_priv));
+
+       if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == status_mask)
+               return;
+
+       dev_priv->pipestat_irq_mask[pipe] |= status_mask;
+       enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
+
+       I915_WRITE(reg, enable_mask | status_mask);
+       POSTING_READ(reg);
 }
 
-void
-i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
-                     u32 status_mask)
+void i915_disable_pipestat(struct drm_i915_private *dev_priv,
+                          enum pipe pipe, u32 status_mask)
 {
+       i915_reg_t reg = PIPESTAT(pipe);
        u32 enable_mask;
 
-       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
-               enable_mask = vlv_get_pipestat_enable_mask(&dev_priv->drm,
-                                                          status_mask);
-       else
-               enable_mask = status_mask << 16;
-       __i915_disable_pipestat(dev_priv, pipe, enable_mask, status_mask);
+       WARN_ONCE(status_mask & ~PIPESTAT_INT_STATUS_MASK,
+                 "pipe %c: status_mask=0x%x\n",
+                 pipe_name(pipe), status_mask);
+
+       lockdep_assert_held(&dev_priv->irq_lock);
+       WARN_ON(!intel_irqs_enabled(dev_priv));
+
+       if ((dev_priv->pipestat_irq_mask[pipe] & status_mask) == 0)
+               return;
+
+       dev_priv->pipestat_irq_mask[pipe] &= ~status_mask;
+       enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
+
+       I915_WRITE(reg, enable_mask | status_mask);
+       POSTING_READ(reg);
 }
 
 /**
@@ -772,6 +783,57 @@ static u32 g4x_get_vblank_counter(struct drm_device *dev, unsigned int pipe)
        return I915_READ(PIPE_FRMCOUNT_G4X(pipe));
 }
 
+/*
+ * On certain encoders on certain platforms, pipe
+ * scanline register will not work to get the scanline,
+ * since the timings are driven from the PORT or issues
+ * with scanline register updates.
+ * This function will use Framestamp and current
+ * timestamp registers to calculate the scanline.
+ */
+static u32 __intel_get_crtc_scanline_from_timestamp(struct intel_crtc *crtc)
+{
+       struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
+       struct drm_vblank_crtc *vblank =
+               &crtc->base.dev->vblank[drm_crtc_index(&crtc->base)];
+       const struct drm_display_mode *mode = &vblank->hwmode;
+       u32 vblank_start = mode->crtc_vblank_start;
+       u32 vtotal = mode->crtc_vtotal;
+       u32 htotal = mode->crtc_htotal;
+       u32 clock = mode->crtc_clock;
+       u32 scanline, scan_prev_time, scan_curr_time, scan_post_time;
+
+       /*
+        * To avoid the race condition where we might cross into the
+        * next vblank just between the PIPE_FRMTMSTMP and TIMESTAMP_CTR
+        * reads. We make sure we read PIPE_FRMTMSTMP and TIMESTAMP_CTR
+        * during the same frame.
+        */
+       do {
+               /*
+                * This field provides read back of the display
+                * pipe frame time stamp. The time stamp value
+                * is sampled at every start of vertical blank.
+                */
+               scan_prev_time = I915_READ_FW(PIPE_FRMTMSTMP(crtc->pipe));
+
+               /*
+                * The TIMESTAMP_CTR register has the current
+                * time stamp value.
+                */
+               scan_curr_time = I915_READ_FW(IVB_TIMESTAMP_CTR);
+
+               scan_post_time = I915_READ_FW(PIPE_FRMTMSTMP(crtc->pipe));
+       } while (scan_post_time != scan_prev_time);
+
+       scanline = div_u64(mul_u32_u32(scan_curr_time - scan_prev_time,
+                                       clock), 1000 * htotal);
+       scanline = min(scanline, vtotal - 1);
+       scanline = (scanline + vblank_start) % vtotal;
+
+       return scanline;
+}
+
 /* I915_READ_FW, only for fast reads of display block, no need for forcewake etc. */
 static int __intel_get_crtc_scanline(struct intel_crtc *crtc)
 {
@@ -788,6 +850,9 @@ static int __intel_get_crtc_scanline(struct intel_crtc *crtc)
        vblank = &crtc->base.dev->vblank[drm_crtc_index(&crtc->base)];
        mode = &vblank->hwmode;
 
+       if (mode->private_flags & I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP)
+               return __intel_get_crtc_scanline_from_timestamp(crtc);
+
        vtotal = mode->crtc_vtotal;
        if (mode->flags & DRM_MODE_FLAG_INTERLACE)
                vtotal /= 2;
@@ -1005,6 +1070,8 @@ static void notify_ring(struct intel_engine_cs *engine)
        spin_lock(&engine->breadcrumbs.irq_lock);
        wait = engine->breadcrumbs.irq_wait;
        if (wait) {
+               bool wakeup = engine->irq_seqno_barrier;
+
                /* We use a callback from the dma-fence to submit
                 * requests after waiting on our own requests. To
                 * ensure minimum delay in queuing the next request to
@@ -1017,12 +1084,18 @@ static void notify_ring(struct intel_engine_cs *engine)
                 * and many waiters.
                 */
                if (i915_seqno_passed(intel_engine_get_seqno(engine),
-                                     wait->seqno) &&
-                   !test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
-                             &wait->request->fence.flags))
-                       rq = i915_gem_request_get(wait->request);
+                                     wait->seqno)) {
+                       struct drm_i915_gem_request *waiter = wait->request;
+
+                       wakeup = true;
+                       if (!test_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
+                                     &waiter->fence.flags) &&
+                           intel_wait_check_request(wait, waiter))
+                               rq = i915_gem_request_get(waiter);
+               }
 
-               wake_up_process(wait->tsk);
+               if (wakeup)
+                       wake_up_process(wait->tsk);
        } else {
                __intel_engine_disarm_breadcrumbs(engine);
        }
@@ -1305,10 +1378,11 @@ static void snb_gt_irq_handler(struct drm_i915_private *dev_priv,
 static void
 gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir, int test_shift)
 {
+       struct intel_engine_execlists * const execlists = &engine->execlists;
        bool tasklet = false;
 
        if (iir & (GT_CONTEXT_SWITCH_INTERRUPT << test_shift)) {
-               if (port_count(&engine->execlist_port[0])) {
+               if (port_count(&execlists->port[0])) {
                        __set_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
                        tasklet = true;
                }
@@ -1316,11 +1390,11 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir, int test_shift)
 
        if (iir & (GT_RENDER_USER_INTERRUPT << test_shift)) {
                notify_ring(engine);
-               tasklet |= i915.enable_guc_submission;
+               tasklet |= i915_modparams.enable_guc_submission;
        }
 
        if (tasklet)
-               tasklet_hi_schedule(&engine->irq_tasklet);
+               tasklet_hi_schedule(&execlists->irq_tasklet);
 }
 
 static irqreturn_t gen8_gt_irq_ack(struct drm_i915_private *dev_priv,
@@ -1573,11 +1647,11 @@ static void display_pipe_crc_irq_handler(struct drm_i915_private *dev_priv,
                 * bonkers. So let's just wait for the next vblank and read
                 * out the buggy result.
                 *
-                * On CHV sometimes the second CRC is bonkers as well, so
+                * On GEN8+ sometimes the second CRC is bonkers as well, so
                 * don't trust that one either.
                 */
                if (pipe_crc->skipped == 0 ||
-                   (IS_CHERRYVIEW(dev_priv) && pipe_crc->skipped == 1)) {
+                   (INTEL_GEN(dev_priv) >= 8 && pipe_crc->skipped == 1)) {
                        pipe_crc->skipped++;
                        spin_unlock(&pipe_crc->lock);
                        return;
@@ -1706,8 +1780,21 @@ static void gen9_guc_irq_handler(struct drm_i915_private *dev_priv, u32 gt_iir)
        }
 }
 
-static void valleyview_pipestat_irq_ack(struct drm_i915_private *dev_priv,
-                                       u32 iir, u32 pipe_stats[I915_MAX_PIPES])
+static void i9xx_pipestat_irq_reset(struct drm_i915_private *dev_priv)
+{
+       enum pipe pipe;
+
+       for_each_pipe(dev_priv, pipe) {
+               I915_WRITE(PIPESTAT(pipe),
+                          PIPESTAT_INT_STATUS_MASK |
+                          PIPE_FIFO_UNDERRUN_STATUS);
+
+               dev_priv->pipestat_irq_mask[pipe] = 0;
+       }
+}
+
+static void i9xx_pipestat_irq_ack(struct drm_i915_private *dev_priv,
+                                 u32 iir, u32 pipe_stats[I915_MAX_PIPES])
 {
        int pipe;
 
@@ -1720,7 +1807,7 @@ static void valleyview_pipestat_irq_ack(struct drm_i915_private *dev_priv,
 
        for_each_pipe(dev_priv, pipe) {
                i915_reg_t reg;
-               u32 mask, iir_bit = 0;
+               u32 status_mask, enable_mask, iir_bit = 0;
 
                /*
                 * PIPESTAT bits get signalled even when the interrupt is
@@ -1731,7 +1818,7 @@ static void valleyview_pipestat_irq_ack(struct drm_i915_private *dev_priv,
                 */
 
                /* fifo underruns are filterered in the underrun handler. */
-               mask = PIPE_FIFO_UNDERRUN_STATUS;
+               status_mask = PIPE_FIFO_UNDERRUN_STATUS;
 
                switch (pipe) {
                case PIPE_A:
@@ -1745,25 +1832,92 @@ static void valleyview_pipestat_irq_ack(struct drm_i915_private *dev_priv,
                        break;
                }
                if (iir & iir_bit)
-                       mask |= dev_priv->pipestat_irq_mask[pipe];
+                       status_mask |= dev_priv->pipestat_irq_mask[pipe];
 
-               if (!mask)
+               if (!status_mask)
                        continue;
 
                reg = PIPESTAT(pipe);
-               mask |= PIPESTAT_INT_ENABLE_MASK;
-               pipe_stats[pipe] = I915_READ(reg) & mask;
+               pipe_stats[pipe] = I915_READ(reg) & status_mask;
+               enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
 
                /*
                 * Clear the PIPE*STAT regs before the IIR
                 */
-               if (pipe_stats[pipe] & (PIPE_FIFO_UNDERRUN_STATUS |
-                                       PIPESTAT_INT_STATUS_MASK))
-                       I915_WRITE(reg, pipe_stats[pipe]);
+               if (pipe_stats[pipe])
+                       I915_WRITE(reg, enable_mask | pipe_stats[pipe]);
        }
        spin_unlock(&dev_priv->irq_lock);
 }
 
+static void i8xx_pipestat_irq_handler(struct drm_i915_private *dev_priv,
+                                     u16 iir, u32 pipe_stats[I915_MAX_PIPES])
+{
+       enum pipe pipe;
+
+       for_each_pipe(dev_priv, pipe) {
+               if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
+                       drm_handle_vblank(&dev_priv->drm, pipe);
+
+               if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
+                       i9xx_pipe_crc_irq_handler(dev_priv, pipe);
+
+               if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
+                       intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
+       }
+}
+
+static void i915_pipestat_irq_handler(struct drm_i915_private *dev_priv,
+                                     u32 iir, u32 pipe_stats[I915_MAX_PIPES])
+{
+       bool blc_event = false;
+       enum pipe pipe;
+
+       for_each_pipe(dev_priv, pipe) {
+               if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
+                       drm_handle_vblank(&dev_priv->drm, pipe);
+
+               if (pipe_stats[pipe] & PIPE_LEGACY_BLC_EVENT_STATUS)
+                       blc_event = true;
+
+               if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
+                       i9xx_pipe_crc_irq_handler(dev_priv, pipe);
+
+               if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
+                       intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
+       }
+
+       if (blc_event || (iir & I915_ASLE_INTERRUPT))
+               intel_opregion_asle_intr(dev_priv);
+}
+
+static void i965_pipestat_irq_handler(struct drm_i915_private *dev_priv,
+                                     u32 iir, u32 pipe_stats[I915_MAX_PIPES])
+{
+       bool blc_event = false;
+       enum pipe pipe;
+
+       for_each_pipe(dev_priv, pipe) {
+               if (pipe_stats[pipe] & PIPE_START_VBLANK_INTERRUPT_STATUS)
+                       drm_handle_vblank(&dev_priv->drm, pipe);
+
+               if (pipe_stats[pipe] & PIPE_LEGACY_BLC_EVENT_STATUS)
+                       blc_event = true;
+
+               if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
+                       i9xx_pipe_crc_irq_handler(dev_priv, pipe);
+
+               if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
+                       intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
+       }
+
+       if (blc_event || (iir & I915_ASLE_INTERRUPT))
+               intel_opregion_asle_intr(dev_priv);
+
+       if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
+               gmbus_irq_handler(dev_priv);
+}
+
 static void valleyview_pipestat_irq_handler(struct drm_i915_private *dev_priv,
                                            u32 pipe_stats[I915_MAX_PIPES])
 {
@@ -1879,7 +2033,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
 
                /* Call regardless, as some status bits might not be
                 * signalled in iir */
-               valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
+               i9xx_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
                if (iir & (I915_LPE_PIPE_A_INTERRUPT |
                           I915_LPE_PIPE_B_INTERRUPT))
@@ -1963,7 +2117,7 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
 
                /* Call regardless, as some status bits might not be
                 * signalled in iir */
-               valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
+               i9xx_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
                if (iir & (I915_LPE_PIPE_A_INTERRUPT |
                           I915_LPE_PIPE_B_INTERRUPT |
@@ -2860,7 +3014,7 @@ static void ibx_irq_reset(struct drm_i915_private *dev_priv)
        if (HAS_PCH_NOP(dev_priv))
                return;
 
-       GEN5_IRQ_RESET(SDE);
+       GEN3_IRQ_RESET(SDE);
 
        if (HAS_PCH_CPT(dev_priv) || HAS_PCH_LPT(dev_priv))
                I915_WRITE(SERR_INT, 0xffffffff);
@@ -2888,15 +3042,13 @@ static void ibx_irq_pre_postinstall(struct drm_device *dev)
 
 static void gen5_gt_irq_reset(struct drm_i915_private *dev_priv)
 {
-       GEN5_IRQ_RESET(GT);
+       GEN3_IRQ_RESET(GT);
        if (INTEL_GEN(dev_priv) >= 6)
-               GEN5_IRQ_RESET(GEN6_PM);
+               GEN3_IRQ_RESET(GEN6_PM);
 }
 
 static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
 {
-       enum pipe pipe;
-
        if (IS_CHERRYVIEW(dev_priv))
                I915_WRITE(DPINVGTT, DPINVGTT_STATUS_MASK_CHV);
        else
@@ -2905,14 +3057,9 @@ static void vlv_display_irq_reset(struct drm_i915_private *dev_priv)
        i915_hotplug_interrupt_update_locked(dev_priv, 0xffffffff, 0);
        I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
 
-       for_each_pipe(dev_priv, pipe) {
-               I915_WRITE(PIPESTAT(pipe),
-                          PIPE_FIFO_UNDERRUN_STATUS |
-                          PIPESTAT_INT_STATUS_MASK);
-               dev_priv->pipestat_irq_mask[pipe] = 0;
-       }
+       i9xx_pipestat_irq_reset(dev_priv);
 
-       GEN5_IRQ_RESET(VLV_);
+       GEN3_IRQ_RESET(VLV_);
        dev_priv->irq_mask = ~0;
 }
 
@@ -2922,8 +3069,7 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
        u32 enable_mask;
        enum pipe pipe;
 
-       pipestat_mask = PLANE_FLIP_DONE_INT_STATUS_VLV |
-                       PIPE_CRC_DONE_INTERRUPT_STATUS;
+       pipestat_mask = PIPE_CRC_DONE_INTERRUPT_STATUS;
 
        i915_enable_pipestat(dev_priv, PIPE_A, PIPE_GMBUS_INTERRUPT_STATUS);
        for_each_pipe(dev_priv, pipe)
@@ -2943,7 +3089,7 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
 
        dev_priv->irq_mask = ~enable_mask;
 
-       GEN5_IRQ_INIT(VLV_, dev_priv->irq_mask, enable_mask);
+       GEN3_IRQ_INIT(VLV_, dev_priv->irq_mask, enable_mask);
 }
 
 /* drm_dma.h hooks
@@ -2952,9 +3098,10 @@ static void ironlake_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
 
-       I915_WRITE(HWSTAM, 0xffffffff);
+       if (IS_GEN5(dev_priv))
+               I915_WRITE(HWSTAM, 0xffffffff);
 
-       GEN5_IRQ_RESET(DE);
+       GEN3_IRQ_RESET(DE);
        if (IS_GEN7(dev_priv))
                I915_WRITE(GEN7_ERR_INT, 0xffffffff);
 
@@ -2963,7 +3110,7 @@ static void ironlake_irq_reset(struct drm_device *dev)
        ibx_irq_reset(dev_priv);
 }
 
-static void valleyview_irq_preinstall(struct drm_device *dev)
+static void valleyview_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
 
@@ -3001,9 +3148,9 @@ static void gen8_irq_reset(struct drm_device *dev)
                                                   POWER_DOMAIN_PIPE(pipe)))
                        GEN8_IRQ_RESET_NDX(DE_PIPE, pipe);
 
-       GEN5_IRQ_RESET(GEN8_DE_PORT_);
-       GEN5_IRQ_RESET(GEN8_DE_MISC_);
-       GEN5_IRQ_RESET(GEN8_PCU_);
+       GEN3_IRQ_RESET(GEN8_DE_PORT_);
+       GEN3_IRQ_RESET(GEN8_DE_MISC_);
+       GEN3_IRQ_RESET(GEN8_PCU_);
 
        if (HAS_PCH_SPLIT(dev_priv))
                ibx_irq_reset(dev_priv);
@@ -3037,7 +3184,7 @@ void gen8_irq_power_well_pre_disable(struct drm_i915_private *dev_priv,
        synchronize_irq(dev_priv->drm.irq);
 }
 
-static void cherryview_irq_preinstall(struct drm_device *dev)
+static void cherryview_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
 
@@ -3046,7 +3193,7 @@ static void cherryview_irq_preinstall(struct drm_device *dev)
 
        gen8_gt_irq_reset(dev_priv);
 
-       GEN5_IRQ_RESET(GEN8_PCU_);
+       GEN3_IRQ_RESET(GEN8_PCU_);
 
        spin_lock_irq(&dev_priv->irq_lock);
        if (dev_priv->display_irqs_enabled)
@@ -3111,7 +3258,15 @@ static void ibx_hpd_irq_setup(struct drm_i915_private *dev_priv)
 
 static void spt_hpd_detection_setup(struct drm_i915_private *dev_priv)
 {
-       u32 hotplug;
+       u32 val, hotplug;
+
+       /* Display WA #1179 WaHardHangonHotPlug: cnp */
+       if (HAS_PCH_CNP(dev_priv)) {
+               val = I915_READ(SOUTH_CHICKEN1);
+               val &= ~CHASSIS_CLK_REQ_DURATION_MASK;
+               val |= CHASSIS_CLK_REQ_DURATION(0xf);
+               I915_WRITE(SOUTH_CHICKEN1, val);
+       }
 
        /* Enable digital hotplug on the PCH */
        hotplug = I915_READ(PCH_PORT_HOTPLUG);
@@ -3238,10 +3393,12 @@ static void ibx_irq_postinstall(struct drm_device *dev)
 
        if (HAS_PCH_IBX(dev_priv))
                mask = SDE_GMBUS | SDE_AUX_MASK | SDE_POISON;
-       else
+       else if (HAS_PCH_CPT(dev_priv) || HAS_PCH_LPT(dev_priv))
                mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT;
+       else
+               mask = SDE_GMBUS_CPT;
 
-       gen5_assert_iir_is_zero(dev_priv, SDEIIR);
+       gen3_assert_iir_is_zero(dev_priv, SDEIIR);
        I915_WRITE(SDEIMR, ~mask);
 
        if (HAS_PCH_IBX(dev_priv) || HAS_PCH_CPT(dev_priv) ||
@@ -3272,7 +3429,7 @@ static void gen5_gt_irq_postinstall(struct drm_device *dev)
                gt_irqs |= GT_BLT_USER_INTERRUPT | GT_BSD_USER_INTERRUPT;
        }
 
-       GEN5_IRQ_INIT(GT, dev_priv->gt_irq_mask, gt_irqs);
+       GEN3_IRQ_INIT(GT, dev_priv->gt_irq_mask, gt_irqs);
 
        if (INTEL_GEN(dev_priv) >= 6) {
                /*
@@ -3285,7 +3442,7 @@ static void gen5_gt_irq_postinstall(struct drm_device *dev)
                }
 
                dev_priv->pm_imr = 0xffffffff;
-               GEN5_IRQ_INIT(GEN6_PM, dev_priv->pm_imr, pm_irqs);
+               GEN3_IRQ_INIT(GEN6_PM, dev_priv->pm_imr, pm_irqs);
        }
 }
 
@@ -3296,18 +3453,14 @@ static int ironlake_irq_postinstall(struct drm_device *dev)
 
        if (INTEL_GEN(dev_priv) >= 7) {
                display_mask = (DE_MASTER_IRQ_CONTROL | DE_GSE_IVB |
-                               DE_PCH_EVENT_IVB | DE_PLANEC_FLIP_DONE_IVB |
-                               DE_PLANEB_FLIP_DONE_IVB |
-                               DE_PLANEA_FLIP_DONE_IVB | DE_AUX_CHANNEL_A_IVB);
+                               DE_PCH_EVENT_IVB | DE_AUX_CHANNEL_A_IVB);
                extra_mask = (DE_PIPEC_VBLANK_IVB | DE_PIPEB_VBLANK_IVB |
                              DE_PIPEA_VBLANK_IVB | DE_ERR_INT_IVB |
                              DE_DP_A_HOTPLUG_IVB);
        } else {
                display_mask = (DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT |
-                               DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE |
-                               DE_AUX_CHANNEL_A |
-                               DE_PIPEB_CRC_DONE | DE_PIPEA_CRC_DONE |
-                               DE_POISON);
+                               DE_AUX_CHANNEL_A | DE_PIPEB_CRC_DONE |
+                               DE_PIPEA_CRC_DONE | DE_POISON);
                extra_mask = (DE_PIPEA_VBLANK | DE_PIPEB_VBLANK | DE_PCU_EVENT |
                              DE_PIPEB_FIFO_UNDERRUN | DE_PIPEA_FIFO_UNDERRUN |
                              DE_DP_A_HOTPLUG);
@@ -3315,11 +3468,9 @@ static int ironlake_irq_postinstall(struct drm_device *dev)
 
        dev_priv->irq_mask = ~display_mask;
 
-       I915_WRITE(HWSTAM, 0xeffe);
-
        ibx_irq_pre_postinstall(dev);
 
-       GEN5_IRQ_INIT(DE, dev_priv->irq_mask, display_mask | extra_mask);
+       GEN3_IRQ_INIT(DE, dev_priv->irq_mask, display_mask | extra_mask);
 
        gen5_gt_irq_postinstall(dev);
 
@@ -3429,15 +3580,13 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
        enum pipe pipe;
 
        if (INTEL_GEN(dev_priv) >= 9) {
-               de_pipe_masked |= GEN9_PIPE_PLANE1_FLIP_DONE |
-                                 GEN9_DE_PIPE_IRQ_FAULT_ERRORS;
+               de_pipe_masked |= GEN9_DE_PIPE_IRQ_FAULT_ERRORS;
                de_port_masked |= GEN9_AUX_CHANNEL_B | GEN9_AUX_CHANNEL_C |
                                  GEN9_AUX_CHANNEL_D;
                if (IS_GEN9_LP(dev_priv))
                        de_port_masked |= BXT_DE_PORT_GMBUS;
        } else {
-               de_pipe_masked |= GEN8_PIPE_PRIMARY_FLIP_DONE |
-                                 GEN8_DE_PIPE_IRQ_FAULT_ERRORS;
+               de_pipe_masked |= GEN8_DE_PIPE_IRQ_FAULT_ERRORS;
        }
 
        de_pipe_enables = de_pipe_masked | GEN8_PIPE_VBLANK |
@@ -3460,8 +3609,8 @@ static void gen8_de_irq_postinstall(struct drm_i915_private *dev_priv)
                                          dev_priv->de_irq_mask[pipe],
                                          de_pipe_enables);
 
-       GEN5_IRQ_INIT(GEN8_DE_PORT_, ~de_port_masked, de_port_enables);
-       GEN5_IRQ_INIT(GEN8_DE_MISC_, ~de_misc_masked, de_misc_masked);
+       GEN3_IRQ_INIT(GEN8_DE_PORT_, ~de_port_masked, de_port_enables);
+       GEN3_IRQ_INIT(GEN8_DE_MISC_, ~de_misc_masked, de_misc_masked);
 
        if (IS_GEN9_LP(dev_priv))
                bxt_hpd_detection_setup(dev_priv);
@@ -3505,98 +3654,36 @@ static int cherryview_irq_postinstall(struct drm_device *dev)
        return 0;
 }
 
-static void gen8_irq_uninstall(struct drm_device *dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-
-       if (!dev_priv)
-               return;
-
-       gen8_irq_reset(dev);
-}
-
-static void valleyview_irq_uninstall(struct drm_device *dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-
-       if (!dev_priv)
-               return;
-
-       I915_WRITE(VLV_MASTER_IER, 0);
-       POSTING_READ(VLV_MASTER_IER);
-
-       gen5_gt_irq_reset(dev_priv);
-
-       I915_WRITE(HWSTAM, 0xffffffff);
-
-       spin_lock_irq(&dev_priv->irq_lock);
-       if (dev_priv->display_irqs_enabled)
-               vlv_display_irq_reset(dev_priv);
-       spin_unlock_irq(&dev_priv->irq_lock);
-}
-
-static void cherryview_irq_uninstall(struct drm_device *dev)
+static void i8xx_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
 
-       if (!dev_priv)
-               return;
-
-       I915_WRITE(GEN8_MASTER_IRQ, 0);
-       POSTING_READ(GEN8_MASTER_IRQ);
-
-       gen8_gt_irq_reset(dev_priv);
-
-       GEN5_IRQ_RESET(GEN8_PCU_);
-
-       spin_lock_irq(&dev_priv->irq_lock);
-       if (dev_priv->display_irqs_enabled)
-               vlv_display_irq_reset(dev_priv);
-       spin_unlock_irq(&dev_priv->irq_lock);
-}
-
-static void ironlake_irq_uninstall(struct drm_device *dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
+       i9xx_pipestat_irq_reset(dev_priv);
 
-       if (!dev_priv)
-               return;
-
-       ironlake_irq_reset(dev);
-}
-
-static void i8xx_irq_preinstall(struct drm_device * dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
+       I915_WRITE16(HWSTAM, 0xffff);
 
-       for_each_pipe(dev_priv, pipe)
-               I915_WRITE(PIPESTAT(pipe), 0);
-       I915_WRITE16(IMR, 0xffff);
-       I915_WRITE16(IER, 0x0);
-       POSTING_READ16(IER);
+       GEN2_IRQ_RESET();
 }
 
 static int i8xx_irq_postinstall(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
+       u16 enable_mask;
 
-       I915_WRITE16(EMR,
-                    ~(I915_ERROR_PAGE_TABLE | I915_ERROR_MEMORY_REFRESH));
+       I915_WRITE16(EMR, ~(I915_ERROR_PAGE_TABLE |
+                           I915_ERROR_MEMORY_REFRESH));
 
        /* Unmask the interrupts that we always want on. */
        dev_priv->irq_mask =
                ~(I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
-                 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
-                 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
-                 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT);
-       I915_WRITE16(IMR, dev_priv->irq_mask);
+                 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT);
+
+       enable_mask =
+               I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
+               I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
+               I915_USER_INTERRUPT;
 
-       I915_WRITE16(IER,
-                    I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
-                    I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
-                    I915_USER_INTERRUPT);
-       POSTING_READ16(IER);
+       GEN2_IRQ_INIT(, dev_priv->irq_mask, enable_mask);
 
        /* Interrupt setup is already guaranteed to be single-threaded, this is
         * just to make the assert_spin_locked check happy. */
@@ -3608,17 +3695,11 @@ static int i8xx_irq_postinstall(struct drm_device *dev)
        return 0;
 }
 
-/*
- * Returns true when a page flip has completed.
- */
 static irqreturn_t i8xx_irq_handler(int irq, void *arg)
 {
        struct drm_device *dev = arg;
        struct drm_i915_private *dev_priv = to_i915(dev);
-       u16 iir, new_iir;
-       u32 pipe_stats[2];
-       int pipe;
-       irqreturn_t ret;
+       irqreturn_t ret = IRQ_NONE;
 
        if (!intel_irqs_enabled(dev_priv))
                return IRQ_NONE;
@@ -3626,96 +3707,50 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
        /* IRQs are synced during runtime_suspend, we don't require a wakeref */
        disable_rpm_wakeref_asserts(dev_priv);
 
-       ret = IRQ_NONE;
-       iir = I915_READ16(IIR);
-       if (iir == 0)
-               goto out;
+       do {
+               u32 pipe_stats[I915_MAX_PIPES] = {};
+               u16 iir;
 
-       while (iir) {
-               /* Can't rely on pipestat interrupt bit in iir as it might
-                * have been cleared after the pipestat interrupt was received.
-                * It doesn't set the bit in iir again, but it still produces
-                * interrupts (for non-MSI).
-                */
-               spin_lock(&dev_priv->irq_lock);
-               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
-                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
+               iir = I915_READ16(IIR);
+               if (iir == 0)
+                       break;
 
-               for_each_pipe(dev_priv, pipe) {
-                       i915_reg_t reg = PIPESTAT(pipe);
-                       pipe_stats[pipe] = I915_READ(reg);
+               ret = IRQ_HANDLED;
 
-                       /*
-                        * Clear the PIPE*STAT regs before the IIR
-                        */
-                       if (pipe_stats[pipe] & 0x8000ffff)
-                               I915_WRITE(reg, pipe_stats[pipe]);
-               }
-               spin_unlock(&dev_priv->irq_lock);
+               /* Call regardless, as some status bits might not be
+                * signalled in iir */
+               i9xx_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
                I915_WRITE16(IIR, iir);
-               new_iir = I915_READ16(IIR); /* Flush posted writes */
 
                if (iir & I915_USER_INTERRUPT)
                        notify_ring(dev_priv->engine[RCS]);
 
-               for_each_pipe(dev_priv, pipe) {
-                       int plane = pipe;
-                       if (HAS_FBC(dev_priv))
-                               plane = !plane;
-
-                       if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
-                               drm_handle_vblank(&dev_priv->drm, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
-                               i9xx_pipe_crc_irq_handler(dev_priv, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
-                               intel_cpu_fifo_underrun_irq_handler(dev_priv,
-                                                                   pipe);
-               }
+               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
+                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
 
-               iir = new_iir;
-       }
-       ret = IRQ_HANDLED;
+               i8xx_pipestat_irq_handler(dev_priv, iir, pipe_stats);
+       } while (0);
 
-out:
        enable_rpm_wakeref_asserts(dev_priv);
 
        return ret;
 }
 
-static void i8xx_irq_uninstall(struct drm_device * dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
-
-       for_each_pipe(dev_priv, pipe) {
-               /* Clear enable bits; then clear status bits */
-               I915_WRITE(PIPESTAT(pipe), 0);
-               I915_WRITE(PIPESTAT(pipe), I915_READ(PIPESTAT(pipe)));
-       }
-       I915_WRITE16(IMR, 0xffff);
-       I915_WRITE16(IER, 0x0);
-       I915_WRITE16(IIR, I915_READ16(IIR));
-}
-
-static void i915_irq_preinstall(struct drm_device * dev)
+static void i915_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
 
        if (I915_HAS_HOTPLUG(dev_priv)) {
                i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
                I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
        }
 
-       I915_WRITE16(HWSTAM, 0xeffe);
-       for_each_pipe(dev_priv, pipe)
-               I915_WRITE(PIPESTAT(pipe), 0);
-       I915_WRITE(IMR, 0xffffffff);
-       I915_WRITE(IER, 0x0);
-       POSTING_READ(IER);
+       i9xx_pipestat_irq_reset(dev_priv);
+
+       I915_WRITE(HWSTAM, 0xffffffff);
+
+       GEN3_IRQ_RESET();
 }
 
 static int i915_irq_postinstall(struct drm_device *dev)
@@ -3723,15 +3758,14 @@ static int i915_irq_postinstall(struct drm_device *dev)
        struct drm_i915_private *dev_priv = to_i915(dev);
        u32 enable_mask;
 
-       I915_WRITE(EMR, ~(I915_ERROR_PAGE_TABLE | I915_ERROR_MEMORY_REFRESH));
+       I915_WRITE(EMR, ~(I915_ERROR_PAGE_TABLE |
+                         I915_ERROR_MEMORY_REFRESH));
 
        /* Unmask the interrupts that we always want on. */
        dev_priv->irq_mask =
                ~(I915_ASLE_INTERRUPT |
                  I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
-                 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
-                 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
-                 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT);
+                 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT);
 
        enable_mask =
                I915_ASLE_INTERRUPT |
@@ -3740,20 +3774,13 @@ static int i915_irq_postinstall(struct drm_device *dev)
                I915_USER_INTERRUPT;
 
        if (I915_HAS_HOTPLUG(dev_priv)) {
-               i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-               POSTING_READ(PORT_HOTPLUG_EN);
-
                /* Enable in IER... */
                enable_mask |= I915_DISPLAY_PORT_INTERRUPT;
                /* and unmask in IMR */
                dev_priv->irq_mask &= ~I915_DISPLAY_PORT_INTERRUPT;
        }
 
-       I915_WRITE(IMR, dev_priv->irq_mask);
-       I915_WRITE(IER, enable_mask);
-       POSTING_READ(IER);
-
-       i915_enable_asle_pipestat(dev_priv);
+       GEN3_IRQ_INIT(, dev_priv->irq_mask, enable_mask);
 
        /* Interrupt setup is already guaranteed to be single-threaded, this is
         * just to make the assert_spin_locked check happy. */
@@ -3762,6 +3789,8 @@ static int i915_irq_postinstall(struct drm_device *dev)
        i915_enable_pipestat(dev_priv, PIPE_B, PIPE_CRC_DONE_INTERRUPT_STATUS);
        spin_unlock_irq(&dev_priv->irq_lock);
 
+       i915_enable_asle_pipestat(dev_priv);
+
        return 0;
 }
 
@@ -3769,8 +3798,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
 {
        struct drm_device *dev = arg;
        struct drm_i915_private *dev_priv = to_i915(dev);
-       u32 iir, new_iir, pipe_stats[I915_MAX_PIPES];
-       int pipe, ret = IRQ_NONE;
+       irqreturn_t ret = IRQ_NONE;
 
        if (!intel_irqs_enabled(dev_priv))
                return IRQ_NONE;
@@ -3778,131 +3806,56 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
        /* IRQs are synced during runtime_suspend, we don't require a wakeref */
        disable_rpm_wakeref_asserts(dev_priv);
 
-       iir = I915_READ(IIR);
        do {
-               bool irq_received = (iir) != 0;
-               bool blc_event = false;
-
-               /* Can't rely on pipestat interrupt bit in iir as it might
-                * have been cleared after the pipestat interrupt was received.
-                * It doesn't set the bit in iir again, but it still produces
-                * interrupts (for non-MSI).
-                */
-               spin_lock(&dev_priv->irq_lock);
-               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
-                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
-
-               for_each_pipe(dev_priv, pipe) {
-                       i915_reg_t reg = PIPESTAT(pipe);
-                       pipe_stats[pipe] = I915_READ(reg);
-
-                       /* Clear the PIPE*STAT regs before the IIR */
-                       if (pipe_stats[pipe] & 0x8000ffff) {
-                               I915_WRITE(reg, pipe_stats[pipe]);
-                               irq_received = true;
-                       }
-               }
-               spin_unlock(&dev_priv->irq_lock);
+               u32 pipe_stats[I915_MAX_PIPES] = {};
+               u32 hotplug_status = 0;
+               u32 iir;
 
-               if (!irq_received)
+               iir = I915_READ(IIR);
+               if (iir == 0)
                        break;
 
-               /* Consume port.  Then clear IIR or we'll miss events */
+               ret = IRQ_HANDLED;
+
                if (I915_HAS_HOTPLUG(dev_priv) &&
-                   iir & I915_DISPLAY_PORT_INTERRUPT) {
-                       u32 hotplug_status = i9xx_hpd_irq_ack(dev_priv);
-                       if (hotplug_status)
-                               i9xx_hpd_irq_handler(dev_priv, hotplug_status);
-               }
+                   iir & I915_DISPLAY_PORT_INTERRUPT)
+                       hotplug_status = i9xx_hpd_irq_ack(dev_priv);
+
+               /* Call regardless, as some status bits might not be
+                * signalled in iir */
+               i9xx_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
                I915_WRITE(IIR, iir);
-               new_iir = I915_READ(IIR); /* Flush posted writes */
 
                if (iir & I915_USER_INTERRUPT)
                        notify_ring(dev_priv->engine[RCS]);
 
-               for_each_pipe(dev_priv, pipe) {
-                       int plane = pipe;
-                       if (HAS_FBC(dev_priv))
-                               plane = !plane;
-
-                       if (pipe_stats[pipe] & PIPE_VBLANK_INTERRUPT_STATUS)
-                               drm_handle_vblank(&dev_priv->drm, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_LEGACY_BLC_EVENT_STATUS)
-                               blc_event = true;
-
-                       if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
-                               i9xx_pipe_crc_irq_handler(dev_priv, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
-                               intel_cpu_fifo_underrun_irq_handler(dev_priv,
-                                                                   pipe);
-               }
+               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
+                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
 
-               if (blc_event || (iir & I915_ASLE_INTERRUPT))
-                       intel_opregion_asle_intr(dev_priv);
+               if (hotplug_status)
+                       i9xx_hpd_irq_handler(dev_priv, hotplug_status);
 
-               /* With MSI, interrupts are only generated when iir
-                * transitions from zero to nonzero.  If another bit got
-                * set while we were handling the existing iir bits, then
-                * we would never get another interrupt.
-                *
-                * This is fine on non-MSI as well, as if we hit this path
-                * we avoid exiting the interrupt handler only to generate
-                * another one.
-                *
-                * Note that for MSI this could cause a stray interrupt report
-                * if an interrupt landed in the time between writing IIR and
-                * the posting read.  This should be rare enough to never
-                * trigger the 99% of 100,000 interrupts test for disabling
-                * stray interrupts.
-                */
-               ret = IRQ_HANDLED;
-               iir = new_iir;
-       } while (iir);
+               i915_pipestat_irq_handler(dev_priv, iir, pipe_stats);
+       } while (0);
 
        enable_rpm_wakeref_asserts(dev_priv);
 
        return ret;
 }
 
-static void i915_irq_uninstall(struct drm_device * dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
-
-       if (I915_HAS_HOTPLUG(dev_priv)) {
-               i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-               I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
-       }
-
-       I915_WRITE16(HWSTAM, 0xffff);
-       for_each_pipe(dev_priv, pipe) {
-               /* Clear enable bits; then clear status bits */
-               I915_WRITE(PIPESTAT(pipe), 0);
-               I915_WRITE(PIPESTAT(pipe), I915_READ(PIPESTAT(pipe)));
-       }
-       I915_WRITE(IMR, 0xffffffff);
-       I915_WRITE(IER, 0x0);
-
-       I915_WRITE(IIR, I915_READ(IIR));
-}
-
-static void i965_irq_preinstall(struct drm_device * dev)
+static void i965_irq_reset(struct drm_device *dev)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
 
        i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
        I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
 
-       I915_WRITE(HWSTAM, 0xeffe);
-       for_each_pipe(dev_priv, pipe)
-               I915_WRITE(PIPESTAT(pipe), 0);
-       I915_WRITE(IMR, 0xffffffff);
-       I915_WRITE(IER, 0x0);
-       POSTING_READ(IER);
+       i9xx_pipestat_irq_reset(dev_priv);
+
+       I915_WRITE(HWSTAM, 0xffffffff);
+
+       GEN3_IRQ_RESET();
 }
 
 static int i965_irq_postinstall(struct drm_device *dev)
@@ -3911,31 +3864,6 @@ static int i965_irq_postinstall(struct drm_device *dev)
        u32 enable_mask;
        u32 error_mask;
 
-       /* Unmask the interrupts that we always want on. */
-       dev_priv->irq_mask = ~(I915_ASLE_INTERRUPT |
-                              I915_DISPLAY_PORT_INTERRUPT |
-                              I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
-                              I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
-                              I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
-                              I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT |
-                              I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
-
-       enable_mask = ~dev_priv->irq_mask;
-       enable_mask &= ~(I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
-                        I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT);
-       enable_mask |= I915_USER_INTERRUPT;
-
-       if (IS_G4X(dev_priv))
-               enable_mask |= I915_BSD_USER_INTERRUPT;
-
-       /* Interrupt setup is already guaranteed to be single-threaded, this is
-        * just to make the assert_spin_locked check happy. */
-       spin_lock_irq(&dev_priv->irq_lock);
-       i915_enable_pipestat(dev_priv, PIPE_A, PIPE_GMBUS_INTERRUPT_STATUS);
-       i915_enable_pipestat(dev_priv, PIPE_A, PIPE_CRC_DONE_INTERRUPT_STATUS);
-       i915_enable_pipestat(dev_priv, PIPE_B, PIPE_CRC_DONE_INTERRUPT_STATUS);
-       spin_unlock_irq(&dev_priv->irq_lock);
-
        /*
         * Enable some error detection, note the instruction error mask
         * bit is reserved, so we leave it masked.
@@ -3951,12 +3879,34 @@ static int i965_irq_postinstall(struct drm_device *dev)
        }
        I915_WRITE(EMR, error_mask);
 
-       I915_WRITE(IMR, dev_priv->irq_mask);
-       I915_WRITE(IER, enable_mask);
-       POSTING_READ(IER);
+       /* Unmask the interrupts that we always want on. */
+       dev_priv->irq_mask =
+               ~(I915_ASLE_INTERRUPT |
+                 I915_DISPLAY_PORT_INTERRUPT |
+                 I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
+                 I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
+                 I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT);
 
-       i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-       POSTING_READ(PORT_HOTPLUG_EN);
+       enable_mask =
+               I915_ASLE_INTERRUPT |
+               I915_DISPLAY_PORT_INTERRUPT |
+               I915_DISPLAY_PIPE_A_EVENT_INTERRUPT |
+               I915_DISPLAY_PIPE_B_EVENT_INTERRUPT |
+               I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT |
+               I915_USER_INTERRUPT;
+
+       if (IS_G4X(dev_priv))
+               enable_mask |= I915_BSD_USER_INTERRUPT;
+
+       GEN3_IRQ_INIT(, dev_priv->irq_mask, enable_mask);
+
+       /* Interrupt setup is already guaranteed to be single-threaded, this is
+        * just to make the assert_spin_locked check happy. */
+       spin_lock_irq(&dev_priv->irq_lock);
+       i915_enable_pipestat(dev_priv, PIPE_A, PIPE_GMBUS_INTERRUPT_STATUS);
+       i915_enable_pipestat(dev_priv, PIPE_A, PIPE_CRC_DONE_INTERRUPT_STATUS);
+       i915_enable_pipestat(dev_priv, PIPE_B, PIPE_CRC_DONE_INTERRUPT_STATUS);
+       spin_unlock_irq(&dev_priv->irq_lock);
 
        i915_enable_asle_pipestat(dev_priv);
 
@@ -3992,9 +3942,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
 {
        struct drm_device *dev = arg;
        struct drm_i915_private *dev_priv = to_i915(dev);
-       u32 iir, new_iir;
-       u32 pipe_stats[I915_MAX_PIPES];
-       int ret = IRQ_NONE, pipe;
+       irqreturn_t ret = IRQ_NONE;
 
        if (!intel_irqs_enabled(dev_priv))
                return IRQ_NONE;
@@ -4002,121 +3950,46 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
        /* IRQs are synced during runtime_suspend, we don't require a wakeref */
        disable_rpm_wakeref_asserts(dev_priv);
 
-       iir = I915_READ(IIR);
-
-       for (;;) {
-               bool irq_received = (iir) != 0;
-               bool blc_event = false;
-
-               /* Can't rely on pipestat interrupt bit in iir as it might
-                * have been cleared after the pipestat interrupt was received.
-                * It doesn't set the bit in iir again, but it still produces
-                * interrupts (for non-MSI).
-                */
-               spin_lock(&dev_priv->irq_lock);
-               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
-                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
-
-               for_each_pipe(dev_priv, pipe) {
-                       i915_reg_t reg = PIPESTAT(pipe);
-                       pipe_stats[pipe] = I915_READ(reg);
-
-                       /*
-                        * Clear the PIPE*STAT regs before the IIR
-                        */
-                       if (pipe_stats[pipe] & 0x8000ffff) {
-                               I915_WRITE(reg, pipe_stats[pipe]);
-                               irq_received = true;
-                       }
-               }
-               spin_unlock(&dev_priv->irq_lock);
+       do {
+               u32 pipe_stats[I915_MAX_PIPES] = {};
+               u32 hotplug_status = 0;
+               u32 iir;
 
-               if (!irq_received)
+               iir = I915_READ(IIR);
+               if (iir == 0)
                        break;
 
                ret = IRQ_HANDLED;
 
-               /* Consume port.  Then clear IIR or we'll miss events */
-               if (iir & I915_DISPLAY_PORT_INTERRUPT) {
-                       u32 hotplug_status = i9xx_hpd_irq_ack(dev_priv);
-                       if (hotplug_status)
-                               i9xx_hpd_irq_handler(dev_priv, hotplug_status);
-               }
+               if (iir & I915_DISPLAY_PORT_INTERRUPT)
+                       hotplug_status = i9xx_hpd_irq_ack(dev_priv);
+
+               /* Call regardless, as some status bits might not be
+                * signalled in iir */
+               i9xx_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
                I915_WRITE(IIR, iir);
-               new_iir = I915_READ(IIR); /* Flush posted writes */
 
                if (iir & I915_USER_INTERRUPT)
                        notify_ring(dev_priv->engine[RCS]);
+
                if (iir & I915_BSD_USER_INTERRUPT)
                        notify_ring(dev_priv->engine[VCS]);
 
-               for_each_pipe(dev_priv, pipe) {
-                       if (pipe_stats[pipe] & PIPE_START_VBLANK_INTERRUPT_STATUS)
-                               drm_handle_vblank(&dev_priv->drm, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_LEGACY_BLC_EVENT_STATUS)
-                               blc_event = true;
-
-                       if (pipe_stats[pipe] & PIPE_CRC_DONE_INTERRUPT_STATUS)
-                               i9xx_pipe_crc_irq_handler(dev_priv, pipe);
-
-                       if (pipe_stats[pipe] & PIPE_FIFO_UNDERRUN_STATUS)
-                               intel_cpu_fifo_underrun_irq_handler(dev_priv, pipe);
-               }
-
-               if (blc_event || (iir & I915_ASLE_INTERRUPT))
-                       intel_opregion_asle_intr(dev_priv);
+               if (iir & I915_RENDER_COMMAND_PARSER_ERROR_INTERRUPT)
+                       DRM_DEBUG("Command parser error, iir 0x%08x\n", iir);
 
-               if (pipe_stats[0] & PIPE_GMBUS_INTERRUPT_STATUS)
-                       gmbus_irq_handler(dev_priv);
+               if (hotplug_status)
+                       i9xx_hpd_irq_handler(dev_priv, hotplug_status);
 
-               /* With MSI, interrupts are only generated when iir
-                * transitions from zero to nonzero.  If another bit got
-                * set while we were handling the existing iir bits, then
-                * we would never get another interrupt.
-                *
-                * This is fine on non-MSI as well, as if we hit this path
-                * we avoid exiting the interrupt handler only to generate
-                * another one.
-                *
-                * Note that for MSI this could cause a stray interrupt report
-                * if an interrupt landed in the time between writing IIR and
-                * the posting read.  This should be rare enough to never
-                * trigger the 99% of 100,000 interrupts test for disabling
-                * stray interrupts.
-                */
-               iir = new_iir;
-       }
+               i965_pipestat_irq_handler(dev_priv, iir, pipe_stats);
+       } while (0);
 
        enable_rpm_wakeref_asserts(dev_priv);
 
        return ret;
 }
 
-static void i965_irq_uninstall(struct drm_device * dev)
-{
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       int pipe;
-
-       if (!dev_priv)
-               return;
-
-       i915_hotplug_interrupt_update(dev_priv, 0xffffffff, 0);
-       I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
-
-       I915_WRITE(HWSTAM, 0xffffffff);
-       for_each_pipe(dev_priv, pipe)
-               I915_WRITE(PIPESTAT(pipe), 0);
-       I915_WRITE(IMR, 0xffffffff);
-       I915_WRITE(IER, 0x0);
-
-       for_each_pipe(dev_priv, pipe)
-               I915_WRITE(PIPESTAT(pipe),
-                          I915_READ(PIPESTAT(pipe)) & 0x8000ffff);
-       I915_WRITE(IIR, I915_READ(IIR));
-}
-
 /**
  * intel_irq_init - initializes irq support
  * @dev_priv: i915 device instance
@@ -4197,17 +4070,17 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
 
        if (IS_CHERRYVIEW(dev_priv)) {
                dev->driver->irq_handler = cherryview_irq_handler;
-               dev->driver->irq_preinstall = cherryview_irq_preinstall;
+               dev->driver->irq_preinstall = cherryview_irq_reset;
                dev->driver->irq_postinstall = cherryview_irq_postinstall;
-               dev->driver->irq_uninstall = cherryview_irq_uninstall;
+               dev->driver->irq_uninstall = cherryview_irq_reset;
                dev->driver->enable_vblank = i965_enable_vblank;
                dev->driver->disable_vblank = i965_disable_vblank;
                dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
        } else if (IS_VALLEYVIEW(dev_priv)) {
                dev->driver->irq_handler = valleyview_irq_handler;
-               dev->driver->irq_preinstall = valleyview_irq_preinstall;
+               dev->driver->irq_preinstall = valleyview_irq_reset;
                dev->driver->irq_postinstall = valleyview_irq_postinstall;
-               dev->driver->irq_uninstall = valleyview_irq_uninstall;
+               dev->driver->irq_uninstall = valleyview_irq_reset;
                dev->driver->enable_vblank = i965_enable_vblank;
                dev->driver->disable_vblank = i965_disable_vblank;
                dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
@@ -4215,7 +4088,7 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
                dev->driver->irq_handler = gen8_irq_handler;
                dev->driver->irq_preinstall = gen8_irq_reset;
                dev->driver->irq_postinstall = gen8_irq_postinstall;
-               dev->driver->irq_uninstall = gen8_irq_uninstall;
+               dev->driver->irq_uninstall = gen8_irq_reset;
                dev->driver->enable_vblank = gen8_enable_vblank;
                dev->driver->disable_vblank = gen8_disable_vblank;
                if (IS_GEN9_LP(dev_priv))
@@ -4229,29 +4102,29 @@ void intel_irq_init(struct drm_i915_private *dev_priv)
                dev->driver->irq_handler = ironlake_irq_handler;
                dev->driver->irq_preinstall = ironlake_irq_reset;
                dev->driver->irq_postinstall = ironlake_irq_postinstall;
-               dev->driver->irq_uninstall = ironlake_irq_uninstall;
+               dev->driver->irq_uninstall = ironlake_irq_reset;
                dev->driver->enable_vblank = ironlake_enable_vblank;
                dev->driver->disable_vblank = ironlake_disable_vblank;
                dev_priv->display.hpd_irq_setup = ilk_hpd_irq_setup;
        } else {
                if (IS_GEN2(dev_priv)) {
-                       dev->driver->irq_preinstall = i8xx_irq_preinstall;
+                       dev->driver->irq_preinstall = i8xx_irq_reset;
                        dev->driver->irq_postinstall = i8xx_irq_postinstall;
                        dev->driver->irq_handler = i8xx_irq_handler;
-                       dev->driver->irq_uninstall = i8xx_irq_uninstall;
+                       dev->driver->irq_uninstall = i8xx_irq_reset;
                        dev->driver->enable_vblank = i8xx_enable_vblank;
                        dev->driver->disable_vblank = i8xx_disable_vblank;
                } else if (IS_GEN3(dev_priv)) {
-                       dev->driver->irq_preinstall = i915_irq_preinstall;
+                       dev->driver->irq_preinstall = i915_irq_reset;
                        dev->driver->irq_postinstall = i915_irq_postinstall;
-                       dev->driver->irq_uninstall = i915_irq_uninstall;
+                       dev->driver->irq_uninstall = i915_irq_reset;
                        dev->driver->irq_handler = i915_irq_handler;
                        dev->driver->enable_vblank = i8xx_enable_vblank;
                        dev->driver->disable_vblank = i8xx_disable_vblank;
                } else {
-                       dev->driver->irq_preinstall = i965_irq_preinstall;
+                       dev->driver->irq_preinstall = i965_irq_reset;
                        dev->driver->irq_postinstall = i965_irq_postinstall;
-                       dev->driver->irq_uninstall = i965_irq_uninstall;
+                       dev->driver->irq_uninstall = i965_irq_reset;
                        dev->driver->irq_handler = i965_irq_handler;
                        dev->driver->enable_vblank = i965_enable_vblank;
                        dev->driver->disable_vblank = i965_disable_vblank;
diff --git a/drivers/gpu/drm/i915/i915_oa_cflgt2.c b/drivers/gpu/drm/i915/i915_oa_cflgt2.c
new file mode 100644 (file)
index 0000000..368c87d
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * Autogenerated file by GPU Top : https://github.com/rib/gputop
+ * DO NOT EDIT manually!
+ *
+ *
+ * Copyright (c) 2015 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#include <linux/sysfs.h>
+
+#include "i915_drv.h"
+#include "i915_oa_cflgt2.h"
+
+static const struct i915_oa_reg b_counter_config_test_oa[] = {
+       { _MMIO(0x2740), 0x00000000 },
+       { _MMIO(0x2744), 0x00800000 },
+       { _MMIO(0x2714), 0xf0800000 },
+       { _MMIO(0x2710), 0x00000000 },
+       { _MMIO(0x2724), 0xf0800000 },
+       { _MMIO(0x2720), 0x00000000 },
+       { _MMIO(0x2770), 0x00000004 },
+       { _MMIO(0x2774), 0x00000000 },
+       { _MMIO(0x2778), 0x00000003 },
+       { _MMIO(0x277c), 0x00000000 },
+       { _MMIO(0x2780), 0x00000007 },
+       { _MMIO(0x2784), 0x00000000 },
+       { _MMIO(0x2788), 0x00100002 },
+       { _MMIO(0x278c), 0x0000fff7 },
+       { _MMIO(0x2790), 0x00100002 },
+       { _MMIO(0x2794), 0x0000ffcf },
+       { _MMIO(0x2798), 0x00100082 },
+       { _MMIO(0x279c), 0x0000ffef },
+       { _MMIO(0x27a0), 0x001000c2 },
+       { _MMIO(0x27a4), 0x0000ffe7 },
+       { _MMIO(0x27a8), 0x00100001 },
+       { _MMIO(0x27ac), 0x0000ffe7 },
+};
+
+static const struct i915_oa_reg flex_eu_config_test_oa[] = {
+};
+
+static const struct i915_oa_reg mux_config_test_oa[] = {
+       { _MMIO(0x9840), 0x00000080 },
+       { _MMIO(0x9888), 0x11810000 },
+       { _MMIO(0x9888), 0x07810013 },
+       { _MMIO(0x9888), 0x1f810000 },
+       { _MMIO(0x9888), 0x1d810000 },
+       { _MMIO(0x9888), 0x1b930040 },
+       { _MMIO(0x9888), 0x07e54000 },
+       { _MMIO(0x9888), 0x1f908000 },
+       { _MMIO(0x9888), 0x11900000 },
+       { _MMIO(0x9888), 0x37900000 },
+       { _MMIO(0x9888), 0x53900000 },
+       { _MMIO(0x9888), 0x45900000 },
+       { _MMIO(0x9888), 0x33900000 },
+};
+
+static ssize_t
+show_test_oa_id(struct device *kdev, struct device_attribute *attr, char *buf)
+{
+       return sprintf(buf, "1\n");
+}
+
+void
+i915_perf_load_test_config_cflgt2(struct drm_i915_private *dev_priv)
+{
+       strncpy(dev_priv->perf.oa.test_config.uuid,
+               "74fb4902-d3d3-4237-9e90-cbdc68d0a446",
+               UUID_STRING_LEN);
+       dev_priv->perf.oa.test_config.id = 1;
+
+       dev_priv->perf.oa.test_config.mux_regs = mux_config_test_oa;
+       dev_priv->perf.oa.test_config.mux_regs_len = ARRAY_SIZE(mux_config_test_oa);
+
+       dev_priv->perf.oa.test_config.b_counter_regs = b_counter_config_test_oa;
+       dev_priv->perf.oa.test_config.b_counter_regs_len = ARRAY_SIZE(b_counter_config_test_oa);
+
+       dev_priv->perf.oa.test_config.flex_regs = flex_eu_config_test_oa;
+       dev_priv->perf.oa.test_config.flex_regs_len = ARRAY_SIZE(flex_eu_config_test_oa);
+
+       dev_priv->perf.oa.test_config.sysfs_metric.name = "74fb4902-d3d3-4237-9e90-cbdc68d0a446";
+       dev_priv->perf.oa.test_config.sysfs_metric.attrs = dev_priv->perf.oa.test_config.attrs;
+
+       dev_priv->perf.oa.test_config.attrs[0] = &dev_priv->perf.oa.test_config.sysfs_metric_id.attr;
+
+       dev_priv->perf.oa.test_config.sysfs_metric_id.attr.name = "id";
+       dev_priv->perf.oa.test_config.sysfs_metric_id.attr.mode = 0444;
+       dev_priv->perf.oa.test_config.sysfs_metric_id.show = show_test_oa_id;
+}
diff --git a/drivers/gpu/drm/i915/i915_oa_cflgt2.h b/drivers/gpu/drm/i915/i915_oa_cflgt2.h
new file mode 100644 (file)
index 0000000..1f3268e
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Autogenerated file by GPU Top : https://github.com/rib/gputop
+ * DO NOT EDIT manually!
+ *
+ *
+ * Copyright (c) 2015 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#ifndef __I915_OA_CFLGT2_H__
+#define __I915_OA_CFLGT2_H__
+
+extern void i915_perf_load_test_config_cflgt2(struct drm_i915_private *dev_priv);
+
+#endif
index 8ab003d..9dff323 100644 (file)
 #include "i915_params.h"
 #include "i915_drv.h"
 
-struct i915_params i915 __read_mostly = {
-       .modeset = -1,
-       .panel_ignore_lid = 1,
-       .semaphores = -1,
-       .lvds_channel_mode = 0,
-       .panel_use_ssc = -1,
-       .vbt_sdvo_panel_type = -1,
-       .enable_rc6 = -1,
-       .enable_dc = -1,
-       .enable_fbc = -1,
-       .enable_execlists = -1,
-       .enable_hangcheck = true,
-       .enable_ppgtt = -1,
-       .enable_psr = -1,
-       .alpha_support = IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT),
-       .disable_power_well = -1,
-       .enable_ips = 1,
-       .fastboot = 0,
-       .prefault_disable = 0,
-       .load_detect_test = 0,
-       .force_reset_modeset_test = 0,
-       .reset = 2,
-       .error_capture = true,
-       .invert_brightness = 0,
-       .disable_display = 0,
-       .enable_cmd_parser = true,
-       .use_mmio_flip = 0,
-       .mmio_debug = 0,
-       .verbose_state_checks = 1,
-       .nuclear_pageflip = 0,
-       .edp_vswing = 0,
-       .enable_guc_loading = 0,
-       .enable_guc_submission = 0,
-       .guc_log_level = -1,
-       .guc_firmware_path = NULL,
-       .huc_firmware_path = NULL,
-       .enable_dp_mst = true,
-       .inject_load_failure = 0,
-       .enable_dpcd_backlight = false,
-       .enable_gvt = false,
+#define i915_param_named(name, T, perm, desc) \
+       module_param_named(name, i915_modparams.name, T, perm); \
+       MODULE_PARM_DESC(name, desc)
+#define i915_param_named_unsafe(name, T, perm, desc) \
+       module_param_named_unsafe(name, i915_modparams.name, T, perm); \
+       MODULE_PARM_DESC(name, desc)
+
+struct i915_params i915_modparams __read_mostly = {
+#define MEMBER(T, member, value) .member = (value),
+       I915_PARAMS_FOR_EACH(MEMBER)
+#undef MEMBER
 };
 
-module_param_named(modeset, i915.modeset, int, 0400);
-MODULE_PARM_DESC(modeset,
+i915_param_named(modeset, int, 0400,
        "Use kernel modesetting [KMS] (0=disable, "
        "1=on, -1=force vga console preference [default])");
 
-module_param_named_unsafe(panel_ignore_lid, i915.panel_ignore_lid, int, 0600);
-MODULE_PARM_DESC(panel_ignore_lid,
+i915_param_named_unsafe(panel_ignore_lid, int, 0600,
        "Override lid status (0=autodetect, 1=autodetect disabled [default], "
        "-1=force lid closed, -2=force lid open)");
 
-module_param_named_unsafe(semaphores, i915.semaphores, int, 0400);
-MODULE_PARM_DESC(semaphores,
+i915_param_named_unsafe(semaphores, int, 0400,
        "Use semaphores for inter-ring sync "
        "(default: -1 (use per-chip defaults))");
 
-module_param_named_unsafe(enable_rc6, i915.enable_rc6, int, 0400);
-MODULE_PARM_DESC(enable_rc6,
+i915_param_named_unsafe(enable_rc6, int, 0400,
        "Enable power-saving render C-state 6. "
        "Different stages can be selected via bitmask values "
        "(0 = disable; 1 = enable rc6; 2 = enable deep rc6; 4 = enable deepest rc6). "
        "For example, 3 would enable rc6 and deep rc6, and 7 would enable everything. "
        "default: -1 (use per-chip default)");
 
-module_param_named_unsafe(enable_dc, i915.enable_dc, int, 0400);
-MODULE_PARM_DESC(enable_dc,
+i915_param_named_unsafe(enable_dc, int, 0400,
        "Enable power-saving display C-states. "
        "(-1=auto [default]; 0=disable; 1=up to DC5; 2=up to DC6)");
 
-module_param_named_unsafe(enable_fbc, i915.enable_fbc, int, 0600);
-MODULE_PARM_DESC(enable_fbc,
+i915_param_named_unsafe(enable_fbc, int, 0600,
        "Enable frame buffer compression for power savings "
        "(default: -1 (use per-chip default))");
 
-module_param_named_unsafe(lvds_channel_mode, i915.lvds_channel_mode, int, 0400);
-MODULE_PARM_DESC(lvds_channel_mode,
+i915_param_named_unsafe(lvds_channel_mode, int, 0400,
         "Specify LVDS channel mode "
         "(0=probe BIOS [default], 1=single-channel, 2=dual-channel)");
 
-module_param_named_unsafe(lvds_use_ssc, i915.panel_use_ssc, int, 0600);
-MODULE_PARM_DESC(lvds_use_ssc,
+i915_param_named_unsafe(panel_use_ssc, int, 0600,
        "Use Spread Spectrum Clock with panels [LVDS/eDP] "
        "(default: auto from VBT)");
 
-module_param_named_unsafe(vbt_sdvo_panel_type, i915.vbt_sdvo_panel_type, int, 0400);
-MODULE_PARM_DESC(vbt_sdvo_panel_type,
+i915_param_named_unsafe(vbt_sdvo_panel_type, int, 0400,
        "Override/Ignore selection of SDVO panel mode in the VBT "
        "(-2=ignore, -1=auto [default], index in VBT BIOS table)");
 
-module_param_named_unsafe(reset, i915.reset, int, 0600);
-MODULE_PARM_DESC(reset, "Attempt GPU resets (0=disabled, 1=full gpu reset, 2=engine reset [default])");
+i915_param_named_unsafe(reset, int, 0600,
+       "Attempt GPU resets (0=disabled, 1=full gpu reset, 2=engine reset [default])");
 
-module_param_named_unsafe(vbt_firmware, i915.vbt_firmware, charp, 0400);
-MODULE_PARM_DESC(vbt_firmware,
-                "Load VBT from specified file under /lib/firmware");
+i915_param_named_unsafe(vbt_firmware, charp, 0400,
+       "Load VBT from specified file under /lib/firmware");
 
 #if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR)
-module_param_named(error_capture, i915.error_capture, bool, 0600);
-MODULE_PARM_DESC(error_capture,
+i915_param_named(error_capture, bool, 0600,
        "Record the GPU state following a hang. "
        "This information in /sys/class/drm/card<N>/error is vital for "
        "triaging and debugging hangs.");
 #endif
 
-module_param_named_unsafe(enable_hangcheck, i915.enable_hangcheck, bool, 0644);
-MODULE_PARM_DESC(enable_hangcheck,
+i915_param_named_unsafe(enable_hangcheck, bool, 0644,
        "Periodically check GPU activity for detecting hangs. "
        "WARNING: Disabling this can cause system wide hangs. "
        "(default: true)");
 
-module_param_named_unsafe(enable_ppgtt, i915.enable_ppgtt, int, 0400);
-MODULE_PARM_DESC(enable_ppgtt,
+i915_param_named_unsafe(enable_ppgtt, int, 0400,
        "Override PPGTT usage. "
        "(-1=auto [default], 0=disabled, 1=aliasing, 2=full, 3=full with extended address space)");
 
-module_param_named_unsafe(enable_execlists, i915.enable_execlists, int, 0400);
-MODULE_PARM_DESC(enable_execlists,
+i915_param_named_unsafe(enable_execlists, int, 0400,
        "Override execlists usage. "
        "(-1=auto [default], 0=disabled, 1=enabled)");
 
-module_param_named_unsafe(enable_psr, i915.enable_psr, int, 0600);
-MODULE_PARM_DESC(enable_psr, "Enable PSR "
-                "(0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) "
-                "Default: -1 (use per-chip default)");
+i915_param_named_unsafe(enable_psr, int, 0600,
+       "Enable PSR "
+       "(0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) "
+       "Default: -1 (use per-chip default)");
 
-module_param_named_unsafe(alpha_support, i915.alpha_support, bool, 0400);
-MODULE_PARM_DESC(alpha_support,
+i915_param_named_unsafe(alpha_support, bool, 0400,
        "Enable alpha quality driver support for latest hardware. "
        "See also CONFIG_DRM_I915_ALPHA_SUPPORT.");
 
-module_param_named_unsafe(disable_power_well, i915.disable_power_well, int, 0400);
-MODULE_PARM_DESC(disable_power_well,
+i915_param_named_unsafe(disable_power_well, int, 0400,
        "Disable display power wells when possible "
        "(-1=auto [default], 0=power wells always on, 1=power wells disabled when possible)");
 
-module_param_named_unsafe(enable_ips, i915.enable_ips, int, 0600);
-MODULE_PARM_DESC(enable_ips, "Enable IPS (default: true)");
+i915_param_named_unsafe(enable_ips, int, 0600, "Enable IPS (default: true)");
 
-module_param_named(fastboot, i915.fastboot, bool, 0600);
-MODULE_PARM_DESC(fastboot,
+i915_param_named(fastboot, bool, 0600,
        "Try to skip unnecessary mode sets at boot time (default: false)");
 
-module_param_named_unsafe(prefault_disable, i915.prefault_disable, bool, 0600);
-MODULE_PARM_DESC(prefault_disable,
+i915_param_named_unsafe(prefault_disable, bool, 0600,
        "Disable page prefaulting for pread/pwrite/reloc (default:false). "
        "For developers only.");
 
-module_param_named_unsafe(load_detect_test, i915.load_detect_test, bool, 0600);
-MODULE_PARM_DESC(load_detect_test,
+i915_param_named_unsafe(load_detect_test, bool, 0600,
        "Force-enable the VGA load detect code for testing (default:false). "
        "For developers only.");
 
-module_param_named_unsafe(force_reset_modeset_test, i915.force_reset_modeset_test, bool, 0600);
-MODULE_PARM_DESC(force_reset_modeset_test,
+i915_param_named_unsafe(force_reset_modeset_test, bool, 0600,
        "Force a modeset during gpu reset for testing (default:false). "
        "For developers only.");
 
-module_param_named_unsafe(invert_brightness, i915.invert_brightness, int, 0600);
-MODULE_PARM_DESC(invert_brightness,
+i915_param_named_unsafe(invert_brightness, int, 0600,
        "Invert backlight brightness "
        "(-1 force normal, 0 machine defaults, 1 force inversion), please "
        "report PCI device ID, subsystem vendor and subsystem device ID "
        "to dri-devel@lists.freedesktop.org, if your machine needs it. "
        "It will then be included in an upcoming module version.");
 
-module_param_named(disable_display, i915.disable_display, bool, 0400);
-MODULE_PARM_DESC(disable_display, "Disable display (default: false)");
+i915_param_named(disable_display, bool, 0400,
+       "Disable display (default: false)");
 
-module_param_named_unsafe(enable_cmd_parser, i915.enable_cmd_parser, bool, 0400);
-MODULE_PARM_DESC(enable_cmd_parser,
-                "Enable command parsing (true=enabled [default], false=disabled)");
+i915_param_named_unsafe(enable_cmd_parser, bool, 0400,
+       "Enable command parsing (true=enabled [default], false=disabled)");
 
-module_param_named_unsafe(use_mmio_flip, i915.use_mmio_flip, int, 0600);
-MODULE_PARM_DESC(use_mmio_flip,
-                "use MMIO flips (-1=never, 0=driver discretion [default], 1=always)");
+i915_param_named_unsafe(use_mmio_flip, int, 0600,
+       "use MMIO flips (-1=never, 0=driver discretion [default], 1=always)");
 
-module_param_named(mmio_debug, i915.mmio_debug, int, 0600);
-MODULE_PARM_DESC(mmio_debug,
+i915_param_named(mmio_debug, int, 0600,
        "Enable the MMIO debug code for the first N failures (default: off). "
        "This may negatively affect performance.");
 
-module_param_named(verbose_state_checks, i915.verbose_state_checks, bool, 0600);
-MODULE_PARM_DESC(verbose_state_checks,
+i915_param_named(verbose_state_checks, bool, 0600,
        "Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions.");
 
-module_param_named_unsafe(nuclear_pageflip, i915.nuclear_pageflip, bool, 0400);
-MODULE_PARM_DESC(nuclear_pageflip,
-                "Force enable atomic functionality on platforms that don't have full support yet.");
+i915_param_named_unsafe(nuclear_pageflip, bool, 0400,
+       "Force enable atomic functionality on platforms that don't have full support yet.");
 
 /* WA to get away with the default setting in VBT for early platforms.Will be removed */
-module_param_named_unsafe(edp_vswing, i915.edp_vswing, int, 0400);
-MODULE_PARM_DESC(edp_vswing,
-                "Ignore/Override vswing pre-emph table selection from VBT "
-                "(0=use value from vbt [default], 1=low power swing(200mV),"
-                "2=default swing(400mV))");
-
-module_param_named_unsafe(enable_guc_loading, i915.enable_guc_loading, int, 0400);
-MODULE_PARM_DESC(enable_guc_loading,
-               "Enable GuC firmware loading "
-               "(-1=auto, 0=never [default], 1=if available, 2=required)");
-
-module_param_named_unsafe(enable_guc_submission, i915.enable_guc_submission, int, 0400);
-MODULE_PARM_DESC(enable_guc_submission,
-               "Enable GuC submission "
-               "(-1=auto, 0=never [default], 1=if available, 2=required)");
-
-module_param_named(guc_log_level, i915.guc_log_level, int, 0400);
-MODULE_PARM_DESC(guc_log_level,
+i915_param_named_unsafe(edp_vswing, int, 0400,
+       "Ignore/Override vswing pre-emph table selection from VBT "
+       "(0=use value from vbt [default], 1=low power swing(200mV),"
+       "2=default swing(400mV))");
+
+i915_param_named_unsafe(enable_guc_loading, int, 0400,
+       "Enable GuC firmware loading "
+       "(-1=auto, 0=never [default], 1=if available, 2=required)");
+
+i915_param_named_unsafe(enable_guc_submission, int, 0400,
+       "Enable GuC submission "
+       "(-1=auto, 0=never [default], 1=if available, 2=required)");
+
+i915_param_named(guc_log_level, int, 0400,
        "GuC firmware logging level (-1:disabled (default), 0-3:enabled)");
 
-module_param_named_unsafe(guc_firmware_path, i915.guc_firmware_path, charp, 0400);
-MODULE_PARM_DESC(guc_firmware_path,
+i915_param_named_unsafe(guc_firmware_path, charp, 0400,
        "GuC firmware path to use instead of the default one");
 
-module_param_named_unsafe(huc_firmware_path, i915.huc_firmware_path, charp, 0400);
-MODULE_PARM_DESC(huc_firmware_path,
+i915_param_named_unsafe(huc_firmware_path, charp, 0400,
        "HuC firmware path to use instead of the default one");
 
-module_param_named_unsafe(enable_dp_mst, i915.enable_dp_mst, bool, 0600);
-MODULE_PARM_DESC(enable_dp_mst,
+i915_param_named_unsafe(enable_dp_mst, bool, 0600,
        "Enable multi-stream transport (MST) for new DisplayPort sinks. (default: true)");
-module_param_named_unsafe(inject_load_failure, i915.inject_load_failure, uint, 0400);
-MODULE_PARM_DESC(inject_load_failure,
+
+i915_param_named_unsafe(inject_load_failure, uint, 0400,
        "Force an error after a number of failure check points (0:disabled (default), N:force failure at the Nth failure check point)");
-module_param_named(enable_dpcd_backlight, i915.enable_dpcd_backlight, bool, 0600);
-MODULE_PARM_DESC(enable_dpcd_backlight,
+
+i915_param_named(enable_dpcd_backlight, bool, 0600,
        "Enable support for DPCD backlight control (default:false)");
 
-module_param_named(enable_gvt, i915.enable_gvt, bool, 0400);
-MODULE_PARM_DESC(enable_gvt,
+i915_param_named(enable_gvt, bool, 0400,
        "Enable support for Intel GVT-g graphics virtualization host support(default:false)");
index ac84470..4f3f8d6 100644 (file)
 
 #include <linux/cache.h> /* for __read_mostly */
 
-#define I915_PARAMS_FOR_EACH(func) \
-       func(char *, vbt_firmware); \
-       func(int, modeset); \
-       func(int, panel_ignore_lid); \
-       func(int, semaphores); \
-       func(int, lvds_channel_mode); \
-       func(int, panel_use_ssc); \
-       func(int, vbt_sdvo_panel_type); \
-       func(int, enable_rc6); \
-       func(int, enable_dc); \
-       func(int, enable_fbc); \
-       func(int, enable_ppgtt); \
-       func(int, enable_execlists); \
-       func(int, enable_psr); \
-       func(int, disable_power_well); \
-       func(int, enable_ips); \
-       func(int, invert_brightness); \
-       func(int, enable_guc_loading); \
-       func(int, enable_guc_submission); \
-       func(int, guc_log_level); \
-       func(char *, guc_firmware_path); \
-       func(char *, huc_firmware_path); \
-       func(int, use_mmio_flip); \
-       func(int, mmio_debug); \
-       func(int, edp_vswing); \
-       func(int, reset); \
-       func(unsigned int, inject_load_failure); \
+#define I915_PARAMS_FOR_EACH(param) \
+       param(char *, vbt_firmware, NULL) \
+       param(int, modeset, -1) \
+       param(int, panel_ignore_lid, 1) \
+       param(int, semaphores, -1) \
+       param(int, lvds_channel_mode, 0) \
+       param(int, panel_use_ssc, -1) \
+       param(int, vbt_sdvo_panel_type, -1) \
+       param(int, enable_rc6, -1) \
+       param(int, enable_dc, -1) \
+       param(int, enable_fbc, -1) \
+       param(int, enable_ppgtt, -1) \
+       param(int, enable_execlists, -1) \
+       param(int, enable_psr, -1) \
+       param(int, disable_power_well, -1) \
+       param(int, enable_ips, 1) \
+       param(int, invert_brightness, 0) \
+       param(int, enable_guc_loading, 0) \
+       param(int, enable_guc_submission, 0) \
+       param(int, guc_log_level, -1) \
+       param(char *, guc_firmware_path, NULL) \
+       param(char *, huc_firmware_path, NULL) \
+       param(int, use_mmio_flip, 0) \
+       param(int, mmio_debug, 0) \
+       param(int, edp_vswing, 0) \
+       param(int, reset, 2) \
+       param(unsigned int, inject_load_failure, 0) \
        /* leave bools at the end to not create holes */ \
-       func(bool, alpha_support); \
-       func(bool, enable_cmd_parser); \
-       func(bool, enable_hangcheck); \
-       func(bool, fastboot); \
-       func(bool, prefault_disable); \
-       func(bool, load_detect_test); \
-       func(bool, force_reset_modeset_test); \
-       func(bool, error_capture); \
-       func(bool, disable_display); \
-       func(bool, verbose_state_checks); \
-       func(bool, nuclear_pageflip); \
-       func(bool, enable_dp_mst); \
-       func(bool, enable_dpcd_backlight); \
-       func(bool, enable_gvt)
+       param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
+       param(bool, enable_cmd_parser, true) \
+       param(bool, enable_hangcheck, true) \
+       param(bool, fastboot, false) \
+       param(bool, prefault_disable, false) \
+       param(bool, load_detect_test, false) \
+       param(bool, force_reset_modeset_test, false) \
+       param(bool, error_capture, true) \
+       param(bool, disable_display, false) \
+       param(bool, verbose_state_checks, true) \
+       param(bool, nuclear_pageflip, false) \
+       param(bool, enable_dp_mst, true) \
+       param(bool, enable_dpcd_backlight, false) \
+       param(bool, enable_gvt, false)
 
-#define MEMBER(T, member) T member
+#define MEMBER(T, member, ...) T member;
 struct i915_params {
        I915_PARAMS_FOR_EACH(MEMBER);
 };
 #undef MEMBER
 
-extern struct i915_params i915 __read_mostly;
+extern struct i915_params i915_modparams __read_mostly;
 
 #endif
 
index 881b5d6..da60866 100644 (file)
@@ -168,6 +168,7 @@ static const struct intel_device_info intel_i965g_info __initconst = {
        .platform = INTEL_I965G,
        .has_overlay = 1,
        .hws_needs_physical = 1,
+       .has_snoop = false,
 };
 
 static const struct intel_device_info intel_i965gm_info __initconst = {
@@ -177,6 +178,7 @@ static const struct intel_device_info intel_i965gm_info __initconst = {
        .has_overlay = 1,
        .supports_tv = 1,
        .hws_needs_physical = 1,
+       .has_snoop = false,
 };
 
 static const struct intel_device_info intel_g45_info __initconst = {
@@ -198,7 +200,6 @@ static const struct intel_device_info intel_gm45_info __initconst = {
 #define GEN5_FEATURES \
        .gen = 5, .num_pipes = 2, \
        .has_hotplug = 1, \
-       .has_gmbus_irq = 1, \
        .ring_mask = RENDER_RING | BSD_RING, \
        .has_snoop = true, \
        GEN_DEFAULT_PIPEOFFSETS, \
@@ -223,7 +224,6 @@ static const struct intel_device_info intel_ironlake_m_info __initconst = {
        .has_llc = 1, \
        .has_rc6 = 1, \
        .has_rc6p = 1, \
-       .has_gmbus_irq = 1, \
        .has_aliasing_ppgtt = 1, \
        GEN_DEFAULT_PIPEOFFSETS, \
        CURSOR_OFFSETS
@@ -266,7 +266,6 @@ static const struct intel_device_info intel_sandybridge_m_gt2_info __initconst =
        .has_llc = 1, \
        .has_rc6 = 1, \
        .has_rc6p = 1, \
-       .has_gmbus_irq = 1, \
        .has_aliasing_ppgtt = 1, \
        .has_full_ppgtt = 1, \
        GEN_DEFAULT_PIPEOFFSETS, \
@@ -319,7 +318,6 @@ static const struct intel_device_info intel_valleyview_info __initconst = {
        .has_psr = 1,
        .has_runtime_pm = 1,
        .has_rc6 = 1,
-       .has_gmbus_irq = 1,
        .has_gmch_display = 1,
        .has_hotplug = 1,
        .has_aliasing_ppgtt = 1,
@@ -410,7 +408,6 @@ static const struct intel_device_info intel_cherryview_info __initconst = {
        .has_runtime_pm = 1,
        .has_resource_streamer = 1,
        .has_rc6 = 1,
-       .has_gmbus_irq = 1,
        .has_logical_ring_contexts = 1,
        .has_gmch_display = 1,
        .has_aliasing_ppgtt = 1,
@@ -472,7 +469,6 @@ static const struct intel_device_info intel_skylake_gt4_info __initconst = {
        .has_resource_streamer = 1, \
        .has_rc6 = 1, \
        .has_dp_mst = 1, \
-       .has_gmbus_irq = 1, \
        .has_logical_ring_contexts = 1, \
        .has_guc = 1, \
        .has_aliasing_ppgtt = 1, \
@@ -480,6 +476,7 @@ static const struct intel_device_info intel_skylake_gt4_info __initconst = {
        .has_full_48bit_ppgtt = 1, \
        .has_reset_engine = 1, \
        .has_snoop = true, \
+       .has_ipc = 1, \
        GEN_DEFAULT_PIPEOFFSETS, \
        IVB_CURSOR_OFFSETS, \
        BDW_COLORS
@@ -503,6 +500,7 @@ static const struct intel_device_info intel_geminilake_info __initconst = {
        .platform = INTEL_KABYLAKE, \
        .has_csr = 1, \
        .has_guc = 1, \
+       .has_ipc = 1, \
        .ddb_size = 896
 
 static const struct intel_device_info intel_kabylake_gt1_info __initconst = {
@@ -522,12 +520,12 @@ static const struct intel_device_info intel_kabylake_gt3_info __initconst = {
 };
 
 #define CFL_PLATFORM \
-       .is_alpha_support = 1, \
        BDW_FEATURES, \
        .gen = 9, \
        .platform = INTEL_COFFEELAKE, \
        .has_csr = 1, \
        .has_guc = 1, \
+       .has_ipc = 1, \
        .ddb_size = 896
 
 static const struct intel_device_info intel_coffeelake_gt1_info __initconst = {
@@ -554,6 +552,7 @@ static const struct intel_device_info intel_cannonlake_gt2_info __initconst = {
        .gt = 2,
        .ddb_size = 1024,
        .has_csr = 1,
+       .has_ipc = 1,
        .color = { .degamma_lut_size = 0, .gamma_lut_size = 1024 }
 };
 
@@ -632,7 +631,7 @@ static int i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                (struct intel_device_info *) ent->driver_data;
        int err;
 
-       if (IS_ALPHA_SUPPORT(intel_info) && !i915.alpha_support) {
+       if (IS_ALPHA_SUPPORT(intel_info) && !i915_modparams.alpha_support) {
                DRM_INFO("The driver support for your hardware in this kernel version is alpha quality\n"
                         "See CONFIG_DRM_I915_ALPHA_SUPPORT or i915.alpha_support module parameter\n"
                         "to enable support in this kernel version, or check for kernel updates.\n");
@@ -690,10 +689,10 @@ static int __init i915_init(void)
         * vga_text_mode_force boot option.
         */
 
-       if (i915.modeset == 0)
+       if (i915_modparams.modeset == 0)
                use_kms = false;
 
-       if (vgacon_text_force() && i915.modeset == -1)
+       if (vgacon_text_force() && i915_modparams.modeset == -1)
                use_kms = false;
 
        if (!use_kms) {
index 94185d6..1383a29 100644 (file)
 #include "i915_oa_kblgt2.h"
 #include "i915_oa_kblgt3.h"
 #include "i915_oa_glk.h"
+#include "i915_oa_cflgt2.h"
 
 /* HW requires this to be a power of two, between 128k and 16M, though driver
  * is currently generally designed assuming the largest 16M size is used such
@@ -1213,7 +1214,7 @@ static int oa_get_render_ctx_id(struct i915_perf_stream *stream)
 {
        struct drm_i915_private *dev_priv = stream->dev_priv;
 
-       if (i915.enable_execlists)
+       if (i915_modparams.enable_execlists)
                dev_priv->perf.oa.specific_ctx_id = stream->ctx->hw_id;
        else {
                struct intel_engine_cs *engine = dev_priv->engine[RCS];
@@ -1259,7 +1260,7 @@ static void oa_put_render_ctx_id(struct i915_perf_stream *stream)
 {
        struct drm_i915_private *dev_priv = stream->dev_priv;
 
-       if (i915.enable_execlists) {
+       if (i915_modparams.enable_execlists) {
                dev_priv->perf.oa.specific_ctx_id = INVALID_CTX_ID;
        } else {
                struct intel_engine_cs *engine = dev_priv->engine[RCS];
@@ -1850,8 +1851,7 @@ static int gen8_enable_metric_set(struct drm_i915_private *dev_priv,
         * be read back from automatically triggered reports, as part of the
         * RPT_ID field.
         */
-       if (IS_SKYLAKE(dev_priv) || IS_BROXTON(dev_priv) ||
-           IS_KABYLAKE(dev_priv) || IS_GEMINILAKE(dev_priv)) {
+       if (IS_GEN9(dev_priv)) {
                I915_WRITE(GEN8_OA_DEBUG,
                           _MASKED_BIT_ENABLE(GEN9_OA_DEBUG_DISABLE_CLK_RATIO_REPORTS |
                                              GEN9_OA_DEBUG_INCLUDE_CLK_RATIO));
@@ -2927,6 +2927,9 @@ void i915_perf_register(struct drm_i915_private *dev_priv)
                        i915_perf_load_test_config_kblgt3(dev_priv);
        } else if (IS_GEMINILAKE(dev_priv)) {
                i915_perf_load_test_config_glk(dev_priv);
+       } else if (IS_COFFEELAKE(dev_priv)) {
+               if (IS_CFL_GT2(dev_priv))
+                       i915_perf_load_test_config_cflgt2(dev_priv);
        }
 
        if (dev_priv->perf.oa.test_config.id == 0)
@@ -3405,7 +3408,7 @@ void i915_perf_init(struct drm_i915_private *dev_priv)
                dev_priv->perf.oa.timestamp_frequency = 12500000;
 
                dev_priv->perf.oa.oa_formats = hsw_oa_formats;
-       } else if (i915.enable_execlists) {
+       } else if (i915_modparams.enable_execlists) {
                /* Note: that although we could theoretically also support the
                 * legacy ringbuffer mode on BDW (and earlier iterations of
                 * this driver, before upstreaming did this) it didn't seem
@@ -3453,6 +3456,7 @@ void i915_perf_init(struct drm_i915_private *dev_priv)
                                break;
                        case INTEL_SKYLAKE:
                        case INTEL_KABYLAKE:
+                       case INTEL_COFFEELAKE:
                                dev_priv->perf.oa.timestamp_frequency = 12000000;
                                break;
                        default:
index 2eff98c..ee0d4f1 100644 (file)
@@ -2336,7 +2336,7 @@ enum i915_power_well_id {
 #define DONE_REG               _MMIO(0x40b0)
 #define GEN8_PRIVATE_PAT_LO    _MMIO(0x40e0)
 #define GEN8_PRIVATE_PAT_HI    _MMIO(0x40e0 + 4)
-#define GEN10_PAT_INDEX(index) _MMIO(0x40e0 + index*4)
+#define GEN10_PAT_INDEX(index) _MMIO(0x40e0 + (index)*4)
 #define BSD_HWS_PGA_GEN7       _MMIO(0x04180)
 #define BLT_HWS_PGA_GEN7       _MMIO(0x04280)
 #define VEBOX_HWS_PGA_GEN7     _MMIO(0x04380)
@@ -2730,6 +2730,11 @@ enum i915_power_well_id {
 #define   GEN9_F2_SS_DIS_SHIFT         20
 #define   GEN9_F2_SS_DIS_MASK          (0xf << GEN9_F2_SS_DIS_SHIFT)
 
+#define   GEN10_F2_S_ENA_SHIFT         22
+#define   GEN10_F2_S_ENA_MASK          (0x3f << GEN10_F2_S_ENA_SHIFT)
+#define   GEN10_F2_SS_DIS_SHIFT                18
+#define   GEN10_F2_SS_DIS_MASK         (0xf << GEN10_F2_SS_DIS_SHIFT)
+
 #define GEN8_EU_DISABLE0               _MMIO(0x9134)
 #define   GEN8_EU_DIS0_S0_MASK         0xffffff
 #define   GEN8_EU_DIS0_S1_SHIFT                24
@@ -2745,6 +2750,9 @@ enum i915_power_well_id {
 
 #define GEN9_EU_DISABLE(slice)         _MMIO(0x9134 + (slice)*0x4)
 
+#define GEN10_EU_DISABLE3              _MMIO(0x9140)
+#define   GEN10_EU_DIS_SS_MASK         0xff
+
 #define GEN6_BSD_SLEEP_PSMI_CONTROL    _MMIO(0x12050)
 #define   GEN6_BSD_SLEEP_MSG_DISABLE   (1 << 0)
 #define   GEN6_BSD_SLEEP_FLUSH_DISABLE (1 << 2)
@@ -4047,7 +4055,7 @@ enum {
 #define   EDP_PSR2_FRAME_BEFORE_SU_SHIFT 4
 #define   EDP_PSR2_FRAME_BEFORE_SU_MASK        (0xf<<4)
 #define   EDP_PSR2_IDLE_MASK           0xf
-#define   EDP_FRAMES_BEFORE_SU_ENTRY   (1<<4)
+#define   EDP_PSR2_FRAME_BEFORE_SU(a)  ((a)<<4)
 
 #define EDP_PSR2_STATUS_CTL            _MMIO(0x6f940)
 #define EDP_PSR2_STATUS_STATE_MASK     (0xf<<28)
@@ -6913,7 +6921,7 @@ enum {
 # define CHICKEN3_DGMG_DONE_FIX_DISABLE                (1 << 2)
 
 #define CHICKEN_PAR1_1         _MMIO(0x42080)
-#define  SKL_RC_HASH_OUTSIDE   (1 << 15)
+#define  SKL_DE_COMPRESSED_HASH_MODE   (1 << 15)
 #define  DPA_MASK_VBLANK_SRD   (1 << 15)
 #define  FORCE_ARB_IDLE_PLANES (1 << 14)
 #define  SKL_EDP_PSR_FIX_RDWRAP        (1 << 3)
@@ -6949,6 +6957,7 @@ enum {
 #define  DISP_FBC_WM_DIS               (1<<15)
 #define DISP_ARB_CTL2  _MMIO(0x45004)
 #define  DISP_DATA_PARTITION_5_6       (1<<6)
+#define  DISP_IPC_ENABLE               (1<<3)
 #define DBUF_CTL       _MMIO(0x45008)
 #define  DBUF_POWER_REQUEST            (1<<31)
 #define  DBUF_POWER_STATE              (1<<30)
@@ -6990,6 +6999,7 @@ enum {
 # define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC     ((1<<10) | (1<<26))
 # define GEN9_RHWO_OPTIMIZATION_DISABLE                (1<<14)
 #define COMMON_SLICE_CHICKEN2                  _MMIO(0x7014)
+# define GEN9_PBE_COMPRESSED_HASH_SELECTION    (1<<13)
 # define GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE (1<<12)
 # define GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION (1<<8)
 # define GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE  (1<<0)
@@ -7469,6 +7479,8 @@ enum {
 #define  FDI_PHASE_SYNC_OVR(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_OVR - ((pipe) * 2)))
 #define  FDI_PHASE_SYNC_EN(pipe) (1<<(FDIA_PHASE_SYNC_SHIFT_EN - ((pipe) * 2)))
 #define  FDI_BC_BIFURCATION_SELECT     (1 << 12)
+#define  CHASSIS_CLK_REQ_DURATION_MASK (0xf << 8)
+#define  CHASSIS_CLK_REQ_DURATION(x)   ((x) << 8)
 #define  SPT_PWM_GRANULARITY           (1<<0)
 #define SOUTH_CHICKEN2         _MMIO(0xc2004)
 #define  FDI_MPHY_IOSFSB_RESET_STATUS  (1<<13)
@@ -7953,8 +7965,8 @@ enum {
 #define     GEN7_PCODE_TIMEOUT                 0x2
 #define     GEN7_PCODE_ILLEGAL_DATA            0x3
 #define     GEN7_PCODE_MIN_FREQ_TABLE_GT_RATIO_OUT_OF_RANGE 0x10
-#define          GEN6_PCODE_WRITE_RC6VIDS              0x4
-#define          GEN6_PCODE_READ_RC6VIDS               0x5
+#define   GEN6_PCODE_WRITE_RC6VIDS             0x4
+#define   GEN6_PCODE_READ_RC6VIDS              0x5
 #define     GEN6_ENCODE_RC6_VID(mv)            (((mv) - 245) / 5)
 #define     GEN6_DECODE_RC6_VID(vids)          (((vids) * 5) + 245)
 #define   BDW_PCODE_DISPLAY_FREQ_CHANGE_REQ    0x18
@@ -7973,7 +7985,9 @@ enum {
 #define   GEN6_PCODE_WRITE_D_COMP              0x11
 #define   HSW_PCODE_DE_WRITE_FREQ_REQ          0x17
 #define   DISPLAY_IPS_CONTROL                  0x19
-#define          HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL  0x1A
+            /* See also IPS_CTL */
+#define     IPS_PCODE_CONTROL                  (1 << 30)
+#define   HSW_PCODE_DYNAMIC_DUTY_CYCLE_CONTROL 0x1A
 #define   GEN9_PCODE_SAGV_CONTROL              0x21
 #define     GEN9_SAGV_DISABLE                  0x0
 #define     GEN9_SAGV_IS_DISABLED              0x1
@@ -8082,6 +8096,7 @@ enum {
 #define   GEN8_SAMPLER_POWER_BYPASS_DIS        (1<<1)
 
 #define GEN9_HALF_SLICE_CHICKEN7       _MMIO(0xe194)
+#define   GEN9_SAMPLER_HASH_COMPRESSED_READ_ADDR       (1<<8)
 #define   GEN9_ENABLE_YV12_BUGFIX      (1<<4)
 #define   GEN9_ENABLE_GPGPU_PREEMPTION (1<<2)
 
@@ -8594,7 +8609,7 @@ enum skl_power_gate {
 #define  DPLL_CFGCR0_LINK_RATE_3240    (6 << 25)
 #define  DPLL_CFGCR0_LINK_RATE_4050    (7 << 25)
 #define  DPLL_CFGCR0_DCO_FRACTION_MASK (0x7fff << 10)
-#define  DPLL_CFGCR0_DCO_FRAC_SHIFT    (10)
+#define  DPLL_CFGCR0_DCO_FRACTION_SHIFT        (10)
 #define  DPLL_CFGCR0_DCO_FRACTION(x)   ((x) << 10)
 #define  DPLL_CFGCR0_DCO_INTEGER_MASK  (0x3ff)
 #define CNL_DPLL_CFGCR0(pll)           _MMIO_PLL(pll, _CNL_DPLL0_CFGCR0, _CNL_DPLL1_CFGCR0)
@@ -8801,6 +8816,15 @@ enum skl_power_gate {
 #define MIPIO_TXESC_CLK_DIV2                   _MMIO(0x160008)
 #define  GLK_TX_ESC_CLK_DIV2_MASK                      0x3FF
 
+/* Gen4+ Timestamp and Pipe Frame time stamp registers */
+#define GEN4_TIMESTAMP         _MMIO(0x2358)
+#define ILK_TIMESTAMP_HI       _MMIO(0x70070)
+#define IVB_TIMESTAMP_CTR      _MMIO(0x44070)
+
+#define _PIPE_FRMTMSTMP_A              0x70048
+#define PIPE_FRMTMSTMP(pipe)           \
+                       _MMIO_PIPE2(pipe, _PIPE_FRMTMSTMP_A)
+
 /* BXT MIPI clock controls */
 #define BXT_MAX_VAR_OUTPUT_KHZ                 39500
 
@@ -9382,4 +9406,8 @@ enum skl_power_gate {
 #define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_SKL  0x67F1427F /*    "        " */
 #define   GEN9_L3_LRA_1_GPGPU_DEFAULT_VALUE_BXT  0x5FF101FF /*    "        " */
 
+#define MMCD_MISC_CTRL         _MMIO(0x4ddc) /* skl+ */
+#define  MMCD_PCLA             (1 << 31)
+#define  MMCD_HOTSPOT_EN       (1 << 27)
+
 #endif /* _I915_REG_H_ */
index f29540f..808ea4d 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <linux/slab.h>
 #include <linux/dma-fence.h>
+#include <linux/irq_work.h>
 #include <linux/reservation.h>
 
 #include "i915_sw_fence.h"
@@ -356,31 +357,44 @@ struct i915_sw_dma_fence_cb {
        struct i915_sw_fence *fence;
        struct dma_fence *dma;
        struct timer_list timer;
+       struct irq_work work;
 };
 
 static void timer_i915_sw_fence_wake(unsigned long data)
 {
        struct i915_sw_dma_fence_cb *cb = (struct i915_sw_dma_fence_cb *)data;
+       struct i915_sw_fence *fence;
+
+       fence = xchg(&cb->fence, NULL);
+       if (!fence)
+               return;
 
        pr_warn("asynchronous wait on fence %s:%s:%x timed out\n",
                cb->dma->ops->get_driver_name(cb->dma),
                cb->dma->ops->get_timeline_name(cb->dma),
                cb->dma->seqno);
-       dma_fence_put(cb->dma);
-       cb->dma = NULL;
 
-       i915_sw_fence_complete(cb->fence);
-       cb->timer.function = NULL;
+       i915_sw_fence_complete(fence);
 }
 
 static void dma_i915_sw_fence_wake(struct dma_fence *dma,
                                   struct dma_fence_cb *data)
 {
        struct i915_sw_dma_fence_cb *cb = container_of(data, typeof(*cb), base);
+       struct i915_sw_fence *fence;
+
+       fence = xchg(&cb->fence, NULL);
+       if (fence)
+               i915_sw_fence_complete(fence);
+
+       irq_work_queue(&cb->work);
+}
+
+static void irq_i915_sw_fence_work(struct irq_work *wrk)
+{
+       struct i915_sw_dma_fence_cb *cb = container_of(wrk, typeof(*cb), work);
 
        del_timer_sync(&cb->timer);
-       if (cb->timer.function)
-               i915_sw_fence_complete(cb->fence);
        dma_fence_put(cb->dma);
 
        kfree(cb);
@@ -414,6 +428,7 @@ int i915_sw_fence_await_dma_fence(struct i915_sw_fence *fence,
        __setup_timer(&cb->timer,
                      timer_i915_sw_fence_wake, (unsigned long)cb,
                      TIMER_IRQSAFE);
+       init_irq_work(&cb->work, irq_i915_sw_fence_work);
        if (timeout) {
                cb->dma = dma_fence_get(dma);
                mod_timer(&cb->timer, round_jiffies_up(jiffies + timeout));
index d805b6e..27743be 100644 (file)
@@ -606,11 +606,6 @@ void intel_audio_codec_enable(struct intel_encoder *intel_encoder,
                         connector->encoder->base.id,
                         connector->encoder->name);
 
-       /* ELD Conn_Type */
-       connector->eld[5] &= ~(3 << 2);
-       if (intel_crtc_has_dp_encoder(crtc_state))
-               connector->eld[5] |= (1 << 2);
-
        connector->eld[6] = drm_av_sync_delay(connector, adjusted_mode) / 2;
 
        if (dev_priv->display.audio_codec_enable)
index 5949750..b881ce8 100644 (file)
@@ -356,7 +356,7 @@ parse_sdvo_panel_data(struct drm_i915_private *dev_priv,
        struct drm_display_mode *panel_fixed_mode;
        int index;
 
-       index = i915.vbt_sdvo_panel_type;
+       index = i915_modparams.vbt_sdvo_panel_type;
        if (index == -2) {
                DRM_DEBUG_KMS("Ignore SDVO panel mode from BIOS VBT tables.\n");
                return;
@@ -675,8 +675,9 @@ parse_edp(struct drm_i915_private *dev_priv, const struct bdb_header *bdb)
                uint8_t vswing;
 
                /* Don't read from VBT if module parameter has valid value*/
-               if (i915.edp_vswing) {
-                       dev_priv->vbt.edp.low_vswing = i915.edp_vswing == 1;
+               if (i915_modparams.edp_vswing) {
+                       dev_priv->vbt.edp.low_vswing =
+                               i915_modparams.edp_vswing == 1;
                } else {
                        vswing = (edp->edp_vswing_preemph >> (panel_type * 4)) & 0xF;
                        dev_priv->vbt.edp.low_vswing = vswing == 0;
@@ -1162,6 +1163,13 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
        is_hdmi = is_dvi && (child->device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0;
        is_edp = is_dp && (child->device_type & DEVICE_TYPE_INTERNAL_CONNECTOR);
 
+       if (port == PORT_A && is_dvi) {
+               DRM_DEBUG_KMS("VBT claims port A supports DVI%s, ignoring\n",
+                             is_hdmi ? "/HDMI" : "");
+               is_dvi = false;
+               is_hdmi = false;
+       }
+
        info->supports_dvi = is_dvi;
        info->supports_hdmi = is_hdmi;
        info->supports_dp = is_dp;
index 4e00e5c..29c62d4 100644 (file)
@@ -64,7 +64,7 @@ static unsigned long wait_timeout(void)
 
 static noinline void missed_breadcrumb(struct intel_engine_cs *engine)
 {
-       DRM_DEBUG_DRIVER("%s missed breadcrumb at %pF, irq posted? %s, current seqno=%x, last=%x\n",
+       DRM_DEBUG_DRIVER("%s missed breadcrumb at %pS, irq posted? %s, current seqno=%x, last=%x\n",
                         engine->name, __builtin_return_address(0),
                         yesno(test_bit(ENGINE_IRQ_BREADCRUMB,
                                        &engine->irq_posted)),
index d329118..87fc42b 100644 (file)
@@ -669,8 +669,12 @@ static void bdw_set_cdclk(struct drm_i915_private *dev_priv,
        val |= LCPLL_CD_SOURCE_FCLK;
        I915_WRITE(LCPLL_CTL, val);
 
+       /*
+        * According to the spec, it should be enough to poll for this 1 us.
+        * However, extensive testing shows that this can take longer.
+        */
        if (wait_for_us(I915_READ(LCPLL_CTL) &
-                       LCPLL_CD_SOURCE_FCLK_DONE, 1))
+                       LCPLL_CD_SOURCE_FCLK_DONE, 100))
                DRM_ERROR("Switching to FCLK failed\n");
 
        val = I915_READ(LCPLL_CTL);
index a77dd80..9540702 100644 (file)
@@ -712,7 +712,7 @@ intel_crt_detect(struct drm_connector *connector,
         * broken monitor (without edid) to work behind a broken kvm (that fails
         * to have the right resistors for HP detection) needs to fix this up.
         * For now just bail out. */
-       if (I915_HAS_HOTPLUG(dev_priv) && !i915.load_detect_test) {
+       if (I915_HAS_HOTPLUG(dev_priv) && !i915_modparams.load_detect_test) {
                status = connector_status_disconnected;
                goto out;
        }
@@ -730,7 +730,7 @@ intel_crt_detect(struct drm_connector *connector,
                else if (INTEL_GEN(dev_priv) < 4)
                        status = intel_crt_load_detect(crt,
                                to_intel_crtc(connector->state->crtc)->pipe);
-               else if (i915.load_detect_test)
+               else if (i915_modparams.load_detect_test)
                        status = connector_status_disconnected;
                else
                        status = connector_status_unknown;
index 965988f..cdfb624 100644 (file)
@@ -252,8 +252,14 @@ void intel_csr_load_program(struct drm_i915_private *dev_priv)
        }
 
        fw_size = dev_priv->csr.dmc_fw_size;
+       assert_rpm_wakelock_held(dev_priv);
+
+       preempt_disable();
+
        for (i = 0; i < fw_size; i++)
-               I915_WRITE(CSR_PROGRAM(i), payload[i]);
+               I915_WRITE_FW(CSR_PROGRAM(i), payload[i]);
+
+       preempt_enable();
 
        for (i = 0; i < dev_priv->csr.mmio_count; i++) {
                I915_WRITE(dev_priv->csr.mmioaddr[i],
index 1da3bb2..93cbbcb 100644 (file)
@@ -301,10 +301,10 @@ static const struct ddi_buf_trans skl_y_ddi_translations_hdmi[] = {
 };
 
 struct bxt_ddi_buf_trans {
-       u32 margin;     /* swing value */
-       u32 scale;      /* scale value */
-       u32 enable;     /* scale enable */
-       u32 deemphasis;
+       u8 margin;      /* swing value */
+       u8 scale;       /* scale value */
+       u8 enable;      /* scale enable */
+       u8 deemphasis;
        bool default_index; /* true if the entry represents default value */
 };
 
@@ -354,11 +354,11 @@ static const struct bxt_ddi_buf_trans bxt_ddi_translations_hdmi[] = {
 };
 
 struct cnl_ddi_buf_trans {
-       u32 dw2_swing_sel;
-       u32 dw7_n_scalar;
-       u32 dw4_cursor_coeff;
-       u32 dw4_post_cursor_2;
-       u32 dw4_post_cursor_1;
+       u8 dw2_swing_sel;
+       u8 dw7_n_scalar;
+       u8 dw4_cursor_coeff;
+       u8 dw4_post_cursor_2;
+       u8 dw4_post_cursor_1;
 };
 
 /* Voltage Swing Programming for VccIO 0.85V for DP */
@@ -1212,7 +1212,7 @@ static int cnl_calc_wrpll_link(struct drm_i915_private *dev_priv,
        dco_freq = (cfgcr0 & DPLL_CFGCR0_DCO_INTEGER_MASK) * ref_clock;
 
        dco_freq += (((cfgcr0 & DPLL_CFGCR0_DCO_FRACTION_MASK) >>
-                     DPLL_CFGCR0_DCO_FRAC_SHIFT) * ref_clock) / 0x8000;
+                     DPLL_CFGCR0_DCO_FRACTION_SHIFT) * ref_clock) / 0x8000;
 
        return dco_freq / (p0 * p1 * p2 * 5);
 }
@@ -1939,7 +1939,7 @@ static void cnl_ddi_vswing_program(struct drm_i915_private *dev_priv,
        val |= RCOMP_SCALAR(0x98);
        I915_WRITE(CNL_PORT_TX_DW2_GRP(port), val);
 
-        /* Program PORT_TX_DW4 */
+       /* Program PORT_TX_DW4 */
        /* We cannot write to GRP. It would overrite individual loadgen */
        for (ln = 0; ln < 4; ln++) {
                val = I915_READ(CNL_PORT_TX_DW4_LN(port, ln));
@@ -1951,7 +1951,7 @@ static void cnl_ddi_vswing_program(struct drm_i915_private *dev_priv,
                I915_WRITE(CNL_PORT_TX_DW4_LN(port, ln), val);
        }
 
-        /* Program PORT_TX_DW5 */
+       /* Program PORT_TX_DW5 */
        /* All DW5 values are fixed for every table entry */
        val = I915_READ(CNL_PORT_TX_DW5_LN0(port));
        val &= ~RTERM_SELECT_MASK;
@@ -1959,7 +1959,7 @@ static void cnl_ddi_vswing_program(struct drm_i915_private *dev_priv,
        val |= TAP3_DISABLE;
        I915_WRITE(CNL_PORT_TX_DW5_GRP(port), val);
 
-        /* Program PORT_TX_DW7 */
+       /* Program PORT_TX_DW7 */
        val = I915_READ(CNL_PORT_TX_DW7_LN0(port));
        val &= ~N_SCALAR_MASK;
        val |= N_SCALAR(ddi_translations[level].dw7_n_scalar);
index b17f704..875d428 100644 (file)
@@ -82,6 +82,39 @@ void intel_device_info_dump(struct drm_i915_private *dev_priv)
 #undef PRINT_FLAG
 }
 
+static void gen10_sseu_info_init(struct drm_i915_private *dev_priv)
+{
+       struct sseu_dev_info *sseu = &mkwrite_device_info(dev_priv)->sseu;
+       const u32 fuse2 = I915_READ(GEN8_FUSE2);
+
+       sseu->slice_mask = (fuse2 & GEN10_F2_S_ENA_MASK) >>
+                           GEN10_F2_S_ENA_SHIFT;
+       sseu->subslice_mask = (1 << 4) - 1;
+       sseu->subslice_mask &= ~((fuse2 & GEN10_F2_SS_DIS_MASK) >>
+                                GEN10_F2_SS_DIS_SHIFT);
+
+       sseu->eu_total = hweight32(~I915_READ(GEN8_EU_DISABLE0));
+       sseu->eu_total += hweight32(~I915_READ(GEN8_EU_DISABLE1));
+       sseu->eu_total += hweight32(~I915_READ(GEN8_EU_DISABLE2));
+       sseu->eu_total += hweight8(~(I915_READ(GEN10_EU_DISABLE3) &
+                                    GEN10_EU_DIS_SS_MASK));
+
+       /*
+        * CNL is expected to always have a uniform distribution
+        * of EU across subslices with the exception that any one
+        * EU in any one subslice may be fused off for die
+        * recovery.
+        */
+       sseu->eu_per_subslice = sseu_subslice_total(sseu) ?
+                               DIV_ROUND_UP(sseu->eu_total,
+                                            sseu_subslice_total(sseu)) : 0;
+
+       /* No restrictions on Power Gating */
+       sseu->has_slice_pg = 1;
+       sseu->has_subslice_pg = 1;
+       sseu->has_eu_pg = 1;
+}
+
 static void cherryview_sseu_info_init(struct drm_i915_private *dev_priv)
 {
        struct sseu_dev_info *sseu = &mkwrite_device_info(dev_priv)->sseu;
@@ -343,7 +376,7 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
                        info->num_sprites[pipe] = 1;
        }
 
-       if (i915.disable_display) {
+       if (i915_modparams.disable_display) {
                DRM_INFO("Display disabled (module parameter)\n");
                info->num_pipes = 0;
        } else if (info->num_pipes > 0 &&
@@ -409,10 +442,10 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv)
                cherryview_sseu_info_init(dev_priv);
        else if (IS_BROADWELL(dev_priv))
                broadwell_sseu_info_init(dev_priv);
-       else if (INTEL_INFO(dev_priv)->gen >= 9)
+       else if (INTEL_GEN(dev_priv) == 9)
                gen9_sseu_info_init(dev_priv);
-
-       WARN_ON(info->has_snoop != !info->has_llc);
+       else if (INTEL_GEN(dev_priv) >= 10)
+               gen10_sseu_info_init(dev_priv);
 
        DRM_DEBUG_DRIVER("slice mask: %04x\n", info->sseu.slice_mask);
        DRM_DEBUG_DRIVER("slice total: %u\n", hweight8(info->sseu.slice_mask));
index f780f39..615c58e 100644 (file)
@@ -3701,7 +3701,7 @@ void intel_prepare_reset(struct drm_i915_private *dev_priv)
 
 
        /* reset doesn't touch the display */
-       if (!i915.force_reset_modeset_test &&
+       if (!i915_modparams.force_reset_modeset_test &&
            !gpu_reset_clobbers_display(dev_priv))
                return;
 
@@ -3757,7 +3757,7 @@ void intel_finish_reset(struct drm_i915_private *dev_priv)
        int ret;
 
        /* reset doesn't touch the display */
-       if (!i915.force_reset_modeset_test &&
+       if (!i915_modparams.force_reset_modeset_test &&
            !gpu_reset_clobbers_display(dev_priv))
                return;
 
@@ -4956,7 +4956,8 @@ void hsw_enable_ips(struct intel_crtc *crtc)
        assert_plane_enabled(dev_priv, crtc->plane);
        if (IS_BROADWELL(dev_priv)) {
                mutex_lock(&dev_priv->rps.hw_lock);
-               WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0xc0000000));
+               WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL,
+                                               IPS_ENABLE | IPS_PCODE_CONTROL));
                mutex_unlock(&dev_priv->rps.hw_lock);
                /* Quoting Art Runyan: "its not safe to expect any particular
                 * value in IPS_CTL bit 31 after enabling IPS through the
@@ -6312,7 +6313,7 @@ static void hsw_compute_ips_config(struct intel_crtc *crtc,
        struct drm_device *dev = crtc->base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
 
-       pipe_config->ips_enabled = i915.enable_ips &&
+       pipe_config->ips_enabled = i915_modparams.enable_ips &&
                hsw_crtc_supports_ips(crtc) &&
                pipe_config_supports_ips(dev_priv, pipe_config);
 }
@@ -6493,8 +6494,8 @@ intel_link_compute_m_n(int bits_per_pixel, int nlanes,
 
 static inline bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
 {
-       if (i915.panel_use_ssc >= 0)
-               return i915.panel_use_ssc != 0;
+       if (i915_modparams.panel_use_ssc >= 0)
+               return i915_modparams.panel_use_ssc != 0;
        return dev_priv->vbt.lvds_use_ssc
                && !(dev_priv->quirks & QUIRK_LVDS_SSC_DISABLE);
 }
@@ -9309,11 +9310,11 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc,
        pipe_config->gamma_mode =
                I915_READ(GAMMA_MODE(crtc->pipe)) & GAMMA_MODE_MODE_MASK;
 
-       if (IS_BROADWELL(dev_priv) || dev_priv->info.gen >= 9) {
+       if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9) {
                u32 tmp = I915_READ(PIPEMISC(crtc->pipe));
                bool clrspace_yuv = tmp & PIPEMISC_OUTPUT_COLORSPACE_YUV;
 
-               if (IS_GEMINILAKE(dev_priv) || dev_priv->info.gen >= 10) {
+               if (IS_GEMINILAKE(dev_priv) || INTEL_GEN(dev_priv) >= 10) {
                        bool blend_mode_420 = tmp &
                                              PIPEMISC_YUV420_MODE_FULL_BLEND;
 
@@ -10223,7 +10224,7 @@ int intel_dotclock_calculate(int link_freq,
        if (!m_n->link_n)
                return 0;
 
-       return div_u64((u64)m_n->link_m * link_freq, m_n->link_n);
+       return div_u64(mul_u32_u32(m_n->link_m, link_freq), m_n->link_n);
 }
 
 static void ironlake_pch_clock_get(struct intel_crtc *crtc,
@@ -12083,7 +12084,7 @@ static int intel_atomic_check(struct drm_device *dev,
                        return ret;
                }
 
-               if (i915.fastboot &&
+               if (i915_modparams.fastboot &&
                    intel_pipe_config_compare(dev_priv,
                                        to_intel_crtc_state(old_crtc_state),
                                        pipe_config, true)) {
@@ -12298,7 +12299,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
        struct drm_crtc_state *old_crtc_state, *new_crtc_state;
        struct drm_crtc *crtc;
        struct intel_crtc_state *intel_cstate;
-       bool hw_check = intel_state->modeset;
        u64 put_domains[I915_MAX_PIPES] = {};
        int i;
 
@@ -12314,7 +12314,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
 
                if (needs_modeset(new_crtc_state) ||
                    to_intel_crtc_state(new_crtc_state)->update_pipe) {
-                       hw_check = true;
 
                        put_domains[to_intel_crtc(crtc)->pipe] =
                                modeset_get_crtc_power_domains(crtc,
@@ -13511,7 +13510,7 @@ int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
        struct drm_crtc *drmmode_crtc;
        struct intel_crtc *crtc;
 
-       drmmode_crtc = drm_crtc_find(dev, pipe_from_crtc_id->crtc_id);
+       drmmode_crtc = drm_crtc_find(dev, file, pipe_from_crtc_id->crtc_id);
        if (!drmmode_crtc)
                return -ENOENT;
 
@@ -14218,7 +14217,7 @@ void intel_init_display_hooks(struct drm_i915_private *dev_priv)
                dev_priv->display.fdi_link_train = hsw_fdi_link_train;
        }
 
-       if (dev_priv->info.gen >= 9)
+       if (INTEL_GEN(dev_priv) >= 9)
                dev_priv->display.update_crtcs = skl_update_crtcs;
        else
                dev_priv->display.update_crtcs = intel_update_crtcs;
@@ -15192,6 +15191,7 @@ void intel_display_resume(struct drm_device *dev)
        if (!ret)
                ret = __intel_display_resume(dev, state, &ctx);
 
+       intel_enable_ipc(dev_priv);
        drm_modeset_drop_locks(&ctx);
        drm_modeset_acquire_fini(&ctx);
 
index 887953c..90e756c 100644 (file)
@@ -42,6 +42,7 @@
 #include "i915_drv.h"
 
 #define DP_LINK_CHECK_TIMEOUT  (10 * 1000)
+#define DP_DPRX_ESI_LEN 14
 
 /* Compliance test status bits  */
 #define INTEL_DP_RESOLUTION_SHIFT_MASK 0
@@ -2692,24 +2693,46 @@ static void intel_disable_dp(struct intel_encoder *encoder,
                             const struct drm_connector_state *old_conn_state)
 {
        struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
-       struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
 
        if (old_crtc_state->has_audio)
                intel_audio_codec_disable(encoder);
 
-       if (HAS_PSR(dev_priv) && !HAS_DDI(dev_priv))
-               intel_psr_disable(intel_dp, old_crtc_state);
-
        /* Make sure the panel is off before trying to change the mode. But also
         * ensure that we have vdd while we switch off the panel. */
        intel_edp_panel_vdd_on(intel_dp);
        intel_edp_backlight_off(old_conn_state);
        intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
        intel_edp_panel_off(intel_dp);
+}
+
+static void g4x_disable_dp(struct intel_encoder *encoder,
+                          const struct intel_crtc_state *old_crtc_state,
+                          const struct drm_connector_state *old_conn_state)
+{
+       struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+
+       intel_disable_dp(encoder, old_crtc_state, old_conn_state);
 
        /* disable the port before the pipe on g4x */
-       if (INTEL_GEN(dev_priv) < 5)
-               intel_dp_link_down(intel_dp);
+       intel_dp_link_down(intel_dp);
+}
+
+static void ilk_disable_dp(struct intel_encoder *encoder,
+                          const struct intel_crtc_state *old_crtc_state,
+                          const struct drm_connector_state *old_conn_state)
+{
+       intel_disable_dp(encoder, old_crtc_state, old_conn_state);
+}
+
+static void vlv_disable_dp(struct intel_encoder *encoder,
+                          const struct intel_crtc_state *old_crtc_state,
+                          const struct drm_connector_state *old_conn_state)
+{
+       struct intel_dp *intel_dp = enc_to_intel_dp(&encoder->base);
+
+       intel_psr_disable(intel_dp, old_crtc_state);
+
+       intel_disable_dp(encoder, old_crtc_state, old_conn_state);
 }
 
 static void ilk_post_disable_dp(struct intel_encoder *encoder,
@@ -3826,7 +3849,7 @@ intel_dp_can_mst(struct intel_dp *intel_dp)
 {
        u8 mstm_cap;
 
-       if (!i915.enable_dp_mst)
+       if (!i915_modparams.enable_dp_mst)
                return false;
 
        if (!intel_dp->can_mst)
@@ -3844,7 +3867,7 @@ intel_dp_can_mst(struct intel_dp *intel_dp)
 static void
 intel_dp_configure_mst(struct intel_dp *intel_dp)
 {
-       if (!i915.enable_dp_mst)
+       if (!i915_modparams.enable_dp_mst)
                return;
 
        if (!intel_dp->can_mst)
@@ -3991,15 +4014,9 @@ intel_dp_get_sink_irq(struct intel_dp *intel_dp, u8 *sink_irq_vector)
 static bool
 intel_dp_get_sink_irq_esi(struct intel_dp *intel_dp, u8 *sink_irq_vector)
 {
-       int ret;
-
-       ret = drm_dp_dpcd_read(&intel_dp->aux,
-                                            DP_SINK_COUNT_ESI,
-                                            sink_irq_vector, 14);
-       if (ret != 14)
-               return false;
-
-       return true;
+       return drm_dp_dpcd_read(&intel_dp->aux, DP_SINK_COUNT_ESI,
+                               sink_irq_vector, DP_DPRX_ESI_LEN) ==
+               DP_DPRX_ESI_LEN;
 }
 
 static uint8_t intel_dp_autotest_link_training(struct intel_dp *intel_dp)
@@ -4199,7 +4216,7 @@ intel_dp_check_mst_status(struct intel_dp *intel_dp)
        bool bret;
 
        if (intel_dp->is_mst) {
-               u8 esi[16] = { 0 };
+               u8 esi[DP_DPRX_ESI_LEN] = { 0 };
                int ret = 0;
                int retry;
                bool handled;
@@ -4736,10 +4753,6 @@ intel_dp_long_pulse(struct intel_connector *intel_connector)
        if (intel_encoder->type != INTEL_OUTPUT_EDP)
                intel_encoder->type = INTEL_OUTPUT_DP;
 
-       DRM_DEBUG_KMS("Display Port TPS3 support: source %s, sink %s\n",
-                     yesno(intel_dp_source_supports_hbr2(intel_dp)),
-                     yesno(drm_dp_tps3_supported(intel_dp->dpcd)));
-
        if (intel_dp->reset_link_params) {
                /* Initial max link lane count */
                intel_dp->max_link_lane_count = intel_dp_max_common_lane_count(intel_dp);
@@ -5467,11 +5480,6 @@ static void intel_dp_set_drrs_state(struct drm_i915_private *dev_priv,
                return;
        }
 
-       /*
-        * FIXME: This needs proper synchronization with psr state for some
-        * platforms that cannot have PSR and DRRS enabled at the same time.
-        */
-
        dig_port = dp_to_dig_port(intel_dp);
        encoder = &dig_port->base;
        intel_crtc = to_intel_crtc(encoder->base.crtc);
@@ -5555,6 +5563,11 @@ void intel_edp_drrs_enable(struct intel_dp *intel_dp,
                return;
        }
 
+       if (dev_priv->psr.enabled) {
+               DRM_DEBUG_KMS("PSR enabled. Not enabling DRRS.\n");
+               return;
+       }
+
        mutex_lock(&dev_priv->drrs.mutex);
        if (WARN_ON(dev_priv->drrs.dp)) {
                DRM_ERROR("DRRS already enabled\n");
@@ -6145,7 +6158,6 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
                goto err_encoder_init;
 
        intel_encoder->compute_config = intel_dp_compute_config;
-       intel_encoder->disable = intel_disable_dp;
        intel_encoder->get_hw_state = intel_dp_get_hw_state;
        intel_encoder->get_config = intel_dp_get_config;
        intel_encoder->suspend = intel_dp_encoder_suspend;
@@ -6153,18 +6165,24 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
                intel_encoder->pre_pll_enable = chv_dp_pre_pll_enable;
                intel_encoder->pre_enable = chv_pre_enable_dp;
                intel_encoder->enable = vlv_enable_dp;
+               intel_encoder->disable = vlv_disable_dp;
                intel_encoder->post_disable = chv_post_disable_dp;
                intel_encoder->post_pll_disable = chv_dp_post_pll_disable;
        } else if (IS_VALLEYVIEW(dev_priv)) {
                intel_encoder->pre_pll_enable = vlv_dp_pre_pll_enable;
                intel_encoder->pre_enable = vlv_pre_enable_dp;
                intel_encoder->enable = vlv_enable_dp;
+               intel_encoder->disable = vlv_disable_dp;
                intel_encoder->post_disable = vlv_post_disable_dp;
+       } else if (INTEL_GEN(dev_priv) >= 5) {
+               intel_encoder->pre_enable = g4x_pre_enable_dp;
+               intel_encoder->enable = g4x_enable_dp;
+               intel_encoder->disable = ilk_disable_dp;
+               intel_encoder->post_disable = ilk_post_disable_dp;
        } else {
                intel_encoder->pre_enable = g4x_pre_enable_dp;
                intel_encoder->enable = g4x_enable_dp;
-               if (INTEL_GEN(dev_priv) >= 5)
-                       intel_encoder->post_disable = ilk_post_disable_dp;
+               intel_encoder->disable = g4x_disable_dp;
        }
 
        intel_dig_port->port = port;
index d2830ba..2bb2ceb 100644 (file)
@@ -264,7 +264,7 @@ int intel_dp_aux_init_backlight_funcs(struct intel_connector *intel_connector)
 {
        struct intel_panel *panel = &intel_connector->panel;
 
-       if (!i915.enable_dpcd_backlight)
+       if (!i915_modparams.enable_dpcd_backlight)
                return -ENODEV;
 
        if (!intel_dp_aux_display_control_capable(intel_connector))
index 8e3aad0..9a396f4 100644 (file)
@@ -133,7 +133,7 @@ static void intel_mst_disable_dp(struct intel_encoder *encoder,
                to_intel_connector(old_conn_state->connector);
        int ret;
 
-       DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
+       DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 
        drm_dp_mst_reset_vcpi_slots(&intel_dp->mst_mgr, connector->port);
 
@@ -155,8 +155,6 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
        struct intel_connector *connector =
                to_intel_connector(old_conn_state->connector);
 
-       DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
-
        /* this can fail */
        drm_dp_check_act_status(&intel_dp->mst_mgr);
        /* and this can also fail */
@@ -173,6 +171,7 @@ static void intel_mst_post_disable_dp(struct intel_encoder *encoder,
 
                intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_OFF);
        }
+       DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 }
 
 static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
@@ -195,7 +194,7 @@ static void intel_mst_pre_enable_dp(struct intel_encoder *encoder,
        connector->encoder = encoder;
        intel_mst->connector = connector;
 
-       DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
+       DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 
        if (intel_dp->active_mst_links == 0)
                intel_dig_port->base.pre_enable(&intel_dig_port->base,
@@ -229,7 +228,7 @@ static void intel_mst_enable_dp(struct intel_encoder *encoder,
        enum port port = intel_dig_port->port;
        int ret;
 
-       DRM_DEBUG_KMS("%d\n", intel_dp->active_mst_links);
+       DRM_DEBUG_KMS("active links %d\n", intel_dp->active_mst_links);
 
        if (intel_wait_for_register(dev_priv,
                                    DP_TP_STATUS(port),
@@ -494,6 +493,7 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
        struct intel_connector *intel_connector = to_intel_connector(connector);
        struct drm_i915_private *dev_priv = to_i915(connector->dev);
 
+       DRM_DEBUG_KMS("[CONNECTOR:%d:%s]\n", connector->base.id, connector->name);
        drm_connector_unregister(connector);
 
        if (dev_priv->fbdev)
@@ -505,7 +505,6 @@ static void intel_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
        drm_modeset_unlock(&connector->dev->mode_config.connection_mutex);
 
        drm_connector_unreference(connector);
-       DRM_DEBUG_KMS("\n");
 }
 
 static void intel_dp_mst_hotplug(struct drm_dp_mst_topology_mgr *mgr)
index 463ed15..0cab667 100644 (file)
@@ -494,6 +494,8 @@ struct intel_crtc_scaler_state {
 
 /* drm_mode->private_flags */
 #define I915_MODE_FLAG_INHERITED 1
+/* Flag to get scanline using frame time stamps */
+#define I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP (1<<1)
 
 struct intel_pipe_wm {
        struct intel_wm_level wm[5];
@@ -1898,9 +1900,11 @@ bool ilk_disable_lp_wm(struct drm_device *dev);
 int sanitize_rc6_option(struct drm_i915_private *dev_priv, int enable_rc6);
 int skl_check_pipe_max_pixel_rate(struct intel_crtc *intel_crtc,
                                  struct intel_crtc_state *cstate);
+void intel_init_ipc(struct drm_i915_private *dev_priv);
+void intel_enable_ipc(struct drm_i915_private *dev_priv);
 static inline int intel_enable_rc6(void)
 {
-       return i915.enable_rc6;
+       return i915_modparams.enable_rc6;
 }
 
 /* intel_sdvo.c */
index fc25d7d..20a7b00 100644 (file)
@@ -263,7 +263,7 @@ static int dpi_send_cmd(struct intel_dsi *intel_dsi, u32 cmd, bool hs,
 
        /* XXX: old code skips write if control unchanged */
        if (cmd == I915_READ(MIPI_DPI_CONTROL(port)))
-               DRM_ERROR("Same special packet %02x twice in a row.\n", cmd);
+               DRM_DEBUG_KMS("Same special packet %02x twice in a row.\n", cmd);
 
        I915_WRITE(MIPI_DPI_CONTROL(port), cmd);
 
@@ -330,6 +330,10 @@ static bool intel_dsi_compute_config(struct intel_encoder *encoder,
        adjusted_mode->flags = 0;
 
        if (IS_GEN9_LP(dev_priv)) {
+               /* Enable Frame time stamp based scanline reporting */
+               adjusted_mode->private_flags |=
+                       I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP;
+
                /* Dual link goes to DSI transcoder A. */
                if (intel_dsi->ports == BIT(PORT_C))
                        pipe_config->cpu_transcoder = TRANSCODER_DSI_C;
@@ -1102,6 +1106,10 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder,
                                pixel_format_from_register_bits(fmt));
        bpp = pipe_config->pipe_bpp;
 
+       /* Enable Frame time stamo based scanline reporting */
+       adjusted_mode->private_flags |=
+                       I915_MODE_FLAG_GET_SCANLINE_FROM_TIMESTAMP;
+
        /* In terms of pixels */
        adjusted_mode->crtc_hdisplay =
                                I915_READ(BXT_MIPI_TRANS_HACTIVE(port));
index b8e9a23..a28e2a8 100644 (file)
@@ -39,6 +39,7 @@
 
 #define GEN8_LR_CONTEXT_RENDER_SIZE    (20 * PAGE_SIZE)
 #define GEN9_LR_CONTEXT_RENDER_SIZE    (22 * PAGE_SIZE)
+#define GEN10_LR_CONTEXT_RENDER_SIZE   (19 * PAGE_SIZE)
 
 #define GEN8_LR_CONTEXT_OTHER_SIZE     ( 2 * PAGE_SIZE)
 
@@ -150,10 +151,11 @@ __intel_engine_context_size(struct drm_i915_private *dev_priv, u8 class)
                default:
                        MISSING_CASE(INTEL_GEN(dev_priv));
                case 10:
+                       return GEN10_LR_CONTEXT_RENDER_SIZE;
                case 9:
                        return GEN9_LR_CONTEXT_RENDER_SIZE;
                case 8:
-                       return i915.enable_execlists ?
+                       return i915_modparams.enable_execlists ?
                               GEN8_LR_CONTEXT_RENDER_SIZE :
                               GEN8_CXT_TOTAL_SIZE;
                case 7:
@@ -301,7 +303,7 @@ int intel_engines_init(struct drm_i915_private *dev_priv)
                        &intel_engine_classes[engine->class];
                int (*init)(struct intel_engine_cs *engine);
 
-               if (i915.enable_execlists)
+               if (i915_modparams.enable_execlists)
                        init = class_info->init_execlists;
                else
                        init = class_info->init_legacy;
@@ -380,6 +382,37 @@ static void intel_engine_init_timeline(struct intel_engine_cs *engine)
        engine->timeline = &engine->i915->gt.global_timeline.engine[engine->id];
 }
 
+static bool csb_force_mmio(struct drm_i915_private *i915)
+{
+       /* GVT emulation depends upon intercepting CSB mmio */
+       if (intel_vgpu_active(i915))
+               return true;
+
+       /*
+        * IOMMU adds unpredictable latency causing the CSB write (from the
+        * GPU into the HWSP) to only be visible some time after the interrupt
+        * (missed breadcrumb syndrome).
+        */
+       if (intel_vtd_active())
+               return true;
+
+       return false;
+}
+
+static void intel_engine_init_execlist(struct intel_engine_cs *engine)
+{
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+
+       execlists->csb_use_mmio = csb_force_mmio(engine->i915);
+
+       execlists->port_mask = 1;
+       BUILD_BUG_ON_NOT_POWER_OF_2(execlists_num_ports(execlists));
+       GEM_BUG_ON(execlists_num_ports(execlists) > EXECLIST_MAX_PORTS);
+
+       execlists->queue = RB_ROOT;
+       execlists->first = NULL;
+}
+
 /**
  * intel_engines_setup_common - setup engine state not requiring hw access
  * @engine: Engine to setup.
@@ -391,8 +424,7 @@ static void intel_engine_init_timeline(struct intel_engine_cs *engine)
  */
 void intel_engine_setup_common(struct intel_engine_cs *engine)
 {
-       engine->execlist_queue = RB_ROOT;
-       engine->execlist_first = NULL;
+       intel_engine_init_execlist(engine);
 
        intel_engine_init_timeline(engine);
        intel_engine_init_hangcheck(engine);
@@ -442,6 +474,116 @@ static void intel_engine_cleanup_scratch(struct intel_engine_cs *engine)
        i915_vma_unpin_and_release(&engine->scratch);
 }
 
+static void cleanup_phys_status_page(struct intel_engine_cs *engine)
+{
+       struct drm_i915_private *dev_priv = engine->i915;
+
+       if (!dev_priv->status_page_dmah)
+               return;
+
+       drm_pci_free(&dev_priv->drm, dev_priv->status_page_dmah);
+       engine->status_page.page_addr = NULL;
+}
+
+static void cleanup_status_page(struct intel_engine_cs *engine)
+{
+       struct i915_vma *vma;
+       struct drm_i915_gem_object *obj;
+
+       vma = fetch_and_zero(&engine->status_page.vma);
+       if (!vma)
+               return;
+
+       obj = vma->obj;
+
+       i915_vma_unpin(vma);
+       i915_vma_close(vma);
+
+       i915_gem_object_unpin_map(obj);
+       __i915_gem_object_release_unless_active(obj);
+}
+
+static int init_status_page(struct intel_engine_cs *engine)
+{
+       struct drm_i915_gem_object *obj;
+       struct i915_vma *vma;
+       unsigned int flags;
+       void *vaddr;
+       int ret;
+
+       obj = i915_gem_object_create_internal(engine->i915, PAGE_SIZE);
+       if (IS_ERR(obj)) {
+               DRM_ERROR("Failed to allocate status page\n");
+               return PTR_ERR(obj);
+       }
+
+       ret = i915_gem_object_set_cache_level(obj, I915_CACHE_LLC);
+       if (ret)
+               goto err;
+
+       vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
+       if (IS_ERR(vma)) {
+               ret = PTR_ERR(vma);
+               goto err;
+       }
+
+       flags = PIN_GLOBAL;
+       if (!HAS_LLC(engine->i915))
+               /* On g33, we cannot place HWS above 256MiB, so
+                * restrict its pinning to the low mappable arena.
+                * Though this restriction is not documented for
+                * gen4, gen5, or byt, they also behave similarly
+                * and hang if the HWS is placed at the top of the
+                * GTT. To generalise, it appears that all !llc
+                * platforms have issues with us placing the HWS
+                * above the mappable region (even though we never
+                * actually map it).
+                */
+               flags |= PIN_MAPPABLE;
+       else
+               flags |= PIN_HIGH;
+       ret = i915_vma_pin(vma, 0, 4096, flags);
+       if (ret)
+               goto err;
+
+       vaddr = i915_gem_object_pin_map(obj, I915_MAP_WB);
+       if (IS_ERR(vaddr)) {
+               ret = PTR_ERR(vaddr);
+               goto err_unpin;
+       }
+
+       engine->status_page.vma = vma;
+       engine->status_page.ggtt_offset = i915_ggtt_offset(vma);
+       engine->status_page.page_addr = memset(vaddr, 0, PAGE_SIZE);
+
+       DRM_DEBUG_DRIVER("%s hws offset: 0x%08x\n",
+                        engine->name, i915_ggtt_offset(vma));
+       return 0;
+
+err_unpin:
+       i915_vma_unpin(vma);
+err:
+       i915_gem_object_put(obj);
+       return ret;
+}
+
+static int init_phys_status_page(struct intel_engine_cs *engine)
+{
+       struct drm_i915_private *dev_priv = engine->i915;
+
+       GEM_BUG_ON(engine->id != RCS);
+
+       dev_priv->status_page_dmah =
+               drm_pci_alloc(&dev_priv->drm, PAGE_SIZE, PAGE_SIZE);
+       if (!dev_priv->status_page_dmah)
+               return -ENOMEM;
+
+       engine->status_page.page_addr = dev_priv->status_page_dmah->vaddr;
+       memset(engine->status_page.page_addr, 0, PAGE_SIZE);
+
+       return 0;
+}
+
 /**
  * intel_engines_init_common - initialize cengine state which might require hw access
  * @engine: Engine to initialize.
@@ -477,10 +619,21 @@ int intel_engine_init_common(struct intel_engine_cs *engine)
 
        ret = i915_gem_render_state_init(engine);
        if (ret)
-               goto err_unpin;
+               goto err_breadcrumbs;
+
+       if (HWS_NEEDS_PHYSICAL(engine->i915))
+               ret = init_phys_status_page(engine);
+       else
+               ret = init_status_page(engine);
+       if (ret)
+               goto err_rs_fini;
 
        return 0;
 
+err_rs_fini:
+       i915_gem_render_state_fini(engine);
+err_breadcrumbs:
+       intel_engine_fini_breadcrumbs(engine);
 err_unpin:
        engine->context_unpin(engine, engine->i915->kernel_context);
        return ret;
@@ -497,6 +650,11 @@ void intel_engine_cleanup_common(struct intel_engine_cs *engine)
 {
        intel_engine_cleanup_scratch(engine);
 
+       if (HWS_NEEDS_PHYSICAL(engine->i915))
+               cleanup_phys_status_page(engine);
+       else
+               cleanup_status_page(engine);
+
        i915_gem_render_state_fini(engine);
        intel_engine_fini_breadcrumbs(engine);
        intel_engine_cleanup_cmd_parser(engine);
@@ -812,6 +970,19 @@ static int gen9_init_workarounds(struct intel_engine_cs *engine)
                I915_WRITE(GAM_ECOCHK, I915_READ(GAM_ECOCHK) |
                           ECOCHK_DIS_TLB);
 
+       if (HAS_LLC(dev_priv)) {
+               /* WaCompressedResourceSamplerPbeMediaNewHashMode:skl,kbl
+                *
+                * Must match Display Engine. See
+                * WaCompressedResourceDisplayNewHashMode.
+                */
+               WA_SET_BIT_MASKED(COMMON_SLICE_CHICKEN2,
+                                 GEN9_PBE_COMPRESSED_HASH_SELECTION);
+               WA_SET_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN7,
+                                 GEN9_SAMPLER_HASH_COMPRESSED_READ_ADDR);
+               WA_SET_BIT(MMCD_MISC_CTRL, MMCD_PCLA | MMCD_HOTSPOT_EN);
+       }
+
        /* WaClearFlowControlGpgpuContextSave:skl,bxt,kbl,glk,cfl */
        /* WaDisablePartialInstShootdown:skl,bxt,kbl,glk,cfl */
        WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN,
@@ -981,12 +1152,14 @@ static int skl_init_workarounds(struct intel_engine_cs *engine)
                                   GEN9_GAPS_TSV_CREDIT_DISABLE));
 
        /* WaDisableGafsUnitClkGating:skl */
-       WA_SET_BIT(GEN7_UCGCTL4, GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE);
+       I915_WRITE(GEN7_UCGCTL4, (I915_READ(GEN7_UCGCTL4) |
+                                 GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE));
 
        /* WaInPlaceDecompressionHang:skl */
        if (IS_SKL_REVID(dev_priv, SKL_REVID_H0, REVID_FOREVER))
-               WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
-                          GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
+               I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
+                          (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
+                           GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
 
        /* WaDisableLSQCROPERFforOCL:skl */
        ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4);
@@ -1022,8 +1195,8 @@ static int bxt_init_workarounds(struct intel_engine_cs *engine)
 
        /* WaDisablePooledEuLoadBalancingFix:bxt */
        if (IS_BXT_REVID(dev_priv, BXT_REVID_B0, REVID_FOREVER)) {
-               WA_SET_BIT_MASKED(FF_SLICE_CS_CHICKEN2,
-                                 GEN9_POOLED_EU_LOAD_BALANCING_FIX_DISABLE);
+               I915_WRITE(FF_SLICE_CS_CHICKEN2,
+                          _MASKED_BIT_ENABLE(GEN9_POOLED_EU_LOAD_BALANCING_FIX_DISABLE));
        }
 
        /* WaDisableSbeCacheDispatchPortSharing:bxt */
@@ -1059,8 +1232,9 @@ static int bxt_init_workarounds(struct intel_engine_cs *engine)
 
        /* WaInPlaceDecompressionHang:bxt */
        if (IS_BXT_REVID(dev_priv, BXT_REVID_C0, REVID_FOREVER))
-               WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
-                          GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
+               I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
+                          (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
+                           GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
 
        return 0;
 }
@@ -1070,10 +1244,11 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
        struct drm_i915_private *dev_priv = engine->i915;
        int ret;
 
-       /* WaDisableI2mCycleOnWRPort: cnl (pre-prod) */
+       /* WaDisableI2mCycleOnWRPort:cnl (pre-prod) */
        if (IS_CNL_REVID(dev_priv, CNL_REVID_B0, CNL_REVID_B0))
-               WA_SET_BIT(GAMT_CHKN_BIT_REG,
-                          GAMT_CHKN_DISABLE_I2M_CYCLE_ON_WR_PORT);
+               I915_WRITE(GAMT_CHKN_BIT_REG,
+                          (I915_READ(GAMT_CHKN_BIT_REG) |
+                           GAMT_CHKN_DISABLE_I2M_CYCLE_ON_WR_PORT));
 
        /* WaForceContextSaveRestoreNonCoherent:cnl */
        WA_SET_BIT_MASKED(CNL_HDC_CHICKEN0,
@@ -1093,11 +1268,12 @@ static int cnl_init_workarounds(struct intel_engine_cs *engine)
                                  GEN8_CSC2_SBE_VUE_CACHE_CONSERVATIVE);
 
        /* WaInPlaceDecompressionHang:cnl */
-       WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
-                  GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
+       I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
+                  (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
+                   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
 
        /* WaPushConstantDereferenceHoldDisable:cnl */
-       WA_SET_BIT(GEN7_ROW_CHICKEN2, PUSH_CONSTANT_DEREF_DISABLE);
+       WA_SET_BIT_MASKED(GEN7_ROW_CHICKEN2, PUSH_CONSTANT_DEREF_DISABLE);
 
        /* FtrEnableFastAnisoL1BankingFix: cnl */
        WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3, CNL_FAST_ANISO_L1_BANKING_FIX);
@@ -1125,8 +1301,9 @@ static int kbl_init_workarounds(struct intel_engine_cs *engine)
 
        /* WaDisableDynamicCreditSharing:kbl */
        if (IS_KBL_REVID(dev_priv, 0, KBL_REVID_B0))
-               WA_SET_BIT(GAMT_CHKN_BIT_REG,
-                          GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING);
+               I915_WRITE(GAMT_CHKN_BIT_REG,
+                          (I915_READ(GAMT_CHKN_BIT_REG) |
+                           GAMT_CHKN_DISABLE_DYNAMIC_CREDIT_SHARING));
 
        /* WaDisableFenceDestinationToSLM:kbl (pre-prod) */
        if (IS_KBL_REVID(dev_priv, KBL_REVID_A0, KBL_REVID_A0))
@@ -1139,7 +1316,8 @@ static int kbl_init_workarounds(struct intel_engine_cs *engine)
                                  GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);
 
        /* WaDisableGafsUnitClkGating:kbl */
-       WA_SET_BIT(GEN7_UCGCTL4, GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE);
+       I915_WRITE(GEN7_UCGCTL4, (I915_READ(GEN7_UCGCTL4) |
+                                 GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE));
 
        /* WaDisableSbeCacheDispatchPortSharing:kbl */
        WA_SET_BIT_MASKED(
@@ -1147,8 +1325,9 @@ static int kbl_init_workarounds(struct intel_engine_cs *engine)
                GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
 
        /* WaInPlaceDecompressionHang:kbl */
-       WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
-                  GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
+       I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
+                  (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
+                   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
 
        /* WaDisableLSQCROPERFforOCL:kbl */
        ret = wa_ring_whitelist_reg(engine, GEN8_L3SQCREG4);
@@ -1192,7 +1371,8 @@ static int cfl_init_workarounds(struct intel_engine_cs *engine)
                          GEN8_SBE_DISABLE_REPLAY_BUF_OPTIMIZATION);
 
        /* WaDisableGafsUnitClkGating:cfl */
-       WA_SET_BIT(GEN7_UCGCTL4, GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE);
+       I915_WRITE(GEN7_UCGCTL4, (I915_READ(GEN7_UCGCTL4) |
+                                 GEN8_EU_GAUNIT_CLOCK_GATE_DISABLE));
 
        /* WaDisableSbeCacheDispatchPortSharing:cfl */
        WA_SET_BIT_MASKED(
@@ -1200,8 +1380,9 @@ static int cfl_init_workarounds(struct intel_engine_cs *engine)
                GEN7_SBE_SS_CACHE_DISPATCH_PORT_SHARING_DISABLE);
 
        /* WaInPlaceDecompressionHang:cfl */
-       WA_SET_BIT(GEN9_GAMT_ECO_REG_RW_IA,
-                  GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS);
+       I915_WRITE(GEN9_GAMT_ECO_REG_RW_IA,
+                  (I915_READ(GEN9_GAMT_ECO_REG_RW_IA) |
+                   GAMT_ECO_ENABLE_IN_PLACE_DECOMPRESS));
 
        return 0;
 }
@@ -1324,11 +1505,11 @@ bool intel_engine_is_idle(struct intel_engine_cs *engine)
                return false;
 
        /* Both ports drained, no more ELSP submission? */
-       if (port_request(&engine->execlist_port[0]))
+       if (port_request(&engine->execlists.port[0]))
                return false;
 
        /* ELSP is empty, but there are ready requests? */
-       if (READ_ONCE(engine->execlist_first))
+       if (READ_ONCE(engine->execlists.first))
                return false;
 
        /* Ring stopped? */
@@ -1377,8 +1558,8 @@ void intel_engines_mark_idle(struct drm_i915_private *i915)
        for_each_engine(engine, i915, id) {
                intel_engine_disarm_breadcrumbs(engine);
                i915_gem_batch_pool_fini(&engine->batch_pool);
-               tasklet_kill(&engine->irq_tasklet);
-               engine->no_priolist = false;
+               tasklet_kill(&engine->execlists.irq_tasklet);
+               engine->execlists.no_priolist = false;
        }
 }
 
index 58a772d..8e3a055 100644 (file)
@@ -859,7 +859,7 @@ static bool intel_fbc_can_enable(struct drm_i915_private *dev_priv)
                return false;
        }
 
-       if (!i915.enable_fbc) {
+       if (!i915_modparams.enable_fbc) {
                fbc->no_fbc_reason = "disabled per module param or by default";
                return false;
        }
@@ -1310,8 +1310,8 @@ void intel_fbc_init_pipe_state(struct drm_i915_private *dev_priv)
  */
 static int intel_sanitize_fbc_option(struct drm_i915_private *dev_priv)
 {
-       if (i915.enable_fbc >= 0)
-               return !!i915.enable_fbc;
+       if (i915_modparams.enable_fbc >= 0)
+               return !!i915_modparams.enable_fbc;
 
        if (!HAS_FBC(dev_priv))
                return 0;
@@ -1355,8 +1355,9 @@ void intel_fbc_init(struct drm_i915_private *dev_priv)
        if (need_fbc_vtd_wa(dev_priv))
                mkwrite_device_info(dev_priv)->has_fbc = false;
 
-       i915.enable_fbc = intel_sanitize_fbc_option(dev_priv);
-       DRM_DEBUG_KMS("Sanitized enable_fbc value: %d\n", i915.enable_fbc);
+       i915_modparams.enable_fbc = intel_sanitize_fbc_option(dev_priv);
+       DRM_DEBUG_KMS("Sanitized enable_fbc value: %d\n",
+                     i915_modparams.enable_fbc);
 
        if (!HAS_FBC(dev_priv)) {
                fbc->no_fbc_reason = "unsupported by this chipset";
index 0468960..77c123c 100644 (file)
@@ -88,14 +88,15 @@ static void i9xx_check_fifo_underruns(struct intel_crtc *crtc)
 {
        struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
        i915_reg_t reg = PIPESTAT(crtc->pipe);
-       u32 pipestat = I915_READ(reg) & 0xffff0000;
+       u32 enable_mask;
 
        lockdep_assert_held(&dev_priv->irq_lock);
 
-       if ((pipestat & PIPE_FIFO_UNDERRUN_STATUS) == 0)
+       if ((I915_READ(reg) & PIPE_FIFO_UNDERRUN_STATUS) == 0)
                return;
 
-       I915_WRITE(reg, pipestat | PIPE_FIFO_UNDERRUN_STATUS);
+       enable_mask = i915_pipestat_enable_mask(dev_priv, crtc->pipe);
+       I915_WRITE(reg, enable_mask | PIPE_FIFO_UNDERRUN_STATUS);
        POSTING_READ(reg);
 
        trace_intel_cpu_fifo_underrun(dev_priv, crtc->pipe);
@@ -108,15 +109,16 @@ static void i9xx_set_fifo_underrun_reporting(struct drm_device *dev,
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
        i915_reg_t reg = PIPESTAT(pipe);
-       u32 pipestat = I915_READ(reg) & 0xffff0000;
 
        lockdep_assert_held(&dev_priv->irq_lock);
 
        if (enable) {
-               I915_WRITE(reg, pipestat | PIPE_FIFO_UNDERRUN_STATUS);
+               u32 enable_mask = i915_pipestat_enable_mask(dev_priv, pipe);
+
+               I915_WRITE(reg, enable_mask | PIPE_FIFO_UNDERRUN_STATUS);
                POSTING_READ(reg);
        } else {
-               if (old && pipestat & PIPE_FIFO_UNDERRUN_STATUS)
+               if (old && I915_READ(reg) & PIPE_FIFO_UNDERRUN_STATUS)
                        DRM_ERROR("pipe %c underrun\n", pipe_name(pipe));
        }
 }
index 5fa2860..7eb6b4f 100644 (file)
 #define WQ_LEN_SHIFT                   16
 #define WQ_NO_WCFLUSH_WAIT             (1 << 27)
 #define WQ_PRESENT_WORKLOAD            (1 << 28)
-#define WQ_WORKLOAD_SHIFT              29
-#define   WQ_WORKLOAD_GENERAL          (0 << WQ_WORKLOAD_SHIFT)
-#define   WQ_WORKLOAD_GPGPU            (1 << WQ_WORKLOAD_SHIFT)
-#define   WQ_WORKLOAD_TOUCH            (2 << WQ_WORKLOAD_SHIFT)
 
 #define WQ_RING_TAIL_SHIFT             20
 #define WQ_RING_TAIL_MAX               0x7FF   /* 2^11 QWords */
@@ -388,7 +384,11 @@ struct guc_ct_buffer_desc {
 /* Preempt to idle on quantum expiry */
 #define POLICY_PREEMPT_TO_IDLE         (1<<1)
 
-#define POLICY_MAX_NUM_WI              15
+#define POLICY_MAX_NUM_WI 15
+#define POLICY_DEFAULT_DPC_PROMOTE_TIME_US 500000
+#define POLICY_DEFAULT_EXECUTION_QUANTUM_US 1000000
+#define POLICY_DEFAULT_PREEMPTION_TIME_US 500000
+#define POLICY_DEFAULT_FAULT_TIME_US 250000
 
 struct guc_policy {
        /* Time for one workload to execute. (in micro seconds) */
index 8b0ae7f..c9e25be 100644 (file)
@@ -131,14 +131,14 @@ static void guc_params_init(struct drm_i915_private *dev_priv)
 
        params[GUC_CTL_LOG_PARAMS] = guc->log.flags;
 
-       if (i915.guc_log_level >= 0) {
+       if (i915_modparams.guc_log_level >= 0) {
                params[GUC_CTL_DEBUG] =
-                       i915.guc_log_level << GUC_LOG_VERBOSITY_SHIFT;
+                       i915_modparams.guc_log_level << GUC_LOG_VERBOSITY_SHIFT;
        } else
                params[GUC_CTL_DEBUG] = GUC_LOG_DISABLED;
 
        /* If GuC submission is enabled, set up additional parameters here */
-       if (i915.enable_guc_submission) {
+       if (i915_modparams.enable_guc_submission) {
                u32 ads = guc_ggtt_offset(guc->ads_vma) >> PAGE_SHIFT;
                u32 pgs = guc_ggtt_offset(dev_priv->guc.stage_desc_pool);
                u32 ctx_in_16 = GUC_MAX_STAGE_DESCRIPTORS / 16;
@@ -368,7 +368,8 @@ int intel_guc_init_hw(struct intel_guc *guc)
        guc->fw.load_status = INTEL_UC_FIRMWARE_SUCCESS;
 
        DRM_INFO("GuC %s (firmware %s [version %u.%u])\n",
-                i915.enable_guc_submission ? "submission enabled" : "loaded",
+                i915_modparams.enable_guc_submission ? "submission enabled" :
+                                                       "loaded",
                 guc->fw.path,
                 guc->fw.major_ver_found, guc->fw.minor_ver_found);
 
@@ -390,8 +391,8 @@ int intel_guc_select_fw(struct intel_guc *guc)
        guc->fw.load_status = INTEL_UC_FIRMWARE_NONE;
        guc->fw.type = INTEL_UC_FW_TYPE_GUC;
 
-       if (i915.guc_firmware_path) {
-               guc->fw.path = i915.guc_firmware_path;
+       if (i915_modparams.guc_firmware_path) {
+               guc->fw.path = i915_modparams.guc_firmware_path;
                guc->fw.major_ver_wanted = 0;
                guc->fw.minor_ver_wanted = 0;
        } else if (IS_SKYLAKE(dev_priv)) {
index 16d3b87..6571d96 100644 (file)
@@ -144,7 +144,7 @@ static int guc_log_relay_file_create(struct intel_guc *guc)
        struct dentry *log_dir;
        int ret;
 
-       if (i915.guc_log_level < 0)
+       if (i915_modparams.guc_log_level < 0)
                return 0;
 
        /* For now create the log file in /sys/kernel/debug/dri/0 dir */
@@ -480,7 +480,7 @@ err_runtime:
        guc_log_runtime_destroy(guc);
 err:
        /* logging will remain off */
-       i915.guc_log_level = -1;
+       i915_modparams.guc_log_level = -1;
        return ret;
 }
 
@@ -502,7 +502,8 @@ static void guc_flush_logs(struct intel_guc *guc)
 {
        struct drm_i915_private *dev_priv = guc_to_i915(guc);
 
-       if (!i915.enable_guc_submission || (i915.guc_log_level < 0))
+       if (!i915_modparams.enable_guc_submission ||
+           (i915_modparams.guc_log_level < 0))
                return;
 
        /* First disable the interrupts, will be renabled afterwards */
@@ -529,8 +530,8 @@ int intel_guc_log_create(struct intel_guc *guc)
 
        GEM_BUG_ON(guc->log.vma);
 
-       if (i915.guc_log_level > GUC_LOG_VERBOSITY_MAX)
-               i915.guc_log_level = GUC_LOG_VERBOSITY_MAX;
+       if (i915_modparams.guc_log_level > GUC_LOG_VERBOSITY_MAX)
+               i915_modparams.guc_log_level = GUC_LOG_VERBOSITY_MAX;
 
        /* The first page is to save log buffer state. Allocate one
         * extra page for others in case for overlap */
@@ -555,7 +556,7 @@ int intel_guc_log_create(struct intel_guc *guc)
 
        guc->log.vma = vma;
 
-       if (i915.guc_log_level >= 0) {
+       if (i915_modparams.guc_log_level >= 0) {
                ret = guc_log_runtime_create(guc);
                if (ret < 0)
                        goto err_vma;
@@ -576,7 +577,7 @@ err_vma:
        i915_vma_unpin_and_release(&guc->log.vma);
 err:
        /* logging will be off */
-       i915.guc_log_level = -1;
+       i915_modparams.guc_log_level = -1;
        return ret;
 }
 
@@ -600,7 +601,7 @@ int i915_guc_log_control(struct drm_i915_private *dev_priv, u64 control_val)
                return -EINVAL;
 
        /* This combination doesn't make sense & won't have any effect */
-       if (!log_param.logging_enabled && (i915.guc_log_level < 0))
+       if (!log_param.logging_enabled && (i915_modparams.guc_log_level < 0))
                return 0;
 
        ret = guc_log_control(guc, log_param.value);
@@ -610,7 +611,7 @@ int i915_guc_log_control(struct drm_i915_private *dev_priv, u64 control_val)
        }
 
        if (log_param.logging_enabled) {
-               i915.guc_log_level = log_param.verbosity;
+               i915_modparams.guc_log_level = log_param.verbosity;
 
                /* If log_level was set as -1 at boot time, then the relay channel file
                 * wouldn't have been created by now and interrupts also would not have
@@ -633,7 +634,7 @@ int i915_guc_log_control(struct drm_i915_private *dev_priv, u64 control_val)
                guc_flush_logs(guc);
 
                /* As logging is disabled, update log level to reflect that */
-               i915.guc_log_level = -1;
+               i915_modparams.guc_log_level = -1;
        }
 
        return ret;
@@ -641,7 +642,8 @@ int i915_guc_log_control(struct drm_i915_private *dev_priv, u64 control_val)
 
 void i915_guc_log_register(struct drm_i915_private *dev_priv)
 {
-       if (!i915.enable_guc_submission || i915.guc_log_level < 0)
+       if (!i915_modparams.enable_guc_submission ||
+           (i915_modparams.guc_log_level < 0))
                return;
 
        mutex_lock(&dev_priv->drm.struct_mutex);
@@ -651,7 +653,7 @@ void i915_guc_log_register(struct drm_i915_private *dev_priv)
 
 void i915_guc_log_unregister(struct drm_i915_private *dev_priv)
 {
-       if (!i915.enable_guc_submission)
+       if (!i915_modparams.enable_guc_submission)
                return;
 
        mutex_lock(&dev_priv->drm.struct_mutex);
index c17ed0e..b4a7f31 100644 (file)
@@ -58,7 +58,7 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
  */
 void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
 {
-       if (!i915.enable_gvt)
+       if (!i915_modparams.enable_gvt)
                return;
 
        if (intel_vgpu_active(dev_priv)) {
@@ -73,7 +73,7 @@ void intel_gvt_sanitize_options(struct drm_i915_private *dev_priv)
 
        return;
 bail:
-       i915.enable_gvt = 0;
+       i915_modparams.enable_gvt = 0;
 }
 
 /**
@@ -90,17 +90,17 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
 {
        int ret;
 
-       if (!i915.enable_gvt) {
+       if (!i915_modparams.enable_gvt) {
                DRM_DEBUG_DRIVER("GVT-g is disabled by kernel params\n");
                return 0;
        }
 
-       if (!i915.enable_execlists) {
+       if (!i915_modparams.enable_execlists) {
                DRM_ERROR("i915 GVT-g loading failed due to disabled execlists mode\n");
                return -EIO;
        }
 
-       if (i915.enable_guc_submission) {
+       if (i915_modparams.enable_guc_submission) {
                DRM_ERROR("i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission\n");
                return -EIO;
        }
@@ -123,7 +123,7 @@ int intel_gvt_init(struct drm_i915_private *dev_priv)
        return 0;
 
 bail:
-       i915.enable_gvt = 0;
+       i915_modparams.enable_gvt = 0;
        return 0;
 }
 
index d9d87d9..12ac270 100644 (file)
@@ -428,7 +428,7 @@ static void i915_hangcheck_elapsed(struct work_struct *work)
        unsigned int hung = 0, stuck = 0;
        int busy_count = 0;
 
-       if (!i915.enable_hangcheck)
+       if (!i915_modparams.enable_hangcheck)
                return;
 
        if (!READ_ONCE(dev_priv->gt.awake))
index 6145fa0..8b4b535 100644 (file)
@@ -155,8 +155,8 @@ void intel_huc_select_fw(struct intel_huc *huc)
        huc->fw.load_status = INTEL_UC_FIRMWARE_NONE;
        huc->fw.type = INTEL_UC_FW_TYPE_HUC;
 
-       if (i915.huc_firmware_path) {
-               huc->fw.path = i915.huc_firmware_path;
+       if (i915_modparams.huc_firmware_path) {
+               huc->fw.path = i915_modparams.huc_firmware_path;
                huc->fw.major_ver_wanted = 0;
                huc->fw.minor_ver_wanted = 0;
        } else if (IS_SKYLAKE(dev_priv)) {
@@ -225,19 +225,22 @@ void intel_huc_init_hw(struct intel_huc *huc)
 }
 
 /**
- * intel_guc_auth_huc() - authenticate ucode
- * @dev_priv: the drm_i915_device
+ * intel_huc_auth() - Authenticate HuC uCode
+ * @huc: intel_huc structure
+ *
+ * Called after HuC and GuC firmware loading during intel_uc_init_hw().
  *
- * Triggers a HuC fw authentication request to the GuC via intel_guc_action_
- * authenticate_huc interface.
+ * This function pins HuC firmware image object into GGTT.
+ * Then it invokes GuC action to authenticate passing the offset to RSA
+ * signature through intel_guc_auth_huc(). It then waits for 50ms for
+ * firmware verification ACK and unpins the object.
  */
-void intel_guc_auth_huc(struct drm_i915_private *dev_priv)
+void intel_huc_auth(struct intel_huc *huc)
 {
-       struct intel_guc *guc = &dev_priv->guc;
-       struct intel_huc *huc = &dev_priv->huc;
+       struct drm_i915_private *i915 = huc_to_i915(huc);
+       struct intel_guc *guc = &i915->guc;
        struct i915_vma *vma;
        int ret;
-       u32 data[2];
 
        if (huc->fw.load_status != INTEL_UC_FIRMWARE_SUCCESS)
                return;
@@ -250,23 +253,19 @@ void intel_guc_auth_huc(struct drm_i915_private *dev_priv)
                return;
        }
 
-       /* Specify auth action and where public signature is. */
-       data[0] = INTEL_GUC_ACTION_AUTHENTICATE_HUC;
-       data[1] = guc_ggtt_offset(vma) + huc->fw.rsa_offset;
-
-       ret = intel_guc_send(guc, data, ARRAY_SIZE(data));
+       ret = intel_guc_auth_huc(guc,
+                                guc_ggtt_offset(vma) + huc->fw.rsa_offset);
        if (ret) {
                DRM_ERROR("HuC: GuC did not ack Auth request %d\n", ret);
                goto out;
        }
 
        /* Check authentication status, it should be done by now */
-       ret = intel_wait_for_register(dev_priv,
-                               HUC_STATUS2,
-                               HUC_FW_VERIFIED,
-                               HUC_FW_VERIFIED,
-                               50);
-
+       ret = intel_wait_for_register(i915,
+                                     HUC_STATUS2,
+                                     HUC_FW_VERIFIED,
+                                     HUC_FW_VERIFIED,
+                                     50);
        if (ret) {
                DRM_ERROR("HuC: Authentication failed %d\n", ret);
                goto out;
@@ -275,4 +274,3 @@ void intel_guc_auth_huc(struct drm_i915_private *dev_priv)
 out:
        i915_vma_unpin(vma);
 }
-
index d89e1b8..61cac26 100644 (file)
@@ -244,7 +244,7 @@ int intel_sanitize_enable_execlists(struct drm_i915_private *dev_priv, int enabl
 
        if (HAS_LOGICAL_RING_CONTEXTS(dev_priv) &&
            USES_PPGTT(dev_priv) &&
-           i915.use_mmio_flip >= 0)
+           i915_modparams.use_mmio_flip >= 0)
                return 1;
 
        return 0;
@@ -279,17 +279,73 @@ intel_lr_context_descriptor_update(struct i915_gem_context *ctx,
        BUILD_BUG_ON(MAX_CONTEXT_HW_ID > (1<<GEN8_CTX_ID_WIDTH));
 
        desc = ctx->desc_template;                              /* bits  0-11 */
-       desc |= i915_ggtt_offset(ce->state) + LRC_PPHWSP_PN * PAGE_SIZE;
+       desc |= i915_ggtt_offset(ce->state) + LRC_HEADER_PAGES * PAGE_SIZE;
                                                                /* bits 12-31 */
        desc |= (u64)ctx->hw_id << GEN8_CTX_ID_SHIFT;           /* bits 32-52 */
 
        ce->lrc_desc = desc;
 }
 
-uint64_t intel_lr_context_descriptor(struct i915_gem_context *ctx,
-                                    struct intel_engine_cs *engine)
+static struct i915_priolist *
+lookup_priolist(struct intel_engine_cs *engine,
+               struct i915_priotree *pt,
+               int prio)
 {
-       return ctx->engine[engine->id].lrc_desc;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct i915_priolist *p;
+       struct rb_node **parent, *rb;
+       bool first = true;
+
+       if (unlikely(execlists->no_priolist))
+               prio = I915_PRIORITY_NORMAL;
+
+find_priolist:
+       /* most positive priority is scheduled first, equal priorities fifo */
+       rb = NULL;
+       parent = &execlists->queue.rb_node;
+       while (*parent) {
+               rb = *parent;
+               p = rb_entry(rb, typeof(*p), node);
+               if (prio > p->priority) {
+                       parent = &rb->rb_left;
+               } else if (prio < p->priority) {
+                       parent = &rb->rb_right;
+                       first = false;
+               } else {
+                       return p;
+               }
+       }
+
+       if (prio == I915_PRIORITY_NORMAL) {
+               p = &execlists->default_priolist;
+       } else {
+               p = kmem_cache_alloc(engine->i915->priorities, GFP_ATOMIC);
+               /* Convert an allocation failure to a priority bump */
+               if (unlikely(!p)) {
+                       prio = I915_PRIORITY_NORMAL; /* recurses just once */
+
+                       /* To maintain ordering with all rendering, after an
+                        * allocation failure we have to disable all scheduling.
+                        * Requests will then be executed in fifo, and schedule
+                        * will ensure that dependencies are emitted in fifo.
+                        * There will be still some reordering with existing
+                        * requests, so if userspace lied about their
+                        * dependencies that reordering may be visible.
+                        */
+                       execlists->no_priolist = true;
+                       goto find_priolist;
+               }
+       }
+
+       p->priority = prio;
+       INIT_LIST_HEAD(&p->requests);
+       rb_link_node(&p->node, rb, parent);
+       rb_insert_color(&p->node, &execlists->queue);
+
+       if (first)
+               execlists->first = &p->node;
+
+       return ptr_pack_bits(p, first, 1);
 }
 
 static inline void
@@ -338,12 +394,12 @@ static u64 execlists_update_context(struct drm_i915_gem_request *rq)
 
 static void execlists_submit_ports(struct intel_engine_cs *engine)
 {
-       struct execlist_port *port = engine->execlist_port;
+       struct execlist_port *port = engine->execlists.port;
        u32 __iomem *elsp =
                engine->i915->regs + i915_mmio_reg_offset(RING_ELSP(engine));
        unsigned int n;
 
-       for (n = ARRAY_SIZE(engine->execlist_port); n--; ) {
+       for (n = execlists_num_ports(&engine->execlists); n--; ) {
                struct drm_i915_gem_request *rq;
                unsigned int count;
                u64 desc;
@@ -398,7 +454,10 @@ static void port_assign(struct execlist_port *port,
 static void execlists_dequeue(struct intel_engine_cs *engine)
 {
        struct drm_i915_gem_request *last;
-       struct execlist_port *port = engine->execlist_port;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct execlist_port *port = execlists->port;
+       const struct execlist_port * const last_port =
+               &execlists->port[execlists->port_mask];
        struct rb_node *rb;
        bool submit = false;
 
@@ -412,8 +471,6 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
                 */
                last->tail = last->wa_tail;
 
-       GEM_BUG_ON(port_isset(&port[1]));
-
        /* Hardware submission is through 2 ports. Conceptually each port
         * has a (RING_START, RING_HEAD, RING_TAIL) tuple. RING_START is
         * static for a context, and unique to each, so we only execute
@@ -436,8 +493,8 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
         */
 
        spin_lock_irq(&engine->timeline->lock);
-       rb = engine->execlist_first;
-       GEM_BUG_ON(rb_first(&engine->execlist_queue) != rb);
+       rb = execlists->first;
+       GEM_BUG_ON(rb_first(&execlists->queue) != rb);
        while (rb) {
                struct i915_priolist *p = rb_entry(rb, typeof(*p), node);
                struct drm_i915_gem_request *rq, *rn;
@@ -460,7 +517,7 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
                                 * combine this request with the last, then we
                                 * are done.
                                 */
-                               if (port != engine->execlist_port) {
+                               if (port == last_port) {
                                        __list_del_many(&p->requests,
                                                        &rq->priotree.link);
                                        goto done;
@@ -485,25 +542,27 @@ static void execlists_dequeue(struct intel_engine_cs *engine)
                                if (submit)
                                        port_assign(port, last);
                                port++;
+
+                               GEM_BUG_ON(port_isset(port));
                        }
 
                        INIT_LIST_HEAD(&rq->priotree.link);
                        rq->priotree.priority = INT_MAX;
 
                        __i915_gem_request_submit(rq);
-                       trace_i915_gem_request_in(rq, port_index(port, engine));
+                       trace_i915_gem_request_in(rq, port_index(port, execlists));
                        last = rq;
                        submit = true;
                }
 
                rb = rb_next(rb);
-               rb_erase(&p->node, &engine->execlist_queue);
+               rb_erase(&p->node, &execlists->queue);
                INIT_LIST_HEAD(&p->requests);
                if (p->priority != I915_PRIORITY_NORMAL)
                        kmem_cache_free(engine->i915->priorities, p);
        }
 done:
-       engine->execlist_first = rb;
+       execlists->first = rb;
        if (submit)
                port_assign(port, last);
        spin_unlock_irq(&engine->timeline->lock);
@@ -512,9 +571,83 @@ done:
                execlists_submit_ports(engine);
 }
 
+static void
+execlist_cancel_port_requests(struct intel_engine_execlists *execlists)
+{
+       struct execlist_port *port = execlists->port;
+       unsigned int num_ports = ARRAY_SIZE(execlists->port);
+
+       while (num_ports-- && port_isset(port)) {
+               struct drm_i915_gem_request *rq = port_request(port);
+
+               execlists_context_status_change(rq, INTEL_CONTEXT_SCHEDULE_OUT);
+               i915_gem_request_put(rq);
+
+               memset(port, 0, sizeof(*port));
+               port++;
+       }
+}
+
+static void execlists_cancel_requests(struct intel_engine_cs *engine)
+{
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct drm_i915_gem_request *rq, *rn;
+       struct rb_node *rb;
+       unsigned long flags;
+
+       spin_lock_irqsave(&engine->timeline->lock, flags);
+
+       /* Cancel the requests on the HW and clear the ELSP tracker. */
+       execlist_cancel_port_requests(execlists);
+
+       /* Mark all executing requests as skipped. */
+       list_for_each_entry(rq, &engine->timeline->requests, link) {
+               GEM_BUG_ON(!rq->global_seqno);
+               if (!i915_gem_request_completed(rq))
+                       dma_fence_set_error(&rq->fence, -EIO);
+       }
+
+       /* Flush the queued requests to the timeline list (for retiring). */
+       rb = execlists->first;
+       while (rb) {
+               struct i915_priolist *p = rb_entry(rb, typeof(*p), node);
+
+               list_for_each_entry_safe(rq, rn, &p->requests, priotree.link) {
+                       INIT_LIST_HEAD(&rq->priotree.link);
+                       rq->priotree.priority = INT_MAX;
+
+                       dma_fence_set_error(&rq->fence, -EIO);
+                       __i915_gem_request_submit(rq);
+               }
+
+               rb = rb_next(rb);
+               rb_erase(&p->node, &execlists->queue);
+               INIT_LIST_HEAD(&p->requests);
+               if (p->priority != I915_PRIORITY_NORMAL)
+                       kmem_cache_free(engine->i915->priorities, p);
+       }
+
+       /* Remaining _unready_ requests will be nop'ed when submitted */
+
+
+       execlists->queue = RB_ROOT;
+       execlists->first = NULL;
+       GEM_BUG_ON(port_isset(execlists->port));
+
+       /*
+        * The port is checked prior to scheduling a tasklet, but
+        * just in case we have suspended the tasklet to do the
+        * wedging make sure that when it wakes, it decides there
+        * is no work to do by clearing the irq_posted bit.
+        */
+       clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
+
+       spin_unlock_irqrestore(&engine->timeline->lock, flags);
+}
+
 static bool execlists_elsp_ready(const struct intel_engine_cs *engine)
 {
-       const struct execlist_port *port = engine->execlist_port;
+       const struct execlist_port *port = engine->execlists.port;
 
        return port_count(&port[0]) + port_count(&port[1]) < 2;
 }
@@ -525,8 +658,9 @@ static bool execlists_elsp_ready(const struct intel_engine_cs *engine)
  */
 static void intel_lrc_irq_handler(unsigned long data)
 {
-       struct intel_engine_cs *engine = (struct intel_engine_cs *)data;
-       struct execlist_port *port = engine->execlist_port;
+       struct intel_engine_cs * const engine = (struct intel_engine_cs *)data;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct execlist_port *port = execlists->port;
        struct drm_i915_private *dev_priv = engine->i915;
 
        /* We can skip acquiring intel_runtime_pm_get() here as it was taken
@@ -538,19 +672,25 @@ static void intel_lrc_irq_handler(unsigned long data)
         */
        GEM_BUG_ON(!dev_priv->gt.awake);
 
-       intel_uncore_forcewake_get(dev_priv, engine->fw_domains);
+       intel_uncore_forcewake_get(dev_priv, execlists->fw_domains);
 
        /* Prefer doing test_and_clear_bit() as a two stage operation to avoid
         * imposing the cost of a locked atomic transaction when submitting a
         * new request (outside of the context-switch interrupt).
         */
        while (test_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted)) {
-               u32 __iomem *csb_mmio =
-                       dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine));
-               u32 __iomem *buf =
-                       dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_BUF_LO(engine, 0));
+               /* The HWSP contains a (cacheable) mirror of the CSB */
+               const u32 *buf =
+                       &engine->status_page.page_addr[I915_HWS_CSB_BUF0_INDEX];
                unsigned int head, tail;
 
+               /* However GVT emulation depends upon intercepting CSB mmio */
+               if (unlikely(execlists->csb_use_mmio)) {
+                       buf = (u32 * __force)
+                               (dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_BUF_LO(engine, 0)));
+                       execlists->csb_head = -1; /* force mmio read of CSB ptrs */
+               }
+
                /* The write will be ordered by the uncached read (itself
                 * a memory barrier), so we do not need another in the form
                 * of a locked instruction. The race between the interrupt
@@ -562,9 +702,20 @@ static void intel_lrc_irq_handler(unsigned long data)
                 * is set and we do a new loop.
                 */
                __clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
-               head = readl(csb_mmio);
-               tail = GEN8_CSB_WRITE_PTR(head);
-               head = GEN8_CSB_READ_PTR(head);
+               if (unlikely(execlists->csb_head == -1)) { /* following a reset */
+                       head = readl(dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine)));
+                       tail = GEN8_CSB_WRITE_PTR(head);
+                       head = GEN8_CSB_READ_PTR(head);
+                       execlists->csb_head = head;
+               } else {
+                       const int write_idx =
+                               intel_hws_csb_write_index(dev_priv) -
+                               I915_HWS_CSB_BUF0_INDEX;
+
+                       head = execlists->csb_head;
+                       tail = READ_ONCE(buf[write_idx]);
+               }
+
                while (head != tail) {
                        struct drm_i915_gem_request *rq;
                        unsigned int status;
@@ -590,13 +741,12 @@ static void intel_lrc_irq_handler(unsigned long data)
                         * status notifier.
                         */
 
-                       status = readl(buf + 2 * head);
+                       status = READ_ONCE(buf[2 * head]); /* maybe mmio! */
                        if (!(status & GEN8_CTX_STATUS_COMPLETED_MASK))
                                continue;
 
                        /* Check the context/desc id for this event matches */
-                       GEM_DEBUG_BUG_ON(readl(buf + 2 * head + 1) !=
-                                        port->context_id);
+                       GEM_DEBUG_BUG_ON(buf[2 * head + 1] != port->context_id);
 
                        rq = port_unpack(port, &count);
                        GEM_BUG_ON(count == 0);
@@ -608,8 +758,7 @@ static void intel_lrc_irq_handler(unsigned long data)
                                trace_i915_gem_request_out(rq);
                                i915_gem_request_put(rq);
 
-                               port[0] = port[1];
-                               memset(&port[1], 0, sizeof(port[1]));
+                               execlists_port_complete(execlists, port);
                        } else {
                                port_set(port, port_pack(rq, count));
                        }
@@ -619,78 +768,28 @@ static void intel_lrc_irq_handler(unsigned long data)
                                   !(status & GEN8_CTX_STATUS_ACTIVE_IDLE));
                }
 
-               writel(_MASKED_FIELD(GEN8_CSB_READ_PTR_MASK, head << 8),
-                      csb_mmio);
+               if (head != execlists->csb_head) {
+                       execlists->csb_head = head;
+                       writel(_MASKED_FIELD(GEN8_CSB_READ_PTR_MASK, head << 8),
+                              dev_priv->regs + i915_mmio_reg_offset(RING_CONTEXT_STATUS_PTR(engine)));
+               }
        }
 
        if (execlists_elsp_ready(engine))
                execlists_dequeue(engine);
 
-       intel_uncore_forcewake_put(dev_priv, engine->fw_domains);
+       intel_uncore_forcewake_put(dev_priv, execlists->fw_domains);
 }
 
-static bool
-insert_request(struct intel_engine_cs *engine,
-              struct i915_priotree *pt,
-              int prio)
+static void insert_request(struct intel_engine_cs *engine,
+                          struct i915_priotree *pt,
+                          int prio)
 {
-       struct i915_priolist *p;
-       struct rb_node **parent, *rb;
-       bool first = true;
+       struct i915_priolist *p = lookup_priolist(engine, pt, prio);
 
-       if (unlikely(engine->no_priolist))
-               prio = I915_PRIORITY_NORMAL;
-
-find_priolist:
-       /* most positive priority is scheduled first, equal priorities fifo */
-       rb = NULL;
-       parent = &engine->execlist_queue.rb_node;
-       while (*parent) {
-               rb = *parent;
-               p = rb_entry(rb, typeof(*p), node);
-               if (prio > p->priority) {
-                       parent = &rb->rb_left;
-               } else if (prio < p->priority) {
-                       parent = &rb->rb_right;
-                       first = false;
-               } else {
-                       list_add_tail(&pt->link, &p->requests);
-                       return false;
-               }
-       }
-
-       if (prio == I915_PRIORITY_NORMAL) {
-               p = &engine->default_priolist;
-       } else {
-               p = kmem_cache_alloc(engine->i915->priorities, GFP_ATOMIC);
-               /* Convert an allocation failure to a priority bump */
-               if (unlikely(!p)) {
-                       prio = I915_PRIORITY_NORMAL; /* recurses just once */
-
-                       /* To maintain ordering with all rendering, after an
-                        * allocation failure we have to disable all scheduling.
-                        * Requests will then be executed in fifo, and schedule
-                        * will ensure that dependencies are emitted in fifo.
-                        * There will be still some reordering with existing
-                        * requests, so if userspace lied about their
-                        * dependencies that reordering may be visible.
-                        */
-                       engine->no_priolist = true;
-                       goto find_priolist;
-               }
-       }
-
-       p->priority = prio;
-       rb_link_node(&p->node, rb, parent);
-       rb_insert_color(&p->node, &engine->execlist_queue);
-
-       INIT_LIST_HEAD(&p->requests);
-       list_add_tail(&pt->link, &p->requests);
-
-       if (first)
-               engine->execlist_first = &p->node;
-
-       return first;
+       list_add_tail(&pt->link, &ptr_mask_bits(p, 1)->requests);
+       if (ptr_unmask_bits(p, 1) && execlists_elsp_ready(engine))
+               tasklet_hi_schedule(&engine->execlists.irq_tasklet);
 }
 
 static void execlists_submit_request(struct drm_i915_gem_request *request)
@@ -701,14 +800,9 @@ static void execlists_submit_request(struct drm_i915_gem_request *request)
        /* Will be called from irq-context when using foreign fences. */
        spin_lock_irqsave(&engine->timeline->lock, flags);
 
-       if (insert_request(engine,
-                          &request->priotree,
-                          request->priotree.priority)) {
-               if (execlists_elsp_ready(engine))
-                       tasklet_hi_schedule(&engine->irq_tasklet);
-       }
+       insert_request(engine, &request->priotree, request->priotree.priority);
 
-       GEM_BUG_ON(!engine->execlist_first);
+       GEM_BUG_ON(!engine->execlists.first);
        GEM_BUG_ON(list_empty(&request->priotree.link));
 
        spin_unlock_irqrestore(&engine->timeline->lock, flags);
@@ -914,27 +1008,14 @@ static int execlists_request_alloc(struct drm_i915_gem_request *request)
         */
        request->reserved_space += EXECLISTS_REQUEST_SIZE;
 
-       if (i915.enable_guc_submission) {
-               /*
-                * Check that the GuC has space for the request before
-                * going any further, as the i915_add_request() call
-                * later on mustn't fail ...
-                */
-               ret = i915_guc_wq_reserve(request);
-               if (ret)
-                       goto err;
-       }
-
        cs = intel_ring_begin(request, 0);
-       if (IS_ERR(cs)) {
-               ret = PTR_ERR(cs);
-               goto err_unreserve;
-       }
+       if (IS_ERR(cs))
+               return PTR_ERR(cs);
 
        if (!ce->initialised) {
                ret = engine->init_context(request);
                if (ret)
-                       goto err_unreserve;
+                       return ret;
 
                ce->initialised = true;
        }
@@ -948,12 +1029,6 @@ static int execlists_request_alloc(struct drm_i915_gem_request *request)
 
        request->reserved_space -= EXECLISTS_REQUEST_SIZE;
        return 0;
-
-err_unreserve:
-       if (i915.enable_guc_submission)
-               i915_guc_wq_unreserve(request);
-err:
-       return ret;
 }
 
 /*
@@ -1116,13 +1191,6 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
        return batch;
 }
 
-static u32 *gen9_init_perctx_bb(struct intel_engine_cs *engine, u32 *batch)
-{
-       *batch++ = MI_BATCH_BUFFER_END;
-
-       return batch;
-}
-
 #define CTX_WA_BB_OBJ_SIZE (PAGE_SIZE)
 
 static int lrc_setup_wa_ctx(struct intel_engine_cs *engine)
@@ -1179,7 +1247,7 @@ static int intel_init_workaround_bb(struct intel_engine_cs *engine)
                return 0;
        case 9:
                wa_bb_fn[0] = gen9_init_indirectctx_bb;
-               wa_bb_fn[1] = gen9_init_perctx_bb;
+               wa_bb_fn[1] = NULL;
                break;
        case 8:
                wa_bb_fn[0] = gen8_init_indirectctx_bb;
@@ -1210,7 +1278,8 @@ static int intel_init_workaround_bb(struct intel_engine_cs *engine)
                        ret = -EINVAL;
                        break;
                }
-               batch_ptr = wa_bb_fn[i](engine, batch_ptr);
+               if (wa_bb_fn[i])
+                       batch_ptr = wa_bb_fn[i](engine, batch_ptr);
                wa_bb[i]->size = batch_ptr - (batch + wa_bb[i]->offset);
        }
 
@@ -1234,9 +1303,7 @@ static u8 gtiir[] = {
 static int gen8_init_common_ring(struct intel_engine_cs *engine)
 {
        struct drm_i915_private *dev_priv = engine->i915;
-       struct execlist_port *port = engine->execlist_port;
-       unsigned int n;
-       bool submit;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
        int ret;
 
        ret = intel_mocs_init_engine(engine);
@@ -1269,24 +1336,11 @@ static int gen8_init_common_ring(struct intel_engine_cs *engine)
        I915_WRITE(GEN8_GT_IIR(gtiir[engine->id]),
                   GT_CONTEXT_SWITCH_INTERRUPT << engine->irq_shift);
        clear_bit(ENGINE_IRQ_EXECLIST, &engine->irq_posted);
+       execlists->csb_head = -1;
 
        /* After a GPU reset, we may have requests to replay */
-       submit = false;
-       for (n = 0; n < ARRAY_SIZE(engine->execlist_port); n++) {
-               if (!port_isset(&port[n]))
-                       break;
-
-               DRM_DEBUG_DRIVER("Restarting %s:%d from 0x%x\n",
-                                engine->name, n,
-                                port_request(&port[n])->global_seqno);
-
-               /* Discard the current inflight count */
-               port_set(&port[n], port_request(&port[n]));
-               submit = true;
-       }
-
-       if (submit && !i915.enable_guc_submission)
-               execlists_submit_ports(engine);
+       if (!i915_modparams.enable_guc_submission && execlists->first)
+               tasklet_schedule(&execlists->irq_tasklet);
 
        return 0;
 }
@@ -1327,9 +1381,12 @@ static int gen9_init_render_ring(struct intel_engine_cs *engine)
 static void reset_common_ring(struct intel_engine_cs *engine,
                              struct drm_i915_gem_request *request)
 {
-       struct execlist_port *port = engine->execlist_port;
+       struct intel_engine_execlists * const execlists = &engine->execlists;
+       struct drm_i915_gem_request *rq, *rn;
        struct intel_context *ce;
-       unsigned int n;
+       unsigned long flags;
+
+       spin_lock_irqsave(&engine->timeline->lock, flags);
 
        /*
         * Catch up with any missed context-switch interrupts.
@@ -1340,20 +1397,26 @@ static void reset_common_ring(struct intel_engine_cs *engine,
         * guessing the missed context-switch events by looking at what
         * requests were completed.
         */
-       if (!request) {
-               for (n = 0; n < ARRAY_SIZE(engine->execlist_port); n++)
-                       i915_gem_request_put(port_request(&port[n]));
-               memset(engine->execlist_port, 0, sizeof(engine->execlist_port));
-               return;
-       }
+       execlist_cancel_port_requests(execlists);
 
-       if (request->ctx != port_request(port)->ctx) {
-               i915_gem_request_put(port_request(port));
-               port[0] = port[1];
-               memset(&port[1], 0, sizeof(port[1]));
+       /* Push back any incomplete requests for replay after the reset. */
+       list_for_each_entry_safe_reverse(rq, rn,
+                                        &engine->timeline->requests, link) {
+               struct i915_priolist *p;
+
+               if (i915_gem_request_completed(rq))
+                       break;
+
+               __i915_gem_request_unsubmit(rq);
+
+               p = lookup_priolist(engine,
+                                   &rq->priotree,
+                                   rq->priotree.priority);
+               list_add(&rq->priotree.link,
+                        &ptr_mask_bits(p, 1)->requests);
        }
 
-       GEM_BUG_ON(request->ctx != port_request(port)->ctx);
+       spin_unlock_irqrestore(&engine->timeline->lock, flags);
 
        /* If the request was innocent, we leave the request in the ELSP
         * and will try to replay it on restarting. The context image may
@@ -1365,7 +1428,7 @@ static void reset_common_ring(struct intel_engine_cs *engine,
         * and have to at least restore the RING register in the context
         * image back to the expected values to skip over the guilty request.
         */
-       if (request->fence.error != -EIO)
+       if (!request || request->fence.error != -EIO)
                return;
 
        /* We want a simple context + ring to execute the breadcrumb update.
@@ -1668,8 +1731,8 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *engine)
         * Tasklet cannot be active at this point due intel_mark_active/idle
         * so this is just for documentation.
         */
-       if (WARN_ON(test_bit(TASKLET_STATE_SCHED, &engine->irq_tasklet.state)))
-               tasklet_kill(&engine->irq_tasklet);
+       if (WARN_ON(test_bit(TASKLET_STATE_SCHED, &engine->execlists.irq_tasklet.state)))
+               tasklet_kill(&engine->execlists.irq_tasklet);
 
        dev_priv = engine->i915;
 
@@ -1680,11 +1743,6 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *engine)
        if (engine->cleanup)
                engine->cleanup(engine);
 
-       if (engine->status_page.vma) {
-               i915_gem_object_unpin_map(engine->status_page.vma->obj);
-               engine->status_page.vma = NULL;
-       }
-
        intel_engine_cleanup_common(engine);
 
        lrc_destroy_wa_ctx(engine);
@@ -1696,8 +1754,9 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *engine)
 static void execlists_set_default_submission(struct intel_engine_cs *engine)
 {
        engine->submit_request = execlists_submit_request;
+       engine->cancel_requests = execlists_cancel_requests;
        engine->schedule = execlists_schedule;
-       engine->irq_tasklet.func = intel_lrc_irq_handler;
+       engine->execlists.irq_tasklet.func = intel_lrc_irq_handler;
 }
 
 static void
@@ -1731,24 +1790,6 @@ logical_ring_default_irqs(struct intel_engine_cs *engine)
        engine->irq_keep_mask = GT_CONTEXT_SWITCH_INTERRUPT << shift;
 }
 
-static int
-lrc_setup_hws(struct intel_engine_cs *engine, struct i915_vma *vma)
-{
-       const int hws_offset = LRC_PPHWSP_PN * PAGE_SIZE;
-       void *hws;
-
-       /* The HWSP is part of the default context object in LRC mode. */
-       hws = i915_gem_object_pin_map(vma->obj, I915_MAP_WB);
-       if (IS_ERR(hws))
-               return PTR_ERR(hws);
-
-       engine->status_page.page_addr = hws + hws_offset;
-       engine->status_page.ggtt_offset = i915_ggtt_offset(vma) + hws_offset;
-       engine->status_page.vma = vma;
-
-       return 0;
-}
-
 static void
 logical_ring_setup(struct intel_engine_cs *engine)
 {
@@ -1772,32 +1813,23 @@ logical_ring_setup(struct intel_engine_cs *engine)
                                                     RING_CONTEXT_STATUS_BUF_BASE(engine),
                                                     FW_REG_READ);
 
-       engine->fw_domains = fw_domains;
+       engine->execlists.fw_domains = fw_domains;
 
-       tasklet_init(&engine->irq_tasklet,
+       tasklet_init(&engine->execlists.irq_tasklet,
                     intel_lrc_irq_handler, (unsigned long)engine);
 
        logical_ring_default_vfuncs(engine);
        logical_ring_default_irqs(engine);
 }
 
-static int
-logical_ring_init(struct intel_engine_cs *engine)
+static int logical_ring_init(struct intel_engine_cs *engine)
 {
-       struct i915_gem_context *dctx = engine->i915->kernel_context;
        int ret;
 
        ret = intel_engine_init_common(engine);
        if (ret)
                goto error;
 
-       /* And setup the hardware status page. */
-       ret = lrc_setup_hws(engine, dctx->engine[engine->id].state);
-       if (ret) {
-               DRM_ERROR("Failed to set up hws %s: %d\n", engine->name, ret);
-               goto error;
-       }
-
        return 0;
 
 error:
@@ -1955,13 +1987,12 @@ static void execlists_init_reg_state(u32 *regs,
        CTX_REG(regs, CTX_SECOND_BB_HEAD_L, RING_SBBADDR(base), 0);
        CTX_REG(regs, CTX_SECOND_BB_STATE, RING_SBBSTATE(base), 0);
        if (rcs) {
-               CTX_REG(regs, CTX_BB_PER_CTX_PTR, RING_BB_PER_CTX_PTR(base), 0);
+               struct i915_ctx_workarounds *wa_ctx = &engine->wa_ctx;
+
                CTX_REG(regs, CTX_RCS_INDIRECT_CTX, RING_INDIRECT_CTX(base), 0);
                CTX_REG(regs, CTX_RCS_INDIRECT_CTX_OFFSET,
                        RING_INDIRECT_CTX_OFFSET(base), 0);
-
-               if (engine->wa_ctx.vma) {
-                       struct i915_ctx_workarounds *wa_ctx = &engine->wa_ctx;
+               if (wa_ctx->indirect_ctx.size) {
                        u32 ggtt_offset = i915_ggtt_offset(wa_ctx->vma);
 
                        regs[CTX_RCS_INDIRECT_CTX + 1] =
@@ -1970,6 +2001,11 @@ static void execlists_init_reg_state(u32 *regs,
 
                        regs[CTX_RCS_INDIRECT_CTX_OFFSET + 1] =
                                intel_lr_indirect_ctx_offset(engine) << 6;
+               }
+
+               CTX_REG(regs, CTX_BB_PER_CTX_PTR, RING_BB_PER_CTX_PTR(base), 0);
+               if (wa_ctx->per_ctx.size) {
+                       u32 ggtt_offset = i915_ggtt_offset(wa_ctx->vma);
 
                        regs[CTX_BB_PER_CTX_PTR + 1] =
                                (ggtt_offset + wa_ctx->per_ctx.offset) | 0x01;
@@ -2054,8 +2090,11 @@ static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
 
        context_size = round_up(engine->context_size, I915_GTT_PAGE_SIZE);
 
-       /* One extra page as the sharing data between driver and GuC */
-       context_size += PAGE_SIZE * LRC_PPHWSP_PN;
+       /*
+        * Before the actual start of the context image, we insert a few pages
+        * for our own use and for sharing with the GuC.
+        */
+       context_size += LRC_HEADER_PAGES * PAGE_SIZE;
 
        ctx_obj = i915_gem_object_create(ctx->i915, context_size);
        if (IS_ERR(ctx_obj)) {
index 57ef583..314adee 100644 (file)
@@ -25,6 +25,7 @@
 #define _INTEL_LRC_H_
 
 #include "intel_ringbuffer.h"
+#include "i915_gem_context.h"
 
 #define GEN8_LR_CONTEXT_ALIGN I915_GTT_MIN_ALIGNMENT
 
@@ -69,17 +70,42 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine);
 
 /* Logical Ring Contexts */
 
-/* One extra page is added before LRC for GuC as shared data */
+/*
+ * We allocate a header at the start of the context image for our own
+ * use, therefore the actual location of the logical state is offset
+ * from the start of the VMA. The layout is
+ *
+ * | [guc]          | [hwsp] [logical state] |
+ * |<- our header ->|<- context image      ->|
+ *
+ */
+/* The first page is used for sharing data with the GuC */
 #define LRC_GUCSHR_PN  (0)
-#define LRC_PPHWSP_PN  (LRC_GUCSHR_PN + 1)
-#define LRC_STATE_PN   (LRC_PPHWSP_PN + 1)
+#define LRC_GUCSHR_SZ  (1)
+/* At the start of the context image is its per-process HWS page */
+#define LRC_PPHWSP_PN  (LRC_GUCSHR_PN + LRC_GUCSHR_SZ)
+#define LRC_PPHWSP_SZ  (1)
+/* Finally we have the logical state for the context */
+#define LRC_STATE_PN   (LRC_PPHWSP_PN + LRC_PPHWSP_SZ)
+
+/*
+ * Currently we include the PPHWSP in __intel_engine_context_size() so
+ * the size of the header is synonymous with the start of the PPHWSP.
+ */
+#define LRC_HEADER_PAGES LRC_PPHWSP_PN
 
 struct drm_i915_private;
 struct i915_gem_context;
 
 void intel_lr_context_resume(struct drm_i915_private *dev_priv);
-uint64_t intel_lr_context_descriptor(struct i915_gem_context *ctx,
-                                    struct intel_engine_cs *engine);
+
+static inline uint64_t
+intel_lr_context_descriptor(struct i915_gem_context *ctx,
+                           struct intel_engine_cs *engine)
+{
+       return ctx->engine[engine->id].lrc_desc;
+}
+
 
 /* Execlists */
 int intel_sanitize_enable_execlists(struct drm_i915_private *dev_priv,
index a9813ae..a55954a 100644 (file)
@@ -880,8 +880,8 @@ static bool compute_is_dual_link_lvds(struct intel_lvds_encoder *lvds_encoder)
        struct drm_i915_private *dev_priv = to_i915(dev);
 
        /* use the module option value if specified */
-       if (i915.lvds_channel_mode > 0)
-               return i915.lvds_channel_mode == 2;
+       if (i915_modparams.lvds_channel_mode > 0)
+               return i915_modparams.lvds_channel_mode == 2;
 
        /* single channel LVDS is limited to 112 MHz */
        if (lvds_encoder->attached_connector->base.panel.fixed_mode->clock
index 951e834..28a778b 100644 (file)
 #include "intel_drv.h"
 #include "i915_drv.h"
 
+static void intel_connector_update_eld_conn_type(struct drm_connector *connector)
+{
+       u8 conn_type;
+
+       if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+           connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
+               conn_type = DRM_ELD_CONN_TYPE_DP;
+       } else {
+               conn_type = DRM_ELD_CONN_TYPE_HDMI;
+       }
+
+       connector->eld[DRM_ELD_SAD_COUNT_CONN_TYPE] &= ~DRM_ELD_CONN_TYPE_MASK;
+       connector->eld[DRM_ELD_SAD_COUNT_CONN_TYPE] |= conn_type;
+}
+
 /**
  * intel_connector_update_modes - update connector from edid
  * @connector: DRM connector device to use
@@ -44,6 +59,8 @@ int intel_connector_update_modes(struct drm_connector *connector,
        ret = drm_add_edid_modes(connector, edid);
        drm_edid_to_eld(connector, edid);
 
+       intel_connector_update_eld_conn_type(connector);
+
        return ret;
 }
 
index 98154ef..1d94624 100644 (file)
@@ -921,7 +921,7 @@ static int intel_load_vbt_firmware(struct drm_i915_private *dev_priv)
 {
        struct intel_opregion *opregion = &dev_priv->opregion;
        const struct firmware *fw = NULL;
-       const char *name = i915.vbt_firmware;
+       const char *name = i915_modparams.vbt_firmware;
        int ret;
 
        if (!name || !*name)
index aace22e..1b397b4 100644 (file)
@@ -1134,7 +1134,7 @@ int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
        if (!params)
                return -ENOMEM;
 
-       drmmode_crtc = drm_crtc_find(dev, put_image_rec->crtc_id);
+       drmmode_crtc = drm_crtc_find(dev, file_priv, put_image_rec->crtc_id);
        if (!drmmode_crtc) {
                ret = -ENOENT;
                goto out_free;
index 3b1c5d7..adc51e4 100644 (file)
@@ -379,13 +379,13 @@ enum drm_connector_status
 intel_panel_detect(struct drm_i915_private *dev_priv)
 {
        /* Assume that the BIOS does not lie through the OpRegion... */
-       if (!i915.panel_ignore_lid && dev_priv->opregion.lid_state) {
+       if (!i915_modparams.panel_ignore_lid && dev_priv->opregion.lid_state) {
                return *dev_priv->opregion.lid_state & 0x1 ?
                        connector_status_connected :
                        connector_status_disconnected;
        }
 
-       switch (i915.panel_ignore_lid) {
+       switch (i915_modparams.panel_ignore_lid) {
        case -2:
                return connector_status_connected;
        case -1:
@@ -465,10 +465,10 @@ static u32 intel_panel_compute_brightness(struct intel_connector *connector,
 
        WARN_ON(panel->backlight.max == 0);
 
-       if (i915.invert_brightness < 0)
+       if (i915_modparams.invert_brightness < 0)
                return val;
 
-       if (i915.invert_brightness > 0 ||
+       if (i915_modparams.invert_brightness > 0 ||
            dev_priv->quirks & QUIRK_INVERT_BRIGHTNESS) {
                return panel->backlight.max - val + panel->backlight.min;
        }
index 0201816..c66af09 100644 (file)
 
 static void gen9_init_clock_gating(struct drm_i915_private *dev_priv)
 {
+       if (HAS_LLC(dev_priv)) {
+               /*
+                * WaCompressedResourceDisplayNewHashMode:skl,kbl
+                * Display WA#0390: skl,kbl
+                *
+                * Must match Sampler, Pixel Back End, and Media. See
+                * WaCompressedResourceSamplerPbeMediaNewHashMode.
+                */
+               I915_WRITE(CHICKEN_PAR1_1,
+                          I915_READ(CHICKEN_PAR1_1) |
+                          SKL_DE_COMPRESSED_HASH_MODE);
+       }
+
        /* See Bspec note for PSR2_CTL bit 31, Wa#828:skl,bxt,kbl,cfl */
        I915_WRITE(CHICKEN_PAR1_1,
                   I915_READ(CHICKEN_PAR1_1) | SKL_EDP_PSR_FIX_RDWRAP);
 
-       /*
-        * Display WA#0390: skl,bxt,kbl,glk
-        *
-        * Must match Sampler, Pixel Back End, and Media
-        * (0xE194 bit 8, 0x7014 bit 13, 0x4DDC bits 27 and 31).
-        *
-        * Including bits outside the page in the hash would
-        * require 2 (or 4?) MiB alignment of resources. Just
-        * assume the defaul hashing mode which only uses bits
-        * within the page.
-        */
-       I915_WRITE(CHICKEN_PAR1_1,
-                  I915_READ(CHICKEN_PAR1_1) & ~SKL_RC_HASH_OUTSIDE);
-
        I915_WRITE(GEN8_CONFIG0,
                   I915_READ(GEN8_CONFIG0) | GEN9_DEFAULT_FIXES);
 
@@ -4376,134 +4375,147 @@ skl_adjusted_plane_pixel_rate(const struct intel_crtc_state *cstate,
                                            downscale_amount);
 }
 
-static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
-                               struct intel_crtc_state *cstate,
-                               const struct intel_plane_state *intel_pstate,
-                               uint16_t ddb_allocation,
-                               int level,
-                               uint16_t *out_blocks, /* out */
-                               uint8_t *out_lines, /* out */
-                               bool *enabled /* out */)
+static int
+skl_compute_plane_wm_params(const struct drm_i915_private *dev_priv,
+                           struct intel_crtc_state *cstate,
+                           const struct intel_plane_state *intel_pstate,
+                           struct skl_wm_params *wp)
 {
        struct intel_plane *plane = to_intel_plane(intel_pstate->base.plane);
        const struct drm_plane_state *pstate = &intel_pstate->base;
        const struct drm_framebuffer *fb = pstate->fb;
-       uint32_t latency = dev_priv->wm.skl_latency[level];
-       uint_fixed_16_16_t method1, method2;
-       uint_fixed_16_16_t plane_blocks_per_line;
-       uint_fixed_16_16_t selected_result;
        uint32_t interm_pbpl;
-       uint32_t plane_bytes_per_line;
-       uint32_t res_blocks, res_lines;
-       uint8_t cpp;
-       uint32_t width = 0;
-       uint32_t plane_pixel_rate;
-       uint_fixed_16_16_t y_tile_minimum;
-       uint32_t y_min_scanlines;
        struct intel_atomic_state *state =
                to_intel_atomic_state(cstate->base.state);
        bool apply_memory_bw_wa = skl_needs_memory_bw_wa(state);
-       bool y_tiled, x_tiled;
 
-       if (latency == 0 ||
-           !intel_wm_plane_visible(cstate, intel_pstate)) {
-               *enabled = false;
+       if (!intel_wm_plane_visible(cstate, intel_pstate))
                return 0;
-       }
 
-       y_tiled = fb->modifier == I915_FORMAT_MOD_Y_TILED ||
-                 fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
-                 fb->modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
-                 fb->modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
-       x_tiled = fb->modifier == I915_FORMAT_MOD_X_TILED;
-
-       /* Display WA #1141: kbl,cfl */
-       if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) &&
-           dev_priv->ipc_enabled)
-               latency += 4;
-
-       if (apply_memory_bw_wa && x_tiled)
-               latency += 15;
+       wp->y_tiled = fb->modifier == I915_FORMAT_MOD_Y_TILED ||
+                     fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
+                     fb->modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
+                     fb->modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
+       wp->x_tiled = fb->modifier == I915_FORMAT_MOD_X_TILED;
+       wp->rc_surface = fb->modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
+                        fb->modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
 
        if (plane->id == PLANE_CURSOR) {
-               width = intel_pstate->base.crtc_w;
+               wp->width = intel_pstate->base.crtc_w;
        } else {
                /*
                 * Src coordinates are already rotated by 270 degrees for
                 * the 90/270 degree plane rotation cases (to match the
                 * GTT mapping), hence no need to account for rotation here.
                 */
-               width = drm_rect_width(&intel_pstate->base.src) >> 16;
+               wp->width = drm_rect_width(&intel_pstate->base.src) >> 16;
        }
 
-       cpp = (fb->format->format == DRM_FORMAT_NV12) ? fb->format->cpp[1] :
-                                                       fb->format->cpp[0];
-       plane_pixel_rate = skl_adjusted_plane_pixel_rate(cstate, intel_pstate);
+       wp->cpp = (fb->format->format == DRM_FORMAT_NV12) ? fb->format->cpp[1] :
+                                                           fb->format->cpp[0];
+       wp->plane_pixel_rate = skl_adjusted_plane_pixel_rate(cstate,
+                                                            intel_pstate);
 
        if (drm_rotation_90_or_270(pstate->rotation)) {
 
-               switch (cpp) {
+               switch (wp->cpp) {
                case 1:
-                       y_min_scanlines = 16;
+                       wp->y_min_scanlines = 16;
                        break;
                case 2:
-                       y_min_scanlines = 8;
+                       wp->y_min_scanlines = 8;
                        break;
                case 4:
-                       y_min_scanlines = 4;
+                       wp->y_min_scanlines = 4;
                        break;
                default:
-                       MISSING_CASE(cpp);
+                       MISSING_CASE(wp->cpp);
                        return -EINVAL;
                }
        } else {
-               y_min_scanlines = 4;
+               wp->y_min_scanlines = 4;
        }
 
        if (apply_memory_bw_wa)
-               y_min_scanlines *= 2;
+               wp->y_min_scanlines *= 2;
 
-       plane_bytes_per_line = width * cpp;
-       if (y_tiled) {
-               interm_pbpl = DIV_ROUND_UP(plane_bytes_per_line *
-                                          y_min_scanlines, 512);
+       wp->plane_bytes_per_line = wp->width * wp->cpp;
+       if (wp->y_tiled) {
+               interm_pbpl = DIV_ROUND_UP(wp->plane_bytes_per_line *
+                                          wp->y_min_scanlines, 512);
 
                if (INTEL_GEN(dev_priv) >= 10)
                        interm_pbpl++;
 
-               plane_blocks_per_line = div_fixed16(interm_pbpl,
-                                                       y_min_scanlines);
-       } else if (x_tiled && INTEL_GEN(dev_priv) == 9) {
-               interm_pbpl = DIV_ROUND_UP(plane_bytes_per_line, 512);
-               plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
+               wp->plane_blocks_per_line = div_fixed16(interm_pbpl,
+                                                       wp->y_min_scanlines);
+       } else if (wp->x_tiled && IS_GEN9(dev_priv)) {
+               interm_pbpl = DIV_ROUND_UP(wp->plane_bytes_per_line, 512);
+               wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
        } else {
-               interm_pbpl = DIV_ROUND_UP(plane_bytes_per_line, 512) + 1;
-               plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
+               interm_pbpl = DIV_ROUND_UP(wp->plane_bytes_per_line, 512) + 1;
+               wp->plane_blocks_per_line = u32_to_fixed16(interm_pbpl);
+       }
+
+       wp->y_tile_minimum = mul_u32_fixed16(wp->y_min_scanlines,
+                                            wp->plane_blocks_per_line);
+       wp->linetime_us = fixed16_to_u32_round_up(
+                                       intel_get_linetime_us(cstate));
+
+       return 0;
+}
+
+static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
+                               struct intel_crtc_state *cstate,
+                               const struct intel_plane_state *intel_pstate,
+                               uint16_t ddb_allocation,
+                               int level,
+                               const struct skl_wm_params *wp,
+                               uint16_t *out_blocks, /* out */
+                               uint8_t *out_lines, /* out */
+                               bool *enabled /* out */)
+{
+       const struct drm_plane_state *pstate = &intel_pstate->base;
+       uint32_t latency = dev_priv->wm.skl_latency[level];
+       uint_fixed_16_16_t method1, method2;
+       uint_fixed_16_16_t selected_result;
+       uint32_t res_blocks, res_lines;
+       struct intel_atomic_state *state =
+               to_intel_atomic_state(cstate->base.state);
+       bool apply_memory_bw_wa = skl_needs_memory_bw_wa(state);
+
+       if (latency == 0 ||
+           !intel_wm_plane_visible(cstate, intel_pstate)) {
+               *enabled = false;
+               return 0;
        }
 
-       method1 = skl_wm_method1(dev_priv, plane_pixel_rate, cpp, latency);
-       method2 = skl_wm_method2(plane_pixel_rate,
+       /* Display WA #1141: kbl,cfl */
+       if ((IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv) ||
+           IS_CNL_REVID(dev_priv, CNL_REVID_A0, CNL_REVID_B0)) &&
+           dev_priv->ipc_enabled)
+               latency += 4;
+
+       if (apply_memory_bw_wa && wp->x_tiled)
+               latency += 15;
+
+       method1 = skl_wm_method1(dev_priv, wp->plane_pixel_rate,
+                                wp->cpp, latency);
+       method2 = skl_wm_method2(wp->plane_pixel_rate,
                                 cstate->base.adjusted_mode.crtc_htotal,
                                 latency,
-                                plane_blocks_per_line);
+                                wp->plane_blocks_per_line);
 
-       y_tile_minimum = mul_u32_fixed16(y_min_scanlines,
-                                        plane_blocks_per_line);
-
-       if (y_tiled) {
-               selected_result = max_fixed16(method2, y_tile_minimum);
+       if (wp->y_tiled) {
+               selected_result = max_fixed16(method2, wp->y_tile_minimum);
        } else {
-               uint32_t linetime_us;
-
-               linetime_us = fixed16_to_u32_round_up(
-                               intel_get_linetime_us(cstate));
-               if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
-                   (plane_bytes_per_line / 512 < 1))
+               if ((wp->cpp * cstate->base.adjusted_mode.crtc_htotal /
+                    512 < 1) && (wp->plane_bytes_per_line / 512 < 1))
                        selected_result = method2;
                else if (ddb_allocation >=
-                        fixed16_to_u32_round_up(plane_blocks_per_line))
+                        fixed16_to_u32_round_up(wp->plane_blocks_per_line))
                        selected_result = min_fixed16(method1, method2);
-               else if (latency >= linetime_us)
+               else if (latency >= wp->linetime_us)
                        selected_result = min_fixed16(method1, method2);
                else
                        selected_result = method1;
@@ -4511,19 +4523,18 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
 
        res_blocks = fixed16_to_u32_round_up(selected_result) + 1;
        res_lines = div_round_up_fixed16(selected_result,
-                                        plane_blocks_per_line);
+                                        wp->plane_blocks_per_line);
 
        /* Display WA #1125: skl,bxt,kbl,glk */
-       if (level == 0 &&
-           (fb->modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
-            fb->modifier == I915_FORMAT_MOD_Yf_TILED_CCS))
-               res_blocks += fixed16_to_u32_round_up(y_tile_minimum);
+       if (level == 0 && wp->rc_surface)
+               res_blocks += fixed16_to_u32_round_up(wp->y_tile_minimum);
 
        /* Display WA #1126: skl,bxt,kbl,glk */
        if (level >= 1 && level <= 7) {
-               if (y_tiled) {
-                       res_blocks += fixed16_to_u32_round_up(y_tile_minimum);
-                       res_lines += y_min_scanlines;
+               if (wp->y_tiled) {
+                       res_blocks += fixed16_to_u32_round_up(
+                                                       wp->y_tile_minimum);
+                       res_lines += wp->y_min_scanlines;
                } else {
                        res_blocks++;
                }
@@ -4561,6 +4572,7 @@ skl_compute_wm_levels(const struct drm_i915_private *dev_priv,
                      struct skl_ddb_allocation *ddb,
                      struct intel_crtc_state *cstate,
                      const struct intel_plane_state *intel_pstate,
+                     const struct skl_wm_params *wm_params,
                      struct skl_plane_wm *wm)
 {
        struct intel_crtc *intel_crtc = to_intel_crtc(cstate->base.crtc);
@@ -4584,6 +4596,7 @@ skl_compute_wm_levels(const struct drm_i915_private *dev_priv,
                                           intel_pstate,
                                           ddb_blocks,
                                           level,
+                                          wm_params,
                                           &result->plane_res_b,
                                           &result->plane_res_l,
                                           &result->plane_en);
@@ -4609,20 +4622,65 @@ skl_compute_linetime_wm(struct intel_crtc_state *cstate)
 
        linetime_wm = fixed16_to_u32_round_up(mul_u32_fixed16(8, linetime_us));
 
-       /* Display WA #1135: bxt. */
-       if (IS_BROXTON(dev_priv) && dev_priv->ipc_enabled)
-               linetime_wm = DIV_ROUND_UP(linetime_wm, 2);
+       /* Display WA #1135: bxt:ALL GLK:ALL */
+       if ((IS_BROXTON(dev_priv) || IS_GEMINILAKE(dev_priv)) &&
+           dev_priv->ipc_enabled)
+               linetime_wm /= 2;
 
        return linetime_wm;
 }
 
 static void skl_compute_transition_wm(struct intel_crtc_state *cstate,
+                                     struct skl_wm_params *wp,
+                                     struct skl_wm_level *wm_l0,
+                                     uint16_t ddb_allocation,
                                      struct skl_wm_level *trans_wm /* out */)
 {
+       struct drm_device *dev = cstate->base.crtc->dev;
+       const struct drm_i915_private *dev_priv = to_i915(dev);
+       uint16_t trans_min, trans_y_tile_min;
+       const uint16_t trans_amount = 10; /* This is configurable amount */
+       uint16_t trans_offset_b, res_blocks;
+
        if (!cstate->base.active)
+               goto exit;
+
+       /* Transition WM are not recommended by HW team for GEN9 */
+       if (INTEL_GEN(dev_priv) <= 9)
+               goto exit;
+
+       /* Transition WM don't make any sense if ipc is disabled */
+       if (!dev_priv->ipc_enabled)
+               goto exit;
+
+       if (INTEL_GEN(dev_priv) >= 10)
+               trans_min = 4;
+
+       trans_offset_b = trans_min + trans_amount;
+
+       if (wp->y_tiled) {
+               trans_y_tile_min = (uint16_t) mul_round_up_u32_fixed16(2,
+                                                       wp->y_tile_minimum);
+               res_blocks = max(wm_l0->plane_res_b, trans_y_tile_min) +
+                               trans_offset_b;
+       } else {
+               res_blocks = wm_l0->plane_res_b + trans_offset_b;
+
+               /* WA BUG:1938466 add one block for non y-tile planes */
+               if (IS_CNL_REVID(dev_priv, CNL_REVID_A0, CNL_REVID_A0))
+                       res_blocks += 1;
+
+       }
+
+       res_blocks += 1;
+
+       if (res_blocks < ddb_allocation) {
+               trans_wm->plane_res_b = res_blocks;
+               trans_wm->plane_en = true;
                return;
+       }
 
-       /* Until we know more, just disable transition WMs */
+exit:
        trans_wm->plane_en = false;
 }
 
@@ -4648,14 +4706,25 @@ static int skl_build_pipe_wm(struct intel_crtc_state *cstate,
                const struct intel_plane_state *intel_pstate =
                                                to_intel_plane_state(pstate);
                enum plane_id plane_id = to_intel_plane(plane)->id;
+               struct skl_wm_params wm_params;
+               enum pipe pipe = to_intel_crtc(cstate->base.crtc)->pipe;
+               uint16_t ddb_blocks;
 
                wm = &pipe_wm->planes[plane_id];
+               ddb_blocks = skl_ddb_entry_size(&ddb->plane[pipe][plane_id]);
+               memset(&wm_params, 0, sizeof(struct skl_wm_params));
+
+               ret = skl_compute_plane_wm_params(dev_priv, cstate,
+                                                 intel_pstate, &wm_params);
+               if (ret)
+                       return ret;
 
                ret = skl_compute_wm_levels(dev_priv, ddb, cstate,
-                                           intel_pstate, wm);
+                                           intel_pstate, &wm_params, wm);
                if (ret)
                        return ret;
-               skl_compute_transition_wm(cstate, &wm->trans_wm);
+               skl_compute_transition_wm(cstate, &wm_params, &wm->wm[0],
+                                         ddb_blocks, &wm->trans_wm);
        }
        pipe_wm->linetime = skl_compute_linetime_wm(cstate);
 
@@ -5754,6 +5823,30 @@ void intel_update_watermarks(struct intel_crtc *crtc)
                dev_priv->display.update_wm(crtc);
 }
 
+void intel_enable_ipc(struct drm_i915_private *dev_priv)
+{
+       u32 val;
+
+       val = I915_READ(DISP_ARB_CTL2);
+
+       if (dev_priv->ipc_enabled)
+               val |= DISP_IPC_ENABLE;
+       else
+               val &= ~DISP_IPC_ENABLE;
+
+       I915_WRITE(DISP_ARB_CTL2, val);
+}
+
+void intel_init_ipc(struct drm_i915_private *dev_priv)
+{
+       dev_priv->ipc_enabled = false;
+       if (!HAS_IPC(dev_priv))
+               return;
+
+       dev_priv->ipc_enabled = true;
+       intel_enable_ipc(dev_priv);
+}
+
 /*
  * Lock protecting IPS related data structures
  */
@@ -7732,7 +7825,7 @@ void intel_init_gt_powersave(struct drm_i915_private *dev_priv)
         * RPM depends on RC6 to save restore the GT HW context, so make RC6 a
         * requirement.
         */
-       if (!i915.enable_rc6) {
+       if (!i915_modparams.enable_rc6) {
                DRM_INFO("RC6 disabled, disabling runtime PM support\n");
                intel_runtime_pm_get(dev_priv);
        }
@@ -7789,7 +7882,7 @@ void intel_cleanup_gt_powersave(struct drm_i915_private *dev_priv)
        if (IS_VALLEYVIEW(dev_priv))
                valleyview_cleanup_gt_powersave(dev_priv);
 
-       if (!i915.enable_rc6)
+       if (!i915_modparams.enable_rc6)
                intel_runtime_pm_put(dev_priv);
 }
 
@@ -7911,7 +8004,7 @@ static void __intel_autoenable_gt_powersave(struct work_struct *work)
        if (IS_ERR(req))
                goto unlock;
 
-       if (!i915.enable_execlists && i915_switch_context(req) == 0)
+       if (!i915_modparams.enable_execlists && i915_switch_context(req) == 0)
                rcs->init_context(req);
 
        /* Mark the device busy, calling intel_enable_gt_powersave() */
@@ -8276,7 +8369,8 @@ static void cnp_init_clock_gating(struct drm_i915_private *dev_priv)
                return;
 
        /* Wa #1181 */
-       I915_WRITE(SOUTH_DSPCLK_GATE_D, CNP_PWM_CGE_GATING_DISABLE);
+       I915_WRITE(SOUTH_DSPCLK_GATE_D, I915_READ(SOUTH_DSPCLK_GATE_D) |
+                  CNP_PWM_CGE_GATING_DISABLE);
 }
 
 static void cnl_init_clock_gating(struct drm_i915_private *dev_priv)
index f62ab05..5419cda 100644 (file)
@@ -117,46 +117,41 @@ static void vlv_psr_setup_vsc(struct intel_dp *intel_dp,
        I915_WRITE(VLV_VSCSDP(crtc->pipe), val);
 }
 
-static void skl_psr_setup_su_vsc(struct intel_dp *intel_dp,
-                                const struct intel_crtc_state *crtc_state)
+static void hsw_psr_setup_vsc(struct intel_dp *intel_dp,
+                             const struct intel_crtc_state *crtc_state)
 {
        struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
        struct drm_i915_private *dev_priv = to_i915(intel_dig_port->base.base.dev);
        struct edp_vsc_psr psr_vsc;
 
-       /* Prepare VSC Header for SU as per EDP 1.4 spec, Table 6.11 */
-       memset(&psr_vsc, 0, sizeof(psr_vsc));
-       psr_vsc.sdp_header.HB0 = 0;
-       psr_vsc.sdp_header.HB1 = 0x7;
-       if (dev_priv->psr.colorimetry_support &&
-               dev_priv->psr.y_cord_support) {
-               psr_vsc.sdp_header.HB2 = 0x5;
-               psr_vsc.sdp_header.HB3 = 0x13;
-       } else if (dev_priv->psr.y_cord_support) {
-               psr_vsc.sdp_header.HB2 = 0x4;
-               psr_vsc.sdp_header.HB3 = 0xe;
+       if (dev_priv->psr.psr2_support) {
+               /* Prepare VSC Header for SU as per EDP 1.4 spec, Table 6.11 */
+               memset(&psr_vsc, 0, sizeof(psr_vsc));
+               psr_vsc.sdp_header.HB0 = 0;
+               psr_vsc.sdp_header.HB1 = 0x7;
+               if (dev_priv->psr.colorimetry_support &&
+                   dev_priv->psr.y_cord_support) {
+                       psr_vsc.sdp_header.HB2 = 0x5;
+                       psr_vsc.sdp_header.HB3 = 0x13;
+               } else if (dev_priv->psr.y_cord_support) {
+                       psr_vsc.sdp_header.HB2 = 0x4;
+                       psr_vsc.sdp_header.HB3 = 0xe;
+               } else {
+                       psr_vsc.sdp_header.HB2 = 0x3;
+                       psr_vsc.sdp_header.HB3 = 0xc;
+               }
        } else {
-               psr_vsc.sdp_header.HB2 = 0x3;
-               psr_vsc.sdp_header.HB3 = 0xc;
+               /* Prepare VSC packet as per EDP 1.3 spec, Table 3.10 */
+               memset(&psr_vsc, 0, sizeof(psr_vsc));
+               psr_vsc.sdp_header.HB0 = 0;
+               psr_vsc.sdp_header.HB1 = 0x7;
+               psr_vsc.sdp_header.HB2 = 0x2;
+               psr_vsc.sdp_header.HB3 = 0x8;
        }
 
        intel_psr_write_vsc(intel_dp, &psr_vsc);
 }
 
-static void hsw_psr_setup_vsc(struct intel_dp *intel_dp,
-                             const struct intel_crtc_state *crtc_state)
-{
-       struct edp_vsc_psr psr_vsc;
-
-       /* Prepare VSC packet as per EDP 1.3 spec, Table 3.10 */
-       memset(&psr_vsc, 0, sizeof(psr_vsc));
-       psr_vsc.sdp_header.HB0 = 0;
-       psr_vsc.sdp_header.HB1 = 0x7;
-       psr_vsc.sdp_header.HB2 = 0x2;
-       psr_vsc.sdp_header.HB3 = 0x8;
-       intel_psr_write_vsc(intel_dp, &psr_vsc);
-}
-
 static void vlv_psr_enable_sink(struct intel_dp *intel_dp)
 {
        drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG,
@@ -239,7 +234,7 @@ static void vlv_psr_enable_source(struct intel_dp *intel_dp,
        struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev);
        struct intel_crtc *crtc = to_intel_crtc(crtc_state->base.crtc);
 
-       /* Transition from PSR_state 0 to PSR_state 1, i.e. PSR Inactive */
+       /* Transition from PSR_state 0 (disabled) to PSR_state 1 (inactive) */
        I915_WRITE(VLV_PSRCTL(crtc->pipe),
                   VLV_EDP_PSR_MODE_SW_TIMER |
                   VLV_EDP_PSR_SRC_TRANSMITTER_STATE |
@@ -254,16 +249,17 @@ static void vlv_psr_activate(struct intel_dp *intel_dp)
        struct drm_crtc *crtc = dig_port->base.base.crtc;
        enum pipe pipe = to_intel_crtc(crtc)->pipe;
 
-       /* Let's do the transition from PSR_state 1 to PSR_state 2
-        * that is PSR transition to active - static frame transmission.
-        * Then Hardware is responsible for the transition to PSR_state 3
-        * that is PSR active - no Remote Frame Buffer (RFB) update.
+       /*
+        * Let's do the transition from PSR_state 1 (inactive) to
+        * PSR_state 2 (transition to active - static frame transmission).
+        * Then Hardware is responsible for the transition to
+        * PSR_state 3 (active - no Remote Frame Buffer (RFB) update).
         */
        I915_WRITE(VLV_PSRCTL(pipe), I915_READ(VLV_PSRCTL(pipe)) |
                   VLV_EDP_PSR_ACTIVE_ENTRY);
 }
 
-static void intel_enable_source_psr1(struct intel_dp *intel_dp)
+static void hsw_activate_psr1(struct intel_dp *intel_dp)
 {
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
        struct drm_device *dev = dig_port->base.base.dev;
@@ -317,7 +313,7 @@ static void intel_enable_source_psr1(struct intel_dp *intel_dp)
        I915_WRITE(EDP_PSR_CTL, val);
 }
 
-static void intel_enable_source_psr2(struct intel_dp *intel_dp)
+static void hsw_activate_psr2(struct intel_dp *intel_dp)
 {
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
        struct drm_device *dev = dig_port->base.base.dev;
@@ -331,6 +327,7 @@ static void intel_enable_source_psr2(struct intel_dp *intel_dp)
         */
        uint32_t idle_frames = max(6, dev_priv->vbt.psr.idle_frames);
        uint32_t val;
+       uint8_t sink_latency;
 
        val = idle_frames << EDP_PSR_IDLE_FRAME_SHIFT;
 
@@ -338,8 +335,16 @@ static void intel_enable_source_psr2(struct intel_dp *intel_dp)
         * mesh at all with our frontbuffer tracking. And the hw alone isn't
         * good enough. */
        val |= EDP_PSR2_ENABLE |
-               EDP_SU_TRACK_ENABLE |
-               EDP_FRAMES_BEFORE_SU_ENTRY;
+               EDP_SU_TRACK_ENABLE;
+
+       if (drm_dp_dpcd_readb(&intel_dp->aux,
+                               DP_SYNCHRONIZATION_LATENCY_IN_SINK,
+                               &sink_latency) == 1) {
+               sink_latency &= DP_MAX_RESYNC_FRAME_COUNT_MASK;
+       } else {
+               sink_latency = 0;
+       }
+       val |= EDP_PSR2_FRAME_BEFORE_SU(sink_latency + 1);
 
        if (dev_priv->vbt.psr.tp2_tp3_wakeup_time > 5)
                val |= EDP_PSR2_TP2_TIME_2500;
@@ -353,17 +358,22 @@ static void intel_enable_source_psr2(struct intel_dp *intel_dp)
        I915_WRITE(EDP_PSR2_CTL, val);
 }
 
-static void hsw_psr_enable_source(struct intel_dp *intel_dp)
+static void hsw_psr_activate(struct intel_dp *intel_dp)
 {
        struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
        struct drm_device *dev = dig_port->base.base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
 
+       /* On HSW+ after we enable PSR on source it will activate it
+        * as soon as it match configure idle_frame count. So
+        * we just actually enable it here on activation time.
+        */
+
        /* psr1 and psr2 are mutually exclusive.*/
        if (dev_priv->psr.psr2_support)
-               intel_enable_source_psr2(intel_dp);
+               hsw_activate_psr2(intel_dp);
        else
-               intel_enable_source_psr1(intel_dp);
+               hsw_activate_psr1(intel_dp);
 }
 
 static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
@@ -395,7 +405,7 @@ static bool intel_psr_match_conditions(struct intel_dp *intel_dp)
                return false;
        }
 
-       if (!i915.enable_psr) {
+       if (!i915_modparams.enable_psr) {
                DRM_DEBUG_KMS("PSR disable by flag\n");
                return false;
        }
@@ -467,19 +477,46 @@ static void intel_psr_activate(struct intel_dp *intel_dp)
        WARN_ON(dev_priv->psr.active);
        lockdep_assert_held(&dev_priv->psr.lock);
 
-       /* Enable/Re-enable PSR on the host */
-       if (HAS_DDI(dev_priv))
-               /* On HSW+ after we enable PSR on source it will activate it
-                * as soon as it match configure idle_frame count. So
-                * we just actually enable it here on activation time.
-                */
-               hsw_psr_enable_source(intel_dp);
-       else
-               vlv_psr_activate(intel_dp);
-
+       dev_priv->psr.activate(intel_dp);
        dev_priv->psr.active = true;
 }
 
+static void hsw_psr_enable_source(struct intel_dp *intel_dp,
+                                 const struct intel_crtc_state *crtc_state)
+{
+       struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
+       struct drm_device *dev = dig_port->base.base.dev;
+       struct drm_i915_private *dev_priv = to_i915(dev);
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+       u32 chicken;
+
+       if (dev_priv->psr.psr2_support) {
+               chicken = PSR2_VSC_ENABLE_PROG_HEADER;
+               if (dev_priv->psr.y_cord_support)
+                       chicken |= PSR2_ADD_VERTICAL_LINE_COUNT;
+               I915_WRITE(CHICKEN_TRANS(cpu_transcoder), chicken);
+
+               I915_WRITE(EDP_PSR_DEBUG_CTL,
+                          EDP_PSR_DEBUG_MASK_MEMUP |
+                          EDP_PSR_DEBUG_MASK_HPD |
+                          EDP_PSR_DEBUG_MASK_LPSP |
+                          EDP_PSR_DEBUG_MASK_MAX_SLEEP |
+                          EDP_PSR_DEBUG_MASK_DISP_REG_WRITE);
+       } else {
+               /*
+                * Per Spec: Avoid continuous PSR exit by masking MEMUP
+                * and HPD. also mask LPSP to avoid dependency on other
+                * drivers that might block runtime_pm besides
+                * preventing  other hw tracking issues now we can rely
+                * on frontbuffer tracking.
+                */
+               I915_WRITE(EDP_PSR_DEBUG_CTL,
+                          EDP_PSR_DEBUG_MASK_MEMUP |
+                          EDP_PSR_DEBUG_MASK_HPD |
+                          EDP_PSR_DEBUG_MASK_LPSP);
+       }
+}
+
 /**
  * intel_psr_enable - Enable PSR
  * @intel_dp: Intel DP
@@ -493,19 +530,16 @@ void intel_psr_enable(struct intel_dp *intel_dp,
        struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp);
        struct drm_device *dev = intel_dig_port->base.base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
-       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
-       u32 chicken;
 
-       if (!HAS_PSR(dev_priv)) {
-               DRM_DEBUG_KMS("PSR not supported on this platform\n");
+       if (!HAS_PSR(dev_priv))
                return;
-       }
 
        if (!is_edp_psr(intel_dp)) {
                DRM_DEBUG_KMS("PSR not supported by this panel\n");
                return;
        }
 
+       WARN_ON(dev_priv->drrs.dp);
        mutex_lock(&dev_priv->psr.lock);
        if (dev_priv->psr.enabled) {
                DRM_DEBUG_KMS("PSR already in use\n");
@@ -517,72 +551,28 @@ void intel_psr_enable(struct intel_dp *intel_dp,
 
        dev_priv->psr.busy_frontbuffer_bits = 0;
 
-       if (HAS_DDI(dev_priv)) {
-               if (dev_priv->psr.psr2_support) {
-                       skl_psr_setup_su_vsc(intel_dp, crtc_state);
-
-                       chicken = PSR2_VSC_ENABLE_PROG_HEADER;
-                       if (dev_priv->psr.y_cord_support)
-                               chicken |= PSR2_ADD_VERTICAL_LINE_COUNT;
-                       I915_WRITE(CHICKEN_TRANS(cpu_transcoder), chicken);
-
-                       I915_WRITE(EDP_PSR_DEBUG_CTL,
-                                  EDP_PSR_DEBUG_MASK_MEMUP |
-                                  EDP_PSR_DEBUG_MASK_HPD |
-                                  EDP_PSR_DEBUG_MASK_LPSP |
-                                  EDP_PSR_DEBUG_MASK_MAX_SLEEP |
-                                  EDP_PSR_DEBUG_MASK_DISP_REG_WRITE);
-               } else {
-                       /* set up vsc header for psr1 */
-                       hsw_psr_setup_vsc(intel_dp, crtc_state);
-
-                       /*
-                        * Per Spec: Avoid continuous PSR exit by masking MEMUP
-                        * and HPD. also mask LPSP to avoid dependency on other
-                        * drivers that might block runtime_pm besides
-                        * preventing  other hw tracking issues now we can rely
-                        * on frontbuffer tracking.
-                        */
-                       I915_WRITE(EDP_PSR_DEBUG_CTL,
-                                  EDP_PSR_DEBUG_MASK_MEMUP |
-                                  EDP_PSR_DEBUG_MASK_HPD |
-                                  EDP_PSR_DEBUG_MASK_LPSP);
-               }
-
-               /* Enable PSR on the panel */
-               hsw_psr_enable_sink(intel_dp);
+       dev_priv->psr.setup_vsc(intel_dp, crtc_state);
+       dev_priv->psr.enable_sink(intel_dp);
+       dev_priv->psr.enable_source(intel_dp, crtc_state);
+       dev_priv->psr.enabled = intel_dp;
 
-               if (INTEL_GEN(dev_priv) >= 9)
-                       intel_psr_activate(intel_dp);
+       if (INTEL_GEN(dev_priv) >= 9) {
+               intel_psr_activate(intel_dp);
        } else {
-               vlv_psr_setup_vsc(intel_dp, crtc_state);
-
-               /* Enable PSR on the panel */
-               vlv_psr_enable_sink(intel_dp);
-
-               /* On HSW+ enable_source also means go to PSR entry/active
-                * state as soon as idle_frame achieved and here would be
-                * to soon. However on VLV enable_source just enable PSR
-                * but let it on inactive state. So we might do this prior
-                * to active transition, i.e. here.
+               /*
+                * FIXME: Activation should happen immediately since this
+                * function is just called after pipe is fully trained and
+                * enabled.
+                * However on some platforms we face issues when first
+                * activation follows a modeset so quickly.
+                *     - On VLV/CHV we get bank screen on first activation
+                *     - On HSW/BDW we get a recoverable frozen screen until
+                *       next exit-activate sequence.
                 */
-               vlv_psr_enable_source(intel_dp, crtc_state);
-       }
-
-       /*
-        * FIXME: Activation should happen immediately since this function
-        * is just called after pipe is fully trained and enabled.
-        * However on every platform we face issues when first activation
-        * follows a modeset so quickly.
-        *     - On VLV/CHV we get bank screen on first activation
-        *     - On HSW/BDW we get a recoverable frozen screen until next
-        *       exit-activate sequence.
-        */
-       if (INTEL_GEN(dev_priv) < 9)
                schedule_delayed_work(&dev_priv->psr.work,
                                      msecs_to_jiffies(intel_dp->panel_power_cycle_delay * 5));
+       }
 
-       dev_priv->psr.enabled = intel_dp;
 unlock:
        mutex_unlock(&dev_priv->psr.lock);
 }
@@ -597,7 +587,7 @@ static void vlv_psr_disable(struct intel_dp *intel_dp,
        uint32_t val;
 
        if (dev_priv->psr.active) {
-               /* Put VLV PSR back to PSR_state 0 that is PSR Disabled. */
+               /* Put VLV PSR back to PSR_state 0 (disabled). */
                if (intel_wait_for_register(dev_priv,
                                            VLV_PSRSTAT(crtc->pipe),
                                            VLV_EDP_PSR_IN_TRANS,
@@ -678,17 +668,16 @@ void intel_psr_disable(struct intel_dp *intel_dp,
        struct drm_device *dev = intel_dig_port->base.base.dev;
        struct drm_i915_private *dev_priv = to_i915(dev);
 
+       if (!HAS_PSR(dev_priv))
+               return;
+
        mutex_lock(&dev_priv->psr.lock);
        if (!dev_priv->psr.enabled) {
                mutex_unlock(&dev_priv->psr.lock);
                return;
        }
 
-       /* Disable PSR on Source */
-       if (HAS_DDI(dev_priv))
-               hsw_psr_disable(intel_dp, old_crtc_state);
-       else
-               vlv_psr_disable(intel_dp, old_crtc_state);
+       dev_priv->psr.disable_source(intel_dp, old_crtc_state);
 
        /* Disable PSR on Sink */
        drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, 0);
@@ -788,17 +777,20 @@ static void intel_psr_exit(struct drm_i915_private *dev_priv)
        } else {
                val = I915_READ(VLV_PSRCTL(pipe));
 
-               /* Here we do the transition from PSR_state 3 to PSR_state 5
-                * directly once PSR State 4 that is active with single frame
-                * update can be skipped. PSR_state 5 that is PSR exit then
-                * Hardware is responsible to transition back to PSR_state 1
-                * that is PSR inactive. Same state after
-                * vlv_edp_psr_enable_source.
+               /*
+                * Here we do the transition drirectly from
+                * PSR_state 3 (active - no Remote Frame Buffer (RFB) update) to
+                * PSR_state 5 (exit).
+                * PSR State 4 (active with single frame update) can be skipped.
+                * On PSR_state 5 (exit) Hardware is responsible to transition
+                * back to PSR_state 1 (inactive).
+                * Now we are at Same state after vlv_psr_enable_source.
                 */
                val &= ~VLV_EDP_PSR_ACTIVE_ENTRY;
                I915_WRITE(VLV_PSRCTL(pipe), val);
 
-               /* Send AUX wake up - Spec says after transitioning to PSR
+               /*
+                * Send AUX wake up - Spec says after transitioning to PSR
                 * active we have to send AUX wake up by writing 01h in DPCD
                 * 600h of sink device.
                 * XXX: This might slow down the transition, but without this
@@ -829,6 +821,9 @@ void intel_psr_single_frame_update(struct drm_i915_private *dev_priv,
        enum pipe pipe;
        u32 val;
 
+       if (!HAS_PSR(dev_priv))
+               return;
+
        /*
         * Single frame update is already supported on BDW+ but it requires
         * many W/A and it isn't really needed.
@@ -875,6 +870,9 @@ void intel_psr_invalidate(struct drm_i915_private *dev_priv,
        struct drm_crtc *crtc;
        enum pipe pipe;
 
+       if (!HAS_PSR(dev_priv))
+               return;
+
        mutex_lock(&dev_priv->psr.lock);
        if (!dev_priv->psr.enabled) {
                mutex_unlock(&dev_priv->psr.lock);
@@ -912,6 +910,9 @@ void intel_psr_flush(struct drm_i915_private *dev_priv,
        struct drm_crtc *crtc;
        enum pipe pipe;
 
+       if (!HAS_PSR(dev_priv))
+               return;
+
        mutex_lock(&dev_priv->psr.lock);
        if (!dev_priv->psr.enabled) {
                mutex_unlock(&dev_priv->psr.lock);
@@ -944,12 +945,15 @@ void intel_psr_flush(struct drm_i915_private *dev_priv,
  */
 void intel_psr_init(struct drm_i915_private *dev_priv)
 {
+       if (!HAS_PSR(dev_priv))
+               return;
+
        dev_priv->psr_mmio_base = IS_HASWELL(dev_priv) ?
                HSW_EDP_PSR_BASE : BDW_EDP_PSR_BASE;
 
        /* Per platform default: all disabled. */
-       if (i915.enable_psr == -1)
-               i915.enable_psr = 0;
+       if (i915_modparams.enable_psr == -1)
+               i915_modparams.enable_psr = 0;
 
        /* Set link_standby x link_off defaults */
        if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
@@ -963,15 +967,29 @@ void intel_psr_init(struct drm_i915_private *dev_priv)
                dev_priv->psr.link_standby = dev_priv->vbt.psr.full_link;
 
        /* Override link_standby x link_off defaults */
-       if (i915.enable_psr == 2 && !dev_priv->psr.link_standby) {
+       if (i915_modparams.enable_psr == 2 && !dev_priv->psr.link_standby) {
                DRM_DEBUG_KMS("PSR: Forcing link standby\n");
                dev_priv->psr.link_standby = true;
        }
-       if (i915.enable_psr == 3 && dev_priv->psr.link_standby) {
+       if (i915_modparams.enable_psr == 3 && dev_priv->psr.link_standby) {
                DRM_DEBUG_KMS("PSR: Forcing main link off\n");
                dev_priv->psr.link_standby = false;
        }
 
        INIT_DELAYED_WORK(&dev_priv->psr.work, intel_psr_work);
        mutex_init(&dev_priv->psr.lock);
+
+       if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) {
+               dev_priv->psr.enable_source = vlv_psr_enable_source;
+               dev_priv->psr.disable_source = vlv_psr_disable;
+               dev_priv->psr.enable_sink = vlv_psr_enable_sink;
+               dev_priv->psr.activate = vlv_psr_activate;
+               dev_priv->psr.setup_vsc = vlv_psr_setup_vsc;
+       } else {
+               dev_priv->psr.enable_source = hsw_psr_enable_source;
+               dev_priv->psr.disable_source = hsw_psr_disable;
+               dev_priv->psr.enable_sink = hsw_psr_enable_sink;
+               dev_priv->psr.activate = hsw_psr_activate;
+               dev_priv->psr.setup_vsc = hsw_psr_setup_vsc;
+       }
 }
index cdf084e..05c08b0 100644 (file)
@@ -402,17 +402,18 @@ static void intel_ring_setup_status_page(struct intel_engine_cs *engine)
         */
        if (IS_GEN7(dev_priv)) {
                switch (engine->id) {
+               /*
+                * No more rings exist on Gen7. Default case is only to shut up
+                * gcc switch check warning.
+                */
+               default:
+                       GEM_BUG_ON(engine->id);
                case RCS:
                        mmio = RENDER_HWS_PGA_GEN7;
                        break;
                case BCS:
                        mmio = BLT_HWS_PGA_GEN7;
                        break;
-               /*
-                * VCS2 actually doesn't exist on Gen7. Only shut up
-                * gcc switch check warning
-                */
-               case VCS2:
                case VCS:
                        mmio = BSD_HWS_PGA_GEN7;
                        break;
@@ -427,6 +428,9 @@ static void intel_ring_setup_status_page(struct intel_engine_cs *engine)
                mmio = RING_HWS_PGA(engine->mmio_base);
        }
 
+       if (INTEL_GEN(dev_priv) >= 6)
+               I915_WRITE(RING_HWSTAM(engine->mmio_base), 0xffffffff);
+
        I915_WRITE(mmio, engine->status_page.ggtt_offset);
        POSTING_READ(mmio);
 
@@ -778,6 +782,24 @@ static u32 *gen6_signal(struct drm_i915_gem_request *req, u32 *cs)
        return cs;
 }
 
+static void cancel_requests(struct intel_engine_cs *engine)
+{
+       struct drm_i915_gem_request *request;
+       unsigned long flags;
+
+       spin_lock_irqsave(&engine->timeline->lock, flags);
+
+       /* Mark all submitted requests as skipped. */
+       list_for_each_entry(request, &engine->timeline->requests, link) {
+               GEM_BUG_ON(!request->global_seqno);
+               if (!i915_gem_request_completed(request))
+                       dma_fence_set_error(&request->fence, -EIO);
+       }
+       /* Remaining _unready_ requests will be nop'ed when submitted */
+
+       spin_unlock_irqrestore(&engine->timeline->lock, flags);
+}
+
 static void i9xx_submit_request(struct drm_i915_gem_request *request)
 {
        struct drm_i915_private *dev_priv = request->i915;
@@ -1174,113 +1196,7 @@ i915_emit_bb_start(struct drm_i915_gem_request *req,
        return 0;
 }
 
-static void cleanup_phys_status_page(struct intel_engine_cs *engine)
-{
-       struct drm_i915_private *dev_priv = engine->i915;
-
-       if (!dev_priv->status_page_dmah)
-               return;
-
-       drm_pci_free(&dev_priv->drm, dev_priv->status_page_dmah);
-       engine->status_page.page_addr = NULL;
-}
-
-static void cleanup_status_page(struct intel_engine_cs *engine)
-{
-       struct i915_vma *vma;
-       struct drm_i915_gem_object *obj;
-
-       vma = fetch_and_zero(&engine->status_page.vma);
-       if (!vma)
-               return;
-
-       obj = vma->obj;
-
-       i915_vma_unpin(vma);
-       i915_vma_close(vma);
-
-       i915_gem_object_unpin_map(obj);
-       __i915_gem_object_release_unless_active(obj);
-}
-
-static int init_status_page(struct intel_engine_cs *engine)
-{
-       struct drm_i915_gem_object *obj;
-       struct i915_vma *vma;
-       unsigned int flags;
-       void *vaddr;
-       int ret;
-
-       obj = i915_gem_object_create_internal(engine->i915, PAGE_SIZE);
-       if (IS_ERR(obj)) {
-               DRM_ERROR("Failed to allocate status page\n");
-               return PTR_ERR(obj);
-       }
 
-       ret = i915_gem_object_set_cache_level(obj, I915_CACHE_LLC);
-       if (ret)
-               goto err;
-
-       vma = i915_vma_instance(obj, &engine->i915->ggtt.base, NULL);
-       if (IS_ERR(vma)) {
-               ret = PTR_ERR(vma);
-               goto err;
-       }
-
-       flags = PIN_GLOBAL;
-       if (!HAS_LLC(engine->i915))
-               /* On g33, we cannot place HWS above 256MiB, so
-                * restrict its pinning to the low mappable arena.
-                * Though this restriction is not documented for
-                * gen4, gen5, or byt, they also behave similarly
-                * and hang if the HWS is placed at the top of the
-                * GTT. To generalise, it appears that all !llc
-                * platforms have issues with us placing the HWS
-                * above the mappable region (even though we never
-                * actualy map it).
-                */
-               flags |= PIN_MAPPABLE;
-       ret = i915_vma_pin(vma, 0, 4096, flags);
-       if (ret)
-               goto err;
-
-       vaddr = i915_gem_object_pin_map(obj, I915_MAP_WB);
-       if (IS_ERR(vaddr)) {
-               ret = PTR_ERR(vaddr);
-               goto err_unpin;
-       }
-
-       engine->status_page.vma = vma;
-       engine->status_page.ggtt_offset = i915_ggtt_offset(vma);
-       engine->status_page.page_addr = memset(vaddr, 0, PAGE_SIZE);
-
-       DRM_DEBUG_DRIVER("%s hws offset: 0x%08x\n",
-                        engine->name, i915_ggtt_offset(vma));
-       return 0;
-
-err_unpin:
-       i915_vma_unpin(vma);
-err:
-       i915_gem_object_put(obj);
-       return ret;
-}
-
-static int init_phys_status_page(struct intel_engine_cs *engine)
-{
-       struct drm_i915_private *dev_priv = engine->i915;
-
-       GEM_BUG_ON(engine->id != RCS);
-
-       dev_priv->status_page_dmah =
-               drm_pci_alloc(&dev_priv->drm, PAGE_SIZE, PAGE_SIZE);
-       if (!dev_priv->status_page_dmah)
-               return -ENOMEM;
-
-       engine->status_page.page_addr = dev_priv->status_page_dmah->vaddr;
-       memset(engine->status_page.page_addr, 0, PAGE_SIZE);
-
-       return 0;
-}
 
 int intel_ring_pin(struct intel_ring *ring,
                   struct drm_i915_private *i915,
@@ -1567,17 +1483,10 @@ static int intel_init_ring_buffer(struct intel_engine_cs *engine)
        if (err)
                goto err;
 
-       if (HWS_NEEDS_PHYSICAL(engine->i915))
-               err = init_phys_status_page(engine);
-       else
-               err = init_status_page(engine);
-       if (err)
-               goto err;
-
        ring = intel_engine_create_ring(engine, 32 * PAGE_SIZE);
        if (IS_ERR(ring)) {
                err = PTR_ERR(ring);
-               goto err_hws;
+               goto err;
        }
 
        /* Ring wraparound at offset 0 sometimes hangs. No idea why. */
@@ -1592,11 +1501,6 @@ static int intel_init_ring_buffer(struct intel_engine_cs *engine)
 
 err_ring:
        intel_ring_free(ring);
-err_hws:
-       if (HWS_NEEDS_PHYSICAL(engine->i915))
-               cleanup_phys_status_page(engine);
-       else
-               cleanup_status_page(engine);
 err:
        intel_engine_cleanup_common(engine);
        return err;
@@ -1615,11 +1519,6 @@ void intel_engine_cleanup(struct intel_engine_cs *engine)
        if (engine->cleanup)
                engine->cleanup(engine);
 
-       if (HWS_NEEDS_PHYSICAL(dev_priv))
-               cleanup_phys_status_page(engine);
-       else
-               cleanup_status_page(engine);
-
        intel_engine_cleanup_common(engine);
 
        dev_priv->engine[engine->id] = NULL;
@@ -1983,7 +1882,7 @@ static void intel_ring_init_semaphores(struct drm_i915_private *dev_priv,
        struct drm_i915_gem_object *obj;
        int ret, i;
 
-       if (!i915.semaphores)
+       if (!i915_modparams.semaphores)
                return;
 
        if (INTEL_GEN(dev_priv) >= 8 && !dev_priv->semaphore) {
@@ -2083,7 +1982,7 @@ err_obj:
        i915_gem_object_put(obj);
 err:
        DRM_DEBUG_DRIVER("Failed to allocate space for semaphores, disabling\n");
-       i915.semaphores = 0;
+       i915_modparams.semaphores = 0;
 }
 
 static void intel_ring_init_irq(struct drm_i915_private *dev_priv,
@@ -2115,11 +2014,13 @@ static void intel_ring_init_irq(struct drm_i915_private *dev_priv,
 static void i9xx_set_default_submission(struct intel_engine_cs *engine)
 {
        engine->submit_request = i9xx_submit_request;
+       engine->cancel_requests = cancel_requests;
 }
 
 static void gen6_bsd_set_default_submission(struct intel_engine_cs *engine)
 {
        engine->submit_request = gen6_bsd_submit_request;
+       engine->cancel_requests = cancel_requests;
 }
 
 static void intel_ring_default_vfuncs(struct drm_i915_private *dev_priv,
@@ -2138,7 +2039,7 @@ static void intel_ring_default_vfuncs(struct drm_i915_private *dev_priv,
 
        engine->emit_breadcrumb = i9xx_emit_breadcrumb;
        engine->emit_breadcrumb_sz = i9xx_emit_breadcrumb_sz;
-       if (i915.semaphores) {
+       if (i915_modparams.semaphores) {
                int num_rings;
 
                engine->emit_breadcrumb = gen6_sema_emit_breadcrumb;
@@ -2182,7 +2083,7 @@ int intel_init_render_ring_buffer(struct intel_engine_cs *engine)
                engine->emit_breadcrumb = gen8_render_emit_breadcrumb;
                engine->emit_breadcrumb_sz = gen8_render_emit_breadcrumb_sz;
                engine->emit_flush = gen8_render_ring_flush;
-               if (i915.semaphores) {
+               if (i915_modparams.semaphores) {
                        int num_rings;
 
                        engine->semaphore.signal = gen8_rcs_signal;
index 79c0021..56d7ae9 100644 (file)
@@ -184,6 +184,91 @@ struct i915_priolist {
        int priority;
 };
 
+/**
+ * struct intel_engine_execlists - execlist submission queue and port state
+ *
+ * The struct intel_engine_execlists represents the combined logical state of
+ * driver and the hardware state for execlist mode of submission.
+ */
+struct intel_engine_execlists {
+       /**
+        * @irq_tasklet: softirq tasklet for bottom handler
+        */
+       struct tasklet_struct irq_tasklet;
+
+       /**
+        * @default_priolist: priority list for I915_PRIORITY_NORMAL
+        */
+       struct i915_priolist default_priolist;
+
+       /**
+        * @no_priolist: priority lists disabled
+        */
+       bool no_priolist;
+
+       /**
+        * @port: execlist port states
+        *
+        * For each hardware ELSP (ExecList Submission Port) we keep
+        * track of the last request and the number of times we submitted
+        * that port to hw. We then count the number of times the hw reports
+        * a context completion or preemption. As only one context can
+        * be active on hw, we limit resubmission of context to port[0]. This
+        * is called Lite Restore, of the context.
+        */
+       struct execlist_port {
+               /**
+                * @request_count: combined request and submission count
+                */
+               struct drm_i915_gem_request *request_count;
+#define EXECLIST_COUNT_BITS 2
+#define port_request(p) ptr_mask_bits((p)->request_count, EXECLIST_COUNT_BITS)
+#define port_count(p) ptr_unmask_bits((p)->request_count, EXECLIST_COUNT_BITS)
+#define port_pack(rq, count) ptr_pack_bits(rq, count, EXECLIST_COUNT_BITS)
+#define port_unpack(p, count) ptr_unpack_bits((p)->request_count, count, EXECLIST_COUNT_BITS)
+#define port_set(p, packed) ((p)->request_count = (packed))
+#define port_isset(p) ((p)->request_count)
+#define port_index(p, execlists) ((p) - (execlists)->port)
+
+               /**
+                * @context_id: context ID for port
+                */
+               GEM_DEBUG_DECL(u32 context_id);
+
+#define EXECLIST_MAX_PORTS 2
+       } port[EXECLIST_MAX_PORTS];
+
+       /**
+        * @port_mask: number of execlist ports - 1
+        */
+       unsigned int port_mask;
+
+       /**
+        * @queue: queue of requests, in priority lists
+        */
+       struct rb_root queue;
+
+       /**
+        * @first: leftmost level in priority @queue
+        */
+       struct rb_node *first;
+
+       /**
+        * @fw_domains: forcewake domains for irq tasklet
+        */
+       unsigned int fw_domains;
+
+       /**
+        * @csb_head: context status buffer head
+        */
+       unsigned int csb_head;
+
+       /**
+        * @csb_use_mmio: access csb through mmio, instead of hwsp
+        */
+       bool csb_use_mmio;
+};
+
 #define INTEL_ENGINE_CS_MAX_NAME 8
 
 struct intel_engine_cs {
@@ -306,6 +391,14 @@ struct intel_engine_cs {
        void            (*schedule)(struct drm_i915_gem_request *request,
                                    int priority);
 
+       /*
+        * Cancel all requests on the hardware, or queued for execution.
+        * This should only cancel the ready requests that have been
+        * submitted to the engine (via the engine->submit_request callback).
+        * This is called when marking the device as wedged.
+        */
+       void            (*cancel_requests)(struct intel_engine_cs *engine);
+
        /* Some chipsets are not quite as coherent as advertised and need
         * an expensive kick to force a true read of the up-to-date seqno.
         * However, the up-to-date seqno is not always required and the last
@@ -372,25 +465,7 @@ struct intel_engine_cs {
                u32     *(*signal)(struct drm_i915_gem_request *req, u32 *cs);
        } semaphore;
 
-       /* Execlists */
-       struct tasklet_struct irq_tasklet;
-       struct i915_priolist default_priolist;
-       bool no_priolist;
-       struct execlist_port {
-               struct drm_i915_gem_request *request_count;
-#define EXECLIST_COUNT_BITS 2
-#define port_request(p) ptr_mask_bits((p)->request_count, EXECLIST_COUNT_BITS)
-#define port_count(p) ptr_unmask_bits((p)->request_count, EXECLIST_COUNT_BITS)
-#define port_pack(rq, count) ptr_pack_bits(rq, count, EXECLIST_COUNT_BITS)
-#define port_unpack(p, count) ptr_unpack_bits((p)->request_count, count, EXECLIST_COUNT_BITS)
-#define port_set(p, packed) ((p)->request_count = (packed))
-#define port_isset(p) ((p)->request_count)
-#define port_index(p, e) ((p) - (e)->execlist_port)
-               GEM_DEBUG_DECL(u32 context_id);
-       } execlist_port[2];
-       struct rb_root execlist_queue;
-       struct rb_node *execlist_first;
-       unsigned int fw_domains;
+       struct intel_engine_execlists execlists;
 
        /* Contexts are pinned whilst they are active on the GPU. The last
         * context executed remains active whilst the GPU is idle - the
@@ -444,6 +519,24 @@ struct intel_engine_cs {
 };
 
 static inline unsigned int
+execlists_num_ports(const struct intel_engine_execlists * const execlists)
+{
+       return execlists->port_mask + 1;
+}
+
+static inline void
+execlists_port_complete(struct intel_engine_execlists * const execlists,
+                       struct execlist_port * const port)
+{
+       const unsigned int m = execlists->port_mask;
+
+       GEM_BUG_ON(port_index(port, execlists) != 0);
+
+       memmove(port, port + 1, m * sizeof(struct execlist_port));
+       memset(port + m, 0, sizeof(struct execlist_port));
+}
+
+static inline unsigned int
 intel_engine_flag(const struct intel_engine_cs *engine)
 {
        return BIT(engine->id);
@@ -496,6 +589,10 @@ intel_write_status_page(struct intel_engine_cs *engine, int reg, u32 value)
 #define I915_GEM_HWS_SCRATCH_INDEX     0x40
 #define I915_GEM_HWS_SCRATCH_ADDR (I915_GEM_HWS_SCRATCH_INDEX << MI_STORE_DWORD_INDEX_SHIFT)
 
+#define I915_HWS_CSB_BUF0_INDEX                0x10
+#define I915_HWS_CSB_WRITE_INDEX       0x1f
+#define CNL_HWS_CSB_WRITE_INDEX                0x2f
+
 struct intel_ring *
 intel_engine_create_ring(struct intel_engine_cs *engine, int size);
 int intel_ring_pin(struct intel_ring *ring,
index a3bfb9f..7933d1b 100644 (file)
@@ -2413,7 +2413,7 @@ static uint32_t get_allowed_dc_mask(const struct drm_i915_private *dev_priv,
                mask = 0;
        }
 
-       if (!i915.disable_power_well)
+       if (!i915_modparams.disable_power_well)
                max_dc = 0;
 
        if (enable_dc >= 0 && enable_dc <= max_dc) {
@@ -2471,10 +2471,11 @@ int intel_power_domains_init(struct drm_i915_private *dev_priv)
 {
        struct i915_power_domains *power_domains = &dev_priv->power_domains;
 
-       i915.disable_power_well = sanitize_disable_power_well_option(dev_priv,
-                                                    i915.disable_power_well);
-       dev_priv->csr.allowed_dc_mask = get_allowed_dc_mask(dev_priv,
-                                                           i915.enable_dc);
+       i915_modparams.disable_power_well =
+               sanitize_disable_power_well_option(dev_priv,
+                                                  i915_modparams.disable_power_well);
+       dev_priv->csr.allowed_dc_mask =
+               get_allowed_dc_mask(dev_priv, i915_modparams.enable_dc);
 
        BUILD_BUG_ON(POWER_DOMAIN_NUM > 64);
 
@@ -2535,7 +2536,7 @@ void intel_power_domains_fini(struct drm_i915_private *dev_priv)
        intel_display_set_init_power(dev_priv, true);
 
        /* Remove the refcount we took to keep power well support disabled. */
-       if (!i915.disable_power_well)
+       if (!i915_modparams.disable_power_well)
                intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
 
        /*
@@ -2995,7 +2996,7 @@ void intel_power_domains_init_hw(struct drm_i915_private *dev_priv, bool resume)
        /* For now, we need the power well to be always enabled. */
        intel_display_set_init_power(dev_priv, true);
        /* Disable power support if the user asked so. */
-       if (!i915.disable_power_well)
+       if (!i915_modparams.disable_power_well)
                intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
        intel_power_domains_sync_hw(dev_priv);
        power_domains->initializing = false;
@@ -3014,7 +3015,7 @@ void intel_power_domains_suspend(struct drm_i915_private *dev_priv)
         * Even if power well support was disabled we still want to disable
         * power wells while we are system suspended.
         */
-       if (!i915.disable_power_well)
+       if (!i915_modparams.disable_power_well)
                intel_display_power_put(dev_priv, POWER_DOMAIN_INIT);
 
        if (IS_CANNONLAKE(dev_priv))
index b0d6e3e..28a1209 100644 (file)
@@ -994,7 +994,7 @@ int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
            set->flags & I915_SET_COLORKEY_DESTINATION)
                return -EINVAL;
 
-       plane = drm_plane_find(dev, set->plane_id);
+       plane = drm_plane_find(dev, file_priv, set->plane_id);
        if (!plane || plane->type != DRM_PLANE_TYPE_OVERLAY)
                return -ENOENT;
 
index 0cc999f..a79a759 100644 (file)
@@ -1385,7 +1385,7 @@ intel_tv_get_modes(struct drm_connector *connector)
                        mode_ptr->vsync_end = mode_ptr->vsync_start  + 1;
                mode_ptr->vtotal = vactive_s + 33;
 
-               tmp = (u64) tv_mode->refresh * mode_ptr->vtotal;
+               tmp = mul_u32_u32(tv_mode->refresh, mode_ptr->vtotal);
                tmp *= mode_ptr->htotal;
                tmp = div_u64(tmp, 1000000);
                mode_ptr->clock = (int) tmp;
index 0178ba4..2774778 100644 (file)
@@ -63,35 +63,35 @@ static int __intel_uc_reset_hw(struct drm_i915_private *dev_priv)
 void intel_uc_sanitize_options(struct drm_i915_private *dev_priv)
 {
        if (!HAS_GUC(dev_priv)) {
-               if (i915.enable_guc_loading > 0 ||
-                   i915.enable_guc_submission > 0)
+               if (i915_modparams.enable_guc_loading > 0 ||
+                   i915_modparams.enable_guc_submission > 0)
                        DRM_INFO("Ignoring GuC options, no hardware\n");
 
-               i915.enable_guc_loading = 0;
-               i915.enable_guc_submission = 0;
+               i915_modparams.enable_guc_loading = 0;
+               i915_modparams.enable_guc_submission = 0;
                return;
        }
 
        /* A negative value means "use platform default" */
-       if (i915.enable_guc_loading < 0)
-               i915.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
+       if (i915_modparams.enable_guc_loading < 0)
+               i915_modparams.enable_guc_loading = HAS_GUC_UCODE(dev_priv);
 
        /* Verify firmware version */
-       if (i915.enable_guc_loading) {
+       if (i915_modparams.enable_guc_loading) {
                if (HAS_HUC_UCODE(dev_priv))
                        intel_huc_select_fw(&dev_priv->huc);
 
                if (intel_guc_select_fw(&dev_priv->guc))
-                       i915.enable_guc_loading = 0;
+                       i915_modparams.enable_guc_loading = 0;
        }
 
        /* Can't enable guc submission without guc loaded */
-       if (!i915.enable_guc_loading)
-               i915.enable_guc_submission = 0;
+       if (!i915_modparams.enable_guc_loading)
+               i915_modparams.enable_guc_submission = 0;
 
        /* A negative value means "use platform default" */
-       if (i915.enable_guc_submission < 0)
-               i915.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
+       if (i915_modparams.enable_guc_submission < 0)
+               i915_modparams.enable_guc_submission = HAS_GUC_SCHED(dev_priv);
 }
 
 static void gen8_guc_raise_irq(struct intel_guc *guc)
@@ -290,7 +290,7 @@ static void guc_init_send_regs(struct intel_guc *guc)
 
 static void guc_capture_load_err_log(struct intel_guc *guc)
 {
-       if (!guc->log.vma || i915.guc_log_level < 0)
+       if (!guc->log.vma || i915_modparams.guc_log_level < 0)
                return;
 
        if (!guc->load_err_log)
@@ -328,12 +328,33 @@ static void guc_disable_communication(struct intel_guc *guc)
        guc->send = intel_guc_send_nop;
 }
 
+/**
+ * intel_guc_auth_huc() - Send action to GuC to authenticate HuC ucode
+ * @guc: intel_guc structure
+ * @rsa_offset: rsa offset w.r.t ggtt base of huc vma
+ *
+ * Triggers a HuC firmware authentication request to the GuC via intel_guc_send
+ * INTEL_GUC_ACTION_AUTHENTICATE_HUC interface. This function is invoked by
+ * intel_huc_auth().
+ *
+ * Return:     non-zero code on error
+ */
+int intel_guc_auth_huc(struct intel_guc *guc, u32 rsa_offset)
+{
+       u32 action[] = {
+               INTEL_GUC_ACTION_AUTHENTICATE_HUC,
+               rsa_offset
+       };
+
+       return intel_guc_send(guc, action, ARRAY_SIZE(action));
+}
+
 int intel_uc_init_hw(struct drm_i915_private *dev_priv)
 {
        struct intel_guc *guc = &dev_priv->guc;
        int ret, attempts;
 
-       if (!i915.enable_guc_loading)
+       if (!i915_modparams.enable_guc_loading)
                return 0;
 
        guc_disable_communication(guc);
@@ -342,7 +363,7 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
        /* We need to notify the guc whenever we change the GGTT */
        i915_ggtt_enable_guc(dev_priv);
 
-       if (i915.enable_guc_submission) {
+       if (i915_modparams.enable_guc_submission) {
                /*
                 * This is stuff we need to have available at fw load time
                 * if we are planning to enable submission later
@@ -390,9 +411,9 @@ int intel_uc_init_hw(struct drm_i915_private *dev_priv)
        if (ret)
                goto err_log_capture;
 
-       intel_guc_auth_huc(dev_priv);
-       if (i915.enable_guc_submission) {
-               if (i915.guc_log_level >= 0)
+       intel_huc_auth(&dev_priv->huc);
+       if (i915_modparams.enable_guc_submission) {
+               if (i915_modparams.guc_log_level >= 0)
                        gen9_enable_guc_interrupts(dev_priv);
 
                ret = i915_guc_submission_enable(dev_priv);
@@ -417,23 +438,24 @@ err_interrupts:
 err_log_capture:
        guc_capture_load_err_log(guc);
 err_submission:
-       if (i915.enable_guc_submission)
+       if (i915_modparams.enable_guc_submission)
                i915_guc_submission_fini(dev_priv);
 err_guc:
        i915_ggtt_disable_guc(dev_priv);
 
        DRM_ERROR("GuC init failed\n");
-       if (i915.enable_guc_loading > 1 || i915.enable_guc_submission > 1)
+       if (i915_modparams.enable_guc_loading > 1 ||
+           i915_modparams.enable_guc_submission > 1)
                ret = -EIO;
        else
                ret = 0;
 
-       if (i915.enable_guc_submission) {
-               i915.enable_guc_submission = 0;
+       if (i915_modparams.enable_guc_submission) {
+               i915_modparams.enable_guc_submission = 0;
                DRM_NOTE("Falling back from GuC submission to execlist mode\n");
        }
 
-       i915.enable_guc_loading = 0;
+       i915_modparams.enable_guc_loading = 0;
        DRM_NOTE("GuC firmware loading disabled\n");
 
        return ret;
@@ -443,15 +465,15 @@ void intel_uc_fini_hw(struct drm_i915_private *dev_priv)
 {
        guc_free_load_err_log(&dev_priv->guc);
 
-       if (!i915.enable_guc_loading)
+       if (!i915_modparams.enable_guc_loading)
                return;
 
-       if (i915.enable_guc_submission)
+       if (i915_modparams.enable_guc_submission)
                i915_guc_submission_disable(dev_priv);
 
        guc_disable_communication(&dev_priv->guc);
 
-       if (i915.enable_guc_submission) {
+       if (i915_modparams.enable_guc_submission) {
                gen9_disable_guc_interrupts(dev_priv);
                i915_guc_submission_fini(dev_priv);
        }
index 22ae52b..6966349 100644 (file)
@@ -52,17 +52,6 @@ struct drm_i915_gem_request;
  * GuC). The subsequent  pages of the client object constitute the work
  * queue (a circular array of work items), again described in the process
  * descriptor. Work queue pages are mapped momentarily as required.
- *
- * We also keep a few statistics on failures. Ideally, these should all
- * be zero!
- *   no_wq_space: times that the submission pre-check found no space was
- *                available in the work queue (note, the queue is shared,
- *                not per-engine). It is OK for this to be nonzero, but
- *                it should not be huge!
- *   b_fail: failed to ring the doorbell. This should never happen, unless
- *           somehow the hardware misbehaves, or maybe if the GuC firmware
- *           crashes? We probably need to reset the GPU to recover.
- *   retcode: errno from last guc_submit()
  */
 struct i915_guc_client {
        struct i915_vma *vma;
@@ -77,15 +66,8 @@ struct i915_guc_client {
 
        u16 doorbell_id;
        unsigned long doorbell_offset;
-       u32 doorbell_cookie;
 
        spinlock_t wq_lock;
-       uint32_t wq_offset;
-       uint32_t wq_size;
-       uint32_t wq_tail;
-       uint32_t wq_rsvd;
-       uint32_t no_wq_space;
-
        /* Per-engine counts of GuC submissions */
        uint64_t submissions[I915_NUM_ENGINES];
 };
@@ -229,6 +211,7 @@ void intel_uc_fini_hw(struct drm_i915_private *dev_priv);
 int intel_guc_sample_forcewake(struct intel_guc *guc);
 int intel_guc_send_nop(struct intel_guc *guc, const u32 *action, u32 len);
 int intel_guc_send_mmio(struct intel_guc *guc, const u32 *action, u32 len);
+int intel_guc_auth_huc(struct intel_guc *guc, u32 rsa_offset);
 
 static inline int intel_guc_send(struct intel_guc *guc, const u32 *action, u32 len)
 {
@@ -250,8 +233,6 @@ u32 intel_guc_wopcm_size(struct drm_i915_private *dev_priv);
 /* i915_guc_submission.c */
 int i915_guc_submission_init(struct drm_i915_private *dev_priv);
 int i915_guc_submission_enable(struct drm_i915_private *dev_priv);
-int i915_guc_wq_reserve(struct drm_i915_gem_request *rq);
-void i915_guc_wq_unreserve(struct drm_i915_gem_request *request);
 void i915_guc_submission_disable(struct drm_i915_private *dev_priv);
 void i915_guc_submission_fini(struct drm_i915_private *dev_priv);
 struct i915_vma *intel_guc_allocate_vma(struct intel_guc *guc, u32 size);
@@ -274,6 +255,6 @@ static inline u32 guc_ggtt_offset(struct i915_vma *vma)
 /* intel_huc.c */
 void intel_huc_select_fw(struct intel_huc *huc);
 void intel_huc_init_hw(struct intel_huc *huc);
-void intel_guc_auth_huc(struct drm_i915_private *dev_priv);
+void intel_huc_auth(struct intel_huc *huc);
 
 #endif
index 0529af7..b3c3f94 100644 (file)
@@ -436,7 +436,8 @@ void intel_uncore_resume_early(struct drm_i915_private *dev_priv)
 
 void intel_uncore_sanitize(struct drm_i915_private *dev_priv)
 {
-       i915.enable_rc6 = sanitize_rc6_option(dev_priv, i915.enable_rc6);
+       i915_modparams.enable_rc6 =
+               sanitize_rc6_option(dev_priv, i915_modparams.enable_rc6);
 
        /* BIOS often leaves RC6 enabled, but disable it for hw init */
        intel_sanitize_gt_powersave(dev_priv);
@@ -490,6 +491,57 @@ void intel_uncore_forcewake_get(struct drm_i915_private *dev_priv,
 }
 
 /**
+ * intel_uncore_forcewake_user_get - claim forcewake on behalf of userspace
+ * @dev_priv: i915 device instance
+ *
+ * This function is a wrapper around intel_uncore_forcewake_get() to acquire
+ * the GT powerwell and in the process disable our debugging for the
+ * duration of userspace's bypass.
+ */
+void intel_uncore_forcewake_user_get(struct drm_i915_private *dev_priv)
+{
+       spin_lock_irq(&dev_priv->uncore.lock);
+       if (!dev_priv->uncore.user_forcewake.count++) {
+               intel_uncore_forcewake_get__locked(dev_priv, FORCEWAKE_ALL);
+
+               /* Save and disable mmio debugging for the user bypass */
+               dev_priv->uncore.user_forcewake.saved_mmio_check =
+                       dev_priv->uncore.unclaimed_mmio_check;
+               dev_priv->uncore.user_forcewake.saved_mmio_debug =
+                       i915_modparams.mmio_debug;
+
+               dev_priv->uncore.unclaimed_mmio_check = 0;
+               i915_modparams.mmio_debug = 0;
+       }
+       spin_unlock_irq(&dev_priv->uncore.lock);
+}
+
+/**
+ * intel_uncore_forcewake_user_put - release forcewake on behalf of userspace
+ * @dev_priv: i915 device instance
+ *
+ * This function complements intel_uncore_forcewake_user_get() and releases
+ * the GT powerwell taken on behalf of the userspace bypass.
+ */
+void intel_uncore_forcewake_user_put(struct drm_i915_private *dev_priv)
+{
+       spin_lock_irq(&dev_priv->uncore.lock);
+       if (!--dev_priv->uncore.user_forcewake.count) {
+               if (intel_uncore_unclaimed_mmio(dev_priv))
+                       dev_info(dev_priv->drm.dev,
+                                "Invalid mmio detected during user access\n");
+
+               dev_priv->uncore.unclaimed_mmio_check =
+                       dev_priv->uncore.user_forcewake.saved_mmio_check;
+               i915_modparams.mmio_debug =
+                       dev_priv->uncore.user_forcewake.saved_mmio_debug;
+
+               intel_uncore_forcewake_put__locked(dev_priv, FORCEWAKE_ALL);
+       }
+       spin_unlock_irq(&dev_priv->uncore.lock);
+}
+
+/**
  * intel_uncore_forcewake_get__locked - grab forcewake domain references
  * @dev_priv: i915 device instance
  * @fw_domains: forcewake domains to get reference on
@@ -790,7 +842,8 @@ __unclaimed_reg_debug(struct drm_i915_private *dev_priv,
                 "Unclaimed %s register 0x%x\n",
                 read ? "read from" : "write to",
                 i915_mmio_reg_offset(reg)))
-               i915.mmio_debug--; /* Only report the first N failures */
+               /* Only report the first N failures */
+               i915_modparams.mmio_debug--;
 }
 
 static inline void
@@ -799,7 +852,7 @@ unclaimed_reg_debug(struct drm_i915_private *dev_priv,
                    const bool read,
                    const bool before)
 {
-       if (likely(!i915.mmio_debug))
+       if (likely(!i915_modparams.mmio_debug))
                return;
 
        __unclaimed_reg_debug(dev_priv, reg, read, before);
@@ -1241,102 +1294,101 @@ void intel_uncore_fini(struct drm_i915_private *dev_priv)
        intel_uncore_forcewake_reset(dev_priv, false);
 }
 
-#define GEN_RANGE(l, h) GENMASK((h) - 1, (l) - 1)
-
-static const struct register_whitelist {
-       i915_reg_t offset_ldw, offset_udw;
-       uint32_t size;
-       /* supported gens, 0x10 for 4, 0x30 for 4 and 5, etc. */
-       uint32_t gen_bitmask;
-} whitelist[] = {
-       { .offset_ldw = RING_TIMESTAMP(RENDER_RING_BASE),
-         .offset_udw = RING_TIMESTAMP_UDW(RENDER_RING_BASE),
-         .size = 8, .gen_bitmask = GEN_RANGE(4, 10) },
-};
+static const struct reg_whitelist {
+       i915_reg_t offset_ldw;
+       i915_reg_t offset_udw;
+       u16 gen_mask;
+       u8 size;
+} reg_read_whitelist[] = { {
+       .offset_ldw = RING_TIMESTAMP(RENDER_RING_BASE),
+       .offset_udw = RING_TIMESTAMP_UDW(RENDER_RING_BASE),
+       .gen_mask = INTEL_GEN_MASK(4, 10),
+       .size = 8
+} };
 
 int i915_reg_read_ioctl(struct drm_device *dev,
                        void *data, struct drm_file *file)
 {
        struct drm_i915_private *dev_priv = to_i915(dev);
        struct drm_i915_reg_read *reg = data;
-       struct register_whitelist const *entry = whitelist;
-       unsigned size;
-       i915_reg_t offset_ldw, offset_udw;
-       int i, ret = 0;
-
-       for (i = 0; i < ARRAY_SIZE(whitelist); i++, entry++) {
-               if (i915_mmio_reg_offset(entry->offset_ldw) == (reg->offset & -entry->size) &&
-                   (INTEL_INFO(dev_priv)->gen_mask & entry->gen_bitmask))
+       struct reg_whitelist const *entry;
+       unsigned int flags;
+       int remain;
+       int ret = 0;
+
+       entry = reg_read_whitelist;
+       remain = ARRAY_SIZE(reg_read_whitelist);
+       while (remain) {
+               u32 entry_offset = i915_mmio_reg_offset(entry->offset_ldw);
+
+               GEM_BUG_ON(!is_power_of_2(entry->size));
+               GEM_BUG_ON(entry->size > 8);
+               GEM_BUG_ON(entry_offset & (entry->size - 1));
+
+               if (INTEL_INFO(dev_priv)->gen_mask & entry->gen_mask &&
+                   entry_offset == (reg->offset & -entry->size))
                        break;
+               entry++;
+               remain--;
        }
 
-       if (i == ARRAY_SIZE(whitelist))
+       if (!remain)
                return -EINVAL;
 
-       /* We use the low bits to encode extra flags as the register should
-        * be naturally aligned (and those that are not so aligned merely
-        * limit the available flags for that register).
-        */
-       offset_ldw = entry->offset_ldw;
-       offset_udw = entry->offset_udw;
-       size = entry->size;
-       size |= reg->offset ^ i915_mmio_reg_offset(offset_ldw);
+       flags = reg->offset & (entry->size - 1);
 
        intel_runtime_pm_get(dev_priv);
-
-       switch (size) {
-       case 8 | 1:
-               reg->val = I915_READ64_2x32(offset_ldw, offset_udw);
-               break;
-       case 8:
-               reg->val = I915_READ64(offset_ldw);
-               break;
-       case 4:
-               reg->val = I915_READ(offset_ldw);
-               break;
-       case 2:
-               reg->val = I915_READ16(offset_ldw);
-               break;
-       case 1:
-               reg->val = I915_READ8(offset_ldw);
-               break;
-       default:
+       if (entry->size == 8 && flags == I915_REG_READ_8B_WA)
+               reg->val = I915_READ64_2x32(entry->offset_ldw,
+                                           entry->offset_udw);
+       else if (entry->size == 8 && flags == 0)
+               reg->val = I915_READ64(entry->offset_ldw);
+       else if (entry->size == 4 && flags == 0)
+               reg->val = I915_READ(entry->offset_ldw);
+       else if (entry->size == 2 && flags == 0)
+               reg->val = I915_READ16(entry->offset_ldw);
+       else if (entry->size == 1 && flags == 0)
+               reg->val = I915_READ8(entry->offset_ldw);
+       else
                ret = -EINVAL;
-               goto out;
-       }
-
-out:
        intel_runtime_pm_put(dev_priv);
+
        return ret;
 }
 
-static void gen3_stop_rings(struct drm_i915_private *dev_priv)
+static void gen3_stop_engine(struct intel_engine_cs *engine)
+{
+       struct drm_i915_private *dev_priv = engine->i915;
+       const u32 base = engine->mmio_base;
+       const i915_reg_t mode = RING_MI_MODE(base);
+
+       I915_WRITE_FW(mode, _MASKED_BIT_ENABLE(STOP_RING));
+       if (intel_wait_for_register_fw(dev_priv,
+                                      mode,
+                                      MODE_IDLE,
+                                      MODE_IDLE,
+                                      500))
+               DRM_DEBUG_DRIVER("%s: timed out on STOP_RING\n",
+                                engine->name);
+
+       I915_WRITE_FW(RING_CTL(base), 0);
+       I915_WRITE_FW(RING_HEAD(base), 0);
+       I915_WRITE_FW(RING_TAIL(base), 0);
+
+       /* Check acts as a post */
+       if (I915_READ_FW(RING_HEAD(base)) != 0)
+               DRM_DEBUG_DRIVER("%s: ring head not parked\n",
+                                engine->name);
+}
+
+static void i915_stop_engines(struct drm_i915_private *dev_priv,
+                             unsigned engine_mask)
 {
        struct intel_engine_cs *engine;
        enum intel_engine_id id;
 
-       for_each_engine(engine, dev_priv, id) {
-               const u32 base = engine->mmio_base;
-               const i915_reg_t mode = RING_MI_MODE(base);
-
-               I915_WRITE_FW(mode, _MASKED_BIT_ENABLE(STOP_RING));
-               if (intel_wait_for_register_fw(dev_priv,
-                                              mode,
-                                              MODE_IDLE,
-                                              MODE_IDLE,
-                                              500))
-                       DRM_DEBUG_DRIVER("%s: timed out on STOP_RING\n",
-                                        engine->name);
-
-               I915_WRITE_FW(RING_CTL(base), 0);
-               I915_WRITE_FW(RING_HEAD(base), 0);
-               I915_WRITE_FW(RING_TAIL(base), 0);
-
-               /* Check acts as a post */
-               if (I915_READ_FW(RING_HEAD(base)) != 0)
-                       DRM_DEBUG_DRIVER("%s: ring head not parked\n",
-                                        engine->name);
-       }
+       for_each_engine_masked(engine, dev_priv, engine_mask, id)
+               gen3_stop_engine(engine);
 }
 
 static bool i915_reset_complete(struct pci_dev *pdev)
@@ -1371,9 +1423,6 @@ static int g33_do_reset(struct drm_i915_private *dev_priv, unsigned engine_mask)
 {
        struct pci_dev *pdev = dev_priv->drm.pdev;
 
-       /* Stop engines before we reset; see g4x_do_reset() below for why. */
-       gen3_stop_rings(dev_priv);
-
        pci_write_config_byte(pdev, I915_GDRST, GRDOM_RESET_ENABLE);
        return wait_for(g4x_reset_complete(pdev), 500);
 }
@@ -1388,12 +1437,6 @@ static int g4x_do_reset(struct drm_i915_private *dev_priv, unsigned engine_mask)
                   I915_READ(VDECCLK_GATE_D) | VCP_UNIT_CLOCK_GATE_DISABLE);
        POSTING_READ(VDECCLK_GATE_D);
 
-       /* We stop engines, otherwise we might get failed reset and a
-        * dead gpu (on elk).
-        * WaMediaResetMainRingCleanup:ctg,elk (presumably)
-        */
-       gen3_stop_rings(dev_priv);
-
        pci_write_config_byte(pdev, I915_GDRST,
                              GRDOM_MEDIA | GRDOM_RESET_ENABLE);
        ret =  wait_for(g4x_reset_complete(pdev), 500);
@@ -1662,7 +1705,7 @@ typedef int (*reset_func)(struct drm_i915_private *, unsigned engine_mask);
 
 static reset_func intel_get_gpu_reset(struct drm_i915_private *dev_priv)
 {
-       if (!i915.reset)
+       if (!i915_modparams.reset)
                return NULL;
 
        if (INTEL_INFO(dev_priv)->gen >= 8)
@@ -1698,6 +1741,20 @@ int intel_gpu_reset(struct drm_i915_private *dev_priv, unsigned engine_mask)
         */
        intel_uncore_forcewake_get(dev_priv, FORCEWAKE_ALL);
        for (retry = 0; retry < 3; retry++) {
+
+               /* We stop engines, otherwise we might get failed reset and a
+                * dead gpu (on elk). Also as modern gpu as kbl can suffer
+                * from system hang if batchbuffer is progressing when
+                * the reset is issued, regardless of READY_TO_RESET ack.
+                * Thus assume it is best to stop engines on all gens
+                * where we have a gpu reset.
+                *
+                * WaMediaResetMainRingCleanup:ctg,elk (presumably)
+                *
+                * FIXME: Wa for more modern gens needs to be validated
+                */
+               i915_stop_engines(dev_priv, engine_mask);
+
                ret = reset(dev_priv, engine_mask);
                if (ret != -ETIMEDOUT)
                        break;
@@ -1722,7 +1779,7 @@ bool intel_has_reset_engine(struct drm_i915_private *dev_priv)
 {
        return (dev_priv->info.has_reset_engine &&
                !dev_priv->guc.execbuf_client &&
-               i915.reset >= 2);
+               i915_modparams.reset >= 2);
 }
 
 int intel_guc_reset(struct drm_i915_private *dev_priv)
@@ -1747,7 +1804,7 @@ bool intel_uncore_unclaimed_mmio(struct drm_i915_private *dev_priv)
 bool
 intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv)
 {
-       if (unlikely(i915.mmio_debug ||
+       if (unlikely(i915_modparams.mmio_debug ||
                     dev_priv->uncore.unclaimed_mmio_check <= 0))
                return false;
 
@@ -1755,7 +1812,7 @@ intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv)
                DRM_DEBUG("Unclaimed register detected, "
                          "enabling oneshot unclaimed register reporting. "
                          "Please use i915.mmio_debug=N for more information.\n");
-               i915.mmio_debug++;
+               i915_modparams.mmio_debug++;
                dev_priv->uncore.unclaimed_mmio_check--;
                return true;
        }
index 5f90278..03786f9 100644 (file)
@@ -102,6 +102,13 @@ struct intel_uncore {
                i915_reg_t reg_ack;
        } fw_domain[FW_DOMAIN_ID_COUNT];
 
+       struct {
+               unsigned int count;
+
+               int saved_mmio_check;
+               int saved_mmio_debug;
+       } user_forcewake;
+
        int unclaimed_mmio_check;
 };
 
@@ -144,6 +151,9 @@ void intel_uncore_forcewake_get__locked(struct drm_i915_private *dev_priv,
 void intel_uncore_forcewake_put__locked(struct drm_i915_private *dev_priv,
                                        enum forcewake_domains domains);
 
+void intel_uncore_forcewake_user_get(struct drm_i915_private *dev_priv);
+void intel_uncore_forcewake_user_put(struct drm_i915_private *dev_priv);
+
 int intel_wait_for_register(struct drm_i915_private *dev_priv,
                            i915_reg_t reg,
                            u32 mask,
index 7a44dab..4795877 100644 (file)
@@ -121,7 +121,7 @@ out:
 
 static unsigned int random_engine(struct rnd_state *rnd)
 {
-       return ((u64)prandom_u32_state(rnd) * I915_NUM_ENGINES) >> 32;
+       return i915_prandom_u32_max_state(I915_NUM_ENGINES, rnd);
 }
 
 static int bench_sync(void *arg)
index 222c511..b85872c 100644 (file)
@@ -41,11 +41,6 @@ u64 i915_prandom_u64_state(struct rnd_state *rnd)
        return x;
 }
 
-static inline u32 i915_prandom_u32_max_state(u32 ep_ro, struct rnd_state *state)
-{
-       return upper_32_bits((u64)prandom_u32_state(state) * ep_ro);
-}
-
 void i915_random_reorder(unsigned int *order, unsigned int count,
                         struct rnd_state *state)
 {
index 6c93798..7dffedc 100644 (file)
 
 u64 i915_prandom_u64_state(struct rnd_state *rnd);
 
+static inline u32 i915_prandom_u32_max_state(u32 ep_ro, struct rnd_state *state)
+{
+       return upper_32_bits(mul_u32_u32(prandom_u32_state(state), ep_ro));
+}
+
 unsigned int *i915_random_order(unsigned int count,
                                struct rnd_state *state);
 void i915_random_reorder(unsigned int *order,
index 02e52a1..377c1de 100644 (file)
@@ -621,7 +621,12 @@ static int igt_wait_reset(void *arg)
        __i915_add_request(rq, true);
 
        if (!wait_for_hang(&h, rq)) {
-               pr_err("Failed to start request %x\n", rq->fence.seqno);
+               pr_err("Failed to start request %x, at %x\n",
+                      rq->fence.seqno, hws_seqno(&h, rq));
+
+               i915_reset(i915, 0);
+               i915_gem_set_wedged(i915);
+
                err = -EIO;
                goto out_rq;
        }
@@ -708,10 +713,14 @@ static int igt_reset_queue(void *arg)
                        __i915_add_request(rq, true);
 
                        if (!wait_for_hang(&h, prev)) {
-                               pr_err("Failed to start request %x\n",
-                                      prev->fence.seqno);
+                               pr_err("Failed to start request %x, at %x\n",
+                                      prev->fence.seqno, hws_seqno(&h, prev));
                                i915_gem_request_put(rq);
                                i915_gem_request_put(prev);
+
+                               i915_reset(i915, 0);
+                               i915_gem_set_wedged(i915);
+
                                err = -EIO;
                                goto fini;
                        }
@@ -806,7 +815,12 @@ static int igt_handle_error(void *arg)
        __i915_add_request(rq, true);
 
        if (!wait_for_hang(&h, rq)) {
-               pr_err("Failed to start request %x\n", rq->fence.seqno);
+               pr_err("Failed to start request %x, at %x\n",
+                      rq->fence.seqno, hws_seqno(&h, rq));
+
+               i915_reset(i915, 0);
+               i915_gem_set_wedged(i915);
+
                err = -EIO;
                goto err_request;
        }
@@ -843,8 +857,8 @@ err_unlock:
 int intel_hangcheck_live_selftests(struct drm_i915_private *i915)
 {
        static const struct i915_subtest tests[] = {
+               SUBTEST(igt_global_reset), /* attempt to recover GPU first */
                SUBTEST(igt_hang_sanitycheck),
-               SUBTEST(igt_global_reset),
                SUBTEST(igt_reset_engine),
                SUBTEST(igt_reset_active_engines),
                SUBTEST(igt_wait_reset),
index 6787234..2388424 100644 (file)
@@ -146,6 +146,11 @@ struct drm_i915_private *mock_gem_device(void)
        dev_set_name(&pdev->dev, "mock");
        dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 
+#if IS_ENABLED(CONFIG_IOMMU_API)
+       /* hack to disable iommu for the fake device; force identity mapping */
+       pdev->dev.archdata.iommu = (void *)-1;
+#endif
+
        dev_pm_domain_set(&pdev->dev, &pm_domain);
        pm_runtime_enable(&pdev->dev);
        pm_runtime_dont_use_autosuspend(&pdev->dev);
index 5e9cd4c..68e5d9c 100644 (file)
@@ -1670,7 +1670,7 @@ static struct drm_encoder *mga_connector_best_encoder(struct drm_connector
        int enc_id = connector->encoder_ids[0];
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
index 70d8e0d..69d6e61 100644 (file)
@@ -373,7 +373,7 @@ find_encoder(struct drm_connector *connector, int type)
                if (!id)
                        break;
 
-               enc = drm_encoder_find(dev, id);
+               enc = drm_encoder_find(dev, NULL, id);
                if (!enc)
                        continue;
                nv_encoder = nouveau_encoder(enc);
@@ -441,7 +441,7 @@ nouveau_connector_ddc_detect(struct drm_connector *connector)
                if (id == 0)
                        break;
 
-               encoder = drm_encoder_find(dev, id);
+               encoder = drm_encoder_find(dev, NULL, id);
                if (!encoder)
                        continue;
                nv_encoder = nouveau_encoder(encoder);
index d9d25df..4600d38 100644 (file)
@@ -165,11 +165,15 @@ static bool hdmic_detect(struct omap_dss_device *dssdev)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
        struct omap_dss_device *in = ddata->in;
+       bool connected;
 
        if (gpio_is_valid(ddata->hpd_gpio))
-               return gpio_get_value_cansleep(ddata->hpd_gpio);
+               connected = gpio_get_value_cansleep(ddata->hpd_gpio);
        else
-               return in->ops.hdmi->detect(in);
+               connected = in->ops.hdmi->detect(in);
+       if (!connected && in->ops.hdmi->lost_hotplug)
+               in->ops.hdmi->lost_hotplug(in);
+       return connected;
 }
 
 static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
index a9e9d66..e3d98d7 100644 (file)
@@ -51,6 +51,8 @@ static int tpd_connect(struct omap_dss_device *dssdev,
        dssdev->dst = dst;
 
        gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 1);
+       gpiod_set_value_cansleep(ddata->ls_oe_gpio, 1);
+
        /* DC-DC converter needs at max 300us to get to 90% of 5V */
        udelay(300);
 
@@ -69,6 +71,7 @@ static void tpd_disconnect(struct omap_dss_device *dssdev,
                return;
 
        gpiod_set_value_cansleep(ddata->ct_cp_hpd_gpio, 0);
+       gpiod_set_value_cansleep(ddata->ls_oe_gpio, 0);
 
        dst->src = NULL;
        dssdev->dst = NULL;
@@ -146,25 +149,22 @@ static int tpd_read_edid(struct omap_dss_device *dssdev,
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
        struct omap_dss_device *in = ddata->in;
-       int r;
 
        if (!gpiod_get_value_cansleep(ddata->hpd_gpio))
                return -ENODEV;
 
-       gpiod_set_value_cansleep(ddata->ls_oe_gpio, 1);
-
-       r = in->ops.hdmi->read_edid(in, edid, len);
-
-       gpiod_set_value_cansleep(ddata->ls_oe_gpio, 0);
-
-       return r;
+       return in->ops.hdmi->read_edid(in, edid, len);
 }
 
 static bool tpd_detect(struct omap_dss_device *dssdev)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
+       struct omap_dss_device *in = ddata->in;
+       bool connected = gpiod_get_value_cansleep(ddata->hpd_gpio);
 
-       return gpiod_get_value_cansleep(ddata->hpd_gpio);
+       if (!connected && in->ops.hdmi->lost_hotplug)
+               in->ops.hdmi->lost_hotplug(in);
+       return connected;
 }
 
 static int tpd_register_hpd_cb(struct omap_dss_device *dssdev,
index 8b87d5c..f24ebf7 100644 (file)
@@ -65,6 +65,14 @@ config OMAP4_DSS_HDMI
        help
          HDMI support for OMAP4 based SoCs.
 
+config OMAP4_DSS_HDMI_CEC
+       bool "Enable HDMI CEC support for OMAP4"
+       depends on OMAP4_DSS_HDMI
+       select CEC_CORE
+       default y
+       ---help---
+         When selected the HDMI transmitter will support the CEC feature.
+
 config OMAP5_DSS_HDMI
        bool "HDMI support for OMAP5"
        default n
index 142ce5a..3c5644c 100644 (file)
@@ -14,5 +14,6 @@ omapdss-$(CONFIG_OMAP2_DSS_DSI) += dsi.o
 omapdss-$(CONFIG_OMAP2_DSS_HDMI_COMMON) += hdmi_common.o hdmi_wp.o hdmi_pll.o \
        hdmi_phy.o
 omapdss-$(CONFIG_OMAP4_DSS_HDMI) += hdmi4.o hdmi4_core.o
+omapdss-$(CONFIG_OMAP4_DSS_HDMI_CEC) += hdmi4_cec.o
 omapdss-$(CONFIG_OMAP5_DSS_HDMI) += hdmi5.o hdmi5_core.o
 ccflags-$(CONFIG_OMAP2_DSS_DEBUG) += -DDEBUG
index a820b39..c2609c4 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/platform_device.h>
 #include <linux/hdmi.h>
 #include <sound/omap-hdmi-audio.h>
+#include <media/cec.h>
 
 #include "omapdss.h"
 #include "dss.h"
@@ -264,6 +265,10 @@ struct hdmi_core_data {
        void __iomem *base;
        bool cts_swmode;
        bool audio_use_mclk;
+
+       struct hdmi_wp_data *wp;
+       unsigned int core_pwr_cnt;
+       struct cec_adapter *adap;
 };
 
 static inline void hdmi_write_reg(void __iomem *base_addr, const u32 idx,
@@ -373,7 +378,7 @@ struct omap_hdmi {
        bool audio_configured;
        struct omap_dss_audio audio_config;
 
-       /* This lock should be taken when booleans bellow are touched. */
+       /* This lock should be taken when booleans below are touched. */
        spinlock_t audio_playing_lock;
        bool audio_playing;
        bool display_enabled;
index f169348..a598dfd 100644 (file)
 #include <linux/of.h>
 #include <linux/of_graph.h>
 #include <sound/omap-hdmi-audio.h>
+#include <media/cec.h>
 
 #include "omapdss.h"
 #include "hdmi4_core.h"
+#include "hdmi4_cec.h"
 #include "dss.h"
 #include "hdmi.h"
 
@@ -70,7 +72,8 @@ static void hdmi_runtime_put(void)
 
 static irqreturn_t hdmi_irq_handler(int irq, void *data)
 {
-       struct hdmi_wp_data *wp = data;
+       struct omap_hdmi *hdmi = data;
+       struct hdmi_wp_data *wp = &hdmi->wp;
        u32 irqstatus;
 
        irqstatus = hdmi_wp_get_irqstatus(wp);
@@ -95,6 +98,13 @@ static irqreturn_t hdmi_irq_handler(int irq, void *data)
        } else if (irqstatus & HDMI_IRQ_LINK_DISCONNECT) {
                hdmi_wp_set_phy_pwr(wp, HDMI_PHYPWRCMD_LDOON);
        }
+       if (irqstatus & HDMI_IRQ_CORE) {
+               u32 intr4 = hdmi_read_reg(hdmi->core.base, HDMI_CORE_SYS_INTR4);
+
+               hdmi_write_reg(hdmi->core.base, HDMI_CORE_SYS_INTR4, intr4);
+               if (intr4 & 8)
+                       hdmi4_cec_irq(&hdmi->core);
+       }
 
        return IRQ_HANDLED;
 }
@@ -123,14 +133,19 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)
 {
        int r;
 
+       if (hdmi.core.core_pwr_cnt++)
+               return 0;
+
        r = regulator_enable(hdmi.vdda_reg);
        if (r)
-               return r;
+               goto err_reg_enable;
 
        r = hdmi_runtime_get();
        if (r)
                goto err_runtime_get;
 
+       hdmi4_core_powerdown_disable(&hdmi.core);
+
        /* Make selection of HDMI in DSS */
        dss_select_hdmi_venc_clk_source(DSS_HDMI_M_PCLK);
 
@@ -140,12 +155,17 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)
 
 err_runtime_get:
        regulator_disable(hdmi.vdda_reg);
+err_reg_enable:
+       hdmi.core.core_pwr_cnt--;
 
        return r;
 }
 
 static void hdmi_power_off_core(struct omap_dss_device *dssdev)
 {
+       if (--hdmi.core.core_pwr_cnt)
+               return;
+
        hdmi.core_enabled = false;
 
        hdmi_runtime_put();
@@ -166,8 +186,8 @@ static int hdmi_power_on_full(struct omap_dss_device *dssdev)
                return r;
 
        /* disable and clear irqs */
-       hdmi_wp_clear_irqenable(wp, 0xffffffff);
-       hdmi_wp_set_irqstatus(wp, 0xffffffff);
+       hdmi_wp_clear_irqenable(wp, ~HDMI_IRQ_CORE);
+       hdmi_wp_set_irqstatus(wp, ~HDMI_IRQ_CORE);
 
        vm = &hdmi.cfg.vm;
 
@@ -242,7 +262,7 @@ static void hdmi_power_off_full(struct omap_dss_device *dssdev)
 {
        enum omap_channel channel = dssdev->dispc_channel;
 
-       hdmi_wp_clear_irqenable(&hdmi.wp, 0xffffffff);
+       hdmi_wp_clear_irqenable(&hdmi.wp, ~HDMI_IRQ_CORE);
 
        hdmi_wp_video_stop(&hdmi.wp);
 
@@ -393,11 +413,11 @@ static void hdmi_display_disable(struct omap_dss_device *dssdev)
        mutex_unlock(&hdmi.lock);
 }
 
-static int hdmi_core_enable(struct omap_dss_device *dssdev)
+int hdmi4_core_enable(struct omap_dss_device *dssdev)
 {
        int r = 0;
 
-       DSSDBG("ENTER omapdss_hdmi_core_enable\n");
+       DSSDBG("ENTER omapdss_hdmi4_core_enable\n");
 
        mutex_lock(&hdmi.lock);
 
@@ -415,9 +435,9 @@ err0:
        return r;
 }
 
-static void hdmi_core_disable(struct omap_dss_device *dssdev)
+void hdmi4_core_disable(struct omap_dss_device *dssdev)
 {
-       DSSDBG("Enter omapdss_hdmi_core_disable\n");
+       DSSDBG("Enter omapdss_hdmi4_core_disable\n");
 
        mutex_lock(&hdmi.lock);
 
@@ -475,19 +495,28 @@ static int hdmi_read_edid(struct omap_dss_device *dssdev,
        need_enable = hdmi.core_enabled == false;
 
        if (need_enable) {
-               r = hdmi_core_enable(dssdev);
+               r = hdmi4_core_enable(dssdev);
                if (r)
                        return r;
        }
 
        r = read_edid(edid, len);
-
+       if (r >= 256)
+               hdmi4_cec_set_phys_addr(&hdmi.core,
+                                       cec_get_edid_phys_addr(edid, r, NULL));
+       else
+               hdmi4_cec_set_phys_addr(&hdmi.core, CEC_PHYS_ADDR_INVALID);
        if (need_enable)
-               hdmi_core_disable(dssdev);
+               hdmi4_core_disable(dssdev);
 
        return r;
 }
 
+static void hdmi_lost_hotplug(struct omap_dss_device *dssdev)
+{
+       hdmi4_cec_set_phys_addr(&hdmi.core, CEC_PHYS_ADDR_INVALID);
+}
+
 static int hdmi_set_infoframe(struct omap_dss_device *dssdev,
                const struct hdmi_avi_infoframe *avi)
 {
@@ -514,6 +543,7 @@ static const struct omapdss_hdmi_ops hdmi_ops = {
        .get_timings            = hdmi_display_get_timings,
 
        .read_edid              = hdmi_read_edid,
+       .lost_hotplug           = hdmi_lost_hotplug,
        .set_infoframe          = hdmi_set_infoframe,
        .set_hdmi_mode          = hdmi_set_hdmi_mode,
 };
@@ -715,6 +745,10 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
        if (r)
                goto err;
 
+       r = hdmi4_cec_init(pdev, &hdmi.core, &hdmi.wp);
+       if (r)
+               goto err;
+
        irq = platform_get_irq(pdev, 0);
        if (irq < 0) {
                DSSERR("platform_get_irq failed\n");
@@ -724,7 +758,7 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
 
        r = devm_request_threaded_irq(&pdev->dev, irq,
                        NULL, hdmi_irq_handler,
-                       IRQF_ONESHOT, "OMAP HDMI", &hdmi.wp);
+                       IRQF_ONESHOT, "OMAP HDMI", &hdmi);
        if (r) {
                DSSERR("HDMI IRQ request failed\n");
                goto err;
@@ -759,6 +793,8 @@ static void hdmi4_unbind(struct device *dev, struct device *master, void *data)
 
        hdmi_uninit_output(pdev);
 
+       hdmi4_cec_uninit(&hdmi.core);
+
        hdmi_pll_uninit(&hdmi.pll);
 
        pm_runtime_disable(&pdev->dev);
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_cec.c b/drivers/gpu/drm/omapdrm/dss/hdmi4_cec.c
new file mode 100644 (file)
index 0000000..d86873f
--- /dev/null
@@ -0,0 +1,381 @@
+/*
+ * HDMI CEC
+ *
+ * Based on the CEC code from hdmi_ti_4xxx_ip.c from Android.
+ *
+ * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
+ * Authors: Yong Zhi
+ *     Mythri pk <mythripk@ti.com>
+ *
+ * Heavily modified to use the linux CEC framework:
+ *
+ * Copyright 2016-2017 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
+ *
+ * This program is free software; you may redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <linux/kernel.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/platform_device.h>
+#include <linux/slab.h>
+
+#include "dss.h"
+#include "hdmi.h"
+#include "hdmi4_core.h"
+#include "hdmi4_cec.h"
+
+/* HDMI CEC */
+#define HDMI_CEC_DEV_ID                         0x900
+#define HDMI_CEC_SPEC                           0x904
+
+/* Not really a debug register, more a low-level control register */
+#define HDMI_CEC_DBG_3                          0x91C
+#define HDMI_CEC_TX_INIT                        0x920
+#define HDMI_CEC_TX_DEST                        0x924
+#define HDMI_CEC_SETUP                          0x938
+#define HDMI_CEC_TX_COMMAND                     0x93C
+#define HDMI_CEC_TX_OPERAND                     0x940
+#define HDMI_CEC_TRANSMIT_DATA                  0x97C
+#define HDMI_CEC_CA_7_0                         0x988
+#define HDMI_CEC_CA_15_8                        0x98C
+#define HDMI_CEC_INT_STATUS_0                   0x998
+#define HDMI_CEC_INT_STATUS_1                   0x99C
+#define HDMI_CEC_INT_ENABLE_0                   0x990
+#define HDMI_CEC_INT_ENABLE_1                   0x994
+#define HDMI_CEC_RX_CONTROL                     0x9B0
+#define HDMI_CEC_RX_COUNT                       0x9B4
+#define HDMI_CEC_RX_CMD_HEADER                  0x9B8
+#define HDMI_CEC_RX_COMMAND                     0x9BC
+#define HDMI_CEC_RX_OPERAND                     0x9C0
+
+#define HDMI_CEC_TX_FIFO_INT_MASK              0x64
+#define HDMI_CEC_RETRANSMIT_CNT_INT_MASK       0x2
+
+#define HDMI_CORE_CEC_RETRY    200
+
+static void hdmi_cec_received_msg(struct hdmi_core_data *core)
+{
+       u32 cnt = hdmi_read_reg(core->base, HDMI_CEC_RX_COUNT) & 0xff;
+
+       /* While there are CEC frames in the FIFO */
+       while (cnt & 0x70) {
+               /* and the frame doesn't have an error */
+               if (!(cnt & 0x80)) {
+                       struct cec_msg msg = {};
+                       unsigned int i;
+
+                       /* then read the message */
+                       msg.len = cnt & 0xf;
+                       msg.msg[0] = hdmi_read_reg(core->base,
+                                                  HDMI_CEC_RX_CMD_HEADER);
+                       msg.msg[1] = hdmi_read_reg(core->base,
+                                                  HDMI_CEC_RX_COMMAND);
+                       for (i = 0; i < msg.len; i++) {
+                               unsigned int reg = HDMI_CEC_RX_OPERAND + i * 4;
+
+                               msg.msg[2 + i] =
+                                       hdmi_read_reg(core->base, reg);
+                       }
+                       msg.len += 2;
+                       cec_received_msg(core->adap, &msg);
+               }
+               /* Clear the current frame from the FIFO */
+               hdmi_write_reg(core->base, HDMI_CEC_RX_CONTROL, 1);
+               /* Wait until the current frame is cleared */
+               while (hdmi_read_reg(core->base, HDMI_CEC_RX_CONTROL) & 1)
+                       udelay(1);
+               /*
+                * Re-read the count register and loop to see if there are
+                * more messages in the FIFO.
+                */
+               cnt = hdmi_read_reg(core->base, HDMI_CEC_RX_COUNT) & 0xff;
+       }
+}
+
+static void hdmi_cec_transmit_fifo_empty(struct hdmi_core_data *core, u32 stat1)
+{
+       if (stat1 & 2) {
+               u32 dbg3 = hdmi_read_reg(core->base, HDMI_CEC_DBG_3);
+
+               cec_transmit_done(core->adap,
+                                 CEC_TX_STATUS_NACK |
+                                 CEC_TX_STATUS_MAX_RETRIES,
+                                 0, (dbg3 >> 4) & 7, 0, 0);
+       } else if (stat1 & 1) {
+               cec_transmit_done(core->adap,
+                                 CEC_TX_STATUS_ARB_LOST |
+                                 CEC_TX_STATUS_MAX_RETRIES,
+                                 0, 0, 0, 0);
+       } else if (stat1 == 0) {
+               cec_transmit_done(core->adap, CEC_TX_STATUS_OK,
+                                 0, 0, 0, 0);
+       }
+}
+
+void hdmi4_cec_irq(struct hdmi_core_data *core)
+{
+       u32 stat0 = hdmi_read_reg(core->base, HDMI_CEC_INT_STATUS_0);
+       u32 stat1 = hdmi_read_reg(core->base, HDMI_CEC_INT_STATUS_1);
+
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_0, stat0);
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_1, stat1);
+
+       if (stat0 & 0x40)
+               REG_FLD_MOD(core->base, HDMI_CEC_DBG_3, 0x1, 7, 7);
+       else if (stat0 & 0x24)
+               hdmi_cec_transmit_fifo_empty(core, stat1);
+       if (stat1 & 2) {
+               u32 dbg3 = hdmi_read_reg(core->base, HDMI_CEC_DBG_3);
+
+               cec_transmit_done(core->adap,
+                                 CEC_TX_STATUS_NACK |
+                                 CEC_TX_STATUS_MAX_RETRIES,
+                                 0, (dbg3 >> 4) & 7, 0, 0);
+       } else if (stat1 & 1) {
+               cec_transmit_done(core->adap,
+                                 CEC_TX_STATUS_ARB_LOST |
+                                 CEC_TX_STATUS_MAX_RETRIES,
+                                 0, 0, 0, 0);
+       }
+       if (stat0 & 0x02)
+               hdmi_cec_received_msg(core);
+       if (stat1 & 0x3)
+               REG_FLD_MOD(core->base, HDMI_CEC_DBG_3, 0x1, 7, 7);
+}
+
+static bool hdmi_cec_clear_tx_fifo(struct cec_adapter *adap)
+{
+       struct hdmi_core_data *core = cec_get_drvdata(adap);
+       int retry = HDMI_CORE_CEC_RETRY;
+       int temp;
+
+       REG_FLD_MOD(core->base, HDMI_CEC_DBG_3, 0x1, 7, 7);
+       while (retry) {
+               temp = hdmi_read_reg(core->base, HDMI_CEC_DBG_3);
+               if (FLD_GET(temp, 7, 7) == 0)
+                       break;
+               retry--;
+       }
+       return retry != 0;
+}
+
+static bool hdmi_cec_clear_rx_fifo(struct cec_adapter *adap)
+{
+       struct hdmi_core_data *core = cec_get_drvdata(adap);
+       int retry = HDMI_CORE_CEC_RETRY;
+       int temp;
+
+       hdmi_write_reg(core->base, HDMI_CEC_RX_CONTROL, 0x3);
+       retry = HDMI_CORE_CEC_RETRY;
+       while (retry) {
+               temp = hdmi_read_reg(core->base, HDMI_CEC_RX_CONTROL);
+               if (FLD_GET(temp, 1, 0) == 0)
+                       break;
+               retry--;
+       }
+       return retry != 0;
+}
+
+static int hdmi_cec_adap_enable(struct cec_adapter *adap, bool enable)
+{
+       struct hdmi_core_data *core = cec_get_drvdata(adap);
+       int temp, err;
+
+       if (!enable) {
+               hdmi_write_reg(core->base, HDMI_CEC_INT_ENABLE_0, 0);
+               hdmi_write_reg(core->base, HDMI_CEC_INT_ENABLE_1, 0);
+               REG_FLD_MOD(core->base, HDMI_CORE_SYS_INTR_UNMASK4, 0, 3, 3);
+               hdmi_wp_clear_irqenable(core->wp, HDMI_IRQ_CORE);
+               hdmi_wp_set_irqstatus(core->wp, HDMI_IRQ_CORE);
+               hdmi4_core_disable(NULL);
+               return 0;
+       }
+       err = hdmi4_core_enable(NULL);
+       if (err)
+               return err;
+
+       /* Clear TX FIFO */
+       if (!hdmi_cec_clear_tx_fifo(adap)) {
+               pr_err("cec-%s: could not clear TX FIFO\n", adap->name);
+               return -EIO;
+       }
+
+       /* Clear RX FIFO */
+       if (!hdmi_cec_clear_rx_fifo(adap)) {
+               pr_err("cec-%s: could not clear RX FIFO\n", adap->name);
+               return -EIO;
+       }
+
+       /* Clear CEC interrupts */
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_1,
+               hdmi_read_reg(core->base, HDMI_CEC_INT_STATUS_1));
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_0,
+               hdmi_read_reg(core->base, HDMI_CEC_INT_STATUS_0));
+
+       /* Enable HDMI core interrupts */
+       hdmi_wp_set_irqenable(core->wp, HDMI_IRQ_CORE);
+       /* Unmask CEC interrupt */
+       REG_FLD_MOD(core->base, HDMI_CORE_SYS_INTR_UNMASK4, 0x1, 3, 3);
+       /*
+        * Enable CEC interrupts:
+        * Transmit Buffer Full/Empty Change event
+        * Transmitter FIFO Empty event
+        * Receiver FIFO Not Empty event
+        */
+       hdmi_write_reg(core->base, HDMI_CEC_INT_ENABLE_0, 0x26);
+       /*
+        * Enable CEC interrupts:
+        * RX FIFO Overrun Error event
+        * Short Pulse Detected event
+        * Frame Retransmit Count Exceeded event
+        * Start Bit Irregularity event
+        */
+       hdmi_write_reg(core->base, HDMI_CEC_INT_ENABLE_1, 0x0f);
+
+       /* cec calibration enable (self clearing) */
+       hdmi_write_reg(core->base, HDMI_CEC_SETUP, 0x03);
+       msleep(20);
+       hdmi_write_reg(core->base, HDMI_CEC_SETUP, 0x04);
+
+       temp = hdmi_read_reg(core->base, HDMI_CEC_SETUP);
+       if (FLD_GET(temp, 4, 4) != 0) {
+               temp = FLD_MOD(temp, 0, 4, 4);
+               hdmi_write_reg(core->base, HDMI_CEC_SETUP, temp);
+
+               /*
+                * If we enabled CEC in middle of a CEC message on the bus,
+                * we could have start bit irregularity and/or short
+                * pulse event. Clear them now.
+                */
+               temp = hdmi_read_reg(core->base, HDMI_CEC_INT_STATUS_1);
+               temp = FLD_MOD(0x0, 0x5, 2, 0);
+               hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_1, temp);
+       }
+       return 0;
+}
+
+static int hdmi_cec_adap_log_addr(struct cec_adapter *adap, u8 log_addr)
+{
+       struct hdmi_core_data *core = cec_get_drvdata(adap);
+       u32 v;
+
+       if (log_addr == CEC_LOG_ADDR_INVALID) {
+               hdmi_write_reg(core->base, HDMI_CEC_CA_7_0, 0);
+               hdmi_write_reg(core->base, HDMI_CEC_CA_15_8, 0);
+               return 0;
+       }
+       if (log_addr <= 7) {
+               v = hdmi_read_reg(core->base, HDMI_CEC_CA_7_0);
+               v |= 1 << log_addr;
+               hdmi_write_reg(core->base, HDMI_CEC_CA_7_0, v);
+       } else {
+               v = hdmi_read_reg(core->base, HDMI_CEC_CA_15_8);
+               v |= 1 << (log_addr - 8);
+               hdmi_write_reg(core->base, HDMI_CEC_CA_15_8, v);
+       }
+       return 0;
+}
+
+static int hdmi_cec_adap_transmit(struct cec_adapter *adap, u8 attempts,
+                                  u32 signal_free_time, struct cec_msg *msg)
+{
+       struct hdmi_core_data *core = cec_get_drvdata(adap);
+       int temp;
+       u32 i;
+
+       /* Clear TX FIFO */
+       if (!hdmi_cec_clear_tx_fifo(adap)) {
+               pr_err("cec-%s: could not clear TX FIFO for transmit\n",
+                      adap->name);
+               return -EIO;
+       }
+
+       /* Clear TX interrupts */
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_0,
+                      HDMI_CEC_TX_FIFO_INT_MASK);
+
+       hdmi_write_reg(core->base, HDMI_CEC_INT_STATUS_1,
+                      HDMI_CEC_RETRANSMIT_CNT_INT_MASK);
+
+       /* Set the retry count */
+       REG_FLD_MOD(core->base, HDMI_CEC_DBG_3, attempts - 1, 6, 4);
+
+       /* Set the initiator addresses */
+       hdmi_write_reg(core->base, HDMI_CEC_TX_INIT, cec_msg_initiator(msg));
+
+       /* Set destination id */
+       temp = cec_msg_destination(msg);
+       if (msg->len == 1)
+               temp |= 0x80;
+       hdmi_write_reg(core->base, HDMI_CEC_TX_DEST, temp);
+       if (msg->len == 1)
+               return 0;
+
+       /* Setup command and arguments for the command */
+       hdmi_write_reg(core->base, HDMI_CEC_TX_COMMAND, msg->msg[1]);
+
+       for (i = 0; i < msg->len - 2; i++)
+               hdmi_write_reg(core->base, HDMI_CEC_TX_OPERAND + i * 4,
+                              msg->msg[2 + i]);
+
+       /* Operand count */
+       hdmi_write_reg(core->base, HDMI_CEC_TRANSMIT_DATA,
+                      (msg->len - 2) | 0x10);
+       return 0;
+}
+
+static const struct cec_adap_ops hdmi_cec_adap_ops = {
+       .adap_enable = hdmi_cec_adap_enable,
+       .adap_log_addr = hdmi_cec_adap_log_addr,
+       .adap_transmit = hdmi_cec_adap_transmit,
+};
+
+void hdmi4_cec_set_phys_addr(struct hdmi_core_data *core, u16 pa)
+{
+       cec_s_phys_addr(core->adap, pa, false);
+}
+
+int hdmi4_cec_init(struct platform_device *pdev, struct hdmi_core_data *core,
+                 struct hdmi_wp_data *wp)
+{
+       const u32 caps = CEC_CAP_TRANSMIT | CEC_CAP_LOG_ADDRS |
+                        CEC_CAP_PASSTHROUGH | CEC_CAP_RC;
+       unsigned int ret;
+
+       core->adap = cec_allocate_adapter(&hdmi_cec_adap_ops, core,
+               "omap4", caps, CEC_MAX_LOG_ADDRS);
+       ret = PTR_ERR_OR_ZERO(core->adap);
+       if (ret < 0)
+               return ret;
+       core->wp = wp;
+
+       /*
+        * Initialize CEC clock divider: CEC needs 2MHz clock hence
+        * set the devider to 24 to get 48/24=2MHz clock
+        */
+       REG_FLD_MOD(core->wp->base, HDMI_WP_CLK, 0x18, 5, 0);
+
+       ret = cec_register_adapter(core->adap, &pdev->dev);
+       if (ret < 0) {
+               cec_delete_adapter(core->adap);
+               return ret;
+       }
+       return 0;
+}
+
+void hdmi4_cec_uninit(struct hdmi_core_data *core)
+{
+       cec_unregister_adapter(core->adap);
+}
diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4_cec.h b/drivers/gpu/drm/omapdrm/dss/hdmi4_cec.h
new file mode 100644 (file)
index 0000000..0292337
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * HDMI header definition for OMAP4 HDMI CEC IP
+ *
+ * Copyright 2016-2017 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
+ *
+ * This program is free software; you may redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef _HDMI4_CEC_H_
+#define _HDMI4_CEC_H_
+
+struct hdmi_core_data;
+struct hdmi_wp_data;
+struct platform_device;
+
+/* HDMI CEC funcs */
+#ifdef CONFIG_OMAP4_DSS_HDMI_CEC
+void hdmi4_cec_set_phys_addr(struct hdmi_core_data *core, u16 pa);
+void hdmi4_cec_irq(struct hdmi_core_data *core);
+int hdmi4_cec_init(struct platform_device *pdev, struct hdmi_core_data *core,
+                 struct hdmi_wp_data *wp);
+void hdmi4_cec_uninit(struct hdmi_core_data *core);
+#else
+static inline void hdmi4_cec_set_phys_addr(struct hdmi_core_data *core, u16 pa)
+{
+}
+
+static inline void hdmi4_cec_irq(struct hdmi_core_data *core)
+{
+}
+
+static inline int hdmi4_cec_init(struct platform_device *pdev,
+                               struct hdmi_core_data *core,
+                               struct hdmi_wp_data *wp)
+{
+       return 0;
+}
+
+static inline void hdmi4_cec_uninit(struct hdmi_core_data *core)
+{
+}
+#endif
+
+#endif
index 365cf07..62e4511 100644 (file)
@@ -208,9 +208,9 @@ static void hdmi_core_init(struct hdmi_core_video_config *video_cfg)
        video_cfg->tclk_sel_clkmult = HDMI_FPLL10IDCK;
 }
 
-static void hdmi_core_powerdown_disable(struct hdmi_core_data *core)
+void hdmi4_core_powerdown_disable(struct hdmi_core_data *core)
 {
-       DSSDBG("Enter hdmi_core_powerdown_disable\n");
+       DSSDBG("Enter hdmi4_core_powerdown_disable\n");
        REG_FLD_MOD(core->base, HDMI_CORE_SYS_SYS_CTRL1, 0x1, 0, 0);
 }
 
@@ -335,9 +335,6 @@ void hdmi4_configure(struct hdmi_core_data *core,
         */
        hdmi_core_swreset_assert(core);
 
-       /* power down off */
-       hdmi_core_powerdown_disable(core);
-
        v_core_cfg.pkt_mode = HDMI_PACKETMODE24BITPERPIXEL;
        v_core_cfg.hdmi_dvi = cfg->hdmi_dvi_mode;
 
index a069f96..b6ab579 100644 (file)
@@ -266,6 +266,10 @@ void hdmi4_configure(struct hdmi_core_data *core, struct hdmi_wp_data *wp,
 void hdmi4_core_dump(struct hdmi_core_data *core, struct seq_file *s);
 int hdmi4_core_init(struct platform_device *pdev, struct hdmi_core_data *core);
 
+int hdmi4_core_enable(struct omap_dss_device *dssdev);
+void hdmi4_core_disable(struct omap_dss_device *dssdev);
+void hdmi4_core_powerdown_disable(struct hdmi_core_data *core);
+
 int hdmi4_audio_start(struct hdmi_core_data *core, struct hdmi_wp_data *wp);
 void hdmi4_audio_stop(struct hdmi_core_data *core, struct hdmi_wp_data *wp);
 int hdmi4_audio_config(struct hdmi_core_data *core, struct hdmi_wp_data *wp,
index 47a3316..990422b 100644 (file)
@@ -395,6 +395,7 @@ struct omapdss_hdmi_ops {
                            struct videomode *vm);
 
        int (*read_edid)(struct omap_dss_device *dssdev, u8 *buf, int len);
+       void (*lost_hotplug)(struct omap_dss_device *dssdev);
        bool (*detect)(struct omap_dss_device *dssdev);
 
        int (*register_hpd_cb)(struct omap_dss_device *dssdev,
index 432cb46..a904c80 100644 (file)
@@ -304,10 +304,10 @@ static int convert_bpc_to_bpp(int bpc)
 
 /***** radeon specific DP functions *****/
 
-int radeon_dp_get_dp_link_config(struct drm_connector *connector,
-                                const u8 dpcd[DP_DPCD_SIZE],
-                                unsigned pix_clock,
-                                unsigned *dp_lanes, unsigned *dp_rate)
+static int radeon_dp_get_dp_link_config(struct drm_connector *connector,
+                                       const u8 dpcd[DP_DPCD_SIZE],
+                                       unsigned pix_clock,
+                                       unsigned *dp_lanes, unsigned *dp_rate)
 {
        int bpp = convert_bpc_to_bpp(radeon_get_monitor_bpc(connector));
        static const unsigned link_rates[3] = { 162000, 270000, 540000 };
index c97fbb2..7e1b04d 100644 (file)
@@ -184,6 +184,7 @@ static int ci_set_overdrive_target_tdp(struct radeon_device *rdev,
                                       u32 target_tdp);
 static int ci_update_uvd_dpm(struct radeon_device *rdev, bool gate);
 
+static PPSMC_Result ci_send_msg_to_smc(struct radeon_device *rdev, PPSMC_Msg msg);
 static PPSMC_Result ci_send_msg_to_smc_with_parameter(struct radeon_device *rdev,
                                                      PPSMC_Msg msg, u32 parameter);
 
@@ -1651,6 +1652,27 @@ static int ci_notify_hw_of_power_source(struct radeon_device *rdev,
 }
 #endif
 
+static PPSMC_Result ci_send_msg_to_smc(struct radeon_device *rdev, PPSMC_Msg msg)
+{
+       u32 tmp;
+       int i;
+
+       if (!ci_is_smc_running(rdev))
+               return PPSMC_Result_Failed;
+
+       WREG32(SMC_MESSAGE_0, msg);
+
+       for (i = 0; i < rdev->usec_timeout; i++) {
+               tmp = RREG32(SMC_RESP_0);
+               if (tmp != 0)
+                       break;
+               udelay(1);
+       }
+       tmp = RREG32(SMC_RESP_0);
+
+       return (PPSMC_Result)tmp;
+}
+
 static PPSMC_Result ci_send_msg_to_smc_with_parameter(struct radeon_device *rdev,
                                                      PPSMC_Msg msg, u32 parameter)
 {
index 723220f..dff2a63 100644 (file)
@@ -330,7 +330,6 @@ int ci_program_jump_on_start(struct radeon_device *rdev);
 void ci_stop_smc_clock(struct radeon_device *rdev);
 void ci_start_smc_clock(struct radeon_device *rdev);
 bool ci_is_smc_running(struct radeon_device *rdev);
-PPSMC_Result ci_send_msg_to_smc(struct radeon_device *rdev, PPSMC_Msg msg);
 PPSMC_Result ci_wait_for_smc_inactive(struct radeon_device *rdev);
 int ci_load_smc_ucode(struct radeon_device *rdev, u32 limit);
 int ci_read_smc_sram_dword(struct radeon_device *rdev,
index 3356a21..3711219 100644 (file)
@@ -163,27 +163,6 @@ bool ci_is_smc_running(struct radeon_device *rdev)
        return false;
 }
 
-PPSMC_Result ci_send_msg_to_smc(struct radeon_device *rdev, PPSMC_Msg msg)
-{
-       u32 tmp;
-       int i;
-
-       if (!ci_is_smc_running(rdev))
-               return PPSMC_Result_Failed;
-
-       WREG32(SMC_MESSAGE_0, msg);
-
-       for (i = 0; i < rdev->usec_timeout; i++) {
-               tmp = RREG32(SMC_RESP_0);
-               if (tmp != 0)
-                       break;
-               udelay(1);
-       }
-       tmp = RREG32(SMC_RESP_0);
-
-       return (PPSMC_Result)tmp;
-}
-
 #if 0
 PPSMC_Result ci_wait_for_smc_inactive(struct radeon_device *rdev)
 {
index c31e660..7d39ed6 100644 (file)
@@ -1456,7 +1456,7 @@ int r100_cs_packet_parse_vline(struct radeon_cs_parser *p)
        header = radeon_get_ib_value(p, h_idx);
        crtc_id = radeon_get_ib_value(p, h_idx + 5);
        reg = R100_CP_PACKET0_GET_REG(header);
-       crtc = drm_crtc_find(p->rdev->ddev, crtc_id);
+       crtc = drm_crtc_find(p->rdev->ddev, p->filp, crtc_id);
        if (!crtc) {
                DRM_ERROR("cannot find crtc %d\n", crtc_id);
                return -ENOENT;
index 97fd58e..c96b319 100644 (file)
@@ -887,7 +887,7 @@ int r600_cs_common_vline_parse(struct radeon_cs_parser *p,
        crtc_id = radeon_get_ib_value(p, h_idx + 2 + 7 + 1);
        reg = R600_CP_PACKET0_GET_REG(header);
 
-       crtc = drm_crtc_find(p->rdev->ddev, crtc_id);
+       crtc = drm_crtc_find(p->rdev->ddev, p->filp, crtc_id);
        if (!crtc) {
                DRM_ERROR("cannot find crtc %d\n", crtc_id);
                return -ENOENT;
index 2f642cb..59dcefb 100644 (file)
@@ -263,7 +263,7 @@ radeon_connector_update_scratch_regs(struct drm_connector *connector, enum drm_c
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev,
+               encoder = drm_encoder_find(connector->dev, NULL,
                                           connector->encoder_ids[i]);
                if (!encoder)
                        continue;
@@ -290,7 +290,7 @@ static struct drm_encoder *radeon_find_encoder(struct drm_connector *connector,
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
@@ -404,7 +404,7 @@ static struct drm_encoder *radeon_best_single_encoder(struct drm_connector *conn
        int enc_id = connector->encoder_ids[0];
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
@@ -1368,7 +1368,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
                        if (connector->encoder_ids[i] == 0)
                                break;
 
-                       encoder = drm_encoder_find(connector->dev,
+                       encoder = drm_encoder_find(connector->dev, NULL,
                                                   connector->encoder_ids[i]);
                        if (!encoder)
                                continue;
@@ -1454,7 +1454,7 @@ static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector)
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
@@ -1473,7 +1473,7 @@ static struct drm_encoder *radeon_dvi_encoder(struct drm_connector *connector)
        /* then check use digitial */
        /* pick the first one */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
        return NULL;
 }
 
@@ -1620,7 +1620,7 @@ u16 radeon_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *conn
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
@@ -1649,7 +1649,7 @@ static bool radeon_connector_encoder_is_hbr2(struct drm_connector *connector)
                if (connector->encoder_ids[i] == 0)
                        break;
 
-               encoder = drm_encoder_find(connector->dev, connector->encoder_ids[i]);
+               encoder = drm_encoder_find(connector->dev, NULL, connector->encoder_ids[i]);
                if (!encoder)
                        continue;
 
index a2ac8ac..385b4d7 100644 (file)
@@ -352,7 +352,7 @@ static uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
  */
 static DEFINE_IDA(pasid_ida);
 
-int alloc_pasid(unsigned int bits)
+static int alloc_pasid(unsigned int bits)
 {
        int pasid = -EINVAL;
 
@@ -367,7 +367,7 @@ int alloc_pasid(unsigned int bits)
        return pasid;
 }
 
-void free_pasid(unsigned int pasid)
+static void free_pasid(unsigned int pasid)
 {
        ida_simple_remove(&pasid_ida, pasid);
 }
index da44ac2..ca0a7ed 100644 (file)
@@ -762,10 +762,6 @@ extern u8 radeon_dp_getsinktype(struct radeon_connector *radeon_connector);
 extern bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector);
 extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
                                    struct drm_connector *connector);
-extern int radeon_dp_get_dp_link_config(struct drm_connector *connector,
-                                       const u8 *dpcd,
-                                       unsigned pix_clock,
-                                       unsigned *dp_lanes, unsigned *dp_rate);
 extern void radeon_dp_set_rx_power_state(struct drm_connector *connector,
                                         u8 power_state);
 extern void radeon_dp_aux_init(struct radeon_connector *radeon_connector);
index 29855be..e963749 100644 (file)
@@ -546,8 +546,7 @@ int ttm_mem_global_alloc(struct ttm_mem_global *glob, uint64_t memory,
 EXPORT_SYMBOL(ttm_mem_global_alloc);
 
 int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
-                             struct page *page,
-                             bool no_wait, bool interruptible)
+                             struct page *page, uint64_t size)
 {
 
        struct ttm_mem_zone *zone = NULL;
@@ -564,11 +563,11 @@ int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
        if (glob->zone_dma32 && page_to_pfn(page) > 0x00100000UL)
                zone = glob->zone_kernel;
 #endif
-       return ttm_mem_global_alloc_zone(glob, zone, PAGE_SIZE, no_wait,
-                                        interruptible);
+       return ttm_mem_global_alloc_zone(glob, zone, size, false, false);
 }
 
-void ttm_mem_global_free_page(struct ttm_mem_global *glob, struct page *page)
+void ttm_mem_global_free_page(struct ttm_mem_global *glob, struct page *page,
+                             uint64_t size)
 {
        struct ttm_mem_zone *zone = NULL;
 
@@ -579,10 +578,9 @@ void ttm_mem_global_free_page(struct ttm_mem_global *glob, struct page *page)
        if (glob->zone_dma32 && page_to_pfn(page) > 0x00100000UL)
                zone = glob->zone_kernel;
 #endif
-       ttm_mem_global_free_zone(glob, zone, PAGE_SIZE);
+       ttm_mem_global_free_zone(glob, zone, size);
 }
 
-
 size_t ttm_round_pot(size_t size)
 {
        if ((size & (size - 1)) == 0)
index 052e1f1..e11fd76 100644 (file)
@@ -883,7 +883,7 @@ int ttm_pool_populate(struct ttm_tt *ttm)
                }
 
                ret = ttm_mem_global_alloc_page(mem_glob, ttm->pages[i],
-                                               false, false);
+                                               PAGE_SIZE);
                if (unlikely(ret != 0)) {
                        ttm_pool_unpopulate(ttm);
                        return -ENOMEM;
@@ -910,7 +910,7 @@ void ttm_pool_unpopulate(struct ttm_tt *ttm)
        for (i = 0; i < ttm->num_pages; ++i) {
                if (ttm->pages[i]) {
                        ttm_mem_global_free_page(ttm->glob->mem_glob,
-                                                ttm->pages[i]);
+                                                ttm->pages[i], PAGE_SIZE);
                        ttm_put_pages(&ttm->pages[i], 1,
                                      ttm->page_flags,
                                      ttm->caching_state);
index 06bc14b..e5ef10d 100644 (file)
 #define NUM_PAGES_TO_ALLOC             (PAGE_SIZE/sizeof(struct page *))
 #define SMALL_ALLOCATION               4
 #define FREE_ALL_PAGES                 (~0U)
+#define VADDR_FLAG_HUGE_POOL           1UL
 
 enum pool_type {
        IS_UNDEFINED    = 0,
        IS_WC           = 1 << 1,
        IS_UC           = 1 << 2,
        IS_CACHED       = 1 << 3,
-       IS_DMA32        = 1 << 4
+       IS_DMA32        = 1 << 4,
+       IS_HUGE         = 1 << 5
 };
 
 /*
- * The pool structure. There are usually six pools:
+ * The pool structure. There are up to nine pools:
  *  - generic (not restricted to DMA32):
  *      - write combined, uncached, cached.
  *  - dma32 (up to 2^32 - so up 4GB):
  *      - write combined, uncached, cached.
+ *  - huge (not restricted to DMA32):
+ *      - write combined, uncached, cached.
  * for each 'struct device'. The 'cached' is for pages that are actively used.
  * The other ones can be shrunk by the shrinker API if neccessary.
  * @pools: The 'struct device->dma_pools' link.
@@ -114,13 +118,14 @@ struct dma_pool {
  * The accounting page keeping track of the allocated page along with
  * the DMA address.
  * @page_list: The link to the 'page_list' in 'struct dma_pool'.
- * @vaddr: The virtual address of the page
+ * @vaddr: The virtual address of the page and a flag if the page belongs to a
+ * huge pool
  * @dma: The bus address of the page. If the page is not allocated
  *   via the DMA API, it will be -1.
  */
 struct dma_page {
        struct list_head page_list;
-       void *vaddr;
+       unsigned long vaddr;
        struct page *p;
        dma_addr_t dma;
 };
@@ -319,7 +324,8 @@ static int ttm_set_pages_caching(struct dma_pool *pool,
 static void __ttm_dma_free_page(struct dma_pool *pool, struct dma_page *d_page)
 {
        dma_addr_t dma = d_page->dma;
-       dma_free_coherent(pool->dev, pool->size, d_page->vaddr, dma);
+       d_page->vaddr &= ~VADDR_FLAG_HUGE_POOL;
+       dma_free_coherent(pool->dev, pool->size, (void *)d_page->vaddr, dma);
 
        kfree(d_page);
        d_page = NULL;
@@ -327,19 +333,22 @@ static void __ttm_dma_free_page(struct dma_pool *pool, struct dma_page *d_page)
 static struct dma_page *__ttm_dma_alloc_page(struct dma_pool *pool)
 {
        struct dma_page *d_page;
+       void *vaddr;
 
        d_page = kmalloc(sizeof(struct dma_page), GFP_KERNEL);
        if (!d_page)
                return NULL;
 
-       d_page->vaddr = dma_alloc_coherent(pool->dev, pool->size,
-                                          &d_page->dma,
-                                          pool->gfp_flags);
-       if (d_page->vaddr) {
-               if (is_vmalloc_addr(d_page->vaddr))
-                       d_page->p = vmalloc_to_page(d_page->vaddr);
+       vaddr = dma_alloc_coherent(pool->dev, pool->size, &d_page->dma,
+                                  pool->gfp_flags);
+       if (vaddr) {
+               if (is_vmalloc_addr(vaddr))
+                       d_page->p = vmalloc_to_page(vaddr);
                else
-                       d_page->p = virt_to_page(d_page->vaddr);
+                       d_page->p = virt_to_page(vaddr);
+               d_page->vaddr = (unsigned long)vaddr;
+               if (pool->type & IS_HUGE)
+                       d_page->vaddr |= VADDR_FLAG_HUGE_POOL;
        } else {
                kfree(d_page);
                d_page = NULL;
@@ -371,11 +380,40 @@ static void ttm_pool_update_free_locked(struct dma_pool *pool,
 }
 
 /* set memory back to wb and free the pages. */
+static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
+{
+       struct page *page = d_page->p;
+       unsigned i, num_pages;
+       int ret;
+
+       /* Don't set WB on WB page pool. */
+       if (!(pool->type & IS_CACHED)) {
+               num_pages = pool->size / PAGE_SIZE;
+               for (i = 0; i < num_pages; ++i, ++page) {
+                       ret = set_pages_array_wb(&page, 1);
+                       if (ret) {
+                               pr_err("%s: Failed to set %d pages to wb!\n",
+                                      pool->dev_name, 1);
+                       }
+               }
+       }
+
+       list_del(&d_page->page_list);
+       __ttm_dma_free_page(pool, d_page);
+}
+
 static void ttm_dma_pages_put(struct dma_pool *pool, struct list_head *d_pages,
                              struct page *pages[], unsigned npages)
 {
        struct dma_page *d_page, *tmp;
 
+       if (pool->type & IS_HUGE) {
+               list_for_each_entry_safe(d_page, tmp, d_pages, page_list)
+                       ttm_dma_page_put(pool, d_page);
+
+               return;
+       }
+
        /* Don't set WB on WB page pool. */
        if (npages && !(pool->type & IS_CACHED) &&
            set_pages_array_wb(pages, npages))
@@ -388,17 +426,6 @@ static void ttm_dma_pages_put(struct dma_pool *pool, struct list_head *d_pages,
        }
 }
 
-static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
-{
-       /* Don't set WB on WB page pool. */
-       if (!(pool->type & IS_CACHED) && set_pages_array_wb(&d_page->p, 1))
-               pr_err("%s: Failed to set %d pages to wb!\n",
-                      pool->dev_name, 1);
-
-       list_del(&d_page->page_list);
-       __ttm_dma_free_page(pool, d_page);
-}
-
 /*
  * Free pages from pool.
  *
@@ -567,8 +594,8 @@ static int ttm_dma_pool_match(struct device *dev, void *res, void *match_data)
 static struct dma_pool *ttm_dma_pool_init(struct device *dev, gfp_t flags,
                                          enum pool_type type)
 {
-       char *n[] = {"wc", "uc", "cached", " dma32", "unknown",};
-       enum pool_type t[] = {IS_WC, IS_UC, IS_CACHED, IS_DMA32, IS_UNDEFINED};
+       const char *n[] = {"wc", "uc", "cached", " dma32", "huge"};
+       enum pool_type t[] = {IS_WC, IS_UC, IS_CACHED, IS_DMA32, IS_HUGE};
        struct device_pools *sec_pool = NULL;
        struct dma_pool *pool = NULL, **ptr;
        unsigned i;
@@ -605,11 +632,18 @@ static struct dma_pool *ttm_dma_pool_init(struct device *dev, gfp_t flags,
        pool->npages_free = pool->npages_in_use = 0;
        pool->nfrees = 0;
        pool->gfp_flags = flags;
-       pool->size = PAGE_SIZE;
+       if (type & IS_HUGE)
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+               pool->size = HPAGE_PMD_SIZE;
+#else
+               BUG();
+#endif
+       else
+               pool->size = PAGE_SIZE;
        pool->type = type;
        pool->nrefills = 0;
        p = pool->name;
-       for (i = 0; i < 5; i++) {
+       for (i = 0; i < ARRAY_SIZE(t); i++) {
                if (type & t[i]) {
                        p += snprintf(p, sizeof(pool->name) - (p - pool->name),
                                      "%s", n[i]);
@@ -713,7 +747,7 @@ static int ttm_dma_pool_alloc_new_pages(struct dma_pool *pool,
        struct dma_page *dma_p;
        struct page *p;
        int r = 0;
-       unsigned i, cpages;
+       unsigned i, j, npages, cpages;
        unsigned max_cpages = min(count,
                        (unsigned)(PAGE_SIZE/sizeof(struct page *)));
 
@@ -751,28 +785,32 @@ static int ttm_dma_pool_alloc_new_pages(struct dma_pool *pool,
                        goto out;
                }
                p = dma_p->p;
+               list_add(&dma_p->page_list, d_pages);
+
 #ifdef CONFIG_HIGHMEM
                /* gfp flags of highmem page should never be dma32 so we
                 * we should be fine in such case
                 */
-               if (!PageHighMem(p))
+               if (PageHighMem(p))
+                       continue;
 #endif
-               {
-                       caching_array[cpages++] = p;
+
+               npages = pool->size / PAGE_SIZE;
+               for (j = 0; j < npages; ++j) {
+                       caching_array[cpages++] = p + j;
                        if (cpages == max_cpages) {
                                /* Note: Cannot hold the spinlock */
                                r = ttm_set_pages_caching(pool, caching_array,
-                                                cpages);
+                                                         cpages);
                                if (r) {
                                        ttm_dma_handle_caching_state_failure(
-                                               pool, d_pages, caching_array,
-                                               cpages);
+                                            pool, d_pages, caching_array,
+                                            cpages);
                                        goto out;
                                }
                                cpages = 0;
                        }
                }
-               list_add(&dma_p->page_list, d_pages);
        }
 
        if (cpages) {
@@ -860,6 +898,26 @@ static int ttm_dma_pool_get_pages(struct dma_pool *pool,
        return r;
 }
 
+static gfp_t ttm_dma_pool_gfp_flags(struct ttm_dma_tt *ttm_dma, bool huge)
+{
+       struct ttm_tt *ttm = &ttm_dma->ttm;
+       gfp_t gfp_flags;
+
+       if (ttm->page_flags & TTM_PAGE_FLAG_DMA32)
+               gfp_flags = GFP_USER | GFP_DMA32;
+       else
+               gfp_flags = GFP_HIGHUSER;
+       if (ttm->page_flags & TTM_PAGE_FLAG_ZERO_ALLOC)
+               gfp_flags |= __GFP_ZERO;
+
+       if (huge) {
+               gfp_flags |= GFP_TRANSHUGE;
+               gfp_flags &= ~__GFP_MOVABLE;
+       }
+
+       return gfp_flags;
+}
+
 /*
  * On success pages list will hold count number of correctly
  * cached pages. On failure will hold the negative return value (-ENOMEM, etc).
@@ -868,6 +926,7 @@ int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev)
 {
        struct ttm_tt *ttm = &ttm_dma->ttm;
        struct ttm_mem_global *mem_glob = ttm->glob->mem_glob;
+       unsigned long num_pages = ttm->num_pages;
        struct dma_pool *pool;
        enum pool_type type;
        unsigned i;
@@ -876,26 +935,61 @@ int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev)
        if (ttm->state != tt_unpopulated)
                return 0;
 
+       INIT_LIST_HEAD(&ttm_dma->pages_list);
+       i = 0;
+
        type = ttm_to_type(ttm->page_flags, ttm->caching_state);
-       pool = ttm_dma_find_pool(dev, type);
+
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+       if (ttm->page_flags & TTM_PAGE_FLAG_DMA32)
+               goto skip_huge;
+
+       pool = ttm_dma_find_pool(dev, type | IS_HUGE);
        if (!pool) {
-               gfp_t gfp_flags;
+               gfp_t gfp_flags = ttm_dma_pool_gfp_flags(ttm_dma, true);
 
-               if (ttm->page_flags & TTM_PAGE_FLAG_DMA32)
-                       gfp_flags = GFP_USER | GFP_DMA32;
-               else
-                       gfp_flags = GFP_HIGHUSER;
-               if (ttm->page_flags & TTM_PAGE_FLAG_ZERO_ALLOC)
-                       gfp_flags |= __GFP_ZERO;
+               pool = ttm_dma_pool_init(dev, gfp_flags, type | IS_HUGE);
+               if (IS_ERR_OR_NULL(pool))
+                       goto skip_huge;
+       }
 
-               pool = ttm_dma_pool_init(dev, gfp_flags, type);
-               if (IS_ERR_OR_NULL(pool)) {
+       while (num_pages >= HPAGE_PMD_NR) {
+               unsigned j;
+
+               ret = ttm_dma_pool_get_pages(pool, ttm_dma, i);
+               if (ret != 0)
+                       break;
+
+               ret = ttm_mem_global_alloc_page(mem_glob, ttm->pages[i],
+                                               pool->size);
+               if (unlikely(ret != 0)) {
+                       ttm_dma_unpopulate(ttm_dma, dev);
                        return -ENOMEM;
                }
+
+               for (j = i + 1; j < (i + HPAGE_PMD_NR); ++j) {
+                       ttm->pages[j] = ttm->pages[j - 1] + 1;
+                       ttm_dma->dma_address[j] = ttm_dma->dma_address[j - 1] +
+                               PAGE_SIZE;
+               }
+
+               i += HPAGE_PMD_NR;
+               num_pages -= HPAGE_PMD_NR;
        }
 
-       INIT_LIST_HEAD(&ttm_dma->pages_list);
-       for (i = 0; i < ttm->num_pages; ++i) {
+skip_huge:
+#endif
+
+       pool = ttm_dma_find_pool(dev, type);
+       if (!pool) {
+               gfp_t gfp_flags = ttm_dma_pool_gfp_flags(ttm_dma, false);
+
+               pool = ttm_dma_pool_init(dev, gfp_flags, type);
+               if (IS_ERR_OR_NULL(pool))
+                       return -ENOMEM;
+       }
+
+       while (num_pages) {
                ret = ttm_dma_pool_get_pages(pool, ttm_dma, i);
                if (ret != 0) {
                        ttm_dma_unpopulate(ttm_dma, dev);
@@ -903,11 +997,14 @@ int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev)
                }
 
                ret = ttm_mem_global_alloc_page(mem_glob, ttm->pages[i],
-                                               false, false);
+                                               pool->size);
                if (unlikely(ret != 0)) {
                        ttm_dma_unpopulate(ttm_dma, dev);
                        return -ENOMEM;
                }
+
+               ++i;
+               --num_pages;
        }
 
        if (unlikely(ttm->page_flags & TTM_PAGE_FLAG_SWAPPED)) {
@@ -931,10 +1028,33 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
        struct dma_page *d_page, *next;
        enum pool_type type;
        bool is_cached = false;
-       unsigned count = 0, i, npages = 0;
+       unsigned count, i, npages = 0;
        unsigned long irq_flags;
 
        type = ttm_to_type(ttm->page_flags, ttm->caching_state);
+
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
+       pool = ttm_dma_find_pool(dev, type | IS_HUGE);
+       if (pool) {
+               count = 0;
+               list_for_each_entry_safe(d_page, next, &ttm_dma->pages_list,
+                                        page_list) {
+                       if (!(d_page->vaddr & VADDR_FLAG_HUGE_POOL))
+                               continue;
+
+                       count++;
+                       ttm_mem_global_free_page(ttm->glob->mem_glob,
+                                                d_page->p, pool->size);
+                       ttm_dma_page_put(pool, d_page);
+               }
+
+               spin_lock_irqsave(&pool->lock, irq_flags);
+               pool->npages_in_use -= count;
+               pool->nfrees += count;
+               spin_unlock_irqrestore(&pool->lock, irq_flags);
+       }
+#endif
+
        pool = ttm_dma_find_pool(dev, type);
        if (!pool)
                return;
@@ -943,6 +1063,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
                     ttm_to_type(ttm->page_flags, tt_cached)) == pool);
 
        /* make sure pages array match list and count number of pages */
+       count = 0;
        list_for_each_entry(d_page, &ttm_dma->pages_list, page_list) {
                ttm->pages[count] = d_page->p;
                count++;
@@ -968,13 +1089,13 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
        if (is_cached) {
                list_for_each_entry_safe(d_page, next, &ttm_dma->pages_list, page_list) {
                        ttm_mem_global_free_page(ttm->glob->mem_glob,
-                                                d_page->p);
+                                                d_page->p, pool->size);
                        ttm_dma_page_put(pool, d_page);
                }
        } else {
                for (i = 0; i < count; i++) {
                        ttm_mem_global_free_page(ttm->glob->mem_glob,
-                                                ttm->pages[i]);
+                                                ttm->pages[i], pool->size);
                }
        }
 
index 9f9a497..091ca81 100644 (file)
@@ -105,7 +105,7 @@ static struct drm_encoder*
 udl_best_single_encoder(struct drm_connector *connector)
 {
        int enc_id = connector->encoder_ids[0];
-       return drm_encoder_find(connector->dev, enc_id);
+       return drm_encoder_find(connector->dev, NULL, enc_id);
 }
 
 static int udl_connector_set_property(struct drm_connector *connector,
index 5ec24fd..01be355 100644 (file)
@@ -286,7 +286,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
 
        drm_modeset_lock_all(dev);
 
-       fb = drm_framebuffer_lookup(dev, arg->fb_id);
+       fb = drm_framebuffer_lookup(dev, file_priv, arg->fb_id);
        if (!fb) {
                DRM_ERROR("Invalid framebuffer id.\n");
                ret = -ENOENT;
@@ -369,7 +369,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
 
        drm_modeset_lock_all(dev);
 
-       fb = drm_framebuffer_lookup(dev, arg->fb_id);
+       fb = drm_framebuffer_lookup(dev, file_priv, arg->fb_id);
        if (!fb) {
                DRM_ERROR("Invalid framebuffer id.\n");
                ret = -ENOENT;
index b850562..0545740 100644 (file)
@@ -1726,7 +1726,7 @@ int vmw_kms_cursor_bypass_ioctl(struct drm_device *dev, void *data,
                return 0;
        }
 
-       crtc = drm_crtc_find(dev, arg->crtc_id);
+       crtc = drm_crtc_find(dev, file_priv, arg->crtc_id);
        if (!crtc) {
                ret = -ENOENT;
                goto out;
index 9f389f3..a9806ba 100644 (file)
@@ -479,7 +479,7 @@ static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr,
 {
        struct vb2_dc_buf *buf;
        struct frame_vector *vec;
-       unsigned long offset;
+       unsigned int offset;
        int n_pages, i;
        int ret = 0;
        struct sg_table *sgt;
@@ -507,7 +507,7 @@ static void *vb2_dc_get_userptr(struct device *dev, unsigned long vaddr,
        buf->dev = dev;
        buf->dma_dir = dma_dir;
 
-       offset = vaddr & ~PAGE_MASK;
+       offset = lower_32_bits(offset_in_page(vaddr));
        vec = vb2_create_framevec(vaddr, size, dma_dir == DMA_FROM_DEVICE ||
                                               dma_dir == DMA_BIDIRECTIONAL);
        if (IS_ERR(vec)) {
index 5beb0c3..5c1b638 100644 (file)
@@ -876,10 +876,10 @@ rio_dma_transfer(struct file *filp, u32 transfer_mode,
         * offset within the internal buffer specified by handle parameter.
         */
        if (xfer->loc_addr) {
-               unsigned long offset;
+               unsigned int offset;
                long pinned;
 
-               offset = (unsigned long)(uintptr_t)xfer->loc_addr & ~PAGE_MASK;
+               offset = lower_32_bits(offset_in_page(xfer->loc_addr));
                nr_pages = PAGE_ALIGN(xfer->length + offset) >> PAGE_SHIFT;
 
                page_list = kmalloc_array(nr_pages,
index 257a778..c745a04 100644 (file)
@@ -377,7 +377,7 @@ static struct drm_encoder *vbox_best_single_encoder(struct drm_connector
 
        /* pick the encoder ids */
        if (enc_id)
-               return drm_encoder_find(connector->dev, enc_id);
+               return drm_encoder_find(connector->dev, NULL, enc_id);
 
        return NULL;
 }
index b34904d..b4285c4 100644 (file)
@@ -939,10 +939,11 @@ static inline unsigned drm_connector_index(struct drm_connector *connector)
  * add takes a reference to it.
  */
 static inline struct drm_connector *drm_connector_lookup(struct drm_device *dev,
+               struct drm_file *file_priv,
                uint32_t id)
 {
        struct drm_mode_object *mo;
-       mo = drm_mode_object_find(dev, id, DRM_MODE_OBJECT_CONNECTOR);
+       mo = drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_CONNECTOR);
        return mo ? obj_to_connector(mo) : NULL;
 }
 
index 80c9721..f7fccee 100644 (file)
@@ -959,10 +959,11 @@ struct drm_crtc *drm_crtc_from_index(struct drm_device *dev, int idx);
  * userspace interface should be done using &drm_property.
  */
 static inline struct drm_crtc *drm_crtc_find(struct drm_device *dev,
-       uint32_t id)
+               struct drm_file *file_priv,
+               uint32_t id)
 {
        struct drm_mode_object *mo;
-       mo = drm_mode_object_find(dev, id, DRM_MODE_OBJECT_CRTC);
+       mo = drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_CRTC);
        return mo ? obj_to_crtc(mo) : NULL;
 }
 
index 11c39f1..8b9ac32 100644 (file)
 # define DP_PSR_SINK_INTERNAL_ERROR         7
 # define DP_PSR_SINK_STATE_MASK             0x07
 
+#define DP_SYNCHRONIZATION_LATENCY_IN_SINK             0x2009 /* edp 1.4 */
+# define DP_MAX_RESYNC_FRAME_COUNT_MASK                        (0xf << 0)
+# define DP_MAX_RESYNC_FRAME_COUNT_SHIFT               0
+# define DP_LAST_ACTUAL_SYNCHRONIZATION_LATENCY_MASK   (0xf << 4)
+# define DP_LAST_ACTUAL_SYNCHRONIZATION_LATENCY_SHIFT  4
+
 #define DP_RECEIVER_ALPM_STATUS                    0x200b  /* eDP 1.4 */
 # define DP_ALPM_LOCK_TIMEOUT_ERROR        (1 << 0)
 
index ee06ecd..412e83a 100644 (file)
@@ -324,7 +324,7 @@ struct drm_driver {
         */
        bool (*get_vblank_timestamp) (struct drm_device *dev, unsigned int pipe,
                                     int *max_error,
-                                    struct timeval *vblank_time,
+                                    ktime_t *vblank_time,
                                     bool in_vblank_irq);
 
        /**
index 8d8245e..86db0da 100644 (file)
@@ -214,11 +214,12 @@ static inline bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
  * drm_mode_object_find().
  */
 static inline struct drm_encoder *drm_encoder_find(struct drm_device *dev,
+                                                  struct drm_file *file_priv,
                                                   uint32_t id)
 {
        struct drm_mode_object *mo;
 
-       mo = drm_mode_object_find(dev, id, DRM_MODE_OBJECT_ENCODER);
+       mo = drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_ENCODER);
 
        return mo ? obj_to_encoder(mo) : NULL;
 }
index b6996dd..4c5ee4a 100644 (file)
@@ -205,6 +205,7 @@ int drm_framebuffer_init(struct drm_device *dev,
                         struct drm_framebuffer *fb,
                         const struct drm_framebuffer_funcs *funcs);
 struct drm_framebuffer *drm_framebuffer_lookup(struct drm_device *dev,
+                                              struct drm_file *file_priv,
                                               uint32_t id);
 void drm_framebuffer_remove(struct drm_framebuffer *fb);
 void drm_framebuffer_cleanup(struct drm_framebuffer *fb);
index a767b4a..b2f920b 100644 (file)
@@ -27,6 +27,7 @@
 struct drm_object_properties;
 struct drm_property;
 struct drm_device;
+struct drm_file;
 
 /**
  * struct drm_mode_object - base structure for modeset objects
@@ -113,6 +114,7 @@ struct drm_object_properties {
        }
 
 struct drm_mode_object *drm_mode_object_find(struct drm_device *dev,
+                                            struct drm_file *file_priv,
                                             uint32_t id, uint32_t type);
 void drm_mode_object_get(struct drm_mode_object *obj);
 void drm_mode_object_put(struct drm_mode_object *obj);
index 82a217b..069c4c8 100644 (file)
@@ -597,10 +597,11 @@ int drm_mode_plane_set_obj_prop(struct drm_plane *plane,
  * drm_mode_object_find().
  */
 static inline struct drm_plane *drm_plane_find(struct drm_device *dev,
+               struct drm_file *file_priv,
                uint32_t id)
 {
        struct drm_mode_object *mo;
-       mo = drm_mode_object_find(dev, id, DRM_MODE_OBJECT_PLANE);
+       mo = drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_PLANE);
        return mo ? obj_to_plane(mo) : NULL;
 }
 
index 37355c6..429d821 100644 (file)
@@ -312,10 +312,11 @@ drm_property_unreference_blob(struct drm_property_blob *blob)
  * This function looks up the property object specified by id and returns it.
  */
 static inline struct drm_property *drm_property_find(struct drm_device *dev,
+                                                    struct drm_file *file_priv,
                                                     uint32_t id)
 {
        struct drm_mode_object *mo;
-       mo = drm_mode_object_find(dev, id, DRM_MODE_OBJECT_PROPERTY);
+       mo = drm_mode_object_find(dev, file_priv, id, DRM_MODE_OBJECT_PROPERTY);
        return mo ? obj_to_property(mo) : NULL;
 }
 
index c00fee5..43e2f38 100644 (file)
@@ -136,5 +136,10 @@ int drm_syncobj_find_fence(struct drm_file *file_private,
                           u32 handle,
                           struct dma_fence **fence);
 void drm_syncobj_free(struct kref *kref);
+int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
+                      struct dma_fence *fence);
+int drm_syncobj_get_handle(struct drm_file *file_private,
+                          struct drm_syncobj *syncobj, u32 *handle);
+int drm_syncobj_get_fd(struct drm_syncobj *syncobj, int *p_fd);
 
 #endif
index 7fba9ef..6a58e2e 100644 (file)
@@ -92,7 +92,7 @@ struct drm_vblank_crtc {
        /**
         * @time: Vblank timestamp corresponding to @count.
         */
-       struct timeval time;
+       ktime_t time;
 
        /**
         * @refcount: Number of users/waiters of the vblank interrupt. Only when
@@ -154,7 +154,7 @@ struct drm_vblank_crtc {
 int drm_vblank_init(struct drm_device *dev, unsigned int num_crtcs);
 u32 drm_crtc_vblank_count(struct drm_crtc *crtc);
 u32 drm_crtc_vblank_count_and_time(struct drm_crtc *crtc,
-                                  struct timeval *vblanktime);
+                                  ktime_t *vblanktime);
 void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
                               struct drm_pending_vblank_event *e);
 void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
@@ -172,7 +172,7 @@ u32 drm_crtc_accurate_vblank_count(struct drm_crtc *crtc);
 
 bool drm_calc_vbltimestamp_from_scanoutpos(struct drm_device *dev,
                                           unsigned int pipe, int *max_error,
-                                          struct timeval *vblank_time,
+                                          ktime_t *vblank_time,
                                           bool in_vblank_irq);
 void drm_calc_timestamping_constants(struct drm_crtc *crtc,
                                     const struct drm_display_mode *mode);
index 1257e15..972a256 100644 (file)
 #define INTEL_KBL_GT1_IDS(info)        \
        INTEL_VGA_DEVICE(0x5913, info), /* ULT GT1.5 */ \
        INTEL_VGA_DEVICE(0x5915, info), /* ULX GT1.5 */ \
-       INTEL_VGA_DEVICE(0x5917, info), /* DT  GT1.5 */ \
        INTEL_VGA_DEVICE(0x5906, info), /* ULT GT1 */ \
        INTEL_VGA_DEVICE(0x590E, info), /* ULX GT1 */ \
        INTEL_VGA_DEVICE(0x5902, info), /* DT  GT1 */ \
 
 #define INTEL_KBL_GT2_IDS(info)        \
        INTEL_VGA_DEVICE(0x5916, info), /* ULT GT2 */ \
+       INTEL_VGA_DEVICE(0x5917, info), /* Mobile GT2 */ \
        INTEL_VGA_DEVICE(0x5921, info), /* ULT GT2F */ \
        INTEL_VGA_DEVICE(0x591E, info), /* ULX GT2 */ \
        INTEL_VGA_DEVICE(0x5912, info), /* DT  GT2 */ \
index c452089..2c1e359 100644 (file)
@@ -150,10 +150,9 @@ extern int ttm_mem_global_alloc(struct ttm_mem_global *glob, uint64_t memory,
 extern void ttm_mem_global_free(struct ttm_mem_global *glob,
                                uint64_t amount);
 extern int ttm_mem_global_alloc_page(struct ttm_mem_global *glob,
-                                    struct page *page,
-                                    bool no_wait, bool interruptible);
+                                    struct page *page, uint64_t size);
 extern void ttm_mem_global_free_page(struct ttm_mem_global *glob,
-                                    struct page *page);
+                                    struct page *page, uint64_t size);
 extern size_t ttm_round_pot(size_t size);
 extern uint64_t ttm_get_kernel_zone_memory_size(struct ttm_mem_global *glob);
 #endif
index 4b3286a..874b50c 100644 (file)
@@ -21,6 +21,12 @@ struct scatterlist {
 };
 
 /*
+ * Since the above length field is an unsigned int, below we define the maximum
+ * length in bytes that can be stored in one scatterlist entry.
+ */
+#define SCATTERLIST_MAX_SEGMENT (UINT_MAX & PAGE_MASK)
+
+/*
  * These macros should be used after a dma_map_sg call has been done
  * to get bus addresses of each of the SG entries and their lengths.
  * You should only work with the number of sg entries dma_map_sg
@@ -261,10 +267,13 @@ void sg_free_table(struct sg_table *);
 int __sg_alloc_table(struct sg_table *, unsigned int, unsigned int,
                     struct scatterlist *, gfp_t, sg_alloc_fn *);
 int sg_alloc_table(struct sg_table *, unsigned int, gfp_t);
-int sg_alloc_table_from_pages(struct sg_table *sgt,
-       struct page **pages, unsigned int n_pages,
-       unsigned long offset, unsigned long size,
-       gfp_t gfp_mask);
+int __sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages,
+                               unsigned int n_pages, unsigned int offset,
+                               unsigned long size, unsigned int max_segment,
+                               gfp_t gfp_mask);
+int sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages,
+                             unsigned int n_pages, unsigned int offset,
+                             unsigned long size, gfp_t gfp_mask);
 
 size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents, void *buf,
                      size_t buflen, off_t skip, bool to_buffer);
index e055776..4c6e8c4 100644 (file)
@@ -52,6 +52,7 @@ extern "C" {
 #define DRM_AMDGPU_GEM_USERPTR         0x11
 #define DRM_AMDGPU_WAIT_FENCES         0x12
 #define DRM_AMDGPU_VM                  0x13
+#define DRM_AMDGPU_FENCE_TO_HANDLE     0x14
 
 #define DRM_IOCTL_AMDGPU_GEM_CREATE    DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_CREATE, union drm_amdgpu_gem_create)
 #define DRM_IOCTL_AMDGPU_GEM_MMAP      DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_MMAP, union drm_amdgpu_gem_mmap)
@@ -67,6 +68,7 @@ extern "C" {
 #define DRM_IOCTL_AMDGPU_GEM_USERPTR   DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_GEM_USERPTR, struct drm_amdgpu_gem_userptr)
 #define DRM_IOCTL_AMDGPU_WAIT_FENCES   DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_WAIT_FENCES, union drm_amdgpu_wait_fences)
 #define DRM_IOCTL_AMDGPU_VM            DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_VM, union drm_amdgpu_vm)
+#define DRM_IOCTL_AMDGPU_FENCE_TO_HANDLE DRM_IOWR(DRM_COMMAND_BASE + DRM_AMDGPU_FENCE_TO_HANDLE, union drm_amdgpu_fence_to_handle)
 
 #define AMDGPU_GEM_DOMAIN_CPU          0x1
 #define AMDGPU_GEM_DOMAIN_GTT          0x2
@@ -515,6 +517,20 @@ struct drm_amdgpu_cs_chunk_sem {
        __u32 handle;
 };
 
+#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ     0
+#define AMDGPU_FENCE_TO_HANDLE_GET_SYNCOBJ_FD  1
+#define AMDGPU_FENCE_TO_HANDLE_GET_SYNC_FILE_FD        2
+
+union drm_amdgpu_fence_to_handle {
+       struct {
+               struct drm_amdgpu_fence fence;
+               __u32 what;
+       } in;
+       struct {
+               __u32 handle;
+       } out;
+};
+
 struct drm_amdgpu_cs_chunk_data {
        union {
                struct drm_amdgpu_cs_chunk_ib           ib_data;
index 76f6f78..110cc73 100644 (file)
@@ -150,6 +150,19 @@ struct drm_etnaviv_gem_submit_bo {
        __u64 presumed;       /* in/out, presumed buffer address */
 };
 
+/* performance monitor request (pmr) */
+#define ETNA_PM_PROCESS_PRE             0x0001
+#define ETNA_PM_PROCESS_POST            0x0002
+struct drm_etnaviv_gem_submit_pmr {
+       __u32 flags;          /* in, when to process request (ETNA_PM_PROCESS_x) */
+       __u8  domain;         /* in, pm domain */
+       __u8  pad;
+       __u16 signal;         /* in, pm signal */
+       __u32 sequence;       /* in, sequence number */
+       __u32 read_offset;    /* in, offset from read_bo */
+       __u32 read_idx;       /* in, index of read_bo buffer */
+};
+
 /* Each cmdstream submit consists of a table of buffers involved, and
  * one or more cmdstream buffers.  This allows for conditional execution
  * (context-restore), and IB buffers needed for per tile/bin draw cmds.
@@ -175,6 +188,9 @@ struct drm_etnaviv_gem_submit {
        __u64 stream;         /* in, ptr to cmdstream */
        __u32 flags;          /* in, mask of ETNA_SUBMIT_x */
        __s32 fence_fd;       /* in/out, fence fd (see ETNA_SUBMIT_FENCE_FD_x) */
+       __u64 pmrs;           /* in, ptr to array of submit_pmr's */
+       __u32 nr_pmrs;        /* in, number of submit_pmr's */
+       __u32 pad;
 };
 
 /* The normal way to synchronize with the GPU is just to CPU_PREP on
@@ -210,6 +226,27 @@ struct drm_etnaviv_gem_wait {
        struct drm_etnaviv_timespec timeout;    /* in */
 };
 
+/*
+ * Performance Monitor (PM):
+ */
+
+struct drm_etnaviv_pm_domain {
+       __u32 pipe;       /* in */
+       __u8  iter;       /* in/out, select pm domain at index iter */
+       __u8  id;         /* out, id of domain */
+       __u16 nr_signals; /* out, how many signals does this domain provide */
+       char  name[64];   /* out, name of domain */
+};
+
+struct drm_etnaviv_pm_signal {
+       __u32 pipe;       /* in */
+       __u8  domain;     /* in, pm domain index */
+       __u8  pad;
+       __u16 iter;       /* in/out, select pm source at index iter */
+       __u16 id;         /* out, id of signal */
+       char  name[64];   /* out, name of domain */
+};
+
 #define DRM_ETNAVIV_GET_PARAM          0x00
 /* placeholder:
 #define DRM_ETNAVIV_SET_PARAM          0x01
@@ -222,7 +259,9 @@ struct drm_etnaviv_gem_wait {
 #define DRM_ETNAVIV_WAIT_FENCE         0x07
 #define DRM_ETNAVIV_GEM_USERPTR        0x08
 #define DRM_ETNAVIV_GEM_WAIT           0x09
-#define DRM_ETNAVIV_NUM_IOCTLS         0x0a
+#define DRM_ETNAVIV_PM_QUERY_DOM       0x0a
+#define DRM_ETNAVIV_PM_QUERY_SIG       0x0b
+#define DRM_ETNAVIV_NUM_IOCTLS         0x0c
 
 #define DRM_IOCTL_ETNAVIV_GET_PARAM    DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GET_PARAM, struct drm_etnaviv_param)
 #define DRM_IOCTL_ETNAVIV_GEM_NEW      DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_NEW, struct drm_etnaviv_gem_new)
@@ -233,6 +272,8 @@ struct drm_etnaviv_gem_wait {
 #define DRM_IOCTL_ETNAVIV_WAIT_FENCE   DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_WAIT_FENCE, struct drm_etnaviv_wait_fence)
 #define DRM_IOCTL_ETNAVIV_GEM_USERPTR  DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_USERPTR, struct drm_etnaviv_gem_userptr)
 #define DRM_IOCTL_ETNAVIV_GEM_WAIT     DRM_IOW(DRM_COMMAND_BASE + DRM_ETNAVIV_GEM_WAIT, struct drm_etnaviv_gem_wait)
+#define DRM_IOCTL_ETNAVIV_PM_QUERY_DOM DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_DOM, struct drm_etnaviv_pm_domain)
+#define DRM_IOCTL_ETNAVIV_PM_QUERY_SIG DRM_IOWR(DRM_COMMAND_BASE + DRM_ETNAVIV_PM_QUERY_SIG, struct drm_etnaviv_pm_signal)
 
 #if defined(__cplusplus)
 }
index d8d10d9..fe25a01 100644 (file)
@@ -1308,14 +1308,16 @@ struct drm_i915_reg_read {
         * be specified
         */
        __u64 offset;
+#define I915_REG_READ_8B_WA BIT(0)
+
        __u64 val; /* Return value */
 };
 /* Known registers:
  *
  * Render engine timestamp - 0x2358 + 64bit - gen7+
  * - Note this register returns an invalid value if using the default
- *   single instruction 8byte read, in order to workaround that use
- *   offset (0x2538 | 1) instead.
+ *   single instruction 8byte read, in order to workaround that pass
+ *   flag I915_REG_READ_8B_WA in offset field.
  *
  */
 
@@ -1509,6 +1511,11 @@ struct drm_i915_perf_oa_config {
        __u32 n_boolean_regs;
        __u32 n_flex_regs;
 
+       /*
+        * These fields are pointers to tuples of u32 values (register
+        * address, value). For example the expected length of the buffer
+        * pointed by mux_regs_ptr is (2 * sizeof(u32) * n_mux_regs).
+        */
        __u64 mux_regs_ptr;
        __u64 boolean_regs_ptr;
        __u64 flex_regs_ptr;
index be7b4dd..7c1c55f 100644 (file)
@@ -370,41 +370,49 @@ int sg_alloc_table(struct sg_table *table, unsigned int nents, gfp_t gfp_mask)
 EXPORT_SYMBOL(sg_alloc_table);
 
 /**
- * sg_alloc_table_from_pages - Allocate and initialize an sg table from
- *                            an array of pages
- * @sgt:       The sg table header to use
- * @pages:     Pointer to an array of page pointers
- * @n_pages:   Number of pages in the pages array
- * @offset:     Offset from start of the first page to the start of a buffer
- * @size:       Number of valid bytes in the buffer (after offset)
- * @gfp_mask:  GFP allocation mask
+ * __sg_alloc_table_from_pages - Allocate and initialize an sg table from
+ *                              an array of pages
+ * @sgt:        The sg table header to use
+ * @pages:      Pointer to an array of page pointers
+ * @n_pages:    Number of pages in the pages array
+ * @offset:      Offset from start of the first page to the start of a buffer
+ * @size:        Number of valid bytes in the buffer (after offset)
+ * @max_segment: Maximum size of a scatterlist node in bytes (page aligned)
+ * @gfp_mask:   GFP allocation mask
  *
  *  Description:
  *    Allocate and initialize an sg table from a list of pages. Contiguous
- *    ranges of the pages are squashed into a single scatterlist node. A user
- *    may provide an offset at a start and a size of valid data in a buffer
- *    specified by the page array. The returned sg table is released by
- *    sg_free_table.
+ *    ranges of the pages are squashed into a single scatterlist node up to the
+ *    maximum size specified in @max_segment. An user may provide an offset at a
+ *    start and a size of valid data in a buffer specified by the page array.
+ *    The returned sg table is released by sg_free_table.
  *
  * Returns:
  *   0 on success, negative error on failure
  */
-int sg_alloc_table_from_pages(struct sg_table *sgt,
-       struct page **pages, unsigned int n_pages,
-       unsigned long offset, unsigned long size,
-       gfp_t gfp_mask)
+int __sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages,
+                               unsigned int n_pages, unsigned int offset,
+                               unsigned long size, unsigned int max_segment,
+                               gfp_t gfp_mask)
 {
-       unsigned int chunks;
-       unsigned int i;
-       unsigned int cur_page;
+       unsigned int chunks, cur_page, seg_len, i;
        int ret;
        struct scatterlist *s;
 
+       if (WARN_ON(!max_segment || offset_in_page(max_segment)))
+               return -EINVAL;
+
        /* compute number of contiguous chunks */
        chunks = 1;
-       for (i = 1; i < n_pages; ++i)
-               if (page_to_pfn(pages[i]) != page_to_pfn(pages[i - 1]) + 1)
-                       ++chunks;
+       seg_len = 0;
+       for (i = 1; i < n_pages; i++) {
+               seg_len += PAGE_SIZE;
+               if (seg_len >= max_segment ||
+                   page_to_pfn(pages[i]) != page_to_pfn(pages[i - 1]) + 1) {
+                       chunks++;
+                       seg_len = 0;
+               }
+       }
 
        ret = sg_alloc_table(sgt, chunks, gfp_mask);
        if (unlikely(ret))
@@ -413,17 +421,21 @@ int sg_alloc_table_from_pages(struct sg_table *sgt,
        /* merging chunks and putting them into the scatterlist */
        cur_page = 0;
        for_each_sg(sgt->sgl, s, sgt->orig_nents, i) {
-               unsigned long chunk_size;
-               unsigned int j;
+               unsigned int j, chunk_size;
 
                /* look for the end of the current chunk */
-               for (j = cur_page + 1; j < n_pages; ++j)
-                       if (page_to_pfn(pages[j]) !=
+               seg_len = 0;
+               for (j = cur_page + 1; j < n_pages; j++) {
+                       seg_len += PAGE_SIZE;
+                       if (seg_len >= max_segment ||
+                           page_to_pfn(pages[j]) !=
                            page_to_pfn(pages[j - 1]) + 1)
                                break;
+               }
 
                chunk_size = ((j - cur_page) << PAGE_SHIFT) - offset;
-               sg_set_page(s, pages[cur_page], min(size, chunk_size), offset);
+               sg_set_page(s, pages[cur_page],
+                           min_t(unsigned long, size, chunk_size), offset);
                size -= chunk_size;
                offset = 0;
                cur_page = j;
@@ -431,6 +443,35 @@ int sg_alloc_table_from_pages(struct sg_table *sgt,
 
        return 0;
 }
+EXPORT_SYMBOL(__sg_alloc_table_from_pages);
+
+/**
+ * sg_alloc_table_from_pages - Allocate and initialize an sg table from
+ *                            an array of pages
+ * @sgt:        The sg table header to use
+ * @pages:      Pointer to an array of page pointers
+ * @n_pages:    Number of pages in the pages array
+ * @offset:      Offset from start of the first page to the start of a buffer
+ * @size:        Number of valid bytes in the buffer (after offset)
+ * @gfp_mask:   GFP allocation mask
+ *
+ *  Description:
+ *    Allocate and initialize an sg table from a list of pages. Contiguous
+ *    ranges of the pages are squashed into a single scatterlist node. A user
+ *    may provide an offset at a start and a size of valid data in a buffer
+ *    specified by the page array. The returned sg table is released by
+ *    sg_free_table.
+ *
+ * Returns:
+ *   0 on success, negative error on failure
+ */
+int sg_alloc_table_from_pages(struct sg_table *sgt, struct page **pages,
+                             unsigned int n_pages, unsigned int offset,
+                             unsigned long size, gfp_t gfp_mask)
+{
+       return __sg_alloc_table_from_pages(sgt, pages, n_pages, offset, size,
+                                          SCATTERLIST_MAX_SEGMENT, gfp_mask);
+}
 EXPORT_SYMBOL(sg_alloc_table_from_pages);
 
 void __sg_page_iter_start(struct sg_page_iter *piter,
diff --git a/tools/testing/scatterlist/Makefile b/tools/testing/scatterlist/Makefile
new file mode 100644 (file)
index 0000000..933c3a6
--- /dev/null
@@ -0,0 +1,30 @@
+CFLAGS += -I. -I../../include -g -O2 -Wall -fsanitize=address
+LDFLAGS += -fsanitize=address -fsanitize=undefined
+TARGETS = main
+OFILES = main.o scatterlist.o
+
+ifeq ($(BUILD), 32)
+        CFLAGS += -m32
+        LDFLAGS += -m32
+endif
+
+targets: include $(TARGETS)
+
+main: $(OFILES)
+
+clean:
+       $(RM) $(TARGETS) $(OFILES) scatterlist.c linux/scatterlist.h linux/highmem.h linux/kmemleak.h asm/io.h
+       @rmdir asm
+
+scatterlist.c: ../../../lib/scatterlist.c
+       @sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
+
+.PHONY: include
+
+include: ../../../include/linux/scatterlist.h
+       @mkdir -p linux
+       @mkdir -p asm
+       @touch asm/io.h
+       @touch linux/highmem.h
+       @touch linux/kmemleak.h
+       @cp $< linux/scatterlist.h
diff --git a/tools/testing/scatterlist/linux/mm.h b/tools/testing/scatterlist/linux/mm.h
new file mode 100644 (file)
index 0000000..6f9ac14
--- /dev/null
@@ -0,0 +1,125 @@
+#ifndef _LINUX_MM_H
+#define _LINUX_MM_H
+
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+
+typedef unsigned long dma_addr_t;
+
+#define unlikely
+
+#define BUG_ON(x) assert(!(x))
+
+#define WARN_ON(condition) ({                                           \
+       int __ret_warn_on = !!(condition);                              \
+       unlikely(__ret_warn_on);                                        \
+})
+
+#define WARN_ON_ONCE(condition) ({                              \
+       int __ret_warn_on = !!(condition);                      \
+       if (unlikely(__ret_warn_on))                            \
+               assert(0);                                      \
+       unlikely(__ret_warn_on);                                \
+})
+
+#define PAGE_SIZE      (4096)
+#define PAGE_SHIFT     (12)
+#define PAGE_MASK      (~(PAGE_SIZE-1))
+
+#define __ALIGN_KERNEL(x, a)           __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
+#define __ALIGN_KERNEL_MASK(x, mask)   (((x) + (mask)) & ~(mask))
+#define ALIGN(x, a)                    __ALIGN_KERNEL((x), (a))
+
+#define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE)
+
+#define offset_in_page(p)      ((unsigned long)(p) & ~PAGE_MASK)
+
+#define virt_to_page(x)        ((void *)x)
+#define page_address(x)        ((void *)x)
+
+static inline unsigned long page_to_phys(struct page *page)
+{
+       assert(0);
+
+       return 0;
+}
+
+#define page_to_pfn(page) ((unsigned long)(page) / PAGE_SIZE)
+#define pfn_to_page(pfn) (void *)((pfn) * PAGE_SIZE)
+#define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n))
+
+#define __min(t1, t2, min1, min2, x, y) ({              \
+       t1 min1 = (x);                                  \
+       t2 min2 = (y);                                  \
+       (void) (&min1 == &min2);                        \
+       min1 < min2 ? min1 : min2; })
+
+#define ___PASTE(a,b) a##b
+#define __PASTE(a,b) ___PASTE(a,b)
+
+#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
+
+#define min(x, y)                                       \
+       __min(typeof(x), typeof(y),                     \
+             __UNIQUE_ID(min1_), __UNIQUE_ID(min2_),   \
+             x, y)
+
+#define min_t(type, x, y)                               \
+       __min(type, type,                               \
+             __UNIQUE_ID(min1_), __UNIQUE_ID(min2_),   \
+             x, y)
+
+#define preemptible() (1)
+
+static inline void *kmap(struct page *page)
+{
+       assert(0);
+
+       return NULL;
+}
+
+static inline void *kmap_atomic(struct page *page)
+{
+       assert(0);
+
+       return NULL;
+}
+
+static inline void kunmap(void *addr)
+{
+       assert(0);
+}
+
+static inline void kunmap_atomic(void *addr)
+{
+       assert(0);
+}
+
+static inline unsigned long __get_free_page(unsigned int flags)
+{
+       return (unsigned long)malloc(PAGE_SIZE);
+}
+
+static inline void free_page(unsigned long page)
+{
+       free((void *)page);
+}
+
+static inline void *kmalloc(unsigned int size, unsigned int flags)
+{
+       return malloc(size);
+}
+
+#define kfree(x) free(x)
+
+#define kmemleak_alloc(a, b, c, d)
+#define kmemleak_free(a)
+
+#define PageSlab(p) (0)
+#define flush_kernel_dcache_page(p)
+
+#endif
diff --git a/tools/testing/scatterlist/main.c b/tools/testing/scatterlist/main.c
new file mode 100644 (file)
index 0000000..0a14641
--- /dev/null
@@ -0,0 +1,79 @@
+#include <stdio.h>
+#include <assert.h>
+
+#include <linux/scatterlist.h>
+
+#define MAX_PAGES (64)
+
+static void set_pages(struct page **pages, const unsigned *array, unsigned num)
+{
+       unsigned int i;
+
+       assert(num < MAX_PAGES);
+       for (i = 0; i < num; i++)
+               pages[i] = (struct page *)(unsigned long)
+                          ((1 + array[i]) * PAGE_SIZE);
+}
+
+#define pfn(...) (unsigned []){ __VA_ARGS__ }
+
+int main(void)
+{
+       const unsigned int sgmax = SCATTERLIST_MAX_SEGMENT;
+       struct test {
+               int alloc_ret;
+               unsigned num_pages;
+               unsigned *pfn;
+               unsigned size;
+               unsigned int max_seg;
+               unsigned int expected_segments;
+       } *test, tests[] = {
+               { -EINVAL, 1, pfn(0), PAGE_SIZE, PAGE_SIZE + 1, 1 },
+               { -EINVAL, 1, pfn(0), PAGE_SIZE, 0, 1 },
+               { -EINVAL, 1, pfn(0), PAGE_SIZE, sgmax + 1, 1 },
+               { 0, 1, pfn(0), PAGE_SIZE, sgmax, 1 },
+               { 0, 1, pfn(0), 1, sgmax, 1 },
+               { 0, 2, pfn(0, 1), 2 * PAGE_SIZE, sgmax, 1 },
+               { 0, 2, pfn(1, 0), 2 * PAGE_SIZE, sgmax, 2 },
+               { 0, 3, pfn(0, 1, 2), 3 * PAGE_SIZE, sgmax, 1 },
+               { 0, 3, pfn(0, 2, 1), 3 * PAGE_SIZE, sgmax, 3 },
+               { 0, 3, pfn(0, 1, 3), 3 * PAGE_SIZE, sgmax, 2 },
+               { 0, 3, pfn(1, 2, 4), 3 * PAGE_SIZE, sgmax, 2 },
+               { 0, 3, pfn(1, 3, 4), 3 * PAGE_SIZE, sgmax, 2 },
+               { 0, 4, pfn(0, 1, 3, 4), 4 * PAGE_SIZE, sgmax, 2 },
+               { 0, 5, pfn(0, 1, 3, 4, 5), 5 * PAGE_SIZE, sgmax, 2 },
+               { 0, 5, pfn(0, 1, 3, 4, 6), 5 * PAGE_SIZE, sgmax, 3 },
+               { 0, 5, pfn(0, 1, 2, 3, 4), 5 * PAGE_SIZE, sgmax, 1 },
+               { 0, 5, pfn(0, 1, 2, 3, 4), 5 * PAGE_SIZE, 2 * PAGE_SIZE, 3 },
+               { 0, 6, pfn(0, 1, 2, 3, 4, 5), 6 * PAGE_SIZE, 2 * PAGE_SIZE, 3 },
+               { 0, 6, pfn(0, 2, 3, 4, 5, 6), 6 * PAGE_SIZE, 2 * PAGE_SIZE, 4 },
+               { 0, 6, pfn(0, 1, 3, 4, 5, 6), 6 * PAGE_SIZE, 2 * PAGE_SIZE, 3 },
+               { 0, 0, NULL, 0, 0, 0 },
+       };
+       unsigned int i;
+
+       for (i = 0, test = tests; test->expected_segments; test++, i++) {
+               struct page *pages[MAX_PAGES];
+               struct sg_table st;
+               int ret;
+
+               set_pages(pages, test->pfn, test->num_pages);
+
+               ret = __sg_alloc_table_from_pages(&st, pages, test->num_pages,
+                                                 0, test->size, test->max_seg,
+                                                 GFP_KERNEL);
+               assert(ret == test->alloc_ret);
+
+               if (test->alloc_ret)
+                       continue;
+
+               assert(st.nents == test->expected_segments);
+               assert(st.orig_nents == test->expected_segments);
+
+               sg_free_table(&st);
+       }
+
+       assert(i == (sizeof(tests) / sizeof(tests[0])) - 1);
+
+       return 0;
+}