Merge branch 'master' of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into dma-mapping-for-next
Pull in the latest 5.9 tree for the commit to revert the V4L2_FLAG_MEMORY_NON_CONSISTENT uapi addition.
This commit is contained in:
@@ -877,6 +877,7 @@ config SNI_RM
|
||||
select I8253
|
||||
select I8259
|
||||
select ISA
|
||||
select MIPS_L1_CACHE_SHIFT_6
|
||||
select SWAP_IO_SPACE if CPU_BIG_ENDIAN
|
||||
select SYS_HAS_CPU_R4X00
|
||||
select SYS_HAS_CPU_R5000
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#define cpu_has_counter 1
|
||||
#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
|
||||
#define cpu_has_divec 0
|
||||
#define cpu_has_ejtag 0
|
||||
#define cpu_has_inclusive_pcaches 1
|
||||
#define cpu_has_llsc 1
|
||||
#define cpu_has_mcheck 0
|
||||
@@ -42,7 +41,6 @@
|
||||
#define cpu_has_veic 0
|
||||
#define cpu_has_vint 0
|
||||
#define cpu_has_vtag_icache 0
|
||||
#define cpu_has_watch 1
|
||||
#define cpu_has_wsbh 1
|
||||
#define cpu_has_ic_fills_f_dc 1
|
||||
#define cpu_hwrena_impl_bits 0xc0000000
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
#ifndef __ASM_MACH_LOONGSON64_IRQ_H_
|
||||
#define __ASM_MACH_LOONGSON64_IRQ_H_
|
||||
|
||||
#include <boot_param.h>
|
||||
|
||||
/* cpu core interrupt numbers */
|
||||
#define NR_IRQS_LEGACY 16
|
||||
#define NR_MIPS_CPU_IRQS 8
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#ifndef _ASM_MACH_LOONGSON64_MMZONE_H
|
||||
#define _ASM_MACH_LOONGSON64_MMZONE_H
|
||||
|
||||
#include <boot_param.h>
|
||||
#define NODE_ADDRSPACE_SHIFT 44
|
||||
#define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
|
||||
#define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
|
||||
|
||||
@@ -1898,8 +1898,8 @@ static const struct mips_perf_event *mipsxx_pmu_map_raw_event(u64 config)
|
||||
(base_id >= 64 && base_id < 90) ||
|
||||
(base_id >= 128 && base_id < 164) ||
|
||||
(base_id >= 192 && base_id < 200) ||
|
||||
(base_id >= 256 && base_id < 274) ||
|
||||
(base_id >= 320 && base_id < 358) ||
|
||||
(base_id >= 256 && base_id < 275) ||
|
||||
(base_id >= 320 && base_id < 361) ||
|
||||
(base_id >= 384 && base_id < 574))
|
||||
break;
|
||||
|
||||
|
||||
@@ -239,6 +239,8 @@ static int bmips_boot_secondary(int cpu, struct task_struct *idle)
|
||||
*/
|
||||
static void bmips_init_secondary(void)
|
||||
{
|
||||
bmips_cpu_setup();
|
||||
|
||||
switch (current_cpu_type()) {
|
||||
case CPU_BMIPS4350:
|
||||
case CPU_BMIPS4380:
|
||||
|
||||
@@ -1287,6 +1287,18 @@ static int enable_restore_fp_context(int msa)
|
||||
err = own_fpu_inatomic(1);
|
||||
if (msa && !err) {
|
||||
enable_msa();
|
||||
/*
|
||||
* with MSA enabled, userspace can see MSACSR
|
||||
* and MSA regs, but the values in them are from
|
||||
* other task before current task, restore them
|
||||
* from saved fp/msa context
|
||||
*/
|
||||
write_msa_csr(current->thread.fpu.msacsr);
|
||||
/*
|
||||
* own_fpu_inatomic(1) just restore low 64bit,
|
||||
* fix the high 64bit
|
||||
*/
|
||||
init_msa_upper();
|
||||
set_thread_flag(TIF_USEDMSA);
|
||||
set_thread_flag(TIF_MSA_CTX_LIVE);
|
||||
}
|
||||
|
||||
@@ -137,6 +137,8 @@ extern void kvm_init_loongson_ipi(struct kvm *kvm);
|
||||
int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
|
||||
{
|
||||
switch (type) {
|
||||
case KVM_VM_MIPS_AUTO:
|
||||
break;
|
||||
#ifdef CONFIG_KVM_MIPS_VZ
|
||||
case KVM_VM_MIPS_VZ:
|
||||
#else
|
||||
|
||||
@@ -1712,7 +1712,11 @@ static void setup_scache(void)
|
||||
printk("MIPS secondary cache %ldkB, %s, linesize %d bytes.\n",
|
||||
scache_size >> 10,
|
||||
way_string[c->scache.ways], c->scache.linesz);
|
||||
|
||||
if (current_cpu_type() == CPU_BMIPS5000)
|
||||
c->options |= MIPS_CPU_INCLUSIVE_CACHES;
|
||||
}
|
||||
|
||||
#else
|
||||
if (!(c->scache.flags & MIPS_CACHE_NOT_PRESENT))
|
||||
panic("Dunno how to handle MIPS32 / MIPS64 second level cache");
|
||||
|
||||
@@ -245,7 +245,6 @@ static int mipsxx_perfcount_handler(void)
|
||||
|
||||
switch (counters) {
|
||||
#define HANDLE_COUNTER(n) \
|
||||
fallthrough; \
|
||||
case n + 1: \
|
||||
control = r_c0_perfctrl ## n(); \
|
||||
counter = r_c0_perfcntr ## n(); \
|
||||
@@ -256,8 +255,11 @@ static int mipsxx_perfcount_handler(void)
|
||||
handled = IRQ_HANDLED; \
|
||||
}
|
||||
HANDLE_COUNTER(3)
|
||||
fallthrough;
|
||||
HANDLE_COUNTER(2)
|
||||
fallthrough;
|
||||
HANDLE_COUNTER(1)
|
||||
fallthrough;
|
||||
HANDLE_COUNTER(0)
|
||||
}
|
||||
|
||||
|
||||
@@ -143,7 +143,10 @@ static struct platform_device sc26xx_pdev = {
|
||||
},
|
||||
};
|
||||
|
||||
static u32 a20r_ack_hwint(void)
|
||||
/*
|
||||
* Trigger chipset to update CPU's CAUSE IP field
|
||||
*/
|
||||
static u32 a20r_update_cause_ip(void)
|
||||
{
|
||||
u32 status = read_c0_status();
|
||||
|
||||
@@ -205,12 +208,14 @@ static void a20r_hwint(void)
|
||||
int irq;
|
||||
|
||||
clear_c0_status(IE_IRQ0);
|
||||
status = a20r_ack_hwint();
|
||||
status = a20r_update_cause_ip();
|
||||
cause = read_c0_cause();
|
||||
|
||||
irq = ffs(((cause & status) >> 8) & 0xf8);
|
||||
if (likely(irq > 0))
|
||||
do_IRQ(SNI_A20R_IRQ_BASE + irq - 1);
|
||||
|
||||
a20r_update_cause_ip();
|
||||
set_c0_status(IE_IRQ0);
|
||||
}
|
||||
|
||||
@@ -222,8 +227,8 @@ void __init sni_a20r_irq_init(void)
|
||||
irq_set_chip_and_handler(i, &a20r_irq_type, handle_level_irq);
|
||||
sni_hwint = a20r_hwint;
|
||||
change_c0_status(ST0_IM, IE_IRQ0);
|
||||
if (request_irq(SNI_A20R_IRQ_BASE + 3, sni_isa_irq_handler, 0, "ISA",
|
||||
NULL))
|
||||
if (request_irq(SNI_A20R_IRQ_BASE + 3, sni_isa_irq_handler,
|
||||
IRQF_SHARED, "ISA", sni_isa_irq_handler))
|
||||
pr_err("Failed to register ISA interrupt\n");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user