Skip to content

Commit

Permalink
Merge branch 'kernel.lnx.4.4.r38-rel' of https://github.com/android-l…
Browse files Browse the repository at this point in the history
…inux-stable/msm-4.4 into darkone-Q
  • Loading branch information
archie9211 committed Jan 30, 2020
2 parents c156ef2 + 48c48bd commit b5aaad3
Show file tree
Hide file tree
Showing 203 changed files with 1,058 additions and 558 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 4
PATCHLEVEL = 4
SUBLEVEL = 211
SUBLEVEL = 212
EXTRAVERSION =
NAME = Blurry Fish Butt

Expand Down
2 changes: 1 addition & 1 deletion arch/arm/common/mcpm_entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ static int __init nocache_trampoline(unsigned long _arg)
unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
phys_reset_t phys_reset;

mcpm_set_entry_vector(cpu, cluster, cpu_resume);
mcpm_set_entry_vector(cpu, cluster, cpu_resume_no_hyp);
setup_mm_for_reboot();

__mcpm_cpu_going_down(cpu, cluster);
Expand Down
1 change: 1 addition & 0 deletions arch/arm/include/asm/suspend.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ struct sleep_save_sp {
};

extern void cpu_resume(void);
extern void cpu_resume_no_hyp(void);
extern void cpu_resume_arm(void);
extern int cpu_suspend(unsigned long, int (*)(unsigned long));

Expand Down
12 changes: 12 additions & 0 deletions arch/arm/kernel/sleep.S
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,14 @@ ENDPROC(cpu_resume_after_mmu)
.text
.align

#ifdef CONFIG_MCPM
.arm
THUMB( .thumb )
ENTRY(cpu_resume_no_hyp)
ARM_BE8(setend be) @ ensure we are in BE mode
b no_hyp
#endif

#ifdef CONFIG_MMU
.arm
ENTRY(cpu_resume_arm)
Expand All @@ -134,6 +142,7 @@ ARM_BE8(setend be) @ ensure we are in BE mode
bl __hyp_stub_install_secondary
#endif
safe_svcmode_maskall r1
no_hyp:
mov r1, #0
ALT_SMP(mrc p15, 0, r0, c0, c0, 5)
ALT_UP_B(1f)
Expand Down Expand Up @@ -162,6 +171,9 @@ ENDPROC(cpu_resume)

#ifdef CONFIG_MMU
ENDPROC(cpu_resume_arm)
#endif
#ifdef CONFIG_MCPM
ENDPROC(cpu_resume_no_hyp)
#endif

.align 2
Expand Down
2 changes: 1 addition & 1 deletion arch/arm/mach-omap2/omap_hwmod.c
Original file line number Diff line number Diff line change
Expand Up @@ -2563,7 +2563,7 @@ static void _setup_iclk_autoidle(struct omap_hwmod *oh)
*/
static int _setup_reset(struct omap_hwmod *oh)
{
int r;
int r = 0;

if (oh->_state != _HWMOD_STATE_INITIALIZED)
return -EINVAL;
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mach-rpc/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ extern unsigned char rpc_default_fiq_start, rpc_default_fiq_end;

void __init rpc_init_irq(void)
{
unsigned int irq, clr, set = 0;
unsigned int irq, clr, set;

iomd_writeb(0, IOMD_IRQMASKA);
iomd_writeb(0, IOMD_IRQMASKB);
Expand All @@ -129,6 +129,7 @@ void __init rpc_init_irq(void)

for (irq = 0; irq < NR_IRQS; irq++) {
clr = IRQ_NOREQUEST;
set = 0;

if (irq <= 6 || (irq >= 9 && irq <= 15))
clr |= IRQ_NOPROBE;
Expand Down
6 changes: 0 additions & 6 deletions arch/arm/plat-pxa/ssp.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,18 +231,12 @@ static int pxa_ssp_probe(struct platform_device *pdev)

static int pxa_ssp_remove(struct platform_device *pdev)
{
struct resource *res;
struct ssp_device *ssp;

ssp = platform_get_drvdata(pdev);
if (ssp == NULL)
return -ENODEV;

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
release_mem_region(res->start, resource_size(res));

clk_put(ssp->clk);

mutex_lock(&ssp_lock);
list_del(&ssp->node);
mutex_unlock(&ssp_lock);
Expand Down
4 changes: 2 additions & 2 deletions arch/arm64/boot/dts/arm/juno-clocks.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
*/

/* SoC fixed clocks */
soc_uartclk: refclk7273800hz {
soc_uartclk: refclk7372800hz {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <7273800>;
clock-frequency = <7372800>;
clock-output-names = "juno:uartclk";
};

Expand Down
9 changes: 9 additions & 0 deletions arch/m68k/amiga/cia.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,19 @@ static irqreturn_t cia_handler(int irq, void *dev_id)
struct ciabase *base = dev_id;
int mach_irq;
unsigned char ints;
unsigned long flags;

/* Interrupts get disabled while the timer irq flag is cleared and
* the timer interrupt serviced.
*/
mach_irq = base->cia_irq;
local_irq_save(flags);
ints = cia_set_irq(base, CIA_ICR_ALL);
amiga_custom.intreq = base->int_mask;
if (ints & 1)
generic_handle_irq(mach_irq);
local_irq_restore(flags);
mach_irq++, ints >>= 1;
for (; ints; mach_irq++, ints >>= 1) {
if (ints & 1)
generic_handle_irq(mach_irq);
Expand Down
4 changes: 2 additions & 2 deletions arch/m68k/atari/ataints.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ struct mfptimerbase {
.name = "MFP Timer D"
};

static irqreturn_t mfptimer_handler(int irq, void *dev_id)
static irqreturn_t mfp_timer_d_handler(int irq, void *dev_id)
{
struct mfptimerbase *base = dev_id;
int mach_irq;
Expand Down Expand Up @@ -344,7 +344,7 @@ void __init atari_init_IRQ(void)
st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 0xf0) | 0x6;

/* request timer D dispatch handler */
if (request_irq(IRQ_MFP_TIMD, mfptimer_handler, IRQF_SHARED,
if (request_irq(IRQ_MFP_TIMD, mfp_timer_d_handler, IRQF_SHARED,
stmfp_base.name, &stmfp_base))
pr_err("Couldn't register %s interrupt\n", stmfp_base.name);

Expand Down
15 changes: 14 additions & 1 deletion arch/m68k/atari/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,18 @@
DEFINE_SPINLOCK(rtc_lock);
EXPORT_SYMBOL_GPL(rtc_lock);

static irqreturn_t mfp_timer_c_handler(int irq, void *dev_id)
{
irq_handler_t timer_routine = dev_id;
unsigned long flags;

local_irq_save(flags);
timer_routine(0, NULL);
local_irq_restore(flags);

return IRQ_HANDLED;
}

void __init
atari_sched_init(irq_handler_t timer_routine)
{
Expand All @@ -32,7 +44,8 @@ atari_sched_init(irq_handler_t timer_routine)
/* start timer C, div = 1:100 */
st_mfp.tim_ct_cd = (st_mfp.tim_ct_cd & 15) | 0x60;
/* install interrupt service routine for MFP Timer C */
if (request_irq(IRQ_MFP_TIMC, timer_routine, 0, "timer", timer_routine))
if (request_irq(IRQ_MFP_TIMC, mfp_timer_c_handler, 0, "timer",
timer_routine))
pr_err("Couldn't register timer interrupt\n");
}

Expand Down
20 changes: 10 additions & 10 deletions arch/m68k/bvme6000/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,6 @@ extern int bvme6000_set_clock_mmss (unsigned long);
extern void bvme6000_reset (void);
void bvme6000_set_vectors (void);

/* Save tick handler routine pointer, will point to xtime_update() in
* kernel/timer/timekeeping.c, called via bvme6000_process_int() */

static irq_handler_t tick_handler;


int __init bvme6000_parse_bootinfo(const struct bi_record *bi)
{
Expand Down Expand Up @@ -160,12 +155,18 @@ irqreturn_t bvme6000_abort_int (int irq, void *dev_id)

static irqreturn_t bvme6000_timer_int (int irq, void *dev_id)
{
irq_handler_t timer_routine = dev_id;
unsigned long flags;
volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE;
unsigned char msr = rtc->msr & 0xc0;
unsigned char msr;

local_irq_save(flags);
msr = rtc->msr & 0xc0;
rtc->msr = msr | 0x20; /* Ack the interrupt */
timer_routine(0, NULL);
local_irq_restore(flags);

return tick_handler(irq, dev_id);
return IRQ_HANDLED;
}

/*
Expand All @@ -184,9 +185,8 @@ void bvme6000_sched_init (irq_handler_t timer_routine)

rtc->msr = 0; /* Ensure timer registers accessible */

tick_handler = timer_routine;
if (request_irq(BVME_IRQ_RTC, bvme6000_timer_int, 0,
"timer", bvme6000_timer_int))
if (request_irq(BVME_IRQ_RTC, bvme6000_timer_int, 0, "timer",
timer_routine))
panic ("Couldn't register timer int");

rtc->t1cr_omr = 0x04; /* Mode 2, ext clk */
Expand Down
10 changes: 8 additions & 2 deletions arch/m68k/hp300/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,19 @@

static irqreturn_t hp300_tick(int irq, void *dev_id)
{
irq_handler_t timer_routine = dev_id;
unsigned long flags;
unsigned long tmp;
irq_handler_t vector = dev_id;

local_irq_save(flags);
in_8(CLOCKBASE + CLKSR);
asm volatile ("movpw %1@(5),%0" : "=d" (tmp) : "a" (CLOCKBASE));
timer_routine(0, NULL);
local_irq_restore(flags);

/* Turn off the network and SCSI leds */
blinken_leds(0, 0xe0);
return vector(irq, NULL);
return IRQ_HANDLED;
}

u32 hp300_gettimeoffset(void)
Expand Down
Loading

0 comments on commit b5aaad3

Please sign in to comment.