/[linux-patches]/genpatches-2.6/tags/2.6.32-47/1047_linux-2.6.32.48.patch
Gentoo

Contents of /genpatches-2.6/tags/2.6.32-47/1047_linux-2.6.32.48.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2037 - (hide annotations) (download)
Wed Dec 28 14:38:55 2011 UTC (6 years, 10 months ago) by psomas
File size: 5564 byte(s)
2.6.32-47 release
1 mpagano 2005 diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
2     index b54d581..30c44e6 100644
3     --- a/arch/powerpc/sysdev/mpic.c
4     +++ b/arch/powerpc/sysdev/mpic.c
5     @@ -567,10 +567,12 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
6     #endif /* CONFIG_MPIC_U3_HT_IRQS */
7    
8     #ifdef CONFIG_SMP
9     -static int irq_choose_cpu(const cpumask_t *mask)
10     +static int irq_choose_cpu(unsigned int virt_irq)
11     {
12     + cpumask_t mask;
13     int cpuid;
14    
15     + cpumask_copy(&mask, irq_desc[virt_irq].affinity);
16     if (cpus_equal(mask, CPU_MASK_ALL)) {
17     static int irq_rover;
18     static DEFINE_SPINLOCK(irq_rover_lock);
19     @@ -592,15 +594,20 @@ static int irq_choose_cpu(const cpumask_t *mask)
20    
21     spin_unlock_irqrestore(&irq_rover_lock, flags);
22     } else {
23     - cpuid = cpumask_first_and(mask, cpu_online_mask);
24     - if (cpuid >= nr_cpu_ids)
25     + cpumask_t tmp;
26     +
27     + cpus_and(tmp, cpu_online_map, mask);
28     +
29     + if (cpus_empty(tmp))
30     goto do_round_robin;
31     +
32     + cpuid = first_cpu(tmp);
33     }
34    
35     return get_hard_smp_processor_id(cpuid);
36     }
37     #else
38     -static int irq_choose_cpu(const cpumask_t *mask)
39     +static int irq_choose_cpu(unsigned int virt_irq)
40     {
41     return hard_smp_processor_id();
42     }
43     @@ -809,7 +816,7 @@ int mpic_set_affinity(unsigned int irq, const struct cpumask *cpumask)
44     unsigned int src = mpic_irq_to_hw(irq);
45    
46     if (mpic->flags & MPIC_SINGLE_DEST_CPU) {
47     - int cpuid = irq_choose_cpu(cpumask);
48     + int cpuid = irq_choose_cpu(irq);
49    
50     mpic_irq_write(src, MPIC_INFO(IRQ_DESTINATION), 1 << cpuid);
51     } else {
52     diff --git a/drivers/base/sys.c b/drivers/base/sys.c
53     index 3f202f7..0d90390 100644
54     --- a/drivers/base/sys.c
55     +++ b/drivers/base/sys.c
56     @@ -471,12 +471,6 @@ int sysdev_resume(void)
57     {
58     struct sysdev_class *cls;
59    
60     - /*
61     - * Called from syscore in mainline but called directly here
62     - * since syscore does not exist in this tree.
63     - */
64     - irq_pm_syscore_resume();
65     -
66     WARN_ONCE(!irqs_disabled(),
67     "Interrupts enabled while resuming system devices\n");
68    
69     diff --git a/drivers/xen/events.c b/drivers/xen/events.c
70     index 15ed43e..009ca4e 100644
71     --- a/drivers/xen/events.c
72     +++ b/drivers/xen/events.c
73     @@ -536,7 +536,7 @@ int bind_ipi_to_irqhandler(enum ipi_vector ipi,
74     if (irq < 0)
75     return irq;
76    
77     - irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME | IRQF_EARLY_RESUME;
78     + irqflags |= IRQF_NO_SUSPEND | IRQF_FORCE_RESUME;
79     retval = request_irq(irq, handler, irqflags, devname, dev_id);
80     if (retval != 0) {
81     unbind_from_irq(irq);
82     diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
83     index c7e1aa5..4528f29 100644
84     --- a/include/linux/interrupt.h
85     +++ b/include/linux/interrupt.h
86     @@ -54,8 +54,6 @@
87     * irq line disabled until the threaded handler has been run.
88     * IRQF_NO_SUSPEND - Do not disable this IRQ during suspend
89     * IRQF_FORCE_RESUME - Force enable it on resume even if IRQF_NO_SUSPEND is set
90     - * IRQF_EARLY_RESUME - Resume IRQ early during syscore instead of at device
91     - * resume time.
92     */
93     #define IRQF_DISABLED 0x00000020
94     #define IRQF_SAMPLE_RANDOM 0x00000040
95     @@ -68,7 +66,6 @@
96     #define IRQF_ONESHOT 0x00002000
97     #define IRQF_NO_SUSPEND 0x00004000
98     #define IRQF_FORCE_RESUME 0x00008000
99     -#define IRQF_EARLY_RESUME 0x00020000
100    
101     #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND)
102    
103     @@ -199,7 +196,6 @@ extern void enable_irq(unsigned int irq);
104     #ifdef CONFIG_GENERIC_HARDIRQS
105     extern void suspend_device_irqs(void);
106     extern void resume_device_irqs(void);
107     -extern void irq_pm_syscore_resume(void);
108     #ifdef CONFIG_PM_SLEEP
109     extern int check_wakeup_irqs(void);
110     #else
111     @@ -208,7 +204,6 @@ static inline int check_wakeup_irqs(void) { return 0; }
112     #else
113     static inline void suspend_device_irqs(void) { };
114     static inline void resume_device_irqs(void) { };
115     -static inline void irq_pm_syscore_resume(void) { };
116     static inline int check_wakeup_irqs(void) { return 0; }
117     #endif
118    
119     diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
120     index b1fc3dd..0067abb 100644
121     --- a/kernel/irq/pm.c
122     +++ b/kernel/irq/pm.c
123     @@ -39,46 +39,25 @@ void suspend_device_irqs(void)
124     }
125     EXPORT_SYMBOL_GPL(suspend_device_irqs);
126    
127     -static void resume_irqs(bool want_early)
128     +/**
129     + * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
130     + *
131     + * Enable all interrupt lines previously disabled by suspend_device_irqs() that
132     + * have the IRQ_SUSPENDED flag set.
133     + */
134     +void resume_device_irqs(void)
135     {
136     struct irq_desc *desc;
137     int irq;
138    
139     for_each_irq_desc(irq, desc) {
140     unsigned long flags;
141     - bool is_early = desc->action &&
142     - desc->action->flags & IRQF_EARLY_RESUME;
143     -
144     - if (is_early != want_early)
145     - continue;
146    
147     spin_lock_irqsave(&desc->lock, flags);
148     __enable_irq(desc, irq, true);
149     spin_unlock_irqrestore(&desc->lock, flags);
150     }
151     }
152     -
153     -/**
154     - * irq_pm_syscore_ops - enable interrupt lines early
155     - *
156     - * Enable all interrupt lines with %IRQF_EARLY_RESUME set.
157     - */
158     -void irq_pm_syscore_resume(void)
159     -{
160     - resume_irqs(true);
161     -}
162     -
163     -/**
164     - * resume_device_irqs - enable interrupt lines disabled by suspend_device_irqs()
165     - *
166     - * Enable all non-%IRQF_EARLY_RESUME interrupt lines previously
167     - * disabled by suspend_device_irqs() that have the IRQS_SUSPENDED flag
168     - * set as well as those with %IRQF_FORCE_RESUME.
169     - */
170     -void resume_device_irqs(void)
171     -{
172     - resume_irqs(false);
173     -}
174     EXPORT_SYMBOL_GPL(resume_device_irqs);
175    
176     /**
177     diff --git a/sound/soc/codecs/wm8940.c b/sound/soc/codecs/wm8940.c
178     index c9510a5..63bc2ae 100644
179     --- a/sound/soc/codecs/wm8940.c
180     +++ b/sound/soc/codecs/wm8940.c
181     @@ -473,8 +473,6 @@ static int wm8940_set_bias_level(struct snd_soc_codec *codec,
182     break;
183     }
184    
185     - codec->dapm.bias_level = level;
186     -
187     return ret;
188     }
189    

  ViewVC Help
Powered by ViewVC 1.1.20