/** * set_firmware_width - Determine if the firmware is wide or narrow. * * This function must be called before any pdc_* function that uses the * convert_to_wide function. */ void __cpuinit set_firmware_width(void) { unsigned long flags; spin_lock_irqsave(&pdc_lock, flags); set_firmware_width_unlocked(); spin_unlock_irqrestore(&pdc_lock, flags); }
void __init start_parisc(void) { extern void early_trap_init(void); int ret, cpunum; struct pdc_coproc_cfg coproc_cfg; /* check QEMU/SeaBIOS marker in PAGE0 */ running_on_qemu = (memcmp(&PAGE0->pad0, "SeaBIOS", 8) == 0); cpunum = smp_processor_id(); init_cpu_topology(); set_firmware_width_unlocked(); ret = pdc_coproc_cfg_unlocked(&coproc_cfg); if (ret >= 0 && coproc_cfg.ccr_functional) { mtctl(coproc_cfg.ccr_functional, 10); per_cpu(cpu_data, cpunum).fp_rev = coproc_cfg.revision; per_cpu(cpu_data, cpunum).fp_model = coproc_cfg.model; asm volatile ("fstd %fr0,8(%sp)"); } else {
void start_parisc(void) { extern void start_kernel(void); int ret, cpunum; struct pdc_coproc_cfg coproc_cfg; cpunum = smp_processor_id(); set_firmware_width_unlocked(); ret = pdc_coproc_cfg_unlocked(&coproc_cfg); if (ret >= 0 && coproc_cfg.ccr_functional) { mtctl(coproc_cfg.ccr_functional, 10); per_cpu(cpu_data, cpunum).fp_rev = coproc_cfg.revision; per_cpu(cpu_data, cpunum).fp_model = coproc_cfg.model; asm volatile ("fstd %fr0,8(%sp)"); } else {