You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
drm/nvc0-/gr: fiddle some magic around strand init
Fixes HUB_INIT timeout on GK110/GK208 when not using NVIDIA's ucode. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
@@ -134,6 +134,13 @@ init:
|
||||
// context size calculation, reserve first 256 bytes for use by fuc
|
||||
mov $r1 256
|
||||
|
||||
//
|
||||
mov $r15 2
|
||||
call(ctx_4170s)
|
||||
call(ctx_4170w)
|
||||
mov $r15 0x10
|
||||
call(ctx_86c)
|
||||
|
||||
// calculate size of mmio context data
|
||||
ld b32 $r14 D[$r0 + #hub_mmio_list_head]
|
||||
ld b32 $r15 D[$r0 + #hub_mmio_list_tail]
|
||||
@@ -196,6 +203,12 @@ init:
|
||||
sub b32 $r3 1
|
||||
bra ne #init_gpc
|
||||
|
||||
//
|
||||
mov $r15 0
|
||||
call(ctx_86c)
|
||||
mov $r15 0
|
||||
call(ctx_4170s)
|
||||
|
||||
// save context size, and tell host we're ready
|
||||
nv_iowr(NV_PGRAPH_FECS_CC_SCRATCH_VAL(1), 0, $r1)
|
||||
clear b32 $r1
|
||||
@@ -414,9 +427,9 @@ ctx_redswitch:
|
||||
// In: $r15 value to set to (0x00/0x10 are used)
|
||||
//
|
||||
ctx_86c:
|
||||
nv_iowr(0x40986c, 0, $r15)
|
||||
nv_iowr(NV_PGRAPH_FECS_UNK86C, 0, $r15)
|
||||
nv_wr32(0x408a14, $r15)
|
||||
nv_wr32(0x41a86c, $r15)
|
||||
nv_wr32(NV_PGRAPH_GPCX_GPCCS_UNK86C, $r15)
|
||||
ret
|
||||
|
||||
// In: $r15 NV_PGRAPH_FECS_MEM_CMD_*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -80,9 +80,11 @@
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x409800)
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_SET(n) ((n) * 4 + 0x409820)
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_CLR(n) ((n) * 4 + 0x409840)
|
||||
#define NV_PGRAPH_FECS_UNK86C 0x40986c
|
||||
#else
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x409800)
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_CLR(n) ((n) * 4 + 0x409840)
|
||||
#define NV_PGRAPH_FECS_UNK86C 0x40988c
|
||||
#define NV_PGRAPH_FECS_CC_SCRATCH_SET(n) ((n) * 4 + 0x4098c0)
|
||||
#endif
|
||||
#define NV_PGRAPH_FECS_STRANDS_CNT 0x409880
|
||||
@@ -142,9 +144,11 @@
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x41a800)
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_SET(n) ((n) * 4 + 0x41a820)
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_CLR(n) ((n) * 4 + 0x41a840)
|
||||
#define NV_PGRAPH_GPCX_GPCCS_UNK86C 0x41a86c
|
||||
#else
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_VAL(n) ((n) * 4 + 0x41a800)
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_CLR(n) ((n) * 4 + 0x41a840)
|
||||
#define NV_PGRAPH_GPCX_GPCCS_UNK86C 0x41a88c
|
||||
#define NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_SET(n) ((n) * 4 + 0x41a8c0)
|
||||
#endif
|
||||
#define NV_PGRAPH_GPCX_GPCCS_STRAND_SELECT 0x41a91c
|
||||
|
||||
Reference in New Issue
Block a user