Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 300273
b: refs/heads/master
c: 531c8ff
h: refs/heads/master
i:
  300271: 2d3f9c6
v: v3
  • Loading branch information
Jeff Layton authored and Steve French committed May 16, 2012
1 parent 70ac4d2 commit d3ecc94
Show file tree
Hide file tree
Showing 56 changed files with 254 additions and 433 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 39d6411b7df566715138c8c9f7fa00227f4ae75b
refs/heads/master: 531c8ff0d472295f5ef5d1bd306115c81a84889e
10 changes: 0 additions & 10 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -539,13 +539,3 @@ When: 3.6
Why: setitimer is not returning -EFAULT if user pointer is NULL. This
violates the spec.
Who: Sasikantha Babu <sasikanth.v19@gmail.com>

----------------------------

What: V4L2_CID_HCENTER, V4L2_CID_VCENTER V4L2 controls
When: 3.7
Why: The V4L2_CID_VCENTER, V4L2_CID_HCENTER controls have been deprecated
for about 4 years and they are not used by any mainline driver.
There are newer controls (V4L2_CID_PAN*, V4L2_CID_TILT*) that provide
similar functionality.
Who: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
9 changes: 3 additions & 6 deletions trunk/arch/mn10300/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
#include <linux/sched.h>
#include <linux/profile.h>
#include <linux/smp.h>
#include <linux/cpu.h>
#include <asm/tlbflush.h>
#include <asm/bitops.h>
#include <asm/processor.h>
Expand All @@ -39,6 +38,7 @@
#include "internal.h"

#ifdef CONFIG_HOTPLUG_CPU
#include <linux/cpu.h>
#include <asm/cacheflush.h>

static unsigned long sleep_mode[NR_CPUS];
Expand Down Expand Up @@ -874,13 +874,10 @@ static void __init smp_online(void)

cpu = smp_processor_id();

notify_cpu_starting(cpu);
local_irq_enable();

ipi_call_lock();
set_cpu_online(cpu, true);
ipi_call_unlock();

local_irq_enable();
smp_wmb();
}

/**
Expand Down
8 changes: 1 addition & 7 deletions trunk/arch/parisc/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
#include <linux/delay.h>
#include <linux/bitops.h>
#include <linux/ftrace.h>
#include <linux/cpu.h>

#include <linux/atomic.h>
#include <asm/current.h>
Expand Down Expand Up @@ -296,13 +295,8 @@ smp_cpu_init(int cpunum)

printk(KERN_CRIT "CPU#%d already initialized!\n", cpunum);
machine_halt();
}

notify_cpu_starting(cpunum);

ipi_call_lock();
}
set_cpu_online(cpunum, true);
ipi_call_unlock();

/* Initialise the idle task for this CPU */
atomic_inc(&init_mm.mm_count);
Expand Down
9 changes: 2 additions & 7 deletions trunk/arch/tile/include/asm/thread_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,9 @@ extern void cpu_idle_on_new_stack(struct thread_info *old_ti,

#else /* __ASSEMBLY__ */

/*
* How to get the thread information struct from assembly.
* Note that we use different macros since different architectures
* have different semantics in their "mm" instruction and we would
* like to guarantee that the macro expands to exactly one instruction.
*/
/* how to get the thread information struct from ASM */
#ifdef __tilegx__
#define EXTRACT_THREAD_INFO(reg) mm reg, zero, LOG2_THREAD_SIZE, 63
#define GET_THREAD_INFO(reg) move reg, sp; mm reg, zero, LOG2_THREAD_SIZE, 63
#else
#define GET_THREAD_INFO(reg) mm reg, sp, zero, LOG2_THREAD_SIZE, 31
#endif
Expand Down
12 changes: 7 additions & 5 deletions trunk/arch/tile/kernel/compat_signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,17 +403,19 @@ int compat_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
* Set up registers for signal handler.
* Registers that we don't modify keep the value they had from
* user-space at the time we took the signal.
* We always pass siginfo and mcontext, regardless of SA_SIGINFO,
* since some things rely on this (e.g. glibc's debug/segfault.c).
*/
regs->pc = ptr_to_compat_reg(ka->sa.sa_handler);
regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
regs->sp = ptr_to_compat_reg(frame);
regs->lr = restorer;
regs->regs[0] = (unsigned long) usig;
regs->regs[1] = ptr_to_compat_reg(&frame->info);
regs->regs[2] = ptr_to_compat_reg(&frame->uc);
regs->flags |= PT_FLAGS_CALLER_SAVES;

if (ka->sa.sa_flags & SA_SIGINFO) {
/* Need extra arguments, so mark to restore caller-saves. */
regs->regs[1] = ptr_to_compat_reg(&frame->info);
regs->regs[2] = ptr_to_compat_reg(&frame->uc);
regs->flags |= PT_FLAGS_CALLER_SAVES;
}

/*
* Notify any tracer that was single-stepping it.
Expand Down
41 changes: 13 additions & 28 deletions trunk/arch/tile/kernel/intvec_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -838,18 +838,6 @@ STD_ENTRY(interrupt_return)
.Lresume_userspace:
FEEDBACK_REENTER(interrupt_return)

/*
* Use r33 to hold whether we have already loaded the callee-saves
* into ptregs. We don't want to do it twice in this loop, since
* then we'd clobber whatever changes are made by ptrace, etc.
* Get base of stack in r32.
*/
{
GET_THREAD_INFO(r32)
movei r33, 0
}

.Lretry_work_pending:
/*
* Disable interrupts so as to make sure we don't
* miss an interrupt that sets any of the thread flags (like
Expand All @@ -860,6 +848,9 @@ STD_ENTRY(interrupt_return)
IRQ_DISABLE(r20, r21)
TRACE_IRQS_OFF /* Note: clobbers registers r0-r29 */

/* Get base of stack in r32; note r30/31 are used as arguments here. */
GET_THREAD_INFO(r32)


/* Check to see if there is any work to do before returning to user. */
{
Expand All @@ -875,18 +866,16 @@ STD_ENTRY(interrupt_return)

/*
* Make sure we have all the registers saved for signal
* handling, notify-resume, or single-step. Call out to C
* code to figure out exactly what we need to do for each flag bit,
* then if necessary, reload the flags and recheck.
* handling or single-step. Call out to C code to figure out
* exactly what we need to do for each flag bit, then if
* necessary, reload the flags and recheck.
*/
push_extra_callee_saves r0
{
PTREGS_PTR(r0, PTREGS_OFFSET_BASE)
bnz r33, 1f
jal do_work_pending
}
push_extra_callee_saves r0
movei r33, 1
1: jal do_work_pending
bnz r0, .Lretry_work_pending
bnz r0, .Lresume_userspace

/*
* In the NMI case we
Expand Down Expand Up @@ -1191,12 +1180,10 @@ handle_syscall:
add r20, r20, tp
lw r21, r20
addi r21, r21, 1
{
sw r20, r21
GET_THREAD_INFO(r31)
}
sw r20, r21

/* Trace syscalls, if requested. */
GET_THREAD_INFO(r31)
addi r31, r31, THREAD_INFO_FLAGS_OFFSET
lw r30, r31
andi r30, r30, _TIF_SYSCALL_TRACE
Expand Down Expand Up @@ -1375,17 +1362,15 @@ handle_ill:
3:
/* set PC and continue */
lw r26, r24
{
sw r28, r26
GET_THREAD_INFO(r0)
}
sw r28, r26

/*
* Clear TIF_SINGLESTEP to prevent recursion if we execute an ill.
* The normal non-arch flow redundantly clears TIF_SINGLESTEP, but we
* need to clear it here and can't really impose on all other arches.
* So what's another write between friends?
*/
GET_THREAD_INFO(r0)

addi r1, r0, THREAD_INFO_FLAGS_OFFSET
{
Expand Down
38 changes: 10 additions & 28 deletions trunk/arch/tile/kernel/intvec_64.S
Original file line number Diff line number Diff line change
Expand Up @@ -646,20 +646,6 @@ STD_ENTRY(interrupt_return)
.Lresume_userspace:
FEEDBACK_REENTER(interrupt_return)

/*
* Use r33 to hold whether we have already loaded the callee-saves
* into ptregs. We don't want to do it twice in this loop, since
* then we'd clobber whatever changes are made by ptrace, etc.
*/
{
movei r33, 0
move r32, sp
}

/* Get base of stack in r32. */
EXTRACT_THREAD_INFO(r32)

.Lretry_work_pending:
/*
* Disable interrupts so as to make sure we don't
* miss an interrupt that sets any of the thread flags (like
Expand All @@ -670,6 +656,9 @@ STD_ENTRY(interrupt_return)
IRQ_DISABLE(r20, r21)
TRACE_IRQS_OFF /* Note: clobbers registers r0-r29 */

/* Get base of stack in r32; note r30/31 are used as arguments here. */
GET_THREAD_INFO(r32)


/* Check to see if there is any work to do before returning to user. */
{
Expand All @@ -685,18 +674,16 @@ STD_ENTRY(interrupt_return)

/*
* Make sure we have all the registers saved for signal
* handling or notify-resume. Call out to C code to figure out
* handling or single-step. Call out to C code to figure out
* exactly what we need to do for each flag bit, then if
* necessary, reload the flags and recheck.
*/
push_extra_callee_saves r0
{
PTREGS_PTR(r0, PTREGS_OFFSET_BASE)
bnez r33, 1f
jal do_work_pending
}
push_extra_callee_saves r0
movei r33, 1
1: jal do_work_pending
bnez r0, .Lretry_work_pending
bnez r0, .Lresume_userspace

/*
* In the NMI case we
Expand Down Expand Up @@ -981,16 +968,11 @@ handle_syscall:
shl16insli r20, r20, hw0(irq_stat + IRQ_CPUSTAT_SYSCALL_COUNT_OFFSET)
add r20, r20, tp
ld4s r21, r20
{
addi r21, r21, 1
move r31, sp
}
{
st4 r20, r21
EXTRACT_THREAD_INFO(r31)
}
addi r21, r21, 1
st4 r20, r21

/* Trace syscalls, if requested. */
GET_THREAD_INFO(r31)
addi r31, r31, THREAD_INFO_FLAGS_OFFSET
ld r30, r31
andi r30, r30, _TIF_SYSCALL_TRACE
Expand Down
7 changes: 2 additions & 5 deletions trunk/arch/tile/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -567,10 +567,6 @@ struct task_struct *__sched _switch_to(struct task_struct *prev,
*/
int do_work_pending(struct pt_regs *regs, u32 thread_info_flags)
{
/* If we enter in kernel mode, do nothing and exit the caller loop. */
if (!user_mode(regs))
return 0;

if (thread_info_flags & _TIF_NEED_RESCHED) {
schedule();
return 1;
Expand All @@ -593,7 +589,8 @@ int do_work_pending(struct pt_regs *regs, u32 thread_info_flags)
return 1;
}
if (thread_info_flags & _TIF_SINGLESTEP) {
single_step_once(regs);
if ((regs->ex1 & SPR_EX_CONTEXT_1_1__PL_MASK) == 0)
single_step_once(regs);
return 0;
}
panic("work_pending: bad flags %#x\n", thread_info_flags);
Expand Down
4 changes: 0 additions & 4 deletions trunk/drivers/media/dvb/dvb-core/dvb_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -1921,10 +1921,6 @@ static int dtv_set_frontend(struct dvb_frontend *fe)
} else {
/* default values */
switch (c->delivery_system) {
case SYS_DVBS:
case SYS_DVBS2:
case SYS_ISDBS:
case SYS_TURBO:
case SYS_DVBC_ANNEX_A:
case SYS_DVBC_ANNEX_C:
fepriv->min_delay = HZ / 20;
Expand Down
32 changes: 16 additions & 16 deletions trunk/drivers/media/rc/ene_ir.c
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,22 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)

spin_lock_init(&dev->hw_lock);

/* claim the resources */
error = -EBUSY;
dev->hw_io = pnp_port_start(pnp_dev, 0);
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
dev->hw_io = -1;
dev->irq = -1;
goto error;
}

dev->irq = pnp_irq(pnp_dev, 0);
if (request_irq(dev->irq, ene_isr,
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
dev->irq = -1;
goto error;
}

pnp_set_drvdata(pnp_dev, dev);
dev->pnp_dev = pnp_dev;

Expand Down Expand Up @@ -1070,22 +1086,6 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
device_set_wakeup_capable(&pnp_dev->dev, true);
device_set_wakeup_enable(&pnp_dev->dev, true);

/* claim the resources */
error = -EBUSY;
dev->hw_io = pnp_port_start(pnp_dev, 0);
if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
dev->hw_io = -1;
dev->irq = -1;
goto error;
}

dev->irq = pnp_irq(pnp_dev, 0);
if (request_irq(dev->irq, ene_isr,
IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
dev->irq = -1;
goto error;
}

error = rc_register_device(rdev);
if (error < 0)
goto error;
Expand Down
22 changes: 11 additions & 11 deletions trunk/drivers/media/rc/fintek-cir.c
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ static int fintek_hw_detect(struct fintek_dev *fintek)
/*
* Newer reviews of this chipset uses port 8 instead of 5
*/
if ((chip != 0x0408) && (chip != 0x0804))
if ((chip != 0x0408) || (chip != 0x0804))
fintek->logical_dev_cir = LOGICAL_DEV_CIR_REV2;
else
fintek->logical_dev_cir = LOGICAL_DEV_CIR_REV1;
Expand Down Expand Up @@ -514,6 +514,16 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id

spin_lock_init(&fintek->fintek_lock);

ret = -EBUSY;
/* now claim resources */
if (!request_region(fintek->cir_addr,
fintek->cir_port_len, FINTEK_DRIVER_NAME))
goto failure;

if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
FINTEK_DRIVER_NAME, (void *)fintek))
goto failure;

pnp_set_drvdata(pdev, fintek);
fintek->pdev = pdev;

Expand Down Expand Up @@ -548,16 +558,6 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);

ret = -EBUSY;
/* now claim resources */
if (!request_region(fintek->cir_addr,
fintek->cir_port_len, FINTEK_DRIVER_NAME))
goto failure;

if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
FINTEK_DRIVER_NAME, (void *)fintek))
goto failure;

ret = rc_register_device(rdev);
if (ret)
goto failure;
Expand Down
Loading

0 comments on commit d3ecc94

Please sign in to comment.