aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 13:12:07 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 13:12:07 -0500
commitb2adf0cbec4cf0934c63f48f893e0cebde380d0c (patch)
treef4073c90ec71ebb37a0934dc14b52959ad58bfaa /drivers
parenta79960e576ebca9dbf24489b562689f2be7e9ff0 (diff)
parentd0608b54740c82b08056b7611e38a3fd73be3564 (diff)
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6: parisc: Fixup last users of irq_chip->typename parisc: convert /proc/pdc/{lcd,led} to seq_file parisc: Convert BUG() to use unreachable() parisc: Replace old style lock init in smp.c parisc: use sort() instead of home-made implementation (v2) parisc: add CALLER_ADDR{0-6} macros parisc: remove unused IRQSTAT_SIRQ_PEND and IRQSTAT_SZ defines parisc: remove duplicated #include
Diffstat (limited to 'drivers')
-rw-r--r--drivers/parisc/dino.c2
-rw-r--r--drivers/parisc/eisa.c2
-rw-r--r--drivers/parisc/gsc.c2
-rw-r--r--drivers/parisc/iosapic.c2
-rw-r--r--drivers/parisc/led.c59
-rw-r--r--drivers/parisc/superio.c2
6 files changed, 34 insertions, 35 deletions
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index d69bde6a2343..c542c7bb7454 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -354,7 +354,7 @@ static unsigned int dino_startup_irq(unsigned int irq)
354} 354}
355 355
356static struct irq_chip dino_interrupt_type = { 356static struct irq_chip dino_interrupt_type = {
357 .typename = "GSC-PCI", 357 .name = "GSC-PCI",
358 .startup = dino_startup_irq, 358 .startup = dino_startup_irq,
359 .shutdown = dino_disable_irq, 359 .shutdown = dino_disable_irq,
360 .enable = dino_enable_irq, 360 .enable = dino_enable_irq,
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 51220749cb65..46f503fb7fc5 100644
--- a/drivers/parisc/eisa.c
+++ b/drivers/parisc/eisa.c
@@ -189,7 +189,7 @@ static unsigned int eisa_startup_irq(unsigned int irq)
189} 189}
190 190
191static struct irq_chip eisa_interrupt_type = { 191static struct irq_chip eisa_interrupt_type = {
192 .typename = "EISA", 192 .name = "EISA",
193 .startup = eisa_startup_irq, 193 .startup = eisa_startup_irq,
194 .shutdown = eisa_disable_irq, 194 .shutdown = eisa_disable_irq,
195 .enable = eisa_enable_irq, 195 .enable = eisa_enable_irq,
diff --git a/drivers/parisc/gsc.c b/drivers/parisc/gsc.c
index 647adc9f85ad..c4e1f3c3c2fa 100644
--- a/drivers/parisc/gsc.c
+++ b/drivers/parisc/gsc.c
@@ -149,7 +149,7 @@ static unsigned int gsc_asic_startup_irq(unsigned int irq)
149} 149}
150 150
151static struct irq_chip gsc_asic_interrupt_type = { 151static struct irq_chip gsc_asic_interrupt_type = {
152 .typename = "GSC-ASIC", 152 .name = "GSC-ASIC",
153 .startup = gsc_asic_startup_irq, 153 .startup = gsc_asic_startup_irq,
154 .shutdown = gsc_asic_disable_irq, 154 .shutdown = gsc_asic_disable_irq,
155 .enable = gsc_asic_enable_irq, 155 .enable = gsc_asic_enable_irq,
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
index 88e333553212..c76836727cae 100644
--- a/drivers/parisc/iosapic.c
+++ b/drivers/parisc/iosapic.c
@@ -730,7 +730,7 @@ static int iosapic_set_affinity_irq(unsigned int irq,
730#endif 730#endif
731 731
732static struct irq_chip iosapic_interrupt_type = { 732static struct irq_chip iosapic_interrupt_type = {
733 .typename = "IO-SAPIC-level", 733 .name = "IO-SAPIC-level",
734 .startup = iosapic_startup_irq, 734 .startup = iosapic_startup_irq,
735 .shutdown = iosapic_disable_irq, 735 .shutdown = iosapic_disable_irq,
736 .enable = iosapic_enable_irq, 736 .enable = iosapic_enable_irq,
diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c
index 79caf1ca4a29..188bc8496a26 100644
--- a/drivers/parisc/led.c
+++ b/drivers/parisc/led.c
@@ -38,6 +38,7 @@
38#include <linux/kernel_stat.h> 38#include <linux/kernel_stat.h>
39#include <linux/reboot.h> 39#include <linux/reboot.h>
40#include <linux/proc_fs.h> 40#include <linux/proc_fs.h>
41#include <linux/seq_file.h>
41#include <linux/ctype.h> 42#include <linux/ctype.h>
42#include <linux/blkdev.h> 43#include <linux/blkdev.h>
43#include <linux/workqueue.h> 44#include <linux/workqueue.h>
@@ -147,41 +148,34 @@ device_initcall(start_task);
147static void (*led_func_ptr) (unsigned char) __read_mostly; 148static void (*led_func_ptr) (unsigned char) __read_mostly;
148 149
149#ifdef CONFIG_PROC_FS 150#ifdef CONFIG_PROC_FS
150static int led_proc_read(char *page, char **start, off_t off, int count, 151static int led_proc_show(struct seq_file *m, void *v)
151 int *eof, void *data)
152{ 152{
153 char *out = page; 153 switch ((long)m->private)
154 int len;
155
156 switch ((long)data)
157 { 154 {
158 case LED_NOLCD: 155 case LED_NOLCD:
159 out += sprintf(out, "Heartbeat: %d\n", led_heartbeat); 156 seq_printf(m, "Heartbeat: %d\n", led_heartbeat);
160 out += sprintf(out, "Disk IO: %d\n", led_diskio); 157 seq_printf(m, "Disk IO: %d\n", led_diskio);
161 out += sprintf(out, "LAN Rx/Tx: %d\n", led_lanrxtx); 158 seq_printf(m, "LAN Rx/Tx: %d\n", led_lanrxtx);
162 break; 159 break;
163 case LED_HASLCD: 160 case LED_HASLCD:
164 out += sprintf(out, "%s\n", lcd_text); 161 seq_printf(m, "%s\n", lcd_text);
165 break; 162 break;
166 default: 163 default:
167 *eof = 1;
168 return 0; 164 return 0;
169 } 165 }
166 return 0;
167}
170 168
171 len = out - page - off; 169static int led_proc_open(struct inode *inode, struct file *file)
172 if (len < count) { 170{
173 *eof = 1; 171 return single_open(file, led_proc_show, PDE(inode)->data);
174 if (len <= 0) return 0;
175 } else {
176 len = count;
177 }
178 *start = page + off;
179 return len;
180} 172}
181 173
182static int led_proc_write(struct file *file, const char *buf, 174
183 unsigned long count, void *data) 175static ssize_t led_proc_write(struct file *file, const char *buf,
176 size_t count, loff_t *pos)
184{ 177{
178 void *data = PDE(file->f_path.dentry->d_inode)->data;
185 char *cur, lbuf[count + 1]; 179 char *cur, lbuf[count + 1];
186 int d; 180 int d;
187 181
@@ -234,6 +228,15 @@ parse_error:
234 return -EINVAL; 228 return -EINVAL;
235} 229}
236 230
231static const struct file_operations led_proc_fops = {
232 .owner = THIS_MODULE,
233 .open = led_proc_open,
234 .read = seq_read,
235 .llseek = seq_lseek,
236 .release = single_release,
237 .write = led_proc_write,
238};
239
237static int __init led_create_procfs(void) 240static int __init led_create_procfs(void)
238{ 241{
239 struct proc_dir_entry *proc_pdc_root = NULL; 242 struct proc_dir_entry *proc_pdc_root = NULL;
@@ -243,19 +246,15 @@ static int __init led_create_procfs(void)
243 246
244 proc_pdc_root = proc_mkdir("pdc", 0); 247 proc_pdc_root = proc_mkdir("pdc", 0);
245 if (!proc_pdc_root) return -1; 248 if (!proc_pdc_root) return -1;
246 ent = create_proc_entry("led", S_IFREG|S_IRUGO|S_IWUSR, proc_pdc_root); 249 ent = proc_create_data("led", S_IRUGO|S_IWUSR, proc_pdc_root,
250 &led_proc_fops, (void *)LED_NOLCD); /* LED */
247 if (!ent) return -1; 251 if (!ent) return -1;
248 ent->data = (void *)LED_NOLCD; /* LED */
249 ent->read_proc = led_proc_read;
250 ent->write_proc = led_proc_write;
251 252
252 if (led_type == LED_HASLCD) 253 if (led_type == LED_HASLCD)
253 { 254 {
254 ent = create_proc_entry("lcd", S_IFREG|S_IRUGO|S_IWUSR, proc_pdc_root); 255 ent = proc_create_data("lcd", S_IRUGO|S_IWUSR, proc_pdc_root,
256 &led_proc_fops, (void *)LED_HASLCD); /* LCD */
255 if (!ent) return -1; 257 if (!ent) return -1;
256 ent->data = (void *)LED_HASLCD; /* LCD */
257 ent->read_proc = led_proc_read;
258 ent->write_proc = led_proc_write;
259 } 258 }
260 259
261 return 0; 260 return 0;
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index 675f04e6597a..a35c9c5b89e8 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -326,7 +326,7 @@ static unsigned int superio_startup_irq(unsigned int irq)
326} 326}
327 327
328static struct irq_chip superio_interrupt_type = { 328static struct irq_chip superio_interrupt_type = {
329 .typename = SUPERIO, 329 .name = SUPERIO,
330 .startup = superio_startup_irq, 330 .startup = superio_startup_irq,
331 .shutdown = superio_disable_irq, 331 .shutdown = superio_disable_irq,
332 .enable = superio_enable_irq, 332 .enable = superio_enable_irq,