mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-30 02:21:15 +00:00
irqchip updates for 4.14-rc2
- A GICv3 initialisation fix when some CPUs fail to be brought up - A GICv4 compile fix for GCC 4.5 (!) - A MIPS-GIC fix for the PCIe support -----BEGIN PGP SIGNATURE----- iQJJBAABCAAzFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAlnBZkIVHG1hcmMuenlu Z2llckBhcm0uY29tAAoJECPQ0LrRPXpDf2gP/R9+UB0qtNKlaqR82MkBIBSNSYir MRuKwei5++R6OKwHF7wGQxGLNhEOk2yTkZHn74JMdwXg3Y5s9puLzs3mlkFU2X6k 2hM2oOrvjZTV4CNm6WwYzv15CAMVri9ETTAwXKg3KDHMvuMGhTgKef1TIyHHTHvP QhrmTW2k84uf+SYLOK3NPowWoNBrUUfO0fASgLLqmmLi2xnUeRR+a48CPuo9dS65 n72zHoJjCyikLLsFbAmNuvEs4MDrDWJt9qF6VpVE0El5cOBqXuatz981i1STcD/U qJA5qUAZum9OVpIjpLO9lmZEdpW9gA+LHpyojrkqkBbhur2hYprLzIMUxCLSrqaq /jjW2Qdz7HY7QXBFLOEba3sfPJrp0hR7cNr0uuqaASHZDTEwScDl7ng05Iv8xRWD STCo2uXRx0WPBAnshtKHlSe7b9giheyoS7KZ0ONbpos+2AKVc6CcfIIutLouavPU Wg+IOUUxipkUyRCyLzsX+O8cabgrPgDHCC4CRJStTKVy5125okcDimZm/ybQsH7T 1FrXnhTbUf3FWiSnXxj0N6hC7nydm1AtYh41Q4TlyAECLVKjDzKK2O9mekUlvb/d 6iCg3xYzwbXhJLrG/kAgV64kO3/Dp/YyXXeRj+BVsU+SUkbEe5H6w5Imzd91mh8y JMAHGuEnDWLPryP+ =lOJa -----END PGP SIGNATURE----- Merge tag 'irqchip-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent Pull irqchip updates from Marc Zyngier - A GICv3 initialisation fix when some CPUs fail to be brought up - A GICv4 compile fix for GCC 4.5 (!) - A MIPS-GIC fix for the PCIe support
This commit is contained in:
commit
cf00ab842e
3 changed files with 16 additions and 10 deletions
|
@ -1042,7 +1042,7 @@ static int get_cpu_number(struct device_node *dn)
|
||||||
{
|
{
|
||||||
const __be32 *cell;
|
const __be32 *cell;
|
||||||
u64 hwid;
|
u64 hwid;
|
||||||
int i;
|
int cpu;
|
||||||
|
|
||||||
cell = of_get_property(dn, "reg", NULL);
|
cell = of_get_property(dn, "reg", NULL);
|
||||||
if (!cell)
|
if (!cell)
|
||||||
|
@ -1056,9 +1056,9 @@ static int get_cpu_number(struct device_node *dn)
|
||||||
if (hwid & ~MPIDR_HWID_BITMASK)
|
if (hwid & ~MPIDR_HWID_BITMASK)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
for (i = 0; i < num_possible_cpus(); i++)
|
for_each_possible_cpu(cpu)
|
||||||
if (cpu_logical_map(i) == hwid)
|
if (cpu_logical_map(cpu) == hwid)
|
||||||
return i;
|
return cpu;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,7 +173,9 @@ int its_map_vlpi(int irq, struct its_vlpi_map *map)
|
||||||
{
|
{
|
||||||
struct its_cmd_info info = {
|
struct its_cmd_info info = {
|
||||||
.cmd_type = MAP_VLPI,
|
.cmd_type = MAP_VLPI,
|
||||||
.map = map,
|
{
|
||||||
|
.map = map,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -189,7 +191,9 @@ int its_get_vlpi(int irq, struct its_vlpi_map *map)
|
||||||
{
|
{
|
||||||
struct its_cmd_info info = {
|
struct its_cmd_info info = {
|
||||||
.cmd_type = GET_VLPI,
|
.cmd_type = GET_VLPI,
|
||||||
.map = map,
|
{
|
||||||
|
.map = map,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return irq_set_vcpu_affinity(irq, &info);
|
return irq_set_vcpu_affinity(irq, &info);
|
||||||
|
@ -205,7 +209,9 @@ int its_prop_update_vlpi(int irq, u8 config, bool inv)
|
||||||
{
|
{
|
||||||
struct its_cmd_info info = {
|
struct its_cmd_info info = {
|
||||||
.cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI,
|
.cmd_type = inv ? PROP_UPDATE_AND_INV_VLPI : PROP_UPDATE_VLPI,
|
||||||
.config = config,
|
{
|
||||||
|
.config = config,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
return irq_set_vcpu_affinity(irq, &info);
|
return irq_set_vcpu_affinity(irq, &info);
|
||||||
|
|
|
@ -169,7 +169,7 @@ static void gic_mask_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
|
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
|
||||||
|
|
||||||
write_gic_rmask(BIT(intr));
|
write_gic_rmask(intr);
|
||||||
gic_clear_pcpu_masks(intr);
|
gic_clear_pcpu_masks(intr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ static void gic_unmask_irq(struct irq_data *d)
|
||||||
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
|
unsigned int intr = GIC_HWIRQ_TO_SHARED(d->hwirq);
|
||||||
unsigned int cpu;
|
unsigned int cpu;
|
||||||
|
|
||||||
write_gic_smask(BIT(intr));
|
write_gic_smask(intr);
|
||||||
|
|
||||||
gic_clear_pcpu_masks(intr);
|
gic_clear_pcpu_masks(intr);
|
||||||
cpu = cpumask_first_and(affinity, cpu_online_mask);
|
cpu = cpumask_first_and(affinity, cpu_online_mask);
|
||||||
|
@ -767,7 +767,7 @@ static int __init gic_of_init(struct device_node *node,
|
||||||
for (i = 0; i < gic_shared_intrs; i++) {
|
for (i = 0; i < gic_shared_intrs; i++) {
|
||||||
change_gic_pol(i, GIC_POL_ACTIVE_HIGH);
|
change_gic_pol(i, GIC_POL_ACTIVE_HIGH);
|
||||||
change_gic_trig(i, GIC_TRIG_LEVEL);
|
change_gic_trig(i, GIC_TRIG_LEVEL);
|
||||||
write_gic_rmask(BIT(i));
|
write_gic_rmask(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < gic_vpes; i++) {
|
for (i = 0; i < gic_vpes; i++) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue