https://bugzilla.kernel.org/show_bug.cgi?id=194761
--- Comment #72 from Marek Olšák (maraeo@gmail.com) --- Additional piece of the puzzle to the Oland mystery:
1) Oland uses Verde's GB_ADDR_CONFIG in one place: case CHIP_OLAND: ... gb_addr_config = VERDE_GB_ADDR_CONFIG_GOLDEN; ... WREG32(mmGB_ADDR_CONFIG, gb_addr_config);
// #define VERDE_GB_ADDR_CONFIG_GOLDEN 0x02010002
See: (1 << VERDE_GB_ADDR_CONFIG_GOLDEN.NUM_PIPES) == 4 (P4)
2) Oland uses GB_ADDR_CONFIG with (1 << NUM_PIPES) == 4 (P4) in golden settings, also same as Verde:
static const u32 verde_golden_rlc_registers[] = { mmGB_ADDR_CONFIG, 0xffffffff, 0x02010002, (P4) ... static const u32 oland_golden_rlc_registers[] = { mmGB_ADDR_CONFIG, 0xffffffff, 0x02010002, (P4)
I see two issues: - GB_ADDR_CONFIG matches Verde in both places - GB_ADDR_CONFIG is set in two places (duplicated code?)