aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/atm/Kconfig2
-rw-r--r--drivers/dma/ioatdma.c8
-rw-r--r--drivers/media/dvb/Kconfig2
-rw-r--r--drivers/media/radio/Kconfig2
-rw-r--r--drivers/media/video/Kconfig6
-rw-r--r--drivers/media/video/saa7134/saa7134-tvaudio.c2
-rw-r--r--drivers/net/irda/smsc-ircc2.c14
-rw-r--r--drivers/net/pcmcia/Kconfig2
-rw-r--r--drivers/pnp/quirks.c66
-rw-r--r--drivers/serial/mpsc.c3
-rw-r--r--drivers/video/aty/atyfb_base.c17
-rw-r--r--drivers/video/chipsfb.c6
-rw-r--r--drivers/w1/slaves/w1_therm.c6
13 files changed, 81 insertions, 55 deletions
diff --git a/drivers/atm/Kconfig b/drivers/atm/Kconfig
index f5a47a48c3b4..5b4fab24155f 100644
--- a/drivers/atm/Kconfig
+++ b/drivers/atm/Kconfig
@@ -7,7 +7,7 @@ menuconfig ATM_DRIVERS
7 depends on NETDEVICES && ATM 7 depends on NETDEVICES && ATM
8 default y 8 default y
9 9
10if ATM_DRIVERS 10if ATM_DRIVERS && NETDEVICES && ATM
11 11
12config ATM_DUMMY 12config ATM_DUMMY
13 tristate "Dummy ATM driver" 13 tristate "Dummy ATM driver"
diff --git a/drivers/dma/ioatdma.c b/drivers/dma/ioatdma.c
index 8e8726104619..850014139556 100644
--- a/drivers/dma/ioatdma.c
+++ b/drivers/dma/ioatdma.c
@@ -556,7 +556,7 @@ static struct pci_device_id ioat_pci_tbl[] = {
556 { 0, } 556 { 0, }
557}; 557};
558 558
559static struct pci_driver ioat_pci_drv = { 559static struct pci_driver ioat_pci_driver = {
560 .name = "ioatdma", 560 .name = "ioatdma",
561 .id_table = ioat_pci_tbl, 561 .id_table = ioat_pci_tbl,
562 .probe = ioat_probe, 562 .probe = ioat_probe,
@@ -699,7 +699,7 @@ static int __devinit ioat_probe(struct pci_dev *pdev,
699 if (err) 699 if (err)
700 goto err_set_dma_mask; 700 goto err_set_dma_mask;
701 701
702 err = pci_request_regions(pdev, ioat_pci_drv.name); 702 err = pci_request_regions(pdev, ioat_pci_driver.name);
703 if (err) 703 if (err)
704 goto err_request_regions; 704 goto err_request_regions;
705 705
@@ -828,14 +828,14 @@ static int __init ioat_init_module(void)
828 /* if forced, worst case is that rmmod hangs */ 828 /* if forced, worst case is that rmmod hangs */
829 __unsafe(THIS_MODULE); 829 __unsafe(THIS_MODULE);
830 830
831 return pci_register_driver(&ioat_pci_drv); 831 return pci_register_driver(&ioat_pci_driver);
832} 832}
833 833
834module_init(ioat_init_module); 834module_init(ioat_init_module);
835 835
836static void __exit ioat_exit_module(void) 836static void __exit ioat_exit_module(void)
837{ 837{
838 pci_unregister_driver(&ioat_pci_drv); 838 pci_unregister_driver(&ioat_pci_driver);
839} 839}
840 840
841module_exit(ioat_exit_module); 841module_exit(ioat_exit_module);
diff --git a/drivers/media/dvb/Kconfig b/drivers/media/dvb/Kconfig
index efd2b7468158..03ef88acd9b8 100644
--- a/drivers/media/dvb/Kconfig
+++ b/drivers/media/dvb/Kconfig
@@ -11,7 +11,7 @@ menuconfig DVB_CAPTURE_DRIVERS
11 ---help--- 11 ---help---
12 Say Y to select Digital TV adapters 12 Say Y to select Digital TV adapters
13 13
14if DVB_CAPTURE_DRIVERS 14if DVB_CAPTURE_DRIVERS && DVB_CORE
15 15
16comment "Supported SAA7146 based PCI Adapters" 16comment "Supported SAA7146 based PCI Adapters"
17 depends on DVB_CORE && PCI && I2C 17 depends on DVB_CORE && PCI && I2C
diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
index a6ac82a609d4..194b102140ef 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -9,7 +9,7 @@ menuconfig RADIO_ADAPTERS
9 ---help--- 9 ---help---
10 Say Y here to enable selecting AM/FM radio adapters. 10 Say Y here to enable selecting AM/FM radio adapters.
11 11
12if RADIO_ADAPTERS 12if RADIO_ADAPTERS && VIDEO_DEV
13 13
14config RADIO_CADET 14config RADIO_CADET
15 tristate "ADS Cadet AM/FM Tuner" 15 tristate "ADS Cadet AM/FM Tuner"
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index 4cca55170e21..4d45a40016de 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -11,7 +11,7 @@ menuconfig VIDEO_CAPTURE_DRIVERS
11 webcams, analog TV, and hybrid analog/digital TV. 11 webcams, analog TV, and hybrid analog/digital TV.
12 Some of those devices also supports FM radio. 12 Some of those devices also supports FM radio.
13 13
14if VIDEO_CAPTURE_DRIVERS 14if VIDEO_CAPTURE_DRIVERS && VIDEO_DEV
15 15
16config VIDEO_ADV_DEBUG 16config VIDEO_ADV_DEBUG
17 bool "Enable advanced debug functionality" 17 bool "Enable advanced debug functionality"
@@ -347,7 +347,7 @@ endmenu # encoder / decoder chips
347 347
348config VIDEO_VIVI 348config VIDEO_VIVI
349 tristate "Virtual Video Driver" 349 tristate "Virtual Video Driver"
350 depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 && PCI && VIDEO_DEV 350 depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 && PCI
351 select VIDEO_BUF 351 select VIDEO_BUF
352 default n 352 default n
353 ---help--- 353 ---help---
@@ -691,7 +691,7 @@ menuconfig V4L_USB_DRIVERS
691 depends on USB 691 depends on USB
692 default y 692 default y
693 693
694if V4L_USB_DRIVERS 694if V4L_USB_DRIVERS && USB
695 695
696source "drivers/media/video/pvrusb2/Kconfig" 696source "drivers/media/video/pvrusb2/Kconfig"
697 697
diff --git a/drivers/media/video/saa7134/saa7134-tvaudio.c b/drivers/media/video/saa7134/saa7134-tvaudio.c
index 7b56041186dc..30395d6b5f14 100644
--- a/drivers/media/video/saa7134/saa7134-tvaudio.c
+++ b/drivers/media/video/saa7134/saa7134-tvaudio.c
@@ -1005,7 +1005,7 @@ int saa7134_tvaudio_init2(struct saa7134_dev *dev)
1005int saa7134_tvaudio_fini(struct saa7134_dev *dev) 1005int saa7134_tvaudio_fini(struct saa7134_dev *dev)
1006{ 1006{
1007 /* shutdown tvaudio thread */ 1007 /* shutdown tvaudio thread */
1008 if (dev->thread.pid >= 0) { 1008 if (dev->thread.pid > 0) {
1009 dev->thread.shutdown = 1; 1009 dev->thread.shutdown = 1;
1010 wake_up_interruptible(&dev->thread.wq); 1010 wake_up_interruptible(&dev->thread.wq);
1011 wait_for_completion(&dev->thread.exit); 1011 wait_for_completion(&dev->thread.exit);
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/net/irda/smsc-ircc2.c
index 9043bf4aa49e..2803b370ba01 100644
--- a/drivers/net/irda/smsc-ircc2.c
+++ b/drivers/net/irda/smsc-ircc2.c
@@ -416,6 +416,13 @@ static int __init smsc_ircc_legacy_probe(void)
416{ 416{
417 int ret = 0; 417 int ret = 0;
418 418
419#ifdef CONFIG_PCI
420 if (smsc_ircc_preconfigure_subsystems(ircc_cfg, ircc_fir, ircc_sir, ircc_dma, ircc_irq) < 0) {
421 /* Ignore errors from preconfiguration */
422 IRDA_ERROR("%s, Preconfiguration failed !\n", driver_name);
423 }
424#endif
425
419 if (ircc_fir > 0 && ircc_sir > 0) { 426 if (ircc_fir > 0 && ircc_sir > 0) {
420 IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir); 427 IRDA_MESSAGE(" Overriding FIR address 0x%04x\n", ircc_fir);
421 IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir); 428 IRDA_MESSAGE(" Overriding SIR address 0x%04x\n", ircc_sir);
@@ -459,13 +466,6 @@ static int __init smsc_ircc_init(void)
459 return ret; 466 return ret;
460 } 467 }
461 468
462#ifdef CONFIG_PCI
463 if (smsc_ircc_preconfigure_subsystems(ircc_cfg, ircc_fir, ircc_sir, ircc_dma, ircc_irq) < 0) {
464 /* Ignore errors from preconfiguration */
465 IRDA_ERROR("%s, Preconfiguration failed !\n", driver_name);
466 }
467#endif
468
469 dev_count = 0; 469 dev_count = 0;
470 470
471 if (smsc_nopnp || !pnp_platform_devices || 471 if (smsc_nopnp || !pnp_platform_devices ||
diff --git a/drivers/net/pcmcia/Kconfig b/drivers/net/pcmcia/Kconfig
index 5d658bc9791c..e8f55d8ed7a9 100644
--- a/drivers/net/pcmcia/Kconfig
+++ b/drivers/net/pcmcia/Kconfig
@@ -19,7 +19,7 @@ menuconfig NET_PCMCIA
19 19
20 If unsure, say N. 20 If unsure, say N.
21 21
22if NET_PCMCIA 22if NET_PCMCIA && PCMCIA
23 23
24config PCMCIA_3C589 24config PCMCIA_3C589
25 tristate "3Com 3c589 PCMCIA support" 25 tristate "3Com 3c589 PCMCIA support"
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
index 277df50c89ae..967a8e22b2da 100644
--- a/drivers/pnp/quirks.c
+++ b/drivers/pnp/quirks.c
@@ -107,31 +107,61 @@ static void quirk_sb16audio_resources(struct pnp_dev *dev)
107 return; 107 return;
108} 108}
109 109
110static void quirk_smc_enable(struct pnp_dev *dev) 110static int quirk_smc_fir_enabled(struct pnp_dev *dev)
111{ 111{
112 unsigned int firbase; 112 unsigned long firbase;
113 u8 bank, high, low, chip;
114
115 if (!pnp_port_valid(dev, 1))
116 return 0;
117
118 firbase = pnp_port_start(dev, 1);
119
120 /* Select register bank 3 */
121 bank = inb(firbase + 7);
122 bank &= 0xf0;
123 bank |= 3;
124 outb(bank, firbase + 7);
125
126 high = inb(firbase + 0);
127 low = inb(firbase + 1);
128 chip = inb(firbase + 2);
129
130 /* This corresponds to the check in smsc_ircc_present() */
131 if (high == 0x10 && low == 0xb8 && (chip == 0xf1 || chip == 0xf2))
132 return 1;
133
134 return 0;
135}
113 136
114 if (!dev->active || !pnp_port_valid(dev, 1)) 137static void quirk_smc_enable(struct pnp_dev *dev)
138{
139 /*
140 * If the BIOS left the device disabled, or it is enabled and
141 * responding correctly, we're in good shape.
142 */
143 if (!dev->active || quirk_smc_fir_enabled(dev))
115 return; 144 return;
116 145
117 /* 146 /*
118 * On the HP/Compaq nw8240 (and probably other similar machines), 147 * Sometimes the BIOS claims the device is enabled, but it reports
119 * there is an SMCF010 device with two I/O port regions: 148 * the wrong FIR resources or doesn't properly configure ISA or LPC
120 * 149 * bridges on the way to the device.
121 * 0x3e8-0x3ef SIR
122 * 0x100-0x10f FIR
123 * 150 *
124 * _STA reports the device is enabled, but in fact, the BIOS 151 * HP nc6000 and nc8000/nw8000 laptops have known problems like
125 * neglects to enable the FIR range. Fortunately, it does fully 152 * this. Fortunately, they do fix things up if we auto-configure
126 * enable the device if we call _SRS. 153 * the device using its _PRS and _SRS methods.
127 */ 154 */
128 firbase = pnp_port_start(dev, 1); 155 dev_err(&dev->dev, "%s device not responding, auto-configuring "
129 if (inb(firbase + 0x7 /* IRCC_MASTER */) == 0xff) { 156 "resources\n", dev->id->id);
130 pnp_err("%s (%s) enabled but not responding, disabling and " 157
131 "re-enabling", dev->dev.bus_id, pnp_dev_name(dev)); 158 pnp_disable_dev(dev);
132 pnp_disable_dev(dev); 159 pnp_init_resource_table(&dev->res);
133 pnp_activate_dev(dev); 160 pnp_auto_config_dev(dev);
134 } 161 pnp_activate_dev(dev);
162
163 if (!quirk_smc_fir_enabled(dev))
164 dev_err(&dev->dev, "giving up; try \"smsc-ircc2.nopnp\"\n");
135} 165}
136 166
137 167
diff --git a/drivers/serial/mpsc.c b/drivers/serial/mpsc.c
index d09f2097d5b0..00924feaf621 100644
--- a/drivers/serial/mpsc.c
+++ b/drivers/serial/mpsc.c
@@ -503,7 +503,8 @@ mpsc_sdma_intr_ack(struct mpsc_port_info *pi)
503 503
504 if (pi->mirror_regs) 504 if (pi->mirror_regs)
505 pi->shared_regs->SDMA_INTR_CAUSE_m = 0; 505 pi->shared_regs->SDMA_INTR_CAUSE_m = 0;
506 writel(0, pi->shared_regs->sdma_intr_base + SDMA_INTR_CAUSE); 506 writeb(0x00, pi->shared_regs->sdma_intr_base + SDMA_INTR_CAUSE +
507 pi->port.line);
507 return; 508 return;
508} 509}
509 510
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index 8d3455da663a..2fbff6317433 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -2290,15 +2290,6 @@ static int __devinit aty_init(struct fb_info *info)
2290 init_waitqueue_head(&par->vblank.wait); 2290 init_waitqueue_head(&par->vblank.wait);
2291 spin_lock_init(&par->int_lock); 2291 spin_lock_init(&par->int_lock);
2292 2292
2293#ifdef CONFIG_PPC_PMAC
2294 /* The Apple iBook1 uses non-standard memory frequencies. We detect it
2295 * and set the frequency manually. */
2296 if (machine_is_compatible("PowerBook2,1")) {
2297 par->pll_limits.mclk = 70;
2298 par->pll_limits.xclk = 53;
2299 }
2300#endif
2301
2302#ifdef CONFIG_FB_ATY_GX 2293#ifdef CONFIG_FB_ATY_GX
2303 if (!M64_HAS(INTEGRATED)) { 2294 if (!M64_HAS(INTEGRATED)) {
2304 u32 stat0; 2295 u32 stat0;
@@ -2383,6 +2374,14 @@ static int __devinit aty_init(struct fb_info *info)
2383 par->pll_limits.xclk = (par->pll_limits.xclk + 1) >> 1; 2374 par->pll_limits.xclk = (par->pll_limits.xclk + 1) >> 1;
2384 } 2375 }
2385#endif 2376#endif
2377#ifdef CONFIG_PPC_PMAC
2378 /* The Apple iBook1 uses non-standard memory frequencies. We detect it
2379 * and set the frequency manually. */
2380 if (machine_is_compatible("PowerBook2,1")) {
2381 par->pll_limits.mclk = 70;
2382 par->pll_limits.xclk = 53;
2383 }
2384#endif
2386 2385
2387 /* Allow command line to override clocks. */ 2386 /* Allow command line to override clocks. */
2388 if (pll) 2387 if (pll)
diff --git a/drivers/video/chipsfb.c b/drivers/video/chipsfb.c
index af313bf1a2da..f48e8c534c87 100644
--- a/drivers/video/chipsfb.c
+++ b/drivers/video/chipsfb.c
@@ -292,7 +292,7 @@ static void __init chips_hw_init(void)
292 write_fr(chips_init_fr[i].addr, chips_init_fr[i].data); 292 write_fr(chips_init_fr[i].addr, chips_init_fr[i].data);
293} 293}
294 294
295static struct fb_fix_screeninfo chipsfb_fix __initdata = { 295static struct fb_fix_screeninfo chipsfb_fix __devinitdata = {
296 .id = "C&T 65550", 296 .id = "C&T 65550",
297 .type = FB_TYPE_PACKED_PIXELS, 297 .type = FB_TYPE_PACKED_PIXELS,
298 .visual = FB_VISUAL_PSEUDOCOLOR, 298 .visual = FB_VISUAL_PSEUDOCOLOR,
@@ -309,7 +309,7 @@ static struct fb_fix_screeninfo chipsfb_fix __initdata = {
309 .smem_len = 0x100000, /* 1MB */ 309 .smem_len = 0x100000, /* 1MB */
310}; 310};
311 311
312static struct fb_var_screeninfo chipsfb_var __initdata = { 312static struct fb_var_screeninfo chipsfb_var __devinitdata = {
313 .xres = 800, 313 .xres = 800,
314 .yres = 600, 314 .yres = 600,
315 .xres_virtual = 800, 315 .xres_virtual = 800,
@@ -330,7 +330,7 @@ static struct fb_var_screeninfo chipsfb_var __initdata = {
330 .vsync_len = 8, 330 .vsync_len = 8,
331}; 331};
332 332
333static void __init init_chips(struct fb_info *p, unsigned long addr) 333static void __devinit init_chips(struct fb_info *p, unsigned long addr)
334{ 334{
335 memset(p->screen_base, 0, 0x100000); 335 memset(p->screen_base, 0, 0x100000);
336 336
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index 732db4780042..1a6937dc190b 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -191,11 +191,7 @@ static ssize_t w1_therm_read_bin(struct kobject *kobj, char *buf, loff_t off, si
191 191
192 w1_write_8(dev, W1_CONVERT_TEMP); 192 w1_write_8(dev, W1_CONVERT_TEMP);
193 193
194 while (tm) { 194 msleep(tm);
195 tm = msleep_interruptible(tm);
196 if (signal_pending(current))
197 flush_signals(current);
198 }
199 195
200 if (!w1_reset_select_slave(sl)) { 196 if (!w1_reset_select_slave(sl)) {
201 197