···3131#include "radeon_drm.h"3232#include "sid.h"3333#include "atom.h"3434+#include "si_blit_shaders.h"34353536#define SI_PFP_UCODE_SIZE 21443637#define SI_PM4_UCODE_SIZE 2144···18601859 WREG32(PA_CL_ENHANCE, CLIP_VTX_REORDER_ENA | NUM_CLIP_SEQ(3));1861186018621861 udelay(50);18621862+}18631863+18641864+/*18651865+ * CP.18661866+ */18671867+static void si_cp_enable(struct radeon_device *rdev, bool enable)18681868+{18691869+ if (enable)18701870+ WREG32(CP_ME_CNTL, 0);18711871+ else {18721872+ radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);18731873+ WREG32(CP_ME_CNTL, (CP_ME_HALT | CP_PFP_HALT | CP_CE_HALT));18741874+ WREG32(SCRATCH_UMSK, 0);18751875+ }18761876+ udelay(50);18771877+}18781878+18791879+static int si_cp_load_microcode(struct radeon_device *rdev)18801880+{18811881+ const __be32 *fw_data;18821882+ int i;18831883+18841884+ if (!rdev->me_fw || !rdev->pfp_fw)18851885+ return -EINVAL;18861886+18871887+ si_cp_enable(rdev, false);18881888+18891889+ /* PFP */18901890+ fw_data = (const __be32 *)rdev->pfp_fw->data;18911891+ WREG32(CP_PFP_UCODE_ADDR, 0);18921892+ for (i = 0; i < SI_PFP_UCODE_SIZE; i++)18931893+ WREG32(CP_PFP_UCODE_DATA, be32_to_cpup(fw_data++));18941894+ WREG32(CP_PFP_UCODE_ADDR, 0);18951895+18961896+ /* CE */18971897+ fw_data = (const __be32 *)rdev->ce_fw->data;18981898+ WREG32(CP_CE_UCODE_ADDR, 0);18991899+ for (i = 0; i < SI_CE_UCODE_SIZE; i++)19001900+ WREG32(CP_CE_UCODE_DATA, be32_to_cpup(fw_data++));19011901+ WREG32(CP_CE_UCODE_ADDR, 0);19021902+19031903+ /* ME */19041904+ fw_data = (const __be32 *)rdev->me_fw->data;19051905+ WREG32(CP_ME_RAM_WADDR, 0);19061906+ for (i = 0; i < SI_PM4_UCODE_SIZE; i++)19071907+ WREG32(CP_ME_RAM_DATA, be32_to_cpup(fw_data++));19081908+ WREG32(CP_ME_RAM_WADDR, 0);19091909+19101910+ WREG32(CP_PFP_UCODE_ADDR, 0);19111911+ WREG32(CP_CE_UCODE_ADDR, 0);19121912+ WREG32(CP_ME_RAM_WADDR, 0);19131913+ WREG32(CP_ME_RAM_RADDR, 0);19141914+ return 0;19151915+}19161916+19171917+static int si_cp_start(struct radeon_device *rdev)19181918+{19191919+ struct radeon_ring *ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];19201920+ int r, i;19211921+19221922+ r = radeon_ring_lock(rdev, ring, 7 + 4);19231923+ if (r) {19241924+ DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r);19251925+ return r;19261926+ }19271927+ /* init the CP */19281928+ radeon_ring_write(ring, PACKET3(PACKET3_ME_INITIALIZE, 5));19291929+ radeon_ring_write(ring, 0x1);19301930+ radeon_ring_write(ring, 0x0);19311931+ radeon_ring_write(ring, rdev->config.si.max_hw_contexts - 1);19321932+ radeon_ring_write(ring, PACKET3_ME_INITIALIZE_DEVICE_ID(1));19331933+ radeon_ring_write(ring, 0);19341934+ radeon_ring_write(ring, 0);19351935+19361936+ /* init the CE partitions */19371937+ radeon_ring_write(ring, PACKET3(PACKET3_SET_BASE, 2));19381938+ radeon_ring_write(ring, PACKET3_BASE_INDEX(CE_PARTITION_BASE));19391939+ radeon_ring_write(ring, 0xc000);19401940+ radeon_ring_write(ring, 0xe000);19411941+ radeon_ring_unlock_commit(rdev, ring);19421942+19431943+ si_cp_enable(rdev, true);19441944+19451945+ r = radeon_ring_lock(rdev, ring, si_default_size + 10);19461946+ if (r) {19471947+ DRM_ERROR("radeon: cp failed to lock ring (%d).\n", r);19481948+ return r;19491949+ }19501950+19511951+ /* setup clear context state */19521952+ radeon_ring_write(ring, PACKET3(PACKET3_PREAMBLE_CNTL, 0));19531953+ radeon_ring_write(ring, PACKET3_PREAMBLE_BEGIN_CLEAR_STATE);19541954+19551955+ for (i = 0; i < si_default_size; i++)19561956+ radeon_ring_write(ring, si_default_state[i]);19571957+19581958+ radeon_ring_write(ring, PACKET3(PACKET3_PREAMBLE_CNTL, 0));19591959+ radeon_ring_write(ring, PACKET3_PREAMBLE_END_CLEAR_STATE);19601960+19611961+ /* set clear context state */19621962+ radeon_ring_write(ring, PACKET3(PACKET3_CLEAR_STATE, 0));19631963+ radeon_ring_write(ring, 0);19641964+19651965+ radeon_ring_write(ring, PACKET3(PACKET3_SET_CONTEXT_REG, 2));19661966+ radeon_ring_write(ring, 0x00000316);19671967+ radeon_ring_write(ring, 0x0000000e); /* VGT_VERTEX_REUSE_BLOCK_CNTL */19681968+ radeon_ring_write(ring, 0x00000010); /* VGT_OUT_DEALLOC_CNTL */19691969+19701970+ radeon_ring_unlock_commit(rdev, ring);19711971+19721972+ for (i = RADEON_RING_TYPE_GFX_INDEX; i <= CAYMAN_RING_TYPE_CP2_INDEX; ++i) {19731973+ ring = &rdev->ring[i];19741974+ r = radeon_ring_lock(rdev, ring, 2);19751975+19761976+ /* clear the compute context state */19771977+ radeon_ring_write(ring, PACKET3_COMPUTE(PACKET3_CLEAR_STATE, 0));19781978+ radeon_ring_write(ring, 0);19791979+19801980+ radeon_ring_unlock_commit(rdev, ring);19811981+ }19821982+19831983+ return 0;19841984+}19851985+19861986+static void si_cp_fini(struct radeon_device *rdev)19871987+{19881988+ si_cp_enable(rdev, false);19891989+ radeon_ring_fini(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);19901990+ radeon_ring_fini(rdev, &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX]);19911991+ radeon_ring_fini(rdev, &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX]);19921992+}19931993+19941994+static int si_cp_resume(struct radeon_device *rdev)19951995+{19961996+ struct radeon_ring *ring;19971997+ u32 tmp;19981998+ u32 rb_bufsz;19991999+ int r;20002000+20012001+ /* Reset cp; if cp is reset, then PA, SH, VGT also need to be reset */20022002+ WREG32(GRBM_SOFT_RESET, (SOFT_RESET_CP |20032003+ SOFT_RESET_PA |20042004+ SOFT_RESET_VGT |20052005+ SOFT_RESET_SPI |20062006+ SOFT_RESET_SX));20072007+ RREG32(GRBM_SOFT_RESET);20082008+ mdelay(15);20092009+ WREG32(GRBM_SOFT_RESET, 0);20102010+ RREG32(GRBM_SOFT_RESET);20112011+20122012+ WREG32(CP_SEM_WAIT_TIMER, 0x0);20132013+ WREG32(CP_SEM_INCOMPLETE_TIMER_CNTL, 0x0);20142014+20152015+ /* Set the write pointer delay */20162016+ WREG32(CP_RB_WPTR_DELAY, 0);20172017+20182018+ WREG32(CP_DEBUG, 0);20192019+ WREG32(SCRATCH_ADDR, ((rdev->wb.gpu_addr + RADEON_WB_SCRATCH_OFFSET) >> 8) & 0xFFFFFFFF);20202020+20212021+ /* ring 0 - compute and gfx */20222022+ /* Set ring buffer size */20232023+ ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX];20242024+ rb_bufsz = drm_order(ring->ring_size / 8);20252025+ tmp = (drm_order(RADEON_GPU_PAGE_SIZE/8) << 8) | rb_bufsz;20262026+#ifdef __BIG_ENDIAN20272027+ tmp |= BUF_SWAP_32BIT;20282028+#endif20292029+ WREG32(CP_RB0_CNTL, tmp);20302030+20312031+ /* Initialize the ring buffer's read and write pointers */20322032+ WREG32(CP_RB0_CNTL, tmp | RB_RPTR_WR_ENA);20332033+ ring->wptr = 0;20342034+ WREG32(CP_RB0_WPTR, ring->wptr);20352035+20362036+ /* set the wb address wether it's enabled or not */20372037+ WREG32(CP_RB0_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP_RPTR_OFFSET) & 0xFFFFFFFC);20382038+ WREG32(CP_RB0_RPTR_ADDR_HI, upper_32_bits(rdev->wb.gpu_addr + RADEON_WB_CP_RPTR_OFFSET) & 0xFF);20392039+20402040+ if (rdev->wb.enabled)20412041+ WREG32(SCRATCH_UMSK, 0xff);20422042+ else {20432043+ tmp |= RB_NO_UPDATE;20442044+ WREG32(SCRATCH_UMSK, 0);20452045+ }20462046+20472047+ mdelay(1);20482048+ WREG32(CP_RB0_CNTL, tmp);20492049+20502050+ WREG32(CP_RB0_BASE, ring->gpu_addr >> 8);20512051+20522052+ ring->rptr = RREG32(CP_RB0_RPTR);20532053+20542054+ /* ring1 - compute only */20552055+ /* Set ring buffer size */20562056+ ring = &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX];20572057+ rb_bufsz = drm_order(ring->ring_size / 8);20582058+ tmp = (drm_order(RADEON_GPU_PAGE_SIZE/8) << 8) | rb_bufsz;20592059+#ifdef __BIG_ENDIAN20602060+ tmp |= BUF_SWAP_32BIT;20612061+#endif20622062+ WREG32(CP_RB1_CNTL, tmp);20632063+20642064+ /* Initialize the ring buffer's read and write pointers */20652065+ WREG32(CP_RB1_CNTL, tmp | RB_RPTR_WR_ENA);20662066+ ring->wptr = 0;20672067+ WREG32(CP_RB1_WPTR, ring->wptr);20682068+20692069+ /* set the wb address wether it's enabled or not */20702070+ WREG32(CP_RB1_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP1_RPTR_OFFSET) & 0xFFFFFFFC);20712071+ WREG32(CP_RB1_RPTR_ADDR_HI, upper_32_bits(rdev->wb.gpu_addr + RADEON_WB_CP1_RPTR_OFFSET) & 0xFF);20722072+20732073+ mdelay(1);20742074+ WREG32(CP_RB1_CNTL, tmp);20752075+20762076+ WREG32(CP_RB1_BASE, ring->gpu_addr >> 8);20772077+20782078+ ring->rptr = RREG32(CP_RB1_RPTR);20792079+20802080+ /* ring2 - compute only */20812081+ /* Set ring buffer size */20822082+ ring = &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX];20832083+ rb_bufsz = drm_order(ring->ring_size / 8);20842084+ tmp = (drm_order(RADEON_GPU_PAGE_SIZE/8) << 8) | rb_bufsz;20852085+#ifdef __BIG_ENDIAN20862086+ tmp |= BUF_SWAP_32BIT;20872087+#endif20882088+ WREG32(CP_RB2_CNTL, tmp);20892089+20902090+ /* Initialize the ring buffer's read and write pointers */20912091+ WREG32(CP_RB2_CNTL, tmp | RB_RPTR_WR_ENA);20922092+ ring->wptr = 0;20932093+ WREG32(CP_RB2_WPTR, ring->wptr);20942094+20952095+ /* set the wb address wether it's enabled or not */20962096+ WREG32(CP_RB2_RPTR_ADDR, (rdev->wb.gpu_addr + RADEON_WB_CP2_RPTR_OFFSET) & 0xFFFFFFFC);20972097+ WREG32(CP_RB2_RPTR_ADDR_HI, upper_32_bits(rdev->wb.gpu_addr + RADEON_WB_CP2_RPTR_OFFSET) & 0xFF);20982098+20992099+ mdelay(1);21002100+ WREG32(CP_RB2_CNTL, tmp);21012101+21022102+ WREG32(CP_RB2_BASE, ring->gpu_addr >> 8);21032103+21042104+ ring->rptr = RREG32(CP_RB2_RPTR);21052105+21062106+ /* start the rings */21072107+ si_cp_start(rdev);21082108+ rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = true;21092109+ rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = true;21102110+ rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = true;21112111+ r = radeon_ring_test(rdev, RADEON_RING_TYPE_GFX_INDEX, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]);21122112+ if (r) {21132113+ rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready = false;21142114+ rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false;21152115+ rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false;21162116+ return r;21172117+ }21182118+ r = radeon_ring_test(rdev, CAYMAN_RING_TYPE_CP1_INDEX, &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX]);21192119+ if (r) {21202120+ rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false;21212121+ }21222122+ r = radeon_ring_test(rdev, CAYMAN_RING_TYPE_CP2_INDEX, &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX]);21232123+ if (r) {21242124+ rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false;21252125+ }21262126+21272127+ return 0;18632128}1864212918652130bool si_gpu_is_lockup(struct radeon_device *rdev, struct radeon_ring *ring)
+252
drivers/gpu/drm/radeon/si_blit_shaders.c
···11+/*22+ * Copyright 2011 Advanced Micro Devices, Inc.33+ *44+ * Permission is hereby granted, free of charge, to any person obtaining a55+ * copy of this software and associated documentation files (the "Software"),66+ * to deal in the Software without restriction, including without limitation77+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,88+ * and/or sell copies of the Software, and to permit persons to whom the99+ * Software is furnished to do so, subject to the following conditions:1010+ *1111+ * The above copyright notice and this permission notice (including the next1212+ * paragraph) shall be included in all copies or substantial portions of the1313+ * Software.1414+ *1515+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR1616+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,1717+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL1818+ * THE COPYRIGHT HOLDER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR1919+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,2020+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER2121+ * DEALINGS IN THE SOFTWARE.2222+ *2323+ * Authors:2424+ * Alex Deucher <alexander.deucher@amd.com>2525+ */2626+2727+#include <linux/types.h>2828+#include <linux/kernel.h>2929+3030+const u32 si_default_state[] =3131+{3232+ 0xc0066900,3333+ 0x00000000,3434+ 0x00000060, /* DB_RENDER_CONTROL */3535+ 0x00000000, /* DB_COUNT_CONTROL */3636+ 0x00000000, /* DB_DEPTH_VIEW */3737+ 0x0000002a, /* DB_RENDER_OVERRIDE */3838+ 0x00000000, /* DB_RENDER_OVERRIDE2 */3939+ 0x00000000, /* DB_HTILE_DATA_BASE */4040+4141+ 0xc0046900,4242+ 0x00000008,4343+ 0x00000000, /* DB_DEPTH_BOUNDS_MIN */4444+ 0x00000000, /* DB_DEPTH_BOUNDS_MAX */4545+ 0x00000000, /* DB_STENCIL_CLEAR */4646+ 0x00000000, /* DB_DEPTH_CLEAR */4747+4848+ 0xc0036900,4949+ 0x0000000f,5050+ 0x00000000, /* DB_DEPTH_INFO */5151+ 0x00000000, /* DB_Z_INFO */5252+ 0x00000000, /* DB_STENCIL_INFO */5353+5454+ 0xc0016900,5555+ 0x00000080,5656+ 0x00000000, /* PA_SC_WINDOW_OFFSET */5757+5858+ 0xc00d6900,5959+ 0x00000083,6060+ 0x0000ffff, /* PA_SC_CLIPRECT_RULE */6161+ 0x00000000, /* PA_SC_CLIPRECT_0_TL */6262+ 0x20002000, /* PA_SC_CLIPRECT_0_BR */6363+ 0x00000000,6464+ 0x20002000,6565+ 0x00000000,6666+ 0x20002000,6767+ 0x00000000,6868+ 0x20002000,6969+ 0xaaaaaaaa, /* PA_SC_EDGERULE */7070+ 0x00000000, /* PA_SU_HARDWARE_SCREEN_OFFSET */7171+ 0x0000000f, /* CB_TARGET_MASK */7272+ 0x0000000f, /* CB_SHADER_MASK */7373+7474+ 0xc0226900,7575+ 0x00000094,7676+ 0x80000000, /* PA_SC_VPORT_SCISSOR_0_TL */7777+ 0x20002000, /* PA_SC_VPORT_SCISSOR_0_BR */7878+ 0x80000000,7979+ 0x20002000,8080+ 0x80000000,8181+ 0x20002000,8282+ 0x80000000,8383+ 0x20002000,8484+ 0x80000000,8585+ 0x20002000,8686+ 0x80000000,8787+ 0x20002000,8888+ 0x80000000,8989+ 0x20002000,9090+ 0x80000000,9191+ 0x20002000,9292+ 0x80000000,9393+ 0x20002000,9494+ 0x80000000,9595+ 0x20002000,9696+ 0x80000000,9797+ 0x20002000,9898+ 0x80000000,9999+ 0x20002000,100100+ 0x80000000,101101+ 0x20002000,102102+ 0x80000000,103103+ 0x20002000,104104+ 0x80000000,105105+ 0x20002000,106106+ 0x80000000,107107+ 0x20002000,108108+ 0x00000000, /* PA_SC_VPORT_ZMIN_0 */109109+ 0x3f800000, /* PA_SC_VPORT_ZMAX_0 */110110+111111+ 0xc0026900,112112+ 0x000000d9,113113+ 0x00000000, /* CP_RINGID */114114+ 0x00000000, /* CP_VMID */115115+116116+ 0xc0046900,117117+ 0x00000100,118118+ 0xffffffff, /* VGT_MAX_VTX_INDX */119119+ 0x00000000, /* VGT_MIN_VTX_INDX */120120+ 0x00000000, /* VGT_INDX_OFFSET */121121+ 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_INDX */122122+123123+ 0xc0046900,124124+ 0x00000105,125125+ 0x00000000, /* CB_BLEND_RED */126126+ 0x00000000, /* CB_BLEND_GREEN */127127+ 0x00000000, /* CB_BLEND_BLUE */128128+ 0x00000000, /* CB_BLEND_ALPHA */129129+130130+ 0xc0016900,131131+ 0x000001e0,132132+ 0x00000000, /* CB_BLEND0_CONTROL */133133+134134+ 0xc00e6900,135135+ 0x00000200,136136+ 0x00000000, /* DB_DEPTH_CONTROL */137137+ 0x00000000, /* DB_EQAA */138138+ 0x00cc0010, /* CB_COLOR_CONTROL */139139+ 0x00000210, /* DB_SHADER_CONTROL */140140+ 0x00010000, /* PA_CL_CLIP_CNTL */141141+ 0x00000004, /* PA_SU_SC_MODE_CNTL */142142+ 0x00000100, /* PA_CL_VTE_CNTL */143143+ 0x00000000, /* PA_CL_VS_OUT_CNTL */144144+ 0x00000000, /* PA_CL_NANINF_CNTL */145145+ 0x00000000, /* PA_SU_LINE_STIPPLE_CNTL */146146+ 0x00000000, /* PA_SU_LINE_STIPPLE_SCALE */147147+ 0x00000000, /* PA_SU_PRIM_FILTER_CNTL */148148+ 0x00000000, /* */149149+ 0x00000000, /* */150150+151151+ 0xc0116900,152152+ 0x00000280,153153+ 0x00000000, /* PA_SU_POINT_SIZE */154154+ 0x00000000, /* PA_SU_POINT_MINMAX */155155+ 0x00000008, /* PA_SU_LINE_CNTL */156156+ 0x00000000, /* PA_SC_LINE_STIPPLE */157157+ 0x00000000, /* VGT_OUTPUT_PATH_CNTL */158158+ 0x00000000, /* VGT_HOS_CNTL */159159+ 0x00000000,160160+ 0x00000000,161161+ 0x00000000,162162+ 0x00000000,163163+ 0x00000000,164164+ 0x00000000,165165+ 0x00000000,166166+ 0x00000000,167167+ 0x00000000,168168+ 0x00000000,169169+ 0x00000000, /* VGT_GS_MODE */170170+171171+ 0xc0026900,172172+ 0x00000292,173173+ 0x00000000, /* PA_SC_MODE_CNTL_0 */174174+ 0x00000000, /* PA_SC_MODE_CNTL_1 */175175+176176+ 0xc0016900,177177+ 0x000002a1,178178+ 0x00000000, /* VGT_PRIMITIVEID_EN */179179+180180+ 0xc0016900,181181+ 0x000002a5,182182+ 0x00000000, /* VGT_MULTI_PRIM_IB_RESET_EN */183183+184184+ 0xc0026900,185185+ 0x000002a8,186186+ 0x00000000, /* VGT_INSTANCE_STEP_RATE_0 */187187+ 0x00000000,188188+189189+ 0xc0026900,190190+ 0x000002ad,191191+ 0x00000000, /* VGT_REUSE_OFF */192192+ 0x00000000,193193+194194+ 0xc0016900,195195+ 0x000002d5,196196+ 0x00000000, /* VGT_SHADER_STAGES_EN */197197+198198+ 0xc0016900,199199+ 0x000002dc,200200+ 0x0000aa00, /* DB_ALPHA_TO_MASK */201201+202202+ 0xc0066900,203203+ 0x000002de,204204+ 0x00000000, /* PA_SU_POLY_OFFSET_DB_FMT_CNTL */205205+ 0x00000000,206206+ 0x00000000,207207+ 0x00000000,208208+ 0x00000000,209209+ 0x00000000,210210+211211+ 0xc0026900,212212+ 0x000002e5,213213+ 0x00000000, /* VGT_STRMOUT_CONFIG */214214+ 0x00000000,215215+216216+ 0xc01b6900,217217+ 0x000002f5,218218+ 0x76543210, /* PA_SC_CENTROID_PRIORITY_0 */219219+ 0xfedcba98, /* PA_SC_CENTROID_PRIORITY_1 */220220+ 0x00000000, /* PA_SC_LINE_CNTL */221221+ 0x00000000, /* PA_SC_AA_CONFIG */222222+ 0x00000005, /* PA_SU_VTX_CNTL */223223+ 0x3f800000, /* PA_CL_GB_VERT_CLIP_ADJ */224224+ 0x3f800000, /* PA_CL_GB_VERT_DISC_ADJ */225225+ 0x3f800000, /* PA_CL_GB_HORZ_CLIP_ADJ */226226+ 0x3f800000, /* PA_CL_GB_HORZ_DISC_ADJ */227227+ 0x00000000, /* PA_SC_AA_SAMPLE_LOCS_PIXEL_X0Y0_0 */228228+ 0x00000000,229229+ 0x00000000,230230+ 0x00000000,231231+ 0x00000000,232232+ 0x00000000,233233+ 0x00000000,234234+ 0x00000000,235235+ 0x00000000,236236+ 0x00000000,237237+ 0x00000000,238238+ 0x00000000,239239+ 0x00000000,240240+ 0x00000000,241241+ 0x00000000,242242+ 0x00000000,243243+ 0xffffffff, /* PA_SC_AA_MASK_X0Y0_X1Y0 */244244+ 0xffffffff,245245+246246+ 0xc0026900,247247+ 0x00000316,248248+ 0x0000000e, /* VGT_VERTEX_REUSE_BLOCK_CNTL */249249+ 0x00000010, /* */250250+};251251+252252+const u32 si_default_size = ARRAY_SIZE(si_default_state);
+32
drivers/gpu/drm/radeon/si_blit_shaders.h
···11+/*22+ * Copyright 2011 Advanced Micro Devices, Inc.33+ *44+ * Permission is hereby granted, free of charge, to any person obtaining a55+ * copy of this software and associated documentation files (the "Software"),66+ * to deal in the Software without restriction, including without limitation77+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,88+ * and/or sell copies of the Software, and to permit persons to whom the99+ * Software is furnished to do so, subject to the following conditions:1010+ *1111+ * The above copyright notice and this permission notice (including the next1212+ * paragraph) shall be included in all copies or substantial portions of the1313+ * Software.1414+ *1515+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR1616+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,1717+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL1818+ * THE COPYRIGHT HOLDER(S) AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR1919+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,2020+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER2121+ * DEALINGS IN THE SOFTWARE.2222+ *2323+ */2424+2525+#ifndef SI_BLIT_SHADERS_H2626+#define SI_BLIT_SHADERS_H2727+2828+extern const u32 si_default_state[];2929+3030+extern const u32 si_default_size;3131+3232+#endif