rockchip: rk3399: use static pointers to regs as they compile to faster code

Quoting an earlier review comment, using static structures pointers in
the include file "should allow the compiler to optimize accesses
better than defining it in a separate compilation unit (by being able
to constant fold stuff like &rk3399_pmusgrf->field into a single
address, rather than loading the symbol, loading an offset constant
and adding)".

Any decent compiler linker system nowadays would consolidate this
definition in any case.

BRANCH=none
BUG=chrome-os-partner:51537
TEST=with the rest of the patches applied Kevin successfully boots
     Linux kernel.

Change-Id: Ibb576c7691a30f2f429651fcca133bd72710c13b
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 89b6f22e37f733667156f15afb8c27d8a9f07512
Original-Change-Id: Ice8d6d766a91e7f4fce553378a23b9ca593d12dd
Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/339869
Original-Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/14705
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Vadim Bendebury 2016-04-20 15:17:24 -07:00 committed by Patrick Georgi
parent f5702e70d6
commit b38895ea38
2 changed files with 3 additions and 7 deletions

View File

@ -17,10 +17,6 @@
#include <soc/clock.h> #include <soc/clock.h>
#include <soc/grf.h> #include <soc/grf.h>
struct rk3399_grf_regs * const rk3399_grf = (void *)GRF_BASE;
struct rk3399_pmugrf_regs * const rk3399_pmugrf = (void *)PMUGRF_BASE;
struct rk3399_pmusgrf_regs * const rk3399_pmusgrf = (void *)PMUSGRF_BASE;
void rkclk_configure_spi(unsigned int bus, unsigned int hz) void rkclk_configure_spi(unsigned int bus, unsigned int hz)
{ {
} }

View File

@ -315,9 +315,9 @@ struct rk3399_pmusgrf_regs {
}; };
check_member(rk3399_pmusgrf_regs, slv_secure_con4, 0xe3d4); check_member(rk3399_pmusgrf_regs, slv_secure_con4, 0xe3d4);
extern struct rk3399_grf_regs * const rk3399_grf; static struct rk3399_grf_regs * const rk3399_grf = (void *)GRF_BASE;
extern struct rk3399_pmugrf_regs * const rk3399_pmugrf; static struct rk3399_pmugrf_regs * const rk3399_pmugrf = (void *)PMUGRF_BASE;
extern struct rk3399_pmusgrf_regs * const rk3399_pmusgrf; static struct rk3399_pmusgrf_regs * const rk3399_pmusgrf = (void *)PMUSGRF_BASE;
#define UART2A_SEL RK_CLRSETBITS(3 << 10, 0 << 10) #define UART2A_SEL RK_CLRSETBITS(3 << 10, 0 << 10)
#define UART2B_SEL RK_CLRSETBITS(3 << 10, 1 << 10) #define UART2B_SEL RK_CLRSETBITS(3 << 10, 1 << 10)