Re: [PATCH] MIPS: Delete unused file smp-gic.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/08/16 17:11, Matt Redfearn wrote:
> Commit 7eb8c99db26c ("MIPS: Delete smp-gic.c") removed the file from the
> Makefile and the option to build it from KConfig, but left the file
> itself floating in the tree.
> 
> Remove the unused source file.
> 
> Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxxxx>
> ---
>  arch/mips/kernel/smp-gic.c | 66 ----------------------------------------------
>  1 file changed, 66 deletions(-)
>  delete mode 100644 arch/mips/kernel/smp-gic.c
> 
> diff --git a/arch/mips/kernel/smp-gic.c b/arch/mips/kernel/smp-gic.c
> deleted file mode 100644
> index 9b63829cf929..000000000000
> --- a/arch/mips/kernel/smp-gic.c
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/*
> - * Copyright (C) 2013 Imagination Technologies
> - * Author: Paul Burton <paul.burton@xxxxxxxxxx>
> - *
> - * Based on smp-cmp.c:
> - *  Copyright (C) 2007 MIPS Technologies, Inc.
> - *  Author: Chris Dearman (chris@xxxxxxxx)
> - *
> - * This program is free software; you can redistribute it and/or modify it
> - * under the terms of the GNU General Public License as published by the
> - * Free Software Foundation;  either version 2 of the  License, or (at your
> - * option) any later version.
> - */
> -
> -#include <linux/irqchip/mips-gic.h>
> -#include <linux/printk.h>
> -
> -#include <asm/mips-cpc.h>
> -#include <asm/smp-ops.h>
> -
> -void gic_send_ipi_single(int cpu, unsigned int action)
> -{
> -	unsigned long flags;
> -	unsigned int intr;
> -	unsigned int core = cpu_data[cpu].core;
> -
> -	pr_debug("CPU%d: %s cpu %d action %u status %08x\n",
> -		 smp_processor_id(), __func__, cpu, action, read_c0_status());
> -
> -	local_irq_save(flags);
> -
> -	switch (action) {
> -	case SMP_CALL_FUNCTION:
> -		intr = plat_ipi_call_int_xlate(cpu);
> -		break;
> -
> -	case SMP_RESCHEDULE_YOURSELF:
> -		intr = plat_ipi_resched_int_xlate(cpu);
> -		break;
> -
> -	default:
> -		BUG();
> -	}
> -
> -	gic_send_ipi(intr);
> -
> -	if (mips_cpc_present() && (core != current_cpu_data.core)) {
> -		while (!cpumask_test_cpu(cpu, &cpu_coherent_mask)) {
> -			mips_cm_lock_other(core, 0);
> -			mips_cpc_lock_other(core);
> -			write_cpc_co_cmd(CPC_Cx_CMD_PWRUP);
> -			mips_cpc_unlock_other();
> -			mips_cm_unlock_other();
> -		}
> -	}

Hi Matt,

This patch itself makes sense, but it does bring to light that the IPI
IRQ domain stuff will have broken cpuidle. When a core goes into one of
the deeper power saving states (becoming clock gated or power gated) it
won't automatically wake back up upon interrupts, which is why the bit
of code above exists to bring it back out of the power saving state via
the CPC.

Thanks,
    Paul

> -
> -	local_irq_restore(flags);
> -}
> -
> -void gic_send_ipi_mask(const struct cpumask *mask, unsigned int action)
> -{
> -	unsigned int i;
> -
> -	for_each_cpu(i, mask)
> -		gic_send_ipi_single(i, action);
> -}
> 




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux