diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/atm/Kconfig | 2 | ||||
-rw-r--r-- | drivers/dma/ioatdma.c | 8 | ||||
-rw-r--r-- | drivers/media/dvb/Kconfig | 2 | ||||
-rw-r--r-- | drivers/media/radio/Kconfig | 2 | ||||
-rw-r--r-- | drivers/media/video/Kconfig | 6 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-tvaudio.c | 2 | ||||
-rw-r--r-- | drivers/net/irda/smsc-ircc2.c | 14 | ||||
-rw-r--r-- | drivers/net/pcmcia/Kconfig | 2 | ||||
-rw-r--r-- | drivers/pnp/quirks.c | 66 | ||||
-rw-r--r-- | drivers/serial/mpsc.c | 3 | ||||
-rw-r--r-- | drivers/video/aty/atyfb_base.c | 17 | ||||
-rw-r--r-- | drivers/video/chipsfb.c | 6 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_therm.c | 6 |
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 | ||
10 | if ATM_DRIVERS | 10 | if ATM_DRIVERS && NETDEVICES && ATM |
11 | 11 | ||
12 | config ATM_DUMMY | 12 | config 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 | ||
559 | static struct pci_driver ioat_pci_drv = { | 559 | static 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 | ||
834 | module_init(ioat_init_module); | 834 | module_init(ioat_init_module); |
835 | 835 | ||
836 | static void __exit ioat_exit_module(void) | 836 | static 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 | ||
841 | module_exit(ioat_exit_module); | 841 | module_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 | ||
14 | if DVB_CAPTURE_DRIVERS | 14 | if DVB_CAPTURE_DRIVERS && DVB_CORE |
15 | 15 | ||
16 | comment "Supported SAA7146 based PCI Adapters" | 16 | comment "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 | ||
12 | if RADIO_ADAPTERS | 12 | if RADIO_ADAPTERS && VIDEO_DEV |
13 | 13 | ||
14 | config RADIO_CADET | 14 | config 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 | ||
14 | if VIDEO_CAPTURE_DRIVERS | 14 | if VIDEO_CAPTURE_DRIVERS && VIDEO_DEV |
15 | 15 | ||
16 | config VIDEO_ADV_DEBUG | 16 | config 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 | ||
348 | config VIDEO_VIVI | 348 | config 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 | ||
694 | if V4L_USB_DRIVERS | 694 | if V4L_USB_DRIVERS && USB |
695 | 695 | ||
696 | source "drivers/media/video/pvrusb2/Kconfig" | 696 | source "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) | |||
1005 | int saa7134_tvaudio_fini(struct saa7134_dev *dev) | 1005 | int 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 | ||
22 | if NET_PCMCIA | 22 | if NET_PCMCIA && PCMCIA |
23 | 23 | ||
24 | config PCMCIA_3C589 | 24 | config 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 | ||
110 | static void quirk_smc_enable(struct pnp_dev *dev) | 110 | static 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)) | 137 | static 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 | ||
295 | static struct fb_fix_screeninfo chipsfb_fix __initdata = { | 295 | static 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 | ||
312 | static struct fb_var_screeninfo chipsfb_var __initdata = { | 312 | static 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 | ||
333 | static void __init init_chips(struct fb_info *p, unsigned long addr) | 333 | static 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 | ||