linux/drivers/gpu/drm/i915
Ville Syrjälä ca0026790e drm/i915: Always write both TILEOFF and LINOFF plane registers
Reduce the clutter in the sprite update functions by writing
both TILEOFF and LINOFF registers unconditionally. We already
did this for primary planes so might as well do it for the
sprites too.

There is no harm in writing both registers. Which one gets
used depends on the tilimg mode selected in the plane control
registers.

It might even make sense to clear the register that won't
get used. That could make register dumps a little easier to
parse. But I'm not sure it's worth the extra hassle.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181108150955.23948-1-ville.syrjala@linux.intel.com
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> #irc
2018-11-13 16:52:12 +02:00
..
gvt Merge drm/drm-next into drm-intel-next-queued 2018-11-02 09:01:28 +02:00
selftests drm/i915/selftest: test aligned offsets for 64K 2018-10-31 08:48:46 +00:00
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo.h
i915_cmd_parser.c drm/i915/cmdparser: Do not check past the cmd length. 2018-02-06 11:41:40 -08:00
i915_debugfs.c drm/i915: Add short HPD IRQ storm detection for non-MST systems 2018-11-07 15:12:30 -05:00
i915_drv.c drm/i915: Keep overlay functions naming consistent 2018-11-08 17:09:18 -08:00
i915_drv.h drm/i915: remove padding from struct skl_wm_level 2018-11-08 16:21:48 -08:00
i915_gem_batch_pool.c drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_batch_pool.h drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_clflush.c drm/i915: Remove unecessary dma_fence_ops 2018-08-17 11:22:15 +02:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: Add ppgtt to GVT GEM context 2018-10-19 12:23:45 +01:00
i915_gem_context.h drm/i915/execlists: Flush the CS events before unpinning 2018-10-03 14:27:16 +01:00
i915_gem_dmabuf.c dma-buf: remove kmap_atomic interface 2018-06-20 15:59:34 +02:00
i915_gem_evict.c drm/i915: Provide a timeout to i915_gem_wait_for_idle() 2018-07-09 13:55:41 +01:00
i915_gem_execbuffer.c drm/i915: Compare user's 64b GTT offset even on 32b 2018-10-26 09:20:05 +01:00
i915_gem_fence_reg.c drm/i915: Use INTEL_GEN everywhere 2018-02-09 22:29:02 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915/gtt: Revert "Disable read-only support under GVT" 2018-10-31 08:37:45 +00:00
i915_gem_gtt.h drm/i915: Mark pin flags as u64 2018-11-02 20:28:26 +00:00
i915_gem_internal.c drm: move read_domains and write_domain into i915 2018-02-16 14:12:48 +00:00
i915_gem_object.c
i915_gem_object.h drm/i915: Mark up object tiling-and-stride getters as const 2018-07-26 12:31:02 +01:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h drm/i915: Rename drm_i915_gem_request to i915_request 2018-02-21 20:57:22 +00:00
i915_gem_shrinker.c drm/i915: Introduce i915_address_space.mutex 2018-07-11 13:56:16 +01:00
i915_gem_stolen.c drm/i915: pass dev_priv to i915_gem_cleanup_stolen 2018-09-20 16:43:17 +01:00
i915_gem_tiling.c drm/i915: Refactor common list iteration over GGTT vma 2017-12-07 23:26:55 +00:00
i915_gem_userptr.c mm, oom: distinguish blockable mode for mmu notifiers 2018-08-22 10:52:44 -07:00
i915_gem.c drm/i915: Track rcu_head for our idle worker 2018-11-09 12:02:09 +00:00
i915_gem.h drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
i915_gemfs.c drm/i915: Disable THP until we have a GPU read BW W/A 2017-11-30 10:11:49 +02:00
i915_gemfs.h
i915_gpu_error.c drm/i915: Clear the error PTE just once on finish 2018-10-03 11:42:26 +01:00
i915_gpu_error.h drm/i915: Handle incomplete Z_FINISH for compressed error states 2018-10-03 11:39:31 +01:00
i915_ioc32.c drm/i915: Clean up ancient doc comments for i915_ioc32.c 2018-02-15 16:22:21 +00:00
i915_irq.c drm/i915/icl: Reset PSR interruptions 2018-11-09 10:49:39 -08:00
i915_memcpy.c drm/i915: Do not enable movntdqa optimization in hypervisor guest 2017-12-22 11:12:15 +00:00
i915_mm.c
i915_oa_bdw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bdw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_params.c drm/i915: Ensure _print_param() builds with Clang 2018-10-17 09:55:21 +03:00
i915_params.h drm/i915: Remove i915.enable_ppgtt override 2018-09-27 12:05:31 +01:00
i915_pci.c drm/i915: remove palette_offsets from device info in favor of _PICK() 2018-11-02 09:16:33 +02:00
i915_perf.c drm/i915/perf: Fix warning in documentation 2018-10-24 13:57:18 +01:00
i915_pmu.c drm pull for 4.19-rc1 2018-08-15 17:39:07 -07:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c drm/i915/query: fix subslice length 2018-11-09 11:42:00 -08:00
i915_query.h drm/i915: add query uAPI 2018-03-08 10:07:18 +00:00
i915_reg.h drm/i915: Polish the skl+ plane keyval/msk/max register setup 2018-11-09 19:10:37 +02:00
i915_request.c drm/i915: Park signaling thread while wrapping the seqno 2018-10-26 12:37:13 +01:00
i915_request.h drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_scheduler.c drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_scheduler.h drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c
i915_sw_fence.c drm/i915: Include fence-hint for timeout warning 2018-09-14 14:28:32 +01:00
i915_sw_fence.h
i915_syncmap.c drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_syncmap.h
i915_sysfs.c drm/i915: Kick the rps worker when changing the boost frequency 2018-03-12 11:24:49 -07:00
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Replace nested subclassing with explicit subclasses 2018-07-07 08:09:43 +01:00
i915_trace_points.c
i915_trace.h drm/i915/ringbuffer: Fix context restore upon reset 2018-06-11 14:03:47 +01:00
i915_utils.h drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
i915_vma.h drm/i915: Fix gtt_view asserts 2018-08-28 18:49:33 +03:00
icl_dsi.c drm/i915/icl: Find DSI presence for ICL 2018-11-01 12:23:40 +02:00
intel_acpi.c drm/i915/dsm: remove unnecessary dsm priv structure 2018-06-14 15:59:09 +03:00
intel_atomic_plane.c drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v5. 2018-10-24 10:29:28 +02:00
intel_atomic.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_audio.c drm/i915/hdmi: Add HDMI 2.0 audio clock recovery N values 2018-10-26 09:54:16 +03:00
intel_bios.c drm/i915: Move intel_aux_ch() to intel_bios.c 2018-11-02 01:23:58 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_cdclk.c drm/i915/glk: Remove 99% limitation. 2018-10-29 10:44:16 -07:00
intel_color.c drm/i915: Add CRTC output format YCBCR 4:4:4 2018-10-15 16:01:50 +03:00
intel_combo_phy.c drm/i915/icl: Skip init for an already enabled combo PHY 2018-11-08 19:27:29 +02:00
intel_connector.c drm/i915: rename and move intel_get_pipe_from_connector() 2018-10-17 09:36:43 +03:00
intel_crt.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_csr.c drm/i915/csr: fix spelling mistake "firmare" -> "firmware" 2018-11-07 15:31:58 +00:00
intel_ddi.c drm/i915/icl: Fix PLL mapping sanitization for DP ports 2018-11-09 15:52:20 +02:00
intel_device_info.c drm/i915: fix broadwell EU computation 2018-11-12 17:40:16 +00:00
intel_device_info.h drm/i915: fix subslice mask array size 2018-11-09 11:41:43 -08:00
intel_display.c drm/i915: Clean up the baseline bpp computation 2018-11-12 13:27:04 +02:00
intel_display.h drm/i915/gen11: Enable 6 sprites on gen11 2018-10-24 10:28:44 +02:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode 2018-10-17 18:23:59 -07:00
intel_dp_mst.c drm/i915/mst: Drop pre_pll_enable null check 2018-11-09 18:21:13 +02:00
intel_dp.c drm/i915: Reuse the aux_domain cached 2018-11-09 18:21:12 +02:00
intel_dpio_phy.c drm/i915: Get rid of crtc->config in chv_data_lane_soft_reset 2018-10-05 15:19:08 +02:00
intel_dpll_mgr.c drm/i915/icl: Fix crash when getting DPLL of a MST encoder in TC ports 2018-10-31 15:25:05 -07:00
intel_dpll_mgr.h drm/i915/icl: Refactor icl pll functions 2018-10-16 09:00:58 -07:00
intel_drv.h drm/i915: Generalize skl_ddb_allocation_overlaps() 2018-11-09 19:13:44 +02:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/icl: Don't wait for empty FIFO 2018-11-01 12:24:56 +02:00
intel_dsi.c drm/i915/dsi: move connector mode functions to common file 2018-10-31 11:33:29 +02:00
intel_dsi.h drm/i915/icl: Program HS_TX_TIMEOUT/LP_RX_TIMEOUT/TA_TIMEOUT registers 2018-10-31 13:17:30 +02:00
intel_dvo.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_engine_cs.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_fbc.c drm/i915: Prefer IS_GEN<n> check with bitmask. 2018-10-29 10:44:11 -07:00
intel_fbdev.c drm/i915: Use crtc->state in intel_fbdev_init_bios 2018-10-05 15:18:38 +02:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915/psr: Nuke PSR support for VLV and CHV 2018-05-24 16:05:19 +03:00
intel_frontbuffer.h
intel_gpu_commands.h drm/i915: Split GPU commands definitions into separate header 2018-03-15 10:00:03 +00:00
intel_guc_ads.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ads.h drm/i915/guc : Decoupling ADS and logs from submission 2018-01-03 14:02:10 +00:00
intel_guc_ct.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ct.h drm/i915/guc: Prepare to process incoming requests from CT 2018-03-28 20:35:17 +01:00
intel_guc_fw.c drm/i915/guc: Propagate the fw xfer timeout 2018-10-23 17:12:22 +01:00
intel_guc_fw.h drm/i915/guc: Move firmware selection to init_early 2017-12-06 14:41:47 +00:00
intel_guc_fwif.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_log.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_submission.c drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_submission.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc.c drm/i915/guc: Limit number of scratch registers used for H2G 2018-10-22 12:36:49 +01:00
intel_guc.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Pull seqno started checks together 2018-08-07 12:43:00 +01:00
intel_hdcp.c drm/i915: Reassigning log level for HDCP failures 2018-10-29 16:14:58 +01:00
intel_hdmi.c drm/i915: Allow "max bpc" property to limit pipe_bpp 2018-11-02 09:16:03 -07:00
intel_hotplug.c drm/i915: Fix hpd handling for pins with two encoders 2018-11-09 17:40:57 +02:00
intel_huc_fw.c drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_huc_fw.h drm/i915/uc: Make GuC/HuC fw fetch and loading functions/file structure symmetric 2018-03-02 09:04:45 +00:00
intel_huc.c drm/i915/huc: Normalize HuC status returned by I915_PARAM_HAS_HUC 2018-10-18 10:20:08 +01:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_i2c.c drm/i915: remove confusing GPIO vs PCH_GPIO 2018-08-16 11:52:08 -07:00
intel_lpe_audio.c drm/i915: Don't oops during modeset shutdown after lpe audio deinit 2018-11-06 15:17:26 +02:00
intel_lrc_reg.h drm/i915/execlists: Terminate the context image with BB_END 2018-08-01 17:03:31 +01:00
intel_lrc.c drm/i915: Set MI_INVALIDATE_BSD for all video-decode engines 2018-11-08 21:24:30 +00:00
intel_lrc.h drm/i915: Remove superfluous GEN8_LR_CONTEXT_ALIGN 2018-07-27 11:30:42 +01:00
intel_lspcon.c drm/i915: Switch LSPCON to PCON mode if it's in LS mode 2018-11-13 15:22:27 +02:00
intel_lvds.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_mocs.c drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_mocs.h drm/i915: Remove useless error return from intel_init_mocs_engine() 2018-08-15 23:25:43 +01:00
intel_opregion.c drm/i915: Stop calling intel_opregion unregister/register in suspend/resume 2018-10-30 11:52:54 +00:00
intel_opregion.h drm/i915: Stop calling intel_opregion unregister/register in suspend/resume 2018-10-30 11:52:54 +00:00
intel_overlay.c drm/i915: Keep overlay functions naming consistent 2018-11-08 17:09:18 -08:00
intel_panel.c drm/i915: Use intel_panel_actually_set_backlight() to disable PWM backlight 2018-10-31 23:44:55 +02:00
intel_pipe_crc.c Merge drm/drm-next into drm-misc-next 2018-08-27 10:00:03 -04:00
intel_pm.c drm/i915: Generalize skl_ddb_allocation_overlaps() 2018-11-09 19:13:44 +02:00
intel_psr.c drm/i915/psr: Move intel_psr_disable_source() code to intel_psr_disable_locked() 2018-11-09 10:49:39 -08:00
intel_quirks.c drm/i915/quirks: pass dev_priv instead of drm dev to quirk code 2018-10-18 13:40:13 +03:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915/ringbuffer: Delay after EMIT_INVALIDATE for gen4/gen5 2018-11-07 15:31:45 +00:00
intel_ringbuffer.h drm/i915/ringbuffer: change header SPDX identifier to MIT 2018-10-31 11:57:11 +02:00
intel_runtime_pm.c drm/i915/icl: Fix port B combo PHY context loss after DC transitions 2018-11-08 19:27:29 +02:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915/sdvo: Utilize intel_panel for fixed_mode 2018-10-23 18:26:15 +03:00
intel_sideband.c
intel_sprite.c drm/i915: Always write both TILEOFF and LINOFF plane registers 2018-11-13 16:52:12 +02:00
intel_tv.c drm/i915: Introduce CRTC output format 2018-10-15 16:01:49 +03:00
intel_uc_fw.c drm/i915/guc: Move the pin bias value from GuC to GGTT 2018-07-27 16:03:41 +01:00
intel_uc_fw.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_uc.c drm/i915/guc: Fix Gen9 GuC loading workarounds 2018-10-17 09:08:00 +01:00
intel_uc.h drm/i915/uc: Fetch uC firmware in init_early 2018-03-23 17:03:24 +00:00
intel_uncore.c drm/i915: uncore_fw_domains_init sort platforms newer-to-older 2018-10-22 14:40:43 -07:00
intel_uncore.h drm/i915: Restore user forcewake domains across suspend 2018-08-15 13:41:05 -07:00
intel_vbt_defs.h drm/i915/vbt: switch to kernel unsigned int types 2018-06-18 14:44:52 +03:00
intel_wopcm.c drm/i915: Add a fault injection point to WOPCM init 2018-07-27 16:07:45 +01:00
intel_wopcm.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_workarounds.c drm/i915/icl: WaAllowUMDToModifySamplerMode 2018-11-01 12:28:54 -07:00
intel_workarounds.h drm/i915: Check whitelist registers across resets 2018-04-14 18:36:45 +01:00
Kconfig - New Drivers 2018-08-20 15:38:44 -07:00
Kconfig.debug drm/i915: Verify power domains after enabling them 2018-08-20 12:13:09 +03:00
Makefile drm/i915/cnl+: Move the combo PHY init/uninit code to a new file 2018-11-08 19:27:00 +02:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
vlv_dsi.c drm/i915/dsi: move connector mode functions to common file 2018-10-31 11:33:29 +02:00