Skip to content

Commit

Permalink
[MIPS] Allow hardwiring of the CPU type to a single type for optimiza…
Browse files Browse the repository at this point in the history
…tion.

This saves a few k on systems which only ever ship with a single CPU type.

Signed-off-by: Ralf Baechle <[email protected]>
  • Loading branch information
ralfbaechle committed Oct 11, 2007
1 parent aeffdbb commit 10cc352
Show file tree
Hide file tree
Showing 20 changed files with 89 additions and 86 deletions.
2 changes: 1 addition & 1 deletion arch/mips/dec/ecc-berr.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ static inline void dec_kn03_be_init(void)
*/
*mcr = (*mcr & ~(KN03_MCR_DIAGCHK | KN03_MCR_DIAGGEN)) |
KN03_MCR_CORRECT;
if (current_cpu_data.cputype == CPU_R4400SC)
if (current_cpu_type() == CPU_R4400SC)
*mbcs |= KN4K_MB_CSR_EE;
fast_iob();
}
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/dec/kn02xa-berr.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void __init dec_kn02xa_be_init(void)
volatile u32 *mbcs = (void *)CKSEG1ADDR(KN4K_SLOT_BASE + KN4K_MB_CSR);

/* For KN04 we need to make sure EE (?) is enabled in the MB. */
if (current_cpu_data.cputype == CPU_R4000SC)
if (current_cpu_type() == CPU_R4000SC)
*mbcs |= KN4K_MB_CSR_EE;
fast_iob();

Expand Down
8 changes: 4 additions & 4 deletions arch/mips/dec/prom/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ void __init prom_init(void)

/* Were we compiled with the right CPU option? */
#if defined(CONFIG_CPU_R3000)
if ((current_cpu_data.cputype == CPU_R4000SC) ||
(current_cpu_data.cputype == CPU_R4400SC)) {
if ((current_cpu_type() == CPU_R4000SC) ||
(current_cpu_type() == CPU_R4400SC)) {
static char r4k_msg[] __initdata =
"Please recompile with \"CONFIG_CPU_R4x00 = y\".\n";
printk(cpu_msg);
Expand All @@ -119,8 +119,8 @@ void __init prom_init(void)
#endif

#if defined(CONFIG_CPU_R4X00)
if ((current_cpu_data.cputype == CPU_R3000) ||
(current_cpu_data.cputype == CPU_R3000A)) {
if ((current_cpu_type() == CPU_R3000) ||
(current_cpu_type() == CPU_R3000A)) {
static char r3k_msg[] __initdata =
"Please recompile with \"CONFIG_CPU_R3000 = y\".\n";
printk(cpu_msg);
Expand Down
6 changes: 3 additions & 3 deletions arch/mips/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -954,7 +954,7 @@ asmlinkage void do_reserved(struct pt_regs *regs)
*/
static inline void parity_protection_init(void)
{
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_24K:
case CPU_34K:
case CPU_5KC:
Expand Down Expand Up @@ -1549,8 +1549,8 @@ void __init trap_init(void)
set_except_vector(12, handle_ov);
set_except_vector(13, handle_tr);

if (current_cpu_data.cputype == CPU_R6000 ||
current_cpu_data.cputype == CPU_R6000A) {
if (current_cpu_type() == CPU_R6000 ||
current_cpu_type() == CPU_R6000A) {
/*
* The R6000 is the only R-series CPU that features a machine
* check exception (similar to the R4000 cache error) and
Expand Down
12 changes: 6 additions & 6 deletions arch/mips/mm/c-r4k.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ static inline void local_r4k___flush_cache_all(void * args)
r4k_blast_dcache();
r4k_blast_icache();

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_R4000SC:
case CPU_R4000MC:
case CPU_R4400SC:
Expand Down Expand Up @@ -377,10 +377,10 @@ static inline void local_r4k_flush_cache_mm(void * args)
* R4000SC and R4400SC indexed S-cache ops also invalidate primary
* caches, so we can bail out early.
*/
if (current_cpu_data.cputype == CPU_R4000SC ||
current_cpu_data.cputype == CPU_R4000MC ||
current_cpu_data.cputype == CPU_R4400SC ||
current_cpu_data.cputype == CPU_R4400MC) {
if (current_cpu_type() == CPU_R4000SC ||
current_cpu_type() == CPU_R4000MC ||
current_cpu_type() == CPU_R4400SC ||
current_cpu_type() == CPU_R4400MC) {
r4k_blast_scache();
return;
}
Expand Down Expand Up @@ -1197,7 +1197,7 @@ static void __init coherency_setup(void)
* this bit and; some wire it to zero, others like Toshiba had the
* silly idea of putting something else there ...
*/
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
Expand Down
6 changes: 3 additions & 3 deletions arch/mips/mm/c-tx39.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size)
/* TX39H2,TX39H3 */
static inline void tx39_blast_dcache_page(unsigned long addr)
{
if (current_cpu_data.cputype != CPU_TX3912)
if (current_cpu_type() != CPU_TX3912)
blast_dcache16_page(addr);
}

Expand Down Expand Up @@ -307,7 +307,7 @@ static __init void tx39_probe_cache(void)
TX39_CONF_DCS_SHIFT));

current_cpu_data.icache.linesz = 16;
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_TX3912:
current_cpu_data.icache.ways = 1;
current_cpu_data.dcache.ways = 1;
Expand Down Expand Up @@ -341,7 +341,7 @@ void __init tx39_cache_init(void)

tx39_probe_cache();

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_TX3912:
/* TX39/H core (writethru direct-map cache) */
flush_cache_all = tx39h_flush_icache_all;
Expand Down
4 changes: 2 additions & 2 deletions arch/mips/mm/dma-default.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ static inline unsigned long dma_addr_to_virt(dma_addr_t dma_addr)
static inline int cpu_is_noncoherent_r10000(struct device *dev)
{
return !plat_device_is_coherent(dev) &&
(current_cpu_data.cputype == CPU_R10000 ||
current_cpu_data.cputype == CPU_R12000);
(current_cpu_type() == CPU_R10000 ||
current_cpu_type() == CPU_R12000);
}

void *dma_alloc_noncoherent(struct device *dev, size_t size,
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/mm/pg-r4k.c
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ void __init build_clear_page(void)
store_offset = 0;

if (cpu_has_prefetch) {
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_TX49XX:
/* TX49 supports only Pref_Load */
pref_offset_clear = 0;
Expand Down
10 changes: 5 additions & 5 deletions arch/mips/mm/tlbex.c
Original file line number Diff line number Diff line change
Expand Up @@ -827,7 +827,7 @@ static __initdata u32 final_handler[64];
*/
static __init void __maybe_unused build_tlb_probe_entry(u32 **p)
{
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
/* Found by experiment: R4600 v2.0 needs this, too. */
case CPU_R4600:
case CPU_R5000:
Expand Down Expand Up @@ -860,7 +860,7 @@ static __init void build_tlb_write_entry(u32 **p, struct label **l,
case tlb_indexed: tlbw = i_tlbwi; break;
}

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_R4000PC:
case CPU_R4000SC:
case CPU_R4000MC:
Expand Down Expand Up @@ -1158,7 +1158,7 @@ static __init void build_adjust_context(u32 **p, unsigned int ctx)
unsigned int shift = 4 - (PTE_T_LOG2 + 1) + PAGE_SHIFT - 12;
unsigned int mask = (PTRS_PER_PTE / 2 - 1) << (PTE_T_LOG2 + 1);

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR41XX:
case CPU_VR4111:
case CPU_VR4121:
Expand Down Expand Up @@ -1188,7 +1188,7 @@ static __init void build_get_ptep(u32 **p, unsigned int tmp, unsigned int ptr)
* in a different cacheline or a load instruction, probably any
* memory reference, is between them.
*/
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_NEVADA:
i_LW(p, ptr, 0, ptr);
GET_CONTEXT(p, tmp); /* get context reg */
Expand Down Expand Up @@ -1872,7 +1872,7 @@ void __init build_tlb_refill_handler(void)
*/
static int run_once = 0;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_R2000:
case CPU_R3000:
case CPU_R3000A:
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/oprofile/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
struct op_mips_model *lmodel = NULL;
int res;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_5KC:
case CPU_20KC:
case CPU_24K:
Expand Down
4 changes: 2 additions & 2 deletions arch/mips/oprofile/op_model_mipsxx.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ static inline int n_counters(void)
{
int counters;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_R10000:
counters = 2;
break;
Expand Down Expand Up @@ -274,7 +274,7 @@ static int __init mipsxx_init(void)
#endif

op_model_mipsxx_ops.num_counters = counters;
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_20KC:
op_model_mipsxx_ops.cpu_type = "mips/20K";
break;
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/pci/pci-vr41xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ static int __init vr41xx_pciu_init(void)
else
pciu_write(PCIEXACCREG, 0);

if (current_cpu_data.cputype == CPU_VR4122)
if (current_cpu_type() == CPU_VR4122)
pciu_write(PCITRDYVREG, TRDYV(setup->wait_time_limit_from_irdy_to_trdy));

pciu_write(LATTIMEREG, MLTIM(setup->master_latency_timer));
Expand Down
8 changes: 4 additions & 4 deletions arch/mips/vr41xx/common/bcu.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ EXPORT_SYMBOL_GPL(vr41xx_get_tclock_frequency);

static inline uint16_t read_clkspeed(void)
{
switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
case CPU_VR4121: return readw(CLKSPEEDREG_TYPE1);
case CPU_VR4122:
Expand All @@ -88,7 +88,7 @@ static inline unsigned long calculate_pclock(uint16_t clkspeed)
{
unsigned long pclock = 0;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
case CPU_VR4121:
pclock = 18432000 * 64;
Expand Down Expand Up @@ -138,7 +138,7 @@ static inline unsigned long calculate_vtclock(uint16_t clkspeed, unsigned long p
{
unsigned long vtclock = 0;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
/* The NEC VR4111 doesn't have the VTClock. */
break;
Expand Down Expand Up @@ -180,7 +180,7 @@ static inline unsigned long calculate_tclock(uint16_t clkspeed, unsigned long pc
{
unsigned long tclock = 0;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
if (!(clkspeed & DIV2B))
tclock = pclock / 2;
Expand Down
16 changes: 8 additions & 8 deletions arch/mips/vr41xx/common/cmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ void vr41xx_supply_clock(vr41xx_clock_t clock)
cmuclkmsk |= MSKFIR | MSKFFIR;
break;
case DSIU_CLOCK:
if (current_cpu_data.cputype == CPU_VR4111 ||
current_cpu_data.cputype == CPU_VR4121)
if (current_cpu_type() == CPU_VR4111 ||
current_cpu_type() == CPU_VR4121)
cmuclkmsk |= MSKDSIU;
else
cmuclkmsk |= MSKSIU | MSKDSIU;
Expand Down Expand Up @@ -146,8 +146,8 @@ void vr41xx_mask_clock(vr41xx_clock_t clock)
cmuclkmsk &= ~MSKPIU;
break;
case SIU_CLOCK:
if (current_cpu_data.cputype == CPU_VR4111 ||
current_cpu_data.cputype == CPU_VR4121) {
if (current_cpu_type() == CPU_VR4111 ||
current_cpu_type() == CPU_VR4121) {
cmuclkmsk &= ~(MSKSIU | MSKSSIU);
} else {
if (cmuclkmsk & MSKDSIU)
Expand All @@ -166,8 +166,8 @@ void vr41xx_mask_clock(vr41xx_clock_t clock)
cmuclkmsk &= ~(MSKFIR | MSKFFIR);
break;
case DSIU_CLOCK:
if (current_cpu_data.cputype == CPU_VR4111 ||
current_cpu_data.cputype == CPU_VR4121) {
if (current_cpu_type() == CPU_VR4111 ||
current_cpu_type() == CPU_VR4121) {
cmuclkmsk &= ~MSKDSIU;
} else {
if (cmuclkmsk & MSKSSIU)
Expand Down Expand Up @@ -216,7 +216,7 @@ static int __init vr41xx_cmu_init(void)
{
unsigned long start, size;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
case CPU_VR4121:
start = CMU_TYPE1_BASE;
Expand Down Expand Up @@ -246,7 +246,7 @@ static int __init vr41xx_cmu_init(void)
}

cmuclkmsk = cmu_read(CMUCLKMSK);
if (current_cpu_data.cputype == CPU_VR4133)
if (current_cpu_type() == CPU_VR4133)
cmuclkmsk2 = cmu_read(CMUCLKMSK2);

spin_lock_init(&cmu_lock);
Expand Down
2 changes: 1 addition & 1 deletion arch/mips/vr41xx/common/giu.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ static int __init vr41xx_giu_add(void)
if (!pdev)
return -ENOMEM;

switch (current_cpu_data.cputype) {
switch (current_cpu_type()) {
case CPU_VR4111:
case CPU_VR4121:
pdev->id = GPIO_50PINS_PULLUPDOWN;
Expand Down
Loading

0 comments on commit 10cc352

Please sign in to comment.