diff options
378 files changed, 1686 insertions, 1880 deletions
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle index 495e5ba1634c..e00b8f0dde52 100644 --- a/Documentation/CodingStyle +++ b/Documentation/CodingStyle | |||
@@ -546,15 +546,7 @@ config AUDIT | |||
546 | logging of avc messages output). Does not do system-call | 546 | logging of avc messages output). Does not do system-call |
547 | auditing without CONFIG_AUDITSYSCALL. | 547 | auditing without CONFIG_AUDITSYSCALL. |
548 | 548 | ||
549 | Features that might still be considered unstable should be defined as | 549 | Seriously dangerous features (such as write support for certain |
550 | dependent on "EXPERIMENTAL": | ||
551 | |||
552 | config SLUB | ||
553 | depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT | ||
554 | bool "SLUB (Unqueued Allocator)" | ||
555 | ... | ||
556 | |||
557 | while seriously dangerous features (such as write support for certain | ||
558 | filesystems) should advertise this prominently in their prompt string: | 550 | filesystems) should advertise this prominently in their prompt string: |
559 | 551 | ||
560 | config ADFS_FS_RW | 552 | config ADFS_FS_RW |
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl index eee71426ecb8..22e0bd1adf25 100644 --- a/Documentation/DocBook/kernel-hacking.tmpl +++ b/Documentation/DocBook/kernel-hacking.tmpl | |||
@@ -1185,13 +1185,6 @@ static struct block_device_operations opt_fops = { | |||
1185 | </para> | 1185 | </para> |
1186 | 1186 | ||
1187 | <para> | 1187 | <para> |
1188 | You may well want to make your CONFIG option only visible if | ||
1189 | <symbol>CONFIG_EXPERIMENTAL</symbol> is enabled: this serves as a | ||
1190 | warning to users. There many other fancy things you can do: see | ||
1191 | the various <filename>Kconfig</filename> files for ideas. | ||
1192 | </para> | ||
1193 | |||
1194 | <para> | ||
1195 | In your description of the option, make sure you address both the | 1188 | In your description of the option, make sure you address both the |
1196 | expert user and the user who knows nothing about your feature. Mention | 1189 | expert user and the user who knows nothing about your feature. Mention |
1197 | incompatibilities and issues here. <emphasis> Definitely | 1190 | incompatibilities and issues here. <emphasis> Definitely |
diff --git a/Documentation/DocBook/kgdb.tmpl b/Documentation/DocBook/kgdb.tmpl index 4ee4ba3509fc..f77358f96930 100644 --- a/Documentation/DocBook/kgdb.tmpl +++ b/Documentation/DocBook/kgdb.tmpl | |||
@@ -94,10 +94,8 @@ | |||
94 | <sect1 id="CompileKGDB"> | 94 | <sect1 id="CompileKGDB"> |
95 | <title>Kernel config options for kgdb</title> | 95 | <title>Kernel config options for kgdb</title> |
96 | <para> | 96 | <para> |
97 | To enable <symbol>CONFIG_KGDB</symbol> you should first turn on | 97 | To enable <symbol>CONFIG_KGDB</symbol> you should look under |
98 | "Prompt for development and/or incomplete code/drivers" | 98 | "Kernel debugging" and select "KGDB: kernel debugger". |
99 | (CONFIG_EXPERIMENTAL) in "General setup", then under the | ||
100 | "Kernel debugging" select "KGDB: kernel debugger". | ||
101 | </para> | 99 | </para> |
102 | <para> | 100 | <para> |
103 | While it is not a hard requirement that you have symbols in your | 101 | While it is not a hard requirement that you have symbols in your |
diff --git a/Documentation/driver-model/devres.txt b/Documentation/driver-model/devres.txt index 43cff70465ab..b4671459857f 100644 --- a/Documentation/driver-model/devres.txt +++ b/Documentation/driver-model/devres.txt | |||
@@ -266,7 +266,8 @@ IOMAP | |||
266 | devm_ioremap() | 266 | devm_ioremap() |
267 | devm_ioremap_nocache() | 267 | devm_ioremap_nocache() |
268 | devm_iounmap() | 268 | devm_iounmap() |
269 | devm_request_and_ioremap() : checks resource, requests region, ioremaps | 269 | devm_ioremap_resource() : checks resource, requests memory region, ioremaps |
270 | devm_request_and_ioremap() : obsoleted by devm_ioremap_resource() | ||
270 | pcim_iomap() | 271 | pcim_iomap() |
271 | pcim_iounmap() | 272 | pcim_iounmap() |
272 | pcim_iomap_table() : array of mapped addresses indexed by BAR | 273 | pcim_iomap_table() : array of mapped addresses indexed by BAR |
@@ -288,3 +289,7 @@ PINCTRL | |||
288 | PWM | 289 | PWM |
289 | devm_pwm_get() | 290 | devm_pwm_get() |
290 | devm_pwm_put() | 291 | devm_pwm_put() |
292 | |||
293 | PHY | ||
294 | devm_usb_get_phy() | ||
295 | devm_usb_put_phy() | ||
diff --git a/Documentation/dynamic-debug-howto.txt b/Documentation/dynamic-debug-howto.txt index 6e1684981da2..72322c6d7352 100644 --- a/Documentation/dynamic-debug-howto.txt +++ b/Documentation/dynamic-debug-howto.txt | |||
@@ -6,8 +6,16 @@ This document describes how to use the dynamic debug (dyndbg) feature. | |||
6 | 6 | ||
7 | Dynamic debug is designed to allow you to dynamically enable/disable | 7 | Dynamic debug is designed to allow you to dynamically enable/disable |
8 | kernel code to obtain additional kernel information. Currently, if | 8 | kernel code to obtain additional kernel information. Currently, if |
9 | CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() calls can | 9 | CONFIG_DYNAMIC_DEBUG is set, then all pr_debug()/dev_dbg() and |
10 | be dynamically enabled per-callsite. | 10 | print_hex_dump_debug()/print_hex_dump_bytes() calls can be dynamically |
11 | enabled per-callsite. | ||
12 | |||
13 | If CONFIG_DYNAMIC_DEBUG is not set, print_hex_dump_debug() is just | ||
14 | shortcut for print_hex_dump(KERN_DEBUG). | ||
15 | |||
16 | For print_hex_dump_debug()/print_hex_dump_bytes(), format string is | ||
17 | its 'prefix_str' argument, if it is constant string; or "hexdump" | ||
18 | in case 'prefix_str' is build dynamically. | ||
11 | 19 | ||
12 | Dynamic debug has even more useful features: | 20 | Dynamic debug has even more useful features: |
13 | 21 | ||
@@ -202,6 +210,9 @@ The flags are: | |||
202 | t Include thread ID in messages not generated from interrupt context | 210 | t Include thread ID in messages not generated from interrupt context |
203 | _ No flags are set. (Or'd with others on input) | 211 | _ No flags are set. (Or'd with others on input) |
204 | 212 | ||
213 | For print_hex_dump_debug() and print_hex_dump_bytes(), only 'p' flag | ||
214 | have meaning, other flags ignored. | ||
215 | |||
205 | For display, the flags are preceded by '=' | 216 | For display, the flags are preceded by '=' |
206 | (mnemonic: what the flags are currently equal to). | 217 | (mnemonic: what the flags are currently equal to). |
207 | 218 | ||
diff --git a/Documentation/intel_txt.txt b/Documentation/intel_txt.txt index 849de1a78e77..91d89c540709 100644 --- a/Documentation/intel_txt.txt +++ b/Documentation/intel_txt.txt | |||
@@ -192,7 +192,7 @@ grub.conf needs to be modified as follows: | |||
192 | 192 | ||
193 | The kernel option for enabling Intel TXT support is found under the | 193 | The kernel option for enabling Intel TXT support is found under the |
194 | Security top-level menu and is called "Enable Intel(R) Trusted | 194 | Security top-level menu and is called "Enable Intel(R) Trusted |
195 | Execution Technology (TXT)". It is marked as EXPERIMENTAL and | 195 | Execution Technology (TXT)". It is considered EXPERIMENTAL and |
196 | depends on the generic x86 support (to allow maximum flexibility in | 196 | depends on the generic x86 support (to allow maximum flexibility in |
197 | kernel build options), since the tboot code will detect whether the | 197 | kernel build options), since the tboot code will detect whether the |
198 | platform actually supports Intel TXT and thus whether any of the | 198 | platform actually supports Intel TXT and thus whether any of the |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 9d666828915a..cf7bc6cb9719 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1398,7 +1398,7 @@ Sysfs notes: | |||
1398 | EXPERIMENTAL: UWB | 1398 | EXPERIMENTAL: UWB |
1399 | ----------------- | 1399 | ----------------- |
1400 | 1400 | ||
1401 | This feature is marked EXPERIMENTAL because it has not been extensively | 1401 | This feature is considered EXPERIMENTAL because it has not been extensively |
1402 | tested and validated in various ThinkPad models yet. The feature may not | 1402 | tested and validated in various ThinkPad models yet. The feature may not |
1403 | work as expected. USE WITH CAUTION! To use this feature, you need to supply | 1403 | work as expected. USE WITH CAUTION! To use this feature, you need to supply |
1404 | the experimental=1 parameter when loading the module. | 1404 | the experimental=1 parameter when loading the module. |
diff --git a/Documentation/zh_CN/CodingStyle b/Documentation/zh_CN/CodingStyle index ecd9307a641f..654afd72eb24 100644 --- a/Documentation/zh_CN/CodingStyle +++ b/Documentation/zh_CN/CodingStyle | |||
@@ -462,13 +462,6 @@ config AUDIT | |||
462 | logging of avc messages output). Does not do system-call | 462 | logging of avc messages output). Does not do system-call |
463 | auditing without CONFIG_AUDITSYSCALL. | 463 | auditing without CONFIG_AUDITSYSCALL. |
464 | 464 | ||
465 | 仍然被认为不够稳定的功能应该被定义为依赖于“EXPERIMENTAL”: | ||
466 | |||
467 | config SLUB | ||
468 | depends on EXPERIMENTAL && !ARCH_USES_SLAB_PAGE_STRUCT | ||
469 | bool "SLUB (Unqueued Allocator)" | ||
470 | ... | ||
471 | |||
472 | 而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这 | 465 | 而那些危险的功能(比如某些文件系统的写支持)应该在它们的提示字符串里显著的声明这 |
473 | 一点: | 466 | 一点: |
474 | 467 | ||
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig index 9b504af2e966..775361f67bfd 100644 --- a/arch/alpha/Kconfig +++ b/arch/alpha/Kconfig | |||
@@ -555,8 +555,7 @@ config NR_CPUS | |||
555 | with working support have a maximum of 4 CPUs. | 555 | with working support have a maximum of 4 CPUs. |
556 | 556 | ||
557 | config ARCH_DISCONTIGMEM_ENABLE | 557 | config ARCH_DISCONTIGMEM_ENABLE |
558 | bool "Discontiguous Memory Support (EXPERIMENTAL)" | 558 | bool "Discontiguous Memory Support" |
559 | depends on EXPERIMENTAL | ||
560 | help | 559 | help |
561 | Say Y to support efficient handling of discontiguous physical memory, | 560 | Say Y to support efficient handling of discontiguous physical memory, |
562 | for architectures which are either NUMA (Non-Uniform Memory Access) | 561 | for architectures which are either NUMA (Non-Uniform Memory Access) |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 2f66b2e42490..f410cb16dd22 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1530,7 +1530,6 @@ config SMP | |||
1530 | 1530 | ||
1531 | config SMP_ON_UP | 1531 | config SMP_ON_UP |
1532 | bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" | 1532 | bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)" |
1533 | depends on EXPERIMENTAL | ||
1534 | depends on SMP && !XIP_KERNEL | 1533 | depends on SMP && !XIP_KERNEL |
1535 | default y | 1534 | default y |
1536 | help | 1535 | help |
@@ -1731,7 +1730,7 @@ config AEABI | |||
1731 | 1730 | ||
1732 | config OABI_COMPAT | 1731 | config OABI_COMPAT |
1733 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" | 1732 | bool "Allow old ABI binaries to run with this kernel (EXPERIMENTAL)" |
1734 | depends on AEABI && EXPERIMENTAL && !THUMB2_KERNEL | 1733 | depends on AEABI && !THUMB2_KERNEL |
1735 | default y | 1734 | default y |
1736 | help | 1735 | help |
1737 | This option preserves the old syscall interface along with the | 1736 | This option preserves the old syscall interface along with the |
@@ -1855,7 +1854,6 @@ config SECCOMP | |||
1855 | 1854 | ||
1856 | config CC_STACKPROTECTOR | 1855 | config CC_STACKPROTECTOR |
1857 | bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" | 1856 | bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" |
1858 | depends on EXPERIMENTAL | ||
1859 | help | 1857 | help |
1860 | This option turns on the -fstack-protector GCC feature. This | 1858 | This option turns on the -fstack-protector GCC feature. This |
1861 | feature puts, at the beginning of functions, a canary value on | 1859 | feature puts, at the beginning of functions, a canary value on |
@@ -1872,7 +1870,7 @@ config XEN_DOM0 | |||
1872 | 1870 | ||
1873 | config XEN | 1871 | config XEN |
1874 | bool "Xen guest support on ARM (EXPERIMENTAL)" | 1872 | bool "Xen guest support on ARM (EXPERIMENTAL)" |
1875 | depends on EXPERIMENTAL && ARM && OF | 1873 | depends on ARM && OF |
1876 | depends on CPU_V7 && !CPU_V6 | 1874 | depends on CPU_V7 && !CPU_V6 |
1877 | help | 1875 | help |
1878 | Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. | 1876 | Say Y if you want to run Linux in a Virtual Machine on Xen on ARM. |
@@ -1941,7 +1939,7 @@ config ZBOOT_ROM | |||
1941 | 1939 | ||
1942 | choice | 1940 | choice |
1943 | prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)" | 1941 | prompt "Include SD/MMC loader in zImage (EXPERIMENTAL)" |
1944 | depends on ZBOOT_ROM && ARCH_SH7372 && EXPERIMENTAL | 1942 | depends on ZBOOT_ROM && ARCH_SH7372 |
1945 | default ZBOOT_ROM_NONE | 1943 | default ZBOOT_ROM_NONE |
1946 | help | 1944 | help |
1947 | Include experimental SD/MMC loading code in the ROM-able zImage. | 1945 | Include experimental SD/MMC loading code in the ROM-able zImage. |
@@ -1970,7 +1968,7 @@ endchoice | |||
1970 | 1968 | ||
1971 | config ARM_APPENDED_DTB | 1969 | config ARM_APPENDED_DTB |
1972 | bool "Use appended device tree blob to zImage (EXPERIMENTAL)" | 1970 | bool "Use appended device tree blob to zImage (EXPERIMENTAL)" |
1973 | depends on OF && !ZBOOT_ROM && EXPERIMENTAL | 1971 | depends on OF && !ZBOOT_ROM |
1974 | help | 1972 | help |
1975 | With this option, the boot code will look for a device tree binary | 1973 | With this option, the boot code will look for a device tree binary |
1976 | (DTB) appended to zImage | 1974 | (DTB) appended to zImage |
@@ -2088,7 +2086,7 @@ config XIP_PHYS_ADDR | |||
2088 | 2086 | ||
2089 | config KEXEC | 2087 | config KEXEC |
2090 | bool "Kexec system call (EXPERIMENTAL)" | 2088 | bool "Kexec system call (EXPERIMENTAL)" |
2091 | depends on EXPERIMENTAL && (!SMP || HOTPLUG_CPU) | 2089 | depends on (!SMP || HOTPLUG_CPU) |
2092 | help | 2090 | help |
2093 | kexec is a system call that implements the ability to shutdown your | 2091 | kexec is a system call that implements the ability to shutdown your |
2094 | current kernel, and to start another kernel. It is like a reboot | 2092 | current kernel, and to start another kernel. It is like a reboot |
@@ -2110,7 +2108,6 @@ config ATAGS_PROC | |||
2110 | 2108 | ||
2111 | config CRASH_DUMP | 2109 | config CRASH_DUMP |
2112 | bool "Build kdump crash kernel (EXPERIMENTAL)" | 2110 | bool "Build kdump crash kernel (EXPERIMENTAL)" |
2113 | depends on EXPERIMENTAL | ||
2114 | help | 2111 | help |
2115 | Generate crash dump after being started by kexec. This should | 2112 | Generate crash dump after being started by kexec. This should |
2116 | be normally only set in special crash dump kernels which are | 2113 | be normally only set in special crash dump kernels which are |
@@ -2177,7 +2174,7 @@ config CPU_FREQ_S3C | |||
2177 | 2174 | ||
2178 | config CPU_FREQ_S3C24XX | 2175 | config CPU_FREQ_S3C24XX |
2179 | bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" | 2176 | bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)" |
2180 | depends on ARCH_S3C24XX && CPU_FREQ && EXPERIMENTAL | 2177 | depends on ARCH_S3C24XX && CPU_FREQ |
2181 | select CPU_FREQ_S3C | 2178 | select CPU_FREQ_S3C |
2182 | help | 2179 | help |
2183 | This enables the CPUfreq driver for the Samsung S3C24XX family | 2180 | This enables the CPUfreq driver for the Samsung S3C24XX family |
@@ -2189,7 +2186,7 @@ config CPU_FREQ_S3C24XX | |||
2189 | 2186 | ||
2190 | config CPU_FREQ_S3C24XX_PLL | 2187 | config CPU_FREQ_S3C24XX_PLL |
2191 | bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" | 2188 | bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)" |
2192 | depends on CPU_FREQ_S3C24XX && EXPERIMENTAL | 2189 | depends on CPU_FREQ_S3C24XX |
2193 | help | 2190 | help |
2194 | Compile in support for changing the PLL frequency from the | 2191 | Compile in support for changing the PLL frequency from the |
2195 | S3C24XX series CPUfreq driver. The PLL takes time to settle | 2192 | S3C24XX series CPUfreq driver. The PLL takes time to settle |
@@ -2252,7 +2249,7 @@ config FPE_NWFPE_XP | |||
2252 | 2249 | ||
2253 | config FPE_FASTFPE | 2250 | config FPE_FASTFPE |
2254 | bool "FastFPE math emulation (EXPERIMENTAL)" | 2251 | bool "FastFPE math emulation (EXPERIMENTAL)" |
2255 | depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL | 2252 | depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 |
2256 | ---help--- | 2253 | ---help--- |
2257 | Say Y here to include the FAST floating point emulator in the kernel. | 2254 | Say Y here to include the FAST floating point emulator in the kernel. |
2258 | This is an experimental much faster emulator which now also has full | 2255 | This is an experimental much faster emulator which now also has full |
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 661030d6bc6c..fc2a591e1676 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -32,7 +32,7 @@ config FRAME_POINTER | |||
32 | 32 | ||
33 | config ARM_UNWIND | 33 | config ARM_UNWIND |
34 | bool "Enable stack unwinding support (EXPERIMENTAL)" | 34 | bool "Enable stack unwinding support (EXPERIMENTAL)" |
35 | depends on AEABI && EXPERIMENTAL | 35 | depends on AEABI |
36 | default y | 36 | default y |
37 | help | 37 | help |
38 | This option enables stack unwinding support in the kernel | 38 | This option enables stack unwinding support in the kernel |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 8033cb747c86..64bac53da0e8 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -1134,11 +1134,9 @@ static int gpmc_probe(struct platform_device *pdev) | |||
1134 | phys_base = res->start; | 1134 | phys_base = res->start; |
1135 | mem_size = resource_size(res); | 1135 | mem_size = resource_size(res); |
1136 | 1136 | ||
1137 | gpmc_base = devm_request_and_ioremap(&pdev->dev, res); | 1137 | gpmc_base = devm_ioremap_resource(&pdev->dev, res); |
1138 | if (!gpmc_base) { | 1138 | if (IS_ERR(gpmc_base)) |
1139 | dev_err(&pdev->dev, "error: request memory / ioremap\n"); | 1139 | return PTR_ERR(gpmc_base); |
1140 | return -EADDRNOTAVAIL; | ||
1141 | } | ||
1142 | 1140 | ||
1143 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1141 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
1144 | if (res == NULL) | 1142 | if (res == NULL) |
diff --git a/arch/arm/mach-s3c24xx/Kconfig b/arch/arm/mach-s3c24xx/Kconfig index 25df14a9e268..3445c4f42347 100644 --- a/arch/arm/mach-s3c24xx/Kconfig +++ b/arch/arm/mach-s3c24xx/Kconfig | |||
@@ -291,8 +291,8 @@ config MACH_JIVE | |||
291 | Say Y here if you are using the Logitech Jive. | 291 | Say Y here if you are using the Logitech Jive. |
292 | 292 | ||
293 | config MACH_JIVE_SHOW_BOOTLOADER | 293 | config MACH_JIVE_SHOW_BOOTLOADER |
294 | bool "Allow access to bootloader partitions in MTD (EXPERIMENTAL)" | 294 | bool "Allow access to bootloader partitions in MTD" |
295 | depends on MACH_JIVE && EXPERIMENTAL | 295 | depends on MACH_JIVE |
296 | 296 | ||
297 | config MACH_S3C2413 | 297 | config MACH_S3C2413 |
298 | bool | 298 | bool |
diff --git a/arch/arm/mach-tegra/tegra2_emc.c b/arch/arm/mach-tegra/tegra2_emc.c index e18aa2f83ebf..ce7ce42a1ac9 100644 --- a/arch/arm/mach-tegra/tegra2_emc.c +++ b/arch/arm/mach-tegra/tegra2_emc.c | |||
@@ -312,11 +312,9 @@ static int tegra_emc_probe(struct platform_device *pdev) | |||
312 | return -ENOMEM; | 312 | return -ENOMEM; |
313 | } | 313 | } |
314 | 314 | ||
315 | emc_regbase = devm_request_and_ioremap(&pdev->dev, res); | 315 | emc_regbase = devm_ioremap_resource(&pdev->dev, res); |
316 | if (!emc_regbase) { | 316 | if (IS_ERR(emc_regbase)) |
317 | dev_err(&pdev->dev, "failed to remap registers\n"); | 317 | return PTR_ERR(emc_regbase); |
318 | return -ENOMEM; | ||
319 | } | ||
320 | 318 | ||
321 | pdata = pdev->dev.platform_data; | 319 | pdata = pdev->dev.platform_data; |
322 | 320 | ||
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 7b433f3bddca..a0daa2fb5de6 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -808,11 +808,9 @@ static int omap_dm_timer_probe(struct platform_device *pdev) | |||
808 | return -ENOMEM; | 808 | return -ENOMEM; |
809 | } | 809 | } |
810 | 810 | ||
811 | timer->io_base = devm_request_and_ioremap(dev, mem); | 811 | timer->io_base = devm_ioremap_resource(dev, mem); |
812 | if (!timer->io_base) { | 812 | if (IS_ERR(timer->io_base)) |
813 | dev_err(dev, "%s: region already claimed.\n", __func__); | 813 | return PTR_ERR(timer->io_base); |
814 | return -ENOMEM; | ||
815 | } | ||
816 | 814 | ||
817 | if (dev->of_node) { | 815 | if (dev->of_node) { |
818 | if (of_find_property(dev->of_node, "ti,timer-alwon", NULL)) | 816 | if (of_find_property(dev->of_node, "ti,timer-alwon", NULL)) |
diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c index 2d676ab50f73..ca07cb1b155a 100644 --- a/arch/arm/plat-samsung/adc.c +++ b/arch/arm/plat-samsung/adc.c | |||
@@ -386,11 +386,9 @@ static int s3c_adc_probe(struct platform_device *pdev) | |||
386 | return -ENXIO; | 386 | return -ENXIO; |
387 | } | 387 | } |
388 | 388 | ||
389 | adc->regs = devm_request_and_ioremap(dev, regs); | 389 | adc->regs = devm_ioremap_resource(dev, regs); |
390 | if (!adc->regs) { | 390 | if (IS_ERR(adc->regs)) |
391 | dev_err(dev, "failed to map registers\n"); | 391 | return PTR_ERR(adc->regs); |
392 | return -ENXIO; | ||
393 | } | ||
394 | 392 | ||
395 | ret = regulator_enable(adc->vdd); | 393 | ret = regulator_enable(adc->vdd); |
396 | if (ret) | 394 | if (ret) |
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig index 67e4aaad78f5..e98f3248c8aa 100644 --- a/arch/blackfin/Kconfig +++ b/arch/blackfin/Kconfig | |||
@@ -560,8 +560,7 @@ choice | |||
560 | accurate - This option is therefore marked experimental. | 560 | accurate - This option is therefore marked experimental. |
561 | 561 | ||
562 | config BFIN_KERNEL_CLOCK_MEMINIT_CALC | 562 | config BFIN_KERNEL_CLOCK_MEMINIT_CALC |
563 | bool "Calculate Timings (EXPERIMENTAL)" | 563 | bool "Calculate Timings" |
564 | depends on EXPERIMENTAL | ||
565 | 564 | ||
566 | config BFIN_KERNEL_CLOCK_MEMINIT_SPEC | 565 | config BFIN_KERNEL_CLOCK_MEMINIT_SPEC |
567 | bool "Provide accurate Timings based on target SCLK" | 566 | bool "Provide accurate Timings based on target SCLK" |
@@ -1118,7 +1117,7 @@ endchoice | |||
1118 | 1117 | ||
1119 | comment "Memory Protection Unit" | 1118 | comment "Memory Protection Unit" |
1120 | config MPU | 1119 | config MPU |
1121 | bool "Enable the memory protection unit (EXPERIMENTAL)" | 1120 | bool "Enable the memory protection unit" |
1122 | default n | 1121 | default n |
1123 | help | 1122 | help |
1124 | Use the processor's MPU to protect applications from accessing | 1123 | Use the processor's MPU to protect applications from accessing |
@@ -1440,7 +1439,6 @@ config BFIN_CPU_FREQ | |||
1440 | 1439 | ||
1441 | config CPU_VOLTAGE | 1440 | config CPU_VOLTAGE |
1442 | bool "CPU Voltage scaling" | 1441 | bool "CPU Voltage scaling" |
1443 | depends on EXPERIMENTAL | ||
1444 | depends on CPU_FREQ | 1442 | depends on CPU_FREQ |
1445 | default n | 1443 | default n |
1446 | help | 1444 | help |
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig index de43aadcdbc4..af4a486dadcd 100644 --- a/arch/cris/arch-v32/drivers/Kconfig +++ b/arch/cris/arch-v32/drivers/Kconfig | |||
@@ -680,7 +680,7 @@ config ETRAX_SPI_MMC_BOARD | |||
680 | 680 | ||
681 | config SPI_ETRAX_SSER | 681 | config SPI_ETRAX_SSER |
682 | tristate | 682 | tristate |
683 | depends on SPI_MASTER && ETRAX_ARCH_V32 && EXPERIMENTAL | 683 | depends on SPI_MASTER && ETRAX_ARCH_V32 |
684 | select SPI_BITBANG | 684 | select SPI_BITBANG |
685 | help | 685 | help |
686 | This enables using an synchronous serial (sser) port as a | 686 | This enables using an synchronous serial (sser) port as a |
@@ -689,7 +689,7 @@ config SPI_ETRAX_SSER | |||
689 | 689 | ||
690 | config SPI_ETRAX_GPIO | 690 | config SPI_ETRAX_GPIO |
691 | tristate | 691 | tristate |
692 | depends on SPI_MASTER && ETRAX_ARCH_V32 && EXPERIMENTAL | 692 | depends on SPI_MASTER && ETRAX_ARCH_V32 |
693 | select SPI_BITBANG | 693 | select SPI_BITBANG |
694 | help | 694 | help |
695 | This enables using GPIO pins port as a SPI master controller | 695 | This enables using GPIO pins port as a SPI master controller |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 00c2e88f7755..c1b80fb6938d 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -374,8 +374,8 @@ config NR_CPUS | |||
374 | performance hit. | 374 | performance hit. |
375 | 375 | ||
376 | config HOTPLUG_CPU | 376 | config HOTPLUG_CPU |
377 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 377 | bool "Support for hot-pluggable CPUs" |
378 | depends on SMP && EXPERIMENTAL | 378 | depends on SMP |
379 | select HOTPLUG | 379 | select HOTPLUG |
380 | default n | 380 | default n |
381 | ---help--- | 381 | ---help--- |
@@ -554,8 +554,8 @@ config IA64_HP_AML_NFW | |||
554 | source "drivers/sn/Kconfig" | 554 | source "drivers/sn/Kconfig" |
555 | 555 | ||
556 | config KEXEC | 556 | config KEXEC |
557 | bool "kexec system call (EXPERIMENTAL)" | 557 | bool "kexec system call" |
558 | depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) | 558 | depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) |
559 | help | 559 | help |
560 | kexec is a system call that implements the ability to shutdown your | 560 | kexec is a system call that implements the ability to shutdown your |
561 | current kernel, and to start another kernel. It is like a reboot | 561 | current kernel, and to start another kernel. It is like a reboot |
diff --git a/arch/ia64/kvm/Kconfig b/arch/ia64/kvm/Kconfig index e7947528aee6..2cd225f8c68d 100644 --- a/arch/ia64/kvm/Kconfig +++ b/arch/ia64/kvm/Kconfig | |||
@@ -20,7 +20,7 @@ if VIRTUALIZATION | |||
20 | config KVM | 20 | config KVM |
21 | tristate "Kernel-based Virtual Machine (KVM) support" | 21 | tristate "Kernel-based Virtual Machine (KVM) support" |
22 | depends on BROKEN | 22 | depends on BROKEN |
23 | depends on HAVE_KVM && MODULES && EXPERIMENTAL | 23 | depends on HAVE_KVM && MODULES |
24 | # for device assignment: | 24 | # for device assignment: |
25 | depends on PCI | 25 | depends on PCI |
26 | depends on BROKEN | 26 | depends on BROKEN |
diff --git a/arch/ia64/xen/Kconfig b/arch/ia64/xen/Kconfig index 515e0826803a..5d8a06b0ddf7 100644 --- a/arch/ia64/xen/Kconfig +++ b/arch/ia64/xen/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | config XEN | 5 | config XEN |
6 | bool "Xen hypervisor support" | 6 | bool "Xen hypervisor support" |
7 | default y | 7 | default y |
8 | depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB && EXPERIMENTAL | 8 | depends on PARAVIRT && MCKINLEY && IA64_PAGE_SIZE_16KB |
9 | select XEN_XENCOMM | 9 | select XEN_XENCOMM |
10 | select NO_IDLE_HZ | 10 | select NO_IDLE_HZ |
11 | # followings are required to save/restore. | 11 | # followings are required to save/restore. |
diff --git a/arch/microblaze/platform/Kconfig.platform b/arch/microblaze/platform/Kconfig.platform index 669c7eec293e..b1747211b8b1 100644 --- a/arch/microblaze/platform/Kconfig.platform +++ b/arch/microblaze/platform/Kconfig.platform | |||
@@ -20,7 +20,7 @@ endchoice | |||
20 | 20 | ||
21 | config SELFMOD | 21 | config SELFMOD |
22 | bool "Use self modified code for intc/timer" | 22 | bool "Use self modified code for intc/timer" |
23 | depends on EXPERIMENTAL && NO_MMU | 23 | depends on NO_MMU |
24 | default n | 24 | default n |
25 | help | 25 | help |
26 | This choice enables self-modified code for interrupt controller | 26 | This choice enables self-modified code for interrupt controller |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 9becc44d9d7a..5d7170bfeb28 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -169,7 +169,7 @@ config MACH_DECSTATION | |||
169 | select SYS_HAS_CPU_R3000 | 169 | select SYS_HAS_CPU_R3000 |
170 | select SYS_HAS_CPU_R4X00 | 170 | select SYS_HAS_CPU_R4X00 |
171 | select SYS_SUPPORTS_32BIT_KERNEL | 171 | select SYS_SUPPORTS_32BIT_KERNEL |
172 | select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL | 172 | select SYS_SUPPORTS_64BIT_KERNEL |
173 | select SYS_SUPPORTS_LITTLE_ENDIAN | 173 | select SYS_SUPPORTS_LITTLE_ENDIAN |
174 | select SYS_SUPPORTS_128HZ | 174 | select SYS_SUPPORTS_128HZ |
175 | select SYS_SUPPORTS_256HZ | 175 | select SYS_SUPPORTS_256HZ |
@@ -205,7 +205,7 @@ config MACH_JAZZ | |||
205 | select ISA | 205 | select ISA |
206 | select SYS_HAS_CPU_R4X00 | 206 | select SYS_HAS_CPU_R4X00 |
207 | select SYS_SUPPORTS_32BIT_KERNEL | 207 | select SYS_SUPPORTS_32BIT_KERNEL |
208 | select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL | 208 | select SYS_SUPPORTS_64BIT_KERNEL |
209 | select SYS_SUPPORTS_100HZ | 209 | select SYS_SUPPORTS_100HZ |
210 | help | 210 | help |
211 | This a family of machines based on the MIPS R4030 chipset which was | 211 | This a family of machines based on the MIPS R4030 chipset which was |
@@ -395,7 +395,6 @@ config PNX8550_STB810 | |||
395 | 395 | ||
396 | config PMC_MSP | 396 | config PMC_MSP |
397 | bool "PMC-Sierra MSP chipsets" | 397 | bool "PMC-Sierra MSP chipsets" |
398 | depends on EXPERIMENTAL | ||
399 | select CEVT_R4K | 398 | select CEVT_R4K |
400 | select CSRC_R4K | 399 | select CSRC_R4K |
401 | select DMA_NONCOHERENT | 400 | select DMA_NONCOHERENT |
@@ -494,8 +493,7 @@ config SGI_IP27 | |||
494 | here. | 493 | here. |
495 | 494 | ||
496 | config SGI_IP28 | 495 | config SGI_IP28 |
497 | bool "SGI IP28 (Indigo2 R10k) (EXPERIMENTAL)" | 496 | bool "SGI IP28 (Indigo2 R10k)" |
498 | depends on EXPERIMENTAL | ||
499 | select FW_ARC | 497 | select FW_ARC |
500 | select FW_ARC64 | 498 | select FW_ARC64 |
501 | select BOOT_ELF64 | 499 | select BOOT_ELF64 |
@@ -553,7 +551,6 @@ config SGI_IP32 | |||
553 | 551 | ||
554 | config SIBYTE_CRHINE | 552 | config SIBYTE_CRHINE |
555 | bool "Sibyte BCM91120C-CRhine" | 553 | bool "Sibyte BCM91120C-CRhine" |
556 | depends on EXPERIMENTAL | ||
557 | select BOOT_ELF32 | 554 | select BOOT_ELF32 |
558 | select DMA_COHERENT | 555 | select DMA_COHERENT |
559 | select SIBYTE_BCM1120 | 556 | select SIBYTE_BCM1120 |
@@ -564,7 +561,6 @@ config SIBYTE_CRHINE | |||
564 | 561 | ||
565 | config SIBYTE_CARMEL | 562 | config SIBYTE_CARMEL |
566 | bool "Sibyte BCM91120x-Carmel" | 563 | bool "Sibyte BCM91120x-Carmel" |
567 | depends on EXPERIMENTAL | ||
568 | select BOOT_ELF32 | 564 | select BOOT_ELF32 |
569 | select DMA_COHERENT | 565 | select DMA_COHERENT |
570 | select SIBYTE_BCM1120 | 566 | select SIBYTE_BCM1120 |
@@ -575,7 +571,6 @@ config SIBYTE_CARMEL | |||
575 | 571 | ||
576 | config SIBYTE_CRHONE | 572 | config SIBYTE_CRHONE |
577 | bool "Sibyte BCM91125C-CRhone" | 573 | bool "Sibyte BCM91125C-CRhone" |
578 | depends on EXPERIMENTAL | ||
579 | select BOOT_ELF32 | 574 | select BOOT_ELF32 |
580 | select DMA_COHERENT | 575 | select DMA_COHERENT |
581 | select SIBYTE_BCM1125 | 576 | select SIBYTE_BCM1125 |
@@ -587,7 +582,6 @@ config SIBYTE_CRHONE | |||
587 | 582 | ||
588 | config SIBYTE_RHONE | 583 | config SIBYTE_RHONE |
589 | bool "Sibyte BCM91125E-Rhone" | 584 | bool "Sibyte BCM91125E-Rhone" |
590 | depends on EXPERIMENTAL | ||
591 | select BOOT_ELF32 | 585 | select BOOT_ELF32 |
592 | select DMA_COHERENT | 586 | select DMA_COHERENT |
593 | select SIBYTE_BCM1125H | 587 | select SIBYTE_BCM1125H |
@@ -612,7 +606,6 @@ config SIBYTE_SWARM | |||
612 | 606 | ||
613 | config SIBYTE_LITTLESUR | 607 | config SIBYTE_LITTLESUR |
614 | bool "Sibyte BCM91250C2-LittleSur" | 608 | bool "Sibyte BCM91250C2-LittleSur" |
615 | depends on EXPERIMENTAL | ||
616 | select BOOT_ELF32 | 609 | select BOOT_ELF32 |
617 | select DMA_COHERENT | 610 | select DMA_COHERENT |
618 | select HAVE_PATA_PLATFORM | 611 | select HAVE_PATA_PLATFORM |
@@ -626,7 +619,6 @@ config SIBYTE_LITTLESUR | |||
626 | 619 | ||
627 | config SIBYTE_SENTOSA | 620 | config SIBYTE_SENTOSA |
628 | bool "Sibyte BCM91250E-Sentosa" | 621 | bool "Sibyte BCM91250E-Sentosa" |
629 | depends on EXPERIMENTAL | ||
630 | select BOOT_ELF32 | 622 | select BOOT_ELF32 |
631 | select DMA_COHERENT | 623 | select DMA_COHERENT |
632 | select NR_CPUS_DEFAULT_2 | 624 | select NR_CPUS_DEFAULT_2 |
@@ -675,7 +667,7 @@ config SNI_RM | |||
675 | select R5000_CPU_SCACHE | 667 | select R5000_CPU_SCACHE |
676 | select SYS_HAS_EARLY_PRINTK | 668 | select SYS_HAS_EARLY_PRINTK |
677 | select SYS_SUPPORTS_32BIT_KERNEL | 669 | select SYS_SUPPORTS_32BIT_KERNEL |
678 | select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL | 670 | select SYS_SUPPORTS_64BIT_KERNEL |
679 | select SYS_SUPPORTS_BIG_ENDIAN | 671 | select SYS_SUPPORTS_BIG_ENDIAN |
680 | select SYS_SUPPORTS_HIGHMEM | 672 | select SYS_SUPPORTS_HIGHMEM |
681 | select SYS_SUPPORTS_LITTLE_ENDIAN | 673 | select SYS_SUPPORTS_LITTLE_ENDIAN |
@@ -779,7 +771,6 @@ config CAVIUM_OCTEON_REFERENCE_BOARD | |||
779 | 771 | ||
780 | config NLM_XLR_BOARD | 772 | config NLM_XLR_BOARD |
781 | bool "Netlogic XLR/XLS based systems" | 773 | bool "Netlogic XLR/XLS based systems" |
782 | depends on EXPERIMENTAL | ||
783 | select BOOT_ELF32 | 774 | select BOOT_ELF32 |
784 | select NLM_COMMON | 775 | select NLM_COMMON |
785 | select SYS_HAS_CPU_XLR | 776 | select SYS_HAS_CPU_XLR |
@@ -808,7 +799,6 @@ config NLM_XLR_BOARD | |||
808 | 799 | ||
809 | config NLM_XLP_BOARD | 800 | config NLM_XLP_BOARD |
810 | bool "Netlogic XLP based systems" | 801 | bool "Netlogic XLP based systems" |
811 | depends on EXPERIMENTAL | ||
812 | select BOOT_ELF32 | 802 | select BOOT_ELF32 |
813 | select NLM_COMMON | 803 | select NLM_COMMON |
814 | select SYS_HAS_CPU_XLP | 804 | select SYS_HAS_CPU_XLP |
@@ -1374,7 +1364,6 @@ config CPU_R5500 | |||
1374 | 1364 | ||
1375 | config CPU_R6000 | 1365 | config CPU_R6000 |
1376 | bool "R6000" | 1366 | bool "R6000" |
1377 | depends on EXPERIMENTAL | ||
1378 | depends on SYS_HAS_CPU_R6000 | 1367 | depends on SYS_HAS_CPU_R6000 |
1379 | select CPU_SUPPORTS_32BIT_KERNEL | 1368 | select CPU_SUPPORTS_32BIT_KERNEL |
1380 | help | 1369 | help |
@@ -1392,7 +1381,6 @@ config CPU_NEVADA | |||
1392 | 1381 | ||
1393 | config CPU_R8000 | 1382 | config CPU_R8000 |
1394 | bool "R8000" | 1383 | bool "R8000" |
1395 | depends on EXPERIMENTAL | ||
1396 | depends on SYS_HAS_CPU_R8000 | 1384 | depends on SYS_HAS_CPU_R8000 |
1397 | select CPU_HAS_PREFETCH | 1385 | select CPU_HAS_PREFETCH |
1398 | select CPU_SUPPORTS_64BIT_KERNEL | 1386 | select CPU_SUPPORTS_64BIT_KERNEL |
@@ -1767,7 +1755,7 @@ config PAGE_SIZE_4KB | |||
1767 | 1755 | ||
1768 | config PAGE_SIZE_8KB | 1756 | config PAGE_SIZE_8KB |
1769 | bool "8kB" | 1757 | bool "8kB" |
1770 | depends on (EXPERIMENTAL && CPU_R8000) || CPU_CAVIUM_OCTEON | 1758 | depends on CPU_R8000 || CPU_CAVIUM_OCTEON |
1771 | help | 1759 | help |
1772 | Using 8kB page size will result in higher performance kernel at | 1760 | Using 8kB page size will result in higher performance kernel at |
1773 | the price of higher memory consumption. This option is available | 1761 | the price of higher memory consumption. This option is available |
@@ -1794,7 +1782,7 @@ config PAGE_SIZE_32KB | |||
1794 | 1782 | ||
1795 | config PAGE_SIZE_64KB | 1783 | config PAGE_SIZE_64KB |
1796 | bool "64kB" | 1784 | bool "64kB" |
1797 | depends on EXPERIMENTAL && !CPU_R3000 && !CPU_TX39XX | 1785 | depends on !CPU_R3000 && !CPU_TX39XX |
1798 | help | 1786 | help |
1799 | Using 64kB page size will result in higher performance kernel at | 1787 | Using 64kB page size will result in higher performance kernel at |
1800 | the price of higher memory consumption. This option is available on | 1788 | the price of higher memory consumption. This option is available on |
@@ -2310,8 +2298,7 @@ config HZ | |||
2310 | source "kernel/Kconfig.preempt" | 2298 | source "kernel/Kconfig.preempt" |
2311 | 2299 | ||
2312 | config KEXEC | 2300 | config KEXEC |
2313 | bool "Kexec system call (EXPERIMENTAL)" | 2301 | bool "Kexec system call" |
2314 | depends on EXPERIMENTAL | ||
2315 | help | 2302 | help |
2316 | kexec is a system call that implements the ability to shutdown your | 2303 | kexec is a system call that implements the ability to shutdown your |
2317 | current kernel, and to start another kernel. It is like a reboot | 2304 | current kernel, and to start another kernel. It is like a reboot |
diff --git a/arch/mips/jazz/Kconfig b/arch/mips/jazz/Kconfig index 1f372b0d2559..fb1e072da30b 100644 --- a/arch/mips/jazz/Kconfig +++ b/arch/mips/jazz/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config ACER_PICA_61 | 1 | config ACER_PICA_61 |
2 | bool "Support for Acer PICA 1 chipset (EXPERIMENTAL)" | 2 | bool "Support for Acer PICA 1 chipset" |
3 | depends on MACH_JAZZ && EXPERIMENTAL | 3 | depends on MACH_JAZZ |
4 | select DMA_NONCOHERENT | 4 | select DMA_NONCOHERENT |
5 | select SYS_SUPPORTS_LITTLE_ENDIAN | 5 | select SYS_SUPPORTS_LITTLE_ENDIAN |
6 | help | 6 | help |
@@ -13,7 +13,7 @@ config MIPS_MAGNUM_4000 | |||
13 | bool "Support for MIPS Magnum 4000" | 13 | bool "Support for MIPS Magnum 4000" |
14 | depends on MACH_JAZZ | 14 | depends on MACH_JAZZ |
15 | select DMA_NONCOHERENT | 15 | select DMA_NONCOHERENT |
16 | select SYS_SUPPORTS_BIG_ENDIAN if EXPERIMENTAL | 16 | select SYS_SUPPORTS_BIG_ENDIAN |
17 | select SYS_SUPPORTS_LITTLE_ENDIAN | 17 | select SYS_SUPPORTS_LITTLE_ENDIAN |
18 | help | 18 | help |
19 | This is a machine with a R4000 100 MHz CPU. To compile a Linux | 19 | This is a machine with a R4000 100 MHz CPU. To compile a Linux |
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c index e44a1866653f..08f7ebd9c774 100644 --- a/arch/mips/lantiq/xway/dma.c +++ b/arch/mips/lantiq/xway/dma.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/dma-mapping.h> | 21 | #include <linux/dma-mapping.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/clk.h> | 23 | #include <linux/clk.h> |
24 | #include <linux/err.h> | ||
24 | 25 | ||
25 | #include <lantiq_soc.h> | 26 | #include <lantiq_soc.h> |
26 | #include <xway_dma.h> | 27 | #include <xway_dma.h> |
@@ -223,8 +224,8 @@ ltq_dma_init(struct platform_device *pdev) | |||
223 | panic("Failed to get dma resource"); | 224 | panic("Failed to get dma resource"); |
224 | 225 | ||
225 | /* remap dma register range */ | 226 | /* remap dma register range */ |
226 | ltq_dma_membase = devm_request_and_ioremap(&pdev->dev, res); | 227 | ltq_dma_membase = devm_ioremap_resource(&pdev->dev, res); |
227 | if (!ltq_dma_membase) | 228 | if (IS_ERR(ltq_dma_membase)) |
228 | panic("Failed to remap dma resource"); | 229 | panic("Failed to remap dma resource"); |
229 | 230 | ||
230 | /* power up and reset the dma engine */ | 231 | /* power up and reset the dma engine */ |
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c index e30b1ed1b936..9861c8669fab 100644 --- a/arch/mips/lantiq/xway/gptu.c +++ b/arch/mips/lantiq/xway/gptu.c | |||
@@ -150,11 +150,9 @@ static int gptu_probe(struct platform_device *pdev) | |||
150 | } | 150 | } |
151 | 151 | ||
152 | /* remap gptu register range */ | 152 | /* remap gptu register range */ |
153 | gptu_membase = devm_request_and_ioremap(&pdev->dev, res); | 153 | gptu_membase = devm_ioremap_resource(&pdev->dev, res); |
154 | if (!gptu_membase) { | 154 | if (IS_ERR(gptu_membase)) |
155 | dev_err(&pdev->dev, "Failed to remap resource\n"); | 155 | return PTR_ERR(gptu_membase); |
156 | return -ENOMEM; | ||
157 | } | ||
158 | 156 | ||
159 | /* enable our clock */ | 157 | /* enable our clock */ |
160 | clk = clk_get(&pdev->dev, NULL); | 158 | clk = clk_get(&pdev->dev, NULL); |
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c index 95681789b51e..910fb4c20b9e 100644 --- a/arch/mips/pci/pci-lantiq.c +++ b/arch/mips/pci/pci-lantiq.c | |||
@@ -214,13 +214,13 @@ static int ltq_pci_probe(struct platform_device *pdev) | |||
214 | return -EINVAL; | 214 | return -EINVAL; |
215 | } | 215 | } |
216 | 216 | ||
217 | ltq_pci_membase = devm_request_and_ioremap(&pdev->dev, res_bridge); | 217 | ltq_pci_membase = devm_ioremap_resource(&pdev->dev, res_bridge); |
218 | ltq_pci_mapped_cfg = devm_request_and_ioremap(&pdev->dev, res_cfg); | 218 | if (IS_ERR(ltq_pci_membase)) |
219 | return PTR_ERR(ltq_pci_membase); | ||
219 | 220 | ||
220 | if (!ltq_pci_membase || !ltq_pci_mapped_cfg) { | 221 | ltq_pci_mapped_cfg = devm_ioremap_resource(&pdev->dev, res_cfg); |
221 | dev_err(&pdev->dev, "failed to remap resources\n"); | 222 | if (IS_ERR(ltq_pci_mapped_cfg)) |
222 | return -ENOMEM; | 223 | return PTR_ERR(ltq_pci_mapped_cfg); |
223 | } | ||
224 | 224 | ||
225 | ltq_pci_startup(pdev); | 225 | ltq_pci_startup(pdev); |
226 | 226 | ||
diff --git a/arch/mips/sgi-ip27/Kconfig b/arch/mips/sgi-ip27/Kconfig index 4b2ea282b9c7..4d8705a65e4a 100644 --- a/arch/mips/sgi-ip27/Kconfig +++ b/arch/mips/sgi-ip27/Kconfig | |||
@@ -13,7 +13,6 @@ config SGI_SN_M_MODE | |||
13 | 13 | ||
14 | config SGI_SN_N_MODE | 14 | config SGI_SN_N_MODE |
15 | bool "IP27 N-Mode" | 15 | bool "IP27 N-Mode" |
16 | depends on EXPERIMENTAL | ||
17 | help | 16 | help |
18 | The nodes of Origin, Onyx, Fuel and Tezro systems can be configured | 17 | The nodes of Origin, Onyx, Fuel and Tezro systems can be configured |
19 | in either N-Modes which allows for more nodes or M-Mode which allows | 18 | in either N-Modes which allows for more nodes or M-Mode which allows |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig index a32e34ecda9e..9f2820659da2 100644 --- a/arch/parisc/Kconfig +++ b/arch/parisc/Kconfig | |||
@@ -192,12 +192,12 @@ config PARISC_PAGE_SIZE_4KB | |||
192 | If you don't know what to do, choose 4KB. | 192 | If you don't know what to do, choose 4KB. |
193 | 193 | ||
194 | config PARISC_PAGE_SIZE_16KB | 194 | config PARISC_PAGE_SIZE_16KB |
195 | bool "16KB (EXPERIMENTAL)" | 195 | bool "16KB" |
196 | depends on PA8X00 && EXPERIMENTAL | 196 | depends on PA8X00 |
197 | 197 | ||
198 | config PARISC_PAGE_SIZE_64KB | 198 | config PARISC_PAGE_SIZE_64KB |
199 | bool "64KB (EXPERIMENTAL)" | 199 | bool "64KB" |
200 | depends on PA8X00 && EXPERIMENTAL | 200 | depends on PA8X00 |
201 | 201 | ||
202 | endchoice | 202 | endchoice |
203 | 203 | ||
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 561ccca7b1a7..e7fb8edb629b 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig | |||
@@ -332,7 +332,7 @@ config SWIOTLB | |||
332 | 332 | ||
333 | config HOTPLUG_CPU | 333 | config HOTPLUG_CPU |
334 | bool "Support for enabling/disabling CPUs" | 334 | bool "Support for enabling/disabling CPUs" |
335 | depends on SMP && HOTPLUG && EXPERIMENTAL && (PPC_PSERIES || \ | 335 | depends on SMP && HOTPLUG && (PPC_PSERIES || \ |
336 | PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC)) | 336 | PPC_PMAC || PPC_POWERNV || (PPC_85xx && !PPC_E500MC)) |
337 | ---help--- | 337 | ---help--- |
338 | Say Y here to be able to disable and re-enable individual | 338 | Say Y here to be able to disable and re-enable individual |
@@ -354,8 +354,8 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE | |||
354 | def_bool y | 354 | def_bool y |
355 | 355 | ||
356 | config KEXEC | 356 | config KEXEC |
357 | bool "kexec system call (EXPERIMENTAL)" | 357 | bool "kexec system call" |
358 | depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) && EXPERIMENTAL | 358 | depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) |
359 | help | 359 | help |
360 | kexec is a system call that implements the ability to shutdown your | 360 | kexec is a system call that implements the ability to shutdown your |
361 | current kernel, and to start another kernel. It is like a reboot | 361 | current kernel, and to start another kernel. It is like a reboot |
@@ -850,8 +850,8 @@ config LOWMEM_CAM_NUM | |||
850 | default 3 | 850 | default 3 |
851 | 851 | ||
852 | config DYNAMIC_MEMSTART | 852 | config DYNAMIC_MEMSTART |
853 | bool "Enable page aligned dynamic load address for kernel (EXPERIMENTAL)" | 853 | bool "Enable page aligned dynamic load address for kernel" |
854 | depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) | 854 | depends on ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x) |
855 | select NONSTATIC_KERNEL | 855 | select NONSTATIC_KERNEL |
856 | help | 856 | help |
857 | This option enables the kernel to be loaded at any page aligned | 857 | This option enables the kernel to be loaded at any page aligned |
@@ -868,8 +868,8 @@ config DYNAMIC_MEMSTART | |||
868 | This option is overridden by CONFIG_RELOCATABLE | 868 | This option is overridden by CONFIG_RELOCATABLE |
869 | 869 | ||
870 | config RELOCATABLE | 870 | config RELOCATABLE |
871 | bool "Build a relocatable kernel (EXPERIMENTAL)" | 871 | bool "Build a relocatable kernel" |
872 | depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && 44x | 872 | depends on ADVANCED_OPTIONS && FLATMEM && 44x |
873 | select NONSTATIC_KERNEL | 873 | select NONSTATIC_KERNEL |
874 | help | 874 | help |
875 | This builds a kernel image that is capable of running at the | 875 | This builds a kernel image that is capable of running at the |
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig index 4730c953f435..63c67ec72e43 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig | |||
@@ -41,7 +41,7 @@ config KVM_BOOK3S_PR | |||
41 | 41 | ||
42 | config KVM_BOOK3S_32 | 42 | config KVM_BOOK3S_32 |
43 | tristate "KVM support for PowerPC book3s_32 processors" | 43 | tristate "KVM support for PowerPC book3s_32 processors" |
44 | depends on EXPERIMENTAL && PPC_BOOK3S_32 && !SMP && !PTE_64BIT | 44 | depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT |
45 | select KVM | 45 | select KVM |
46 | select KVM_BOOK3S_32_HANDLER | 46 | select KVM_BOOK3S_32_HANDLER |
47 | select KVM_BOOK3S_PR | 47 | select KVM_BOOK3S_PR |
@@ -56,7 +56,7 @@ config KVM_BOOK3S_32 | |||
56 | 56 | ||
57 | config KVM_BOOK3S_64 | 57 | config KVM_BOOK3S_64 |
58 | tristate "KVM support for PowerPC book3s_64 processors" | 58 | tristate "KVM support for PowerPC book3s_64 processors" |
59 | depends on EXPERIMENTAL && PPC_BOOK3S_64 | 59 | depends on PPC_BOOK3S_64 |
60 | select KVM_BOOK3S_64_HANDLER | 60 | select KVM_BOOK3S_64_HANDLER |
61 | select KVM | 61 | select KVM |
62 | ---help--- | 62 | ---help--- |
@@ -97,7 +97,7 @@ config KVM_BOOKE_HV | |||
97 | 97 | ||
98 | config KVM_440 | 98 | config KVM_440 |
99 | bool "KVM support for PowerPC 440 processors" | 99 | bool "KVM support for PowerPC 440 processors" |
100 | depends on EXPERIMENTAL && 44x | 100 | depends on 44x |
101 | select KVM | 101 | select KVM |
102 | select KVM_MMIO | 102 | select KVM_MMIO |
103 | ---help--- | 103 | ---help--- |
@@ -122,7 +122,7 @@ config KVM_EXIT_TIMING | |||
122 | 122 | ||
123 | config KVM_E500V2 | 123 | config KVM_E500V2 |
124 | bool "KVM support for PowerPC E500v2 processors" | 124 | bool "KVM support for PowerPC E500v2 processors" |
125 | depends on EXPERIMENTAL && E500 && !PPC_E500MC | 125 | depends on E500 && !PPC_E500MC |
126 | select KVM | 126 | select KVM |
127 | select KVM_MMIO | 127 | select KVM_MMIO |
128 | select MMU_NOTIFIER | 128 | select MMU_NOTIFIER |
@@ -137,7 +137,7 @@ config KVM_E500V2 | |||
137 | 137 | ||
138 | config KVM_E500MC | 138 | config KVM_E500MC |
139 | bool "KVM support for PowerPC E500MC/E5500 processors" | 139 | bool "KVM support for PowerPC E500MC/E5500 processors" |
140 | depends on EXPERIMENTAL && PPC_E500MC | 140 | depends on PPC_E500MC |
141 | select KVM | 141 | select KVM |
142 | select KVM_MMIO | 142 | select KVM_MMIO |
143 | select KVM_BOOKE_HV | 143 | select KVM_BOOKE_HV |
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 02d02a09942d..92ab60a62711 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -277,7 +277,6 @@ config P5040_DS | |||
277 | 277 | ||
278 | config PPC_QEMU_E500 | 278 | config PPC_QEMU_E500 |
279 | bool "QEMU generic e500 platform" | 279 | bool "QEMU generic e500 platform" |
280 | depends on EXPERIMENTAL | ||
281 | select DEFAULT_UIMAGE | 280 | select DEFAULT_UIMAGE |
282 | help | 281 | help |
283 | This option enables support for running as a QEMU guest using | 282 | This option enables support for running as a QEMU guest using |
diff --git a/arch/powerpc/platforms/cell/Kconfig b/arch/powerpc/platforms/cell/Kconfig index 2e7ff0c5cf42..53aaefeb3386 100644 --- a/arch/powerpc/platforms/cell/Kconfig +++ b/arch/powerpc/platforms/cell/Kconfig | |||
@@ -124,7 +124,7 @@ config CBE_CPUFREQ | |||
124 | 124 | ||
125 | config CBE_CPUFREQ_PMI_ENABLE | 125 | config CBE_CPUFREQ_PMI_ENABLE |
126 | bool "CBE frequency scaling using PMI interface" | 126 | bool "CBE frequency scaling using PMI interface" |
127 | depends on CBE_CPUFREQ && EXPERIMENTAL | 127 | depends on CBE_CPUFREQ |
128 | default n | 128 | default n |
129 | help | 129 | help |
130 | Select this, if you want to use the PMI interface | 130 | Select this, if you want to use the PMI interface |
diff --git a/arch/powerpc/platforms/ps3/Kconfig b/arch/powerpc/platforms/ps3/Kconfig index 46b7f0232523..e87c19473973 100644 --- a/arch/powerpc/platforms/ps3/Kconfig +++ b/arch/powerpc/platforms/ps3/Kconfig | |||
@@ -48,7 +48,7 @@ config PS3_HTAB_SIZE | |||
48 | system will have optimal runtime performance. | 48 | system will have optimal runtime performance. |
49 | 49 | ||
50 | config PS3_DYNAMIC_DMA | 50 | config PS3_DYNAMIC_DMA |
51 | depends on PPC_PS3 && EXPERIMENTAL | 51 | depends on PPC_PS3 |
52 | bool "PS3 Platform dynamic DMA page table management" | 52 | bool "PS3 Platform dynamic DMA page table management" |
53 | default n | 53 | default n |
54 | help | 54 | help |
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index c15ba7d1be64..27c91c38d1a1 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -717,8 +717,8 @@ source "arch/s390/kvm/Kconfig" | |||
717 | 717 | ||
718 | config S390_GUEST | 718 | config S390_GUEST |
719 | def_bool y | 719 | def_bool y |
720 | prompt "s390 support for virtio devices (EXPERIMENTAL)" | 720 | prompt "s390 support for virtio devices" |
721 | depends on 64BIT && EXPERIMENTAL | 721 | depends on 64BIT |
722 | select VIRTUALIZATION | 722 | select VIRTUALIZATION |
723 | select VIRTIO | 723 | select VIRTIO |
724 | select VIRTIO_CONSOLE | 724 | select VIRTIO_CONSOLE |
diff --git a/arch/s390/kvm/Kconfig b/arch/s390/kvm/Kconfig index b58dd869cb32..60f9f8ae0fc8 100644 --- a/arch/s390/kvm/Kconfig +++ b/arch/s390/kvm/Kconfig | |||
@@ -18,7 +18,7 @@ if VIRTUALIZATION | |||
18 | config KVM | 18 | config KVM |
19 | def_tristate y | 19 | def_tristate y |
20 | prompt "Kernel-based Virtual Machine (KVM) support" | 20 | prompt "Kernel-based Virtual Machine (KVM) support" |
21 | depends on HAVE_KVM && EXPERIMENTAL | 21 | depends on HAVE_KVM |
22 | select PREEMPT_NOTIFIERS | 22 | select PREEMPT_NOTIFIERS |
23 | select ANON_INODES | 23 | select ANON_INODES |
24 | select HAVE_KVM_CPU_RELAX_INTERCEPT | 24 | select HAVE_KVM_CPU_RELAX_INTERCEPT |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 9c833c585871..87f720037ff7 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -644,7 +644,7 @@ source kernel/Kconfig.hz | |||
644 | 644 | ||
645 | config KEXEC | 645 | config KEXEC |
646 | bool "kexec system call (EXPERIMENTAL)" | 646 | bool "kexec system call (EXPERIMENTAL)" |
647 | depends on SUPERH32 && EXPERIMENTAL && MMU | 647 | depends on SUPERH32 && MMU |
648 | help | 648 | help |
649 | kexec is a system call that implements the ability to shutdown your | 649 | kexec is a system call that implements the ability to shutdown your |
650 | current kernel, and to start another kernel. It is like a reboot | 650 | current kernel, and to start another kernel. It is like a reboot |
@@ -661,7 +661,7 @@ config KEXEC | |||
661 | 661 | ||
662 | config CRASH_DUMP | 662 | config CRASH_DUMP |
663 | bool "kernel crash dumps (EXPERIMENTAL)" | 663 | bool "kernel crash dumps (EXPERIMENTAL)" |
664 | depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP | 664 | depends on SUPERH32 && BROKEN_ON_SMP |
665 | help | 665 | help |
666 | Generate crash dump after being started by kexec. | 666 | Generate crash dump after being started by kexec. |
667 | This should be normally only set in special crash dump kernels | 667 | This should be normally only set in special crash dump kernels |
@@ -675,7 +675,7 @@ config CRASH_DUMP | |||
675 | 675 | ||
676 | config KEXEC_JUMP | 676 | config KEXEC_JUMP |
677 | bool "kexec jump (EXPERIMENTAL)" | 677 | bool "kexec jump (EXPERIMENTAL)" |
678 | depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL | 678 | depends on SUPERH32 && KEXEC && HIBERNATION |
679 | help | 679 | help |
680 | Jump between original kernel and kexeced kernel and invoke | 680 | Jump between original kernel and kexeced kernel and invoke |
681 | code via KEXEC | 681 | code via KEXEC |
@@ -709,7 +709,7 @@ config SECCOMP | |||
709 | 709 | ||
710 | config CC_STACKPROTECTOR | 710 | config CC_STACKPROTECTOR |
711 | bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" | 711 | bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)" |
712 | depends on SUPERH32 && EXPERIMENTAL | 712 | depends on SUPERH32 |
713 | help | 713 | help |
714 | This option turns on the -fstack-protector GCC feature. This | 714 | This option turns on the -fstack-protector GCC feature. This |
715 | feature puts, at the beginning of functions, a canary value on | 715 | feature puts, at the beginning of functions, a canary value on |
@@ -760,7 +760,7 @@ config NR_CPUS | |||
760 | 760 | ||
761 | config HOTPLUG_CPU | 761 | config HOTPLUG_CPU |
762 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" | 762 | bool "Support for hot-pluggable CPUs (EXPERIMENTAL)" |
763 | depends on SMP && HOTPLUG && EXPERIMENTAL | 763 | depends on SMP && HOTPLUG |
764 | help | 764 | help |
765 | Say Y here to experiment with turning CPUs off and on. CPUs | 765 | Say Y here to experiment with turning CPUs off and on. CPUs |
766 | can be controlled through /sys/devices/system/cpu. | 766 | can be controlled through /sys/devices/system/cpu. |
@@ -839,7 +839,7 @@ config ENTRY_OFFSET | |||
839 | 839 | ||
840 | config ROMIMAGE_MMCIF | 840 | config ROMIMAGE_MMCIF |
841 | bool "Include MMCIF loader in romImage (EXPERIMENTAL)" | 841 | bool "Include MMCIF loader in romImage (EXPERIMENTAL)" |
842 | depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL | 842 | depends on CPU_SUBTYPE_SH7724 |
843 | help | 843 | help |
844 | Say Y here to include experimental MMCIF loading code in | 844 | Say Y here to include experimental MMCIF loading code in |
845 | romImage. With this enabled it is possible to write the romImage | 845 | romImage. With this enabled it is possible to write the romImage |
@@ -925,7 +925,6 @@ source "fs/Kconfig.binfmt" | |||
925 | endmenu | 925 | endmenu |
926 | 926 | ||
927 | menu "Power management options (EXPERIMENTAL)" | 927 | menu "Power management options (EXPERIMENTAL)" |
928 | depends on EXPERIMENTAL | ||
929 | 928 | ||
930 | source "kernel/power/Kconfig" | 929 | source "kernel/power/Kconfig" |
931 | 930 | ||
diff --git a/arch/sh/Kconfig.cpu b/arch/sh/Kconfig.cpu index 770ff2d5b94d..05b518e90cf7 100644 --- a/arch/sh/Kconfig.cpu +++ b/arch/sh/Kconfig.cpu | |||
@@ -33,7 +33,7 @@ config SH64_FPU_DENORM_FLUSH | |||
33 | config SH_FPU_EMU | 33 | config SH_FPU_EMU |
34 | def_bool n | 34 | def_bool n |
35 | prompt "FPU emulation support" | 35 | prompt "FPU emulation support" |
36 | depends on !SH_FPU && EXPERIMENTAL | 36 | depends on !SH_FPU |
37 | help | 37 | help |
38 | Selecting this option will enable support for software FPU emulation. | 38 | Selecting this option will enable support for software FPU emulation. |
39 | Most SH-3 users will want to say Y here, whereas most SH-4 users will | 39 | Most SH-3 users will want to say Y here, whereas most SH-4 users will |
@@ -68,7 +68,6 @@ config SH_STORE_QUEUES | |||
68 | 68 | ||
69 | config SPECULATIVE_EXECUTION | 69 | config SPECULATIVE_EXECUTION |
70 | bool "Speculative subroutine return" | 70 | bool "Speculative subroutine return" |
71 | depends on EXPERIMENTAL | ||
72 | depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7786 | 71 | depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || CPU_SUBTYPE_SH7786 |
73 | help | 72 | help |
74 | This enables support for a speculative instruction fetch for | 73 | This enables support for a speculative instruction fetch for |
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index 0f7c852f355c..5a43a871e097 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -83,7 +83,7 @@ config 32BIT | |||
83 | 83 | ||
84 | config PMB | 84 | config PMB |
85 | bool "Support 32-bit physical addressing through PMB" | 85 | bool "Support 32-bit physical addressing through PMB" |
86 | depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP | 86 | depends on MMU && CPU_SH4A && !CPU_SH4AL_DSP |
87 | select 32BIT | 87 | select 32BIT |
88 | select UNCACHED_MAPPING | 88 | select UNCACHED_MAPPING |
89 | help | 89 | help |
@@ -110,7 +110,7 @@ config VSYSCALL | |||
110 | 110 | ||
111 | config NUMA | 111 | config NUMA |
112 | bool "Non Uniform Memory Access (NUMA) Support" | 112 | bool "Non Uniform Memory Access (NUMA) Support" |
113 | depends on MMU && SYS_SUPPORTS_NUMA && EXPERIMENTAL | 113 | depends on MMU && SYS_SUPPORTS_NUMA |
114 | select ARCH_WANT_NUMA_VARIABLE_LOCALITY | 114 | select ARCH_WANT_NUMA_VARIABLE_LOCALITY |
115 | default n | 115 | default n |
116 | help | 116 | help |
diff --git a/arch/tile/kvm/Kconfig b/arch/tile/kvm/Kconfig index 669fcdba31ea..2298cb1daff7 100644 --- a/arch/tile/kvm/Kconfig +++ b/arch/tile/kvm/Kconfig | |||
@@ -18,7 +18,7 @@ if VIRTUALIZATION | |||
18 | 18 | ||
19 | config KVM | 19 | config KVM |
20 | tristate "Kernel-based Virtual Machine (KVM) support" | 20 | tristate "Kernel-based Virtual Machine (KVM) support" |
21 | depends on HAVE_KVM && MODULES && EXPERIMENTAL | 21 | depends on HAVE_KVM && MODULES |
22 | select PREEMPT_NOTIFIERS | 22 | select PREEMPT_NOTIFIERS |
23 | select ANON_INODES | 23 | select ANON_INODES |
24 | ---help--- | 24 | ---help--- |
diff --git a/arch/um/Kconfig.net b/arch/um/Kconfig.net index 3160b1a5adb7..820a56f00332 100644 --- a/arch/um/Kconfig.net +++ b/arch/um/Kconfig.net | |||
@@ -157,7 +157,7 @@ config UML_NET_MCAST | |||
157 | 157 | ||
158 | config UML_NET_PCAP | 158 | config UML_NET_PCAP |
159 | bool "pcap transport" | 159 | bool "pcap transport" |
160 | depends on UML_NET && EXPERIMENTAL | 160 | depends on UML_NET |
161 | help | 161 | help |
162 | The pcap transport makes a pcap packet stream on the host look | 162 | The pcap transport makes a pcap packet stream on the host look |
163 | like an ethernet device inside UML. This is useful for making | 163 | like an ethernet device inside UML. This is useful for making |
diff --git a/arch/um/Kconfig.um b/arch/um/Kconfig.um index bf87f25eb2de..a7520c90f62d 100644 --- a/arch/um/Kconfig.um +++ b/arch/um/Kconfig.um | |||
@@ -45,8 +45,8 @@ config HOSTFS | |||
45 | say Y or M here; otherwise say N. | 45 | say Y or M here; otherwise say N. |
46 | 46 | ||
47 | config HPPFS | 47 | config HPPFS |
48 | tristate "HoneyPot ProcFS (EXPERIMENTAL)" | 48 | tristate "HoneyPot ProcFS" |
49 | depends on EXPERIMENTAL && PROC_FS | 49 | depends on PROC_FS |
50 | help | 50 | help |
51 | hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc | 51 | hppfs (HoneyPot ProcFS) is a filesystem which allows UML /proc |
52 | entries to be overridden, removed, or fabricated from the host. | 52 | entries to be overridden, removed, or fabricated from the host. |
@@ -96,7 +96,7 @@ config MAGIC_SYSRQ | |||
96 | unless you really know what this hack does. | 96 | unless you really know what this hack does. |
97 | 97 | ||
98 | config SMP | 98 | config SMP |
99 | bool "Symmetric multi-processing support (EXPERIMENTAL)" | 99 | bool "Symmetric multi-processing support" |
100 | default n | 100 | default n |
101 | depends on BROKEN | 101 | depends on BROKEN |
102 | help | 102 | help |
@@ -126,7 +126,7 @@ config NR_CPUS | |||
126 | default "32" | 126 | default "32" |
127 | 127 | ||
128 | config HIGHMEM | 128 | config HIGHMEM |
129 | bool "Highmem support (EXPERIMENTAL)" | 129 | bool "Highmem support" |
130 | depends on !64BIT && BROKEN | 130 | depends on !64BIT && BROKEN |
131 | default n | 131 | default n |
132 | help | 132 | help |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f7a27fdb5098..63c0431daa3a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -225,7 +225,7 @@ config ARCH_SUPPORTS_DEBUG_PAGEALLOC | |||
225 | 225 | ||
226 | config HAVE_INTEL_TXT | 226 | config HAVE_INTEL_TXT |
227 | def_bool y | 227 | def_bool y |
228 | depends on EXPERIMENTAL && INTEL_IOMMU && ACPI | 228 | depends on INTEL_IOMMU && ACPI |
229 | 229 | ||
230 | config X86_32_SMP | 230 | config X86_32_SMP |
231 | def_bool y | 231 | def_bool y |
@@ -642,7 +642,7 @@ config PARAVIRT | |||
642 | 642 | ||
643 | config PARAVIRT_SPINLOCKS | 643 | config PARAVIRT_SPINLOCKS |
644 | bool "Paravirtualization layer for spinlocks" | 644 | bool "Paravirtualization layer for spinlocks" |
645 | depends on PARAVIRT && SMP && EXPERIMENTAL | 645 | depends on PARAVIRT && SMP |
646 | ---help--- | 646 | ---help--- |
647 | Paravirtualized spinlocks allow a pvops backend to replace the | 647 | Paravirtualized spinlocks allow a pvops backend to replace the |
648 | spinlock implementation with something virtualization-friendly | 648 | spinlock implementation with something virtualization-friendly |
@@ -754,7 +754,7 @@ config GART_IOMMU | |||
754 | config CALGARY_IOMMU | 754 | config CALGARY_IOMMU |
755 | bool "IBM Calgary IOMMU support" | 755 | bool "IBM Calgary IOMMU support" |
756 | select SWIOTLB | 756 | select SWIOTLB |
757 | depends on X86_64 && PCI && EXPERIMENTAL | 757 | depends on X86_64 && PCI |
758 | ---help--- | 758 | ---help--- |
759 | Support for hardware IOMMUs in IBM's xSeries x366 and x460 | 759 | Support for hardware IOMMUs in IBM's xSeries x366 and x460 |
760 | systems. Needed to run systems with more than 3GB of memory | 760 | systems. Needed to run systems with more than 3GB of memory |
@@ -796,7 +796,7 @@ config IOMMU_HELPER | |||
796 | 796 | ||
797 | config MAXSMP | 797 | config MAXSMP |
798 | bool "Enable Maximum number of SMP Processors and NUMA Nodes" | 798 | bool "Enable Maximum number of SMP Processors and NUMA Nodes" |
799 | depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL | 799 | depends on X86_64 && SMP && DEBUG_KERNEL |
800 | select CPUMASK_OFFSTACK | 800 | select CPUMASK_OFFSTACK |
801 | ---help--- | 801 | ---help--- |
802 | Enable maximum number of CPUS and NUMA Nodes for this architecture. | 802 | Enable maximum number of CPUS and NUMA Nodes for this architecture. |
@@ -1132,7 +1132,6 @@ config HIGHMEM64G | |||
1132 | endchoice | 1132 | endchoice |
1133 | 1133 | ||
1134 | choice | 1134 | choice |
1135 | depends on EXPERIMENTAL | ||
1136 | prompt "Memory split" if EXPERT | 1135 | prompt "Memory split" if EXPERT |
1137 | default VMSPLIT_3G | 1136 | default VMSPLIT_3G |
1138 | depends on X86_32 | 1137 | depends on X86_32 |
@@ -1209,7 +1208,7 @@ config DIRECT_GBPAGES | |||
1209 | config NUMA | 1208 | config NUMA |
1210 | bool "Numa Memory Allocation and Scheduler Support" | 1209 | bool "Numa Memory Allocation and Scheduler Support" |
1211 | depends on SMP | 1210 | depends on SMP |
1212 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL) | 1211 | depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI)) |
1213 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) | 1212 | default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP) |
1214 | ---help--- | 1213 | ---help--- |
1215 | Enable NUMA (Non Uniform Memory Access) support. | 1214 | Enable NUMA (Non Uniform Memory Access) support. |
@@ -1304,7 +1303,7 @@ config ARCH_DISCONTIGMEM_DEFAULT | |||
1304 | 1303 | ||
1305 | config ARCH_SPARSEMEM_ENABLE | 1304 | config ARCH_SPARSEMEM_ENABLE |
1306 | def_bool y | 1305 | def_bool y |
1307 | depends on X86_64 || NUMA || (EXPERIMENTAL && X86_32) || X86_32_NON_STANDARD | 1306 | depends on X86_64 || NUMA || X86_32 || X86_32_NON_STANDARD |
1308 | select SPARSEMEM_STATIC if X86_32 | 1307 | select SPARSEMEM_STATIC if X86_32 |
1309 | select SPARSEMEM_VMEMMAP_ENABLE if X86_64 | 1308 | select SPARSEMEM_VMEMMAP_ENABLE if X86_64 |
1310 | 1309 | ||
@@ -1618,8 +1617,7 @@ config CRASH_DUMP | |||
1618 | For more details see Documentation/kdump/kdump.txt | 1617 | For more details see Documentation/kdump/kdump.txt |
1619 | 1618 | ||
1620 | config KEXEC_JUMP | 1619 | config KEXEC_JUMP |
1621 | bool "kexec jump (EXPERIMENTAL)" | 1620 | bool "kexec jump" |
1622 | depends on EXPERIMENTAL | ||
1623 | depends on KEXEC && HIBERNATION | 1621 | depends on KEXEC && HIBERNATION |
1624 | ---help--- | 1622 | ---help--- |
1625 | Jump between original kernel and kexeced kernel and invoke | 1623 | Jump between original kernel and kexeced kernel and invoke |
@@ -2063,7 +2061,7 @@ config PCI_MMCONFIG | |||
2063 | 2061 | ||
2064 | config PCI_CNB20LE_QUIRK | 2062 | config PCI_CNB20LE_QUIRK |
2065 | bool "Read CNB20LE Host Bridge Windows" if EXPERT | 2063 | bool "Read CNB20LE Host Bridge Windows" if EXPERT |
2066 | depends on PCI && EXPERIMENTAL | 2064 | depends on PCI |
2067 | help | 2065 | help |
2068 | Read the PCI windows out of the CNB20LE host bridge. This allows | 2066 | Read the PCI windows out of the CNB20LE host bridge. This allows |
2069 | PCI hotplug to work on systems with the CNB20LE chipset which do | 2067 | PCI hotplug to work on systems with the CNB20LE chipset which do |
@@ -2267,8 +2265,8 @@ config IA32_AOUT | |||
2267 | Support old a.out binaries in the 32bit emulation. | 2265 | Support old a.out binaries in the 32bit emulation. |
2268 | 2266 | ||
2269 | config X86_X32 | 2267 | config X86_X32 |
2270 | bool "x32 ABI for 64-bit mode (EXPERIMENTAL)" | 2268 | bool "x32 ABI for 64-bit mode" |
2271 | depends on X86_64 && IA32_EMULATION && EXPERIMENTAL | 2269 | depends on X86_64 && IA32_EMULATION |
2272 | ---help--- | 2270 | ---help--- |
2273 | Include code to run binaries for the x32 native 32-bit ABI | 2271 | Include code to run binaries for the x32 native 32-bit ABI |
2274 | for 64-bit processors. An x32 process gets access to the | 2272 | for 64-bit processors. An x32 process gets access to the |
diff --git a/arch/x86/um/Kconfig b/arch/x86/um/Kconfig index 53c90fd412d1..21a13ce1d751 100644 --- a/arch/x86/um/Kconfig +++ b/arch/x86/um/Kconfig | |||
@@ -37,9 +37,8 @@ config RWSEM_GENERIC_SPINLOCK | |||
37 | def_bool !RWSEM_XCHGADD_ALGORITHM | 37 | def_bool !RWSEM_XCHGADD_ALGORITHM |
38 | 38 | ||
39 | config 3_LEVEL_PGTABLES | 39 | config 3_LEVEL_PGTABLES |
40 | bool "Three-level pagetables (EXPERIMENTAL)" if !64BIT | 40 | bool "Three-level pagetables" if !64BIT |
41 | default 64BIT | 41 | default 64BIT |
42 | depends on EXPERIMENTAL | ||
43 | help | 42 | help |
44 | Three-level pagetables will let UML have more than 4G of physical | 43 | Three-level pagetables will let UML have more than 4G of physical |
45 | memory. All the memory that can't be mapped directly will be treated | 44 | memory. All the memory that can't be mapped directly will be treated |
diff --git a/crypto/Kconfig b/crypto/Kconfig index 4641d95651d3..3f37520035dd 100644 --- a/crypto/Kconfig +++ b/crypto/Kconfig | |||
@@ -134,8 +134,8 @@ config CRYPTO_NULL | |||
134 | These are 'Null' algorithms, used by IPsec, which do nothing. | 134 | These are 'Null' algorithms, used by IPsec, which do nothing. |
135 | 135 | ||
136 | config CRYPTO_PCRYPT | 136 | config CRYPTO_PCRYPT |
137 | tristate "Parallel crypto engine (EXPERIMENTAL)" | 137 | tristate "Parallel crypto engine" |
138 | depends on SMP && EXPERIMENTAL | 138 | depends on SMP |
139 | select PADATA | 139 | select PADATA |
140 | select CRYPTO_MANAGER | 140 | select CRYPTO_MANAGER |
141 | select CRYPTO_AEAD | 141 | select CRYPTO_AEAD |
@@ -292,7 +292,6 @@ config CRYPTO_HMAC | |||
292 | 292 | ||
293 | config CRYPTO_XCBC | 293 | config CRYPTO_XCBC |
294 | tristate "XCBC support" | 294 | tristate "XCBC support" |
295 | depends on EXPERIMENTAL | ||
296 | select CRYPTO_HASH | 295 | select CRYPTO_HASH |
297 | select CRYPTO_MANAGER | 296 | select CRYPTO_MANAGER |
298 | help | 297 | help |
@@ -303,7 +302,6 @@ config CRYPTO_XCBC | |||
303 | 302 | ||
304 | config CRYPTO_VMAC | 303 | config CRYPTO_VMAC |
305 | tristate "VMAC support" | 304 | tristate "VMAC support" |
306 | depends on EXPERIMENTAL | ||
307 | select CRYPTO_HASH | 305 | select CRYPTO_HASH |
308 | select CRYPTO_MANAGER | 306 | select CRYPTO_MANAGER |
309 | help | 307 | help |
@@ -932,8 +930,7 @@ config CRYPTO_KHAZAD | |||
932 | <http://www.larc.usp.br/~pbarreto/KhazadPage.html> | 930 | <http://www.larc.usp.br/~pbarreto/KhazadPage.html> |
933 | 931 | ||
934 | config CRYPTO_SALSA20 | 932 | config CRYPTO_SALSA20 |
935 | tristate "Salsa20 stream cipher algorithm (EXPERIMENTAL)" | 933 | tristate "Salsa20 stream cipher algorithm" |
936 | depends on EXPERIMENTAL | ||
937 | select CRYPTO_BLKCIPHER | 934 | select CRYPTO_BLKCIPHER |
938 | help | 935 | help |
939 | Salsa20 stream cipher algorithm. | 936 | Salsa20 stream cipher algorithm. |
@@ -945,9 +942,8 @@ config CRYPTO_SALSA20 | |||
945 | Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> | 942 | Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> |
946 | 943 | ||
947 | config CRYPTO_SALSA20_586 | 944 | config CRYPTO_SALSA20_586 |
948 | tristate "Salsa20 stream cipher algorithm (i586) (EXPERIMENTAL)" | 945 | tristate "Salsa20 stream cipher algorithm (i586)" |
949 | depends on (X86 || UML_X86) && !64BIT | 946 | depends on (X86 || UML_X86) && !64BIT |
950 | depends on EXPERIMENTAL | ||
951 | select CRYPTO_BLKCIPHER | 947 | select CRYPTO_BLKCIPHER |
952 | help | 948 | help |
953 | Salsa20 stream cipher algorithm. | 949 | Salsa20 stream cipher algorithm. |
@@ -959,9 +955,8 @@ config CRYPTO_SALSA20_586 | |||
959 | Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> | 955 | Bernstein <djb@cr.yp.to>. See <http://cr.yp.to/snuffle.html> |
960 | 956 | ||
961 | config CRYPTO_SALSA20_X86_64 | 957 | config CRYPTO_SALSA20_X86_64 |
962 | tristate "Salsa20 stream cipher algorithm (x86_64) (EXPERIMENTAL)" | 958 | tristate "Salsa20 stream cipher algorithm (x86_64)" |
963 | depends on (X86 || UML_X86) && 64BIT | 959 | depends on (X86 || UML_X86) && 64BIT |
964 | depends on EXPERIMENTAL | ||
965 | select CRYPTO_BLKCIPHER | 960 | select CRYPTO_BLKCIPHER |
966 | help | 961 | help |
967 | Salsa20 stream cipher algorithm. | 962 | Salsa20 stream cipher algorithm. |
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 78105b3a5262..1a4ed64586a7 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -176,7 +176,6 @@ config ACPI_FAN | |||
176 | 176 | ||
177 | config ACPI_DOCK | 177 | config ACPI_DOCK |
178 | bool "Dock" | 178 | bool "Dock" |
179 | depends on EXPERIMENTAL | ||
180 | help | 179 | help |
181 | This driver supports ACPI-controlled docking stations and removable | 180 | This driver supports ACPI-controlled docking stations and removable |
182 | drive bays such as the IBM Ultrabay and the Dell Module Bay. | 181 | drive bays such as the IBM Ultrabay and the Dell Module Bay. |
@@ -202,7 +201,7 @@ config ACPI_PROCESSOR | |||
202 | the module will be called processor. | 201 | the module will be called processor. |
203 | config ACPI_IPMI | 202 | config ACPI_IPMI |
204 | tristate "IPMI" | 203 | tristate "IPMI" |
205 | depends on EXPERIMENTAL && IPMI_SI && IPMI_HANDLER | 204 | depends on IPMI_SI && IPMI_HANDLER |
206 | default n | 205 | default n |
207 | help | 206 | help |
208 | This driver enables the ACPI to access the BMC controller. And it | 207 | This driver enables the ACPI to access the BMC controller. And it |
@@ -214,14 +213,13 @@ config ACPI_IPMI | |||
214 | 213 | ||
215 | config ACPI_HOTPLUG_CPU | 214 | config ACPI_HOTPLUG_CPU |
216 | bool | 215 | bool |
217 | depends on EXPERIMENTAL && ACPI_PROCESSOR && HOTPLUG_CPU | 216 | depends on ACPI_PROCESSOR && HOTPLUG_CPU |
218 | select ACPI_CONTAINER | 217 | select ACPI_CONTAINER |
219 | default y | 218 | default y |
220 | 219 | ||
221 | config ACPI_PROCESSOR_AGGREGATOR | 220 | config ACPI_PROCESSOR_AGGREGATOR |
222 | tristate "Processor Aggregator" | 221 | tristate "Processor Aggregator" |
223 | depends on ACPI_PROCESSOR | 222 | depends on ACPI_PROCESSOR |
224 | depends on EXPERIMENTAL | ||
225 | depends on X86 | 223 | depends on X86 |
226 | help | 224 | help |
227 | ACPI 4.0 defines processor Aggregator, which enables OS to perform | 225 | ACPI 4.0 defines processor Aggregator, which enables OS to perform |
@@ -337,8 +335,7 @@ config X86_PM_TIMER | |||
337 | systems require this timer. | 335 | systems require this timer. |
338 | 336 | ||
339 | config ACPI_CONTAINER | 337 | config ACPI_CONTAINER |
340 | bool "Container and Module Devices (EXPERIMENTAL)" | 338 | bool "Container and Module Devices" |
341 | depends on EXPERIMENTAL | ||
342 | default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO) | 339 | default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU || ACPI_HOTPLUG_IO) |
343 | help | 340 | help |
344 | This driver supports ACPI Container and Module devices (IDs | 341 | This driver supports ACPI Container and Module devices (IDs |
diff --git a/drivers/amba/tegra-ahb.c b/drivers/amba/tegra-ahb.c index 536c166f4253..ab92785f54dc 100644 --- a/drivers/amba/tegra-ahb.c +++ b/drivers/amba/tegra-ahb.c | |||
@@ -20,6 +20,7 @@ | |||
20 | * | 20 | * |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/err.h> | ||
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
24 | #include <linux/module.h> | 25 | #include <linux/module.h> |
25 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
@@ -257,9 +258,9 @@ static int tegra_ahb_probe(struct platform_device *pdev) | |||
257 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 258 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
258 | if (!res) | 259 | if (!res) |
259 | return -ENODEV; | 260 | return -ENODEV; |
260 | ahb->regs = devm_request_and_ioremap(&pdev->dev, res); | 261 | ahb->regs = devm_ioremap_resource(&pdev->dev, res); |
261 | if (!ahb->regs) | 262 | if (IS_ERR(ahb->regs)) |
262 | return -EBUSY; | 263 | return PTR_ERR(ahb->regs); |
263 | 264 | ||
264 | ahb->dev = &pdev->dev; | 265 | ahb->dev = &pdev->dev; |
265 | platform_set_drvdata(pdev, ahb); | 266 | platform_set_drvdata(pdev, ahb); |
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index e08d322d01d7..cdadce23e66d 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
@@ -163,7 +163,7 @@ config SATA_QSTOR | |||
163 | 163 | ||
164 | config SATA_SX4 | 164 | config SATA_SX4 |
165 | tristate "Promise SATA SX4 support (Experimental)" | 165 | tristate "Promise SATA SX4 support (Experimental)" |
166 | depends on PCI && EXPERIMENTAL | 166 | depends on PCI |
167 | help | 167 | help |
168 | This option enables support for Promise Serial ATA SX4. | 168 | This option enables support for Promise Serial ATA SX4. |
169 | 169 | ||
@@ -390,7 +390,7 @@ config PATA_CS5530 | |||
390 | 390 | ||
391 | config PATA_CS5535 | 391 | config PATA_CS5535 |
392 | tristate "CS5535 PATA support (Experimental)" | 392 | tristate "CS5535 PATA support (Experimental)" |
393 | depends on PCI && X86 && !X86_64 && EXPERIMENTAL | 393 | depends on PCI && X86 && !X86_64 |
394 | help | 394 | help |
395 | This option enables support for the NatSemi/AMD CS5535 | 395 | This option enables support for the NatSemi/AMD CS5535 |
396 | companion chip used with the Geode processor family. | 396 | companion chip used with the Geode processor family. |
@@ -408,7 +408,7 @@ config PATA_CS5536 | |||
408 | 408 | ||
409 | config PATA_CYPRESS | 409 | config PATA_CYPRESS |
410 | tristate "Cypress CY82C693 PATA support (Very Experimental)" | 410 | tristate "Cypress CY82C693 PATA support (Very Experimental)" |
411 | depends on PCI && EXPERIMENTAL | 411 | depends on PCI |
412 | help | 412 | help |
413 | This option enables support for the Cypress/Contaq CY82C693 | 413 | This option enables support for the Cypress/Contaq CY82C693 |
414 | chipset found in some Alpha systems | 414 | chipset found in some Alpha systems |
@@ -496,7 +496,7 @@ config PATA_IMX | |||
496 | 496 | ||
497 | config PATA_IT8213 | 497 | config PATA_IT8213 |
498 | tristate "IT8213 PATA support (Experimental)" | 498 | tristate "IT8213 PATA support (Experimental)" |
499 | depends on PCI && EXPERIMENTAL | 499 | depends on PCI |
500 | help | 500 | help |
501 | This option enables support for the ITE 821 PATA | 501 | This option enables support for the ITE 821 PATA |
502 | controllers via the new ATA layer. | 502 | controllers via the new ATA layer. |
@@ -589,7 +589,7 @@ config PATA_OLDPIIX | |||
589 | 589 | ||
590 | config PATA_OPTIDMA | 590 | config PATA_OPTIDMA |
591 | tristate "OPTI FireStar PATA support (Very Experimental)" | 591 | tristate "OPTI FireStar PATA support (Very Experimental)" |
592 | depends on PCI && EXPERIMENTAL | 592 | depends on PCI |
593 | help | 593 | help |
594 | This option enables DMA/PIO support for the later OPTi | 594 | This option enables DMA/PIO support for the later OPTi |
595 | controllers found on some old motherboards and in some | 595 | controllers found on some old motherboards and in some |
@@ -616,7 +616,7 @@ config PATA_PDC_OLD | |||
616 | 616 | ||
617 | config PATA_RADISYS | 617 | config PATA_RADISYS |
618 | tristate "RADISYS 82600 PATA support (Experimental)" | 618 | tristate "RADISYS 82600 PATA support (Experimental)" |
619 | depends on PCI && EXPERIMENTAL | 619 | depends on PCI |
620 | help | 620 | help |
621 | This option enables support for the RADISYS 82600 | 621 | This option enables support for the RADISYS 82600 |
622 | PATA controllers via the new ATA layer | 622 | PATA controllers via the new ATA layer |
@@ -687,7 +687,7 @@ config PATA_SIS | |||
687 | 687 | ||
688 | config PATA_TOSHIBA | 688 | config PATA_TOSHIBA |
689 | tristate "Toshiba Piccolo support (Experimental)" | 689 | tristate "Toshiba Piccolo support (Experimental)" |
690 | depends on PCI && EXPERIMENTAL | 690 | depends on PCI |
691 | help | 691 | help |
692 | Support for the Toshiba Piccolo controllers. Currently only the | 692 | Support for the Toshiba Piccolo controllers. Currently only the |
693 | primary channel is supported by this driver. | 693 | primary channel is supported by this driver. |
@@ -738,7 +738,7 @@ comment "PIO-only SFF controllers" | |||
738 | 738 | ||
739 | config PATA_AT32 | 739 | config PATA_AT32 |
740 | tristate "Atmel AVR32 PATA support (Experimental)" | 740 | tristate "Atmel AVR32 PATA support (Experimental)" |
741 | depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL | 741 | depends on AVR32 && PLATFORM_AT32AP |
742 | help | 742 | help |
743 | This option enables support for the IDE devices on the | 743 | This option enables support for the IDE devices on the |
744 | Atmel AT32AP platform. | 744 | Atmel AT32AP platform. |
@@ -755,7 +755,7 @@ config PATA_AT91 | |||
755 | 755 | ||
756 | config PATA_CMD640_PCI | 756 | config PATA_CMD640_PCI |
757 | tristate "CMD640 PCI PATA support (Experimental)" | 757 | tristate "CMD640 PCI PATA support (Experimental)" |
758 | depends on PCI && EXPERIMENTAL | 758 | depends on PCI |
759 | help | 759 | help |
760 | This option enables support for the CMD640 PCI IDE | 760 | This option enables support for the CMD640 PCI IDE |
761 | interface chip. Only the primary channel is currently | 761 | interface chip. Only the primary channel is currently |
@@ -801,7 +801,7 @@ config PATA_NS87410 | |||
801 | 801 | ||
802 | config PATA_OPTI | 802 | config PATA_OPTI |
803 | tristate "OPTI621/6215 PATA support (Very Experimental)" | 803 | tristate "OPTI621/6215 PATA support (Very Experimental)" |
804 | depends on PCI && EXPERIMENTAL | 804 | depends on PCI |
805 | help | 805 | help |
806 | This option enables full PIO support for the early Opti ATA | 806 | This option enables full PIO support for the early Opti ATA |
807 | controllers found on some old motherboards. | 807 | controllers found on some old motherboards. |
@@ -881,7 +881,7 @@ config PATA_SAMSUNG_CF | |||
881 | 881 | ||
882 | config PATA_WINBOND_VLB | 882 | config PATA_WINBOND_VLB |
883 | tristate "Winbond W83759A VLB PATA support (Experimental)" | 883 | tristate "Winbond W83759A VLB PATA support (Experimental)" |
884 | depends on ISA && EXPERIMENTAL | 884 | depends on ISA |
885 | select PATA_LEGACY | 885 | select PATA_LEGACY |
886 | help | 886 | help |
887 | Support for the Winbond W83759A controller on Vesa Local Bus | 887 | Support for the Winbond W83759A controller on Vesa Local Bus |
@@ -909,7 +909,7 @@ config ATA_GENERIC | |||
909 | 909 | ||
910 | config PATA_LEGACY | 910 | config PATA_LEGACY |
911 | tristate "Legacy ISA PATA support (Experimental)" | 911 | tristate "Legacy ISA PATA support (Experimental)" |
912 | depends on (ISA || PCI) && EXPERIMENTAL | 912 | depends on (ISA || PCI) |
913 | help | 913 | help |
914 | This option enables support for ISA/VLB/PCI bus legacy PATA | 914 | This option enables support for ISA/VLB/PCI bus legacy PATA |
915 | ports and allows them to be accessed via the new ATA layer. | 915 | ports and allows them to be accessed via the new ATA layer. |
diff --git a/drivers/ata/pata_ep93xx.c b/drivers/ata/pata_ep93xx.c index 556222f04731..c1bfaf43d109 100644 --- a/drivers/ata/pata_ep93xx.c +++ b/drivers/ata/pata_ep93xx.c | |||
@@ -31,6 +31,7 @@ | |||
31 | * Copyright (C) 2006 Tower Technologies | 31 | * Copyright (C) 2006 Tower Technologies |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/err.h> | ||
34 | #include <linux/kernel.h> | 35 | #include <linux/kernel.h> |
35 | #include <linux/module.h> | 36 | #include <linux/module.h> |
36 | #include <linux/init.h> | 37 | #include <linux/init.h> |
@@ -937,9 +938,9 @@ static int ep93xx_pata_probe(struct platform_device *pdev) | |||
937 | goto err_rel_gpio; | 938 | goto err_rel_gpio; |
938 | } | 939 | } |
939 | 940 | ||
940 | ide_base = devm_request_and_ioremap(&pdev->dev, mem_res); | 941 | ide_base = devm_ioremap_resource(&pdev->dev, mem_res); |
941 | if (!ide_base) { | 942 | if (IS_ERR(ide_base)) { |
942 | err = -ENXIO; | 943 | err = PTR_ERR(ide_base); |
943 | goto err_rel_gpio; | 944 | goto err_rel_gpio; |
944 | } | 945 | } |
945 | 946 | ||
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index c8b453939da2..07abd9d76f7f 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig | |||
@@ -145,6 +145,17 @@ config EXTRA_FIRMWARE_DIR | |||
145 | this option you can point it elsewhere, such as /lib/firmware/ or | 145 | this option you can point it elsewhere, such as /lib/firmware/ or |
146 | some other directory containing the firmware files. | 146 | some other directory containing the firmware files. |
147 | 147 | ||
148 | config FW_LOADER_USER_HELPER | ||
149 | bool "Fallback user-helper invocation for firmware loading" | ||
150 | depends on FW_LOADER | ||
151 | default y | ||
152 | help | ||
153 | This option enables / disables the invocation of user-helper | ||
154 | (e.g. udev) for loading firmware files as a fallback after the | ||
155 | direct file loading in kernel fails. The user-mode helper is | ||
156 | no longer required unless you have a special firmware file that | ||
157 | resides in a non-standard path. | ||
158 | |||
148 | config DEBUG_DRIVER | 159 | config DEBUG_DRIVER |
149 | bool "Driver Core verbose debug messages" | 160 | bool "Driver Core verbose debug messages" |
150 | depends on DEBUG_KERNEL | 161 | depends on DEBUG_KERNEL |
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 24eb07868344..519865b53f76 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c | |||
@@ -290,7 +290,7 @@ int bus_for_each_dev(struct bus_type *bus, struct device *start, | |||
290 | struct device *dev; | 290 | struct device *dev; |
291 | int error = 0; | 291 | int error = 0; |
292 | 292 | ||
293 | if (!bus) | 293 | if (!bus || !bus->p) |
294 | return -EINVAL; | 294 | return -EINVAL; |
295 | 295 | ||
296 | klist_iter_init_node(&bus->p->klist_devices, &i, | 296 | klist_iter_init_node(&bus->p->klist_devices, &i, |
@@ -324,7 +324,7 @@ struct device *bus_find_device(struct bus_type *bus, | |||
324 | struct klist_iter i; | 324 | struct klist_iter i; |
325 | struct device *dev; | 325 | struct device *dev; |
326 | 326 | ||
327 | if (!bus) | 327 | if (!bus || !bus->p) |
328 | return NULL; | 328 | return NULL; |
329 | 329 | ||
330 | klist_iter_init_node(&bus->p->klist_devices, &i, | 330 | klist_iter_init_node(&bus->p->klist_devices, &i, |
@@ -700,12 +700,12 @@ int bus_add_driver(struct device_driver *drv) | |||
700 | if (error) | 700 | if (error) |
701 | goto out_unregister; | 701 | goto out_unregister; |
702 | 702 | ||
703 | klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers); | ||
703 | if (drv->bus->p->drivers_autoprobe) { | 704 | if (drv->bus->p->drivers_autoprobe) { |
704 | error = driver_attach(drv); | 705 | error = driver_attach(drv); |
705 | if (error) | 706 | if (error) |
706 | goto out_unregister; | 707 | goto out_unregister; |
707 | } | 708 | } |
708 | klist_add_tail(&priv->knode_bus, &bus->p->klist_drivers); | ||
709 | module_add_driver(drv->owner, drv); | 709 | module_add_driver(drv->owner, drv); |
710 | 710 | ||
711 | error = driver_create_file(drv, &driver_attr_uevent); | 711 | error = driver_create_file(drv, &driver_attr_uevent); |
diff --git a/drivers/base/class.c b/drivers/base/class.c index 03243d4002fd..3ce845471327 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -420,8 +420,8 @@ EXPORT_SYMBOL_GPL(class_for_each_device); | |||
420 | * code. There's no locking restriction. | 420 | * code. There's no locking restriction. |
421 | */ | 421 | */ |
422 | struct device *class_find_device(struct class *class, struct device *start, | 422 | struct device *class_find_device(struct class *class, struct device *start, |
423 | void *data, | 423 | const void *data, |
424 | int (*match)(struct device *, void *)) | 424 | int (*match)(struct device *, const void *)) |
425 | { | 425 | { |
426 | struct class_dev_iter iter; | 426 | struct class_dev_iter iter; |
427 | struct device *dev; | 427 | struct device *dev; |
diff --git a/drivers/base/core.c b/drivers/base/core.c index a235085e343c..56536f4b0f6b 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -1617,9 +1617,9 @@ struct device *device_create(struct class *class, struct device *parent, | |||
1617 | } | 1617 | } |
1618 | EXPORT_SYMBOL_GPL(device_create); | 1618 | EXPORT_SYMBOL_GPL(device_create); |
1619 | 1619 | ||
1620 | static int __match_devt(struct device *dev, void *data) | 1620 | static int __match_devt(struct device *dev, const void *data) |
1621 | { | 1621 | { |
1622 | dev_t *devt = data; | 1622 | const dev_t *devt = data; |
1623 | 1623 | ||
1624 | return dev->devt == *devt; | 1624 | return dev->devt == *devt; |
1625 | } | 1625 | } |
@@ -1685,8 +1685,6 @@ EXPORT_SYMBOL_GPL(device_destroy); | |||
1685 | */ | 1685 | */ |
1686 | int device_rename(struct device *dev, const char *new_name) | 1686 | int device_rename(struct device *dev, const char *new_name) |
1687 | { | 1687 | { |
1688 | char *old_class_name = NULL; | ||
1689 | char *new_class_name = NULL; | ||
1690 | char *old_device_name = NULL; | 1688 | char *old_device_name = NULL; |
1691 | int error; | 1689 | int error; |
1692 | 1690 | ||
@@ -1717,8 +1715,6 @@ int device_rename(struct device *dev, const char *new_name) | |||
1717 | out: | 1715 | out: |
1718 | put_device(dev); | 1716 | put_device(dev); |
1719 | 1717 | ||
1720 | kfree(new_class_name); | ||
1721 | kfree(old_class_name); | ||
1722 | kfree(old_device_name); | 1718 | kfree(old_device_name); |
1723 | 1719 | ||
1724 | return error; | 1720 | return error; |
diff --git a/drivers/base/dd.c b/drivers/base/dd.c index 656310156dde..bb5645ea0282 100644 --- a/drivers/base/dd.c +++ b/drivers/base/dd.c | |||
@@ -173,6 +173,8 @@ static int deferred_probe_initcall(void) | |||
173 | 173 | ||
174 | driver_deferred_probe_enable = true; | 174 | driver_deferred_probe_enable = true; |
175 | driver_deferred_probe_trigger(); | 175 | driver_deferred_probe_trigger(); |
176 | /* Sort as many dependencies as possible before exiting initcalls */ | ||
177 | flush_workqueue(deferred_wq); | ||
176 | return 0; | 178 | return 0; |
177 | } | 179 | } |
178 | late_initcall(deferred_probe_initcall); | 180 | late_initcall(deferred_probe_initcall); |
diff --git a/drivers/base/dma-buf.c b/drivers/base/dma-buf.c index a3f79c495a41..ff5b745c4705 100644 --- a/drivers/base/dma-buf.c +++ b/drivers/base/dma-buf.c | |||
@@ -134,15 +134,14 @@ EXPORT_SYMBOL_GPL(dma_buf_export); | |||
134 | */ | 134 | */ |
135 | int dma_buf_fd(struct dma_buf *dmabuf, int flags) | 135 | int dma_buf_fd(struct dma_buf *dmabuf, int flags) |
136 | { | 136 | { |
137 | int error, fd; | 137 | int fd; |
138 | 138 | ||
139 | if (!dmabuf || !dmabuf->file) | 139 | if (!dmabuf || !dmabuf->file) |
140 | return -EINVAL; | 140 | return -EINVAL; |
141 | 141 | ||
142 | error = get_unused_fd_flags(flags); | 142 | fd = get_unused_fd_flags(flags); |
143 | if (error < 0) | 143 | if (fd < 0) |
144 | return error; | 144 | return fd; |
145 | fd = error; | ||
146 | 145 | ||
147 | fd_install(fd, dmabuf->file); | 146 | fd_install(fd, dmabuf->file); |
148 | 147 | ||
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index b392b353be39..4a223fedcd73 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -88,11 +88,6 @@ enum { | |||
88 | FW_STATUS_ABORT, | 88 | FW_STATUS_ABORT, |
89 | }; | 89 | }; |
90 | 90 | ||
91 | enum fw_buf_fmt { | ||
92 | VMALLOC_BUF, /* used in direct loading */ | ||
93 | PAGE_BUF, /* used in loading via userspace */ | ||
94 | }; | ||
95 | |||
96 | static int loading_timeout = 60; /* In seconds */ | 91 | static int loading_timeout = 60; /* In seconds */ |
97 | 92 | ||
98 | static inline long firmware_loading_timeout(void) | 93 | static inline long firmware_loading_timeout(void) |
@@ -128,12 +123,14 @@ struct firmware_buf { | |||
128 | struct completion completion; | 123 | struct completion completion; |
129 | struct firmware_cache *fwc; | 124 | struct firmware_cache *fwc; |
130 | unsigned long status; | 125 | unsigned long status; |
131 | enum fw_buf_fmt fmt; | ||
132 | void *data; | 126 | void *data; |
133 | size_t size; | 127 | size_t size; |
128 | #ifdef CONFIG_FW_LOADER_USER_HELPER | ||
129 | bool is_paged_buf; | ||
134 | struct page **pages; | 130 | struct page **pages; |
135 | int nr_pages; | 131 | int nr_pages; |
136 | int page_array_size; | 132 | int page_array_size; |
133 | #endif | ||
137 | char fw_id[]; | 134 | char fw_id[]; |
138 | }; | 135 | }; |
139 | 136 | ||
@@ -142,14 +139,6 @@ struct fw_cache_entry { | |||
142 | char name[]; | 139 | char name[]; |
143 | }; | 140 | }; |
144 | 141 | ||
145 | struct firmware_priv { | ||
146 | struct delayed_work timeout_work; | ||
147 | bool nowait; | ||
148 | struct device dev; | ||
149 | struct firmware_buf *buf; | ||
150 | struct firmware *fw; | ||
151 | }; | ||
152 | |||
153 | struct fw_name_devm { | 142 | struct fw_name_devm { |
154 | unsigned long magic; | 143 | unsigned long magic; |
155 | char name[]; | 144 | char name[]; |
@@ -182,7 +171,6 @@ static struct firmware_buf *__allocate_fw_buf(const char *fw_name, | |||
182 | strcpy(buf->fw_id, fw_name); | 171 | strcpy(buf->fw_id, fw_name); |
183 | buf->fwc = fwc; | 172 | buf->fwc = fwc; |
184 | init_completion(&buf->completion); | 173 | init_completion(&buf->completion); |
185 | buf->fmt = VMALLOC_BUF; | ||
186 | 174 | ||
187 | pr_debug("%s: fw-%s buf=%p\n", __func__, fw_name, buf); | 175 | pr_debug("%s: fw-%s buf=%p\n", __func__, fw_name, buf); |
188 | 176 | ||
@@ -240,7 +228,6 @@ static void __fw_free_buf(struct kref *ref) | |||
240 | { | 228 | { |
241 | struct firmware_buf *buf = to_fwbuf(ref); | 229 | struct firmware_buf *buf = to_fwbuf(ref); |
242 | struct firmware_cache *fwc = buf->fwc; | 230 | struct firmware_cache *fwc = buf->fwc; |
243 | int i; | ||
244 | 231 | ||
245 | pr_debug("%s: fw-%s buf=%p data=%p size=%u\n", | 232 | pr_debug("%s: fw-%s buf=%p data=%p size=%u\n", |
246 | __func__, buf->fw_id, buf, buf->data, | 233 | __func__, buf->fw_id, buf, buf->data, |
@@ -249,13 +236,15 @@ static void __fw_free_buf(struct kref *ref) | |||
249 | list_del(&buf->list); | 236 | list_del(&buf->list); |
250 | spin_unlock(&fwc->lock); | 237 | spin_unlock(&fwc->lock); |
251 | 238 | ||
252 | 239 | #ifdef CONFIG_FW_LOADER_USER_HELPER | |
253 | if (buf->fmt == PAGE_BUF) { | 240 | if (buf->is_paged_buf) { |
241 | int i; | ||
254 | vunmap(buf->data); | 242 | vunmap(buf->data); |
255 | for (i = 0; i < buf->nr_pages; i++) | 243 | for (i = 0; i < buf->nr_pages; i++) |
256 | __free_page(buf->pages[i]); | 244 | __free_page(buf->pages[i]); |
257 | kfree(buf->pages); | 245 | kfree(buf->pages); |
258 | } else | 246 | } else |
247 | #endif | ||
259 | vfree(buf->data); | 248 | vfree(buf->data); |
260 | kfree(buf); | 249 | kfree(buf); |
261 | } | 250 | } |
@@ -319,7 +308,8 @@ static bool fw_read_file_contents(struct file *file, struct firmware_buf *fw_buf | |||
319 | return true; | 308 | return true; |
320 | } | 309 | } |
321 | 310 | ||
322 | static bool fw_get_filesystem_firmware(struct firmware_buf *buf) | 311 | static bool fw_get_filesystem_firmware(struct device *device, |
312 | struct firmware_buf *buf) | ||
323 | { | 313 | { |
324 | int i; | 314 | int i; |
325 | bool success = false; | 315 | bool success = false; |
@@ -343,9 +333,114 @@ static bool fw_get_filesystem_firmware(struct firmware_buf *buf) | |||
343 | break; | 333 | break; |
344 | } | 334 | } |
345 | __putname(path); | 335 | __putname(path); |
336 | |||
337 | if (success) { | ||
338 | dev_dbg(device, "firmware: direct-loading firmware %s\n", | ||
339 | buf->fw_id); | ||
340 | mutex_lock(&fw_lock); | ||
341 | set_bit(FW_STATUS_DONE, &buf->status); | ||
342 | complete_all(&buf->completion); | ||
343 | mutex_unlock(&fw_lock); | ||
344 | } | ||
345 | |||
346 | return success; | 346 | return success; |
347 | } | 347 | } |
348 | 348 | ||
349 | /* firmware holds the ownership of pages */ | ||
350 | static void firmware_free_data(const struct firmware *fw) | ||
351 | { | ||
352 | /* Loaded directly? */ | ||
353 | if (!fw->priv) { | ||
354 | vfree(fw->data); | ||
355 | return; | ||
356 | } | ||
357 | fw_free_buf(fw->priv); | ||
358 | } | ||
359 | |||
360 | /* store the pages buffer info firmware from buf */ | ||
361 | static void fw_set_page_data(struct firmware_buf *buf, struct firmware *fw) | ||
362 | { | ||
363 | fw->priv = buf; | ||
364 | #ifdef CONFIG_FW_LOADER_USER_HELPER | ||
365 | fw->pages = buf->pages; | ||
366 | #endif | ||
367 | fw->size = buf->size; | ||
368 | fw->data = buf->data; | ||
369 | |||
370 | pr_debug("%s: fw-%s buf=%p data=%p size=%u\n", | ||
371 | __func__, buf->fw_id, buf, buf->data, | ||
372 | (unsigned int)buf->size); | ||
373 | } | ||
374 | |||
375 | #ifdef CONFIG_PM_SLEEP | ||
376 | static void fw_name_devm_release(struct device *dev, void *res) | ||
377 | { | ||
378 | struct fw_name_devm *fwn = res; | ||
379 | |||
380 | if (fwn->magic == (unsigned long)&fw_cache) | ||
381 | pr_debug("%s: fw_name-%s devm-%p released\n", | ||
382 | __func__, fwn->name, res); | ||
383 | } | ||
384 | |||
385 | static int fw_devm_match(struct device *dev, void *res, | ||
386 | void *match_data) | ||
387 | { | ||
388 | struct fw_name_devm *fwn = res; | ||
389 | |||
390 | return (fwn->magic == (unsigned long)&fw_cache) && | ||
391 | !strcmp(fwn->name, match_data); | ||
392 | } | ||
393 | |||
394 | static struct fw_name_devm *fw_find_devm_name(struct device *dev, | ||
395 | const char *name) | ||
396 | { | ||
397 | struct fw_name_devm *fwn; | ||
398 | |||
399 | fwn = devres_find(dev, fw_name_devm_release, | ||
400 | fw_devm_match, (void *)name); | ||
401 | return fwn; | ||
402 | } | ||
403 | |||
404 | /* add firmware name into devres list */ | ||
405 | static int fw_add_devm_name(struct device *dev, const char *name) | ||
406 | { | ||
407 | struct fw_name_devm *fwn; | ||
408 | |||
409 | fwn = fw_find_devm_name(dev, name); | ||
410 | if (fwn) | ||
411 | return 1; | ||
412 | |||
413 | fwn = devres_alloc(fw_name_devm_release, sizeof(struct fw_name_devm) + | ||
414 | strlen(name) + 1, GFP_KERNEL); | ||
415 | if (!fwn) | ||
416 | return -ENOMEM; | ||
417 | |||
418 | fwn->magic = (unsigned long)&fw_cache; | ||
419 | strcpy(fwn->name, name); | ||
420 | devres_add(dev, fwn); | ||
421 | |||
422 | return 0; | ||
423 | } | ||
424 | #else | ||
425 | static int fw_add_devm_name(struct device *dev, const char *name) | ||
426 | { | ||
427 | return 0; | ||
428 | } | ||
429 | #endif | ||
430 | |||
431 | |||
432 | /* | ||
433 | * user-mode helper code | ||
434 | */ | ||
435 | #ifdef CONFIG_FW_LOADER_USER_HELPER | ||
436 | struct firmware_priv { | ||
437 | struct delayed_work timeout_work; | ||
438 | bool nowait; | ||
439 | struct device dev; | ||
440 | struct firmware_buf *buf; | ||
441 | struct firmware *fw; | ||
442 | }; | ||
443 | |||
349 | static struct firmware_priv *to_firmware_priv(struct device *dev) | 444 | static struct firmware_priv *to_firmware_priv(struct device *dev) |
350 | { | 445 | { |
351 | return container_of(dev, struct firmware_priv, dev); | 446 | return container_of(dev, struct firmware_priv, dev); |
@@ -359,6 +454,9 @@ static void fw_load_abort(struct firmware_priv *fw_priv) | |||
359 | complete_all(&buf->completion); | 454 | complete_all(&buf->completion); |
360 | } | 455 | } |
361 | 456 | ||
457 | #define is_fw_load_aborted(buf) \ | ||
458 | test_bit(FW_STATUS_ABORT, &(buf)->status) | ||
459 | |||
362 | static ssize_t firmware_timeout_show(struct class *class, | 460 | static ssize_t firmware_timeout_show(struct class *class, |
363 | struct class_attribute *attr, | 461 | struct class_attribute *attr, |
364 | char *buf) | 462 | char *buf) |
@@ -435,17 +533,6 @@ static ssize_t firmware_loading_show(struct device *dev, | |||
435 | return sprintf(buf, "%d\n", loading); | 533 | return sprintf(buf, "%d\n", loading); |
436 | } | 534 | } |
437 | 535 | ||
438 | /* firmware holds the ownership of pages */ | ||
439 | static void firmware_free_data(const struct firmware *fw) | ||
440 | { | ||
441 | /* Loaded directly? */ | ||
442 | if (!fw->priv) { | ||
443 | vfree(fw->data); | ||
444 | return; | ||
445 | } | ||
446 | fw_free_buf(fw->priv); | ||
447 | } | ||
448 | |||
449 | /* Some architectures don't have PAGE_KERNEL_RO */ | 536 | /* Some architectures don't have PAGE_KERNEL_RO */ |
450 | #ifndef PAGE_KERNEL_RO | 537 | #ifndef PAGE_KERNEL_RO |
451 | #define PAGE_KERNEL_RO PAGE_KERNEL | 538 | #define PAGE_KERNEL_RO PAGE_KERNEL |
@@ -454,7 +541,7 @@ static void firmware_free_data(const struct firmware *fw) | |||
454 | /* one pages buffer should be mapped/unmapped only once */ | 541 | /* one pages buffer should be mapped/unmapped only once */ |
455 | static int fw_map_pages_buf(struct firmware_buf *buf) | 542 | static int fw_map_pages_buf(struct firmware_buf *buf) |
456 | { | 543 | { |
457 | if (buf->fmt != PAGE_BUF) | 544 | if (!buf->is_paged_buf) |
458 | return 0; | 545 | return 0; |
459 | 546 | ||
460 | if (buf->data) | 547 | if (buf->data) |
@@ -727,171 +814,16 @@ exit: | |||
727 | return fw_priv; | 814 | return fw_priv; |
728 | } | 815 | } |
729 | 816 | ||
730 | /* store the pages buffer info firmware from buf */ | 817 | /* load a firmware via user helper */ |
731 | static void fw_set_page_data(struct firmware_buf *buf, struct firmware *fw) | ||
732 | { | ||
733 | fw->priv = buf; | ||
734 | fw->pages = buf->pages; | ||
735 | fw->size = buf->size; | ||
736 | fw->data = buf->data; | ||
737 | |||
738 | pr_debug("%s: fw-%s buf=%p data=%p size=%u\n", | ||
739 | __func__, buf->fw_id, buf, buf->data, | ||
740 | (unsigned int)buf->size); | ||
741 | } | ||
742 | |||
743 | #ifdef CONFIG_PM_SLEEP | ||
744 | static void fw_name_devm_release(struct device *dev, void *res) | ||
745 | { | ||
746 | struct fw_name_devm *fwn = res; | ||
747 | |||
748 | if (fwn->magic == (unsigned long)&fw_cache) | ||
749 | pr_debug("%s: fw_name-%s devm-%p released\n", | ||
750 | __func__, fwn->name, res); | ||
751 | } | ||
752 | |||
753 | static int fw_devm_match(struct device *dev, void *res, | ||
754 | void *match_data) | ||
755 | { | ||
756 | struct fw_name_devm *fwn = res; | ||
757 | |||
758 | return (fwn->magic == (unsigned long)&fw_cache) && | ||
759 | !strcmp(fwn->name, match_data); | ||
760 | } | ||
761 | |||
762 | static struct fw_name_devm *fw_find_devm_name(struct device *dev, | ||
763 | const char *name) | ||
764 | { | ||
765 | struct fw_name_devm *fwn; | ||
766 | |||
767 | fwn = devres_find(dev, fw_name_devm_release, | ||
768 | fw_devm_match, (void *)name); | ||
769 | return fwn; | ||
770 | } | ||
771 | |||
772 | /* add firmware name into devres list */ | ||
773 | static int fw_add_devm_name(struct device *dev, const char *name) | ||
774 | { | ||
775 | struct fw_name_devm *fwn; | ||
776 | |||
777 | fwn = fw_find_devm_name(dev, name); | ||
778 | if (fwn) | ||
779 | return 1; | ||
780 | |||
781 | fwn = devres_alloc(fw_name_devm_release, sizeof(struct fw_name_devm) + | ||
782 | strlen(name) + 1, GFP_KERNEL); | ||
783 | if (!fwn) | ||
784 | return -ENOMEM; | ||
785 | |||
786 | fwn->magic = (unsigned long)&fw_cache; | ||
787 | strcpy(fwn->name, name); | ||
788 | devres_add(dev, fwn); | ||
789 | |||
790 | return 0; | ||
791 | } | ||
792 | #else | ||
793 | static int fw_add_devm_name(struct device *dev, const char *name) | ||
794 | { | ||
795 | return 0; | ||
796 | } | ||
797 | #endif | ||
798 | |||
799 | static void _request_firmware_cleanup(const struct firmware **firmware_p) | ||
800 | { | ||
801 | release_firmware(*firmware_p); | ||
802 | *firmware_p = NULL; | ||
803 | } | ||
804 | |||
805 | static struct firmware_priv * | ||
806 | _request_firmware_prepare(const struct firmware **firmware_p, const char *name, | ||
807 | struct device *device, bool uevent, bool nowait) | ||
808 | { | ||
809 | struct firmware *firmware; | ||
810 | struct firmware_priv *fw_priv = NULL; | ||
811 | struct firmware_buf *buf; | ||
812 | int ret; | ||
813 | |||
814 | if (!firmware_p) | ||
815 | return ERR_PTR(-EINVAL); | ||
816 | |||
817 | *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL); | ||
818 | if (!firmware) { | ||
819 | dev_err(device, "%s: kmalloc(struct firmware) failed\n", | ||
820 | __func__); | ||
821 | return ERR_PTR(-ENOMEM); | ||
822 | } | ||
823 | |||
824 | if (fw_get_builtin_firmware(firmware, name)) { | ||
825 | dev_dbg(device, "firmware: using built-in firmware %s\n", name); | ||
826 | return NULL; | ||
827 | } | ||
828 | |||
829 | ret = fw_lookup_and_allocate_buf(name, &fw_cache, &buf); | ||
830 | if (!ret) | ||
831 | fw_priv = fw_create_instance(firmware, name, device, | ||
832 | uevent, nowait); | ||
833 | |||
834 | if (IS_ERR(fw_priv) || ret < 0) { | ||
835 | kfree(firmware); | ||
836 | *firmware_p = NULL; | ||
837 | return ERR_PTR(-ENOMEM); | ||
838 | } else if (fw_priv) { | ||
839 | fw_priv->buf = buf; | ||
840 | |||
841 | /* | ||
842 | * bind with 'buf' now to avoid warning in failure path | ||
843 | * of requesting firmware. | ||
844 | */ | ||
845 | firmware->priv = buf; | ||
846 | return fw_priv; | ||
847 | } | ||
848 | |||
849 | /* share the cached buf, which is inprogessing or completed */ | ||
850 | check_status: | ||
851 | mutex_lock(&fw_lock); | ||
852 | if (test_bit(FW_STATUS_ABORT, &buf->status)) { | ||
853 | fw_priv = ERR_PTR(-ENOENT); | ||
854 | firmware->priv = buf; | ||
855 | _request_firmware_cleanup(firmware_p); | ||
856 | goto exit; | ||
857 | } else if (test_bit(FW_STATUS_DONE, &buf->status)) { | ||
858 | fw_priv = NULL; | ||
859 | fw_set_page_data(buf, firmware); | ||
860 | goto exit; | ||
861 | } | ||
862 | mutex_unlock(&fw_lock); | ||
863 | wait_for_completion(&buf->completion); | ||
864 | goto check_status; | ||
865 | |||
866 | exit: | ||
867 | mutex_unlock(&fw_lock); | ||
868 | return fw_priv; | ||
869 | } | ||
870 | |||
871 | static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent, | 818 | static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent, |
872 | long timeout) | 819 | long timeout) |
873 | { | 820 | { |
874 | int retval = 0; | 821 | int retval = 0; |
875 | struct device *f_dev = &fw_priv->dev; | 822 | struct device *f_dev = &fw_priv->dev; |
876 | struct firmware_buf *buf = fw_priv->buf; | 823 | struct firmware_buf *buf = fw_priv->buf; |
877 | struct firmware_cache *fwc = &fw_cache; | ||
878 | int direct_load = 0; | ||
879 | |||
880 | /* try direct loading from fs first */ | ||
881 | if (fw_get_filesystem_firmware(buf)) { | ||
882 | dev_dbg(f_dev->parent, "firmware: direct-loading" | ||
883 | " firmware %s\n", buf->fw_id); | ||
884 | |||
885 | mutex_lock(&fw_lock); | ||
886 | set_bit(FW_STATUS_DONE, &buf->status); | ||
887 | mutex_unlock(&fw_lock); | ||
888 | complete_all(&buf->completion); | ||
889 | direct_load = 1; | ||
890 | goto handle_fw; | ||
891 | } | ||
892 | 824 | ||
893 | /* fall back on userspace loading */ | 825 | /* fall back on userspace loading */ |
894 | buf->fmt = PAGE_BUF; | 826 | buf->is_paged_buf = true; |
895 | 827 | ||
896 | dev_set_uevent_suppress(f_dev, true); | 828 | dev_set_uevent_suppress(f_dev, true); |
897 | 829 | ||
@@ -929,47 +861,196 @@ static int _request_firmware_load(struct firmware_priv *fw_priv, bool uevent, | |||
929 | 861 | ||
930 | cancel_delayed_work_sync(&fw_priv->timeout_work); | 862 | cancel_delayed_work_sync(&fw_priv->timeout_work); |
931 | 863 | ||
932 | handle_fw: | 864 | fw_priv->buf = NULL; |
865 | |||
866 | device_remove_file(f_dev, &dev_attr_loading); | ||
867 | err_del_bin_attr: | ||
868 | device_remove_bin_file(f_dev, &firmware_attr_data); | ||
869 | err_del_dev: | ||
870 | device_del(f_dev); | ||
871 | err_put_dev: | ||
872 | put_device(f_dev); | ||
873 | return retval; | ||
874 | } | ||
875 | |||
876 | static int fw_load_from_user_helper(struct firmware *firmware, | ||
877 | const char *name, struct device *device, | ||
878 | bool uevent, bool nowait, long timeout) | ||
879 | { | ||
880 | struct firmware_priv *fw_priv; | ||
881 | |||
882 | fw_priv = fw_create_instance(firmware, name, device, uevent, nowait); | ||
883 | if (IS_ERR(fw_priv)) | ||
884 | return PTR_ERR(fw_priv); | ||
885 | |||
886 | fw_priv->buf = firmware->priv; | ||
887 | return _request_firmware_load(fw_priv, uevent, timeout); | ||
888 | } | ||
889 | #else /* CONFIG_FW_LOADER_USER_HELPER */ | ||
890 | static inline int | ||
891 | fw_load_from_user_helper(struct firmware *firmware, const char *name, | ||
892 | struct device *device, bool uevent, bool nowait, | ||
893 | long timeout) | ||
894 | { | ||
895 | return -ENOENT; | ||
896 | } | ||
897 | |||
898 | /* No abort during direct loading */ | ||
899 | #define is_fw_load_aborted(buf) false | ||
900 | |||
901 | #endif /* CONFIG_FW_LOADER_USER_HELPER */ | ||
902 | |||
903 | |||
904 | /* wait until the shared firmware_buf becomes ready (or error) */ | ||
905 | static int sync_cached_firmware_buf(struct firmware_buf *buf) | ||
906 | { | ||
907 | int ret = 0; | ||
908 | |||
909 | mutex_lock(&fw_lock); | ||
910 | while (!test_bit(FW_STATUS_DONE, &buf->status)) { | ||
911 | if (is_fw_load_aborted(buf)) { | ||
912 | ret = -ENOENT; | ||
913 | break; | ||
914 | } | ||
915 | mutex_unlock(&fw_lock); | ||
916 | wait_for_completion(&buf->completion); | ||
917 | mutex_lock(&fw_lock); | ||
918 | } | ||
919 | mutex_unlock(&fw_lock); | ||
920 | return ret; | ||
921 | } | ||
922 | |||
923 | /* prepare firmware and firmware_buf structs; | ||
924 | * return 0 if a firmware is already assigned, 1 if need to load one, | ||
925 | * or a negative error code | ||
926 | */ | ||
927 | static int | ||
928 | _request_firmware_prepare(struct firmware **firmware_p, const char *name, | ||
929 | struct device *device) | ||
930 | { | ||
931 | struct firmware *firmware; | ||
932 | struct firmware_buf *buf; | ||
933 | int ret; | ||
934 | |||
935 | *firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL); | ||
936 | if (!firmware) { | ||
937 | dev_err(device, "%s: kmalloc(struct firmware) failed\n", | ||
938 | __func__); | ||
939 | return -ENOMEM; | ||
940 | } | ||
941 | |||
942 | if (fw_get_builtin_firmware(firmware, name)) { | ||
943 | dev_dbg(device, "firmware: using built-in firmware %s\n", name); | ||
944 | return 0; /* assigned */ | ||
945 | } | ||
946 | |||
947 | ret = fw_lookup_and_allocate_buf(name, &fw_cache, &buf); | ||
948 | |||
949 | /* | ||
950 | * bind with 'buf' now to avoid warning in failure path | ||
951 | * of requesting firmware. | ||
952 | */ | ||
953 | firmware->priv = buf; | ||
954 | |||
955 | if (ret > 0) { | ||
956 | ret = sync_cached_firmware_buf(buf); | ||
957 | if (!ret) { | ||
958 | fw_set_page_data(buf, firmware); | ||
959 | return 0; /* assigned */ | ||
960 | } | ||
961 | } | ||
962 | |||
963 | if (ret < 0) | ||
964 | return ret; | ||
965 | return 1; /* need to load */ | ||
966 | } | ||
967 | |||
968 | static int assign_firmware_buf(struct firmware *fw, struct device *device) | ||
969 | { | ||
970 | struct firmware_buf *buf = fw->priv; | ||
971 | |||
933 | mutex_lock(&fw_lock); | 972 | mutex_lock(&fw_lock); |
934 | if (!buf->size || test_bit(FW_STATUS_ABORT, &buf->status)) | 973 | if (!buf->size || is_fw_load_aborted(buf)) { |
935 | retval = -ENOENT; | 974 | mutex_unlock(&fw_lock); |
975 | return -ENOENT; | ||
976 | } | ||
936 | 977 | ||
937 | /* | 978 | /* |
938 | * add firmware name into devres list so that we can auto cache | 979 | * add firmware name into devres list so that we can auto cache |
939 | * and uncache firmware for device. | 980 | * and uncache firmware for device. |
940 | * | 981 | * |
941 | * f_dev->parent may has been deleted already, but the problem | 982 | * device may has been deleted already, but the problem |
942 | * should be fixed in devres or driver core. | 983 | * should be fixed in devres or driver core. |
943 | */ | 984 | */ |
944 | if (!retval && f_dev->parent) | 985 | if (device) |
945 | fw_add_devm_name(f_dev->parent, buf->fw_id); | 986 | fw_add_devm_name(device, buf->fw_id); |
946 | 987 | ||
947 | /* | 988 | /* |
948 | * After caching firmware image is started, let it piggyback | 989 | * After caching firmware image is started, let it piggyback |
949 | * on request firmware. | 990 | * on request firmware. |
950 | */ | 991 | */ |
951 | if (!retval && fwc->state == FW_LOADER_START_CACHE) { | 992 | if (buf->fwc->state == FW_LOADER_START_CACHE) { |
952 | if (fw_cache_piggyback_on_request(buf->fw_id)) | 993 | if (fw_cache_piggyback_on_request(buf->fw_id)) |
953 | kref_get(&buf->ref); | 994 | kref_get(&buf->ref); |
954 | } | 995 | } |
955 | 996 | ||
956 | /* pass the pages buffer to driver at the last minute */ | 997 | /* pass the pages buffer to driver at the last minute */ |
957 | fw_set_page_data(buf, fw_priv->fw); | 998 | fw_set_page_data(buf, fw); |
958 | |||
959 | fw_priv->buf = NULL; | ||
960 | mutex_unlock(&fw_lock); | 999 | mutex_unlock(&fw_lock); |
1000 | return 0; | ||
1001 | } | ||
961 | 1002 | ||
962 | if (direct_load) | 1003 | /* called from request_firmware() and request_firmware_work_func() */ |
963 | goto err_put_dev; | 1004 | static int |
1005 | _request_firmware(const struct firmware **firmware_p, const char *name, | ||
1006 | struct device *device, bool uevent, bool nowait) | ||
1007 | { | ||
1008 | struct firmware *fw; | ||
1009 | long timeout; | ||
1010 | int ret; | ||
964 | 1011 | ||
965 | device_remove_file(f_dev, &dev_attr_loading); | 1012 | if (!firmware_p) |
966 | err_del_bin_attr: | 1013 | return -EINVAL; |
967 | device_remove_bin_file(f_dev, &firmware_attr_data); | 1014 | |
968 | err_del_dev: | 1015 | ret = _request_firmware_prepare(&fw, name, device); |
969 | device_del(f_dev); | 1016 | if (ret <= 0) /* error or already assigned */ |
970 | err_put_dev: | 1017 | goto out; |
971 | put_device(f_dev); | 1018 | |
972 | return retval; | 1019 | ret = 0; |
1020 | timeout = firmware_loading_timeout(); | ||
1021 | if (nowait) { | ||
1022 | timeout = usermodehelper_read_lock_wait(timeout); | ||
1023 | if (!timeout) { | ||
1024 | dev_dbg(device, "firmware: %s loading timed out\n", | ||
1025 | name); | ||
1026 | ret = -EBUSY; | ||
1027 | goto out; | ||
1028 | } | ||
1029 | } else { | ||
1030 | ret = usermodehelper_read_trylock(); | ||
1031 | if (WARN_ON(ret)) { | ||
1032 | dev_err(device, "firmware: %s will not be loaded\n", | ||
1033 | name); | ||
1034 | goto out; | ||
1035 | } | ||
1036 | } | ||
1037 | |||
1038 | if (!fw_get_filesystem_firmware(device, fw->priv)) | ||
1039 | ret = fw_load_from_user_helper(fw, name, device, | ||
1040 | uevent, nowait, timeout); | ||
1041 | if (!ret) | ||
1042 | ret = assign_firmware_buf(fw, device); | ||
1043 | |||
1044 | usermodehelper_read_unlock(); | ||
1045 | |||
1046 | out: | ||
1047 | if (ret < 0) { | ||
1048 | release_firmware(fw); | ||
1049 | fw = NULL; | ||
1050 | } | ||
1051 | |||
1052 | *firmware_p = fw; | ||
1053 | return ret; | ||
973 | } | 1054 | } |
974 | 1055 | ||
975 | /** | 1056 | /** |
@@ -996,26 +1077,7 @@ int | |||
996 | request_firmware(const struct firmware **firmware_p, const char *name, | 1077 | request_firmware(const struct firmware **firmware_p, const char *name, |
997 | struct device *device) | 1078 | struct device *device) |
998 | { | 1079 | { |
999 | struct firmware_priv *fw_priv; | 1080 | return _request_firmware(firmware_p, name, device, true, false); |
1000 | int ret; | ||
1001 | |||
1002 | fw_priv = _request_firmware_prepare(firmware_p, name, device, true, | ||
1003 | false); | ||
1004 | if (IS_ERR_OR_NULL(fw_priv)) | ||
1005 | return PTR_RET(fw_priv); | ||
1006 | |||
1007 | ret = usermodehelper_read_trylock(); | ||
1008 | if (WARN_ON(ret)) { | ||
1009 | dev_err(device, "firmware: %s will not be loaded\n", name); | ||
1010 | } else { | ||
1011 | ret = _request_firmware_load(fw_priv, true, | ||
1012 | firmware_loading_timeout()); | ||
1013 | usermodehelper_read_unlock(); | ||
1014 | } | ||
1015 | if (ret) | ||
1016 | _request_firmware_cleanup(firmware_p); | ||
1017 | |||
1018 | return ret; | ||
1019 | } | 1081 | } |
1020 | 1082 | ||
1021 | /** | 1083 | /** |
@@ -1046,33 +1108,13 @@ static void request_firmware_work_func(struct work_struct *work) | |||
1046 | { | 1108 | { |
1047 | struct firmware_work *fw_work; | 1109 | struct firmware_work *fw_work; |
1048 | const struct firmware *fw; | 1110 | const struct firmware *fw; |
1049 | struct firmware_priv *fw_priv; | ||
1050 | long timeout; | ||
1051 | int ret; | ||
1052 | 1111 | ||
1053 | fw_work = container_of(work, struct firmware_work, work); | 1112 | fw_work = container_of(work, struct firmware_work, work); |
1054 | fw_priv = _request_firmware_prepare(&fw, fw_work->name, fw_work->device, | ||
1055 | fw_work->uevent, true); | ||
1056 | if (IS_ERR_OR_NULL(fw_priv)) { | ||
1057 | ret = PTR_RET(fw_priv); | ||
1058 | goto out; | ||
1059 | } | ||
1060 | |||
1061 | timeout = usermodehelper_read_lock_wait(firmware_loading_timeout()); | ||
1062 | if (timeout) { | ||
1063 | ret = _request_firmware_load(fw_priv, fw_work->uevent, timeout); | ||
1064 | usermodehelper_read_unlock(); | ||
1065 | } else { | ||
1066 | dev_dbg(fw_work->device, "firmware: %s loading timed out\n", | ||
1067 | fw_work->name); | ||
1068 | ret = -EAGAIN; | ||
1069 | } | ||
1070 | if (ret) | ||
1071 | _request_firmware_cleanup(&fw); | ||
1072 | 1113 | ||
1073 | out: | 1114 | _request_firmware(&fw, fw_work->name, fw_work->device, |
1115 | fw_work->uevent, true); | ||
1074 | fw_work->cont(fw, fw_work->context); | 1116 | fw_work->cont(fw, fw_work->context); |
1075 | put_device(fw_work->device); | 1117 | put_device(fw_work->device); /* taken in request_firmware_nowait() */ |
1076 | 1118 | ||
1077 | module_put(fw_work->module); | 1119 | module_put(fw_work->module); |
1078 | kfree(fw_work); | 1120 | kfree(fw_work); |
@@ -1474,7 +1516,11 @@ static void __init fw_cache_init(void) | |||
1474 | static int __init firmware_class_init(void) | 1516 | static int __init firmware_class_init(void) |
1475 | { | 1517 | { |
1476 | fw_cache_init(); | 1518 | fw_cache_init(); |
1519 | #ifdef CONFIG_FW_LOADER_USER_HELPER | ||
1477 | return class_register(&firmware_class); | 1520 | return class_register(&firmware_class); |
1521 | #else | ||
1522 | return 0; | ||
1523 | #endif | ||
1478 | } | 1524 | } |
1479 | 1525 | ||
1480 | static void __exit firmware_class_exit(void) | 1526 | static void __exit firmware_class_exit(void) |
@@ -1483,7 +1529,9 @@ static void __exit firmware_class_exit(void) | |||
1483 | unregister_syscore_ops(&fw_syscore_ops); | 1529 | unregister_syscore_ops(&fw_syscore_ops); |
1484 | unregister_pm_notifier(&fw_cache.pm_notify); | 1530 | unregister_pm_notifier(&fw_cache.pm_notify); |
1485 | #endif | 1531 | #endif |
1532 | #ifdef CONFIG_FW_LOADER_USER_HELPER | ||
1486 | class_unregister(&firmware_class); | 1533 | class_unregister(&firmware_class); |
1534 | #endif | ||
1487 | } | 1535 | } |
1488 | 1536 | ||
1489 | fs_initcall(firmware_class_init); | 1537 | fs_initcall(firmware_class_init); |
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index 987604d56c83..83d0b17ba1c2 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c | |||
@@ -494,8 +494,8 @@ store_hard_offline_page(struct device *dev, | |||
494 | return ret ? ret : count; | 494 | return ret ? ret : count; |
495 | } | 495 | } |
496 | 496 | ||
497 | static DEVICE_ATTR(soft_offline_page, 0644, NULL, store_soft_offline_page); | 497 | static DEVICE_ATTR(soft_offline_page, S_IWUSR, NULL, store_soft_offline_page); |
498 | static DEVICE_ATTR(hard_offline_page, 0644, NULL, store_hard_offline_page); | 498 | static DEVICE_ATTR(hard_offline_page, S_IWUSR, NULL, store_hard_offline_page); |
499 | 499 | ||
500 | static __init int memory_fail_init(void) | 500 | static __init int memory_fail_init(void) |
501 | { | 501 | { |
diff --git a/drivers/block/paride/Kconfig b/drivers/block/paride/Kconfig index 28cf3082d442..efefb5ac3004 100644 --- a/drivers/block/paride/Kconfig +++ b/drivers/block/paride/Kconfig | |||
@@ -205,8 +205,8 @@ config PARIDE_EPAT | |||
205 | support. | 205 | support. |
206 | 206 | ||
207 | config PARIDE_EPATC8 | 207 | config PARIDE_EPATC8 |
208 | bool "Support c7/c8 chips (EXPERIMENTAL)" | 208 | bool "Support c7/c8 chips" |
209 | depends on PARIDE_EPAT && EXPERIMENTAL | 209 | depends on PARIDE_EPAT |
210 | help | 210 | help |
211 | This option enables support for the newer Shuttle EP1284 (aka c7 and | 211 | This option enables support for the newer Shuttle EP1284 (aka c7 and |
212 | c8) chip. You need this if you are using any recent Imation SuperDisk | 212 | c8) chip. You need this if you are using any recent Imation SuperDisk |
diff --git a/drivers/char/hw_random/exynos-rng.c b/drivers/char/hw_random/exynos-rng.c index 48bbfeca4b5d..4673fc4ad931 100644 --- a/drivers/char/hw_random/exynos-rng.c +++ b/drivers/char/hw_random/exynos-rng.c | |||
@@ -104,6 +104,7 @@ static int exynos_read(struct hwrng *rng, void *buf, | |||
104 | static int exynos_rng_probe(struct platform_device *pdev) | 104 | static int exynos_rng_probe(struct platform_device *pdev) |
105 | { | 105 | { |
106 | struct exynos_rng *exynos_rng; | 106 | struct exynos_rng *exynos_rng; |
107 | struct resource *res; | ||
107 | 108 | ||
108 | exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng), | 109 | exynos_rng = devm_kzalloc(&pdev->dev, sizeof(struct exynos_rng), |
109 | GFP_KERNEL); | 110 | GFP_KERNEL); |
@@ -120,10 +121,10 @@ static int exynos_rng_probe(struct platform_device *pdev) | |||
120 | return -ENOENT; | 121 | return -ENOENT; |
121 | } | 122 | } |
122 | 123 | ||
123 | exynos_rng->mem = devm_request_and_ioremap(&pdev->dev, | 124 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
124 | platform_get_resource(pdev, IORESOURCE_MEM, 0)); | 125 | exynos_rng->mem = devm_ioremap_resource(&pdev->dev, res); |
125 | if (!exynos_rng->mem) | 126 | if (IS_ERR(exynos_rng->mem)) |
126 | return -EBUSY; | 127 | return PTR_ERR(exynos_rng->mem); |
127 | 128 | ||
128 | platform_set_drvdata(pdev, exynos_rng); | 129 | platform_set_drvdata(pdev, exynos_rng); |
129 | 130 | ||
diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c index d8c54e253761..749dc16ca2cc 100644 --- a/drivers/char/hw_random/omap-rng.c +++ b/drivers/char/hw_random/omap-rng.c | |||
@@ -124,9 +124,9 @@ static int omap_rng_probe(struct platform_device *pdev) | |||
124 | goto err_ioremap; | 124 | goto err_ioremap; |
125 | } | 125 | } |
126 | 126 | ||
127 | priv->base = devm_request_and_ioremap(&pdev->dev, priv->mem_res); | 127 | priv->base = devm_ioremap_resource(&pdev->dev, priv->mem_res); |
128 | if (!priv->base) { | 128 | if (IS_ERR(priv->base)) { |
129 | ret = -ENOMEM; | 129 | ret = PTR_ERR(priv->base); |
130 | goto err_ioremap; | 130 | goto err_ioremap; |
131 | } | 131 | } |
132 | dev_set_drvdata(&pdev->dev, priv); | 132 | dev_set_drvdata(&pdev->dev, priv); |
diff --git a/drivers/char/hw_random/tx4939-rng.c b/drivers/char/hw_random/tx4939-rng.c index de473ef3882b..30991989d65b 100644 --- a/drivers/char/hw_random/tx4939-rng.c +++ b/drivers/char/hw_random/tx4939-rng.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * License. See the file "COPYING" in the main directory of this archive | 7 | * License. See the file "COPYING" in the main directory of this archive |
8 | * for more details. | 8 | * for more details. |
9 | */ | 9 | */ |
10 | #include <linux/err.h> | ||
10 | #include <linux/module.h> | 11 | #include <linux/module.h> |
11 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
@@ -115,9 +116,9 @@ static int __init tx4939_rng_probe(struct platform_device *dev) | |||
115 | rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL); | 116 | rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL); |
116 | if (!rngdev) | 117 | if (!rngdev) |
117 | return -ENOMEM; | 118 | return -ENOMEM; |
118 | rngdev->base = devm_request_and_ioremap(&dev->dev, r); | 119 | rngdev->base = devm_ioremap_resource(&dev->dev, r); |
119 | if (!rngdev->base) | 120 | if (IS_ERR(rngdev->base)) |
120 | return -EBUSY; | 121 | return PTR_ERR(rngdev->base); |
121 | 122 | ||
122 | rngdev->rng.name = dev_name(&dev->dev); | 123 | rngdev->rng.name = dev_name(&dev->dev); |
123 | rngdev->rng.data_present = tx4939_rng_data_present; | 124 | rngdev->rng.data_present = tx4939_rng_data_present; |
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm index 7f333af1c059..030ddf6dd3f1 100644 --- a/drivers/cpufreq/Kconfig.arm +++ b/drivers/cpufreq/Kconfig.arm | |||
@@ -21,8 +21,8 @@ config ARM_S3C2416_CPUFREQ | |||
21 | If in doubt, say N. | 21 | If in doubt, say N. |
22 | 22 | ||
23 | config ARM_S3C2416_CPUFREQ_VCORESCALE | 23 | config ARM_S3C2416_CPUFREQ_VCORESCALE |
24 | bool "Allow voltage scaling for S3C2416 arm core (EXPERIMENTAL)" | 24 | bool "Allow voltage scaling for S3C2416 arm core" |
25 | depends on ARM_S3C2416_CPUFREQ && REGULATOR && EXPERIMENTAL | 25 | depends on ARM_S3C2416_CPUFREQ && REGULATOR |
26 | help | 26 | help |
27 | Enable CPU voltage scaling when entering the dvs mode. | 27 | Enable CPU voltage scaling when entering the dvs mode. |
28 | It uses information gathered through existing hardware and | 28 | It uses information gathered through existing hardware and |
diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86 index 98e5abbe8f26..d7dc0ed6adb0 100644 --- a/drivers/cpufreq/Kconfig.x86 +++ b/drivers/cpufreq/Kconfig.x86 | |||
@@ -187,7 +187,7 @@ config X86_SPEEDSTEP_ICH | |||
187 | config X86_SPEEDSTEP_SMI | 187 | config X86_SPEEDSTEP_SMI |
188 | tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" | 188 | tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)" |
189 | select CPU_FREQ_TABLE | 189 | select CPU_FREQ_TABLE |
190 | depends on X86_32 && EXPERIMENTAL | 190 | depends on X86_32 |
191 | help | 191 | help |
192 | This adds the CPUFreq driver for certain mobile Intel Pentium III | 192 | This adds the CPUFreq driver for certain mobile Intel Pentium III |
193 | (Coppermine), all mobile Intel Pentium III-M (Tualatin) | 193 | (Coppermine), all mobile Intel Pentium III-M (Tualatin) |
@@ -219,7 +219,7 @@ config X86_P4_CLOCKMOD | |||
219 | 219 | ||
220 | config X86_CPUFREQ_NFORCE2 | 220 | config X86_CPUFREQ_NFORCE2 |
221 | tristate "nVidia nForce2 FSB changing" | 221 | tristate "nVidia nForce2 FSB changing" |
222 | depends on X86_32 && EXPERIMENTAL | 222 | depends on X86_32 |
223 | help | 223 | help |
224 | This adds the CPUFreq driver for FSB changing on nVidia nForce2 | 224 | This adds the CPUFreq driver for FSB changing on nVidia nForce2 |
225 | platforms. | 225 | platforms. |
@@ -255,7 +255,7 @@ config X86_LONGHAUL | |||
255 | config X86_E_POWERSAVER | 255 | config X86_E_POWERSAVER |
256 | tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)" | 256 | tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)" |
257 | select CPU_FREQ_TABLE | 257 | select CPU_FREQ_TABLE |
258 | depends on X86_32 && EXPERIMENTAL | 258 | depends on X86_32 |
259 | help | 259 | help |
260 | This adds the CPUFreq driver for VIA C7 processors. However, this driver | 260 | This adds the CPUFreq driver for VIA C7 processors. However, this driver |
261 | does not have any safeguards to prevent operating the CPU out of spec | 261 | does not have any safeguards to prevent operating the CPU out of spec |
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index 3e8ba02ba292..b33d1f6e1333 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/delay.h> | 14 | #include <linux/delay.h> |
15 | #include <linux/dmaengine.h> | 15 | #include <linux/dmaengine.h> |
16 | #include <linux/dma-mapping.h> | 16 | #include <linux/dma-mapping.h> |
17 | #include <linux/err.h> | ||
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
19 | #include <linux/io.h> | 20 | #include <linux/io.h> |
@@ -1489,9 +1490,9 @@ static int dw_probe(struct platform_device *pdev) | |||
1489 | if (irq < 0) | 1490 | if (irq < 0) |
1490 | return irq; | 1491 | return irq; |
1491 | 1492 | ||
1492 | regs = devm_request_and_ioremap(&pdev->dev, io); | 1493 | regs = devm_ioremap_resource(&pdev->dev, io); |
1493 | if (!regs) | 1494 | if (IS_ERR(regs)) |
1494 | return -EBUSY; | 1495 | return PTR_ERR(regs); |
1495 | 1496 | ||
1496 | dw_params = dma_read_byaddr(regs, DW_PARAMS); | 1497 | dw_params = dma_read_byaddr(regs, DW_PARAMS); |
1497 | autocfg = dw_params >> DW_PARAMS_EN & 0x1; | 1498 | autocfg = dw_params >> DW_PARAMS_EN & 0x1; |
diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c index a7dcf78b1ff8..70b8975d107e 100644 --- a/drivers/dma/imx-dma.c +++ b/drivers/dma/imx-dma.c | |||
@@ -14,6 +14,7 @@ | |||
14 | * http://www.opensource.org/licenses/gpl-license.html | 14 | * http://www.opensource.org/licenses/gpl-license.html |
15 | * http://www.gnu.org/copyleft/gpl.html | 15 | * http://www.gnu.org/copyleft/gpl.html |
16 | */ | 16 | */ |
17 | #include <linux/err.h> | ||
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/types.h> | 19 | #include <linux/types.h> |
19 | #include <linux/mm.h> | 20 | #include <linux/mm.h> |
@@ -1010,9 +1011,9 @@ static int __init imxdma_probe(struct platform_device *pdev) | |||
1010 | imxdma->devtype = pdev->id_entry->driver_data; | 1011 | imxdma->devtype = pdev->id_entry->driver_data; |
1011 | 1012 | ||
1012 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1013 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1013 | imxdma->base = devm_request_and_ioremap(&pdev->dev, res); | 1014 | imxdma->base = devm_ioremap_resource(&pdev->dev, res); |
1014 | if (!imxdma->base) | 1015 | if (IS_ERR(imxdma->base)) |
1015 | return -EADDRNOTAVAIL; | 1016 | return PTR_ERR(imxdma->base); |
1016 | 1017 | ||
1017 | irq = platform_get_irq(pdev, 0); | 1018 | irq = platform_get_irq(pdev, 0); |
1018 | if (irq < 0) | 1019 | if (irq < 0) |
diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index c6d98c00f05c..dc7466563507 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c | |||
@@ -5,6 +5,7 @@ | |||
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #include <linux/err.h> | ||
8 | #include <linux/module.h> | 9 | #include <linux/module.h> |
9 | #include <linux/init.h> | 10 | #include <linux/init.h> |
10 | #include <linux/types.h> | 11 | #include <linux/types.h> |
@@ -782,9 +783,9 @@ static int mmp_pdma_probe(struct platform_device *op) | |||
782 | if (!iores) | 783 | if (!iores) |
783 | return -EINVAL; | 784 | return -EINVAL; |
784 | 785 | ||
785 | pdev->base = devm_request_and_ioremap(pdev->dev, iores); | 786 | pdev->base = devm_ioremap_resource(pdev->dev, iores); |
786 | if (!pdev->base) | 787 | if (IS_ERR(pdev->base)) |
787 | return -EADDRNOTAVAIL; | 788 | return PTR_ERR(pdev->base); |
788 | 789 | ||
789 | of_id = of_match_device(mmp_pdma_dt_ids, pdev->dev); | 790 | of_id = of_match_device(mmp_pdma_dt_ids, pdev->dev); |
790 | if (of_id) | 791 | if (of_id) |
diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c index a9f1cd56689c..43d5a6c33297 100644 --- a/drivers/dma/mmp_tdma.c +++ b/drivers/dma/mmp_tdma.c | |||
@@ -9,6 +9,7 @@ | |||
9 | * | 9 | * |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/err.h> | ||
12 | #include <linux/module.h> | 13 | #include <linux/module.h> |
13 | #include <linux/init.h> | 14 | #include <linux/init.h> |
14 | #include <linux/types.h> | 15 | #include <linux/types.h> |
@@ -547,9 +548,9 @@ static int mmp_tdma_probe(struct platform_device *pdev) | |||
547 | if (!iores) | 548 | if (!iores) |
548 | return -EINVAL; | 549 | return -EINVAL; |
549 | 550 | ||
550 | tdev->base = devm_request_and_ioremap(&pdev->dev, iores); | 551 | tdev->base = devm_ioremap_resource(&pdev->dev, iores); |
551 | if (!tdev->base) | 552 | if (IS_ERR(tdev->base)) |
552 | return -EADDRNOTAVAIL; | 553 | return PTR_ERR(tdev->base); |
553 | 554 | ||
554 | INIT_LIST_HEAD(&tdev->device.channels); | 555 | INIT_LIST_HEAD(&tdev->device.channels); |
555 | 556 | ||
diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 3cad856fe67f..58c1896271e1 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/delay.h> | 21 | #include <linux/delay.h> |
22 | #include <linux/dmaengine.h> | 22 | #include <linux/dmaengine.h> |
23 | #include <linux/dma-mapping.h> | 23 | #include <linux/dma-mapping.h> |
24 | #include <linux/err.h> | ||
24 | #include <linux/init.h> | 25 | #include <linux/init.h> |
25 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
26 | #include <linux/io.h> | 27 | #include <linux/io.h> |
@@ -1240,12 +1241,9 @@ static int tegra_dma_probe(struct platform_device *pdev) | |||
1240 | return -EINVAL; | 1241 | return -EINVAL; |
1241 | } | 1242 | } |
1242 | 1243 | ||
1243 | tdma->base_addr = devm_request_and_ioremap(&pdev->dev, res); | 1244 | tdma->base_addr = devm_ioremap_resource(&pdev->dev, res); |
1244 | if (!tdma->base_addr) { | 1245 | if (IS_ERR(tdma->base_addr)) |
1245 | dev_err(&pdev->dev, | 1246 | return PTR_ERR(tdma->base_addr); |
1246 | "Cannot request memregion/iomap dma address\n"); | ||
1247 | return -EADDRNOTAVAIL; | ||
1248 | } | ||
1249 | 1247 | ||
1250 | tdma->dma_clk = devm_clk_get(&pdev->dev, NULL); | 1248 | tdma->dma_clk = devm_clk_get(&pdev->dev, NULL); |
1251 | if (IS_ERR(tdma->dma_clk)) { | 1249 | if (IS_ERR(tdma->dma_clk)) { |
diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig index 66719925970f..acb709bfac0f 100644 --- a/drivers/edac/Kconfig +++ b/drivers/edac/Kconfig | |||
@@ -158,7 +158,7 @@ config EDAC_I3000 | |||
158 | 158 | ||
159 | config EDAC_I3200 | 159 | config EDAC_I3200 |
160 | tristate "Intel 3200" | 160 | tristate "Intel 3200" |
161 | depends on EDAC_MM_EDAC && PCI && X86 && EXPERIMENTAL | 161 | depends on EDAC_MM_EDAC && PCI && X86 |
162 | help | 162 | help |
163 | Support for error detection and correction on the Intel | 163 | Support for error detection and correction on the Intel |
164 | 3200 and 3210 server chipsets. | 164 | 3200 and 3210 server chipsets. |
@@ -224,7 +224,7 @@ config EDAC_I7300 | |||
224 | config EDAC_SBRIDGE | 224 | config EDAC_SBRIDGE |
225 | tristate "Intel Sandy-Bridge Integrated MC" | 225 | tristate "Intel Sandy-Bridge Integrated MC" |
226 | depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL | 226 | depends on EDAC_MM_EDAC && PCI && X86_64 && X86_MCE_INTEL |
227 | depends on PCI_MMCONFIG && EXPERIMENTAL | 227 | depends on PCI_MMCONFIG |
228 | help | 228 | help |
229 | Support for error detection and correction the Intel | 229 | Support for error detection and correction the Intel |
230 | Sandy Bridge Integrated Memory Controller. | 230 | Sandy Bridge Integrated Memory Controller. |
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index e5116fa85140..1855a6fd2b0a 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig | |||
@@ -66,7 +66,7 @@ config DEBUG_GPIO | |||
66 | 66 | ||
67 | config GPIO_SYSFS | 67 | config GPIO_SYSFS |
68 | bool "/sys/class/gpio/... (sysfs interface)" | 68 | bool "/sys/class/gpio/... (sysfs interface)" |
69 | depends on SYSFS && EXPERIMENTAL | 69 | depends on SYSFS |
70 | help | 70 | help |
71 | Say Y here to add a sysfs interface for GPIOs. | 71 | Say Y here to add a sysfs interface for GPIOs. |
72 | 72 | ||
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c index 6819d63cb167..7472182967ce 100644 --- a/drivers/gpio/gpio-mvebu.c +++ b/drivers/gpio/gpio-mvebu.c | |||
@@ -33,6 +33,7 @@ | |||
33 | * interrupts. | 33 | * interrupts. |
34 | */ | 34 | */ |
35 | 35 | ||
36 | #include <linux/err.h> | ||
36 | #include <linux/module.h> | 37 | #include <linux/module.h> |
37 | #include <linux/gpio.h> | 38 | #include <linux/gpio.h> |
38 | #include <linux/irq.h> | 39 | #include <linux/irq.h> |
@@ -544,11 +545,9 @@ static int mvebu_gpio_probe(struct platform_device *pdev) | |||
544 | mvchip->chip.of_node = np; | 545 | mvchip->chip.of_node = np; |
545 | 546 | ||
546 | spin_lock_init(&mvchip->lock); | 547 | spin_lock_init(&mvchip->lock); |
547 | mvchip->membase = devm_request_and_ioremap(&pdev->dev, res); | 548 | mvchip->membase = devm_ioremap_resource(&pdev->dev, res); |
548 | if (! mvchip->membase) { | 549 | if (IS_ERR(mvchip->membase)) |
549 | dev_err(&pdev->dev, "Cannot ioremap\n"); | 550 | return PTR_ERR(mvchip->membase); |
550 | return -ENOMEM; | ||
551 | } | ||
552 | 551 | ||
553 | /* The Armada XP has a second range of registers for the | 552 | /* The Armada XP has a second range of registers for the |
554 | * per-CPU registers */ | 553 | * per-CPU registers */ |
@@ -559,11 +558,10 @@ static int mvebu_gpio_probe(struct platform_device *pdev) | |||
559 | return -ENODEV; | 558 | return -ENODEV; |
560 | } | 559 | } |
561 | 560 | ||
562 | mvchip->percpu_membase = devm_request_and_ioremap(&pdev->dev, res); | 561 | mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev, |
563 | if (! mvchip->percpu_membase) { | 562 | res); |
564 | dev_err(&pdev->dev, "Cannot ioremap\n"); | 563 | if (IS_ERR(mvchip->percpu_membase)) |
565 | return -ENOMEM; | 564 | return PTR_ERR(mvchip->percpu_membase); |
566 | } | ||
567 | } | 565 | } |
568 | 566 | ||
569 | /* | 567 | /* |
diff --git a/drivers/gpio/gpio-mxs.c b/drivers/gpio/gpio-mxs.c index fa2a63cad32e..45d97c46831a 100644 --- a/drivers/gpio/gpio-mxs.c +++ b/drivers/gpio/gpio-mxs.c | |||
@@ -20,6 +20,7 @@ | |||
20 | * MA 02110-1301, USA. | 20 | * MA 02110-1301, USA. |
21 | */ | 21 | */ |
22 | 22 | ||
23 | #include <linux/err.h> | ||
23 | #include <linux/init.h> | 24 | #include <linux/init.h> |
24 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
25 | #include <linux/io.h> | 26 | #include <linux/io.h> |
@@ -253,12 +254,14 @@ static int mxs_gpio_probe(struct platform_device *pdev) | |||
253 | parent = of_get_parent(np); | 254 | parent = of_get_parent(np); |
254 | base = of_iomap(parent, 0); | 255 | base = of_iomap(parent, 0); |
255 | of_node_put(parent); | 256 | of_node_put(parent); |
257 | if (!base) | ||
258 | return -EADDRNOTAVAIL; | ||
256 | } else { | 259 | } else { |
257 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 260 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
258 | base = devm_request_and_ioremap(&pdev->dev, iores); | 261 | base = devm_ioremap_resource(&pdev->dev, iores); |
262 | if (IS_ERR(base)) | ||
263 | return PTR_ERR(base); | ||
259 | } | 264 | } |
260 | if (!base) | ||
261 | return -EADDRNOTAVAIL; | ||
262 | } | 265 | } |
263 | port->base = base; | 266 | port->base = base; |
264 | 267 | ||
diff --git a/drivers/gpio/gpio-spear-spics.c b/drivers/gpio/gpio-spear-spics.c index 5f45fc4ed5d1..7a4bf7c0d98f 100644 --- a/drivers/gpio/gpio-spear-spics.c +++ b/drivers/gpio/gpio-spear-spics.c | |||
@@ -140,11 +140,9 @@ static int spics_gpio_probe(struct platform_device *pdev) | |||
140 | return -ENOMEM; | 140 | return -ENOMEM; |
141 | } | 141 | } |
142 | 142 | ||
143 | spics->base = devm_request_and_ioremap(&pdev->dev, res); | 143 | spics->base = devm_ioremap_resource(&pdev->dev, res); |
144 | if (!spics->base) { | 144 | if (IS_ERR(spics->base)) |
145 | dev_err(&pdev->dev, "request and ioremap fail\n"); | 145 | return PTR_ERR(spics->base); |
146 | return -ENOMEM; | ||
147 | } | ||
148 | 146 | ||
149 | if (of_property_read_u32(np, "st-spics,peripcfg-reg", | 147 | if (of_property_read_u32(np, "st-spics,peripcfg-reg", |
150 | &spics->perip_cfg)) | 148 | &spics->perip_cfg)) |
diff --git a/drivers/gpio/gpio-stp-xway.c b/drivers/gpio/gpio-stp-xway.c index 85841ee70b17..c20e05151212 100644 --- a/drivers/gpio/gpio-stp-xway.c +++ b/drivers/gpio/gpio-stp-xway.c | |||
@@ -214,11 +214,10 @@ static int xway_stp_probe(struct platform_device *pdev) | |||
214 | if (!chip) | 214 | if (!chip) |
215 | return -ENOMEM; | 215 | return -ENOMEM; |
216 | 216 | ||
217 | chip->virt = devm_request_and_ioremap(&pdev->dev, res); | 217 | chip->virt = devm_ioremap_resource(&pdev->dev, res); |
218 | if (!chip->virt) { | 218 | if (IS_ERR(chip->virt)) |
219 | dev_err(&pdev->dev, "failed to remap STP memory\n"); | 219 | return PTR_ERR(chip->virt); |
220 | return -ENOMEM; | 220 | |
221 | } | ||
222 | chip->gc.dev = &pdev->dev; | 221 | chip->gc.dev = &pdev->dev; |
223 | chip->gc.label = "stp-xway"; | 222 | chip->gc.label = "stp-xway"; |
224 | chip->gc.direction_output = xway_stp_dir_out; | 223 | chip->gc.direction_output = xway_stp_dir_out; |
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index 63cb643d4b5a..414ad912232f 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c | |||
@@ -17,6 +17,7 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/err.h> | ||
20 | #include <linux/init.h> | 21 | #include <linux/init.h> |
21 | #include <linux/irq.h> | 22 | #include <linux/irq.h> |
22 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
@@ -450,11 +451,9 @@ static int tegra_gpio_probe(struct platform_device *pdev) | |||
450 | return -ENODEV; | 451 | return -ENODEV; |
451 | } | 452 | } |
452 | 453 | ||
453 | regs = devm_request_and_ioremap(&pdev->dev, res); | 454 | regs = devm_ioremap_resource(&pdev->dev, res); |
454 | if (!regs) { | 455 | if (IS_ERR(regs)) |
455 | dev_err(&pdev->dev, "Couldn't ioremap regs\n"); | 456 | return PTR_ERR(regs); |
456 | return -ENODEV; | ||
457 | } | ||
458 | 457 | ||
459 | for (i = 0; i < tegra_gpio_bank_count; i++) { | 458 | for (i = 0; i < tegra_gpio_bank_count; i++) { |
460 | for (j = 0; j < 4; j++) { | 459 | for (j = 0; j < 4; j++) { |
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 199fca15f270..5359ca78130f 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -806,7 +806,7 @@ fail_unlock: | |||
806 | } | 806 | } |
807 | EXPORT_SYMBOL_GPL(gpio_export); | 807 | EXPORT_SYMBOL_GPL(gpio_export); |
808 | 808 | ||
809 | static int match_export(struct device *dev, void *data) | 809 | static int match_export(struct device *dev, const void *data) |
810 | { | 810 | { |
811 | return dev_get_drvdata(dev) == data; | 811 | return dev_get_drvdata(dev) == data; |
812 | } | 812 | } |
diff --git a/drivers/gpu/drm/ast/Kconfig b/drivers/gpu/drm/ast/Kconfig index a277b1257888..da4a51eae824 100644 --- a/drivers/gpu/drm/ast/Kconfig +++ b/drivers/gpu/drm/ast/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config DRM_AST | 1 | config DRM_AST |
2 | tristate "AST server chips" | 2 | tristate "AST server chips" |
3 | depends on DRM && PCI && EXPERIMENTAL | 3 | depends on DRM && PCI |
4 | select DRM_TTM | 4 | select DRM_TTM |
5 | select FB_SYS_COPYAREA | 5 | select FB_SYS_COPYAREA |
6 | select FB_SYS_FILLRECT | 6 | select FB_SYS_FILLRECT |
diff --git a/drivers/gpu/drm/cirrus/Kconfig b/drivers/gpu/drm/cirrus/Kconfig index fc154dd75296..bf67b22723f9 100644 --- a/drivers/gpu/drm/cirrus/Kconfig +++ b/drivers/gpu/drm/cirrus/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config DRM_CIRRUS_QEMU | 1 | config DRM_CIRRUS_QEMU |
2 | tristate "Cirrus driver for QEMU emulated device" | 2 | tristate "Cirrus driver for QEMU emulated device" |
3 | depends on DRM && PCI && EXPERIMENTAL | 3 | depends on DRM && PCI |
4 | select FB_SYS_FILLRECT | 4 | select FB_SYS_FILLRECT |
5 | select FB_SYS_COPYAREA | 5 | select FB_SYS_COPYAREA |
6 | select FB_SYS_IMAGEBLIT | 6 | select FB_SYS_IMAGEBLIT |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c b/drivers/gpu/drm/exynos/exynos_drm_fimc.c index 67a83e69544b..411f69b76e84 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c | |||
@@ -1785,11 +1785,9 @@ static int fimc_probe(struct platform_device *pdev) | |||
1785 | 1785 | ||
1786 | /* resource memory */ | 1786 | /* resource memory */ |
1787 | ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1787 | ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1788 | ctx->regs = devm_request_and_ioremap(dev, ctx->regs_res); | 1788 | ctx->regs = devm_ioremap_resource(dev, ctx->regs_res); |
1789 | if (!ctx->regs) { | 1789 | if (IS_ERR(ctx->regs)) |
1790 | dev_err(dev, "failed to map registers.\n"); | 1790 | return PTR_ERR(ctx->regs); |
1791 | return -ENXIO; | ||
1792 | } | ||
1793 | 1791 | ||
1794 | /* resource irq */ | 1792 | /* resource irq */ |
1795 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1793 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c index 9537761931ee..36493ce71f9a 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c | |||
@@ -913,11 +913,9 @@ static int fimd_probe(struct platform_device *pdev) | |||
913 | 913 | ||
914 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 914 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
915 | 915 | ||
916 | ctx->regs = devm_request_and_ioremap(&pdev->dev, res); | 916 | ctx->regs = devm_ioremap_resource(&pdev->dev, res); |
917 | if (!ctx->regs) { | 917 | if (IS_ERR(ctx->regs)) |
918 | dev_err(dev, "failed to map registers\n"); | 918 | return PTR_ERR(ctx->regs); |
919 | return -ENXIO; | ||
920 | } | ||
921 | 919 | ||
922 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 920 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
923 | if (!res) { | 921 | if (!res) { |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_g2d.c b/drivers/gpu/drm/exynos/exynos_drm_g2d.c index 9a4c08e7453c..fb2f81b8063d 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_g2d.c +++ b/drivers/gpu/drm/exynos/exynos_drm_g2d.c | |||
@@ -1136,10 +1136,9 @@ static int g2d_probe(struct platform_device *pdev) | |||
1136 | 1136 | ||
1137 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1137 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1138 | 1138 | ||
1139 | g2d->regs = devm_request_and_ioremap(&pdev->dev, res); | 1139 | g2d->regs = devm_ioremap_resource(&pdev->dev, res); |
1140 | if (!g2d->regs) { | 1140 | if (IS_ERR(g2d->regs)) { |
1141 | dev_err(dev, "failed to remap I/O memory\n"); | 1141 | ret = PTR_ERR(g2d->regs); |
1142 | ret = -ENXIO; | ||
1143 | goto err_put_clk; | 1142 | goto err_put_clk; |
1144 | } | 1143 | } |
1145 | 1144 | ||
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c b/drivers/gpu/drm/exynos/exynos_drm_gsc.c index 8140753ec9c8..7841c3b8a20e 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c | |||
@@ -1692,11 +1692,9 @@ static int gsc_probe(struct platform_device *pdev) | |||
1692 | 1692 | ||
1693 | /* resource memory */ | 1693 | /* resource memory */ |
1694 | ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1694 | ctx->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1695 | ctx->regs = devm_request_and_ioremap(dev, ctx->regs_res); | 1695 | ctx->regs = devm_ioremap_resource(dev, ctx->regs_res); |
1696 | if (!ctx->regs) { | 1696 | if (IS_ERR(ctx->regs)) |
1697 | dev_err(dev, "failed to map registers.\n"); | 1697 | return PTR_ERR(ctx->regs); |
1698 | return -ENXIO; | ||
1699 | } | ||
1700 | 1698 | ||
1701 | /* resource irq */ | 1699 | /* resource irq */ |
1702 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1700 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
diff --git a/drivers/gpu/drm/exynos/exynos_drm_rotator.c b/drivers/gpu/drm/exynos/exynos_drm_rotator.c index f976e29def6e..a40b9fb60240 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_rotator.c +++ b/drivers/gpu/drm/exynos/exynos_drm_rotator.c | |||
@@ -656,11 +656,9 @@ static int rotator_probe(struct platform_device *pdev) | |||
656 | platform_get_device_id(pdev)->driver_data; | 656 | platform_get_device_id(pdev)->driver_data; |
657 | 657 | ||
658 | rot->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 658 | rot->regs_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
659 | rot->regs = devm_request_and_ioremap(dev, rot->regs_res); | 659 | rot->regs = devm_ioremap_resource(dev, rot->regs_res); |
660 | if (!rot->regs) { | 660 | if (IS_ERR(rot->regs)) |
661 | dev_err(dev, "failed to map register\n"); | 661 | return PTR_ERR(rot->regs); |
662 | return -ENXIO; | ||
663 | } | ||
664 | 662 | ||
665 | rot->irq = platform_get_irq(pdev, 0); | 663 | rot->irq = platform_get_irq(pdev, 0); |
666 | if (rot->irq < 0) { | 664 | if (rot->irq < 0) { |
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c index fbab3c468603..233247505ff8 100644 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c | |||
@@ -2501,11 +2501,9 @@ static int hdmi_probe(struct platform_device *pdev) | |||
2501 | return -ENOENT; | 2501 | return -ENOENT; |
2502 | } | 2502 | } |
2503 | 2503 | ||
2504 | hdata->regs = devm_request_and_ioremap(&pdev->dev, res); | 2504 | hdata->regs = devm_ioremap_resource(&pdev->dev, res); |
2505 | if (!hdata->regs) { | 2505 | if (IS_ERR(hdata->regs)) |
2506 | DRM_ERROR("failed to map registers\n"); | 2506 | return PTR_ERR(hdata->regs); |
2507 | return -ENXIO; | ||
2508 | } | ||
2509 | 2507 | ||
2510 | ret = devm_gpio_request(&pdev->dev, hdata->hpd_gpio, "HPD"); | 2508 | ret = devm_gpio_request(&pdev->dev, hdata->hpd_gpio, "HPD"); |
2511 | if (ret) { | 2509 | if (ret) { |
diff --git a/drivers/gpu/drm/gma500/Kconfig b/drivers/gpu/drm/gma500/Kconfig index 42e665c7e90a..1188f0fe7e4f 100644 --- a/drivers/gpu/drm/gma500/Kconfig +++ b/drivers/gpu/drm/gma500/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config DRM_GMA500 | 1 | config DRM_GMA500 |
2 | tristate "Intel GMA5/600 KMS Framebuffer" | 2 | tristate "Intel GMA5/600 KMS Framebuffer" |
3 | depends on DRM && PCI && X86 && EXPERIMENTAL | 3 | depends on DRM && PCI && X86 |
4 | select FB_CFB_COPYAREA | 4 | select FB_CFB_COPYAREA |
5 | select FB_CFB_FILLRECT | 5 | select FB_CFB_FILLRECT |
6 | select FB_CFB_IMAGEBLIT | 6 | select FB_CFB_IMAGEBLIT |
diff --git a/drivers/gpu/drm/mgag200/Kconfig b/drivers/gpu/drm/mgag200/Kconfig index d63013497f66..b487cdec5ee7 100644 --- a/drivers/gpu/drm/mgag200/Kconfig +++ b/drivers/gpu/drm/mgag200/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config DRM_MGAG200 | 1 | config DRM_MGAG200 |
2 | tristate "Kernel modesetting driver for MGA G200 server engines" | 2 | tristate "Kernel modesetting driver for MGA G200 server engines" |
3 | depends on DRM && PCI && EXPERIMENTAL | 3 | depends on DRM && PCI |
4 | select FB_SYS_FILLRECT | 4 | select FB_SYS_FILLRECT |
5 | select FB_SYS_COPYAREA | 5 | select FB_SYS_COPYAREA |
6 | select FB_SYS_IMAGEBLIT | 6 | select FB_SYS_IMAGEBLIT |
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index 656b2e3334a6..d365c6dff0fb 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c | |||
@@ -764,11 +764,9 @@ static int tegra_dc_probe(struct platform_device *pdev) | |||
764 | return -ENXIO; | 764 | return -ENXIO; |
765 | } | 765 | } |
766 | 766 | ||
767 | dc->regs = devm_request_and_ioremap(&pdev->dev, regs); | 767 | dc->regs = devm_ioremap_resource(&pdev->dev, regs); |
768 | if (!dc->regs) { | 768 | if (IS_ERR(dc->regs)) |
769 | dev_err(&pdev->dev, "failed to remap registers\n"); | 769 | return PTR_ERR(dc->regs); |
770 | return -ENXIO; | ||
771 | } | ||
772 | 770 | ||
773 | dc->irq = platform_get_irq(pdev, 0); | 771 | dc->irq = platform_get_irq(pdev, 0); |
774 | if (dc->irq < 0) { | 772 | if (dc->irq < 0) { |
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index e060c7e6434d..266af7879240 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c | |||
@@ -1259,9 +1259,9 @@ static int tegra_hdmi_probe(struct platform_device *pdev) | |||
1259 | if (!regs) | 1259 | if (!regs) |
1260 | return -ENXIO; | 1260 | return -ENXIO; |
1261 | 1261 | ||
1262 | hdmi->regs = devm_request_and_ioremap(&pdev->dev, regs); | 1262 | hdmi->regs = devm_ioremap_resource(&pdev->dev, regs); |
1263 | if (!hdmi->regs) | 1263 | if (IS_ERR(hdmi->regs)) |
1264 | return -EADDRNOTAVAIL; | 1264 | return PTR_ERR(hdmi->regs); |
1265 | 1265 | ||
1266 | err = platform_get_irq(pdev, 0); | 1266 | err = platform_get_irq(pdev, 0); |
1267 | if (err < 0) | 1267 | if (err < 0) |
diff --git a/drivers/gpu/drm/tegra/host1x.c b/drivers/gpu/drm/tegra/host1x.c index 5d17b113a6fc..92e25a7e00ea 100644 --- a/drivers/gpu/drm/tegra/host1x.c +++ b/drivers/gpu/drm/tegra/host1x.c | |||
@@ -139,9 +139,9 @@ static int tegra_host1x_probe(struct platform_device *pdev) | |||
139 | 139 | ||
140 | host1x->irq = err; | 140 | host1x->irq = err; |
141 | 141 | ||
142 | host1x->regs = devm_request_and_ioremap(&pdev->dev, regs); | 142 | host1x->regs = devm_ioremap_resource(&pdev->dev, regs); |
143 | if (!host1x->regs) { | 143 | if (IS_ERR(host1x->regs)) { |
144 | err = -EADDRNOTAVAIL; | 144 | err = PTR_ERR(host1x->regs); |
145 | goto err; | 145 | goto err; |
146 | } | 146 | } |
147 | 147 | ||
diff --git a/drivers/gpu/drm/udl/Kconfig b/drivers/gpu/drm/udl/Kconfig index 56e0bf31d425..6222af19f456 100644 --- a/drivers/gpu/drm/udl/Kconfig +++ b/drivers/gpu/drm/udl/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config DRM_UDL | 1 | config DRM_UDL |
2 | tristate "DisplayLink" | 2 | tristate "DisplayLink" |
3 | depends on DRM && EXPERIMENTAL | 3 | depends on DRM |
4 | depends on USB_ARCH_HAS_HCD | 4 | depends on USB_ARCH_HAS_HCD |
5 | select DRM_USB | 5 | select DRM_USB |
6 | select FB_SYS_FILLRECT | 6 | select FB_SYS_FILLRECT |
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 2f8c76becc6b..46cde098c11c 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig | |||
@@ -89,7 +89,7 @@ source drivers/i2c/busses/Kconfig | |||
89 | 89 | ||
90 | config I2C_STUB | 90 | config I2C_STUB |
91 | tristate "I2C/SMBus Test Stub" | 91 | tristate "I2C/SMBus Test Stub" |
92 | depends on EXPERIMENTAL && m | 92 | depends on m |
93 | default 'n' | 93 | default 'n' |
94 | help | 94 | help |
95 | This module may be useful to developers of SMBus client drivers, | 95 | This module may be useful to developers of SMBus client drivers, |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index bdca5111eb9d..9b94a78ca776 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
@@ -22,7 +22,7 @@ config I2C_ALI1535 | |||
22 | 22 | ||
23 | config I2C_ALI1563 | 23 | config I2C_ALI1563 |
24 | tristate "ALI 1563" | 24 | tristate "ALI 1563" |
25 | depends on PCI && EXPERIMENTAL | 25 | depends on PCI |
26 | help | 26 | help |
27 | If you say yes to this option, support will be included for the SMB | 27 | If you say yes to this option, support will be included for the SMB |
28 | Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB | 28 | Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB |
@@ -56,7 +56,7 @@ config I2C_AMD756 | |||
56 | 56 | ||
57 | config I2C_AMD756_S4882 | 57 | config I2C_AMD756_S4882 |
58 | tristate "SMBus multiplexing on the Tyan S4882" | 58 | tristate "SMBus multiplexing on the Tyan S4882" |
59 | depends on I2C_AMD756 && X86 && EXPERIMENTAL | 59 | depends on I2C_AMD756 && X86 |
60 | help | 60 | help |
61 | Enabling this option will add specific SMBus support for the Tyan | 61 | Enabling this option will add specific SMBus support for the Tyan |
62 | S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed | 62 | S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed |
@@ -164,7 +164,7 @@ config I2C_NFORCE2 | |||
164 | 164 | ||
165 | config I2C_NFORCE2_S4985 | 165 | config I2C_NFORCE2_S4985 |
166 | tristate "SMBus multiplexing on the Tyan S4985" | 166 | tristate "SMBus multiplexing on the Tyan S4985" |
167 | depends on I2C_NFORCE2 && X86 && EXPERIMENTAL | 167 | depends on I2C_NFORCE2 && X86 |
168 | help | 168 | help |
169 | Enabling this option will add specific SMBus support for the Tyan | 169 | Enabling this option will add specific SMBus support for the Tyan |
170 | S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed | 170 | S4985 motherboard. On this 4-CPU board, the SMBus is multiplexed |
@@ -215,7 +215,7 @@ config I2C_SIS96X | |||
215 | 215 | ||
216 | config I2C_VIA | 216 | config I2C_VIA |
217 | tristate "VIA VT82C586B" | 217 | tristate "VIA VT82C586B" |
218 | depends on PCI && EXPERIMENTAL | 218 | depends on PCI |
219 | select I2C_ALGOBIT | 219 | select I2C_ALGOBIT |
220 | help | 220 | help |
221 | If you say yes to this option, support will be included for the VIA | 221 | If you say yes to this option, support will be included for the VIA |
@@ -267,7 +267,7 @@ comment "Mac SMBus host controller drivers" | |||
267 | 267 | ||
268 | config I2C_HYDRA | 268 | config I2C_HYDRA |
269 | tristate "CHRP Apple Hydra Mac I/O I2C interface" | 269 | tristate "CHRP Apple Hydra Mac I/O I2C interface" |
270 | depends on PCI && PPC_CHRP && EXPERIMENTAL | 270 | depends on PCI && PPC_CHRP |
271 | select I2C_ALGOBIT | 271 | select I2C_ALGOBIT |
272 | help | 272 | help |
273 | This supports the use of the I2C interface in the Apple Hydra Mac | 273 | This supports the use of the I2C interface in the Apple Hydra Mac |
@@ -293,7 +293,7 @@ comment "I2C system bus drivers (mostly embedded / system-on-chip)" | |||
293 | 293 | ||
294 | config I2C_AT91 | 294 | config I2C_AT91 |
295 | tristate "Atmel AT91 I2C Two-Wire interface (TWI)" | 295 | tristate "Atmel AT91 I2C Two-Wire interface (TWI)" |
296 | depends on ARCH_AT91 && EXPERIMENTAL | 296 | depends on ARCH_AT91 |
297 | help | 297 | help |
298 | This supports the use of the I2C interface on Atmel AT91 | 298 | This supports the use of the I2C interface on Atmel AT91 |
299 | processors. | 299 | processors. |
@@ -519,7 +519,6 @@ config I2C_NUC900 | |||
519 | 519 | ||
520 | config I2C_OCORES | 520 | config I2C_OCORES |
521 | tristate "OpenCores I2C Controller" | 521 | tristate "OpenCores I2C Controller" |
522 | depends on EXPERIMENTAL | ||
523 | help | 522 | help |
524 | If you say yes to this option, support will be included for the | 523 | If you say yes to this option, support will be included for the |
525 | OpenCores I2C controller. For details see | 524 | OpenCores I2C controller. For details see |
@@ -712,7 +711,7 @@ config I2C_OCTEON | |||
712 | 711 | ||
713 | config I2C_XILINX | 712 | config I2C_XILINX |
714 | tristate "Xilinx I2C Controller" | 713 | tristate "Xilinx I2C Controller" |
715 | depends on EXPERIMENTAL && HAS_IOMEM | 714 | depends on HAS_IOMEM |
716 | help | 715 | help |
717 | If you say yes to this option, support will be included for the | 716 | If you say yes to this option, support will be included for the |
718 | Xilinx I2C controller. | 717 | Xilinx I2C controller. |
@@ -803,7 +802,6 @@ config I2C_PARPORT_LIGHT | |||
803 | 802 | ||
804 | config I2C_TAOS_EVM | 803 | config I2C_TAOS_EVM |
805 | tristate "TAOS evaluation module" | 804 | tristate "TAOS evaluation module" |
806 | depends on EXPERIMENTAL | ||
807 | select SERIO | 805 | select SERIO |
808 | select SERIO_SERPORT | 806 | select SERIO_SERPORT |
809 | default n | 807 | default n |
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c index 2bfc04d0a1b1..ebc224154695 100644 --- a/drivers/i2c/busses/i2c-at91.c +++ b/drivers/i2c/busses/i2c-at91.c | |||
@@ -723,9 +723,9 @@ static int at91_twi_probe(struct platform_device *pdev) | |||
723 | if (!dev->pdata) | 723 | if (!dev->pdata) |
724 | return -ENODEV; | 724 | return -ENODEV; |
725 | 725 | ||
726 | dev->base = devm_request_and_ioremap(&pdev->dev, mem); | 726 | dev->base = devm_ioremap_resource(&pdev->dev, mem); |
727 | if (!dev->base) | 727 | if (IS_ERR(dev->base)) |
728 | return -EBUSY; | 728 | return PTR_ERR(dev->base); |
729 | 729 | ||
730 | dev->irq = platform_get_irq(pdev, 0); | 730 | dev->irq = platform_get_irq(pdev, 0); |
731 | if (dev->irq < 0) | 731 | if (dev->irq < 0) |
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index b9734747d610..a71ece63e917 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c | |||
@@ -511,9 +511,9 @@ static int __init i2c_imx_probe(struct platform_device *pdev) | |||
511 | return -ENOENT; | 511 | return -ENOENT; |
512 | } | 512 | } |
513 | 513 | ||
514 | base = devm_request_and_ioremap(&pdev->dev, res); | 514 | base = devm_ioremap_resource(&pdev->dev, res); |
515 | if (!base) | 515 | if (IS_ERR(base)) |
516 | return -EBUSY; | 516 | return PTR_ERR(base); |
517 | 517 | ||
518 | i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct), | 518 | i2c_imx = devm_kzalloc(&pdev->dev, sizeof(struct imx_i2c_struct), |
519 | GFP_KERNEL); | 519 | GFP_KERNEL); |
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c index a873d0ad1acb..a337d08a392d 100644 --- a/drivers/i2c/busses/i2c-ocores.c +++ b/drivers/i2c/busses/i2c-ocores.c | |||
@@ -12,6 +12,7 @@ | |||
12 | * kind, whether express or implied. | 12 | * kind, whether express or implied. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/err.h> | ||
15 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
16 | #include <linux/module.h> | 17 | #include <linux/module.h> |
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
@@ -364,9 +365,9 @@ static int ocores_i2c_probe(struct platform_device *pdev) | |||
364 | if (!i2c) | 365 | if (!i2c) |
365 | return -ENOMEM; | 366 | return -ENOMEM; |
366 | 367 | ||
367 | i2c->base = devm_request_and_ioremap(&pdev->dev, res); | 368 | i2c->base = devm_ioremap_resource(&pdev->dev, res); |
368 | if (!i2c->base) | 369 | if (IS_ERR(i2c->base)) |
369 | return -EADDRNOTAVAIL; | 370 | return PTR_ERR(i2c->base); |
370 | 371 | ||
371 | pdata = pdev->dev.platform_data; | 372 | pdata = pdev->dev.platform_data; |
372 | if (pdata) { | 373 | if (pdata) { |
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 4cc2f0528c88..3ee188679cf1 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
@@ -1103,11 +1103,9 @@ omap_i2c_probe(struct platform_device *pdev) | |||
1103 | return -ENOMEM; | 1103 | return -ENOMEM; |
1104 | } | 1104 | } |
1105 | 1105 | ||
1106 | dev->base = devm_request_and_ioremap(&pdev->dev, mem); | 1106 | dev->base = devm_ioremap_resource(&pdev->dev, mem); |
1107 | if (!dev->base) { | 1107 | if (IS_ERR(dev->base)) |
1108 | dev_err(&pdev->dev, "I2C region already claimed\n"); | 1108 | return PTR_ERR(dev->base); |
1109 | return -ENOMEM; | ||
1110 | } | ||
1111 | 1109 | ||
1112 | match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev); | 1110 | match = of_match_device(of_match_ptr(omap_i2c_of_match), &pdev->dev); |
1113 | if (match) { | 1111 | if (match) { |
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c index 9bd4d73d29e3..4ba4a95b6b26 100644 --- a/drivers/i2c/busses/i2c-rcar.c +++ b/drivers/i2c/busses/i2c-rcar.c | |||
@@ -642,11 +642,9 @@ static int rcar_i2c_probe(struct platform_device *pdev) | |||
642 | if (ret < 0) | 642 | if (ret < 0) |
643 | return ret; | 643 | return ret; |
644 | 644 | ||
645 | priv->io = devm_request_and_ioremap(dev, res); | 645 | priv->io = devm_ioremap_resource(dev, res); |
646 | if (!priv->io) { | 646 | if (IS_ERR(priv->io)) |
647 | dev_err(dev, "cannot ioremap\n"); | 647 | return PTR_ERR(priv->io); |
648 | return -ENODEV; | ||
649 | } | ||
650 | 648 | ||
651 | priv->irq = platform_get_irq(pdev, 0); | 649 | priv->irq = platform_get_irq(pdev, 0); |
652 | init_waitqueue_head(&priv->wait); | 650 | init_waitqueue_head(&priv->wait); |
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c index a290d089ceaf..c807a6d14f0c 100644 --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c | |||
@@ -1042,11 +1042,10 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) | |||
1042 | goto err_clk; | 1042 | goto err_clk; |
1043 | } | 1043 | } |
1044 | 1044 | ||
1045 | i2c->regs = devm_request_and_ioremap(&pdev->dev, res); | 1045 | i2c->regs = devm_ioremap_resource(&pdev->dev, res); |
1046 | 1046 | ||
1047 | if (i2c->regs == NULL) { | 1047 | if (IS_ERR(i2c->regs)) { |
1048 | dev_err(&pdev->dev, "cannot map IO\n"); | 1048 | ret = PTR_ERR(i2c->regs); |
1049 | ret = -ENXIO; | ||
1050 | goto err_clk; | 1049 | goto err_clk; |
1051 | } | 1050 | } |
1052 | 1051 | ||
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c index e03381aee34f..5a7ad240bd26 100644 --- a/drivers/i2c/busses/i2c-sirf.c +++ b/drivers/i2c/busses/i2c-sirf.c | |||
@@ -309,10 +309,9 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev) | |||
309 | goto out; | 309 | goto out; |
310 | } | 310 | } |
311 | 311 | ||
312 | siic->base = devm_request_and_ioremap(&pdev->dev, mem_res); | 312 | siic->base = devm_ioremap_resource(&pdev->dev, mem_res); |
313 | if (siic->base == NULL) { | 313 | if (IS_ERR(siic->base)) { |
314 | dev_err(&pdev->dev, "IO remap failed!\n"); | 314 | err = PTR_ERR(siic->base); |
315 | err = -ENOMEM; | ||
316 | goto out; | 315 | goto out; |
317 | } | 316 | } |
318 | 317 | ||
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c index 580a0c04cb42..60195b590637 100644 --- a/drivers/i2c/busses/i2c-stu300.c +++ b/drivers/i2c/busses/i2c-stu300.c | |||
@@ -888,11 +888,11 @@ stu300_probe(struct platform_device *pdev) | |||
888 | if (!res) | 888 | if (!res) |
889 | return -ENOENT; | 889 | return -ENOENT; |
890 | 890 | ||
891 | dev->virtbase = devm_request_and_ioremap(&pdev->dev, res); | 891 | dev->virtbase = devm_ioremap_resource(&pdev->dev, res); |
892 | dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual " | 892 | dev_dbg(&pdev->dev, "initialize bus device I2C%d on virtual " |
893 | "base %p\n", bus_nr, dev->virtbase); | 893 | "base %p\n", bus_nr, dev->virtbase); |
894 | if (!dev->virtbase) | 894 | if (IS_ERR(dev->virtbase)) |
895 | return -ENOMEM; | 895 | return PTR_ERR(dev->virtbase); |
896 | 896 | ||
897 | dev->irq = platform_get_irq(pdev, 0); | 897 | dev->irq = platform_get_irq(pdev, 0); |
898 | ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev); | 898 | ret = devm_request_irq(&pdev->dev, dev->irq, stu300_irh, 0, NAME, dev); |
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 7b38877ffec1..1fb30099dac4 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c | |||
@@ -669,11 +669,9 @@ static int tegra_i2c_probe(struct platform_device *pdev) | |||
669 | return -EINVAL; | 669 | return -EINVAL; |
670 | } | 670 | } |
671 | 671 | ||
672 | base = devm_request_and_ioremap(&pdev->dev, res); | 672 | base = devm_ioremap_resource(&pdev->dev, res); |
673 | if (!base) { | 673 | if (IS_ERR(base)) |
674 | dev_err(&pdev->dev, "Cannot request/ioremap I2C registers\n"); | 674 | return PTR_ERR(base); |
675 | return -EADDRNOTAVAIL; | ||
676 | } | ||
677 | 675 | ||
678 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 676 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
679 | if (!res) { | 677 | if (!res) { |
diff --git a/drivers/i2c/busses/i2c-xlr.c b/drivers/i2c/busses/i2c-xlr.c index a005265461da..93f029e98c0d 100644 --- a/drivers/i2c/busses/i2c-xlr.c +++ b/drivers/i2c/busses/i2c-xlr.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * warranty of any kind, whether express or implied. | 7 | * warranty of any kind, whether express or implied. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/err.h> | ||
10 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
11 | #include <linux/module.h> | 12 | #include <linux/module.h> |
12 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
@@ -225,11 +226,9 @@ static int xlr_i2c_probe(struct platform_device *pdev) | |||
225 | return -ENOMEM; | 226 | return -ENOMEM; |
226 | 227 | ||
227 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 228 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
228 | priv->iobase = devm_request_and_ioremap(&pdev->dev, res); | 229 | priv->iobase = devm_ioremap_resource(&pdev->dev, res); |
229 | if (!priv->iobase) { | 230 | if (IS_ERR(priv->iobase)) |
230 | dev_err(&pdev->dev, "devm_request_and_ioremap failed\n"); | 231 | return PTR_ERR(priv->iobase); |
231 | return -EBUSY; | ||
232 | } | ||
233 | 232 | ||
234 | priv->adap.dev.parent = &pdev->dev; | 233 | priv->adap.dev.parent = &pdev->dev; |
235 | priv->adap.owner = THIS_MODULE; | 234 | priv->adap.owner = THIS_MODULE; |
diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig index a0edd9854218..0be5b83c08fa 100644 --- a/drivers/i2c/muxes/Kconfig +++ b/drivers/i2c/muxes/Kconfig | |||
@@ -19,7 +19,6 @@ config I2C_MUX_GPIO | |||
19 | 19 | ||
20 | config I2C_MUX_PCA9541 | 20 | config I2C_MUX_PCA9541 |
21 | tristate "NXP PCA9541 I2C Master Selector" | 21 | tristate "NXP PCA9541 I2C Master Selector" |
22 | depends on EXPERIMENTAL | ||
23 | help | 22 | help |
24 | If you say yes here you get support for the NXP PCA9541 | 23 | If you say yes here you get support for the NXP PCA9541 |
25 | I2C Master Selector. | 24 | I2C Master Selector. |
@@ -29,7 +28,6 @@ config I2C_MUX_PCA9541 | |||
29 | 28 | ||
30 | config I2C_MUX_PCA954x | 29 | config I2C_MUX_PCA954x |
31 | tristate "Philips PCA954x I2C Mux/switches" | 30 | tristate "Philips PCA954x I2C Mux/switches" |
32 | depends on EXPERIMENTAL | ||
33 | help | 31 | help |
34 | If you say yes here you get support for the Philips PCA954x | 32 | If you say yes here you get support for the Philips PCA954x |
35 | I2C mux/switch devices. | 33 | I2C mux/switch devices. |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 5a26584934ca..3c4417a1d438 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -322,8 +322,7 @@ config BLK_DEV_GENERIC | |||
322 | which otherwise might not be supported. | 322 | which otherwise might not be supported. |
323 | 323 | ||
324 | config BLK_DEV_OPTI621 | 324 | config BLK_DEV_OPTI621 |
325 | tristate "OPTi 82C621 chipset enhanced support (EXPERIMENTAL)" | 325 | tristate "OPTi 82C621 chipset enhanced support" |
326 | depends on EXPERIMENTAL | ||
327 | select BLK_DEV_IDEPCI | 326 | select BLK_DEV_IDEPCI |
328 | help | 327 | help |
329 | This is a driver for the OPTi 82C621 EIDE controller. | 328 | This is a driver for the OPTi 82C621 EIDE controller. |
@@ -417,7 +416,6 @@ config BLK_DEV_CY82C693 | |||
417 | 416 | ||
418 | config BLK_DEV_CS5520 | 417 | config BLK_DEV_CS5520 |
419 | tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)" | 418 | tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)" |
420 | depends on EXPERIMENTAL | ||
421 | select BLK_DEV_IDEDMA_PCI | 419 | select BLK_DEV_IDEDMA_PCI |
422 | help | 420 | help |
423 | Include support for PIO tuning and virtual DMA on the Cyrix MediaGX | 421 | Include support for PIO tuning and virtual DMA on the Cyrix MediaGX |
@@ -761,8 +759,8 @@ config BLK_DEV_GAYLE | |||
761 | use Gayle IDE interfaces on the Zorro expansion bus. | 759 | use Gayle IDE interfaces on the Zorro expansion bus. |
762 | 760 | ||
763 | config BLK_DEV_BUDDHA | 761 | config BLK_DEV_BUDDHA |
764 | tristate "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" | 762 | tristate "Buddha/Catweasel/X-Surf IDE interface support" |
765 | depends on ZORRO && EXPERIMENTAL | 763 | depends on ZORRO |
766 | help | 764 | help |
767 | This is the IDE driver for the IDE interfaces on the Buddha, Catweasel | 765 | This is the IDE driver for the IDE interfaces on the Buddha, Catweasel |
768 | and X-Surf expansion boards. It supports up to two interfaces on the | 766 | and X-Surf expansion boards. It supports up to two interfaces on the |
diff --git a/drivers/idle/Kconfig b/drivers/idle/Kconfig index 8489eb58a52c..4732dfc15447 100644 --- a/drivers/idle/Kconfig +++ b/drivers/idle/Kconfig | |||
@@ -18,7 +18,6 @@ config I7300_IDLE_IOAT_CHANNEL | |||
18 | config I7300_IDLE | 18 | config I7300_IDLE |
19 | tristate "Intel chipset idle memory power saving driver" | 19 | tristate "Intel chipset idle memory power saving driver" |
20 | select I7300_IDLE_IOAT_CHANNEL | 20 | select I7300_IDLE_IOAT_CHANNEL |
21 | depends on EXPERIMENTAL | ||
22 | help | 21 | help |
23 | Enable memory power savings when idle with certain Intel server | 22 | Enable memory power savings when idle with certain Intel server |
24 | chipsets. The chipset must have I/O AT support, such as the | 23 | chipsets. The chipset must have I/O AT support, such as the |
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index a526c0e3aaa8..83c836ba600f 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c | |||
@@ -557,9 +557,9 @@ static int at91_adc_probe(struct platform_device *pdev) | |||
557 | 557 | ||
558 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 558 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
559 | 559 | ||
560 | st->reg_base = devm_request_and_ioremap(&pdev->dev, res); | 560 | st->reg_base = devm_ioremap_resource(&pdev->dev, res); |
561 | if (!st->reg_base) { | 561 | if (IS_ERR(st->reg_base)) { |
562 | ret = -ENOMEM; | 562 | ret = PTR_ERR(st->reg_base); |
563 | goto error_free_device; | 563 | goto error_free_device; |
564 | } | 564 | } |
565 | 565 | ||
diff --git a/drivers/input/keyboard/spear-keyboard.c b/drivers/input/keyboard/spear-keyboard.c index 695d237417d6..cb1e8f614631 100644 --- a/drivers/input/keyboard/spear-keyboard.c +++ b/drivers/input/keyboard/spear-keyboard.c | |||
@@ -228,11 +228,9 @@ static int spear_kbd_probe(struct platform_device *pdev) | |||
228 | kbd->suspended_rate = pdata->suspended_rate; | 228 | kbd->suspended_rate = pdata->suspended_rate; |
229 | } | 229 | } |
230 | 230 | ||
231 | kbd->io_base = devm_request_and_ioremap(&pdev->dev, res); | 231 | kbd->io_base = devm_ioremap_resource(&pdev->dev, res); |
232 | if (!kbd->io_base) { | 232 | if (IS_ERR(kbd->io_base)) |
233 | dev_err(&pdev->dev, "request-ioremap failed for kbd_region\n"); | 233 | return PTR_ERR(kbd->io_base); |
234 | return -ENOMEM; | ||
235 | } | ||
236 | 234 | ||
237 | kbd->clk = devm_clk_get(&pdev->dev, NULL); | 235 | kbd->clk = devm_clk_get(&pdev->dev, NULL); |
238 | if (IS_ERR(kbd->clk)) | 236 | if (IS_ERR(kbd->clk)) |
diff --git a/drivers/input/serio/arc_ps2.c b/drivers/input/serio/arc_ps2.c index b571eb3e4efc..c52e3e589f72 100644 --- a/drivers/input/serio/arc_ps2.c +++ b/drivers/input/serio/arc_ps2.c | |||
@@ -8,6 +8,7 @@ | |||
8 | * Driver is originally developed by Pavel Sokolov <psokolov@synopsys.com> | 8 | * Driver is originally developed by Pavel Sokolov <psokolov@synopsys.com> |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/err.h> | ||
11 | #include <linux/module.h> | 12 | #include <linux/module.h> |
12 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
13 | #include <linux/input.h> | 14 | #include <linux/input.h> |
@@ -206,9 +207,9 @@ static int arc_ps2_probe(struct platform_device *pdev) | |||
206 | return -ENOMEM; | 207 | return -ENOMEM; |
207 | } | 208 | } |
208 | 209 | ||
209 | arc_ps2->addr = devm_request_and_ioremap(&pdev->dev, res); | 210 | arc_ps2->addr = devm_ioremap_resource(&pdev->dev, res); |
210 | if (!arc_ps2->addr) | 211 | if (IS_ERR(arc_ps2->addr)) |
211 | return -EBUSY; | 212 | return PTR_ERR(arc_ps2->addr); |
212 | 213 | ||
213 | dev_info(&pdev->dev, "irq = %d, address = 0x%p, ports = %i\n", | 214 | dev_info(&pdev->dev, "irq = %d, address = 0x%p, ports = %i\n", |
214 | irq, arc_ps2->addr, ARC_PS2_PORTS); | 215 | irq, arc_ps2->addr, ARC_PS2_PORTS); |
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index e39f9dbf297b..01068987809d 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig | |||
@@ -65,8 +65,8 @@ config AMD_IOMMU_STATS | |||
65 | If unsure, say N. | 65 | If unsure, say N. |
66 | 66 | ||
67 | config AMD_IOMMU_V2 | 67 | config AMD_IOMMU_V2 |
68 | tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)" | 68 | tristate "AMD IOMMU Version 2 driver" |
69 | depends on AMD_IOMMU && PROFILING && EXPERIMENTAL | 69 | depends on AMD_IOMMU && PROFILING |
70 | select MMU_NOTIFIER | 70 | select MMU_NOTIFIER |
71 | ---help--- | 71 | ---help--- |
72 | This option enables support for the AMD IOMMUv2 features of the IOMMU | 72 | This option enables support for the AMD IOMMUv2 features of the IOMMU |
@@ -119,8 +119,8 @@ config INTEL_IOMMU_FLOPPY_WA | |||
119 | 16MiB to make floppy (an ISA device) work. | 119 | 16MiB to make floppy (an ISA device) work. |
120 | 120 | ||
121 | config IRQ_REMAP | 121 | config IRQ_REMAP |
122 | bool "Support for Interrupt Remapping (EXPERIMENTAL)" | 122 | bool "Support for Interrupt Remapping" |
123 | depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL | 123 | depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI |
124 | select DMAR_TABLE | 124 | select DMAR_TABLE |
125 | ---help--- | 125 | ---help--- |
126 | Supports Interrupt remapping for IO-APIC and MSI devices. | 126 | Supports Interrupt remapping for IO-APIC and MSI devices. |
diff --git a/drivers/iommu/tegra-smmu.c b/drivers/iommu/tegra-smmu.c index fc178893789a..f08dbcd2f175 100644 --- a/drivers/iommu/tegra-smmu.c +++ b/drivers/iommu/tegra-smmu.c | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #define pr_fmt(fmt) "%s(): " fmt, __func__ | 20 | #define pr_fmt(fmt) "%s(): " fmt, __func__ |
21 | 21 | ||
22 | #include <linux/err.h> | ||
22 | #include <linux/module.h> | 23 | #include <linux/module.h> |
23 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
24 | #include <linux/spinlock.h> | 25 | #include <linux/spinlock.h> |
@@ -1176,9 +1177,9 @@ static int tegra_smmu_probe(struct platform_device *pdev) | |||
1176 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); | 1177 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); |
1177 | if (!res) | 1178 | if (!res) |
1178 | return -ENODEV; | 1179 | return -ENODEV; |
1179 | smmu->regs[i] = devm_request_and_ioremap(&pdev->dev, res); | 1180 | smmu->regs[i] = devm_ioremap_resource(&pdev->dev, res); |
1180 | if (!smmu->regs[i]) | 1181 | if (IS_ERR(smmu->regs[i])) |
1181 | return -EBUSY; | 1182 | return PTR_ERR(smmu->regs[i]); |
1182 | } | 1183 | } |
1183 | 1184 | ||
1184 | err = of_get_dma_window(dev->of_node, NULL, 0, NULL, &base, &size); | 1185 | err = of_get_dma_window(dev->of_node, NULL, 0, NULL, &base, &size); |
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig index 70ecd0c19500..5313c9ea44dc 100644 --- a/drivers/isdn/hisax/Kconfig +++ b/drivers/isdn/hisax/Kconfig | |||
@@ -389,8 +389,8 @@ config HISAX_TELES_CS | |||
389 | comment "HiSax sub driver modules" | 389 | comment "HiSax sub driver modules" |
390 | 390 | ||
391 | config HISAX_ST5481 | 391 | config HISAX_ST5481 |
392 | tristate "ST5481 USB ISDN modem (EXPERIMENTAL)" | 392 | tristate "ST5481 USB ISDN modem" |
393 | depends on USB && EXPERIMENTAL | 393 | depends on USB |
394 | select ISDN_HDLC | 394 | select ISDN_HDLC |
395 | select CRC_CCITT | 395 | select CRC_CCITT |
396 | select BITREVERSE | 396 | select BITREVERSE |
@@ -399,20 +399,19 @@ config HISAX_ST5481 | |||
399 | e.g. the BeWan Gazel 128 USB | 399 | e.g. the BeWan Gazel 128 USB |
400 | 400 | ||
401 | config HISAX_HFCUSB | 401 | config HISAX_HFCUSB |
402 | tristate "HFC USB based ISDN modems (EXPERIMENTAL)" | 402 | tristate "HFC USB based ISDN modems" |
403 | depends on USB && EXPERIMENTAL | 403 | depends on USB |
404 | help | 404 | help |
405 | This enables the driver for HFC USB based ISDN modems. | 405 | This enables the driver for HFC USB based ISDN modems. |
406 | 406 | ||
407 | config HISAX_HFC4S8S | 407 | config HISAX_HFC4S8S |
408 | tristate "HFC-4S/8S based ISDN cards (EXPERIMENTAL)" | 408 | tristate "HFC-4S/8S based ISDN cards" |
409 | depends on EXPERIMENTAL | ||
410 | help | 409 | help |
411 | This enables the driver for HFC-4S/8S based ISDN cards. | 410 | This enables the driver for HFC-4S/8S based ISDN cards. |
412 | 411 | ||
413 | config HISAX_FRITZ_PCIPNP | 412 | config HISAX_FRITZ_PCIPNP |
414 | tristate "AVM Fritz!Card PCI/PCIv2/PnP support (EXPERIMENTAL)" | 413 | tristate "AVM Fritz!Card PCI/PCIv2/PnP support" |
415 | depends on PCI && EXPERIMENTAL | 414 | depends on PCI |
416 | help | 415 | help |
417 | This enables the driver for the AVM Fritz!Card PCI, | 416 | This enables the driver for the AVM Fritz!Card PCI, |
418 | Fritz!Card PCI v2 and Fritz!Card PnP. | 417 | Fritz!Card PCI v2 and Fritz!Card PnP. |
diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c index 3e245712bba7..da30c5cb9609 100644 --- a/drivers/isdn/mISDN/core.c +++ b/drivers/isdn/mISDN/core.c | |||
@@ -168,13 +168,13 @@ static struct class mISDN_class = { | |||
168 | }; | 168 | }; |
169 | 169 | ||
170 | static int | 170 | static int |
171 | _get_mdevice(struct device *dev, void *id) | 171 | _get_mdevice(struct device *dev, const void *id) |
172 | { | 172 | { |
173 | struct mISDNdevice *mdev = dev_to_mISDN(dev); | 173 | struct mISDNdevice *mdev = dev_to_mISDN(dev); |
174 | 174 | ||
175 | if (!mdev) | 175 | if (!mdev) |
176 | return 0; | 176 | return 0; |
177 | if (mdev->id != *(u_int *)id) | 177 | if (mdev->id != *(const u_int *)id) |
178 | return 0; | 178 | return 0; |
179 | return 1; | 179 | return 1; |
180 | } | 180 | } |
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig index b58bc8a14b9c..4469b441b785 100644 --- a/drivers/leds/Kconfig +++ b/drivers/leds/Kconfig | |||
@@ -154,7 +154,7 @@ config LEDS_HP6XX | |||
154 | config LEDS_PCA9532 | 154 | config LEDS_PCA9532 |
155 | tristate "LED driver for PCA9532 dimmer" | 155 | tristate "LED driver for PCA9532 dimmer" |
156 | depends on LEDS_CLASS | 156 | depends on LEDS_CLASS |
157 | depends on I2C && INPUT && EXPERIMENTAL | 157 | depends on I2C && INPUT |
158 | help | 158 | help |
159 | This option enables support for NXP pca9532 | 159 | This option enables support for NXP pca9532 |
160 | LED controller. It is generally only useful | 160 | LED controller. It is generally only useful |
diff --git a/drivers/lguest/Kconfig b/drivers/lguest/Kconfig index 34ae49dc557c..6cdcdb0d3d58 100644 --- a/drivers/lguest/Kconfig +++ b/drivers/lguest/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config LGUEST | 1 | config LGUEST |
2 | tristate "Linux hypervisor example code" | 2 | tristate "Linux hypervisor example code" |
3 | depends on X86_32 && EXPERIMENTAL && EVENTFD | 3 | depends on X86_32 && EVENTFD |
4 | select HVC_DRIVER | 4 | select HVC_DRIVER |
5 | ---help--- | 5 | ---help--- |
6 | This is a very simple module which allows you to run | 6 | This is a very simple module which allows you to run |
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig index a555da64224e..696238b9f0f7 100644 --- a/drivers/macintosh/Kconfig +++ b/drivers/macintosh/Kconfig | |||
@@ -278,7 +278,7 @@ config PMAC_RACKMETER | |||
278 | 278 | ||
279 | config SENSORS_AMS | 279 | config SENSORS_AMS |
280 | tristate "Apple Motion Sensor driver" | 280 | tristate "Apple Motion Sensor driver" |
281 | depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y) || (ADB_PMU && !I2C) || I2C) && EXPERIMENTAL | 281 | depends on PPC_PMAC && !PPC64 && INPUT && ((ADB_PMU && I2C = y) || (ADB_PMU && !I2C) || I2C) |
282 | select INPUT_POLLDEV | 282 | select INPUT_POLLDEV |
283 | help | 283 | help |
284 | Support for the motion sensor included in PowerBooks. Includes | 284 | Support for the motion sensor included in PowerBooks. Includes |
diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig index 4ef0d80b57f4..8567a7a64104 100644 --- a/drivers/media/Kconfig +++ b/drivers/media/Kconfig | |||
@@ -79,8 +79,7 @@ config MEDIA_RC_SUPPORT | |||
79 | # | 79 | # |
80 | 80 | ||
81 | config MEDIA_CONTROLLER | 81 | config MEDIA_CONTROLLER |
82 | bool "Media Controller API (EXPERIMENTAL)" | 82 | bool "Media Controller API" |
83 | depends on EXPERIMENTAL | ||
84 | depends on MEDIA_CAMERA_SUPPORT | 83 | depends on MEDIA_CAMERA_SUPPORT |
85 | ---help--- | 84 | ---help--- |
86 | Enable the media controller API used to query media devices internal | 85 | Enable the media controller API used to query media devices internal |
@@ -100,8 +99,8 @@ config VIDEO_DEV | |||
100 | default y | 99 | default y |
101 | 100 | ||
102 | config VIDEO_V4L2_SUBDEV_API | 101 | config VIDEO_V4L2_SUBDEV_API |
103 | bool "V4L2 sub-device userspace API (EXPERIMENTAL)" | 102 | bool "V4L2 sub-device userspace API" |
104 | depends on VIDEO_DEV && MEDIA_CONTROLLER && EXPERIMENTAL | 103 | depends on VIDEO_DEV && MEDIA_CONTROLLER |
105 | ---help--- | 104 | ---help--- |
106 | Enables the V4L2 sub-device pad-level userspace API used to configure | 105 | Enables the V4L2 sub-device pad-level userspace API used to configure |
107 | video format, size and frame rate between hardware blocks. | 106 | video format, size and frame rate between hardware blocks. |
diff --git a/drivers/media/pci/cx25821/Kconfig b/drivers/media/pci/cx25821/Kconfig index 5f6b54213713..4017c9420348 100644 --- a/drivers/media/pci/cx25821/Kconfig +++ b/drivers/media/pci/cx25821/Kconfig | |||
@@ -18,7 +18,7 @@ config VIDEO_CX25821 | |||
18 | 18 | ||
19 | config VIDEO_CX25821_ALSA | 19 | config VIDEO_CX25821_ALSA |
20 | tristate "Conexant 25821 DMA audio support" | 20 | tristate "Conexant 25821 DMA audio support" |
21 | depends on VIDEO_CX25821 && SND && EXPERIMENTAL | 21 | depends on VIDEO_CX25821 && SND |
22 | select SND_PCM | 22 | select SND_PCM |
23 | ---help--- | 23 | ---help--- |
24 | This is a video4linux driver for direct (DMA) audio on | 24 | This is a video4linux driver for direct (DMA) audio on |
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index 3dcfea612c42..33241120a58c 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig | |||
@@ -98,8 +98,8 @@ config VIDEO_OMAP2 | |||
98 | This is a v4l2 driver for the TI OMAP2 camera capture interface | 98 | This is a v4l2 driver for the TI OMAP2 camera capture interface |
99 | 99 | ||
100 | config VIDEO_OMAP3 | 100 | config VIDEO_OMAP3 |
101 | tristate "OMAP 3 Camera support (EXPERIMENTAL)" | 101 | tristate "OMAP 3 Camera support" |
102 | depends on OMAP_IOVMM && VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && ARCH_OMAP3 && EXPERIMENTAL | 102 | depends on OMAP_IOVMM && VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API && ARCH_OMAP3 |
103 | ---help--- | 103 | ---help--- |
104 | Driver for an OMAP 3 camera controller. | 104 | Driver for an OMAP 3 camera controller. |
105 | 105 | ||
@@ -169,8 +169,8 @@ config VIDEO_SAMSUNG_S5P_G2D | |||
169 | 2d graphics accelerator. | 169 | 2d graphics accelerator. |
170 | 170 | ||
171 | config VIDEO_SAMSUNG_S5P_JPEG | 171 | config VIDEO_SAMSUNG_S5P_JPEG |
172 | tristate "Samsung S5P/Exynos4 JPEG codec driver (EXPERIMENTAL)" | 172 | tristate "Samsung S5P/Exynos4 JPEG codec driver" |
173 | depends on VIDEO_DEV && VIDEO_V4L2 && PLAT_S5P && EXPERIMENTAL | 173 | depends on VIDEO_DEV && VIDEO_V4L2 && PLAT_S5P |
174 | select VIDEOBUF2_DMA_CONTIG | 174 | select VIDEOBUF2_DMA_CONTIG |
175 | select V4L2_MEM2MEM_DEV | 175 | select V4L2_MEM2MEM_DEV |
176 | ---help--- | 176 | ---help--- |
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c index 2b1b9f30e1f9..c1a07133cc56 100644 --- a/drivers/media/platform/exynos-gsc/gsc-core.c +++ b/drivers/media/platform/exynos-gsc/gsc-core.c | |||
@@ -1098,11 +1098,9 @@ static int gsc_probe(struct platform_device *pdev) | |||
1098 | mutex_init(&gsc->lock); | 1098 | mutex_init(&gsc->lock); |
1099 | 1099 | ||
1100 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1100 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1101 | gsc->regs = devm_request_and_ioremap(dev, res); | 1101 | gsc->regs = devm_ioremap_resource(dev, res); |
1102 | if (!gsc->regs) { | 1102 | if (IS_ERR(gsc->regs)) |
1103 | dev_err(dev, "failed to map registers\n"); | 1103 | return PTR_ERR(gsc->regs); |
1104 | return -ENOENT; | ||
1105 | } | ||
1106 | 1104 | ||
1107 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1105 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
1108 | if (!res) { | 1106 | if (!res) { |
diff --git a/drivers/media/platform/mx2_emmaprp.c b/drivers/media/platform/mx2_emmaprp.c index 6b155d7be8e0..4b9e0a28616a 100644 --- a/drivers/media/platform/mx2_emmaprp.c +++ b/drivers/media/platform/mx2_emmaprp.c | |||
@@ -941,9 +941,9 @@ static int emmaprp_probe(struct platform_device *pdev) | |||
941 | 941 | ||
942 | platform_set_drvdata(pdev, pcdev); | 942 | platform_set_drvdata(pdev, pcdev); |
943 | 943 | ||
944 | pcdev->base_emma = devm_request_and_ioremap(&pdev->dev, res_emma); | 944 | pcdev->base_emma = devm_ioremap_resource(&pdev->dev, res_emma); |
945 | if (!pcdev->base_emma) { | 945 | if (IS_ERR(pcdev->base_emma)) { |
946 | ret = -ENXIO; | 946 | ret = PTR_ERR(pcdev->base_emma); |
947 | goto rel_vdev; | 947 | goto rel_vdev; |
948 | } | 948 | } |
949 | 949 | ||
diff --git a/drivers/media/platform/s3c-camif/camif-core.c b/drivers/media/platform/s3c-camif/camif-core.c index e2716c35f8f1..09a8c9cac5c9 100644 --- a/drivers/media/platform/s3c-camif/camif-core.c +++ b/drivers/media/platform/s3c-camif/camif-core.c | |||
@@ -433,11 +433,9 @@ static int s3c_camif_probe(struct platform_device *pdev) | |||
433 | 433 | ||
434 | mres = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 434 | mres = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
435 | 435 | ||
436 | camif->io_base = devm_request_and_ioremap(dev, mres); | 436 | camif->io_base = devm_ioremap_resource(dev, mres); |
437 | if (!camif->io_base) { | 437 | if (IS_ERR(camif->io_base)) |
438 | dev_err(dev, "failed to obtain I/O memory\n"); | 438 | return PTR_ERR(camif->io_base); |
439 | return -ENOENT; | ||
440 | } | ||
441 | 439 | ||
442 | ret = camif_request_irqs(pdev, camif); | 440 | ret = camif_request_irqs(pdev, camif); |
443 | if (ret < 0) | 441 | if (ret < 0) |
diff --git a/drivers/media/platform/s5p-fimc/Kconfig b/drivers/media/platform/s5p-fimc/Kconfig index c16b20d86ed2..f997a5203b7c 100644 --- a/drivers/media/platform/s5p-fimc/Kconfig +++ b/drivers/media/platform/s5p-fimc/Kconfig | |||
@@ -2,7 +2,6 @@ | |||
2 | config VIDEO_SAMSUNG_S5P_FIMC | 2 | config VIDEO_SAMSUNG_S5P_FIMC |
3 | bool "Samsung S5P/EXYNOS SoC camera interface driver (experimental)" | 3 | bool "Samsung S5P/EXYNOS SoC camera interface driver (experimental)" |
4 | depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && PLAT_S5P && PM_RUNTIME | 4 | depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API && PLAT_S5P && PM_RUNTIME |
5 | depends on EXPERIMENTAL | ||
6 | help | 5 | help |
7 | Say Y here to enable camera host interface devices for | 6 | Say Y here to enable camera host interface devices for |
8 | Samsung S5P and EXYNOS SoC series. | 7 | Samsung S5P and EXYNOS SoC series. |
diff --git a/drivers/media/platform/s5p-fimc/fimc-core.c b/drivers/media/platform/s5p-fimc/fimc-core.c index 545b46ae12a1..acc0f84ffa56 100644 --- a/drivers/media/platform/s5p-fimc/fimc-core.c +++ b/drivers/media/platform/s5p-fimc/fimc-core.c | |||
@@ -909,11 +909,9 @@ static int fimc_probe(struct platform_device *pdev) | |||
909 | mutex_init(&fimc->lock); | 909 | mutex_init(&fimc->lock); |
910 | 910 | ||
911 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 911 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
912 | fimc->regs = devm_request_and_ioremap(&pdev->dev, res); | 912 | fimc->regs = devm_ioremap_resource(&pdev->dev, res); |
913 | if (fimc->regs == NULL) { | 913 | if (IS_ERR(fimc->regs)) |
914 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 914 | return PTR_ERR(fimc->regs); |
915 | return -ENOENT; | ||
916 | } | ||
917 | 915 | ||
918 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 916 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
919 | if (res == NULL) { | 917 | if (res == NULL) { |
diff --git a/drivers/media/platform/s5p-fimc/fimc-lite.c b/drivers/media/platform/s5p-fimc/fimc-lite.c index ed67220d0a64..67db9f8102e4 100644 --- a/drivers/media/platform/s5p-fimc/fimc-lite.c +++ b/drivers/media/platform/s5p-fimc/fimc-lite.c | |||
@@ -1426,11 +1426,9 @@ static int fimc_lite_probe(struct platform_device *pdev) | |||
1426 | mutex_init(&fimc->lock); | 1426 | mutex_init(&fimc->lock); |
1427 | 1427 | ||
1428 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1428 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1429 | fimc->regs = devm_request_and_ioremap(&pdev->dev, res); | 1429 | fimc->regs = devm_ioremap_resource(&pdev->dev, res); |
1430 | if (fimc->regs == NULL) { | 1430 | if (IS_ERR(fimc->regs)) |
1431 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 1431 | return PTR_ERR(fimc->regs); |
1432 | return -ENOENT; | ||
1433 | } | ||
1434 | 1432 | ||
1435 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1433 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
1436 | if (res == NULL) { | 1434 | if (res == NULL) { |
diff --git a/drivers/media/platform/s5p-fimc/mipi-csis.c b/drivers/media/platform/s5p-fimc/mipi-csis.c index ec3fa7d75306..7abae012f55e 100644 --- a/drivers/media/platform/s5p-fimc/mipi-csis.c +++ b/drivers/media/platform/s5p-fimc/mipi-csis.c | |||
@@ -686,11 +686,9 @@ static int s5pcsis_probe(struct platform_device *pdev) | |||
686 | } | 686 | } |
687 | 687 | ||
688 | mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 688 | mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
689 | state->regs = devm_request_and_ioremap(&pdev->dev, mem_res); | 689 | state->regs = devm_ioremap_resource(&pdev->dev, mem_res); |
690 | if (state->regs == NULL) { | 690 | if (IS_ERR(state->regs)) |
691 | dev_err(&pdev->dev, "Failed to request and remap io memory\n"); | 691 | return PTR_ERR(state->regs); |
692 | return -ENXIO; | ||
693 | } | ||
694 | 692 | ||
695 | state->irq = platform_get_irq(pdev, 0); | 693 | state->irq = platform_get_irq(pdev, 0); |
696 | if (state->irq < 0) { | 694 | if (state->irq < 0) { |
diff --git a/drivers/media/platform/s5p-g2d/g2d.c b/drivers/media/platform/s5p-g2d/g2d.c index 1bfbc325836b..6ed259fb1046 100644 --- a/drivers/media/platform/s5p-g2d/g2d.c +++ b/drivers/media/platform/s5p-g2d/g2d.c | |||
@@ -708,11 +708,9 @@ static int g2d_probe(struct platform_device *pdev) | |||
708 | 708 | ||
709 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 709 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
710 | 710 | ||
711 | dev->regs = devm_request_and_ioremap(&pdev->dev, res); | 711 | dev->regs = devm_ioremap_resource(&pdev->dev, res); |
712 | if (dev->regs == NULL) { | 712 | if (IS_ERR(dev->regs)) |
713 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 713 | return PTR_ERR(dev->regs); |
714 | return -ENOENT; | ||
715 | } | ||
716 | 714 | ||
717 | dev->clk = clk_get(&pdev->dev, "sclk_fimg2d"); | 715 | dev->clk = clk_get(&pdev->dev, "sclk_fimg2d"); |
718 | if (IS_ERR_OR_NULL(dev->clk)) { | 716 | if (IS_ERR_OR_NULL(dev->clk)) { |
diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 17983c4c9a9a..3b023752bcb4 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c | |||
@@ -1325,11 +1325,9 @@ static int s5p_jpeg_probe(struct platform_device *pdev) | |||
1325 | /* memory-mapped registers */ | 1325 | /* memory-mapped registers */ |
1326 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1326 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1327 | 1327 | ||
1328 | jpeg->regs = devm_request_and_ioremap(&pdev->dev, res); | 1328 | jpeg->regs = devm_ioremap_resource(&pdev->dev, res); |
1329 | if (jpeg->regs == NULL) { | 1329 | if (IS_ERR(jpeg->regs)) |
1330 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 1330 | return PTR_ERR(jpeg->regs); |
1331 | return -ENOENT; | ||
1332 | } | ||
1333 | 1331 | ||
1334 | /* interrupt service routine registration */ | 1332 | /* interrupt service routine registration */ |
1335 | jpeg->irq = ret = platform_get_irq(pdev, 0); | 1333 | jpeg->irq = ret = platform_get_irq(pdev, 0); |
diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c index 681bc6ba149d..8b7fbc7cc04d 100644 --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c | |||
@@ -1047,11 +1047,9 @@ static int s5p_mfc_probe(struct platform_device *pdev) | |||
1047 | 1047 | ||
1048 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1048 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1049 | 1049 | ||
1050 | dev->regs_base = devm_request_and_ioremap(&pdev->dev, res); | 1050 | dev->regs_base = devm_ioremap_resource(&pdev->dev, res); |
1051 | if (dev->regs_base == NULL) { | 1051 | if (IS_ERR(dev->regs_base)) |
1052 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 1052 | return PTR_ERR(dev->regs_base); |
1053 | return -ENOENT; | ||
1054 | } | ||
1055 | 1053 | ||
1056 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 1054 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
1057 | if (res == NULL) { | 1055 | if (res == NULL) { |
diff --git a/drivers/media/platform/s5p-tv/Kconfig b/drivers/media/platform/s5p-tv/Kconfig index ea11a513033f..7b659bd09bfd 100644 --- a/drivers/media/platform/s5p-tv/Kconfig +++ b/drivers/media/platform/s5p-tv/Kconfig | |||
@@ -7,9 +7,8 @@ | |||
7 | # Licensed under GPL | 7 | # Licensed under GPL |
8 | 8 | ||
9 | config VIDEO_SAMSUNG_S5P_TV | 9 | config VIDEO_SAMSUNG_S5P_TV |
10 | bool "Samsung TV driver for S5P platform (experimental)" | 10 | bool "Samsung TV driver for S5P platform" |
11 | depends on PLAT_S5P && PM_RUNTIME | 11 | depends on PLAT_S5P && PM_RUNTIME |
12 | depends on EXPERIMENTAL | ||
13 | default n | 12 | default n |
14 | ---help--- | 13 | ---help--- |
15 | Say Y here to enable selecting the TV output devices for | 14 | Say Y here to enable selecting the TV output devices for |
diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c index 8bda2c908aba..1abdc7d9c744 100644 --- a/drivers/media/platform/soc_camera/mx2_camera.c +++ b/drivers/media/platform/soc_camera/mx2_camera.c | |||
@@ -1707,9 +1707,9 @@ static int mx27_camera_emma_init(struct platform_device *pdev) | |||
1707 | goto out; | 1707 | goto out; |
1708 | } | 1708 | } |
1709 | 1709 | ||
1710 | pcdev->base_emma = devm_request_and_ioremap(pcdev->dev, res_emma); | 1710 | pcdev->base_emma = devm_ioremap_resource(pcdev->dev, res_emma); |
1711 | if (!pcdev->base_emma) { | 1711 | if (IS_ERR(pcdev->base_emma)) { |
1712 | err = -EADDRNOTAVAIL; | 1712 | err = PTR_ERR(pcdev->base_emma); |
1713 | goto out; | 1713 | goto out; |
1714 | } | 1714 | } |
1715 | 1715 | ||
@@ -1824,9 +1824,9 @@ static int mx2_camera_probe(struct platform_device *pdev) | |||
1824 | INIT_LIST_HEAD(&pcdev->discard); | 1824 | INIT_LIST_HEAD(&pcdev->discard); |
1825 | spin_lock_init(&pcdev->lock); | 1825 | spin_lock_init(&pcdev->lock); |
1826 | 1826 | ||
1827 | pcdev->base_csi = devm_request_and_ioremap(&pdev->dev, res_csi); | 1827 | pcdev->base_csi = devm_ioremap_resource(&pdev->dev, res_csi); |
1828 | if (!pcdev->base_csi) { | 1828 | if (IS_ERR(pcdev->base_csi)) { |
1829 | err = -EADDRNOTAVAIL; | 1829 | err = PTR_ERR(pcdev->base_csi); |
1830 | goto exit; | 1830 | goto exit; |
1831 | } | 1831 | } |
1832 | 1832 | ||
diff --git a/drivers/media/usb/dvb-usb-v2/Kconfig b/drivers/media/usb/dvb-usb-v2/Kconfig index 834bfecbed73..7a622dbe9b6d 100644 --- a/drivers/media/usb/dvb-usb-v2/Kconfig +++ b/drivers/media/usb/dvb-usb-v2/Kconfig | |||
@@ -134,7 +134,7 @@ config DVB_USB_MXL111SF | |||
134 | 134 | ||
135 | config DVB_USB_RTL28XXU | 135 | config DVB_USB_RTL28XXU |
136 | tristate "Realtek RTL28xxU DVB USB support" | 136 | tristate "Realtek RTL28xxU DVB USB support" |
137 | depends on DVB_USB_V2 && EXPERIMENTAL | 137 | depends on DVB_USB_V2 |
138 | select DVB_RTL2830 | 138 | select DVB_RTL2830 |
139 | select DVB_RTL2832 | 139 | select DVB_RTL2832 |
140 | select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT | 140 | select MEDIA_TUNER_QT1010 if MEDIA_SUBDRV_AUTOSELECT |
diff --git a/drivers/media/usb/pvrusb2/Kconfig b/drivers/media/usb/pvrusb2/Kconfig index 32b11c15bb1a..60a2604e4cb3 100644 --- a/drivers/media/usb/pvrusb2/Kconfig +++ b/drivers/media/usb/pvrusb2/Kconfig | |||
@@ -17,9 +17,9 @@ config VIDEO_PVRUSB2 | |||
17 | module will be called pvrusb2 | 17 | module will be called pvrusb2 |
18 | 18 | ||
19 | config VIDEO_PVRUSB2_SYSFS | 19 | config VIDEO_PVRUSB2_SYSFS |
20 | bool "pvrusb2 sysfs support (EXPERIMENTAL)" | 20 | bool "pvrusb2 sysfs support" |
21 | default y | 21 | default y |
22 | depends on VIDEO_PVRUSB2 && SYSFS && EXPERIMENTAL | 22 | depends on VIDEO_PVRUSB2 && SYSFS |
23 | ---help--- | 23 | ---help--- |
24 | This option enables the operation of a sysfs based | 24 | This option enables the operation of a sysfs based |
25 | interface for query and control of the pvrusb2 driver. | 25 | interface for query and control of the pvrusb2 driver. |
@@ -33,9 +33,9 @@ config VIDEO_PVRUSB2_SYSFS | |||
33 | Note: This feature is experimental and subject to change. | 33 | Note: This feature is experimental and subject to change. |
34 | 34 | ||
35 | config VIDEO_PVRUSB2_DVB | 35 | config VIDEO_PVRUSB2_DVB |
36 | bool "pvrusb2 ATSC/DVB support (EXPERIMENTAL)" | 36 | bool "pvrusb2 ATSC/DVB support" |
37 | default y | 37 | default y |
38 | depends on VIDEO_PVRUSB2 && DVB_CORE && EXPERIMENTAL | 38 | depends on VIDEO_PVRUSB2 && DVB_CORE |
39 | select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT | 39 | select DVB_LGDT330X if MEDIA_SUBDRV_AUTOSELECT |
40 | select DVB_S5H1409 if MEDIA_SUBDRV_AUTOSELECT | 40 | select DVB_S5H1409 if MEDIA_SUBDRV_AUTOSELECT |
41 | select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT | 41 | select DVB_S5H1411 if MEDIA_SUBDRV_AUTOSELECT |
diff --git a/drivers/memory/emif.c b/drivers/memory/emif.c index 06d31c99e6ac..df0873694858 100644 --- a/drivers/memory/emif.c +++ b/drivers/memory/emif.c | |||
@@ -10,6 +10,7 @@ | |||
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | */ | 12 | */ |
13 | #include <linux/err.h> | ||
13 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
14 | #include <linux/reboot.h> | 15 | #include <linux/reboot.h> |
15 | #include <linux/platform_data/emif_plat.h> | 16 | #include <linux/platform_data/emif_plat.h> |
@@ -1468,12 +1469,9 @@ static int __init_or_module emif_probe(struct platform_device *pdev) | |||
1468 | goto error; | 1469 | goto error; |
1469 | } | 1470 | } |
1470 | 1471 | ||
1471 | emif->base = devm_request_and_ioremap(emif->dev, res); | 1472 | emif->base = devm_ioremap_resource(emif->dev, res); |
1472 | if (!emif->base) { | 1473 | if (IS_ERR(emif->base)) |
1473 | dev_err(emif->dev, "%s: devm_request_and_ioremap() failed\n", | ||
1474 | __func__); | ||
1475 | goto error; | 1474 | goto error; |
1476 | } | ||
1477 | 1475 | ||
1478 | irq = platform_get_irq(pdev, 0); | 1476 | irq = platform_get_irq(pdev, 0); |
1479 | if (irq < 0) { | 1477 | if (irq < 0) { |
diff --git a/drivers/memory/tegra20-mc.c b/drivers/memory/tegra20-mc.c index 186f27d9e5f1..2ca5f2814f4a 100644 --- a/drivers/memory/tegra20-mc.c +++ b/drivers/memory/tegra20-mc.c | |||
@@ -17,6 +17,7 @@ | |||
17 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | 17 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/err.h> | ||
20 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
21 | #include <linux/module.h> | 22 | #include <linux/module.h> |
22 | #include <linux/ratelimit.h> | 23 | #include <linux/ratelimit.h> |
@@ -216,9 +217,9 @@ static int tegra20_mc_probe(struct platform_device *pdev) | |||
216 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); | 217 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); |
217 | if (!res) | 218 | if (!res) |
218 | return -ENODEV; | 219 | return -ENODEV; |
219 | mc->regs[i] = devm_request_and_ioremap(&pdev->dev, res); | 220 | mc->regs[i] = devm_ioremap_resource(&pdev->dev, res); |
220 | if (!mc->regs[i]) | 221 | if (IS_ERR(mc->regs[i])) |
221 | return -EBUSY; | 222 | return PTR_ERR(mc->regs[i]); |
222 | } | 223 | } |
223 | 224 | ||
224 | irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 225 | irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
diff --git a/drivers/memory/tegra30-mc.c b/drivers/memory/tegra30-mc.c index 0b7ab9332a18..0b975986777d 100644 --- a/drivers/memory/tegra30-mc.c +++ b/drivers/memory/tegra30-mc.c | |||
@@ -17,6 +17,7 @@ | |||
17 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | 17 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/err.h> | ||
20 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
21 | #include <linux/module.h> | 22 | #include <linux/module.h> |
22 | #include <linux/ratelimit.h> | 23 | #include <linux/ratelimit.h> |
@@ -336,9 +337,9 @@ static int tegra30_mc_probe(struct platform_device *pdev) | |||
336 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); | 337 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); |
337 | if (!res) | 338 | if (!res) |
338 | return -ENODEV; | 339 | return -ENODEV; |
339 | mc->regs[i] = devm_request_and_ioremap(&pdev->dev, res); | 340 | mc->regs[i] = devm_ioremap_resource(&pdev->dev, res); |
340 | if (!mc->regs[i]) | 341 | if (IS_ERR(mc->regs[i])) |
341 | return -EBUSY; | 342 | return PTR_ERR(mc->regs[i]); |
342 | } | 343 | } |
343 | 344 | ||
344 | irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 345 | irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
diff --git a/drivers/memstick/Kconfig b/drivers/memstick/Kconfig index f0ca41c20323..1314605d791f 100644 --- a/drivers/memstick/Kconfig +++ b/drivers/memstick/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | menuconfig MEMSTICK | 5 | menuconfig MEMSTICK |
6 | tristate "Sony MemoryStick card support (EXPERIMENTAL)" | 6 | tristate "Sony MemoryStick card support" |
7 | help | 7 | help |
8 | Sony MemoryStick is a proprietary storage/extension card protocol. | 8 | Sony MemoryStick is a proprietary storage/extension card protocol. |
9 | 9 | ||
diff --git a/drivers/memstick/host/Kconfig b/drivers/memstick/host/Kconfig index 4f7a17fd1aa7..1b37cf8cd204 100644 --- a/drivers/memstick/host/Kconfig +++ b/drivers/memstick/host/Kconfig | |||
@@ -5,8 +5,8 @@ | |||
5 | comment "MemoryStick Host Controller Drivers" | 5 | comment "MemoryStick Host Controller Drivers" |
6 | 6 | ||
7 | config MEMSTICK_TIFM_MS | 7 | config MEMSTICK_TIFM_MS |
8 | tristate "TI Flash Media MemoryStick Interface support (EXPERIMENTAL)" | 8 | tristate "TI Flash Media MemoryStick Interface support " |
9 | depends on EXPERIMENTAL && PCI | 9 | depends on PCI |
10 | select TIFM_CORE | 10 | select TIFM_CORE |
11 | help | 11 | help |
12 | Say Y here if you want to be able to access MemoryStick cards with | 12 | Say Y here if you want to be able to access MemoryStick cards with |
@@ -21,8 +21,8 @@ config MEMSTICK_TIFM_MS | |||
21 | module will be called tifm_ms. | 21 | module will be called tifm_ms. |
22 | 22 | ||
23 | config MEMSTICK_JMICRON_38X | 23 | config MEMSTICK_JMICRON_38X |
24 | tristate "JMicron JMB38X MemoryStick interface support (EXPERIMENTAL)" | 24 | tristate "JMicron JMB38X MemoryStick interface support" |
25 | depends on EXPERIMENTAL && PCI | 25 | depends on PCI |
26 | 26 | ||
27 | help | 27 | help |
28 | Say Y here if you want to be able to access MemoryStick cards with | 28 | Say Y here if you want to be able to access MemoryStick cards with |
@@ -32,8 +32,8 @@ config MEMSTICK_JMICRON_38X | |||
32 | module will be called jmb38x_ms. | 32 | module will be called jmb38x_ms. |
33 | 33 | ||
34 | config MEMSTICK_R592 | 34 | config MEMSTICK_R592 |
35 | tristate "Ricoh R5C592 MemoryStick interface support (EXPERIMENTAL)" | 35 | tristate "Ricoh R5C592 MemoryStick interface support" |
36 | depends on EXPERIMENTAL && PCI | 36 | depends on PCI |
37 | 37 | ||
38 | help | 38 | help |
39 | Say Y here if you want to be able to access MemoryStick cards with | 39 | Say Y here if you want to be able to access MemoryStick cards with |
diff --git a/drivers/mfd/intel_msic.c b/drivers/mfd/intel_msic.c index ab8d0b2739b2..1804331bd52c 100644 --- a/drivers/mfd/intel_msic.c +++ b/drivers/mfd/intel_msic.c | |||
@@ -9,6 +9,7 @@ | |||
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/err.h> | ||
12 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
13 | #include <linux/io.h> | 14 | #include <linux/io.h> |
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
@@ -424,11 +425,9 @@ static int intel_msic_probe(struct platform_device *pdev) | |||
424 | return -ENODEV; | 425 | return -ENODEV; |
425 | } | 426 | } |
426 | 427 | ||
427 | msic->irq_base = devm_request_and_ioremap(&pdev->dev, res); | 428 | msic->irq_base = devm_ioremap_resource(&pdev->dev, res); |
428 | if (!msic->irq_base) { | 429 | if (IS_ERR(msic->irq_base)) |
429 | dev_err(&pdev->dev, "failed to map SRAM memory\n"); | 430 | return PTR_ERR(msic->irq_base); |
430 | return -ENOMEM; | ||
431 | } | ||
432 | 431 | ||
433 | platform_set_drvdata(pdev, msic); | 432 | platform_set_drvdata(pdev, msic); |
434 | 433 | ||
diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c index bd90dd23242e..c09c28f92055 100644 --- a/drivers/misc/atmel-ssc.c +++ b/drivers/misc/atmel-ssc.c | |||
@@ -159,11 +159,9 @@ static int ssc_probe(struct platform_device *pdev) | |||
159 | return -ENXIO; | 159 | return -ENXIO; |
160 | } | 160 | } |
161 | 161 | ||
162 | ssc->regs = devm_request_and_ioremap(&pdev->dev, regs); | 162 | ssc->regs = devm_ioremap_resource(&pdev->dev, regs); |
163 | if (!ssc->regs) { | 163 | if (IS_ERR(ssc->regs)) |
164 | dev_dbg(&pdev->dev, "ioremap failed\n"); | 164 | return PTR_ERR(ssc->regs); |
165 | return -EINVAL; | ||
166 | } | ||
167 | 165 | ||
168 | ssc->phybase = regs->start; | 166 | ssc->phybase = regs->start; |
169 | 167 | ||
diff --git a/drivers/mmc/core/Kconfig b/drivers/mmc/core/Kconfig index ef103871517f..269d072ef55e 100644 --- a/drivers/mmc/core/Kconfig +++ b/drivers/mmc/core/Kconfig | |||
@@ -18,8 +18,7 @@ config MMC_UNSAFE_RESUME | |||
18 | module parameter "removable=0" or "removable=1". | 18 | module parameter "removable=0" or "removable=1". |
19 | 19 | ||
20 | config MMC_CLKGATE | 20 | config MMC_CLKGATE |
21 | bool "MMC host clock gating (EXPERIMENTAL)" | 21 | bool "MMC host clock gating" |
22 | depends on EXPERIMENTAL | ||
23 | help | 22 | help |
24 | This will attempt to aggressively gate the clock to the MMC card. | 23 | This will attempt to aggressively gate the clock to the MMC card. |
25 | This is done to save power due to gating off the logic and bus | 24 | This is done to save power due to gating off the logic and bus |
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig index 8d13c6594520..cc8a8fad455a 100644 --- a/drivers/mmc/host/Kconfig +++ b/drivers/mmc/host/Kconfig | |||
@@ -69,7 +69,7 @@ config MMC_SDHCI_PCI | |||
69 | If unsure, say N. | 69 | If unsure, say N. |
70 | 70 | ||
71 | config MMC_RICOH_MMC | 71 | config MMC_RICOH_MMC |
72 | bool "Ricoh MMC Controller Disabler (EXPERIMENTAL)" | 72 | bool "Ricoh MMC Controller Disabler" |
73 | depends on MMC_SDHCI_PCI | 73 | depends on MMC_SDHCI_PCI |
74 | help | 74 | help |
75 | This adds a pci quirk to disable Ricoh MMC Controller. This | 75 | This adds a pci quirk to disable Ricoh MMC Controller. This |
@@ -186,9 +186,6 @@ config MMC_SDHCI_S3C | |||
186 | often referrered to as the HSMMC block in some of the Samsung S3C | 186 | often referrered to as the HSMMC block in some of the Samsung S3C |
187 | range of SoC. | 187 | range of SoC. |
188 | 188 | ||
189 | Note, due to the problems with DMA, the DMA support is only | ||
190 | available with CONFIG_EXPERIMENTAL is selected. | ||
191 | |||
192 | If you have a controller with this interface, say Y or M here. | 189 | If you have a controller with this interface, say Y or M here. |
193 | 190 | ||
194 | If unsure, say N. | 191 | If unsure, say N. |
@@ -233,7 +230,7 @@ config MMC_SDHCI_SPEAR | |||
233 | 230 | ||
234 | config MMC_SDHCI_S3C_DMA | 231 | config MMC_SDHCI_S3C_DMA |
235 | bool "DMA support on S3C SDHCI" | 232 | bool "DMA support on S3C SDHCI" |
236 | depends on MMC_SDHCI_S3C && EXPERIMENTAL | 233 | depends on MMC_SDHCI_S3C |
237 | help | 234 | help |
238 | Enable DMA support on the Samsung S3C SDHCI glue. The DMA | 235 | Enable DMA support on the Samsung S3C SDHCI glue. The DMA |
239 | has proved to be problematic if the controller encounters | 236 | has proved to be problematic if the controller encounters |
@@ -330,8 +327,8 @@ config MMC_MXS | |||
330 | If unsure, say N. | 327 | If unsure, say N. |
331 | 328 | ||
332 | config MMC_TIFM_SD | 329 | config MMC_TIFM_SD |
333 | tristate "TI Flash Media MMC/SD Interface support (EXPERIMENTAL)" | 330 | tristate "TI Flash Media MMC/SD Interface support" |
334 | depends on EXPERIMENTAL && PCI | 331 | depends on PCI |
335 | select TIFM_CORE | 332 | select TIFM_CORE |
336 | help | 333 | help |
337 | Say Y here if you want to be able to access MMC/SD cards with | 334 | Say Y here if you want to be able to access MMC/SD cards with |
@@ -410,8 +407,7 @@ config MMC_S3C_PIO | |||
410 | the S3C MCI driver. | 407 | the S3C MCI driver. |
411 | 408 | ||
412 | config MMC_S3C_DMA | 409 | config MMC_S3C_DMA |
413 | bool "Use DMA transfers only (EXPERIMENTAL)" | 410 | bool "Use DMA transfers only" |
414 | depends on EXPERIMENTAL | ||
415 | help | 411 | help |
416 | Use DMA to transfer data between memory and the hardare. | 412 | Use DMA to transfer data between memory and the hardare. |
417 | 413 | ||
@@ -420,7 +416,7 @@ config MMC_S3C_DMA | |||
420 | option is useful. | 416 | option is useful. |
421 | 417 | ||
422 | config MMC_S3C_PIODMA | 418 | config MMC_S3C_PIODMA |
423 | bool "Support for both PIO and DMA (EXPERIMENTAL)" | 419 | bool "Support for both PIO and DMA" |
424 | help | 420 | help |
425 | Compile both the PIO and DMA transfer routines into the | 421 | Compile both the PIO and DMA transfer routines into the |
426 | driver and let the platform select at run-time which one | 422 | driver and let the platform select at run-time which one |
@@ -431,8 +427,8 @@ config MMC_S3C_PIODMA | |||
431 | endchoice | 427 | endchoice |
432 | 428 | ||
433 | config MMC_SDRICOH_CS | 429 | config MMC_SDRICOH_CS |
434 | tristate "MMC/SD driver for Ricoh Bay1Controllers (EXPERIMENTAL)" | 430 | tristate "MMC/SD driver for Ricoh Bay1Controllers" |
435 | depends on EXPERIMENTAL && PCI && PCMCIA | 431 | depends on PCI && PCMCIA |
436 | help | 432 | help |
437 | Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA | 433 | Say Y here if your Notebook reports a Ricoh Bay1Controller PCMCIA |
438 | card whenever you insert a MMC or SD card into the card slot. | 434 | card whenever you insert a MMC or SD card into the card slot. |
diff --git a/drivers/mmc/host/dw_mmc-pltfm.c b/drivers/mmc/host/dw_mmc-pltfm.c index 5e1fb1d2c422..41c27b74b003 100644 --- a/drivers/mmc/host/dw_mmc-pltfm.c +++ b/drivers/mmc/host/dw_mmc-pltfm.c | |||
@@ -10,6 +10,7 @@ | |||
10 | * (at your option) any later version. | 10 | * (at your option) any later version. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/err.h> | ||
13 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/io.h> | 16 | #include <linux/io.h> |
@@ -46,9 +47,9 @@ int dw_mci_pltfm_register(struct platform_device *pdev, | |||
46 | host->dev = &pdev->dev; | 47 | host->dev = &pdev->dev; |
47 | host->irq_flags = 0; | 48 | host->irq_flags = 0; |
48 | host->pdata = pdev->dev.platform_data; | 49 | host->pdata = pdev->dev.platform_data; |
49 | host->regs = devm_request_and_ioremap(&pdev->dev, regs); | 50 | host->regs = devm_ioremap_resource(&pdev->dev, regs); |
50 | if (!host->regs) | 51 | if (IS_ERR(host->regs)) |
51 | return -ENOMEM; | 52 | return PTR_ERR(host->regs); |
52 | 53 | ||
53 | if (drv_data && drv_data->init) { | 54 | if (drv_data && drv_data->init) { |
54 | ret = drv_data->init(host); | 55 | ret = drv_data->init(host); |
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c index 206fe499ded5..5b665551a6f3 100644 --- a/drivers/mmc/host/mxs-mmc.c +++ b/drivers/mmc/host/mxs-mmc.c | |||
@@ -614,9 +614,9 @@ static int mxs_mmc_probe(struct platform_device *pdev) | |||
614 | host = mmc_priv(mmc); | 614 | host = mmc_priv(mmc); |
615 | ssp = &host->ssp; | 615 | ssp = &host->ssp; |
616 | ssp->dev = &pdev->dev; | 616 | ssp->dev = &pdev->dev; |
617 | ssp->base = devm_request_and_ioremap(&pdev->dev, iores); | 617 | ssp->base = devm_ioremap_resource(&pdev->dev, iores); |
618 | if (!ssp->base) { | 618 | if (IS_ERR(ssp->base)) { |
619 | ret = -EADDRNOTAVAIL; | 619 | ret = PTR_ERR(ssp->base); |
620 | goto out_mmc_free; | 620 | goto out_mmc_free; |
621 | } | 621 | } |
622 | 622 | ||
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 82a8de148a8f..a0c621421ee8 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c | |||
@@ -651,10 +651,9 @@ static int sdhci_s3c_probe(struct platform_device *pdev) | |||
651 | #endif | 651 | #endif |
652 | 652 | ||
653 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 653 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
654 | host->ioaddr = devm_request_and_ioremap(&pdev->dev, res); | 654 | host->ioaddr = devm_ioremap_resource(&pdev->dev, res); |
655 | if (!host->ioaddr) { | 655 | if (IS_ERR(host->ioaddr)) { |
656 | dev_err(dev, "failed to map registers\n"); | 656 | ret = PTR_ERR(host->ioaddr); |
657 | ret = -ENXIO; | ||
658 | goto err_req_regs; | 657 | goto err_req_regs; |
659 | } | 658 | } |
660 | 659 | ||
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 73fcbbeb78d0..03f2eb5627ec 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig | |||
@@ -291,7 +291,7 @@ config SSFDC | |||
291 | 291 | ||
292 | config SM_FTL | 292 | config SM_FTL |
293 | tristate "SmartMedia/xD new translation layer" | 293 | tristate "SmartMedia/xD new translation layer" |
294 | depends on EXPERIMENTAL && BLOCK | 294 | depends on BLOCK |
295 | select MTD_BLKDEVS | 295 | select MTD_BLKDEVS |
296 | select MTD_NAND_ECC | 296 | select MTD_NAND_ECC |
297 | help | 297 | help |
diff --git a/drivers/mtd/chips/Kconfig b/drivers/mtd/chips/Kconfig index e469b01d40d2..c219e3d098d9 100644 --- a/drivers/mtd/chips/Kconfig +++ b/drivers/mtd/chips/Kconfig | |||
@@ -225,7 +225,7 @@ config MTD_ABSENT | |||
225 | 225 | ||
226 | config MTD_XIP | 226 | config MTD_XIP |
227 | bool "XIP aware MTD support" | 227 | bool "XIP aware MTD support" |
228 | depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && EXPERIMENTAL && ARCH_MTD_XIP | 228 | depends on !SMP && (MTD_CFI_INTELEXT || MTD_CFI_AMDSTD) && ARCH_MTD_XIP |
229 | default y if XIP_KERNEL | 229 | default y if XIP_KERNEL |
230 | help | 230 | help |
231 | This allows MTD support to work with flash memory which is also | 231 | This allows MTD support to work with flash memory which is also |
diff --git a/drivers/mtd/devices/Kconfig b/drivers/mtd/devices/Kconfig index 46dcb54c32ec..12311f506ca1 100644 --- a/drivers/mtd/devices/Kconfig +++ b/drivers/mtd/devices/Kconfig | |||
@@ -52,7 +52,7 @@ config MTD_MS02NV | |||
52 | 52 | ||
53 | config MTD_DATAFLASH | 53 | config MTD_DATAFLASH |
54 | tristate "Support for AT45xxx DataFlash" | 54 | tristate "Support for AT45xxx DataFlash" |
55 | depends on SPI_MASTER && EXPERIMENTAL | 55 | depends on SPI_MASTER |
56 | help | 56 | help |
57 | This enables access to AT45xxx DataFlash chips, using SPI. | 57 | This enables access to AT45xxx DataFlash chips, using SPI. |
58 | Sometimes DataFlash chips are packaged inside MMC-format | 58 | Sometimes DataFlash chips are packaged inside MMC-format |
@@ -81,7 +81,7 @@ config MTD_DATAFLASH_OTP | |||
81 | 81 | ||
82 | config MTD_M25P80 | 82 | config MTD_M25P80 |
83 | tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)" | 83 | tristate "Support most SPI Flash chips (AT26DF, M25P, W25X, ...)" |
84 | depends on SPI_MASTER && EXPERIMENTAL | 84 | depends on SPI_MASTER |
85 | help | 85 | help |
86 | This enables access to most modern SPI flash chips, used for | 86 | This enables access to most modern SPI flash chips, used for |
87 | program and data storage. Series supported include Atmel AT26DF, | 87 | program and data storage. Series supported include Atmel AT26DF, |
diff --git a/drivers/mtd/devices/spear_smi.c b/drivers/mtd/devices/spear_smi.c index 2aabd96bf0ff..8a82b8bc21e1 100644 --- a/drivers/mtd/devices/spear_smi.c +++ b/drivers/mtd/devices/spear_smi.c | |||
@@ -949,10 +949,9 @@ static int spear_smi_probe(struct platform_device *pdev) | |||
949 | 949 | ||
950 | smi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 950 | smi_base = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
951 | 951 | ||
952 | dev->io_base = devm_request_and_ioremap(&pdev->dev, smi_base); | 952 | dev->io_base = devm_ioremap_resource(&pdev->dev, smi_base); |
953 | if (!dev->io_base) { | 953 | if (IS_ERR(dev->io_base)) { |
954 | ret = -EIO; | 954 | ret = PTR_ERR(dev->io_base); |
955 | dev_err(&pdev->dev, "devm_request_and_ioremap fail\n"); | ||
956 | goto err; | 955 | goto err; |
957 | } | 956 | } |
958 | 957 | ||
diff --git a/drivers/mtd/maps/autcpu12-nvram.c b/drivers/mtd/maps/autcpu12-nvram.c index a2dc2ae4b24e..c3525d2a2fa8 100644 --- a/drivers/mtd/maps/autcpu12-nvram.c +++ b/drivers/mtd/maps/autcpu12-nvram.c | |||
@@ -16,6 +16,7 @@ | |||
16 | * along with this program; if not, write to the Free Software | 16 | * along with this program; if not, write to the Free Software |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
18 | */ | 18 | */ |
19 | #include <linux/err.h> | ||
19 | #include <linux/sizes.h> | 20 | #include <linux/sizes.h> |
20 | 21 | ||
21 | #include <linux/types.h> | 22 | #include <linux/types.h> |
@@ -55,12 +56,10 @@ static int autcpu12_nvram_probe(struct platform_device *pdev) | |||
55 | priv->map.bankwidth = 4; | 56 | priv->map.bankwidth = 4; |
56 | priv->map.phys = res->start; | 57 | priv->map.phys = res->start; |
57 | priv->map.size = resource_size(res); | 58 | priv->map.size = resource_size(res); |
58 | priv->map.virt = devm_request_and_ioremap(&pdev->dev, res); | 59 | priv->map.virt = devm_ioremap_resource(&pdev->dev, res); |
59 | strcpy((char *)priv->map.name, res->name); | 60 | strcpy((char *)priv->map.name, res->name); |
60 | if (!priv->map.virt) { | 61 | if (IS_ERR(priv->map.virt)) |
61 | dev_err(&pdev->dev, "failed to remap mem resource\n"); | 62 | return PTR_ERR(priv->map.virt); |
62 | return -EBUSY; | ||
63 | } | ||
64 | 63 | ||
65 | simple_map_init(&priv->map); | 64 | simple_map_init(&priv->map); |
66 | 65 | ||
diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c index 3c3c791eb96a..d1da6ede3845 100644 --- a/drivers/mtd/maps/lantiq-flash.c +++ b/drivers/mtd/maps/lantiq-flash.c | |||
@@ -7,6 +7,7 @@ | |||
7 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> | 7 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #include <linux/err.h> | ||
10 | #include <linux/module.h> | 11 | #include <linux/module.h> |
11 | #include <linux/types.h> | 12 | #include <linux/types.h> |
12 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
@@ -136,10 +137,9 @@ ltq_mtd_probe(struct platform_device *pdev) | |||
136 | ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL); | 137 | ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL); |
137 | ltq_mtd->map->phys = ltq_mtd->res->start; | 138 | ltq_mtd->map->phys = ltq_mtd->res->start; |
138 | ltq_mtd->map->size = resource_size(ltq_mtd->res); | 139 | ltq_mtd->map->size = resource_size(ltq_mtd->res); |
139 | ltq_mtd->map->virt = devm_request_and_ioremap(&pdev->dev, ltq_mtd->res); | 140 | ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res); |
140 | if (!ltq_mtd->map->virt) { | 141 | if (IS_ERR(ltq_mtd->map->virt)) { |
141 | dev_err(&pdev->dev, "failed to remap mem resource\n"); | 142 | err = PTR_ERR(ltq_mtd->map->virt); |
142 | err = -EBUSY; | ||
143 | goto err_out; | 143 | goto err_out; |
144 | } | 144 | } |
145 | 145 | ||
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig index 5819eb575210..81bf5e52601e 100644 --- a/drivers/mtd/nand/Kconfig +++ b/drivers/mtd/nand/Kconfig | |||
@@ -260,8 +260,7 @@ config MTD_NAND_S3C2410_CLKSTOP | |||
260 | approximately 5mA of power when there is nothing happening. | 260 | approximately 5mA of power when there is nothing happening. |
261 | 261 | ||
262 | config MTD_NAND_DISKONCHIP | 262 | config MTD_NAND_DISKONCHIP |
263 | tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation) (EXPERIMENTAL)" | 263 | tristate "DiskOnChip 2000, Millennium and Millennium Plus (NAND reimplementation)" |
264 | depends on EXPERIMENTAL | ||
265 | depends on HAS_IOMEM | 264 | depends on HAS_IOMEM |
266 | select REED_SOLOMON | 265 | select REED_SOLOMON |
267 | select REED_SOLOMON_DEC16 | 266 | select REED_SOLOMON_DEC16 |
@@ -331,8 +330,8 @@ config MTD_NAND_DISKONCHIP_BBTWRITE | |||
331 | parameter "inftl_bbt_write=1". | 330 | parameter "inftl_bbt_write=1". |
332 | 331 | ||
333 | config MTD_NAND_DOCG4 | 332 | config MTD_NAND_DOCG4 |
334 | tristate "Support for DiskOnChip G4 (EXPERIMENTAL)" | 333 | tristate "Support for DiskOnChip G4" |
335 | depends on EXPERIMENTAL && HAS_IOMEM | 334 | depends on HAS_IOMEM |
336 | select BCH | 335 | select BCH |
337 | select BITREVERSE | 336 | select BITREVERSE |
338 | help | 337 | help |
diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c index 67e62d3d495c..c543cc09f193 100644 --- a/drivers/mtd/nand/fsmc_nand.c +++ b/drivers/mtd/nand/fsmc_nand.c | |||
@@ -937,42 +937,35 @@ static int __init fsmc_nand_probe(struct platform_device *pdev) | |||
937 | if (!res) | 937 | if (!res) |
938 | return -EINVAL; | 938 | return -EINVAL; |
939 | 939 | ||
940 | host->data_va = devm_request_and_ioremap(&pdev->dev, res); | 940 | host->data_va = devm_ioremap_resource(&pdev->dev, res); |
941 | if (!host->data_va) { | 941 | if (IS_ERR(host->data_va)) |
942 | dev_err(&pdev->dev, "data ioremap failed\n"); | 942 | return PTR_ERR(host->data_va); |
943 | return -ENOMEM; | 943 | |
944 | } | ||
945 | host->data_pa = (dma_addr_t)res->start; | 944 | host->data_pa = (dma_addr_t)res->start; |
946 | 945 | ||
947 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_addr"); | 946 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_addr"); |
948 | if (!res) | 947 | if (!res) |
949 | return -EINVAL; | 948 | return -EINVAL; |
950 | 949 | ||
951 | host->addr_va = devm_request_and_ioremap(&pdev->dev, res); | 950 | host->addr_va = devm_ioremap_resource(&pdev->dev, res); |
952 | if (!host->addr_va) { | 951 | if (IS_ERR(host->addr_va)) |
953 | dev_err(&pdev->dev, "ale ioremap failed\n"); | 952 | return PTR_ERR(host->addr_va); |
954 | return -ENOMEM; | ||
955 | } | ||
956 | 953 | ||
957 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_cmd"); | 954 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "nand_cmd"); |
958 | if (!res) | 955 | if (!res) |
959 | return -EINVAL; | 956 | return -EINVAL; |
960 | 957 | ||
961 | host->cmd_va = devm_request_and_ioremap(&pdev->dev, res); | 958 | host->cmd_va = devm_ioremap_resource(&pdev->dev, res); |
962 | if (!host->cmd_va) { | 959 | if (IS_ERR(host->cmd_va)) |
963 | dev_err(&pdev->dev, "ale ioremap failed\n"); | 960 | return PTR_ERR(host->cmd_va); |
964 | return -ENOMEM; | ||
965 | } | ||
966 | 961 | ||
967 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fsmc_regs"); | 962 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fsmc_regs"); |
968 | if (!res) | 963 | if (!res) |
969 | return -EINVAL; | 964 | return -EINVAL; |
970 | 965 | ||
971 | host->regs_va = devm_request_and_ioremap(&pdev->dev, res); | 966 | host->regs_va = devm_ioremap_resource(&pdev->dev, res); |
972 | if (!host->regs_va) { | 967 | if (IS_ERR(host->regs_va)) |
973 | dev_err(&pdev->dev, "regs ioremap failed\n"); | 968 | return PTR_ERR(host->regs_va); |
974 | return -ENOMEM; | ||
975 | } | ||
976 | 969 | ||
977 | host->clk = clk_get(&pdev->dev, NULL); | 970 | host->clk = clk_get(&pdev->dev, NULL); |
978 | if (IS_ERR(host->clk)) { | 971 | if (IS_ERR(host->clk)) { |
diff --git a/drivers/mtd/nand/lpc32xx_mlc.c b/drivers/mtd/nand/lpc32xx_mlc.c index f182befa7360..0ca22ae9135c 100644 --- a/drivers/mtd/nand/lpc32xx_mlc.c +++ b/drivers/mtd/nand/lpc32xx_mlc.c | |||
@@ -677,11 +677,10 @@ static int lpc32xx_nand_probe(struct platform_device *pdev) | |||
677 | return -ENXIO; | 677 | return -ENXIO; |
678 | } | 678 | } |
679 | 679 | ||
680 | host->io_base = devm_request_and_ioremap(&pdev->dev, rc); | 680 | host->io_base = devm_ioremap_resource(&pdev->dev, rc); |
681 | if (host->io_base == NULL) { | 681 | if (IS_ERR(host->io_base)) |
682 | dev_err(&pdev->dev, "ioremap failed\n"); | 682 | return PTR_ERR(host->io_base); |
683 | return -EIO; | 683 | |
684 | } | ||
685 | host->io_base_phy = rc->start; | 684 | host->io_base_phy = rc->start; |
686 | 685 | ||
687 | mtd = &host->mtd; | 686 | mtd = &host->mtd; |
diff --git a/drivers/mtd/nand/lpc32xx_slc.c b/drivers/mtd/nand/lpc32xx_slc.c index 030b78c62895..be94ed5abefb 100644 --- a/drivers/mtd/nand/lpc32xx_slc.c +++ b/drivers/mtd/nand/lpc32xx_slc.c | |||
@@ -778,11 +778,9 @@ static int lpc32xx_nand_probe(struct platform_device *pdev) | |||
778 | } | 778 | } |
779 | host->io_base_dma = rc->start; | 779 | host->io_base_dma = rc->start; |
780 | 780 | ||
781 | host->io_base = devm_request_and_ioremap(&pdev->dev, rc); | 781 | host->io_base = devm_ioremap_resource(&pdev->dev, rc); |
782 | if (host->io_base == NULL) { | 782 | if (IS_ERR(host->io_base)) |
783 | dev_err(&pdev->dev, "ioremap failed\n"); | 783 | return PTR_ERR(host->io_base); |
784 | return -ENOMEM; | ||
785 | } | ||
786 | 784 | ||
787 | if (pdev->dev.of_node) | 785 | if (pdev->dev.of_node) |
788 | host->ncfg = lpc32xx_parse_dt(&pdev->dev); | 786 | host->ncfg = lpc32xx_parse_dt(&pdev->dev); |
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index 45204e41a028..60ac5b98b718 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c | |||
@@ -1437,9 +1437,9 @@ static int mxcnd_probe(struct platform_device *pdev) | |||
1437 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1437 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1438 | if (!res) | 1438 | if (!res) |
1439 | return -ENODEV; | 1439 | return -ENODEV; |
1440 | host->regs_ip = devm_request_and_ioremap(&pdev->dev, res); | 1440 | host->regs_ip = devm_ioremap_resource(&pdev->dev, res); |
1441 | if (!host->regs_ip) | 1441 | if (IS_ERR(host->regs_ip)) |
1442 | return -ENOMEM; | 1442 | return PTR_ERR(host->regs_ip); |
1443 | 1443 | ||
1444 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 1444 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
1445 | } else { | 1445 | } else { |
@@ -1449,9 +1449,9 @@ static int mxcnd_probe(struct platform_device *pdev) | |||
1449 | if (!res) | 1449 | if (!res) |
1450 | return -ENODEV; | 1450 | return -ENODEV; |
1451 | 1451 | ||
1452 | host->base = devm_request_and_ioremap(&pdev->dev, res); | 1452 | host->base = devm_ioremap_resource(&pdev->dev, res); |
1453 | if (!host->base) | 1453 | if (IS_ERR(host->base)) |
1454 | return -ENOMEM; | 1454 | return PTR_ERR(host->base); |
1455 | 1455 | ||
1456 | host->main_area0 = host->base; | 1456 | host->main_area0 = host->base; |
1457 | 1457 | ||
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c index df954b4dcba2..d65afd23e171 100644 --- a/drivers/mtd/nand/s3c2410.c +++ b/drivers/mtd/nand/s3c2410.c | |||
@@ -952,10 +952,9 @@ static int s3c24xx_nand_probe(struct platform_device *pdev) | |||
952 | info->platform = plat; | 952 | info->platform = plat; |
953 | info->cpu_type = cpu_type; | 953 | info->cpu_type = cpu_type; |
954 | 954 | ||
955 | info->regs = devm_request_and_ioremap(&pdev->dev, res); | 955 | info->regs = devm_ioremap_resource(&pdev->dev, res); |
956 | if (info->regs == NULL) { | 956 | if (IS_ERR(info->regs)) { |
957 | dev_err(&pdev->dev, "cannot reserve register region\n"); | 957 | err = PTR_ERR(info->regs); |
958 | err = -EIO; | ||
959 | goto exit_error; | 958 | goto exit_error; |
960 | } | 959 | } |
961 | 960 | ||
diff --git a/drivers/mtd/nand/txx9ndfmc.c b/drivers/mtd/nand/txx9ndfmc.c index e3d7266e256f..e1e8748aa47b 100644 --- a/drivers/mtd/nand/txx9ndfmc.c +++ b/drivers/mtd/nand/txx9ndfmc.c | |||
@@ -9,6 +9,7 @@ | |||
9 | * (C) Copyright TOSHIBA CORPORATION 2004-2007 | 9 | * (C) Copyright TOSHIBA CORPORATION 2004-2007 |
10 | * All Rights Reserved. | 10 | * All Rights Reserved. |
11 | */ | 11 | */ |
12 | #include <linux/err.h> | ||
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
13 | #include <linux/slab.h> | 14 | #include <linux/slab.h> |
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
@@ -286,9 +287,9 @@ static int __init txx9ndfmc_probe(struct platform_device *dev) | |||
286 | drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL); | 287 | drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL); |
287 | if (!drvdata) | 288 | if (!drvdata) |
288 | return -ENOMEM; | 289 | return -ENOMEM; |
289 | drvdata->base = devm_request_and_ioremap(&dev->dev, res); | 290 | drvdata->base = devm_ioremap_resource(&dev->dev, res); |
290 | if (!drvdata->base) | 291 | if (IS_ERR(drvdata->base)) |
291 | return -EBUSY; | 292 | return PTR_ERR(drvdata->base); |
292 | 293 | ||
293 | hold = plat->hold ?: 20; /* tDH */ | 294 | hold = plat->hold ?: 20; /* tDH */ |
294 | spw = plat->spw ?: 90; /* max(tREADID, tWP, tRP) */ | 295 | spw = plat->spw ?: 90; /* max(tREADID, tWP, tRP) */ |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 6a70184c3f23..2334190ff8d2 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -123,8 +123,7 @@ config IFB | |||
123 | source "drivers/net/team/Kconfig" | 123 | source "drivers/net/team/Kconfig" |
124 | 124 | ||
125 | config MACVLAN | 125 | config MACVLAN |
126 | tristate "MAC-VLAN support (EXPERIMENTAL)" | 126 | tristate "MAC-VLAN support" |
127 | depends on EXPERIMENTAL | ||
128 | ---help--- | 127 | ---help--- |
129 | This allows one to create virtual interfaces that map packets to | 128 | This allows one to create virtual interfaces that map packets to |
130 | or from specific MAC addresses to a particular interface. | 129 | or from specific MAC addresses to a particular interface. |
@@ -138,7 +137,7 @@ config MACVLAN | |||
138 | will be called macvlan. | 137 | will be called macvlan. |
139 | 138 | ||
140 | config MACVTAP | 139 | config MACVTAP |
141 | tristate "MAC-VLAN based tap driver (EXPERIMENTAL)" | 140 | tristate "MAC-VLAN based tap driver" |
142 | depends on MACVLAN | 141 | depends on MACVLAN |
143 | help | 142 | help |
144 | This adds a specialized tap character device driver that is based | 143 | This adds a specialized tap character device driver that is based |
@@ -234,8 +233,8 @@ config VETH | |||
234 | versa. | 233 | versa. |
235 | 234 | ||
236 | config VIRTIO_NET | 235 | config VIRTIO_NET |
237 | tristate "Virtio network driver (EXPERIMENTAL)" | 236 | tristate "Virtio network driver" |
238 | depends on EXPERIMENTAL && VIRTIO | 237 | depends on VIRTIO |
239 | ---help--- | 238 | ---help--- |
240 | This is the virtual network driver for virtio. It can be used with | 239 | This is the virtual network driver for virtio. It can be used with |
241 | lguest or QEMU based VMMs (like KVM or Xen). Say Y or M. | 240 | lguest or QEMU based VMMs (like KVM or Xen). Say Y or M. |
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig index 1b78ca7a9786..a5f91e1e8fe3 100644 --- a/drivers/net/ethernet/8390/Kconfig +++ b/drivers/net/ethernet/8390/Kconfig | |||
@@ -5,10 +5,7 @@ | |||
5 | config NET_VENDOR_8390 | 5 | config NET_VENDOR_8390 |
6 | bool "National Semi-conductor 8390 devices" | 6 | bool "National Semi-conductor 8390 devices" |
7 | default y | 7 | default y |
8 | depends on NET_VENDOR_NATSEMI && (AMIGA_PCMCIA || PCI || SUPERH || \ | 8 | depends on NET_VENDOR_NATSEMI |
9 | ISA || MAC || M32R || MACH_TX49XX || \ | ||
10 | H8300 || ARM || MIPS || ZORRO || PCMCIA || \ | ||
11 | EXPERIMENTAL) | ||
12 | ---help--- | 9 | ---help--- |
13 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
14 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/atheros/Kconfig b/drivers/net/ethernet/atheros/Kconfig index 1ed886d421f8..36d6abd1cfff 100644 --- a/drivers/net/ethernet/atheros/Kconfig +++ b/drivers/net/ethernet/atheros/Kconfig | |||
@@ -44,8 +44,8 @@ config ATL1 | |||
44 | will be called atl1. | 44 | will be called atl1. |
45 | 45 | ||
46 | config ATL1E | 46 | config ATL1E |
47 | tristate "Atheros L1E Gigabit Ethernet support (EXPERIMENTAL)" | 47 | tristate "Atheros L1E Gigabit Ethernet support" |
48 | depends on PCI && EXPERIMENTAL | 48 | depends on PCI |
49 | select CRC32 | 49 | select CRC32 |
50 | select NET_CORE | 50 | select NET_CORE |
51 | select MII | 51 | select MII |
@@ -56,8 +56,8 @@ config ATL1E | |||
56 | will be called atl1e. | 56 | will be called atl1e. |
57 | 57 | ||
58 | config ATL1C | 58 | config ATL1C |
59 | tristate "Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)" | 59 | tristate "Atheros L1C Gigabit Ethernet support" |
60 | depends on PCI && EXPERIMENTAL | 60 | depends on PCI |
61 | select CRC32 | 61 | select CRC32 |
62 | select NET_CORE | 62 | select NET_CORE |
63 | select MII | 63 | select MII |
diff --git a/drivers/net/ethernet/dec/tulip/Kconfig b/drivers/net/ethernet/dec/tulip/Kconfig index 1203be0436e2..0c37fb2cc867 100644 --- a/drivers/net/ethernet/dec/tulip/Kconfig +++ b/drivers/net/ethernet/dec/tulip/Kconfig | |||
@@ -57,8 +57,8 @@ config TULIP | |||
57 | be called tulip. | 57 | be called tulip. |
58 | 58 | ||
59 | config TULIP_MWI | 59 | config TULIP_MWI |
60 | bool "New bus configuration (EXPERIMENTAL)" | 60 | bool "New bus configuration" |
61 | depends on TULIP && EXPERIMENTAL | 61 | depends on TULIP |
62 | ---help--- | 62 | ---help--- |
63 | This configures your Tulip card specifically for the card and | 63 | This configures your Tulip card specifically for the card and |
64 | system cache line size type you are using. | 64 | system cache line size type you are using. |
diff --git a/drivers/net/ethernet/fujitsu/Kconfig b/drivers/net/ethernet/fujitsu/Kconfig index c6a87625898a..6231bc02b964 100644 --- a/drivers/net/ethernet/fujitsu/Kconfig +++ b/drivers/net/ethernet/fujitsu/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | config NET_VENDOR_FUJITSU | 5 | config NET_VENDOR_FUJITSU |
6 | bool "Fujitsu devices" | 6 | bool "Fujitsu devices" |
7 | default y | 7 | default y |
8 | depends on ISA || PCMCIA || (ISA && EXPERIMENTAL) | 8 | depends on ISA || PCMCIA |
9 | ---help--- | 9 | ---help--- |
10 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
11 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/i825xx/Kconfig b/drivers/net/ethernet/i825xx/Kconfig index 955d929cd00f..9521e68aa3b3 100644 --- a/drivers/net/ethernet/i825xx/Kconfig +++ b/drivers/net/ethernet/i825xx/Kconfig | |||
@@ -5,9 +5,7 @@ | |||
5 | config NET_VENDOR_I825XX | 5 | config NET_VENDOR_I825XX |
6 | bool "Intel (82586/82593/82596) devices" | 6 | bool "Intel (82586/82593/82596) devices" |
7 | default y | 7 | default y |
8 | depends on NET_VENDOR_INTEL && (ISA || ISA_DMA_API || ARM || \ | 8 | depends on NET_VENDOR_INTEL |
9 | ARCH_ACORN || SNI_RM || SUN3 || \ | ||
10 | GSC || BVME6000 || MVME16x || EXPERIMENTAL) | ||
11 | ---help--- | 9 | ---help--- |
12 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
13 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/icplus/Kconfig b/drivers/net/ethernet/icplus/Kconfig index 3aff81d7989f..5119ef18953b 100644 --- a/drivers/net/ethernet/icplus/Kconfig +++ b/drivers/net/ethernet/icplus/Kconfig | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | config IP1000 | 5 | config IP1000 |
6 | tristate "IP1000 Gigabit Ethernet support" | 6 | tristate "IP1000 Gigabit Ethernet support" |
7 | depends on PCI && EXPERIMENTAL | 7 | depends on PCI |
8 | select NET_CORE | 8 | select NET_CORE |
9 | select MII | 9 | select MII |
10 | ---help--- | 10 | ---help--- |
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig index 3d5f6d463757..05f7264c51f7 100644 --- a/drivers/net/ethernet/intel/Kconfig +++ b/drivers/net/ethernet/intel/Kconfig | |||
@@ -5,11 +5,6 @@ | |||
5 | config NET_VENDOR_INTEL | 5 | config NET_VENDOR_INTEL |
6 | bool "Intel devices" | 6 | bool "Intel devices" |
7 | default y | 7 | default y |
8 | depends on PCI || PCI_MSI || ISA || ISA_DMA_API || ARM || \ | ||
9 | ARCH_ACORN || SNI_RM || SUN3 || \ | ||
10 | GSC || BVME6000 || MVME16x || \ | ||
11 | (ARM && ARCH_IXP4XX && IXP4XX_NPE && IXP4XX_QMGR) || \ | ||
12 | EXPERIMENTAL | ||
13 | ---help--- | 8 | ---help--- |
14 | If you have a network (Ethernet) card belonging to this class, say Y | 9 | If you have a network (Ethernet) card belonging to this class, say Y |
15 | and read the Ethernet-HOWTO, available from | 10 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/microchip/Kconfig b/drivers/net/ethernet/microchip/Kconfig index 8163fd0f453f..afaf0c07f37f 100644 --- a/drivers/net/ethernet/microchip/Kconfig +++ b/drivers/net/ethernet/microchip/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | config NET_VENDOR_MICROCHIP | 5 | config NET_VENDOR_MICROCHIP |
6 | bool "Microchip devices" | 6 | bool "Microchip devices" |
7 | default y | 7 | default y |
8 | depends on SPI && EXPERIMENTAL | 8 | depends on SPI |
9 | ---help--- | 9 | ---help--- |
10 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
11 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
@@ -20,7 +20,7 @@ if NET_VENDOR_MICROCHIP | |||
20 | 20 | ||
21 | config ENC28J60 | 21 | config ENC28J60 |
22 | tristate "ENC28J60 support" | 22 | tristate "ENC28J60 support" |
23 | depends on SPI && EXPERIMENTAL | 23 | depends on SPI |
24 | select CRC32 | 24 | select CRC32 |
25 | ---help--- | 25 | ---help--- |
26 | Support for the Microchip EN28J60 ethernet chip. | 26 | Support for the Microchip EN28J60 ethernet chip. |
diff --git a/drivers/net/ethernet/natsemi/Kconfig b/drivers/net/ethernet/natsemi/Kconfig index f157334579fd..a100860d45e6 100644 --- a/drivers/net/ethernet/natsemi/Kconfig +++ b/drivers/net/ethernet/natsemi/Kconfig | |||
@@ -5,9 +5,6 @@ | |||
5 | config NET_VENDOR_NATSEMI | 5 | config NET_VENDOR_NATSEMI |
6 | bool "National Semi-conductor devices" | 6 | bool "National Semi-conductor devices" |
7 | default y | 7 | default y |
8 | depends on AMIGA_PCMCIA || ARM || EISA || EXPERIMENTAL || H8300 || \ | ||
9 | ISA || M32R || MAC || MACH_JAZZ || MACH_TX49XX || MIPS || \ | ||
10 | PCI || PCMCIA || SUPERH || XTENSA_PLATFORM_XT2000 || ZORRO | ||
11 | ---help--- | 8 | ---help--- |
12 | If you have a network (Ethernet) card belonging to this class, say Y | 9 | If you have a network (Ethernet) card belonging to this class, say Y |
13 | and read the Ethernet-HOWTO, available from | 10 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/packetengines/Kconfig b/drivers/net/ethernet/packetengines/Kconfig index 8f29feb35548..cbbeca3f8c5c 100644 --- a/drivers/net/ethernet/packetengines/Kconfig +++ b/drivers/net/ethernet/packetengines/Kconfig | |||
@@ -32,8 +32,8 @@ config HAMACHI | |||
32 | called hamachi. | 32 | called hamachi. |
33 | 33 | ||
34 | config YELLOWFIN | 34 | config YELLOWFIN |
35 | tristate "Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)" | 35 | tristate "Packet Engines Yellowfin Gigabit-NIC support" |
36 | depends on PCI && EXPERIMENTAL | 36 | depends on PCI |
37 | select CRC32 | 37 | select CRC32 |
38 | ---help--- | 38 | ---help--- |
39 | Say Y here if you have a Packet Engines G-NIC PCI Gigabit Ethernet | 39 | Say Y here if you have a Packet Engines G-NIC PCI Gigabit Ethernet |
diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig index 5821966f9f28..783fa8b5cde7 100644 --- a/drivers/net/ethernet/realtek/Kconfig +++ b/drivers/net/ethernet/realtek/Kconfig | |||
@@ -34,8 +34,8 @@ config ATP | |||
34 | will be called atp. | 34 | will be called atp. |
35 | 35 | ||
36 | config 8139CP | 36 | config 8139CP |
37 | tristate "RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)" | 37 | tristate "RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support" |
38 | depends on PCI && EXPERIMENTAL | 38 | depends on PCI |
39 | select CRC32 | 39 | select CRC32 |
40 | select NET_CORE | 40 | select NET_CORE |
41 | select MII | 41 | select MII |
diff --git a/drivers/net/ethernet/seeq/Kconfig b/drivers/net/ethernet/seeq/Kconfig index a71e1ec068ed..11f168e46ebe 100644 --- a/drivers/net/ethernet/seeq/Kconfig +++ b/drivers/net/ethernet/seeq/Kconfig | |||
@@ -6,7 +6,6 @@ config NET_VENDOR_SEEQ | |||
6 | bool "SEEQ devices" | 6 | bool "SEEQ devices" |
7 | default y | 7 | default y |
8 | depends on HAS_IOMEM | 8 | depends on HAS_IOMEM |
9 | depends on (ARM && ARCH_ACORN) || SGI_HAS_SEEQ || EXPERIMENTAL | ||
10 | ---help--- | 9 | ---help--- |
11 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
12 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
diff --git a/drivers/net/ethernet/silan/Kconfig b/drivers/net/ethernet/silan/Kconfig index ae1ce170864d..3409b3f97a1b 100644 --- a/drivers/net/ethernet/silan/Kconfig +++ b/drivers/net/ethernet/silan/Kconfig | |||
@@ -5,7 +5,7 @@ | |||
5 | config NET_VENDOR_SILAN | 5 | config NET_VENDOR_SILAN |
6 | bool "Silan devices" | 6 | bool "Silan devices" |
7 | default y | 7 | default y |
8 | depends on PCI && EXPERIMENTAL | 8 | depends on PCI |
9 | ---help--- | 9 | ---help--- |
10 | If you have a network (Ethernet) card belonging to this class, say Y | 10 | If you have a network (Ethernet) card belonging to this class, say Y |
11 | and read the Ethernet-HOWTO, available from | 11 | and read the Ethernet-HOWTO, available from |
@@ -19,8 +19,8 @@ config NET_VENDOR_SILAN | |||
19 | if NET_VENDOR_SILAN | 19 | if NET_VENDOR_SILAN |
20 | 20 | ||
21 | config SC92031 | 21 | config SC92031 |
22 | tristate "Silan SC92031 PCI Fast Ethernet Adapter driver (EXPERIMENTAL)" | 22 | tristate "Silan SC92031 PCI Fast Ethernet Adapter driver" |
23 | depends on PCI && EXPERIMENTAL | 23 | depends on PCI |
24 | select CRC32 | 24 | select CRC32 |
25 | ---help--- | 25 | ---help--- |
26 | This is a driver for the Fast Ethernet PCI network cards based on | 26 | This is a driver for the Fast Ethernet PCI network cards based on |
diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig index 1164930a40a5..c0ea838c78d1 100644 --- a/drivers/net/ethernet/stmicro/stmmac/Kconfig +++ b/drivers/net/ethernet/stmicro/stmmac/Kconfig | |||
@@ -26,8 +26,8 @@ config STMMAC_PLATFORM | |||
26 | If unsure, say N. | 26 | If unsure, say N. |
27 | 27 | ||
28 | config STMMAC_PCI | 28 | config STMMAC_PCI |
29 | bool "STMMAC PCI bus support (EXPERIMENTAL)" | 29 | bool "STMMAC PCI bus support" |
30 | depends on STMMAC_ETH && PCI && EXPERIMENTAL | 30 | depends on STMMAC_ETH && PCI |
31 | ---help--- | 31 | ---help--- |
32 | This is to select the Synopsys DWMAC available on PCI devices, | 32 | This is to select the Synopsys DWMAC available on PCI devices, |
33 | if you have a controller with this interface, say Y or M here. | 33 | if you have a controller with this interface, say Y or M here. |
diff --git a/drivers/net/ethernet/sun/Kconfig b/drivers/net/ethernet/sun/Kconfig index 57bfd8599679..ae3a3557293f 100644 --- a/drivers/net/ethernet/sun/Kconfig +++ b/drivers/net/ethernet/sun/Kconfig | |||
@@ -32,8 +32,8 @@ config HAPPYMEAL | |||
32 | will be called sunhme. | 32 | will be called sunhme. |
33 | 33 | ||
34 | config SUNBMAC | 34 | config SUNBMAC |
35 | tristate "Sun BigMAC 10/100baseT support (EXPERIMENTAL)" | 35 | tristate "Sun BigMAC 10/100baseT support" |
36 | depends on SBUS && EXPERIMENTAL | 36 | depends on SBUS |
37 | select CRC32 | 37 | select CRC32 |
38 | ---help--- | 38 | ---help--- |
39 | This driver supports the "be" interface available as an Sbus option. | 39 | This driver supports the "be" interface available as an Sbus option. |
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig index 4426151d4ac9..de71b1ec4625 100644 --- a/drivers/net/ethernet/ti/Kconfig +++ b/drivers/net/ethernet/ti/Kconfig | |||
@@ -88,8 +88,8 @@ config TLAN | |||
88 | Please email feedback to <torben.mathiasen@compaq.com>. | 88 | Please email feedback to <torben.mathiasen@compaq.com>. |
89 | 89 | ||
90 | config CPMAC | 90 | config CPMAC |
91 | tristate "TI AR7 CPMAC Ethernet support (EXPERIMENTAL)" | 91 | tristate "TI AR7 CPMAC Ethernet support" |
92 | depends on EXPERIMENTAL && AR7 | 92 | depends on AR7 |
93 | select PHYLIB | 93 | select PHYLIB |
94 | ---help--- | 94 | ---help--- |
95 | TI AR7 CPMAC Ethernet support | 95 | TI AR7 CPMAC Ethernet support |
diff --git a/drivers/net/hippi/Kconfig b/drivers/net/hippi/Kconfig index 95eb34fdbba7..f71515dc5beb 100644 --- a/drivers/net/hippi/Kconfig +++ b/drivers/net/hippi/Kconfig | |||
@@ -3,8 +3,8 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | config HIPPI | 5 | config HIPPI |
6 | bool "HIPPI driver support (EXPERIMENTAL)" | 6 | bool "HIPPI driver support" |
7 | depends on EXPERIMENTAL && INET && PCI | 7 | depends on INET && PCI |
8 | ---help--- | 8 | ---help--- |
9 | HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and | 9 | HIgh Performance Parallel Interface (HIPPI) is a 800Mbit/sec and |
10 | 1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI | 10 | 1600Mbit/sec dual-simplex switched or point-to-point network. HIPPI |
@@ -18,7 +18,7 @@ config HIPPI | |||
18 | if HIPPI | 18 | if HIPPI |
19 | 19 | ||
20 | config ROADRUNNER | 20 | config ROADRUNNER |
21 | tristate "Essential RoadRunner HIPPI PCI adapter support (EXPERIMENTAL)" | 21 | tristate "Essential RoadRunner HIPPI PCI adapter support" |
22 | depends on PCI | 22 | depends on PCI |
23 | ---help--- | 23 | ---help--- |
24 | Say Y here if this is your PCI HIPPI network card. | 24 | Say Y here if this is your PCI HIPPI network card. |
@@ -27,7 +27,7 @@ config ROADRUNNER | |||
27 | will be called rrunner. If unsure, say N. | 27 | will be called rrunner. If unsure, say N. |
28 | 28 | ||
29 | config ROADRUNNER_LARGE_RINGS | 29 | config ROADRUNNER_LARGE_RINGS |
30 | bool "Use large TX/RX rings (EXPERIMENTAL)" | 30 | bool "Use large TX/RX rings" |
31 | depends on ROADRUNNER | 31 | depends on ROADRUNNER |
32 | ---help--- | 32 | ---help--- |
33 | If you say Y here, the RoadRunner driver will preallocate up to 2 MB | 33 | If you say Y here, the RoadRunner driver will preallocate up to 2 MB |
diff --git a/drivers/net/irda/Kconfig b/drivers/net/irda/Kconfig index 595205406d73..59e9d9e1fd0f 100644 --- a/drivers/net/irda/Kconfig +++ b/drivers/net/irda/Kconfig | |||
@@ -140,7 +140,7 @@ config LITELINK_DONGLE | |||
140 | 140 | ||
141 | config MA600_DONGLE | 141 | config MA600_DONGLE |
142 | tristate "Mobile Action MA600 dongle" | 142 | tristate "Mobile Action MA600 dongle" |
143 | depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL | 143 | depends on IRTTY_SIR && DONGLE && IRDA |
144 | help | 144 | help |
145 | Say Y here if you want to build support for the Mobile Action MA600 | 145 | Say Y here if you want to build support for the Mobile Action MA600 |
146 | dongle. To compile it as a module, choose M here. The MA600 dongle | 146 | dongle. To compile it as a module, choose M here. The MA600 dongle |
@@ -153,7 +153,7 @@ config MA600_DONGLE | |||
153 | 153 | ||
154 | config GIRBIL_DONGLE | 154 | config GIRBIL_DONGLE |
155 | tristate "Greenwich GIrBIL dongle" | 155 | tristate "Greenwich GIrBIL dongle" |
156 | depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL | 156 | depends on IRTTY_SIR && DONGLE && IRDA |
157 | help | 157 | help |
158 | Say Y here if you want to build support for the Greenwich GIrBIL | 158 | Say Y here if you want to build support for the Greenwich GIrBIL |
159 | dongle. If you want to compile it as a module, choose M here. | 159 | dongle. If you want to compile it as a module, choose M here. |
@@ -164,7 +164,7 @@ config GIRBIL_DONGLE | |||
164 | 164 | ||
165 | config MCP2120_DONGLE | 165 | config MCP2120_DONGLE |
166 | tristate "Microchip MCP2120" | 166 | tristate "Microchip MCP2120" |
167 | depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL | 167 | depends on IRTTY_SIR && DONGLE && IRDA |
168 | help | 168 | help |
169 | Say Y here if you want to build support for the Microchip MCP2120 | 169 | Say Y here if you want to build support for the Microchip MCP2120 |
170 | dongle. If you want to compile it as a module, choose M here. | 170 | dongle. If you want to compile it as a module, choose M here. |
@@ -178,7 +178,7 @@ config MCP2120_DONGLE | |||
178 | 178 | ||
179 | config OLD_BELKIN_DONGLE | 179 | config OLD_BELKIN_DONGLE |
180 | tristate "Old Belkin dongle" | 180 | tristate "Old Belkin dongle" |
181 | depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL | 181 | depends on IRTTY_SIR && DONGLE && IRDA |
182 | help | 182 | help |
183 | Say Y here if you want to build support for the Adaptec Airport 1000 | 183 | Say Y here if you want to build support for the Adaptec Airport 1000 |
184 | and 2000 dongles. If you want to compile it as a module, choose | 184 | and 2000 dongles. If you want to compile it as a module, choose |
@@ -187,7 +187,7 @@ config OLD_BELKIN_DONGLE | |||
187 | 187 | ||
188 | config ACT200L_DONGLE | 188 | config ACT200L_DONGLE |
189 | tristate "ACTiSYS IR-200L dongle" | 189 | tristate "ACTiSYS IR-200L dongle" |
190 | depends on IRTTY_SIR && DONGLE && IRDA && EXPERIMENTAL | 190 | depends on IRTTY_SIR && DONGLE && IRDA |
191 | help | 191 | help |
192 | Say Y here if you want to build support for the ACTiSYS IR-200L | 192 | Say Y here if you want to build support for the ACTiSYS IR-200L |
193 | dongle. If you want to compile it as a module, choose M here. | 193 | dongle. If you want to compile it as a module, choose M here. |
@@ -198,7 +198,7 @@ config ACT200L_DONGLE | |||
198 | 198 | ||
199 | config KINGSUN_DONGLE | 199 | config KINGSUN_DONGLE |
200 | tristate "KingSun/DonShine DS-620 IrDA-USB dongle" | 200 | tristate "KingSun/DonShine DS-620 IrDA-USB dongle" |
201 | depends on IRDA && USB && EXPERIMENTAL | 201 | depends on IRDA && USB |
202 | help | 202 | help |
203 | Say Y or M here if you want to build support for the KingSun/DonShine | 203 | Say Y or M here if you want to build support for the KingSun/DonShine |
204 | DS-620 IrDA-USB bridge device driver. | 204 | DS-620 IrDA-USB bridge device driver. |
@@ -212,14 +212,14 @@ config KINGSUN_DONGLE | |||
212 | 212 | ||
213 | config EP7211_DONGLE | 213 | config EP7211_DONGLE |
214 | tristate "Cirrus Logic clps711x I/R support" | 214 | tristate "Cirrus Logic clps711x I/R support" |
215 | depends on IRTTY_SIR && ARCH_CLPS711X && IRDA && EXPERIMENTAL | 215 | depends on IRTTY_SIR && ARCH_CLPS711X && IRDA |
216 | help | 216 | help |
217 | Say Y here if you want to build support for the Cirrus logic | 217 | Say Y here if you want to build support for the Cirrus logic |
218 | EP7211 chipset's infrared module. | 218 | EP7211 chipset's infrared module. |
219 | 219 | ||
220 | config KSDAZZLE_DONGLE | 220 | config KSDAZZLE_DONGLE |
221 | tristate "KingSun Dazzle IrDA-USB dongle (EXPERIMENTAL)" | 221 | tristate "KingSun Dazzle IrDA-USB dongle" |
222 | depends on IRDA && USB && EXPERIMENTAL | 222 | depends on IRDA && USB |
223 | help | 223 | help |
224 | Say Y or M here if you want to build support for the KingSun Dazzle | 224 | Say Y or M here if you want to build support for the KingSun Dazzle |
225 | IrDA-USB bridge device driver. | 225 | IrDA-USB bridge device driver. |
@@ -232,8 +232,8 @@ config KSDAZZLE_DONGLE | |||
232 | ksdazzle-sir. | 232 | ksdazzle-sir. |
233 | 233 | ||
234 | config KS959_DONGLE | 234 | config KS959_DONGLE |
235 | tristate "KingSun KS-959 IrDA-USB dongle (EXPERIMENTAL)" | 235 | tristate "KingSun KS-959 IrDA-USB dongle" |
236 | depends on IRDA && USB && EXPERIMENTAL | 236 | depends on IRDA && USB |
237 | help | 237 | help |
238 | Say Y or M here if you want to build support for the KingSun KS-959 | 238 | Say Y or M here if you want to build support for the KingSun KS-959 |
239 | IrDA-USB bridge device driver. | 239 | IrDA-USB bridge device driver. |
@@ -264,8 +264,8 @@ config USB_IRDA | |||
264 | you will need both USB and IrDA support in your kernel... | 264 | you will need both USB and IrDA support in your kernel... |
265 | 265 | ||
266 | config SIGMATEL_FIR | 266 | config SIGMATEL_FIR |
267 | tristate "SigmaTel STIr4200 bridge (EXPERIMENTAL)" | 267 | tristate "SigmaTel STIr4200 bridge" |
268 | depends on IRDA && USB && EXPERIMENTAL | 268 | depends on IRDA && USB |
269 | select CRC32 | 269 | select CRC32 |
270 | ---help--- | 270 | ---help--- |
271 | Say Y here if you want to build support for the SigmaTel STIr4200 | 271 | Say Y here if you want to build support for the SigmaTel STIr4200 |
@@ -331,8 +331,8 @@ config SMC_IRCC_FIR | |||
331 | smsc-ircc2.o. | 331 | smsc-ircc2.o. |
332 | 332 | ||
333 | config ALI_FIR | 333 | config ALI_FIR |
334 | tristate "ALi M5123 FIR (EXPERIMENTAL)" | 334 | tristate "ALi M5123 FIR" |
335 | depends on EXPERIMENTAL && IRDA && ISA_DMA_API | 335 | depends on IRDA && ISA_DMA_API |
336 | help | 336 | help |
337 | Say Y here if you want to build support for the ALi M5123 FIR | 337 | Say Y here if you want to build support for the ALi M5123 FIR |
338 | Controller. The ALi M5123 FIR Controller is embedded in ALi M1543C, | 338 | Controller. The ALi M5123 FIR Controller is embedded in ALi M1543C, |
@@ -343,8 +343,8 @@ config ALI_FIR | |||
343 | ali-ircc. | 343 | ali-ircc. |
344 | 344 | ||
345 | config VLSI_FIR | 345 | config VLSI_FIR |
346 | tristate "VLSI 82C147 SIR/MIR/FIR (EXPERIMENTAL)" | 346 | tristate "VLSI 82C147 SIR/MIR/FIR" |
347 | depends on EXPERIMENTAL && IRDA && PCI | 347 | depends on IRDA && PCI |
348 | help | 348 | help |
349 | Say Y here if you want to build support for the VLSI 82C147 | 349 | Say Y here if you want to build support for the VLSI 82C147 |
350 | PCI-IrDA Controller. This controller is used by the HP OmniBook 800 | 350 | PCI-IrDA Controller. This controller is used by the HP OmniBook 800 |
@@ -387,7 +387,7 @@ config PXA_FICP | |||
387 | 387 | ||
388 | config MCS_FIR | 388 | config MCS_FIR |
389 | tristate "MosChip MCS7780 IrDA-USB dongle" | 389 | tristate "MosChip MCS7780 IrDA-USB dongle" |
390 | depends on IRDA && USB && EXPERIMENTAL | 390 | depends on IRDA && USB |
391 | select CRC32 | 391 | select CRC32 |
392 | help | 392 | help |
393 | Say Y or M here if you want to build support for the MosChip | 393 | Say Y or M here if you want to build support for the MosChip |
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index 044b5326459f..dc920974204e 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c | |||
@@ -95,7 +95,7 @@ static struct class mdio_bus_class = { | |||
95 | 95 | ||
96 | #if IS_ENABLED(CONFIG_OF_MDIO) | 96 | #if IS_ENABLED(CONFIG_OF_MDIO) |
97 | /* Helper function for of_mdio_find_bus */ | 97 | /* Helper function for of_mdio_find_bus */ |
98 | static int of_mdio_bus_match(struct device *dev, void *mdio_bus_np) | 98 | static int of_mdio_bus_match(struct device *dev, const void *mdio_bus_np) |
99 | { | 99 | { |
100 | return dev->of_node == mdio_bus_np; | 100 | return dev->of_node == mdio_bus_np; |
101 | } | 101 | } |
diff --git a/drivers/net/ppp/Kconfig b/drivers/net/ppp/Kconfig index 872df3ef07a6..278dea0c4c98 100644 --- a/drivers/net/ppp/Kconfig +++ b/drivers/net/ppp/Kconfig | |||
@@ -82,8 +82,8 @@ config PPP_FILTER | |||
82 | If unsure, say N. | 82 | If unsure, say N. |
83 | 83 | ||
84 | config PPP_MPPE | 84 | config PPP_MPPE |
85 | tristate "PPP MPPE compression (encryption) (EXPERIMENTAL)" | 85 | tristate "PPP MPPE compression (encryption)" |
86 | depends on PPP && EXPERIMENTAL | 86 | depends on PPP |
87 | select CRYPTO | 87 | select CRYPTO |
88 | select CRYPTO_SHA1 | 88 | select CRYPTO_SHA1 |
89 | select CRYPTO_ARC4 | 89 | select CRYPTO_ARC4 |
@@ -96,8 +96,8 @@ config PPP_MPPE | |||
96 | configuring PPTP clients and servers to utilize this method. | 96 | configuring PPTP clients and servers to utilize this method. |
97 | 97 | ||
98 | config PPP_MULTILINK | 98 | config PPP_MULTILINK |
99 | bool "PPP multilink support (EXPERIMENTAL)" | 99 | bool "PPP multilink support" |
100 | depends on PPP && EXPERIMENTAL | 100 | depends on PPP |
101 | ---help--- | 101 | ---help--- |
102 | PPP multilink is a protocol (defined in RFC 1990) which allows you | 102 | PPP multilink is a protocol (defined in RFC 1990) which allows you |
103 | to combine several (logical or physical) lines into one logical PPP | 103 | to combine several (logical or physical) lines into one logical PPP |
@@ -118,8 +118,8 @@ config PPPOATM | |||
118 | changes its encapsulation unilaterally. | 118 | changes its encapsulation unilaterally. |
119 | 119 | ||
120 | config PPPOE | 120 | config PPPOE |
121 | tristate "PPP over Ethernet (EXPERIMENTAL)" | 121 | tristate "PPP over Ethernet" |
122 | depends on EXPERIMENTAL && PPP | 122 | depends on PPP |
123 | ---help--- | 123 | ---help--- |
124 | Support for PPP over Ethernet. | 124 | Support for PPP over Ethernet. |
125 | 125 | ||
@@ -130,8 +130,8 @@ config PPPOE | |||
130 | the heading "Kernel mode PPPoE"). | 130 | the heading "Kernel mode PPPoE"). |
131 | 131 | ||
132 | config PPTP | 132 | config PPTP |
133 | tristate "PPP over IPv4 (PPTP) (EXPERIMENTAL)" | 133 | tristate "PPP over IPv4 (PPTP)" |
134 | depends on EXPERIMENTAL && PPP && NET_IPGRE_DEMUX | 134 | depends on PPP && NET_IPGRE_DEMUX |
135 | ---help--- | 135 | ---help--- |
136 | Support for PPP over IPv4.(Point-to-Point Tunneling Protocol) | 136 | Support for PPP over IPv4.(Point-to-Point Tunneling Protocol) |
137 | 137 | ||
@@ -141,8 +141,8 @@ config PPTP | |||
141 | utilize this module. | 141 | utilize this module. |
142 | 142 | ||
143 | config PPPOL2TP | 143 | config PPPOL2TP |
144 | tristate "PPP over L2TP (EXPERIMENTAL)" | 144 | tristate "PPP over L2TP" |
145 | depends on EXPERIMENTAL && L2TP && PPP | 145 | depends on L2TP && PPP |
146 | ---help--- | 146 | ---help--- |
147 | Support for PPP-over-L2TP socket family. L2TP is a protocol | 147 | Support for PPP-over-L2TP socket family. L2TP is a protocol |
148 | used by ISPs and enterprises to tunnel PPP traffic over UDP | 148 | used by ISPs and enterprises to tunnel PPP traffic over UDP |
diff --git a/drivers/net/team/Kconfig b/drivers/net/team/Kconfig index 6b08bd419fba..c3011af68e91 100644 --- a/drivers/net/team/Kconfig +++ b/drivers/net/team/Kconfig | |||
@@ -1,6 +1,5 @@ | |||
1 | menuconfig NET_TEAM | 1 | menuconfig NET_TEAM |
2 | tristate "Ethernet team driver support (EXPERIMENTAL)" | 2 | tristate "Ethernet team driver support" |
3 | depends on EXPERIMENTAL | ||
4 | ---help--- | 3 | ---help--- |
5 | This allows one to create virtual interfaces that teams together | 4 | This allows one to create virtual interfaces that teams together |
6 | multiple ethernet devices. | 5 | multiple ethernet devices. |
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig index ef976215b649..3a44a5d7bf9e 100644 --- a/drivers/net/usb/Kconfig +++ b/drivers/net/usb/Kconfig | |||
@@ -8,8 +8,7 @@ menu "USB Network Adapters" | |||
8 | depends on USB && NET | 8 | depends on USB && NET |
9 | 9 | ||
10 | config USB_CATC | 10 | config USB_CATC |
11 | tristate "USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)" | 11 | tristate "USB CATC NetMate-based Ethernet device support" |
12 | depends on EXPERIMENTAL | ||
13 | select CRC32 | 12 | select CRC32 |
14 | ---help--- | 13 | ---help--- |
15 | Say Y if you want to use one of the following 10Mbps USB Ethernet | 14 | Say Y if you want to use one of the following 10Mbps USB Ethernet |
@@ -83,8 +82,7 @@ config USB_PEGASUS | |||
83 | module will be called pegasus. | 82 | module will be called pegasus. |
84 | 83 | ||
85 | config USB_RTL8150 | 84 | config USB_RTL8150 |
86 | tristate "USB RTL8150 based ethernet device support (EXPERIMENTAL)" | 85 | tristate "USB RTL8150 based ethernet device support" |
87 | depends on EXPERIMENTAL | ||
88 | select NET_CORE | 86 | select NET_CORE |
89 | select MII | 87 | select MII |
90 | help | 88 | help |
@@ -188,7 +186,7 @@ config USB_NET_CDCETHER | |||
188 | 186 | ||
189 | config USB_NET_CDC_EEM | 187 | config USB_NET_CDC_EEM |
190 | tristate "CDC EEM support" | 188 | tristate "CDC EEM support" |
191 | depends on USB_USBNET && EXPERIMENTAL | 189 | depends on USB_USBNET |
192 | help | 190 | help |
193 | This option supports devices conforming to the Communication Device | 191 | This option supports devices conforming to the Communication Device |
194 | Class (CDC) Ethernet Emulation Model, a specification that's easy to | 192 | Class (CDC) Ethernet Emulation Model, a specification that's easy to |
@@ -287,7 +285,7 @@ config USB_NET_PLUSB | |||
287 | tristate "Prolific PL-2301/2302/25A1 based cables" | 285 | tristate "Prolific PL-2301/2302/25A1 based cables" |
288 | # if the handshake/init/reset problems, from original 'plusb', | 286 | # if the handshake/init/reset problems, from original 'plusb', |
289 | # are ever resolved ... then remove "experimental" | 287 | # are ever resolved ... then remove "experimental" |
290 | depends on USB_USBNET && EXPERIMENTAL | 288 | depends on USB_USBNET |
291 | help | 289 | help |
292 | Choose this option if you're using a host-to-host cable | 290 | Choose this option if you're using a host-to-host cable |
293 | with one of these chips. | 291 | with one of these chips. |
@@ -301,8 +299,8 @@ config USB_NET_MCS7830 | |||
301 | adapters marketed under the DeLOCK brand. | 299 | adapters marketed under the DeLOCK brand. |
302 | 300 | ||
303 | config USB_NET_RNDIS_HOST | 301 | config USB_NET_RNDIS_HOST |
304 | tristate "Host for RNDIS and ActiveSync devices (EXPERIMENTAL)" | 302 | tristate "Host for RNDIS and ActiveSync devices" |
305 | depends on USB_USBNET && EXPERIMENTAL | 303 | depends on USB_USBNET |
306 | select USB_NET_CDCETHER | 304 | select USB_NET_CDCETHER |
307 | help | 305 | help |
308 | This option enables hosting "Remote NDIS" USB networking links, | 306 | This option enables hosting "Remote NDIS" USB networking links, |
@@ -380,7 +378,7 @@ config USB_EPSON2888 | |||
380 | 378 | ||
381 | config USB_KC2190 | 379 | config USB_KC2190 |
382 | boolean "KT Technology KC2190 based cables (InstaNet)" | 380 | boolean "KT Technology KC2190 based cables (InstaNet)" |
383 | depends on USB_NET_CDC_SUBSET && EXPERIMENTAL | 381 | depends on USB_NET_CDC_SUBSET |
384 | help | 382 | help |
385 | Choose this option if you're using a host-to-host cable | 383 | Choose this option if you're using a host-to-host cable |
386 | with one of these chips. | 384 | with one of these chips. |
diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig index 0c077b0f7a2b..13daec88d918 100644 --- a/drivers/net/wan/Kconfig +++ b/drivers/net/wan/Kconfig | |||
@@ -358,7 +358,7 @@ config SDLA | |||
358 | 358 | ||
359 | # X.25 network drivers | 359 | # X.25 network drivers |
360 | config LAPBETHER | 360 | config LAPBETHER |
361 | tristate "LAPB over Ethernet driver (EXPERIMENTAL)" | 361 | tristate "LAPB over Ethernet driver" |
362 | depends on LAPB && X25 | 362 | depends on LAPB && X25 |
363 | ---help--- | 363 | ---help--- |
364 | Driver for a pseudo device (typically called /dev/lapb0) which allows | 364 | Driver for a pseudo device (typically called /dev/lapb0) which allows |
@@ -374,7 +374,7 @@ config LAPBETHER | |||
374 | If unsure, say N. | 374 | If unsure, say N. |
375 | 375 | ||
376 | config X25_ASY | 376 | config X25_ASY |
377 | tristate "X.25 async driver (EXPERIMENTAL)" | 377 | tristate "X.25 async driver" |
378 | depends on LAPB && X25 | 378 | depends on LAPB && X25 |
379 | ---help--- | 379 | ---help--- |
380 | Send and receive X.25 frames over regular asynchronous serial | 380 | Send and receive X.25 frames over regular asynchronous serial |
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 28aa05f60c26..f8f0156dff4e 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig | |||
@@ -138,7 +138,7 @@ config AIRO_CS | |||
138 | 138 | ||
139 | config PCMCIA_WL3501 | 139 | config PCMCIA_WL3501 |
140 | tristate "Planet WL3501 PCMCIA cards" | 140 | tristate "Planet WL3501 PCMCIA cards" |
141 | depends on EXPERIMENTAL && PCMCIA | 141 | depends on PCMCIA |
142 | select WIRELESS_EXT | 142 | select WIRELESS_EXT |
143 | select WEXT_SPY | 143 | select WEXT_SPY |
144 | help | 144 | help |
@@ -148,7 +148,7 @@ config PCMCIA_WL3501 | |||
148 | 148 | ||
149 | config PRISM54 | 149 | config PRISM54 |
150 | tristate 'Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)' | 150 | tristate 'Intersil Prism GT/Duette/Indigo PCI/Cardbus (DEPRECATED)' |
151 | depends on PCI && EXPERIMENTAL | 151 | depends on PCI |
152 | select WIRELESS_EXT | 152 | select WIRELESS_EXT |
153 | select WEXT_SPY | 153 | select WEXT_SPY |
154 | select WEXT_PRIV | 154 | select WEXT_PRIV |
@@ -187,7 +187,7 @@ config USB_ZD1201 | |||
187 | 187 | ||
188 | config USB_NET_RNDIS_WLAN | 188 | config USB_NET_RNDIS_WLAN |
189 | tristate "Wireless RNDIS USB support" | 189 | tristate "Wireless RNDIS USB support" |
190 | depends on USB && EXPERIMENTAL | 190 | depends on USB |
191 | depends on CFG80211 | 191 | depends on CFG80211 |
192 | select USB_USBNET | 192 | select USB_USBNET |
193 | select USB_NET_CDCETHER | 193 | select USB_NET_CDCETHER |
@@ -217,7 +217,7 @@ source "drivers/net/wireless/rtl818x/Kconfig" | |||
217 | 217 | ||
218 | config ADM8211 | 218 | config ADM8211 |
219 | tristate "ADMtek ADM8211 support" | 219 | tristate "ADMtek ADM8211 support" |
220 | depends on MAC80211 && PCI && EXPERIMENTAL | 220 | depends on MAC80211 && PCI |
221 | select CRC32 | 221 | select CRC32 |
222 | select EEPROM_93CX6 | 222 | select EEPROM_93CX6 |
223 | ---help--- | 223 | ---help--- |
@@ -257,7 +257,7 @@ config MAC80211_HWSIM | |||
257 | 257 | ||
258 | config MWL8K | 258 | config MWL8K |
259 | tristate "Marvell 88W8xxx PCI/PCIe Wireless support" | 259 | tristate "Marvell 88W8xxx PCI/PCIe Wireless support" |
260 | depends on MAC80211 && PCI && EXPERIMENTAL | 260 | depends on MAC80211 && PCI |
261 | ---help--- | 261 | ---help--- |
262 | This driver supports Marvell TOPDOG 802.11 wireless cards. | 262 | This driver supports Marvell TOPDOG 802.11 wireless cards. |
263 | 263 | ||
diff --git a/drivers/net/wireless/ath/ath6kl/Kconfig b/drivers/net/wireless/ath/ath6kl/Kconfig index 26c4b7220859..630c83db056e 100644 --- a/drivers/net/wireless/ath/ath6kl/Kconfig +++ b/drivers/net/wireless/ath/ath6kl/Kconfig | |||
@@ -18,7 +18,6 @@ config ATH6KL_USB | |||
18 | depends on ATH6KL | 18 | depends on ATH6KL |
19 | depends on USB | 19 | depends on USB |
20 | depends on CFG80211 | 20 | depends on CFG80211 |
21 | depends on EXPERIMENTAL | ||
22 | ---help--- | 21 | ---help--- |
23 | This module adds support for wireless adapters based on | 22 | This module adds support for wireless adapters based on |
24 | Atheros AR6004 chipset running over USB. This is still under | 23 | Atheros AR6004 chipset running over USB. This is still under |
diff --git a/drivers/net/wireless/ath/carl9170/Kconfig b/drivers/net/wireless/ath/carl9170/Kconfig index 13a204598766..1a796e5f69ec 100644 --- a/drivers/net/wireless/ath/carl9170/Kconfig +++ b/drivers/net/wireless/ath/carl9170/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config CARL9170 | 1 | config CARL9170 |
2 | tristate "Linux Community AR9170 802.11n USB support" | 2 | tristate "Linux Community AR9170 802.11n USB support" |
3 | depends on USB && MAC80211 && EXPERIMENTAL | 3 | depends on USB && MAC80211 |
4 | select ATH_COMMON | 4 | select ATH_COMMON |
5 | select FW_LOADER | 5 | select FW_LOADER |
6 | select CRC32 | 6 | select CRC32 |
diff --git a/drivers/net/wireless/ath/wil6210/dbg_hexdump.h b/drivers/net/wireless/ath/wil6210/dbg_hexdump.h index 6a315ba5aa7d..e5712f026c47 100644 --- a/drivers/net/wireless/ath/wil6210/dbg_hexdump.h +++ b/drivers/net/wireless/ath/wil6210/dbg_hexdump.h | |||
@@ -1,25 +1,15 @@ | |||
1 | #ifndef WIL_DBG_HEXDUMP_H_ | 1 | #ifndef WIL_DBG_HEXDUMP_H_ |
2 | #define WIL_DBG_HEXDUMP_H_ | 2 | #define WIL_DBG_HEXDUMP_H_ |
3 | 3 | ||
4 | #if defined(CONFIG_DYNAMIC_DEBUG) | 4 | #include <linux/printk.h> |
5 | #define wil_dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ | 5 | #include <linux/dynamic_debug.h> |
6 | groupsize, buf, len, ascii) \ | ||
7 | do { \ | ||
8 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, \ | ||
9 | __builtin_constant_p(prefix_str) ? prefix_str : "hexdump");\ | ||
10 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ | ||
11 | print_hex_dump(KERN_DEBUG, prefix_str, \ | ||
12 | prefix_type, rowsize, groupsize, \ | ||
13 | buf, len, ascii); \ | ||
14 | } while (0) | ||
15 | 6 | ||
7 | #if defined(CONFIG_DYNAMIC_DEBUG) | ||
16 | #define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ | 8 | #define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ |
17 | groupsize, buf, len, ascii) \ | 9 | groupsize, buf, len, ascii) \ |
18 | wil_dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ | 10 | dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ |
19 | groupsize, buf, len, ascii) | 11 | groupsize, buf, len, ascii) |
20 | 12 | ||
21 | #define print_hex_dump_bytes(prefix_str, prefix_type, buf, len) \ | ||
22 | wil_dynamic_hex_dump(prefix_str, prefix_type, 16, 1, buf, len, true) | ||
23 | #else /* defined(CONFIG_DYNAMIC_DEBUG) */ | 13 | #else /* defined(CONFIG_DYNAMIC_DEBUG) */ |
24 | #define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ | 14 | #define wil_print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ |
25 | groupsize, buf, len, ascii) \ | 15 | groupsize, buf, len, ascii) \ |
diff --git a/drivers/net/wireless/b43/Kconfig b/drivers/net/wireless/b43/Kconfig index 7a28d21ac389..287c6b670a36 100644 --- a/drivers/net/wireless/b43/Kconfig +++ b/drivers/net/wireless/b43/Kconfig | |||
@@ -78,8 +78,8 @@ config B43_PCMCIA | |||
78 | If unsure, say N. | 78 | If unsure, say N. |
79 | 79 | ||
80 | config B43_SDIO | 80 | config B43_SDIO |
81 | bool "Broadcom 43xx SDIO device support (EXPERIMENTAL)" | 81 | bool "Broadcom 43xx SDIO device support" |
82 | depends on B43 && SSB_SDIOHOST_POSSIBLE && EXPERIMENTAL | 82 | depends on B43 && SSB_SDIOHOST_POSSIBLE |
83 | select SSB_SDIOHOST | 83 | select SSB_SDIOHOST |
84 | ---help--- | 84 | ---help--- |
85 | Broadcom 43xx device support for Soft-MAC SDIO devices. | 85 | Broadcom 43xx device support for Soft-MAC SDIO devices. |
@@ -109,8 +109,8 @@ config B43_PIO | |||
109 | default y | 109 | default y |
110 | 110 | ||
111 | config B43_PHY_N | 111 | config B43_PHY_N |
112 | bool "Support for 802.11n (N-PHY) devices (EXPERIMENTAL)" | 112 | bool "Support for 802.11n (N-PHY) devices" |
113 | depends on B43 && EXPERIMENTAL | 113 | depends on B43 |
114 | ---help--- | 114 | ---help--- |
115 | Support for the N-PHY. | 115 | Support for the N-PHY. |
116 | 116 | ||
@@ -130,8 +130,8 @@ config B43_PHY_LP | |||
130 | (802.11a support is optional, and currently disabled). | 130 | (802.11a support is optional, and currently disabled). |
131 | 131 | ||
132 | config B43_PHY_HT | 132 | config B43_PHY_HT |
133 | bool "Support for HT-PHY (high throughput) devices (EXPERIMENTAL)" | 133 | bool "Support for HT-PHY (high throughput) devices" |
134 | depends on B43 && EXPERIMENTAL | 134 | depends on B43 |
135 | ---help--- | 135 | ---help--- |
136 | Support for the HT-PHY. | 136 | Support for the HT-PHY. |
137 | 137 | ||
diff --git a/drivers/net/wireless/ipw2x00/Kconfig b/drivers/net/wireless/ipw2x00/Kconfig index 2715b101aded..91c0cb3c368e 100644 --- a/drivers/net/wireless/ipw2x00/Kconfig +++ b/drivers/net/wireless/ipw2x00/Kconfig | |||
@@ -137,7 +137,7 @@ config IPW2200_PROMISCUOUS | |||
137 | 137 | ||
138 | config IPW2200_QOS | 138 | config IPW2200_QOS |
139 | bool "Enable QoS support" | 139 | bool "Enable QoS support" |
140 | depends on IPW2200 && EXPERIMENTAL | 140 | depends on IPW2200 |
141 | 141 | ||
142 | config IPW2200_DEBUG | 142 | config IPW2200_DEBUG |
143 | bool "Enable full debugging output in IPW2200 module." | 143 | bool "Enable full debugging output in IPW2200 module." |
diff --git a/drivers/net/wireless/p54/Kconfig b/drivers/net/wireless/p54/Kconfig index 0ec55b50798e..15ea36b51a66 100644 --- a/drivers/net/wireless/p54/Kconfig +++ b/drivers/net/wireless/p54/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config P54_COMMON | 1 | config P54_COMMON |
2 | tristate "Softmac Prism54 support" | 2 | tristate "Softmac Prism54 support" |
3 | depends on MAC80211 && EXPERIMENTAL | 3 | depends on MAC80211 |
4 | select FW_LOADER | 4 | select FW_LOADER |
5 | select CRC_CCITT | 5 | select CRC_CCITT |
6 | ---help--- | 6 | ---help--- |
diff --git a/drivers/net/wireless/rt2x00/Kconfig b/drivers/net/wireless/rt2x00/Kconfig index c7548da6573d..44d6ead43341 100644 --- a/drivers/net/wireless/rt2x00/Kconfig +++ b/drivers/net/wireless/rt2x00/Kconfig | |||
@@ -82,7 +82,6 @@ config RT2800PCI_RT33XX | |||
82 | 82 | ||
83 | config RT2800PCI_RT35XX | 83 | config RT2800PCI_RT35XX |
84 | bool "rt2800pci - Include support for rt35xx devices (EXPERIMENTAL)" | 84 | bool "rt2800pci - Include support for rt35xx devices (EXPERIMENTAL)" |
85 | depends on EXPERIMENTAL | ||
86 | default y | 85 | default y |
87 | ---help--- | 86 | ---help--- |
88 | This adds support for rt35xx wireless chipset family to the | 87 | This adds support for rt35xx wireless chipset family to the |
@@ -92,7 +91,6 @@ config RT2800PCI_RT35XX | |||
92 | 91 | ||
93 | config RT2800PCI_RT53XX | 92 | config RT2800PCI_RT53XX |
94 | bool "rt2800pci - Include support for rt53xx devices (EXPERIMENTAL)" | 93 | bool "rt2800pci - Include support for rt53xx devices (EXPERIMENTAL)" |
95 | depends on EXPERIMENTAL | ||
96 | default y | 94 | default y |
97 | ---help--- | 95 | ---help--- |
98 | This adds support for rt53xx wireless chipset family to the | 96 | This adds support for rt53xx wireless chipset family to the |
@@ -101,7 +99,6 @@ config RT2800PCI_RT53XX | |||
101 | 99 | ||
102 | config RT2800PCI_RT3290 | 100 | config RT2800PCI_RT3290 |
103 | bool "rt2800pci - Include support for rt3290 devices (EXPERIMENTAL)" | 101 | bool "rt2800pci - Include support for rt3290 devices (EXPERIMENTAL)" |
104 | depends on EXPERIMENTAL | ||
105 | default y | 102 | default y |
106 | ---help--- | 103 | ---help--- |
107 | This adds support for rt3290 wireless chipset family to the | 104 | This adds support for rt3290 wireless chipset family to the |
@@ -159,7 +156,6 @@ config RT2800USB_RT33XX | |||
159 | 156 | ||
160 | config RT2800USB_RT35XX | 157 | config RT2800USB_RT35XX |
161 | bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)" | 158 | bool "rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)" |
162 | depends on EXPERIMENTAL | ||
163 | default y | 159 | default y |
164 | ---help--- | 160 | ---help--- |
165 | This adds support for rt35xx wireless chipset family to the | 161 | This adds support for rt35xx wireless chipset family to the |
@@ -168,7 +164,6 @@ config RT2800USB_RT35XX | |||
168 | 164 | ||
169 | config RT2800USB_RT53XX | 165 | config RT2800USB_RT53XX |
170 | bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)" | 166 | bool "rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)" |
171 | depends on EXPERIMENTAL | ||
172 | ---help--- | 167 | ---help--- |
173 | This adds support for rt53xx wireless chipset family to the | 168 | This adds support for rt53xx wireless chipset family to the |
174 | rt2800usb driver. | 169 | rt2800usb driver. |
diff --git a/drivers/net/wireless/rtl818x/Kconfig b/drivers/net/wireless/rtl818x/Kconfig index 17d80fe556de..30332175bcd8 100644 --- a/drivers/net/wireless/rtl818x/Kconfig +++ b/drivers/net/wireless/rtl818x/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | config RTL8180 | 4 | config RTL8180 |
5 | tristate "Realtek 8180/8185 PCI support" | 5 | tristate "Realtek 8180/8185 PCI support" |
6 | depends on MAC80211 && PCI && EXPERIMENTAL | 6 | depends on MAC80211 && PCI |
7 | select EEPROM_93CX6 | 7 | select EEPROM_93CX6 |
8 | ---help--- | 8 | ---help--- |
9 | This is a driver for RTL8180 and RTL8185 based cards. | 9 | This is a driver for RTL8180 and RTL8185 based cards. |
diff --git a/drivers/net/wireless/zd1211rw/Kconfig b/drivers/net/wireless/zd1211rw/Kconfig index 5f809695f71a..96c8e1de0879 100644 --- a/drivers/net/wireless/zd1211rw/Kconfig +++ b/drivers/net/wireless/zd1211rw/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config ZD1211RW | 1 | config ZD1211RW |
2 | tristate "ZyDAS ZD1211/ZD1211B USB-wireless support" | 2 | tristate "ZyDAS ZD1211/ZD1211B USB-wireless support" |
3 | depends on USB && MAC80211 && EXPERIMENTAL | 3 | depends on USB && MAC80211 |
4 | select FW_LOADER | 4 | select FW_LOADER |
5 | ---help--- | 5 | ---help--- |
6 | This is an experimental driver for the ZyDAS ZD1211/ZD1211B wireless | 6 | This is an experimental driver for the ZyDAS ZD1211/ZD1211B wireless |
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig index 8fd255f7ee40..b90f85bf5f81 100644 --- a/drivers/pcmcia/Kconfig +++ b/drivers/pcmcia/Kconfig | |||
@@ -36,8 +36,8 @@ config PCMCIA | |||
36 | If unsure, say Y. | 36 | If unsure, say Y. |
37 | 37 | ||
38 | config PCMCIA_LOAD_CIS | 38 | config PCMCIA_LOAD_CIS |
39 | bool "Load CIS updates from userspace (EXPERIMENTAL)" | 39 | bool "Load CIS updates from userspace" |
40 | depends on PCMCIA && EXPERIMENTAL | 40 | depends on PCMCIA |
41 | select FW_LOADER | 41 | select FW_LOADER |
42 | default y | 42 | default y |
43 | help | 43 | help |
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c index 471c71f7f8b6..75933a6aa828 100644 --- a/drivers/pinctrl/pinctrl-at91.c +++ b/drivers/pinctrl/pinctrl-at91.c | |||
@@ -1503,10 +1503,9 @@ static int at91_gpio_probe(struct platform_device *pdev) | |||
1503 | goto err; | 1503 | goto err; |
1504 | } | 1504 | } |
1505 | 1505 | ||
1506 | at91_chip->regbase = devm_request_and_ioremap(&pdev->dev, res); | 1506 | at91_chip->regbase = devm_ioremap_resource(&pdev->dev, res); |
1507 | if (!at91_chip->regbase) { | 1507 | if (IS_ERR(at91_chip->regbase)) { |
1508 | dev_err(&pdev->dev, "failed to map registers, ignoring.\n"); | 1508 | ret = PTR_ERR(at91_chip->regbase); |
1509 | ret = -EBUSY; | ||
1510 | goto err; | 1509 | goto err; |
1511 | } | 1510 | } |
1512 | 1511 | ||
diff --git a/drivers/pinctrl/pinctrl-bcm2835.c b/drivers/pinctrl/pinctrl-bcm2835.c index d347b9f2eae3..4eb6d2c4e4df 100644 --- a/drivers/pinctrl/pinctrl-bcm2835.c +++ b/drivers/pinctrl/pinctrl-bcm2835.c | |||
@@ -959,9 +959,9 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) | |||
959 | return err; | 959 | return err; |
960 | } | 960 | } |
961 | 961 | ||
962 | pc->base = devm_request_and_ioremap(dev, &iomem); | 962 | pc->base = devm_ioremap_resource(dev, &iomem); |
963 | if (!pc->base) | 963 | if (IS_ERR(pc->base)) |
964 | return -EADDRNOTAVAIL; | 964 | return PTR_ERR(pc->base); |
965 | 965 | ||
966 | pc->gpio_chip = bcm2835_gpio_chip; | 966 | pc->gpio_chip = bcm2835_gpio_chip; |
967 | pc->gpio_chip.dev = dev; | 967 | pc->gpio_chip.dev = dev; |
diff --git a/drivers/pinctrl/pinctrl-coh901.c b/drivers/pinctrl/pinctrl-coh901.c index fbb37154471c..8b7e7bc2226b 100644 --- a/drivers/pinctrl/pinctrl-coh901.c +++ b/drivers/pinctrl/pinctrl-coh901.c | |||
@@ -715,11 +715,9 @@ static int __init u300_gpio_probe(struct platform_device *pdev) | |||
715 | return -ENODEV; | 715 | return -ENODEV; |
716 | } | 716 | } |
717 | 717 | ||
718 | gpio->base = devm_request_and_ioremap(&pdev->dev, memres); | 718 | gpio->base = devm_ioremap_resource(&pdev->dev, memres); |
719 | if (!gpio->base) { | 719 | if (IS_ERR(gpio->base)) |
720 | dev_err(gpio->dev, "could not get remap memory\n"); | 720 | return PTR_ERR(gpio->base); |
721 | return -ENOMEM; | ||
722 | } | ||
723 | 721 | ||
724 | gpio->clk = devm_clk_get(gpio->dev, NULL); | 722 | gpio->clk = devm_clk_get(gpio->dev, NULL); |
725 | if (IS_ERR(gpio->clk)) { | 723 | if (IS_ERR(gpio->clk)) { |
diff --git a/drivers/pinctrl/pinctrl-exynos5440.c b/drivers/pinctrl/pinctrl-exynos5440.c index 142729914c34..1376eb7305db 100644 --- a/drivers/pinctrl/pinctrl-exynos5440.c +++ b/drivers/pinctrl/pinctrl-exynos5440.c | |||
@@ -866,11 +866,9 @@ static int exynos5440_pinctrl_probe(struct platform_device *pdev) | |||
866 | return -ENOENT; | 866 | return -ENOENT; |
867 | } | 867 | } |
868 | 868 | ||
869 | priv->reg_base = devm_request_and_ioremap(&pdev->dev, res); | 869 | priv->reg_base = devm_ioremap_resource(&pdev->dev, res); |
870 | if (!priv->reg_base) { | 870 | if (IS_ERR(priv->reg_base)) |
871 | dev_err(dev, "ioremap failed\n"); | 871 | return PTR_ERR(priv->reg_base); |
872 | return -ENODEV; | ||
873 | } | ||
874 | 872 | ||
875 | ret = exynos5440_gpiolib_register(pdev, priv); | 873 | ret = exynos5440_gpiolib_register(pdev, priv); |
876 | if (ret) | 874 | if (ret) |
diff --git a/drivers/pinctrl/pinctrl-falcon.c b/drivers/pinctrl/pinctrl-falcon.c index 4a0d54a08890..af97a1f90007 100644 --- a/drivers/pinctrl/pinctrl-falcon.c +++ b/drivers/pinctrl/pinctrl-falcon.c | |||
@@ -447,14 +447,11 @@ static int pinctrl_falcon_probe(struct platform_device *pdev) | |||
447 | dev_err(&ppdev->dev, "failed to get clock\n"); | 447 | dev_err(&ppdev->dev, "failed to get clock\n"); |
448 | return PTR_ERR(falcon_info.clk[*bank]); | 448 | return PTR_ERR(falcon_info.clk[*bank]); |
449 | } | 449 | } |
450 | falcon_info.membase[*bank] = | 450 | falcon_info.membase[*bank] = devm_ioremap_resource(&pdev->dev, |
451 | devm_request_and_ioremap(&pdev->dev, &res); | 451 | &res); |
452 | if (!falcon_info.membase[*bank]) { | 452 | if (IS_ERR(falcon_info.membase[*bank])) |
453 | dev_err(&pdev->dev, | 453 | return PTR_ERR(falcon_info.membase[*bank]); |
454 | "Failed to remap memory for bank %d\n", | 454 | |
455 | *bank); | ||
456 | return -ENOMEM; | ||
457 | } | ||
458 | avail = pad_r32(falcon_info.membase[*bank], | 455 | avail = pad_r32(falcon_info.membase[*bank], |
459 | LTQ_PADC_AVAIL); | 456 | LTQ_PADC_AVAIL); |
460 | pins = fls(avail); | 457 | pins = fls(avail); |
diff --git a/drivers/pinctrl/pinctrl-imx.c b/drivers/pinctrl/pinctrl-imx.c index 43a6f1ffc786..4cebb9c6c5c5 100644 --- a/drivers/pinctrl/pinctrl-imx.c +++ b/drivers/pinctrl/pinctrl-imx.c | |||
@@ -584,9 +584,9 @@ int imx_pinctrl_probe(struct platform_device *pdev, | |||
584 | if (!res) | 584 | if (!res) |
585 | return -ENOENT; | 585 | return -ENOENT; |
586 | 586 | ||
587 | ipctl->base = devm_request_and_ioremap(&pdev->dev, res); | 587 | ipctl->base = devm_ioremap_resource(&pdev->dev, res); |
588 | if (!ipctl->base) | 588 | if (IS_ERR(ipctl->base)) |
589 | return -EBUSY; | 589 | return PTR_ERR(ipctl->base); |
590 | 590 | ||
591 | imx_pinctrl_desc.name = dev_name(&pdev->dev); | 591 | imx_pinctrl_desc.name = dev_name(&pdev->dev); |
592 | imx_pinctrl_desc.pins = info->pins; | 592 | imx_pinctrl_desc.pins = info->pins; |
diff --git a/drivers/pinctrl/pinctrl-nomadik.c b/drivers/pinctrl/pinctrl-nomadik.c index de9e8519b803..3c80dd98304b 100644 --- a/drivers/pinctrl/pinctrl-nomadik.c +++ b/drivers/pinctrl/pinctrl-nomadik.c | |||
@@ -1362,9 +1362,9 @@ static int nmk_gpio_probe(struct platform_device *dev) | |||
1362 | if (secondary_irq >= 0 && !pdata->get_secondary_status) | 1362 | if (secondary_irq >= 0 && !pdata->get_secondary_status) |
1363 | return -EINVAL; | 1363 | return -EINVAL; |
1364 | 1364 | ||
1365 | base = devm_request_and_ioremap(&dev->dev, res); | 1365 | base = devm_ioremap_resource(&dev->dev, res); |
1366 | if (!base) | 1366 | if (IS_ERR(base)) |
1367 | return -ENOMEM; | 1367 | return PTR_ERR(base); |
1368 | 1368 | ||
1369 | clk = devm_clk_get(&dev->dev, NULL); | 1369 | clk = devm_clk_get(&dev->dev, NULL); |
1370 | if (IS_ERR(clk)) | 1370 | if (IS_ERR(clk)) |
diff --git a/drivers/pinctrl/pinctrl-pxa3xx.c b/drivers/pinctrl/pinctrl-pxa3xx.c index 51f8a388b917..1f49bb02a6af 100644 --- a/drivers/pinctrl/pinctrl-pxa3xx.c +++ b/drivers/pinctrl/pinctrl-pxa3xx.c | |||
@@ -11,6 +11,7 @@ | |||
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include <linux/err.h> | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/device.h> | 16 | #include <linux/device.h> |
16 | #include <linux/io.h> | 17 | #include <linux/io.h> |
@@ -187,9 +188,9 @@ int pxa3xx_pinctrl_register(struct platform_device *pdev, | |||
187 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 188 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
188 | if (!res) | 189 | if (!res) |
189 | return -ENOENT; | 190 | return -ENOENT; |
190 | info->virt_base = devm_request_and_ioremap(&pdev->dev, res); | 191 | info->virt_base = devm_ioremap_resource(&pdev->dev, res); |
191 | if (!info->virt_base) | 192 | if (IS_ERR(info->virt_base)) |
192 | return -ENOMEM; | 193 | return PTR_ERR(info->virt_base); |
193 | info->pctrl = pinctrl_register(desc, &pdev->dev, info); | 194 | info->pctrl = pinctrl_register(desc, &pdev->dev, info); |
194 | if (!info->pctrl) { | 195 | if (!info->pctrl) { |
195 | dev_err(&pdev->dev, "failed to register PXA pinmux driver\n"); | 196 | dev_err(&pdev->dev, "failed to register PXA pinmux driver\n"); |
diff --git a/drivers/pinctrl/pinctrl-samsung.c b/drivers/pinctrl/pinctrl-samsung.c index 5c20ed056054..5f8441ef59ca 100644 --- a/drivers/pinctrl/pinctrl-samsung.c +++ b/drivers/pinctrl/pinctrl-samsung.c | |||
@@ -916,11 +916,9 @@ static int samsung_pinctrl_probe(struct platform_device *pdev) | |||
916 | return -ENOENT; | 916 | return -ENOENT; |
917 | } | 917 | } |
918 | 918 | ||
919 | drvdata->virt_base = devm_request_and_ioremap(&pdev->dev, res); | 919 | drvdata->virt_base = devm_ioremap_resource(&pdev->dev, res); |
920 | if (!drvdata->virt_base) { | 920 | if (IS_ERR(drvdata->virt_base)) |
921 | dev_err(dev, "ioremap failed\n"); | 921 | return PTR_ERR(drvdata->virt_base); |
922 | return -ENODEV; | ||
923 | } | ||
924 | 922 | ||
925 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 923 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
926 | if (res) | 924 | if (res) |
diff --git a/drivers/pinctrl/pinctrl-u300.c b/drivers/pinctrl/pinctrl-u300.c index 718ec5762683..2b5772550836 100644 --- a/drivers/pinctrl/pinctrl-u300.c +++ b/drivers/pinctrl/pinctrl-u300.c | |||
@@ -1078,9 +1078,9 @@ static int u300_pmx_probe(struct platform_device *pdev) | |||
1078 | if (!res) | 1078 | if (!res) |
1079 | return -ENOENT; | 1079 | return -ENOENT; |
1080 | 1080 | ||
1081 | upmx->virtbase = devm_request_and_ioremap(&pdev->dev, res); | 1081 | upmx->virtbase = devm_ioremap_resource(&pdev->dev, res); |
1082 | if (!upmx->virtbase) | 1082 | if (IS_ERR(upmx->virtbase)) |
1083 | return -ENOMEM; | 1083 | return PTR_ERR(upmx->virtbase); |
1084 | 1084 | ||
1085 | upmx->pctl = pinctrl_register(&u300_pmx_desc, &pdev->dev, upmx); | 1085 | upmx->pctl = pinctrl_register(&u300_pmx_desc, &pdev->dev, upmx); |
1086 | if (!upmx->pctl) { | 1086 | if (!upmx->pctl) { |
diff --git a/drivers/pinctrl/pinctrl-xway.c b/drivers/pinctrl/pinctrl-xway.c index 53cb6a3a56ed..068224efa6fa 100644 --- a/drivers/pinctrl/pinctrl-xway.c +++ b/drivers/pinctrl/pinctrl-xway.c | |||
@@ -9,6 +9,7 @@ | |||
9 | * Copyright (C) 2012 John Crispin <blogic@openwrt.org> | 9 | * Copyright (C) 2012 John Crispin <blogic@openwrt.org> |
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/err.h> | ||
12 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
13 | #include <linux/module.h> | 14 | #include <linux/module.h> |
14 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
@@ -719,11 +720,9 @@ static int pinmux_xway_probe(struct platform_device *pdev) | |||
719 | dev_err(&pdev->dev, "Failed to get resource\n"); | 720 | dev_err(&pdev->dev, "Failed to get resource\n"); |
720 | return -ENOENT; | 721 | return -ENOENT; |
721 | } | 722 | } |
722 | xway_info.membase[0] = devm_request_and_ioremap(&pdev->dev, res); | 723 | xway_info.membase[0] = devm_ioremap_resource(&pdev->dev, res); |
723 | if (!xway_info.membase[0]) { | 724 | if (IS_ERR(xway_info.membase[0])) |
724 | dev_err(&pdev->dev, "Failed to remap resource\n"); | 725 | return PTR_ERR(xway_info.membase[0]); |
725 | return -ENOMEM; | ||
726 | } | ||
727 | 726 | ||
728 | match = of_match_device(xway_match, &pdev->dev); | 727 | match = of_match_device(xway_match, &pdev->dev); |
729 | if (match) | 728 | if (match) |
diff --git a/drivers/pinctrl/spear/pinctrl-plgpio.c b/drivers/pinctrl/spear/pinctrl-plgpio.c index 3cf4ecd9302c..295b349a05cf 100644 --- a/drivers/pinctrl/spear/pinctrl-plgpio.c +++ b/drivers/pinctrl/spear/pinctrl-plgpio.c | |||
@@ -540,11 +540,9 @@ static int plgpio_probe(struct platform_device *pdev) | |||
540 | return -ENOMEM; | 540 | return -ENOMEM; |
541 | } | 541 | } |
542 | 542 | ||
543 | plgpio->base = devm_request_and_ioremap(&pdev->dev, res); | 543 | plgpio->base = devm_ioremap_resource(&pdev->dev, res); |
544 | if (!plgpio->base) { | 544 | if (IS_ERR(plgpio->base)) |
545 | dev_err(&pdev->dev, "request and ioremap fail\n"); | 545 | return PTR_ERR(plgpio->base); |
546 | return -ENOMEM; | ||
547 | } | ||
548 | 546 | ||
549 | ret = plgpio_probe_dt(pdev, plgpio); | 547 | ret = plgpio_probe_dt(pdev, plgpio); |
550 | if (ret) { | 548 | if (ret) { |
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index c86bae828c28..7ab0b2fba503 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig | |||
@@ -80,10 +80,9 @@ config ASUS_LAPTOP | |||
80 | If you have an ACPI-compatible ASUS laptop, say Y or M here. | 80 | If you have an ACPI-compatible ASUS laptop, say Y or M here. |
81 | 81 | ||
82 | config DELL_LAPTOP | 82 | config DELL_LAPTOP |
83 | tristate "Dell Laptop Extras (EXPERIMENTAL)" | 83 | tristate "Dell Laptop Extras" |
84 | depends on X86 | 84 | depends on X86 |
85 | depends on DCDBAS | 85 | depends on DCDBAS |
86 | depends on EXPERIMENTAL | ||
87 | depends on BACKLIGHT_CLASS_DEVICE | 86 | depends on BACKLIGHT_CLASS_DEVICE |
88 | depends on RFKILL || RFKILL = n | 87 | depends on RFKILL || RFKILL = n |
89 | depends on SERIO_I8042 | 88 | depends on SERIO_I8042 |
@@ -171,9 +170,8 @@ config AMILO_RFKILL | |||
171 | laptops. | 170 | laptops. |
172 | 171 | ||
173 | config TC1100_WMI | 172 | config TC1100_WMI |
174 | tristate "HP Compaq TC1100 Tablet WMI Extras (EXPERIMENTAL)" | 173 | tristate "HP Compaq TC1100 Tablet WMI Extras" |
175 | depends on !X86_64 | 174 | depends on !X86_64 |
176 | depends on EXPERIMENTAL | ||
177 | depends on ACPI | 175 | depends on ACPI |
178 | depends on ACPI_WMI | 176 | depends on ACPI_WMI |
179 | ---help--- | 177 | ---help--- |
diff --git a/drivers/power/jz4740-battery.c b/drivers/power/jz4740-battery.c index bf914893c6fd..c675553d4647 100644 --- a/drivers/power/jz4740-battery.c +++ b/drivers/power/jz4740-battery.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | 23 | ||
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/err.h> | ||
25 | #include <linux/gpio.h> | 26 | #include <linux/gpio.h> |
26 | #include <linux/mfd/core.h> | 27 | #include <linux/mfd/core.h> |
27 | #include <linux/power_supply.h> | 28 | #include <linux/power_supply.h> |
@@ -266,9 +267,9 @@ static int jz_battery_probe(struct platform_device *pdev) | |||
266 | 267 | ||
267 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 268 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
268 | 269 | ||
269 | jz_battery->base = devm_request_and_ioremap(&pdev->dev, mem); | 270 | jz_battery->base = devm_ioremap_resource(&pdev->dev, mem); |
270 | if (!jz_battery->base) | 271 | if (IS_ERR(jz_battery->base)) |
271 | return -EBUSY; | 272 | return PTR_ERR(jz_battery->base); |
272 | 273 | ||
273 | battery = &jz_battery->battery; | 274 | battery = &jz_battery->battery; |
274 | battery->name = pdata->info.name; | 275 | battery->name = pdata->info.name; |
diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c index 8a7cfb3cc166..5deac432e2ae 100644 --- a/drivers/power/power_supply_core.c +++ b/drivers/power/power_supply_core.c | |||
@@ -141,7 +141,7 @@ int power_supply_set_battery_charged(struct power_supply *psy) | |||
141 | } | 141 | } |
142 | EXPORT_SYMBOL_GPL(power_supply_set_battery_charged); | 142 | EXPORT_SYMBOL_GPL(power_supply_set_battery_charged); |
143 | 143 | ||
144 | static int power_supply_match_device_by_name(struct device *dev, void *data) | 144 | static int power_supply_match_device_by_name(struct device *dev, const void *data) |
145 | { | 145 | { |
146 | const char *name = data; | 146 | const char *name = data; |
147 | struct power_supply *psy = dev_get_drvdata(dev); | 147 | struct power_supply *psy = dev_get_drvdata(dev); |
@@ -149,7 +149,7 @@ static int power_supply_match_device_by_name(struct device *dev, void *data) | |||
149 | return strcmp(psy->name, name) == 0; | 149 | return strcmp(psy->name, name) == 0; |
150 | } | 150 | } |
151 | 151 | ||
152 | struct power_supply *power_supply_get_by_name(char *name) | 152 | struct power_supply *power_supply_get_by_name(const char *name) |
153 | { | 153 | { |
154 | struct device *dev = class_find_device(power_supply_class, NULL, name, | 154 | struct device *dev = class_find_device(power_supply_class, NULL, name, |
155 | power_supply_match_device_by_name); | 155 | power_supply_match_device_by_name); |
diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c index 65a86bdeabed..3f5677b7690e 100644 --- a/drivers/pwm/pwm-imx.c +++ b/drivers/pwm/pwm-imx.c | |||
@@ -274,9 +274,9 @@ static int imx_pwm_probe(struct platform_device *pdev) | |||
274 | return -ENODEV; | 274 | return -ENODEV; |
275 | } | 275 | } |
276 | 276 | ||
277 | imx->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 277 | imx->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
278 | if (imx->mmio_base == NULL) | 278 | if (IS_ERR(imx->mmio_base)) |
279 | return -EADDRNOTAVAIL; | 279 | return PTR_ERR(imx->mmio_base); |
280 | 280 | ||
281 | data = of_id->data; | 281 | data = of_id->data; |
282 | imx->config = data->config; | 282 | imx->config = data->config; |
diff --git a/drivers/pwm/pwm-lpc32xx.c b/drivers/pwm/pwm-lpc32xx.c index 14106440294f..b3f0d0dfd748 100644 --- a/drivers/pwm/pwm-lpc32xx.c +++ b/drivers/pwm/pwm-lpc32xx.c | |||
@@ -110,9 +110,9 @@ static int lpc32xx_pwm_probe(struct platform_device *pdev) | |||
110 | if (!res) | 110 | if (!res) |
111 | return -EINVAL; | 111 | return -EINVAL; |
112 | 112 | ||
113 | lpc32xx->base = devm_request_and_ioremap(&pdev->dev, res); | 113 | lpc32xx->base = devm_ioremap_resource(&pdev->dev, res); |
114 | if (!lpc32xx->base) | 114 | if (IS_ERR(lpc32xx->base)) |
115 | return -EADDRNOTAVAIL; | 115 | return PTR_ERR(lpc32xx->base); |
116 | 116 | ||
117 | lpc32xx->clk = devm_clk_get(&pdev->dev, NULL); | 117 | lpc32xx->clk = devm_clk_get(&pdev->dev, NULL); |
118 | if (IS_ERR(lpc32xx->clk)) | 118 | if (IS_ERR(lpc32xx->clk)) |
diff --git a/drivers/pwm/pwm-mxs.c b/drivers/pwm/pwm-mxs.c index 7ec345f01831..a53d3094b75a 100644 --- a/drivers/pwm/pwm-mxs.c +++ b/drivers/pwm/pwm-mxs.c | |||
@@ -139,9 +139,9 @@ static int mxs_pwm_probe(struct platform_device *pdev) | |||
139 | return -ENOMEM; | 139 | return -ENOMEM; |
140 | 140 | ||
141 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 141 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
142 | mxs->base = devm_request_and_ioremap(&pdev->dev, res); | 142 | mxs->base = devm_ioremap_resource(&pdev->dev, res); |
143 | if (!mxs->base) | 143 | if (IS_ERR(mxs->base)) |
144 | return -EADDRNOTAVAIL; | 144 | return PTR_ERR(mxs->base); |
145 | 145 | ||
146 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); | 146 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); |
147 | if (IS_ERR(pinctrl)) | 147 | if (IS_ERR(pinctrl)) |
diff --git a/drivers/pwm/pwm-puv3.c b/drivers/pwm/pwm-puv3.c index b882f6032fee..db964e6ecf5c 100644 --- a/drivers/pwm/pwm-puv3.c +++ b/drivers/pwm/pwm-puv3.c | |||
@@ -123,9 +123,9 @@ static int pwm_probe(struct platform_device *pdev) | |||
123 | return -ENODEV; | 123 | return -ENODEV; |
124 | } | 124 | } |
125 | 125 | ||
126 | puv3->base = devm_request_and_ioremap(&pdev->dev, r); | 126 | puv3->base = devm_ioremap_resource(&pdev->dev, r); |
127 | if (puv3->base == NULL) | 127 | if (IS_ERR(puv3->base)) |
128 | return -EADDRNOTAVAIL; | 128 | return PTR_ERR(puv3->base); |
129 | 129 | ||
130 | puv3->chip.dev = &pdev->dev; | 130 | puv3->chip.dev = &pdev->dev; |
131 | puv3->chip.ops = &puv3_pwm_ops; | 131 | puv3->chip.ops = &puv3_pwm_ops; |
diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c index f32fc4e66e0c..20370e61de5a 100644 --- a/drivers/pwm/pwm-pxa.c +++ b/drivers/pwm/pwm-pxa.c | |||
@@ -165,9 +165,9 @@ static int pwm_probe(struct platform_device *pdev) | |||
165 | return -ENODEV; | 165 | return -ENODEV; |
166 | } | 166 | } |
167 | 167 | ||
168 | pwm->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 168 | pwm->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
169 | if (pwm->mmio_base == NULL) | 169 | if (IS_ERR(pwm->mmio_base)) |
170 | return -EADDRNOTAVAIL; | 170 | return PTR_ERR(pwm->mmio_base); |
171 | 171 | ||
172 | ret = pwmchip_add(&pwm->chip); | 172 | ret = pwmchip_add(&pwm->chip); |
173 | if (ret < 0) { | 173 | if (ret < 0) { |
diff --git a/drivers/pwm/pwm-spear.c b/drivers/pwm/pwm-spear.c index 83b21d9d5cf9..69a2d9eb34db 100644 --- a/drivers/pwm/pwm-spear.c +++ b/drivers/pwm/pwm-spear.c | |||
@@ -192,9 +192,9 @@ static int spear_pwm_probe(struct platform_device *pdev) | |||
192 | return -ENOMEM; | 192 | return -ENOMEM; |
193 | } | 193 | } |
194 | 194 | ||
195 | pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 195 | pc->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
196 | if (!pc->mmio_base) | 196 | if (IS_ERR(pc->mmio_base)) |
197 | return -EADDRNOTAVAIL; | 197 | return PTR_ERR(pc->mmio_base); |
198 | 198 | ||
199 | pc->clk = devm_clk_get(&pdev->dev, NULL); | 199 | pc->clk = devm_clk_get(&pdev->dev, NULL); |
200 | if (IS_ERR(pc->clk)) | 200 | if (IS_ERR(pc->clk)) |
diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c index 30c0e2b70ce8..71900e8cd3d1 100644 --- a/drivers/pwm/pwm-tegra.c +++ b/drivers/pwm/pwm-tegra.c | |||
@@ -186,9 +186,9 @@ static int tegra_pwm_probe(struct platform_device *pdev) | |||
186 | return -ENODEV; | 186 | return -ENODEV; |
187 | } | 187 | } |
188 | 188 | ||
189 | pwm->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 189 | pwm->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
190 | if (!pwm->mmio_base) | 190 | if (IS_ERR(pwm->mmio_base)) |
191 | return -EADDRNOTAVAIL; | 191 | return PTR_ERR(pwm->mmio_base); |
192 | 192 | ||
193 | platform_set_drvdata(pdev, pwm); | 193 | platform_set_drvdata(pdev, pwm); |
194 | 194 | ||
diff --git a/drivers/pwm/pwm-tiecap.c b/drivers/pwm/pwm-tiecap.c index 5cf016dd9822..27a67d6b27c1 100644 --- a/drivers/pwm/pwm-tiecap.c +++ b/drivers/pwm/pwm-tiecap.c | |||
@@ -238,9 +238,9 @@ static int ecap_pwm_probe(struct platform_device *pdev) | |||
238 | return -ENODEV; | 238 | return -ENODEV; |
239 | } | 239 | } |
240 | 240 | ||
241 | pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 241 | pc->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
242 | if (!pc->mmio_base) | 242 | if (IS_ERR(pc->mmio_base)) |
243 | return -EADDRNOTAVAIL; | 243 | return PTR_ERR(pc->mmio_base); |
244 | 244 | ||
245 | ret = pwmchip_add(&pc->chip); | 245 | ret = pwmchip_add(&pc->chip); |
246 | if (ret < 0) { | 246 | if (ret < 0) { |
diff --git a/drivers/pwm/pwm-tiehrpwm.c b/drivers/pwm/pwm-tiehrpwm.c index 72a6dd40c9ec..5a1399580533 100644 --- a/drivers/pwm/pwm-tiehrpwm.c +++ b/drivers/pwm/pwm-tiehrpwm.c | |||
@@ -453,9 +453,9 @@ static int ehrpwm_pwm_probe(struct platform_device *pdev) | |||
453 | return -ENODEV; | 453 | return -ENODEV; |
454 | } | 454 | } |
455 | 455 | ||
456 | pc->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 456 | pc->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
457 | if (!pc->mmio_base) | 457 | if (IS_ERR(pc->mmio_base)) |
458 | return -EADDRNOTAVAIL; | 458 | return PTR_ERR(pc->mmio_base); |
459 | 459 | ||
460 | /* Acquire tbclk for Time Base EHRPWM submodule */ | 460 | /* Acquire tbclk for Time Base EHRPWM submodule */ |
461 | pc->tbclk = devm_clk_get(&pdev->dev, "tbclk"); | 461 | pc->tbclk = devm_clk_get(&pdev->dev, "tbclk"); |
diff --git a/drivers/pwm/pwm-tipwmss.c b/drivers/pwm/pwm-tipwmss.c index 3448a1c88590..17cbc59660ec 100644 --- a/drivers/pwm/pwm-tipwmss.c +++ b/drivers/pwm/pwm-tipwmss.c | |||
@@ -75,9 +75,9 @@ static int pwmss_probe(struct platform_device *pdev) | |||
75 | return -ENODEV; | 75 | return -ENODEV; |
76 | } | 76 | } |
77 | 77 | ||
78 | info->mmio_base = devm_request_and_ioremap(&pdev->dev, r); | 78 | info->mmio_base = devm_ioremap_resource(&pdev->dev, r); |
79 | if (!info->mmio_base) | 79 | if (IS_ERR(info->mmio_base)) |
80 | return -EADDRNOTAVAIL; | 80 | return PTR_ERR(info->mmio_base); |
81 | 81 | ||
82 | pm_runtime_enable(&pdev->dev); | 82 | pm_runtime_enable(&pdev->dev); |
83 | pm_runtime_get_sync(&pdev->dev); | 83 | pm_runtime_get_sync(&pdev->dev); |
diff --git a/drivers/pwm/pwm-vt8500.c b/drivers/pwm/pwm-vt8500.c index b0ba2d403439..f9de9b28e46e 100644 --- a/drivers/pwm/pwm-vt8500.c +++ b/drivers/pwm/pwm-vt8500.c | |||
@@ -178,9 +178,9 @@ static int vt8500_pwm_probe(struct platform_device *pdev) | |||
178 | return -ENODEV; | 178 | return -ENODEV; |
179 | } | 179 | } |
180 | 180 | ||
181 | chip->base = devm_request_and_ioremap(&pdev->dev, r); | 181 | chip->base = devm_ioremap_resource(&pdev->dev, r); |
182 | if (!chip->base) | 182 | if (IS_ERR(chip->base)) |
183 | return -EADDRNOTAVAIL; | 183 | return PTR_ERR(chip->base); |
184 | 184 | ||
185 | ret = clk_prepare(chip->clk); | 185 | ret = clk_prepare(chip->clk); |
186 | if (ret < 0) { | 186 | if (ret < 0) { |
diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig index 96ce101b9067..0b24108d1e1b 100644 --- a/drivers/remoteproc/Kconfig +++ b/drivers/remoteproc/Kconfig | |||
@@ -1,16 +1,14 @@ | |||
1 | menu "Remoteproc drivers (EXPERIMENTAL)" | 1 | menu "Remoteproc drivers" |
2 | 2 | ||
3 | # REMOTEPROC gets selected by whoever wants it | 3 | # REMOTEPROC gets selected by whoever wants it |
4 | config REMOTEPROC | 4 | config REMOTEPROC |
5 | tristate | 5 | tristate |
6 | depends on EXPERIMENTAL | ||
7 | depends on HAS_DMA | 6 | depends on HAS_DMA |
8 | select FW_CONFIG | 7 | select FW_CONFIG |
9 | select VIRTIO | 8 | select VIRTIO |
10 | 9 | ||
11 | config OMAP_REMOTEPROC | 10 | config OMAP_REMOTEPROC |
12 | tristate "OMAP remoteproc support" | 11 | tristate "OMAP remoteproc support" |
13 | depends on EXPERIMENTAL | ||
14 | depends on HAS_DMA | 12 | depends on HAS_DMA |
15 | depends on ARCH_OMAP4 | 13 | depends on ARCH_OMAP4 |
16 | depends on OMAP_IOMMU | 14 | depends on OMAP_IOMMU |
@@ -32,7 +30,6 @@ config OMAP_REMOTEPROC | |||
32 | 30 | ||
33 | config STE_MODEM_RPROC | 31 | config STE_MODEM_RPROC |
34 | tristate "STE-Modem remoteproc support" | 32 | tristate "STE-Modem remoteproc support" |
35 | depends on EXPERIMENTAL | ||
36 | depends on HAS_DMA | 33 | depends on HAS_DMA |
37 | select REMOTEPROC | 34 | select REMOTEPROC |
38 | default n | 35 | default n |
diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig index 2bd911f12571..f6e0ea6ffda5 100644 --- a/drivers/rpmsg/Kconfig +++ b/drivers/rpmsg/Kconfig | |||
@@ -1,9 +1,8 @@ | |||
1 | menu "Rpmsg drivers (EXPERIMENTAL)" | 1 | menu "Rpmsg drivers" |
2 | 2 | ||
3 | # RPMSG always gets selected by whoever wants it | 3 | # RPMSG always gets selected by whoever wants it |
4 | config RPMSG | 4 | config RPMSG |
5 | tristate | 5 | tristate |
6 | select VIRTIO | 6 | select VIRTIO |
7 | depends on EXPERIMENTAL | ||
8 | 7 | ||
9 | endmenu | 8 | endmenu |
diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 9592b936b71b..42bd57da239d 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c | |||
@@ -587,16 +587,16 @@ void rtc_update_irq(struct rtc_device *rtc, | |||
587 | } | 587 | } |
588 | EXPORT_SYMBOL_GPL(rtc_update_irq); | 588 | EXPORT_SYMBOL_GPL(rtc_update_irq); |
589 | 589 | ||
590 | static int __rtc_match(struct device *dev, void *data) | 590 | static int __rtc_match(struct device *dev, const void *data) |
591 | { | 591 | { |
592 | char *name = (char *)data; | 592 | const char *name = data; |
593 | 593 | ||
594 | if (strcmp(dev_name(dev), name) == 0) | 594 | if (strcmp(dev_name(dev), name) == 0) |
595 | return 1; | 595 | return 1; |
596 | return 0; | 596 | return 0; |
597 | } | 597 | } |
598 | 598 | ||
599 | struct rtc_device *rtc_class_open(char *name) | 599 | struct rtc_device *rtc_class_open(const char *name) |
600 | { | 600 | { |
601 | struct device *dev; | 601 | struct device *dev; |
602 | struct rtc_device *rtc = NULL; | 602 | struct rtc_device *rtc = NULL; |
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c index 404651464d45..0c397ac3b132 100644 --- a/drivers/rtc/rtc-s3c.c +++ b/drivers/rtc/rtc-s3c.c | |||
@@ -486,11 +486,9 @@ static int s3c_rtc_probe(struct platform_device *pdev) | |||
486 | return -ENOENT; | 486 | return -ENOENT; |
487 | } | 487 | } |
488 | 488 | ||
489 | s3c_rtc_base = devm_request_and_ioremap(&pdev->dev, res); | 489 | s3c_rtc_base = devm_ioremap_resource(&pdev->dev, res); |
490 | if (s3c_rtc_base == NULL) { | 490 | if (IS_ERR(s3c_rtc_base)) |
491 | dev_err(&pdev->dev, "failed to ioremap memory region\n"); | 491 | return PTR_ERR(s3c_rtc_base); |
492 | return -EINVAL; | ||
493 | } | ||
494 | 492 | ||
495 | rtc_clk = devm_clk_get(&pdev->dev, "rtc"); | 493 | rtc_clk = devm_clk_get(&pdev->dev, "rtc"); |
496 | if (IS_ERR(rtc_clk)) { | 494 | if (IS_ERR(rtc_clk)) { |
diff --git a/drivers/rtc/rtc-snvs.c b/drivers/rtc/rtc-snvs.c index d5ec7854a651..40662e9dc0ab 100644 --- a/drivers/rtc/rtc-snvs.c +++ b/drivers/rtc/rtc-snvs.c | |||
@@ -252,9 +252,9 @@ static int snvs_rtc_probe(struct platform_device *pdev) | |||
252 | return -ENOMEM; | 252 | return -ENOMEM; |
253 | 253 | ||
254 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 254 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
255 | data->ioaddr = devm_request_and_ioremap(&pdev->dev, res); | 255 | data->ioaddr = devm_ioremap_resource(&pdev->dev, res); |
256 | if (!data->ioaddr) | 256 | if (IS_ERR(data->ioaddr)) |
257 | return -EADDRNOTAVAIL; | 257 | return PTR_ERR(data->ioaddr); |
258 | 258 | ||
259 | data->irq = platform_get_irq(pdev, 0); | 259 | data->irq = platform_get_irq(pdev, 0); |
260 | if (data->irq < 0) | 260 | if (data->irq < 0) |
diff --git a/drivers/rtc/rtc-spear.c b/drivers/rtc/rtc-spear.c index c2121b5a01f2..a18c3192ed40 100644 --- a/drivers/rtc/rtc-spear.c +++ b/drivers/rtc/rtc-spear.c | |||
@@ -385,11 +385,9 @@ static int spear_rtc_probe(struct platform_device *pdev) | |||
385 | return status; | 385 | return status; |
386 | } | 386 | } |
387 | 387 | ||
388 | config->ioaddr = devm_request_and_ioremap(&pdev->dev, res); | 388 | config->ioaddr = devm_ioremap_resource(&pdev->dev, res); |
389 | if (!config->ioaddr) { | 389 | if (IS_ERR(config->ioaddr)) |
390 | dev_err(&pdev->dev, "request-ioremap fail\n"); | 390 | return PTR_ERR(config->ioaddr); |
391 | return -ENOMEM; | ||
392 | } | ||
393 | 391 | ||
394 | config->clk = devm_clk_get(&pdev->dev, NULL); | 392 | config->clk = devm_clk_get(&pdev->dev, NULL); |
395 | if (IS_ERR(config->clk)) | 393 | if (IS_ERR(config->clk)) |
diff --git a/drivers/rtc/rtc-tegra.c b/drivers/rtc/rtc-tegra.c index c84ea6659f49..7c033756d6b5 100644 --- a/drivers/rtc/rtc-tegra.c +++ b/drivers/rtc/rtc-tegra.c | |||
@@ -327,11 +327,9 @@ static int tegra_rtc_probe(struct platform_device *pdev) | |||
327 | return -EBUSY; | 327 | return -EBUSY; |
328 | } | 328 | } |
329 | 329 | ||
330 | info->rtc_base = devm_request_and_ioremap(&pdev->dev, res); | 330 | info->rtc_base = devm_ioremap_resource(&pdev->dev, res); |
331 | if (!info->rtc_base) { | 331 | if (IS_ERR(info->rtc_base)) |
332 | dev_err(&pdev->dev, "Unable to request mem region and grab IOs for device.\n"); | 332 | return PTR_ERR(info->rtc_base); |
333 | return -EBUSY; | ||
334 | } | ||
335 | 333 | ||
336 | info->tegra_rtc_irq = platform_get_irq(pdev, 0); | 334 | info->tegra_rtc_irq = platform_get_irq(pdev, 0); |
337 | if (info->tegra_rtc_irq <= 0) | 335 | if (info->tegra_rtc_irq <= 0) |
diff --git a/drivers/sbus/char/Kconfig b/drivers/sbus/char/Kconfig index 73cde85d04d8..5ba684f73ab8 100644 --- a/drivers/sbus/char/Kconfig +++ b/drivers/sbus/char/Kconfig | |||
@@ -21,8 +21,7 @@ config OBP_FLASH | |||
21 | able to upgrade the OBP firmware, say Y here. | 21 | able to upgrade the OBP firmware, say Y here. |
22 | 22 | ||
23 | config TADPOLE_TS102_UCTRL | 23 | config TADPOLE_TS102_UCTRL |
24 | tristate "Tadpole TS102 Microcontroller support (EXPERIMENTAL)" | 24 | tristate "Tadpole TS102 Microcontroller support" |
25 | depends on EXPERIMENTAL | ||
26 | help | 25 | help |
27 | Say Y here to directly support the TS102 Microcontroller interface | 26 | Say Y here to directly support the TS102 Microcontroller interface |
28 | on the Tadpole Sparcbook 3. This device handles power-management | 27 | on the Tadpole Sparcbook 3. This device handles power-management |
@@ -30,8 +29,8 @@ config TADPOLE_TS102_UCTRL | |||
30 | monitors and mice. | 29 | monitors and mice. |
31 | 30 | ||
32 | config SUN_JSFLASH | 31 | config SUN_JSFLASH |
33 | tristate "JavaStation OS Flash SIMM (EXPERIMENTAL)" | 32 | tristate "JavaStation OS Flash SIMM" |
34 | depends on EXPERIMENTAL && SPARC32 | 33 | depends on SPARC32 |
35 | help | 34 | help |
36 | If you say Y here, you will be able to boot from your JavaStation's | 35 | If you say Y here, you will be able to boot from your JavaStation's |
37 | Flash memory. | 36 | Flash memory. |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index 142f632e2a2e..d56b2534f3eb 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -42,7 +42,7 @@ config SCSI_DMA | |||
42 | 42 | ||
43 | config SCSI_TGT | 43 | config SCSI_TGT |
44 | tristate "SCSI target support" | 44 | tristate "SCSI target support" |
45 | depends on SCSI && EXPERIMENTAL | 45 | depends on SCSI |
46 | ---help--- | 46 | ---help--- |
47 | If you want to use SCSI target mode drivers enable this option. | 47 | If you want to use SCSI target mode drivers enable this option. |
48 | If you choose M, the module will be called scsi_tgt. | 48 | If you choose M, the module will be called scsi_tgt. |
@@ -1392,8 +1392,8 @@ config SCSI_SYM53C416 | |||
1392 | module will be called sym53c416. | 1392 | module will be called sym53c416. |
1393 | 1393 | ||
1394 | config SCSI_DC395x | 1394 | config SCSI_DC395x |
1395 | tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support (EXPERIMENTAL)" | 1395 | tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support" |
1396 | depends on PCI && SCSI && EXPERIMENTAL | 1396 | depends on PCI && SCSI |
1397 | ---help--- | 1397 | ---help--- |
1398 | This driver supports PCI SCSI host adapters based on the ASIC | 1398 | This driver supports PCI SCSI host adapters based on the ASIC |
1399 | TRM-S1040 chip, e.g Tekram DC395(U/UW/F) and DC315(U) variants. | 1399 | TRM-S1040 chip, e.g Tekram DC395(U/UW/F) and DC315(U) variants. |
@@ -1618,8 +1618,8 @@ config GVP11_SCSI | |||
1618 | module will be called gvp11. | 1618 | module will be called gvp11. |
1619 | 1619 | ||
1620 | config SCSI_A4000T | 1620 | config SCSI_A4000T |
1621 | tristate "A4000T NCR53c710 SCSI support (EXPERIMENTAL)" | 1621 | tristate "A4000T NCR53c710 SCSI support" |
1622 | depends on AMIGA && SCSI && EXPERIMENTAL | 1622 | depends on AMIGA && SCSI |
1623 | select SCSI_SPI_ATTRS | 1623 | select SCSI_SPI_ATTRS |
1624 | help | 1624 | help |
1625 | If you have an Amiga 4000T and have SCSI devices connected to the | 1625 | If you have an Amiga 4000T and have SCSI devices connected to the |
@@ -1629,8 +1629,8 @@ config SCSI_A4000T | |||
1629 | module will be called a4000t. | 1629 | module will be called a4000t. |
1630 | 1630 | ||
1631 | config SCSI_ZORRO7XX | 1631 | config SCSI_ZORRO7XX |
1632 | tristate "Zorro NCR53c710 SCSI support (EXPERIMENTAL)" | 1632 | tristate "Zorro NCR53c710 SCSI support" |
1633 | depends on ZORRO && SCSI && EXPERIMENTAL | 1633 | depends on ZORRO && SCSI |
1634 | select SCSI_SPI_ATTRS | 1634 | select SCSI_SPI_ATTRS |
1635 | help | 1635 | help |
1636 | Support for various NCR53c710-based SCSI controllers on Zorro | 1636 | Support for various NCR53c710-based SCSI controllers on Zorro |
@@ -1807,8 +1807,8 @@ config SCSI_BFA_FC | |||
1807 | be called bfa. | 1807 | be called bfa. |
1808 | 1808 | ||
1809 | config SCSI_VIRTIO | 1809 | config SCSI_VIRTIO |
1810 | tristate "virtio-scsi support (EXPERIMENTAL)" | 1810 | tristate "virtio-scsi support" |
1811 | depends on EXPERIMENTAL && VIRTIO | 1811 | depends on VIRTIO |
1812 | help | 1812 | help |
1813 | This is the virtual HBA driver for virtio. If the kernel will | 1813 | This is the virtual HBA driver for virtio. If the kernel will |
1814 | be used in a virtual machine, say Y or M. | 1814 | be used in a virtual machine, say Y or M. |
diff --git a/drivers/scsi/arm/Kconfig b/drivers/scsi/arm/Kconfig index a8587f1f5e7e..cfd172a439c9 100644 --- a/drivers/scsi/arm/Kconfig +++ b/drivers/scsi/arm/Kconfig | |||
@@ -64,19 +64,19 @@ config SCSI_POWERTECSCSI | |||
64 | you have one of these, say Y. If unsure, say N. | 64 | you have one of these, say Y. If unsure, say N. |
65 | 65 | ||
66 | comment "The following drivers are not fully supported" | 66 | comment "The following drivers are not fully supported" |
67 | depends on ARCH_ACORN && EXPERIMENTAL | 67 | depends on ARCH_ACORN |
68 | 68 | ||
69 | config SCSI_CUMANA_1 | 69 | config SCSI_CUMANA_1 |
70 | tristate "CumanaSCSI I support (EXPERIMENTAL)" | 70 | tristate "CumanaSCSI I support" |
71 | depends on ARCH_ACORN && EXPERIMENTAL && SCSI | 71 | depends on ARCH_ACORN && SCSI |
72 | select SCSI_SPI_ATTRS | 72 | select SCSI_SPI_ATTRS |
73 | help | 73 | help |
74 | This enables support for the Cumana SCSI I card. If you have an | 74 | This enables support for the Cumana SCSI I card. If you have an |
75 | Acorn system with one of these, say Y. If unsure, say N. | 75 | Acorn system with one of these, say Y. If unsure, say N. |
76 | 76 | ||
77 | config SCSI_OAK1 | 77 | config SCSI_OAK1 |
78 | tristate "Oak SCSI support (EXPERIMENTAL)" | 78 | tristate "Oak SCSI support" |
79 | depends on ARCH_ACORN && EXPERIMENTAL && SCSI | 79 | depends on ARCH_ACORN && SCSI |
80 | select SCSI_SPI_ATTRS | 80 | select SCSI_SPI_ATTRS |
81 | help | 81 | help |
82 | This enables support for the Oak SCSI card. If you have an Acorn | 82 | This enables support for the Oak SCSI card. If you have an Acorn |
diff --git a/drivers/scsi/device_handler/Kconfig b/drivers/scsi/device_handler/Kconfig index 67070257919f..69abd0ad48e2 100644 --- a/drivers/scsi/device_handler/Kconfig +++ b/drivers/scsi/device_handler/Kconfig | |||
@@ -32,8 +32,8 @@ config SCSI_DH_EMC | |||
32 | If you have a EMC CLARiiON select y. Otherwise, say N. | 32 | If you have a EMC CLARiiON select y. Otherwise, say N. |
33 | 33 | ||
34 | config SCSI_DH_ALUA | 34 | config SCSI_DH_ALUA |
35 | tristate "SPC-3 ALUA Device Handler (EXPERIMENTAL)" | 35 | tristate "SPC-3 ALUA Device Handler" |
36 | depends on SCSI_DH && EXPERIMENTAL | 36 | depends on SCSI_DH |
37 | help | 37 | help |
38 | SCSI Device handler for generic SPC-3 Asymmetric Logical Unit | 38 | SCSI Device handler for generic SPC-3 Asymmetric Logical Unit |
39 | Access (ALUA). | 39 | Access (ALUA). |
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 593085a52275..df0c3c71ea43 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c | |||
@@ -468,10 +468,10 @@ void scsi_unregister(struct Scsi_Host *shost) | |||
468 | } | 468 | } |
469 | EXPORT_SYMBOL(scsi_unregister); | 469 | EXPORT_SYMBOL(scsi_unregister); |
470 | 470 | ||
471 | static int __scsi_host_match(struct device *dev, void *data) | 471 | static int __scsi_host_match(struct device *dev, const void *data) |
472 | { | 472 | { |
473 | struct Scsi_Host *p; | 473 | struct Scsi_Host *p; |
474 | unsigned short *hostnum = (unsigned short *)data; | 474 | const unsigned short *hostnum = data; |
475 | 475 | ||
476 | p = class_to_shost(dev); | 476 | p = class_to_shost(dev); |
477 | return p->host_no == *hostnum; | 477 | return p->host_no == *hostnum; |
diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c index 43754176a7b7..0fab6b5c7b82 100644 --- a/drivers/scsi/osd/osd_uld.c +++ b/drivers/scsi/osd/osd_uld.c | |||
@@ -268,18 +268,11 @@ static inline bool _the_same_or_null(const u8 *a1, unsigned a1_len, | |||
268 | return 0 == memcmp(a1, a2, a1_len); | 268 | return 0 == memcmp(a1, a2, a1_len); |
269 | } | 269 | } |
270 | 270 | ||
271 | struct find_oud_t { | 271 | static int _match_odi(struct device *dev, const void *find_data) |
272 | const struct osd_dev_info *odi; | ||
273 | struct device *dev; | ||
274 | struct osd_uld_device *oud; | ||
275 | } ; | ||
276 | |||
277 | int _mach_odi(struct device *dev, void *find_data) | ||
278 | { | 272 | { |
279 | struct osd_uld_device *oud = container_of(dev, struct osd_uld_device, | 273 | struct osd_uld_device *oud = container_of(dev, struct osd_uld_device, |
280 | class_dev); | 274 | class_dev); |
281 | struct find_oud_t *fot = find_data; | 275 | const struct osd_dev_info *odi = find_data; |
282 | const struct osd_dev_info *odi = fot->odi; | ||
283 | 276 | ||
284 | if (_the_same_or_null(oud->odi.systemid, oud->odi.systemid_len, | 277 | if (_the_same_or_null(oud->odi.systemid, oud->odi.systemid_len, |
285 | odi->systemid, odi->systemid_len) && | 278 | odi->systemid, odi->systemid_len) && |
@@ -287,7 +280,6 @@ int _mach_odi(struct device *dev, void *find_data) | |||
287 | odi->osdname, odi->osdname_len)) { | 280 | odi->osdname, odi->osdname_len)) { |
288 | OSD_DEBUG("found device sysid_len=%d osdname=%d\n", | 281 | OSD_DEBUG("found device sysid_len=%d osdname=%d\n", |
289 | odi->systemid_len, odi->osdname_len); | 282 | odi->systemid_len, odi->osdname_len); |
290 | fot->oud = oud; | ||
291 | return 1; | 283 | return 1; |
292 | } else { | 284 | } else { |
293 | return 0; | 285 | return 0; |
@@ -301,19 +293,19 @@ int _mach_odi(struct device *dev, void *find_data) | |||
301 | */ | 293 | */ |
302 | struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi) | 294 | struct osd_dev *osduld_info_lookup(const struct osd_dev_info *odi) |
303 | { | 295 | { |
304 | struct find_oud_t find = {.odi = odi}; | 296 | struct device *dev = class_find_device(&osd_uld_class, NULL, odi, _match_odi); |
305 | 297 | if (likely(dev)) { | |
306 | find.dev = class_find_device(&osd_uld_class, NULL, &find, _mach_odi); | ||
307 | if (likely(find.dev)) { | ||
308 | struct osd_dev_handle *odh = kzalloc(sizeof(*odh), GFP_KERNEL); | 298 | struct osd_dev_handle *odh = kzalloc(sizeof(*odh), GFP_KERNEL); |
299 | struct osd_uld_device *oud = container_of(dev, | ||
300 | struct osd_uld_device, class_dev); | ||
309 | 301 | ||
310 | if (unlikely(!odh)) { | 302 | if (unlikely(!odh)) { |
311 | put_device(find.dev); | 303 | put_device(dev); |
312 | return ERR_PTR(-ENOMEM); | 304 | return ERR_PTR(-ENOMEM); |
313 | } | 305 | } |
314 | 306 | ||
315 | odh->od = find.oud->od; | 307 | odh->od = oud->od; |
316 | odh->oud = find.oud; | 308 | odh->oud = oud; |
317 | 309 | ||
318 | return &odh->od; | 310 | return &odh->od; |
319 | } | 311 | } |
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 31969f2e13ce..59d427bf08e2 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -183,10 +183,10 @@ static struct attribute_group iscsi_endpoint_group = { | |||
183 | 183 | ||
184 | #define ISCSI_MAX_EPID -1 | 184 | #define ISCSI_MAX_EPID -1 |
185 | 185 | ||
186 | static int iscsi_match_epid(struct device *dev, void *data) | 186 | static int iscsi_match_epid(struct device *dev, const void *data) |
187 | { | 187 | { |
188 | struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev); | 188 | struct iscsi_endpoint *ep = iscsi_dev_to_endpoint(dev); |
189 | uint64_t *epid = (uint64_t *) data; | 189 | const uint64_t *epid = data; |
190 | 190 | ||
191 | return *epid == ep->id; | 191 | return *epid == ep->id; |
192 | } | 192 | } |
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index e79884e997ae..f80eee74a311 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig | |||
@@ -88,7 +88,7 @@ config SPI_BFIN_SPORT | |||
88 | 88 | ||
89 | config SPI_AU1550 | 89 | config SPI_AU1550 |
90 | tristate "Au1550/Au1200/Au1300 SPI Controller" | 90 | tristate "Au1550/Au1200/Au1300 SPI Controller" |
91 | depends on MIPS_ALCHEMY && EXPERIMENTAL | 91 | depends on MIPS_ALCHEMY |
92 | select SPI_BITBANG | 92 | select SPI_BITBANG |
93 | help | 93 | help |
94 | If you say yes to this option, support will be included for the | 94 | If you say yes to this option, support will be included for the |
@@ -188,7 +188,7 @@ config SPI_IMX | |||
188 | 188 | ||
189 | config SPI_LM70_LLP | 189 | config SPI_LM70_LLP |
190 | tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" | 190 | tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" |
191 | depends on PARPORT && EXPERIMENTAL | 191 | depends on PARPORT |
192 | select SPI_BITBANG | 192 | select SPI_BITBANG |
193 | help | 193 | help |
194 | This driver supports the NS LM70 LLP Evaluation Board, | 194 | This driver supports the NS LM70 LLP Evaluation Board, |
@@ -204,7 +204,7 @@ config SPI_MPC52xx | |||
204 | 204 | ||
205 | config SPI_MPC52xx_PSC | 205 | config SPI_MPC52xx_PSC |
206 | tristate "Freescale MPC52xx PSC SPI controller" | 206 | tristate "Freescale MPC52xx PSC SPI controller" |
207 | depends on PPC_MPC52xx && EXPERIMENTAL | 207 | depends on PPC_MPC52xx |
208 | help | 208 | help |
209 | This enables using the Freescale MPC52xx Programmable Serial | 209 | This enables using the Freescale MPC52xx Programmable Serial |
210 | Controller in master SPI mode. | 210 | Controller in master SPI mode. |
@@ -273,8 +273,8 @@ config SPI_OMAP_100K | |||
273 | OMAP SPI 100K master controller for omap7xx boards. | 273 | OMAP SPI 100K master controller for omap7xx boards. |
274 | 274 | ||
275 | config SPI_ORION | 275 | config SPI_ORION |
276 | tristate "Orion SPI master (EXPERIMENTAL)" | 276 | tristate "Orion SPI master" |
277 | depends on PLAT_ORION && EXPERIMENTAL | 277 | depends on PLAT_ORION |
278 | help | 278 | help |
279 | This enables using the SPI master controller on the Orion chips. | 279 | This enables using the SPI master controller on the Orion chips. |
280 | 280 | ||
@@ -328,7 +328,7 @@ config SPI_RSPI | |||
328 | 328 | ||
329 | config SPI_S3C24XX | 329 | config SPI_S3C24XX |
330 | tristate "Samsung S3C24XX series SPI" | 330 | tristate "Samsung S3C24XX series SPI" |
331 | depends on ARCH_S3C24XX && EXPERIMENTAL | 331 | depends on ARCH_S3C24XX |
332 | select SPI_BITBANG | 332 | select SPI_BITBANG |
333 | help | 333 | help |
334 | SPI driver for Samsung S3C24XX series ARM SoCs | 334 | SPI driver for Samsung S3C24XX series ARM SoCs |
@@ -443,7 +443,7 @@ config SPI_XCOMM | |||
443 | 443 | ||
444 | config SPI_XILINX | 444 | config SPI_XILINX |
445 | tristate "Xilinx SPI controller common module" | 445 | tristate "Xilinx SPI controller common module" |
446 | depends on HAS_IOMEM && EXPERIMENTAL | 446 | depends on HAS_IOMEM |
447 | select SPI_BITBANG | 447 | select SPI_BITBANG |
448 | help | 448 | help |
449 | This exposes the SPI controller IP from the Xilinx EDK. | 449 | This exposes the SPI controller IP from the Xilinx EDK. |
@@ -455,7 +455,7 @@ config SPI_XILINX | |||
455 | 455 | ||
456 | config SPI_NUC900 | 456 | config SPI_NUC900 |
457 | tristate "Nuvoton NUC900 series SPI" | 457 | tristate "Nuvoton NUC900 series SPI" |
458 | depends on ARCH_W90X900 && EXPERIMENTAL | 458 | depends on ARCH_W90X900 |
459 | select SPI_BITBANG | 459 | select SPI_BITBANG |
460 | help | 460 | help |
461 | SPI driver for Nuvoton NUC900 series ARM SoCs | 461 | SPI driver for Nuvoton NUC900 series ARM SoCs |
@@ -489,7 +489,6 @@ comment "SPI Protocol Masters" | |||
489 | 489 | ||
490 | config SPI_SPIDEV | 490 | config SPI_SPIDEV |
491 | tristate "User mode SPI device driver support" | 491 | tristate "User mode SPI device driver support" |
492 | depends on EXPERIMENTAL | ||
493 | help | 492 | help |
494 | This supports user mode SPI protocol drivers. | 493 | This supports user mode SPI protocol drivers. |
495 | 494 | ||
diff --git a/drivers/spi/spi-ep93xx.c b/drivers/spi/spi-ep93xx.c index aecbff16ad60..d7bac60253c9 100644 --- a/drivers/spi/spi-ep93xx.c +++ b/drivers/spi/spi-ep93xx.c | |||
@@ -1085,10 +1085,9 @@ static int ep93xx_spi_probe(struct platform_device *pdev) | |||
1085 | 1085 | ||
1086 | espi->sspdr_phys = res->start + SSPDR; | 1086 | espi->sspdr_phys = res->start + SSPDR; |
1087 | 1087 | ||
1088 | espi->regs_base = devm_request_and_ioremap(&pdev->dev, res); | 1088 | espi->regs_base = devm_ioremap_resource(&pdev->dev, res); |
1089 | if (!espi->regs_base) { | 1089 | if (IS_ERR(espi->regs_base)) { |
1090 | dev_err(&pdev->dev, "failed to map resources\n"); | 1090 | error = PTR_ERR(espi->regs_base); |
1091 | error = -ENODEV; | ||
1092 | goto fail_put_clock; | 1091 | goto fail_put_clock; |
1093 | } | 1092 | } |
1094 | 1093 | ||
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c index e3d8b3197d22..22a0af0147fb 100644 --- a/drivers/spi/spi-mxs.c +++ b/drivers/spi/spi-mxs.c | |||
@@ -541,9 +541,9 @@ static int mxs_spi_probe(struct platform_device *pdev) | |||
541 | if (!iores || irq_err < 0 || irq_dma < 0) | 541 | if (!iores || irq_err < 0 || irq_dma < 0) |
542 | return -EINVAL; | 542 | return -EINVAL; |
543 | 543 | ||
544 | base = devm_request_and_ioremap(&pdev->dev, iores); | 544 | base = devm_ioremap_resource(&pdev->dev, iores); |
545 | if (!base) | 545 | if (IS_ERR(base)) |
546 | return -EADDRNOTAVAIL; | 546 | return PTR_ERR(base); |
547 | 547 | ||
548 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); | 548 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); |
549 | if (IS_ERR(pinctrl)) | 549 | if (IS_ERR(pinctrl)) |
diff --git a/drivers/spi/spi-omap2-mcspi.c b/drivers/spi/spi-omap2-mcspi.c index 69945b014c96..893c3d78e426 100644 --- a/drivers/spi/spi-omap2-mcspi.c +++ b/drivers/spi/spi-omap2-mcspi.c | |||
@@ -1222,10 +1222,9 @@ static int omap2_mcspi_probe(struct platform_device *pdev) | |||
1222 | r->end += regs_offset; | 1222 | r->end += regs_offset; |
1223 | mcspi->phys = r->start; | 1223 | mcspi->phys = r->start; |
1224 | 1224 | ||
1225 | mcspi->base = devm_request_and_ioremap(&pdev->dev, r); | 1225 | mcspi->base = devm_ioremap_resource(&pdev->dev, r); |
1226 | if (!mcspi->base) { | 1226 | if (IS_ERR(mcspi->base)) { |
1227 | dev_dbg(&pdev->dev, "can't ioremap MCSPI\n"); | 1227 | status = PTR_ERR(mcspi->base); |
1228 | status = -ENOMEM; | ||
1229 | goto free_master; | 1228 | goto free_master; |
1230 | } | 1229 | } |
1231 | 1230 | ||
diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index 7cfbe9d3381f..e862ab8853aa 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c | |||
@@ -1241,10 +1241,9 @@ static int s3c64xx_spi_probe(struct platform_device *pdev) | |||
1241 | /* the spi->mode bits understood by this driver: */ | 1241 | /* the spi->mode bits understood by this driver: */ |
1242 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; | 1242 | master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; |
1243 | 1243 | ||
1244 | sdd->regs = devm_request_and_ioremap(&pdev->dev, mem_res); | 1244 | sdd->regs = devm_ioremap_resource(&pdev->dev, mem_res); |
1245 | if (sdd->regs == NULL) { | 1245 | if (IS_ERR(sdd->regs)) { |
1246 | dev_err(&pdev->dev, "Unable to remap IO\n"); | 1246 | ret = PTR_ERR(sdd->regs); |
1247 | ret = -ENXIO; | ||
1248 | goto err0; | 1247 | goto err0; |
1249 | } | 1248 | } |
1250 | 1249 | ||
diff --git a/drivers/spi/spi-sirf.c b/drivers/spi/spi-sirf.c index 6a5626d146b7..f59d4177b419 100644 --- a/drivers/spi/spi-sirf.c +++ b/drivers/spi/spi-sirf.c | |||
@@ -534,10 +534,9 @@ static int spi_sirfsoc_probe(struct platform_device *pdev) | |||
534 | } | 534 | } |
535 | } | 535 | } |
536 | 536 | ||
537 | sspi->base = devm_request_and_ioremap(&pdev->dev, mem_res); | 537 | sspi->base = devm_ioremap_resource(&pdev->dev, mem_res); |
538 | if (!sspi->base) { | 538 | if (IS_ERR(sspi->base)) { |
539 | dev_err(&pdev->dev, "IO remap failed!\n"); | 539 | ret = PTR_ERR(sspi->base); |
540 | ret = -ENOMEM; | ||
541 | goto free_master; | 540 | goto free_master; |
542 | } | 541 | } |
543 | 542 | ||
diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sflash.c index 9a42c158e245..8a61b27a9f2d 100644 --- a/drivers/spi/spi-tegra20-sflash.c +++ b/drivers/spi/spi-tegra20-sflash.c | |||
@@ -516,11 +516,9 @@ static int tegra_sflash_probe(struct platform_device *pdev) | |||
516 | ret = -ENODEV; | 516 | ret = -ENODEV; |
517 | goto exit_free_master; | 517 | goto exit_free_master; |
518 | } | 518 | } |
519 | tsd->base = devm_request_and_ioremap(&pdev->dev, r); | 519 | tsd->base = devm_ioremap_resource(&pdev->dev, r); |
520 | if (!tsd->base) { | 520 | if (IS_ERR(tsd->base)) { |
521 | dev_err(&pdev->dev, | 521 | ret = PTR_ERR(tsd->base); |
522 | "Cannot request memregion/iomap dma address\n"); | ||
523 | ret = -EADDRNOTAVAIL; | ||
524 | goto exit_free_master; | 522 | goto exit_free_master; |
525 | } | 523 | } |
526 | 524 | ||
diff --git a/drivers/spi/spi-tegra20-slink.c b/drivers/spi/spi-tegra20-slink.c index 8d51db8dea6d..8458c4bf7172 100644 --- a/drivers/spi/spi-tegra20-slink.c +++ b/drivers/spi/spi-tegra20-slink.c | |||
@@ -1169,11 +1169,9 @@ static int tegra_slink_probe(struct platform_device *pdev) | |||
1169 | goto exit_free_master; | 1169 | goto exit_free_master; |
1170 | } | 1170 | } |
1171 | tspi->phys = r->start; | 1171 | tspi->phys = r->start; |
1172 | tspi->base = devm_request_and_ioremap(&pdev->dev, r); | 1172 | tspi->base = devm_ioremap_resource(&pdev->dev, r); |
1173 | if (!tspi->base) { | 1173 | if (IS_ERR(tspi->base)) { |
1174 | dev_err(&pdev->dev, | 1174 | ret = PTR_ERR(tspi->base); |
1175 | "Cannot request memregion/iomap dma address\n"); | ||
1176 | ret = -EADDRNOTAVAIL; | ||
1177 | goto exit_free_master; | 1175 | goto exit_free_master; |
1178 | } | 1176 | } |
1179 | 1177 | ||
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c index 6f193b02a9e8..f996c600eb8c 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c | |||
@@ -1251,10 +1251,10 @@ int spi_master_resume(struct spi_master *master) | |||
1251 | } | 1251 | } |
1252 | EXPORT_SYMBOL_GPL(spi_master_resume); | 1252 | EXPORT_SYMBOL_GPL(spi_master_resume); |
1253 | 1253 | ||
1254 | static int __spi_master_match(struct device *dev, void *data) | 1254 | static int __spi_master_match(struct device *dev, const void *data) |
1255 | { | 1255 | { |
1256 | struct spi_master *m; | 1256 | struct spi_master *m; |
1257 | u16 *bus_num = data; | 1257 | const u16 *bus_num = data; |
1258 | 1258 | ||
1259 | m = container_of(dev, struct spi_master, dev); | 1259 | m = container_of(dev, struct spi_master, dev); |
1260 | return m->bus_num == *bus_num; | 1260 | return m->bus_num == *bus_num; |
diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c index c5ceb9d90ea8..3d562da039db 100644 --- a/drivers/staging/iio/adc/mxs-lradc.c +++ b/drivers/staging/iio/adc/mxs-lradc.c | |||
@@ -15,6 +15,7 @@ | |||
15 | * GNU General Public License for more details. | 15 | * GNU General Public License for more details. |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/err.h> | ||
18 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
19 | #include <linux/device.h> | 20 | #include <linux/device.h> |
20 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
@@ -487,9 +488,9 @@ static int mxs_lradc_probe(struct platform_device *pdev) | |||
487 | /* Grab the memory area */ | 488 | /* Grab the memory area */ |
488 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 489 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
489 | lradc->dev = &pdev->dev; | 490 | lradc->dev = &pdev->dev; |
490 | lradc->base = devm_request_and_ioremap(dev, iores); | 491 | lradc->base = devm_ioremap_resource(dev, iores); |
491 | if (!lradc->base) { | 492 | if (IS_ERR(lradc->base)) { |
492 | ret = -EADDRNOTAVAIL; | 493 | ret = PTR_ERR(lradc->base); |
493 | goto err_addr; | 494 | goto err_addr; |
494 | } | 495 | } |
495 | 496 | ||
diff --git a/drivers/staging/nvec/nvec.c b/drivers/staging/nvec/nvec.c index 2830946860d1..492e0b61f1e7 100644 --- a/drivers/staging/nvec/nvec.c +++ b/drivers/staging/nvec/nvec.c | |||
@@ -759,11 +759,9 @@ static int tegra_nvec_probe(struct platform_device *pdev) | |||
759 | return -ENODEV; | 759 | return -ENODEV; |
760 | } | 760 | } |
761 | 761 | ||
762 | base = devm_request_and_ioremap(&pdev->dev, res); | 762 | base = devm_ioremap_resource(&pdev->dev, res); |
763 | if (!base) { | 763 | if (IS_ERR(base)) |
764 | dev_err(&pdev->dev, "Can't ioremap I2C region\n"); | 764 | return PTR_ERR(base); |
765 | return -ENOMEM; | ||
766 | } | ||
767 | 765 | ||
768 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); | 766 | res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
769 | if (!res) { | 767 | if (!res) { |
diff --git a/drivers/staging/omap-thermal/omap-bandgap.c b/drivers/staging/omap-thermal/omap-bandgap.c index 8346e3450f83..21fd91bf97b5 100644 --- a/drivers/staging/omap-thermal/omap-bandgap.c +++ b/drivers/staging/omap-thermal/omap-bandgap.c | |||
@@ -820,15 +820,12 @@ static struct omap_bandgap *omap_bandgap_build(struct platform_device *pdev) | |||
820 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); | 820 | res = platform_get_resource(pdev, IORESOURCE_MEM, i); |
821 | if (!res) | 821 | if (!res) |
822 | break; | 822 | break; |
823 | chunk = devm_request_and_ioremap(&pdev->dev, res); | 823 | chunk = devm_ioremap_resource(&pdev->dev, res); |
824 | if (i == 0) | 824 | if (i == 0) |
825 | bg_ptr->base = chunk; | 825 | bg_ptr->base = chunk; |
826 | if (!chunk) { | 826 | if (IS_ERR(chunk)) |
827 | dev_err(&pdev->dev, | 827 | return ERR_CAST(chunk); |
828 | "failed to request the IO (%d:%pR).\n", | 828 | |
829 | i, res); | ||
830 | return ERR_PTR(-EADDRNOTAVAIL); | ||
831 | } | ||
832 | i++; | 829 | i++; |
833 | } while (res); | 830 | } while (res); |
834 | 831 | ||
diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c index 224751e9f5ff..bada1308318b 100644 --- a/drivers/thermal/exynos_thermal.c +++ b/drivers/thermal/exynos_thermal.c | |||
@@ -866,11 +866,9 @@ static int exynos_tmu_probe(struct platform_device *pdev) | |||
866 | return -ENOENT; | 866 | return -ENOENT; |
867 | } | 867 | } |
868 | 868 | ||
869 | data->base = devm_request_and_ioremap(&pdev->dev, data->mem); | 869 | data->base = devm_ioremap_resource(&pdev->dev, data->mem); |
870 | if (!data->base) { | 870 | if (IS_ERR(data->base)) |
871 | dev_err(&pdev->dev, "Failed to ioremap memory\n"); | 871 | return PTR_ERR(data->base); |
872 | return -ENODEV; | ||
873 | } | ||
874 | 872 | ||
875 | ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq, | 873 | ret = devm_request_irq(&pdev->dev, data->irq, exynos_tmu_irq, |
876 | IRQF_TRIGGER_RISING, "exynos-tmu", data); | 874 | IRQF_TRIGGER_RISING, "exynos-tmu", data); |
diff --git a/drivers/tty/serial/sccnxp.c b/drivers/tty/serial/sccnxp.c index 418b495e3233..e869eab180be 100644 --- a/drivers/tty/serial/sccnxp.c +++ b/drivers/tty/serial/sccnxp.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #define SUPPORT_SYSRQ | 15 | #define SUPPORT_SYSRQ |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | #include <linux/err.h> | ||
18 | #include <linux/module.h> | 19 | #include <linux/module.h> |
19 | #include <linux/device.h> | 20 | #include <linux/device.h> |
20 | #include <linux/console.h> | 21 | #include <linux/console.h> |
@@ -875,10 +876,9 @@ static int sccnxp_probe(struct platform_device *pdev) | |||
875 | goto err_out; | 876 | goto err_out; |
876 | } | 877 | } |
877 | 878 | ||
878 | membase = devm_request_and_ioremap(&pdev->dev, res); | 879 | membase = devm_ioremap_resource(&pdev->dev, res); |
879 | if (!membase) { | 880 | if (IS_ERR(membase)) { |
880 | dev_err(&pdev->dev, "Failed to ioremap\n"); | 881 | ret = PTR_ERR(membase); |
881 | ret = -EIO; | ||
882 | goto err_out; | 882 | goto err_out; |
883 | } | 883 | } |
884 | 884 | ||
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index da9fde850754..6b20fd66d4ad 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c | |||
@@ -2906,9 +2906,9 @@ void do_SAK(struct tty_struct *tty) | |||
2906 | 2906 | ||
2907 | EXPORT_SYMBOL(do_SAK); | 2907 | EXPORT_SYMBOL(do_SAK); |
2908 | 2908 | ||
2909 | static int dev_match_devt(struct device *dev, void *data) | 2909 | static int dev_match_devt(struct device *dev, const void *data) |
2910 | { | 2910 | { |
2911 | dev_t *devt = data; | 2911 | const dev_t *devt = data; |
2912 | return dev->devt == *devt; | 2912 | return dev->devt == *devt; |
2913 | } | 2913 | } |
2914 | 2914 | ||
diff --git a/drivers/usb/chipidea/usbmisc_imx6q.c b/drivers/usb/chipidea/usbmisc_imx6q.c index 845efe29e6b9..a1bce391e825 100644 --- a/drivers/usb/chipidea/usbmisc_imx6q.c +++ b/drivers/usb/chipidea/usbmisc_imx6q.c | |||
@@ -98,9 +98,9 @@ static int usbmisc_imx6q_probe(struct platform_device *pdev) | |||
98 | spin_lock_init(&data->lock); | 98 | spin_lock_init(&data->lock); |
99 | 99 | ||
100 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 100 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
101 | data->base = devm_request_and_ioremap(&pdev->dev, res); | 101 | data->base = devm_ioremap_resource(&pdev->dev, res); |
102 | if (!data->base) | 102 | if (IS_ERR(data->base)) |
103 | return -EADDRNOTAVAIL; | 103 | return PTR_ERR(data->base); |
104 | 104 | ||
105 | data->clk = devm_clk_get(&pdev->dev, NULL); | 105 | data->clk = devm_clk_get(&pdev->dev, NULL); |
106 | if (IS_ERR(data->clk)) { | 106 | if (IS_ERR(data->clk)) { |
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c index f4a21f6f081f..0143ffa4e409 100644 --- a/drivers/usb/gadget/at91_udc.c +++ b/drivers/usb/gadget/at91_udc.c | |||
@@ -1982,17 +1982,7 @@ static struct platform_driver at91_udc_driver = { | |||
1982 | }, | 1982 | }, |
1983 | }; | 1983 | }; |
1984 | 1984 | ||
1985 | static int __init udc_init_module(void) | 1985 | module_platform_driver_probe(at91_udc_driver, at91udc_probe); |
1986 | { | ||
1987 | return platform_driver_probe(&at91_udc_driver, at91udc_probe); | ||
1988 | } | ||
1989 | module_init(udc_init_module); | ||
1990 | |||
1991 | static void __exit udc_exit_module(void) | ||
1992 | { | ||
1993 | platform_driver_unregister(&at91_udc_driver); | ||
1994 | } | ||
1995 | module_exit(udc_exit_module); | ||
1996 | 1986 | ||
1997 | MODULE_DESCRIPTION("AT91 udc driver"); | 1987 | MODULE_DESCRIPTION("AT91 udc driver"); |
1998 | MODULE_AUTHOR("Thomas Rathbone, David Brownell"); | 1988 | MODULE_AUTHOR("Thomas Rathbone, David Brownell"); |
diff --git a/drivers/usb/gadget/atmel_usba_udc.c b/drivers/usb/gadget/atmel_usba_udc.c index a7aed84d98c9..bc19496bcec0 100644 --- a/drivers/usb/gadget/atmel_usba_udc.c +++ b/drivers/usb/gadget/atmel_usba_udc.c | |||
@@ -2066,17 +2066,7 @@ static struct platform_driver udc_driver = { | |||
2066 | }, | 2066 | }, |
2067 | }; | 2067 | }; |
2068 | 2068 | ||
2069 | static int __init udc_init(void) | 2069 | module_platform_driver_probe(udc_driver, usba_udc_probe); |
2070 | { | ||
2071 | return platform_driver_probe(&udc_driver, usba_udc_probe); | ||
2072 | } | ||
2073 | module_init(udc_init); | ||
2074 | |||
2075 | static void __exit udc_exit(void) | ||
2076 | { | ||
2077 | platform_driver_unregister(&udc_driver); | ||
2078 | } | ||
2079 | module_exit(udc_exit); | ||
2080 | 2070 | ||
2081 | MODULE_DESCRIPTION("Atmel USBA UDC driver"); | 2071 | MODULE_DESCRIPTION("Atmel USBA UDC driver"); |
2082 | MODULE_AUTHOR("Haavard Skinnemoen (Atmel)"); | 2072 | MODULE_AUTHOR("Haavard Skinnemoen (Atmel)"); |
diff --git a/drivers/usb/gadget/bcm63xx_udc.c b/drivers/usb/gadget/bcm63xx_udc.c index 47a49931361e..8cc8253f1100 100644 --- a/drivers/usb/gadget/bcm63xx_udc.c +++ b/drivers/usb/gadget/bcm63xx_udc.c | |||
@@ -2351,19 +2351,20 @@ static int bcm63xx_udc_probe(struct platform_device *pdev) | |||
2351 | dev_err(dev, "error finding USBD resource\n"); | 2351 | dev_err(dev, "error finding USBD resource\n"); |
2352 | return -ENXIO; | 2352 | return -ENXIO; |
2353 | } | 2353 | } |
2354 | udc->usbd_regs = devm_request_and_ioremap(dev, res); | 2354 | |
2355 | udc->usbd_regs = devm_ioremap_resource(dev, res); | ||
2356 | if (IS_ERR(udc->usbd_regs)) | ||
2357 | return PTR_ERR(udc->usbd_regs); | ||
2355 | 2358 | ||
2356 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 2359 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
2357 | if (!res) { | 2360 | if (!res) { |
2358 | dev_err(dev, "error finding IUDMA resource\n"); | 2361 | dev_err(dev, "error finding IUDMA resource\n"); |
2359 | return -ENXIO; | 2362 | return -ENXIO; |
2360 | } | 2363 | } |
2361 | udc->iudma_regs = devm_request_and_ioremap(dev, res); | ||
2362 | 2364 | ||
2363 | if (!udc->usbd_regs || !udc->iudma_regs) { | 2365 | udc->iudma_regs = devm_ioremap_resource(dev, res); |
2364 | dev_err(dev, "error requesting resources\n"); | 2366 | if (IS_ERR(udc->iudma_regs)) |
2365 | return -ENXIO; | 2367 | return PTR_ERR(udc->iudma_regs); |
2366 | } | ||
2367 | 2368 | ||
2368 | spin_lock_init(&udc->lock); | 2369 | spin_lock_init(&udc->lock); |
2369 | INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process); | 2370 | INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process); |
diff --git a/drivers/usb/gadget/fusb300_udc.c b/drivers/usb/gadget/fusb300_udc.c index 72cd5e6719db..fc7cb09ab52b 100644 --- a/drivers/usb/gadget/fusb300_udc.c +++ b/drivers/usb/gadget/fusb300_udc.c | |||
@@ -1547,15 +1547,4 @@ static struct platform_driver fusb300_driver = { | |||
1547 | }, | 1547 | }, |
1548 | }; | 1548 | }; |
1549 | 1549 | ||
1550 | static int __init fusb300_udc_init(void) | 1550 | module_platform_driver_probe(fusb300_driver, fusb300_probe); |
1551 | { | ||
1552 | return platform_driver_probe(&fusb300_driver, fusb300_probe); | ||
1553 | } | ||
1554 | |||
1555 | module_init(fusb300_udc_init); | ||
1556 | |||
1557 | static void __exit fusb300_udc_cleanup(void) | ||
1558 | { | ||
1559 | platform_driver_unregister(&fusb300_driver); | ||
1560 | } | ||
1561 | module_exit(fusb300_udc_cleanup); | ||
diff --git a/drivers/usb/gadget/imx_udc.c b/drivers/usb/gadget/imx_udc.c index a0eb85794fd4..8efd7555fa21 100644 --- a/drivers/usb/gadget/imx_udc.c +++ b/drivers/usb/gadget/imx_udc.c | |||
@@ -1556,17 +1556,7 @@ static struct platform_driver udc_driver = { | |||
1556 | .resume = imx_udc_resume, | 1556 | .resume = imx_udc_resume, |
1557 | }; | 1557 | }; |
1558 | 1558 | ||
1559 | static int __init udc_init(void) | 1559 | module_platform_driver_probe(udc_driver, imx_udc_probe); |
1560 | { | ||
1561 | return platform_driver_probe(&udc_driver, imx_udc_probe); | ||
1562 | } | ||
1563 | module_init(udc_init); | ||
1564 | |||
1565 | static void __exit udc_exit(void) | ||
1566 | { | ||
1567 | platform_driver_unregister(&udc_driver); | ||
1568 | } | ||
1569 | module_exit(udc_exit); | ||
1570 | 1560 | ||
1571 | MODULE_DESCRIPTION("IMX USB Device Controller driver"); | 1561 | MODULE_DESCRIPTION("IMX USB Device Controller driver"); |
1572 | MODULE_AUTHOR("Darius Augulis <augulis.darius@gmail.com>"); | 1562 | MODULE_AUTHOR("Darius Augulis <augulis.darius@gmail.com>"); |
diff --git a/drivers/usb/gadget/lpc32xx_udc.c b/drivers/usb/gadget/lpc32xx_udc.c index dd1c9b1fe528..aa04089d6899 100644 --- a/drivers/usb/gadget/lpc32xx_udc.c +++ b/drivers/usb/gadget/lpc32xx_udc.c | |||
@@ -3458,17 +3458,7 @@ static struct platform_driver lpc32xx_udc_driver = { | |||
3458 | }, | 3458 | }, |
3459 | }; | 3459 | }; |
3460 | 3460 | ||
3461 | static int __init udc_init_module(void) | 3461 | module_platform_driver_probe(lpc32xx_udc_driver, lpc32xx_udc_probe); |
3462 | { | ||
3463 | return platform_driver_probe(&lpc32xx_udc_driver, lpc32xx_udc_probe); | ||
3464 | } | ||
3465 | module_init(udc_init_module); | ||
3466 | |||
3467 | static void __exit udc_exit_module(void) | ||
3468 | { | ||
3469 | platform_driver_unregister(&lpc32xx_udc_driver); | ||
3470 | } | ||
3471 | module_exit(udc_exit_module); | ||
3472 | 3462 | ||
3473 | MODULE_DESCRIPTION("LPC32XX udc driver"); | 3463 | MODULE_DESCRIPTION("LPC32XX udc driver"); |
3474 | MODULE_AUTHOR("Kevin Wells <kevin.wells@nxp.com>"); | 3464 | MODULE_AUTHOR("Kevin Wells <kevin.wells@nxp.com>"); |
diff --git a/drivers/usb/gadget/m66592-udc.c b/drivers/usb/gadget/m66592-udc.c index b6401f1b56ce..dfce0cfe4e6f 100644 --- a/drivers/usb/gadget/m66592-udc.c +++ b/drivers/usb/gadget/m66592-udc.c | |||
@@ -1753,14 +1753,4 @@ static struct platform_driver m66592_driver = { | |||
1753 | }, | 1753 | }, |
1754 | }; | 1754 | }; |
1755 | 1755 | ||
1756 | static int __init m66592_udc_init(void) | 1756 | module_platform_driver_probe(m66592_driver, m66592_probe); |
1757 | { | ||
1758 | return platform_driver_probe(&m66592_driver, m66592_probe); | ||
1759 | } | ||
1760 | module_init(m66592_udc_init); | ||
1761 | |||
1762 | static void __exit m66592_udc_cleanup(void) | ||
1763 | { | ||
1764 | platform_driver_unregister(&m66592_driver); | ||
1765 | } | ||
1766 | module_exit(m66592_udc_cleanup); | ||
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index d4ca9f1f7f24..d52e869ce202 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c | |||
@@ -2100,6 +2100,8 @@ static int __init pxa25x_udc_probe(struct platform_device *pdev) | |||
2100 | int retval, irq; | 2100 | int retval, irq; |
2101 | u32 chiprev; | 2101 | u32 chiprev; |
2102 | 2102 | ||
2103 | pr_info("%s: version %s\n", driver_name, DRIVER_VERSION); | ||
2104 | |||
2103 | /* insist on Intel/ARM/XScale */ | 2105 | /* insist on Intel/ARM/XScale */ |
2104 | asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev)); | 2106 | asm("mrc%? p15, 0, %0, c0, c0" : "=r" (chiprev)); |
2105 | if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) { | 2107 | if ((chiprev & CP15R0_VENDOR_MASK) != CP15R0_XSCALE_VALUE) { |
@@ -2346,18 +2348,7 @@ static struct platform_driver udc_driver = { | |||
2346 | }, | 2348 | }, |
2347 | }; | 2349 | }; |
2348 | 2350 | ||
2349 | static int __init udc_init(void) | 2351 | module_platform_driver_probe(udc_driver, pxa25x_udc_probe); |
2350 | { | ||
2351 | pr_info("%s: version %s\n", driver_name, DRIVER_VERSION); | ||
2352 | return platform_driver_probe(&udc_driver, pxa25x_udc_probe); | ||
2353 | } | ||
2354 | module_init(udc_init); | ||
2355 | |||
2356 | static void __exit udc_exit(void) | ||
2357 | { | ||
2358 | platform_driver_unregister(&udc_driver); | ||
2359 | } | ||
2360 | module_exit(udc_exit); | ||
2361 | 2352 | ||
2362 | MODULE_DESCRIPTION(DRIVER_DESC); | 2353 | MODULE_DESCRIPTION(DRIVER_DESC); |
2363 | MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); | 2354 | MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); |
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c index 5a80751accb7..9a9fadd9095f 100644 --- a/drivers/usb/gadget/r8a66597-udc.c +++ b/drivers/usb/gadget/r8a66597-udc.c | |||
@@ -2031,21 +2031,10 @@ static struct platform_driver r8a66597_driver = { | |||
2031 | .name = (char *) udc_name, | 2031 | .name = (char *) udc_name, |
2032 | }, | 2032 | }, |
2033 | }; | 2033 | }; |
2034 | MODULE_ALIAS("platform:r8a66597_udc"); | ||
2035 | |||
2036 | static int __init r8a66597_udc_init(void) | ||
2037 | { | ||
2038 | return platform_driver_probe(&r8a66597_driver, r8a66597_probe); | ||
2039 | } | ||
2040 | module_init(r8a66597_udc_init); | ||
2041 | 2034 | ||
2042 | static void __exit r8a66597_udc_cleanup(void) | 2035 | module_platform_driver_probe(r8a66597_driver, r8a66597_probe); |
2043 | { | ||
2044 | platform_driver_unregister(&r8a66597_driver); | ||
2045 | } | ||
2046 | module_exit(r8a66597_udc_cleanup); | ||
2047 | 2036 | ||
2048 | MODULE_DESCRIPTION("R8A66597 USB gadget driver"); | 2037 | MODULE_DESCRIPTION("R8A66597 USB gadget driver"); |
2049 | MODULE_LICENSE("GPL"); | 2038 | MODULE_LICENSE("GPL"); |
2050 | MODULE_AUTHOR("Yoshihiro Shimoda"); | 2039 | MODULE_AUTHOR("Yoshihiro Shimoda"); |
2051 | 2040 | MODULE_ALIAS("platform:r8a66597_udc"); | |
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c index 439c3f972f8c..de80fa644b5a 100644 --- a/drivers/usb/gadget/s3c-hsotg.c +++ b/drivers/usb/gadget/s3c-hsotg.c | |||
@@ -3525,10 +3525,9 @@ static int s3c_hsotg_probe(struct platform_device *pdev) | |||
3525 | 3525 | ||
3526 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 3526 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
3527 | 3527 | ||
3528 | hsotg->regs = devm_request_and_ioremap(&pdev->dev, res); | 3528 | hsotg->regs = devm_ioremap_resource(&pdev->dev, res); |
3529 | if (!hsotg->regs) { | 3529 | if (IS_ERR(hsotg->regs)) { |
3530 | dev_err(dev, "cannot map registers\n"); | 3530 | ret = PTR_ERR(hsotg->regs); |
3531 | ret = -ENXIO; | ||
3532 | goto err_clk; | 3531 | goto err_clk; |
3533 | } | 3532 | } |
3534 | 3533 | ||
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c index 52379b11f080..94ca33bb990b 100644 --- a/drivers/usb/gadget/s3c-hsudc.c +++ b/drivers/usb/gadget/s3c-hsudc.c | |||
@@ -1295,10 +1295,9 @@ static int s3c_hsudc_probe(struct platform_device *pdev) | |||
1295 | 1295 | ||
1296 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1296 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1297 | 1297 | ||
1298 | hsudc->regs = devm_request_and_ioremap(&pdev->dev, res); | 1298 | hsudc->regs = devm_ioremap_resource(&pdev->dev, res); |
1299 | if (!hsudc->regs) { | 1299 | if (IS_ERR(hsudc->regs)) { |
1300 | dev_err(dev, "error mapping device register area\n"); | 1300 | ret = PTR_ERR(hsudc->regs); |
1301 | ret = -EBUSY; | ||
1302 | goto err_res; | 1301 | goto err_res; |
1303 | } | 1302 | } |
1304 | 1303 | ||
diff --git a/drivers/usb/host/ehci-atmel.c b/drivers/usb/host/ehci-atmel.c index 27639487f7ac..f3beac4d06b8 100644 --- a/drivers/usb/host/ehci-atmel.c +++ b/drivers/usb/host/ehci-atmel.c | |||
@@ -143,10 +143,9 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev) | |||
143 | hcd->rsrc_start = res->start; | 143 | hcd->rsrc_start = res->start; |
144 | hcd->rsrc_len = resource_size(res); | 144 | hcd->rsrc_len = resource_size(res); |
145 | 145 | ||
146 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 146 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
147 | if (hcd->regs == NULL) { | 147 | if (IS_ERR(hcd->regs)) { |
148 | dev_dbg(&pdev->dev, "error mapping memory\n"); | 148 | retval = PTR_ERR(hcd->regs); |
149 | retval = -EFAULT; | ||
150 | goto fail_request_resource; | 149 | goto fail_request_resource; |
151 | } | 150 | } |
152 | 151 | ||
diff --git a/drivers/usb/host/ehci-grlib.c b/drivers/usb/host/ehci-grlib.c index 1fc89292f5d6..5d75de9729b6 100644 --- a/drivers/usb/host/ehci-grlib.c +++ b/drivers/usb/host/ehci-grlib.c | |||
@@ -25,7 +25,7 @@ | |||
25 | * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 25 | * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | 28 | #include <linux/err.h> | |
29 | #include <linux/signal.h> | 29 | #include <linux/signal.h> |
30 | 30 | ||
31 | #include <linux/of_irq.h> | 31 | #include <linux/of_irq.h> |
@@ -118,10 +118,9 @@ static int ehci_hcd_grlib_probe(struct platform_device *op) | |||
118 | goto err_irq; | 118 | goto err_irq; |
119 | } | 119 | } |
120 | 120 | ||
121 | hcd->regs = devm_request_and_ioremap(&op->dev, &res); | 121 | hcd->regs = devm_ioremap_resource(&op->dev, &res); |
122 | if (!hcd->regs) { | 122 | if (IS_ERR(hcd->regs)) { |
123 | pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); | 123 | rv = PTR_ERR(hcd->regs); |
124 | rv = -ENOMEM; | ||
125 | goto err_ioremap; | 124 | goto err_ioremap; |
126 | } | 125 | } |
127 | 126 | ||
diff --git a/drivers/usb/host/ehci-mxc.c b/drivers/usb/host/ehci-mxc.c index dedb80bb8d40..e2004de6ad3d 100644 --- a/drivers/usb/host/ehci-mxc.c +++ b/drivers/usb/host/ehci-mxc.c | |||
@@ -85,10 +85,9 @@ static int ehci_mxc_drv_probe(struct platform_device *pdev) | |||
85 | hcd->rsrc_start = res->start; | 85 | hcd->rsrc_start = res->start; |
86 | hcd->rsrc_len = resource_size(res); | 86 | hcd->rsrc_len = resource_size(res); |
87 | 87 | ||
88 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 88 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
89 | if (!hcd->regs) { | 89 | if (IS_ERR(hcd->regs)) { |
90 | dev_err(dev, "error mapping memory\n"); | 90 | ret = PTR_ERR(hcd->regs); |
91 | ret = -EFAULT; | ||
92 | goto err_alloc; | 91 | goto err_alloc; |
93 | } | 92 | } |
94 | 93 | ||
diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c index 58fa0c90c7c7..ca7506390542 100644 --- a/drivers/usb/host/ehci-platform.c +++ b/drivers/usb/host/ehci-platform.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * | 18 | * |
19 | * Licensed under the GNU/GPL. See COPYING for details. | 19 | * Licensed under the GNU/GPL. See COPYING for details. |
20 | */ | 20 | */ |
21 | #include <linux/err.h> | ||
21 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
22 | #include <linux/hrtimer.h> | 23 | #include <linux/hrtimer.h> |
23 | #include <linux/io.h> | 24 | #include <linux/io.h> |
@@ -104,9 +105,9 @@ static int ehci_platform_probe(struct platform_device *dev) | |||
104 | hcd->rsrc_start = res_mem->start; | 105 | hcd->rsrc_start = res_mem->start; |
105 | hcd->rsrc_len = resource_size(res_mem); | 106 | hcd->rsrc_len = resource_size(res_mem); |
106 | 107 | ||
107 | hcd->regs = devm_request_and_ioremap(&dev->dev, res_mem); | 108 | hcd->regs = devm_ioremap_resource(&dev->dev, res_mem); |
108 | if (!hcd->regs) { | 109 | if (IS_ERR(hcd->regs)) { |
109 | err = -ENOMEM; | 110 | err = PTR_ERR(hcd->regs); |
110 | goto err_put_hcd; | 111 | goto err_put_hcd; |
111 | } | 112 | } |
112 | err = usb_add_hcd(hcd, irq, IRQF_SHARED); | 113 | err = usb_add_hcd(hcd, irq, IRQF_SHARED); |
diff --git a/drivers/usb/host/ehci-ppc-of.c b/drivers/usb/host/ehci-ppc-of.c index 45aceefd0c2b..56dc732bf451 100644 --- a/drivers/usb/host/ehci-ppc-of.c +++ b/drivers/usb/host/ehci-ppc-of.c | |||
@@ -12,6 +12,7 @@ | |||
12 | * This file is licenced under the GPL. | 12 | * This file is licenced under the GPL. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <linux/err.h> | ||
15 | #include <linux/signal.h> | 16 | #include <linux/signal.h> |
16 | 17 | ||
17 | #include <linux/of.h> | 18 | #include <linux/of.h> |
@@ -121,10 +122,9 @@ static int ehci_hcd_ppc_of_probe(struct platform_device *op) | |||
121 | goto err_irq; | 122 | goto err_irq; |
122 | } | 123 | } |
123 | 124 | ||
124 | hcd->regs = devm_request_and_ioremap(&op->dev, &res); | 125 | hcd->regs = devm_ioremap_resource(&op->dev, &res); |
125 | if (!hcd->regs) { | 126 | if (IS_ERR(hcd->regs)) { |
126 | pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); | 127 | rv = PTR_ERR(hcd->regs); |
127 | rv = -ENOMEM; | ||
128 | goto err_ioremap; | 128 | goto err_ioremap; |
129 | } | 129 | } |
130 | 130 | ||
diff --git a/drivers/usb/host/ehci-sead3.c b/drivers/usb/host/ehci-sead3.c index efad02d947f2..f55477c5a1be 100644 --- a/drivers/usb/host/ehci-sead3.c +++ b/drivers/usb/host/ehci-sead3.c | |||
@@ -19,6 +19,7 @@ | |||
19 | * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | * Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <linux/err.h> | ||
22 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
23 | 24 | ||
24 | static int ehci_sead3_setup(struct usb_hcd *hcd) | 25 | static int ehci_sead3_setup(struct usb_hcd *hcd) |
@@ -112,10 +113,9 @@ static int ehci_hcd_sead3_drv_probe(struct platform_device *pdev) | |||
112 | hcd->rsrc_start = res->start; | 113 | hcd->rsrc_start = res->start; |
113 | hcd->rsrc_len = resource_size(res); | 114 | hcd->rsrc_len = resource_size(res); |
114 | 115 | ||
115 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 116 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
116 | if (!hcd->regs) { | 117 | if (IS_ERR(hcd->regs)) { |
117 | pr_debug("ioremap failed"); | 118 | ret = PTR_ERR(hcd->regs); |
118 | ret = -ENOMEM; | ||
119 | goto err1; | 119 | goto err1; |
120 | } | 120 | } |
121 | 121 | ||
diff --git a/drivers/usb/host/ehci-sh.c b/drivers/usb/host/ehci-sh.c index 0c90a24fa989..3565a300f401 100644 --- a/drivers/usb/host/ehci-sh.c +++ b/drivers/usb/host/ehci-sh.c | |||
@@ -118,10 +118,9 @@ static int ehci_hcd_sh_probe(struct platform_device *pdev) | |||
118 | hcd->rsrc_start = res->start; | 118 | hcd->rsrc_start = res->start; |
119 | hcd->rsrc_len = resource_size(res); | 119 | hcd->rsrc_len = resource_size(res); |
120 | 120 | ||
121 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 121 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
122 | if (hcd->regs == NULL) { | 122 | if (IS_ERR(hcd->regs)) { |
123 | dev_dbg(&pdev->dev, "error mapping memory\n"); | 123 | ret = PTR_ERR(hcd->regs); |
124 | ret = -ENXIO; | ||
125 | goto fail_request_resource; | 124 | goto fail_request_resource; |
126 | } | 125 | } |
127 | 126 | ||
diff --git a/drivers/usb/host/ehci-vt8500.c b/drivers/usb/host/ehci-vt8500.c index 11695d5b9d86..7ecf709610ba 100644 --- a/drivers/usb/host/ehci-vt8500.c +++ b/drivers/usb/host/ehci-vt8500.c | |||
@@ -16,6 +16,7 @@ | |||
16 | * | 16 | * |
17 | */ | 17 | */ |
18 | 18 | ||
19 | #include <linux/err.h> | ||
19 | #include <linux/of.h> | 20 | #include <linux/of.h> |
20 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
21 | 22 | ||
@@ -96,10 +97,9 @@ static int vt8500_ehci_drv_probe(struct platform_device *pdev) | |||
96 | hcd->rsrc_start = res->start; | 97 | hcd->rsrc_start = res->start; |
97 | hcd->rsrc_len = resource_size(res); | 98 | hcd->rsrc_len = resource_size(res); |
98 | 99 | ||
99 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 100 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
100 | if (!hcd->regs) { | 101 | if (IS_ERR(hcd->regs)) { |
101 | pr_debug("ioremap failed"); | 102 | ret = PTR_ERR(hcd->regs); |
102 | ret = -ENOMEM; | ||
103 | goto err1; | 103 | goto err1; |
104 | } | 104 | } |
105 | 105 | ||
diff --git a/drivers/usb/host/ehci-xilinx-of.c b/drivers/usb/host/ehci-xilinx-of.c index 4f285e8e404a..d845e3bcfaff 100644 --- a/drivers/usb/host/ehci-xilinx-of.c +++ b/drivers/usb/host/ehci-xilinx-of.c | |||
@@ -25,6 +25,7 @@ | |||
25 | * | 25 | * |
26 | */ | 26 | */ |
27 | 27 | ||
28 | #include <linux/err.h> | ||
28 | #include <linux/signal.h> | 29 | #include <linux/signal.h> |
29 | 30 | ||
30 | #include <linux/of.h> | 31 | #include <linux/of.h> |
@@ -159,10 +160,9 @@ static int ehci_hcd_xilinx_of_probe(struct platform_device *op) | |||
159 | goto err_irq; | 160 | goto err_irq; |
160 | } | 161 | } |
161 | 162 | ||
162 | hcd->regs = devm_request_and_ioremap(&op->dev, &res); | 163 | hcd->regs = devm_ioremap_resource(&op->dev, &res); |
163 | if (!hcd->regs) { | 164 | if (IS_ERR(hcd->regs)) { |
164 | pr_err("%s: devm_request_and_ioremap failed\n", __FILE__); | 165 | rv = PTR_ERR(hcd->regs); |
165 | rv = -ENOMEM; | ||
166 | goto err_irq; | 166 | goto err_irq; |
167 | } | 167 | } |
168 | 168 | ||
diff --git a/drivers/usb/host/ohci-nxp.c b/drivers/usb/host/ohci-nxp.c index 2344040c16d2..f4988fbe78e7 100644 --- a/drivers/usb/host/ohci-nxp.c +++ b/drivers/usb/host/ohci-nxp.c | |||
@@ -306,10 +306,9 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev) | |||
306 | goto out8; | 306 | goto out8; |
307 | } | 307 | } |
308 | 308 | ||
309 | hcd->regs = devm_request_and_ioremap(&pdev->dev, res); | 309 | hcd->regs = devm_ioremap_resource(&pdev->dev, res); |
310 | if (!hcd->regs) { | 310 | if (IS_ERR(hcd->regs)) { |
311 | dev_err(&pdev->dev, "Failed to devm_request_and_ioremap\n"); | 311 | ret = PTR_ERR(hcd->regs); |
312 | ret = -ENOMEM; | ||
313 | goto out8; | 312 | goto out8; |
314 | } | 313 | } |
315 | hcd->rsrc_start = res->start; | 314 | hcd->rsrc_start = res->start; |
diff --git a/drivers/usb/host/ohci-platform.c b/drivers/usb/host/ohci-platform.c index 084503b03fcf..c3e7287f7921 100644 --- a/drivers/usb/host/ohci-platform.c +++ b/drivers/usb/host/ohci-platform.c | |||
@@ -13,6 +13,7 @@ | |||
13 | * | 13 | * |
14 | * Licensed under the GNU/GPL. See COPYING for details. | 14 | * Licensed under the GNU/GPL. See COPYING for details. |
15 | */ | 15 | */ |
16 | #include <linux/err.h> | ||
16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
17 | #include <linux/usb/ohci_pdriver.h> | 18 | #include <linux/usb/ohci_pdriver.h> |
18 | 19 | ||
@@ -127,9 +128,9 @@ static int ohci_platform_probe(struct platform_device *dev) | |||
127 | hcd->rsrc_start = res_mem->start; | 128 | hcd->rsrc_start = res_mem->start; |
128 | hcd->rsrc_len = resource_size(res_mem); | 129 | hcd->rsrc_len = resource_size(res_mem); |
129 | 130 | ||
130 | hcd->regs = devm_request_and_ioremap(&dev->dev, res_mem); | 131 | hcd->regs = devm_ioremap_resource(&dev->dev, res_mem); |
131 | if (!hcd->regs) { | 132 | if (IS_ERR(hcd->regs)) { |
132 | err = -ENOMEM; | 133 | err = PTR_ERR(hcd->regs); |
133 | goto err_put_hcd; | 134 | goto err_put_hcd; |
134 | } | 135 | } |
135 | err = usb_add_hcd(hcd, irq, IRQF_SHARED); | 136 | err = usb_add_hcd(hcd, irq, IRQF_SHARED); |
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c index ad0f55269603..e125770b893c 100644 --- a/drivers/usb/host/ohci-s3c2410.c +++ b/drivers/usb/host/ohci-s3c2410.c | |||
@@ -351,10 +351,9 @@ static int usb_hcd_s3c2410_probe(const struct hc_driver *driver, | |||
351 | hcd->rsrc_start = dev->resource[0].start; | 351 | hcd->rsrc_start = dev->resource[0].start; |
352 | hcd->rsrc_len = resource_size(&dev->resource[0]); | 352 | hcd->rsrc_len = resource_size(&dev->resource[0]); |
353 | 353 | ||
354 | hcd->regs = devm_request_and_ioremap(&dev->dev, &dev->resource[0]); | 354 | hcd->regs = devm_ioremap_resource(&dev->dev, &dev->resource[0]); |
355 | if (!hcd->regs) { | 355 | if (IS_ERR(hcd->regs)) { |
356 | dev_err(&dev->dev, "devm_request_and_ioremap failed\n"); | 356 | retval = PTR_ERR(hcd->regs); |
357 | retval = -ENOMEM; | ||
358 | goto err_put; | 357 | goto err_put; |
359 | } | 358 | } |
360 | 359 | ||
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index f7d764de6fda..99f470d26a38 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c | |||
@@ -500,10 +500,9 @@ static int dsps_create_musb_pdev(struct dsps_glue *glue, u8 id) | |||
500 | resources[0].end = resources[0].start + SZ_4 - 1; | 500 | resources[0].end = resources[0].start + SZ_4 - 1; |
501 | resources[0].flags = IORESOURCE_MEM; | 501 | resources[0].flags = IORESOURCE_MEM; |
502 | 502 | ||
503 | glue->usb_ctrl[id] = devm_request_and_ioremap(&pdev->dev, resources); | 503 | glue->usb_ctrl[id] = devm_ioremap_resource(&pdev->dev, resources); |
504 | if (glue->usb_ctrl[id] == NULL) { | 504 | if (IS_ERR(glue->usb_ctrl[id])) { |
505 | dev_err(dev, "Failed to obtain usb_ctrl%d memory\n", id); | 505 | ret = PTR_ERR(glue->usb_ctrl[id]); |
506 | ret = -ENODEV; | ||
507 | goto err0; | 506 | goto err0; |
508 | } | 507 | } |
509 | 508 | ||
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index da00af460794..acd5f9d71d03 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c | |||
@@ -523,9 +523,7 @@ static int omap2430_probe(struct platform_device *pdev) | |||
523 | 523 | ||
524 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 524 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
525 | 525 | ||
526 | glue->control_otghs = devm_request_and_ioremap(&pdev->dev, res); | 526 | glue->control_otghs = devm_ioremap_resource(&pdev->dev, res); |
527 | if (glue->control_otghs == NULL) | ||
528 | dev_dbg(&pdev->dev, "Failed to obtain control memory\n"); | ||
529 | 527 | ||
530 | if (np) { | 528 | if (np) { |
531 | pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); | 529 | pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); |
diff --git a/drivers/usb/otg/gpio_vbus.c b/drivers/usb/otg/gpio_vbus.c index a67ffe22179a..a7d4ac591982 100644 --- a/drivers/usb/otg/gpio_vbus.c +++ b/drivers/usb/otg/gpio_vbus.c | |||
@@ -409,17 +409,7 @@ static struct platform_driver gpio_vbus_driver = { | |||
409 | .remove = __exit_p(gpio_vbus_remove), | 409 | .remove = __exit_p(gpio_vbus_remove), |
410 | }; | 410 | }; |
411 | 411 | ||
412 | static int __init gpio_vbus_init(void) | 412 | module_platform_driver_probe(gpio_vbus_driver, gpio_vbus_probe); |
413 | { | ||
414 | return platform_driver_probe(&gpio_vbus_driver, gpio_vbus_probe); | ||
415 | } | ||
416 | module_init(gpio_vbus_init); | ||
417 | |||
418 | static void __exit gpio_vbus_exit(void) | ||
419 | { | ||
420 | platform_driver_unregister(&gpio_vbus_driver); | ||
421 | } | ||
422 | module_exit(gpio_vbus_exit); | ||
423 | 413 | ||
424 | MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver"); | 414 | MODULE_DESCRIPTION("simple GPIO controlled OTG transceiver driver"); |
425 | MODULE_AUTHOR("Philipp Zabel"); | 415 | MODULE_AUTHOR("Philipp Zabel"); |
diff --git a/drivers/usb/otg/msm_otg.c b/drivers/usb/otg/msm_otg.c index 3b9f0d951132..749fbf41fb6f 100644 --- a/drivers/usb/otg/msm_otg.c +++ b/drivers/usb/otg/msm_otg.c | |||
@@ -1756,18 +1756,7 @@ static struct platform_driver msm_otg_driver = { | |||
1756 | }, | 1756 | }, |
1757 | }; | 1757 | }; |
1758 | 1758 | ||
1759 | static int __init msm_otg_init(void) | 1759 | module_platform_driver_probe(msm_otg_driver, msm_otg_probe); |
1760 | { | ||
1761 | return platform_driver_probe(&msm_otg_driver, msm_otg_probe); | ||
1762 | } | ||
1763 | |||
1764 | static void __exit msm_otg_exit(void) | ||
1765 | { | ||
1766 | platform_driver_unregister(&msm_otg_driver); | ||
1767 | } | ||
1768 | |||
1769 | module_init(msm_otg_init); | ||
1770 | module_exit(msm_otg_exit); | ||
1771 | 1760 | ||
1772 | MODULE_LICENSE("GPL v2"); | 1761 | MODULE_LICENSE("GPL v2"); |
1773 | MODULE_DESCRIPTION("MSM USB transceiver driver"); | 1762 | MODULE_DESCRIPTION("MSM USB transceiver driver"); |
diff --git a/drivers/usb/otg/mxs-phy.c b/drivers/usb/otg/mxs-phy.c index 76302720055a..60df28a294b7 100644 --- a/drivers/usb/otg/mxs-phy.c +++ b/drivers/usb/otg/mxs-phy.c | |||
@@ -115,9 +115,9 @@ static int mxs_phy_probe(struct platform_device *pdev) | |||
115 | return -ENOENT; | 115 | return -ENOENT; |
116 | } | 116 | } |
117 | 117 | ||
118 | base = devm_request_and_ioremap(&pdev->dev, res); | 118 | base = devm_ioremap_resource(&pdev->dev, res); |
119 | if (!base) | 119 | if (IS_ERR(base)) |
120 | return -EBUSY; | 120 | return PTR_ERR(base); |
121 | 121 | ||
122 | clk = devm_clk_get(&pdev->dev, NULL); | 122 | clk = devm_clk_get(&pdev->dev, NULL); |
123 | if (IS_ERR(clk)) { | 123 | if (IS_ERR(clk)) { |
diff --git a/drivers/usb/phy/mv_u3d_phy.c b/drivers/usb/phy/mv_u3d_phy.c index eaddbe3d4304..9d8599122aa9 100644 --- a/drivers/usb/phy/mv_u3d_phy.c +++ b/drivers/usb/phy/mv_u3d_phy.c | |||
@@ -283,11 +283,9 @@ static int mv_u3d_phy_probe(struct platform_device *pdev) | |||
283 | return -ENODEV; | 283 | return -ENODEV; |
284 | } | 284 | } |
285 | 285 | ||
286 | phy_base = devm_request_and_ioremap(dev, res); | 286 | phy_base = devm_ioremap_resource(dev, res); |
287 | if (!phy_base) { | 287 | if (IS_ERR(phy_base)) |
288 | dev_err(dev, "%s: register mapping failed\n", __func__); | 288 | return PTR_ERR(phy_base); |
289 | return -ENXIO; | ||
290 | } | ||
291 | 289 | ||
292 | mv_u3d_phy = devm_kzalloc(dev, sizeof(*mv_u3d_phy), GFP_KERNEL); | 290 | mv_u3d_phy = devm_kzalloc(dev, sizeof(*mv_u3d_phy), GFP_KERNEL); |
293 | if (!mv_u3d_phy) | 291 | if (!mv_u3d_phy) |
diff --git a/drivers/usb/phy/omap-usb2.c b/drivers/usb/phy/omap-usb2.c index 26ae8f49225c..2fdb8ede5f1c 100644 --- a/drivers/usb/phy/omap-usb2.c +++ b/drivers/usb/phy/omap-usb2.c | |||
@@ -168,11 +168,9 @@ static int omap_usb2_probe(struct platform_device *pdev) | |||
168 | 168 | ||
169 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 169 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
170 | 170 | ||
171 | phy->control_dev = devm_request_and_ioremap(&pdev->dev, res); | 171 | phy->control_dev = devm_ioremap_resource(&pdev->dev, res); |
172 | if (phy->control_dev == NULL) { | 172 | if (IS_ERR(phy->control_dev)) |
173 | dev_err(&pdev->dev, "Failed to obtain io memory\n"); | 173 | return PTR_ERR(phy->control_dev); |
174 | return -ENXIO; | ||
175 | } | ||
176 | 174 | ||
177 | phy->is_suspended = 1; | 175 | phy->is_suspended = 1; |
178 | omap_usb_phy_power(phy, 0); | 176 | omap_usb_phy_power(phy, 0); |
diff --git a/drivers/usb/renesas_usbhs/common.c b/drivers/usb/renesas_usbhs/common.c index 38bce046f4d0..cfd205036aba 100644 --- a/drivers/usb/renesas_usbhs/common.c +++ b/drivers/usb/renesas_usbhs/common.c | |||
@@ -14,6 +14,7 @@ | |||
14 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 14 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | #include <linux/err.h> | ||
17 | #include <linux/io.h> | 18 | #include <linux/io.h> |
18 | #include <linux/module.h> | 19 | #include <linux/module.h> |
19 | #include <linux/pm_runtime.h> | 20 | #include <linux/pm_runtime.h> |
@@ -443,11 +444,9 @@ static int usbhs_probe(struct platform_device *pdev) | |||
443 | return -ENOMEM; | 444 | return -ENOMEM; |
444 | } | 445 | } |
445 | 446 | ||
446 | priv->base = devm_request_and_ioremap(&pdev->dev, res); | 447 | priv->base = devm_ioremap_resource(&pdev->dev, res); |
447 | if (!priv->base) { | 448 | if (IS_ERR(priv->base)) |
448 | dev_err(&pdev->dev, "ioremap error.\n"); | 449 | return PTR_ERR(priv->base); |
449 | return -ENOMEM; | ||
450 | } | ||
451 | 450 | ||
452 | /* | 451 | /* |
453 | * care platform info | 452 | * care platform info |
diff --git a/drivers/uwb/lc-rc.c b/drivers/uwb/lc-rc.c index 4d688c750801..3eca6ceb9844 100644 --- a/drivers/uwb/lc-rc.c +++ b/drivers/uwb/lc-rc.c | |||
@@ -40,9 +40,9 @@ | |||
40 | 40 | ||
41 | #include "uwb-internal.h" | 41 | #include "uwb-internal.h" |
42 | 42 | ||
43 | static int uwb_rc_index_match(struct device *dev, void *data) | 43 | static int uwb_rc_index_match(struct device *dev, const void *data) |
44 | { | 44 | { |
45 | int *index = data; | 45 | const int *index = data; |
46 | struct uwb_rc *rc = dev_get_drvdata(dev); | 46 | struct uwb_rc *rc = dev_get_drvdata(dev); |
47 | 47 | ||
48 | if (rc->index == *index) | 48 | if (rc->index == *index) |
@@ -334,9 +334,9 @@ void uwb_rc_rm(struct uwb_rc *rc) | |||
334 | } | 334 | } |
335 | EXPORT_SYMBOL_GPL(uwb_rc_rm); | 335 | EXPORT_SYMBOL_GPL(uwb_rc_rm); |
336 | 336 | ||
337 | static int find_rc_try_get(struct device *dev, void *data) | 337 | static int find_rc_try_get(struct device *dev, const void *data) |
338 | { | 338 | { |
339 | struct uwb_rc *target_rc = data; | 339 | const struct uwb_rc *target_rc = data; |
340 | struct uwb_rc *rc = dev_get_drvdata(dev); | 340 | struct uwb_rc *rc = dev_get_drvdata(dev); |
341 | 341 | ||
342 | if (rc == NULL) { | 342 | if (rc == NULL) { |
@@ -386,9 +386,9 @@ static inline struct uwb_rc *uwb_rc_get(struct uwb_rc *rc) | |||
386 | return rc; | 386 | return rc; |
387 | } | 387 | } |
388 | 388 | ||
389 | static int find_rc_grandpa(struct device *dev, void *data) | 389 | static int find_rc_grandpa(struct device *dev, const void *data) |
390 | { | 390 | { |
391 | struct device *grandpa_dev = data; | 391 | const struct device *grandpa_dev = data; |
392 | struct uwb_rc *rc = dev_get_drvdata(dev); | 392 | struct uwb_rc *rc = dev_get_drvdata(dev); |
393 | 393 | ||
394 | if (rc->uwb_dev.dev.parent->parent == grandpa_dev) { | 394 | if (rc->uwb_dev.dev.parent->parent == grandpa_dev) { |
@@ -419,7 +419,7 @@ struct uwb_rc *uwb_rc_get_by_grandpa(const struct device *grandpa_dev) | |||
419 | struct device *dev; | 419 | struct device *dev; |
420 | struct uwb_rc *rc = NULL; | 420 | struct uwb_rc *rc = NULL; |
421 | 421 | ||
422 | dev = class_find_device(&uwb_rc_class, NULL, (void *)grandpa_dev, | 422 | dev = class_find_device(&uwb_rc_class, NULL, grandpa_dev, |
423 | find_rc_grandpa); | 423 | find_rc_grandpa); |
424 | if (dev) | 424 | if (dev) |
425 | rc = dev_get_drvdata(dev); | 425 | rc = dev_get_drvdata(dev); |
@@ -432,9 +432,9 @@ EXPORT_SYMBOL_GPL(uwb_rc_get_by_grandpa); | |||
432 | * | 432 | * |
433 | * @returns the pointer to the radio controller, properly referenced | 433 | * @returns the pointer to the radio controller, properly referenced |
434 | */ | 434 | */ |
435 | static int find_rc_dev(struct device *dev, void *data) | 435 | static int find_rc_dev(struct device *dev, const void *data) |
436 | { | 436 | { |
437 | struct uwb_dev_addr *addr = data; | 437 | const struct uwb_dev_addr *addr = data; |
438 | struct uwb_rc *rc = dev_get_drvdata(dev); | 438 | struct uwb_rc *rc = dev_get_drvdata(dev); |
439 | 439 | ||
440 | if (rc == NULL) { | 440 | if (rc == NULL) { |
@@ -453,8 +453,7 @@ struct uwb_rc *uwb_rc_get_by_dev(const struct uwb_dev_addr *addr) | |||
453 | struct device *dev; | 453 | struct device *dev; |
454 | struct uwb_rc *rc = NULL; | 454 | struct uwb_rc *rc = NULL; |
455 | 455 | ||
456 | dev = class_find_device(&uwb_rc_class, NULL, (void *)addr, | 456 | dev = class_find_device(&uwb_rc_class, NULL, addr, find_rc_dev); |
457 | find_rc_dev); | ||
458 | if (dev) | 457 | if (dev) |
459 | rc = dev_get_drvdata(dev); | 458 | rc = dev_get_drvdata(dev); |
460 | 459 | ||
diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig index 202bba6c997c..bf243177ffe1 100644 --- a/drivers/vhost/Kconfig +++ b/drivers/vhost/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config VHOST_NET | 1 | config VHOST_NET |
2 | tristate "Host kernel accelerator for virtio net (EXPERIMENTAL)" | 2 | tristate "Host kernel accelerator for virtio net" |
3 | depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) && EXPERIMENTAL | 3 | depends on NET && EVENTFD && (TUN || !TUN) && (MACVTAP || !MACVTAP) |
4 | ---help--- | 4 | ---help--- |
5 | This kernel module can be loaded in host kernel to accelerate | 5 | This kernel module can be loaded in host kernel to accelerate |
6 | guest networking with virtio_net. Not to be confused with virtio_net | 6 | guest networking with virtio_net. Not to be confused with virtio_net |
diff --git a/drivers/vhost/Kconfig.tcm b/drivers/vhost/Kconfig.tcm index a9c6f76e3208..7e3aa28d999e 100644 --- a/drivers/vhost/Kconfig.tcm +++ b/drivers/vhost/Kconfig.tcm | |||
@@ -1,6 +1,6 @@ | |||
1 | config TCM_VHOST | 1 | config TCM_VHOST |
2 | tristate "TCM_VHOST fabric module (EXPERIMENTAL)" | 2 | tristate "TCM_VHOST fabric module" |
3 | depends on TARGET_CORE && EVENTFD && EXPERIMENTAL && m | 3 | depends on TARGET_CORE && EVENTFD && m |
4 | default n | 4 | default n |
5 | ---help--- | 5 | ---help--- |
6 | Say M here to enable the TCM_VHOST fabric module for use with virtio-scsi guests | 6 | Say M here to enable the TCM_VHOST fabric module for use with virtio-scsi guests |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index e7068c508800..e4e1765b82f2 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -1112,8 +1112,8 @@ config FB_RIVA_BACKLIGHT | |||
1112 | Say Y here if you want to control the backlight of your display. | 1112 | Say Y here if you want to control the backlight of your display. |
1113 | 1113 | ||
1114 | config FB_I740 | 1114 | config FB_I740 |
1115 | tristate "Intel740 support (EXPERIMENTAL)" | 1115 | tristate "Intel740 support" |
1116 | depends on EXPERIMENTAL && FB && PCI | 1116 | depends on FB && PCI |
1117 | select FB_MODE_HELPERS | 1117 | select FB_MODE_HELPERS |
1118 | select FB_CFB_FILLRECT | 1118 | select FB_CFB_FILLRECT |
1119 | select FB_CFB_COPYAREA | 1119 | select FB_CFB_COPYAREA |
@@ -1124,8 +1124,8 @@ config FB_I740 | |||
1124 | This driver supports graphics cards based on Intel740 chip. | 1124 | This driver supports graphics cards based on Intel740 chip. |
1125 | 1125 | ||
1126 | config FB_I810 | 1126 | config FB_I810 |
1127 | tristate "Intel 810/815 support (EXPERIMENTAL)" | 1127 | tristate "Intel 810/815 support" |
1128 | depends on EXPERIMENTAL && FB && PCI && X86_32 && AGP_INTEL | 1128 | depends on FB && PCI && X86_32 && AGP_INTEL |
1129 | select FB_MODE_HELPERS | 1129 | select FB_MODE_HELPERS |
1130 | select FB_CFB_FILLRECT | 1130 | select FB_CFB_FILLRECT |
1131 | select FB_CFB_COPYAREA | 1131 | select FB_CFB_COPYAREA |
@@ -1187,8 +1187,8 @@ config FB_CARILLO_RANCH | |||
1187 | This driver supports the LE80578 (Carillo Ranch) board | 1187 | This driver supports the LE80578 (Carillo Ranch) board |
1188 | 1188 | ||
1189 | config FB_INTEL | 1189 | config FB_INTEL |
1190 | tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support (EXPERIMENTAL)" | 1190 | tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G/945GM/965G/965GM support" |
1191 | depends on EXPERIMENTAL && FB && PCI && X86 && AGP_INTEL && EXPERT | 1191 | depends on FB && PCI && X86 && AGP_INTEL && EXPERT |
1192 | select FB_MODE_HELPERS | 1192 | select FB_MODE_HELPERS |
1193 | select FB_CFB_FILLRECT | 1193 | select FB_CFB_FILLRECT |
1194 | select FB_CFB_COPYAREA | 1194 | select FB_CFB_COPYAREA |
@@ -1432,7 +1432,7 @@ config FB_ATY_CT | |||
1432 | is at <http://support.ati.com/products/pc/mach64/mach64.html>. | 1432 | is at <http://support.ati.com/products/pc/mach64/mach64.html>. |
1433 | 1433 | ||
1434 | config FB_ATY_GENERIC_LCD | 1434 | config FB_ATY_GENERIC_LCD |
1435 | bool "Mach64 generic LCD support (EXPERIMENTAL)" | 1435 | bool "Mach64 generic LCD support" |
1436 | depends on FB_ATY_CT | 1436 | depends on FB_ATY_CT |
1437 | help | 1437 | help |
1438 | Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility, | 1438 | Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility, |
@@ -1479,7 +1479,7 @@ config FB_S3_DDC | |||
1479 | 1479 | ||
1480 | config FB_SAVAGE | 1480 | config FB_SAVAGE |
1481 | tristate "S3 Savage support" | 1481 | tristate "S3 Savage support" |
1482 | depends on FB && PCI && EXPERIMENTAL | 1482 | depends on FB && PCI |
1483 | select FB_MODE_HELPERS | 1483 | select FB_MODE_HELPERS |
1484 | select FB_CFB_FILLRECT | 1484 | select FB_CFB_FILLRECT |
1485 | select FB_CFB_COPYAREA | 1485 | select FB_CFB_COPYAREA |
@@ -1633,15 +1633,15 @@ config FB_3DFX | |||
1633 | module will be called tdfxfb. | 1633 | module will be called tdfxfb. |
1634 | 1634 | ||
1635 | config FB_3DFX_ACCEL | 1635 | config FB_3DFX_ACCEL |
1636 | bool "3Dfx Acceleration functions (EXPERIMENTAL)" | 1636 | bool "3Dfx Acceleration functions" |
1637 | depends on FB_3DFX && EXPERIMENTAL | 1637 | depends on FB_3DFX |
1638 | ---help--- | 1638 | ---help--- |
1639 | This will compile the 3Dfx Banshee/Voodoo3/VSA-100 frame buffer | 1639 | This will compile the 3Dfx Banshee/Voodoo3/VSA-100 frame buffer |
1640 | device driver with acceleration functions. | 1640 | device driver with acceleration functions. |
1641 | 1641 | ||
1642 | config FB_3DFX_I2C | 1642 | config FB_3DFX_I2C |
1643 | bool "Enable DDC/I2C support" | 1643 | bool "Enable DDC/I2C support" |
1644 | depends on FB_3DFX && EXPERIMENTAL | 1644 | depends on FB_3DFX |
1645 | select FB_DDC | 1645 | select FB_DDC |
1646 | default y | 1646 | default y |
1647 | help | 1647 | help |
@@ -1714,8 +1714,8 @@ config FB_ARK | |||
1714 | and ICS 5342 RAMDAC. | 1714 | and ICS 5342 RAMDAC. |
1715 | 1715 | ||
1716 | config FB_PM3 | 1716 | config FB_PM3 |
1717 | tristate "Permedia3 support (EXPERIMENTAL)" | 1717 | tristate "Permedia3 support" |
1718 | depends on FB && PCI && EXPERIMENTAL | 1718 | depends on FB && PCI |
1719 | select FB_CFB_FILLRECT | 1719 | select FB_CFB_FILLRECT |
1720 | select FB_CFB_COPYAREA | 1720 | select FB_CFB_COPYAREA |
1721 | select FB_CFB_IMAGEBLIT | 1721 | select FB_CFB_IMAGEBLIT |
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 345f6660d4b3..c74e7aa46731 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c | |||
@@ -371,7 +371,7 @@ void backlight_device_unregister(struct backlight_device *bd) | |||
371 | EXPORT_SYMBOL(backlight_device_unregister); | 371 | EXPORT_SYMBOL(backlight_device_unregister); |
372 | 372 | ||
373 | #ifdef CONFIG_OF | 373 | #ifdef CONFIG_OF |
374 | static int of_parent_match(struct device *dev, void *data) | 374 | static int of_parent_match(struct device *dev, const void *data) |
375 | { | 375 | { |
376 | return dev->parent && dev->parent->of_node == data; | 376 | return dev->parent && dev->parent->of_node == data; |
377 | } | 377 | } |
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index e2c96d01d8f5..bc922c47d046 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig | |||
@@ -46,7 +46,7 @@ config VGACON_SOFT_SCROLLBACK_SIZE | |||
46 | 46 | ||
47 | config MDA_CONSOLE | 47 | config MDA_CONSOLE |
48 | depends on !M68K && !PARISC && ISA | 48 | depends on !M68K && !PARISC && ISA |
49 | tristate "MDA text console (dual-headed) (EXPERIMENTAL)" | 49 | tristate "MDA text console (dual-headed)" |
50 | ---help--- | 50 | ---help--- |
51 | Say Y here if you have an old MDA or monochrome Hercules graphics | 51 | Say Y here if you have an old MDA or monochrome Hercules graphics |
52 | adapter in your system acting as a second head ( = video card). You | 52 | adapter in your system acting as a second head ( = video card). You |
diff --git a/drivers/video/exynos/exynos_dp_core.c b/drivers/video/exynos/exynos_dp_core.c index 2d0d144add1b..2ed97769aa6d 100644 --- a/drivers/video/exynos/exynos_dp_core.c +++ b/drivers/video/exynos/exynos_dp_core.c | |||
@@ -1076,11 +1076,9 @@ static int exynos_dp_probe(struct platform_device *pdev) | |||
1076 | 1076 | ||
1077 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1077 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1078 | 1078 | ||
1079 | dp->reg_base = devm_request_and_ioremap(&pdev->dev, res); | 1079 | dp->reg_base = devm_ioremap_resource(&pdev->dev, res); |
1080 | if (!dp->reg_base) { | 1080 | if (IS_ERR(dp->reg_base)) |
1081 | dev_err(&pdev->dev, "failed to ioremap\n"); | 1081 | return PTR_ERR(dp->reg_base); |
1082 | return -ENOMEM; | ||
1083 | } | ||
1084 | 1082 | ||
1085 | dp->irq = platform_get_irq(pdev, 0); | 1083 | dp->irq = platform_get_irq(pdev, 0); |
1086 | if (dp->irq == -ENXIO) { | 1084 | if (dp->irq == -ENXIO) { |
diff --git a/drivers/video/geode/Kconfig b/drivers/video/geode/Kconfig index c5d8ba4b9fc3..21e351a14593 100644 --- a/drivers/video/geode/Kconfig +++ b/drivers/video/geode/Kconfig | |||
@@ -2,14 +2,14 @@ | |||
2 | # Geode family framebuffer configuration | 2 | # Geode family framebuffer configuration |
3 | # | 3 | # |
4 | config FB_GEODE | 4 | config FB_GEODE |
5 | bool "AMD Geode family framebuffer support (EXPERIMENTAL)" | 5 | bool "AMD Geode family framebuffer support" |
6 | depends on FB && PCI && EXPERIMENTAL && X86 | 6 | depends on FB && PCI && X86 |
7 | ---help--- | 7 | ---help--- |
8 | Say 'Y' here to allow you to select framebuffer drivers for | 8 | Say 'Y' here to allow you to select framebuffer drivers for |
9 | the AMD Geode family of processors. | 9 | the AMD Geode family of processors. |
10 | 10 | ||
11 | config FB_GEODE_LX | 11 | config FB_GEODE_LX |
12 | tristate "AMD Geode LX framebuffer support (EXPERIMENTAL)" | 12 | tristate "AMD Geode LX framebuffer support" |
13 | depends on FB && FB_GEODE | 13 | depends on FB && FB_GEODE |
14 | select FB_CFB_FILLRECT | 14 | select FB_CFB_FILLRECT |
15 | select FB_CFB_COPYAREA | 15 | select FB_CFB_COPYAREA |
@@ -24,8 +24,8 @@ config FB_GEODE_LX | |||
24 | If unsure, say N. | 24 | If unsure, say N. |
25 | 25 | ||
26 | config FB_GEODE_GX | 26 | config FB_GEODE_GX |
27 | tristate "AMD Geode GX framebuffer support (EXPERIMENTAL)" | 27 | tristate "AMD Geode GX framebuffer support" |
28 | depends on FB && FB_GEODE && EXPERIMENTAL | 28 | depends on FB && FB_GEODE |
29 | select FB_CFB_FILLRECT | 29 | select FB_CFB_FILLRECT |
30 | select FB_CFB_COPYAREA | 30 | select FB_CFB_COPYAREA |
31 | select FB_CFB_IMAGEBLIT | 31 | select FB_CFB_IMAGEBLIT |
@@ -39,8 +39,8 @@ config FB_GEODE_GX | |||
39 | If unsure, say N. | 39 | If unsure, say N. |
40 | 40 | ||
41 | config FB_GEODE_GX1 | 41 | config FB_GEODE_GX1 |
42 | tristate "AMD Geode GX1 framebuffer support (EXPERIMENTAL)" | 42 | tristate "AMD Geode GX1 framebuffer support" |
43 | depends on FB && FB_GEODE && EXPERIMENTAL | 43 | depends on FB && FB_GEODE |
44 | select FB_CFB_FILLRECT | 44 | select FB_CFB_FILLRECT |
45 | select FB_CFB_COPYAREA | 45 | select FB_CFB_COPYAREA |
46 | select FB_CFB_IMAGEBLIT | 46 | select FB_CFB_IMAGEBLIT |
diff --git a/drivers/video/jz4740_fb.c b/drivers/video/jz4740_fb.c index d999bb5e0485..36979b4131ab 100644 --- a/drivers/video/jz4740_fb.c +++ b/drivers/video/jz4740_fb.c | |||
@@ -660,9 +660,9 @@ static int jzfb_probe(struct platform_device *pdev) | |||
660 | } | 660 | } |
661 | 661 | ||
662 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 662 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
663 | jzfb->base = devm_request_and_ioremap(&pdev->dev, mem); | 663 | jzfb->base = devm_ioremap_resource(&pdev->dev, mem); |
664 | if (!jzfb->base) { | 664 | if (IS_ERR(jzfb->base)) { |
665 | ret = -EBUSY; | 665 | ret = PTR_ERR(jzfb->base); |
666 | goto err_framebuffer_release; | 666 | goto err_framebuffer_release; |
667 | } | 667 | } |
668 | 668 | ||
diff --git a/drivers/video/omap/Kconfig b/drivers/video/omap/Kconfig index b48f95f0dfe2..e512581300fc 100644 --- a/drivers/video/omap/Kconfig +++ b/drivers/video/omap/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | config FB_OMAP | 1 | config FB_OMAP |
2 | tristate "OMAP frame buffer support (EXPERIMENTAL)" | 2 | tristate "OMAP frame buffer support" |
3 | depends on FB | 3 | depends on FB |
4 | depends on ARCH_OMAP1 | 4 | depends on ARCH_OMAP1 |
5 | select FB_CFB_FILLRECT | 5 | select FB_CFB_FILLRECT |
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c index 769d0828581c..72923645dcce 100644 --- a/drivers/video/omap2/dss/hdmi.c +++ b/drivers/video/omap2/dss/hdmi.c | |||
@@ -1080,11 +1080,9 @@ static int __init omapdss_hdmihw_probe(struct platform_device *pdev) | |||
1080 | } | 1080 | } |
1081 | 1081 | ||
1082 | /* Base address taken from platform */ | 1082 | /* Base address taken from platform */ |
1083 | hdmi.ip_data.base_wp = devm_request_and_ioremap(&pdev->dev, res); | 1083 | hdmi.ip_data.base_wp = devm_ioremap_resource(&pdev->dev, res); |
1084 | if (!hdmi.ip_data.base_wp) { | 1084 | if (IS_ERR(hdmi.ip_data.base_wp)) |
1085 | DSSERR("can't ioremap WP\n"); | 1085 | return PTR_ERR(hdmi.ip_data.base_wp); |
1086 | return -ENOMEM; | ||
1087 | } | ||
1088 | 1086 | ||
1089 | r = hdmi_get_clocks(pdev); | 1087 | r = hdmi_get_clocks(pdev); |
1090 | if (r) { | 1088 | if (r) { |
diff --git a/drivers/video/omap2/vrfb.c b/drivers/video/omap2/vrfb.c index 5d8fdac3b800..10560efeb35a 100644 --- a/drivers/video/omap2/vrfb.c +++ b/drivers/video/omap2/vrfb.c | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | /*#define DEBUG*/ | 21 | /*#define DEBUG*/ |
22 | 22 | ||
23 | #include <linux/err.h> | ||
23 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
24 | #include <linux/module.h> | 25 | #include <linux/module.h> |
25 | #include <linux/ioport.h> | 26 | #include <linux/ioport.h> |
@@ -357,11 +358,9 @@ static int __init vrfb_probe(struct platform_device *pdev) | |||
357 | return -EINVAL; | 358 | return -EINVAL; |
358 | } | 359 | } |
359 | 360 | ||
360 | vrfb_base = devm_request_and_ioremap(&pdev->dev, mem); | 361 | vrfb_base = devm_ioremap_resource(&pdev->dev, mem); |
361 | if (!vrfb_base) { | 362 | if (IS_ERR(vrfb_base)) |
362 | dev_err(&pdev->dev, "can't ioremap vrfb memory\n"); | 363 | return PTR_ERR(vrfb_base); |
363 | return -ENOMEM; | ||
364 | } | ||
365 | 364 | ||
366 | num_ctxs = pdev->num_resources - 1; | 365 | num_ctxs = pdev->num_resources - 1; |
367 | 366 | ||
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c index 9b57a235c9bc..968a62571df7 100644 --- a/drivers/video/s3c-fb.c +++ b/drivers/video/s3c-fb.c | |||
@@ -1421,10 +1421,9 @@ static int s3c_fb_probe(struct platform_device *pdev) | |||
1421 | pm_runtime_enable(sfb->dev); | 1421 | pm_runtime_enable(sfb->dev); |
1422 | 1422 | ||
1423 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1423 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1424 | sfb->regs = devm_request_and_ioremap(dev, res); | 1424 | sfb->regs = devm_ioremap_resource(dev, res); |
1425 | if (!sfb->regs) { | 1425 | if (IS_ERR(sfb->regs)) { |
1426 | dev_err(dev, "failed to map registers\n"); | 1426 | ret = PTR_ERR(sfb->regs); |
1427 | ret = -ENXIO; | ||
1428 | goto err_lcd_clk; | 1427 | goto err_lcd_clk; |
1429 | } | 1428 | } |
1430 | 1429 | ||
diff --git a/drivers/virtio/Kconfig b/drivers/virtio/Kconfig index 8d5bddb56cb1..c6683f2e396c 100644 --- a/drivers/virtio/Kconfig +++ b/drivers/virtio/Kconfig | |||
@@ -8,8 +8,8 @@ config VIRTIO | |||
8 | menu "Virtio drivers" | 8 | menu "Virtio drivers" |
9 | 9 | ||
10 | config VIRTIO_PCI | 10 | config VIRTIO_PCI |
11 | tristate "PCI driver for virtio devices (EXPERIMENTAL)" | 11 | tristate "PCI driver for virtio devices" |
12 | depends on PCI && EXPERIMENTAL | 12 | depends on PCI |
13 | select VIRTIO | 13 | select VIRTIO |
14 | ---help--- | 14 | ---help--- |
15 | This drivers provides support for virtio based paravirtual device | 15 | This drivers provides support for virtio based paravirtual device |
@@ -32,8 +32,8 @@ config VIRTIO_BALLOON | |||
32 | If unsure, say M. | 32 | If unsure, say M. |
33 | 33 | ||
34 | config VIRTIO_MMIO | 34 | config VIRTIO_MMIO |
35 | tristate "Platform bus driver for memory mapped virtio devices (EXPERIMENTAL)" | 35 | tristate "Platform bus driver for memory mapped virtio devices" |
36 | depends on HAS_IOMEM && EXPERIMENTAL | 36 | depends on HAS_IOMEM |
37 | select VIRTIO | 37 | select VIRTIO |
38 | ---help--- | 38 | ---help--- |
39 | This drivers provides support for memory mapped virtio | 39 | This drivers provides support for memory mapped virtio |
diff --git a/drivers/vlynq/Kconfig b/drivers/vlynq/Kconfig index d874b4f34136..e01162046598 100644 --- a/drivers/vlynq/Kconfig +++ b/drivers/vlynq/Kconfig | |||
@@ -1,5 +1,5 @@ | |||
1 | menu "TI VLYNQ" | 1 | menu "TI VLYNQ" |
2 | depends on AR7 && EXPERIMENTAL | 2 | depends on AR7 |
3 | 3 | ||
4 | config VLYNQ | 4 | config VLYNQ |
5 | bool "TI VLYNQ bus support" | 5 | bool "TI VLYNQ bus support" |
diff --git a/drivers/w1/masters/omap_hdq.c b/drivers/w1/masters/omap_hdq.c index 184dbce4abd1..db2390aed387 100644 --- a/drivers/w1/masters/omap_hdq.c +++ b/drivers/w1/masters/omap_hdq.c | |||
@@ -560,11 +560,9 @@ static int omap_hdq_probe(struct platform_device *pdev) | |||
560 | return -ENXIO; | 560 | return -ENXIO; |
561 | } | 561 | } |
562 | 562 | ||
563 | hdq_data->hdq_base = devm_request_and_ioremap(dev, res); | 563 | hdq_data->hdq_base = devm_ioremap_resource(dev, res); |
564 | if (!hdq_data->hdq_base) { | 564 | if (IS_ERR(hdq_data->hdq_base)) |
565 | dev_dbg(&pdev->dev, "ioremap failed\n"); | 565 | return PTR_ERR(hdq_data->hdq_base); |
566 | return -ENOMEM; | ||
567 | } | ||
568 | 566 | ||
569 | hdq_data->hdq_usecount = 0; | 567 | hdq_data->hdq_usecount = 0; |
570 | mutex_init(&hdq_data->hdq_mutex); | 568 | mutex_init(&hdq_data->hdq_mutex); |
diff --git a/drivers/watchdog/ar7_wdt.c b/drivers/watchdog/ar7_wdt.c index 3003e2a9580b..2f3cc8fb471a 100644 --- a/drivers/watchdog/ar7_wdt.c +++ b/drivers/watchdog/ar7_wdt.c | |||
@@ -285,11 +285,9 @@ static int ar7_wdt_probe(struct platform_device *pdev) | |||
285 | return -ENODEV; | 285 | return -ENODEV; |
286 | } | 286 | } |
287 | 287 | ||
288 | ar7_wdt = devm_request_and_ioremap(&pdev->dev, ar7_regs_wdt); | 288 | ar7_wdt = devm_ioremap_resource(&pdev->dev, ar7_regs_wdt); |
289 | if (!ar7_wdt) { | 289 | if (IS_ERR(ar7_wdt)) |
290 | pr_err("could not ioremap registers\n"); | 290 | return PTR_ERR(ar7_wdt); |
291 | return -ENXIO; | ||
292 | } | ||
293 | 291 | ||
294 | vbus_clk = clk_get(NULL, "vbus"); | 292 | vbus_clk = clk_get(NULL, "vbus"); |
295 | if (IS_ERR(vbus_clk)) { | 293 | if (IS_ERR(vbus_clk)) { |
diff --git a/drivers/watchdog/at32ap700x_wdt.c b/drivers/watchdog/at32ap700x_wdt.c index 2896430ce42c..7a715e3e6828 100644 --- a/drivers/watchdog/at32ap700x_wdt.c +++ b/drivers/watchdog/at32ap700x_wdt.c | |||
@@ -436,17 +436,7 @@ static struct platform_driver at32_wdt_driver = { | |||
436 | .shutdown = at32_wdt_shutdown, | 436 | .shutdown = at32_wdt_shutdown, |
437 | }; | 437 | }; |
438 | 438 | ||
439 | static int __init at32_wdt_init(void) | 439 | module_platform_driver_probe(at32_wdt_driver, at32_wdt_probe); |
440 | { | ||
441 | return platform_driver_probe(&at32_wdt_driver, at32_wdt_probe); | ||
442 | } | ||
443 | module_init(at32_wdt_init); | ||
444 | |||
445 | static void __exit at32_wdt_exit(void) | ||
446 | { | ||
447 | platform_driver_unregister(&at32_wdt_driver); | ||
448 | } | ||
449 | module_exit(at32_wdt_exit); | ||
450 | 440 | ||
451 | MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>"); | 441 | MODULE_AUTHOR("Hans-Christian Egtvedt <egtvedt@samfundet.no>"); |
452 | MODULE_DESCRIPTION("Watchdog driver for Atmel AT32AP700X"); | 442 | MODULE_DESCRIPTION("Watchdog driver for Atmel AT32AP700X"); |
diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index dc42e44b6bc1..c08933cc565e 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c | |||
@@ -321,18 +321,7 @@ static struct platform_driver at91wdt_driver = { | |||
321 | }, | 321 | }, |
322 | }; | 322 | }; |
323 | 323 | ||
324 | static int __init at91sam_wdt_init(void) | 324 | module_platform_driver_probe(at91wdt_driver, at91wdt_probe); |
325 | { | ||
326 | return platform_driver_probe(&at91wdt_driver, at91wdt_probe); | ||
327 | } | ||
328 | |||
329 | static void __exit at91sam_wdt_exit(void) | ||
330 | { | ||
331 | platform_driver_unregister(&at91wdt_driver); | ||
332 | } | ||
333 | |||
334 | module_init(at91sam_wdt_init); | ||
335 | module_exit(at91sam_wdt_exit); | ||
336 | 325 | ||
337 | MODULE_AUTHOR("Renaud CERRATO <r.cerrato@til-technologies.fr>"); | 326 | MODULE_AUTHOR("Renaud CERRATO <r.cerrato@til-technologies.fr>"); |
338 | MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors"); | 327 | MODULE_DESCRIPTION("Watchdog driver for Atmel AT91SAM9x processors"); |
diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c index cb5da5c3ece2..b9b8a8be6f12 100644 --- a/drivers/watchdog/coh901327_wdt.c +++ b/drivers/watchdog/coh901327_wdt.c | |||
@@ -451,17 +451,7 @@ static struct platform_driver coh901327_driver = { | |||
451 | .resume = coh901327_resume, | 451 | .resume = coh901327_resume, |
452 | }; | 452 | }; |
453 | 453 | ||
454 | static int __init coh901327_init(void) | 454 | module_platform_driver_probe(coh901327_driver, coh901327_probe); |
455 | { | ||
456 | return platform_driver_probe(&coh901327_driver, coh901327_probe); | ||
457 | } | ||
458 | module_init(coh901327_init); | ||
459 | |||
460 | static void __exit coh901327_exit(void) | ||
461 | { | ||
462 | platform_driver_unregister(&coh901327_driver); | ||
463 | } | ||
464 | module_exit(coh901327_exit); | ||
465 | 455 | ||
466 | MODULE_AUTHOR("Linus Walleij <linus.walleij@stericsson.com>"); | 456 | MODULE_AUTHOR("Linus Walleij <linus.walleij@stericsson.com>"); |
467 | MODULE_DESCRIPTION("COH 901 327 Watchdog"); | 457 | MODULE_DESCRIPTION("COH 901 327 Watchdog"); |
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index a0eba3c40e25..203766989382 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c | |||
@@ -301,9 +301,9 @@ static int dw_wdt_drv_probe(struct platform_device *pdev) | |||
301 | if (!mem) | 301 | if (!mem) |
302 | return -EINVAL; | 302 | return -EINVAL; |
303 | 303 | ||
304 | dw_wdt.regs = devm_request_and_ioremap(&pdev->dev, mem); | 304 | dw_wdt.regs = devm_ioremap_resource(&pdev->dev, mem); |
305 | if (!dw_wdt.regs) | 305 | if (IS_ERR(dw_wdt.regs)) |
306 | return -ENOMEM; | 306 | return PTR_ERR(dw_wdt.regs); |
307 | 307 | ||
308 | dw_wdt.clk = clk_get(&pdev->dev, NULL); | 308 | dw_wdt.clk = clk_get(&pdev->dev, NULL); |
309 | if (IS_ERR(dw_wdt.clk)) | 309 | if (IS_ERR(dw_wdt.clk)) |
diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c index 9a45d0294cf4..ff908823688c 100644 --- a/drivers/watchdog/imx2_wdt.c +++ b/drivers/watchdog/imx2_wdt.c | |||
@@ -262,11 +262,9 @@ static int __init imx2_wdt_probe(struct platform_device *pdev) | |||
262 | return -ENODEV; | 262 | return -ENODEV; |
263 | } | 263 | } |
264 | 264 | ||
265 | imx2_wdt.base = devm_request_and_ioremap(&pdev->dev, res); | 265 | imx2_wdt.base = devm_ioremap_resource(&pdev->dev, res); |
266 | if (!imx2_wdt.base) { | 266 | if (IS_ERR(imx2_wdt.base)) |
267 | dev_err(&pdev->dev, "ioremap failed\n"); | 267 | return PTR_ERR(imx2_wdt.base); |
268 | return -ENOMEM; | ||
269 | } | ||
270 | 268 | ||
271 | imx2_wdt.clk = clk_get(&pdev->dev, NULL); | 269 | imx2_wdt.clk = clk_get(&pdev->dev, NULL); |
272 | if (IS_ERR(imx2_wdt.clk)) { | 270 | if (IS_ERR(imx2_wdt.clk)) { |
@@ -342,17 +340,7 @@ static struct platform_driver imx2_wdt_driver = { | |||
342 | }, | 340 | }, |
343 | }; | 341 | }; |
344 | 342 | ||
345 | static int __init imx2_wdt_init(void) | 343 | module_platform_driver_probe(imx2_wdt_driver, imx2_wdt_probe); |
346 | { | ||
347 | return platform_driver_probe(&imx2_wdt_driver, imx2_wdt_probe); | ||
348 | } | ||
349 | module_init(imx2_wdt_init); | ||
350 | |||
351 | static void __exit imx2_wdt_exit(void) | ||
352 | { | ||
353 | platform_driver_unregister(&imx2_wdt_driver); | ||
354 | } | ||
355 | module_exit(imx2_wdt_exit); | ||
356 | 344 | ||
357 | MODULE_AUTHOR("Wolfram Sang"); | 345 | MODULE_AUTHOR("Wolfram Sang"); |
358 | MODULE_DESCRIPTION("Watchdog driver for IMX2 and later"); | 346 | MODULE_DESCRIPTION("Watchdog driver for IMX2 and later"); |
diff --git a/drivers/watchdog/jz4740_wdt.c b/drivers/watchdog/jz4740_wdt.c index a61408fa0c94..1cb25f69a96d 100644 --- a/drivers/watchdog/jz4740_wdt.c +++ b/drivers/watchdog/jz4740_wdt.c | |||
@@ -171,9 +171,9 @@ static int jz4740_wdt_probe(struct platform_device *pdev) | |||
171 | watchdog_set_drvdata(jz4740_wdt, drvdata); | 171 | watchdog_set_drvdata(jz4740_wdt, drvdata); |
172 | 172 | ||
173 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 173 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
174 | drvdata->base = devm_request_and_ioremap(&pdev->dev, res); | 174 | drvdata->base = devm_ioremap_resource(&pdev->dev, res); |
175 | if (drvdata->base == NULL) { | 175 | if (IS_ERR(drvdata->base)) { |
176 | ret = -EBUSY; | 176 | ret = PTR_ERR(drvdata->base); |
177 | goto err_out; | 177 | goto err_out; |
178 | } | 178 | } |
179 | 179 | ||
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c index 79fe01b42339..088fd0c9d888 100644 --- a/drivers/watchdog/lantiq_wdt.c +++ b/drivers/watchdog/lantiq_wdt.c | |||
@@ -197,11 +197,9 @@ ltq_wdt_probe(struct platform_device *pdev) | |||
197 | return -ENOENT; | 197 | return -ENOENT; |
198 | } | 198 | } |
199 | 199 | ||
200 | ltq_wdt_membase = devm_request_and_ioremap(&pdev->dev, res); | 200 | ltq_wdt_membase = devm_ioremap_resource(&pdev->dev, res); |
201 | if (!ltq_wdt_membase) { | 201 | if (IS_ERR(ltq_wdt_membase)) |
202 | dev_err(&pdev->dev, "cannot remap I/O memory region\n"); | 202 | return PTR_ERR(ltq_wdt_membase); |
203 | return -ENOMEM; | ||
204 | } | ||
205 | 203 | ||
206 | /* we do not need to enable the clock as it is always running */ | 204 | /* we do not need to enable the clock as it is always running */ |
207 | clk = clk_get_io(); | 205 | clk = clk_get_io(); |
diff --git a/drivers/watchdog/max63xx_wdt.c b/drivers/watchdog/max63xx_wdt.c index 773c661723ca..cc9d328086ed 100644 --- a/drivers/watchdog/max63xx_wdt.c +++ b/drivers/watchdog/max63xx_wdt.c | |||
@@ -14,6 +14,7 @@ | |||
14 | * another interface, some abstraction will have to be introduced. | 14 | * another interface, some abstraction will have to be introduced. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #include <linux/err.h> | ||
17 | #include <linux/module.h> | 18 | #include <linux/module.h> |
18 | #include <linux/moduleparam.h> | 19 | #include <linux/moduleparam.h> |
19 | #include <linux/types.h> | 20 | #include <linux/types.h> |
@@ -198,9 +199,9 @@ static int max63xx_wdt_probe(struct platform_device *pdev) | |||
198 | heartbeat = current_timeout->twd; | 199 | heartbeat = current_timeout->twd; |
199 | 200 | ||
200 | wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 201 | wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
201 | wdt_base = devm_request_and_ioremap(&pdev->dev, wdt_mem); | 202 | wdt_base = devm_ioremap_resource(&pdev->dev, wdt_mem); |
202 | if (!wdt_base) | 203 | if (IS_ERR(wdt_base)) |
203 | return -ENOMEM; | 204 | return PTR_ERR(wdt_base); |
204 | 205 | ||
205 | max63xx_wdt_dev.timeout = heartbeat; | 206 | max63xx_wdt_dev.timeout = heartbeat; |
206 | watchdog_set_nowayout(&max63xx_wdt_dev, nowayout); | 207 | watchdog_set_nowayout(&max63xx_wdt_dev, nowayout); |
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c index dcba5dab6c29..de1f3fa1d787 100644 --- a/drivers/watchdog/pnx4008_wdt.c +++ b/drivers/watchdog/pnx4008_wdt.c | |||
@@ -155,9 +155,9 @@ static int pnx4008_wdt_probe(struct platform_device *pdev) | |||
155 | heartbeat = DEFAULT_HEARTBEAT; | 155 | heartbeat = DEFAULT_HEARTBEAT; |
156 | 156 | ||
157 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 157 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
158 | wdt_base = devm_request_and_ioremap(&pdev->dev, r); | 158 | wdt_base = devm_ioremap_resource(&pdev->dev, r); |
159 | if (!wdt_base) | 159 | if (IS_ERR(wdt_base)) |
160 | return -EADDRINUSE; | 160 | return PTR_ERR(wdt_base); |
161 | 161 | ||
162 | wdt_clk = clk_get(&pdev->dev, NULL); | 162 | wdt_clk = clk_get(&pdev->dev, NULL); |
163 | if (IS_ERR(wdt_clk)) | 163 | if (IS_ERR(wdt_clk)) |
diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c index 98e16373e640..88f23c5cfddb 100644 --- a/drivers/watchdog/txx9wdt.c +++ b/drivers/watchdog/txx9wdt.c | |||
@@ -121,9 +121,9 @@ static int __init txx9wdt_probe(struct platform_device *dev) | |||
121 | } | 121 | } |
122 | 122 | ||
123 | res = platform_get_resource(dev, IORESOURCE_MEM, 0); | 123 | res = platform_get_resource(dev, IORESOURCE_MEM, 0); |
124 | txx9wdt_reg = devm_request_and_ioremap(&dev->dev, res); | 124 | txx9wdt_reg = devm_ioremap_resource(&dev->dev, res); |
125 | if (!txx9wdt_reg) { | 125 | if (IS_ERR(txx9wdt_reg)) { |
126 | ret = -EBUSY; | 126 | ret = PTR_ERR(txx9wdt_reg); |
127 | goto exit; | 127 | goto exit; |
128 | } | 128 | } |
129 | 129 | ||
@@ -172,18 +172,7 @@ static struct platform_driver txx9wdt_driver = { | |||
172 | }, | 172 | }, |
173 | }; | 173 | }; |
174 | 174 | ||
175 | static int __init watchdog_init(void) | 175 | module_platform_driver_probe(txx9wdt_driver, txx9wdt_probe); |
176 | { | ||
177 | return platform_driver_probe(&txx9wdt_driver, txx9wdt_probe); | ||
178 | } | ||
179 | |||
180 | static void __exit watchdog_exit(void) | ||
181 | { | ||
182 | platform_driver_unregister(&txx9wdt_driver); | ||
183 | } | ||
184 | |||
185 | module_init(watchdog_init); | ||
186 | module_exit(watchdog_exit); | ||
187 | 176 | ||
188 | MODULE_DESCRIPTION("TXx9 Watchdog Driver"); | 177 | MODULE_DESCRIPTION("TXx9 Watchdog Driver"); |
189 | MODULE_LICENSE("GPL"); | 178 | MODULE_LICENSE("GPL"); |
diff --git a/fs/9p/Kconfig b/fs/9p/Kconfig index 0a93dc1cb4ac..55abfd62654a 100644 --- a/fs/9p/Kconfig +++ b/fs/9p/Kconfig | |||
@@ -11,8 +11,7 @@ config 9P_FS | |||
11 | 11 | ||
12 | if 9P_FS | 12 | if 9P_FS |
13 | config 9P_FSCACHE | 13 | config 9P_FSCACHE |
14 | bool "Enable 9P client caching support (EXPERIMENTAL)" | 14 | bool "Enable 9P client caching support" |
15 | depends on EXPERIMENTAL | ||
16 | depends on 9P_FS=m && FSCACHE || 9P_FS=y && FSCACHE=y | 15 | depends on 9P_FS=m && FSCACHE || 9P_FS=y && FSCACHE=y |
17 | help | 16 | help |
18 | Choose Y here to enable persistent, read-only local | 17 | Choose Y here to enable persistent, read-only local |
diff --git a/fs/adfs/Kconfig b/fs/adfs/Kconfig index e55182a74605..c5a7787dd5e9 100644 --- a/fs/adfs/Kconfig +++ b/fs/adfs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config ADFS_FS | 1 | config ADFS_FS |
2 | tristate "ADFS file system support (EXPERIMENTAL)" | 2 | tristate "ADFS file system support" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | help | 4 | help |
5 | The Acorn Disc Filing System is the standard file system of the | 5 | The Acorn Disc Filing System is the standard file system of the |
6 | RiscOS operating system which runs on Acorn's ARM-based Risc PC | 6 | RiscOS operating system which runs on Acorn's ARM-based Risc PC |
diff --git a/fs/affs/Kconfig b/fs/affs/Kconfig index cfad9afb4762..a04d9e848d05 100644 --- a/fs/affs/Kconfig +++ b/fs/affs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config AFFS_FS | 1 | config AFFS_FS |
2 | tristate "Amiga FFS file system support (EXPERIMENTAL)" | 2 | tristate "Amiga FFS file system support" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | help | 4 | help |
5 | The Fast File System (FFS) is the common file system used on hard | 5 | The Fast File System (FFS) is the common file system used on hard |
6 | disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y | 6 | disks by Amiga(tm) systems since AmigaOS Version 1.3 (34.20). Say Y |
diff --git a/fs/afs/Kconfig b/fs/afs/Kconfig index 8f975f25b486..ebba3b18e5da 100644 --- a/fs/afs/Kconfig +++ b/fs/afs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config AFS_FS | 1 | config AFS_FS |
2 | tristate "Andrew File System support (AFS) (EXPERIMENTAL)" | 2 | tristate "Andrew File System support (AFS)" |
3 | depends on INET && EXPERIMENTAL | 3 | depends on INET |
4 | select AF_RXRPC | 4 | select AF_RXRPC |
5 | select DNS_RESOLVER | 5 | select DNS_RESOLVER |
6 | help | 6 | help |
@@ -22,8 +22,7 @@ config AFS_DEBUG | |||
22 | If unsure, say N. | 22 | If unsure, say N. |
23 | 23 | ||
24 | config AFS_FSCACHE | 24 | config AFS_FSCACHE |
25 | bool "Provide AFS client caching support (EXPERIMENTAL)" | 25 | bool "Provide AFS client caching support" |
26 | depends on EXPERIMENTAL | ||
27 | depends on AFS_FS=m && FSCACHE || AFS_FS=y && FSCACHE=y | 26 | depends on AFS_FS=m && FSCACHE || AFS_FS=y && FSCACHE=y |
28 | help | 27 | help |
29 | Say Y here if you want AFS data to be cached locally on disk through | 28 | Say Y here if you want AFS data to be cached locally on disk through |
diff --git a/fs/befs/Kconfig b/fs/befs/Kconfig index 7835d30f211f..edc5cc2aefad 100644 --- a/fs/befs/Kconfig +++ b/fs/befs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config BEFS_FS | 1 | config BEFS_FS |
2 | tristate "BeOS file system (BeFS) support (read only) (EXPERIMENTAL)" | 2 | tristate "BeOS file system (BeFS) support (read only)" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | select NLS | 4 | select NLS |
5 | help | 5 | help |
6 | The BeOS File System (BeFS) is the native file system of Be, Inc's | 6 | The BeOS File System (BeFS) is the native file system of Be, Inc's |
diff --git a/fs/bfs/Kconfig b/fs/bfs/Kconfig index c2336c62024f..3728a6479c64 100644 --- a/fs/bfs/Kconfig +++ b/fs/bfs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config BFS_FS | 1 | config BFS_FS |
2 | tristate "BFS file system support (EXPERIMENTAL)" | 2 | tristate "BFS file system support" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | help | 4 | help |
5 | Boot File System (BFS) is a file system used under SCO UnixWare to | 5 | Boot File System (BFS) is a file system used under SCO UnixWare to |
6 | allow the bootloader access to the kernel image and other important | 6 | allow the bootloader access to the kernel image and other important |
diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig index d33f01c08b60..ccd25ba7a9ac 100644 --- a/fs/btrfs/Kconfig +++ b/fs/btrfs/Kconfig | |||
@@ -1,6 +1,5 @@ | |||
1 | config BTRFS_FS | 1 | config BTRFS_FS |
2 | tristate "Btrfs filesystem (EXPERIMENTAL) Unstable disk format" | 2 | tristate "Btrfs filesystem Unstable disk format" |
3 | depends on EXPERIMENTAL | ||
4 | select LIBCRC32C | 3 | select LIBCRC32C |
5 | select ZLIB_INFLATE | 4 | select ZLIB_INFLATE |
6 | select ZLIB_DEFLATE | 5 | select ZLIB_DEFLATE |
diff --git a/fs/ceph/Kconfig b/fs/ceph/Kconfig index 9eb134ea6eb2..49bc78243db9 100644 --- a/fs/ceph/Kconfig +++ b/fs/ceph/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config CEPH_FS | 1 | config CEPH_FS |
2 | tristate "Ceph distributed file system (EXPERIMENTAL)" | 2 | tristate "Ceph distributed file system" |
3 | depends on INET && EXPERIMENTAL | 3 | depends on INET |
4 | select CEPH_LIB | 4 | select CEPH_LIB |
5 | select LIBCRC32C | 5 | select LIBCRC32C |
6 | select CRYPTO_AES | 6 | select CRYPTO_AES |
diff --git a/fs/cifs/Kconfig b/fs/cifs/Kconfig index 21ff76c22a17..2906ee276408 100644 --- a/fs/cifs/Kconfig +++ b/fs/cifs/Kconfig | |||
@@ -155,14 +155,14 @@ config CIFS_DFS_UPCALL | |||
155 | points. If unsure, say N. | 155 | points. If unsure, say N. |
156 | 156 | ||
157 | config CIFS_NFSD_EXPORT | 157 | config CIFS_NFSD_EXPORT |
158 | bool "Allow nfsd to export CIFS file system (EXPERIMENTAL)" | 158 | bool "Allow nfsd to export CIFS file system" |
159 | depends on CIFS && EXPERIMENTAL && BROKEN | 159 | depends on CIFS && BROKEN |
160 | help | 160 | help |
161 | Allows NFS server to export a CIFS mounted share (nfsd over cifs) | 161 | Allows NFS server to export a CIFS mounted share (nfsd over cifs) |
162 | 162 | ||
163 | config CIFS_SMB2 | 163 | config CIFS_SMB2 |
164 | bool "SMB2 network file system support (EXPERIMENTAL)" | 164 | bool "SMB2 network file system support" |
165 | depends on CIFS && EXPERIMENTAL && INET | 165 | depends on CIFS && INET |
166 | select NLS | 166 | select NLS |
167 | select KEYS | 167 | select KEYS |
168 | select FSCACHE | 168 | select FSCACHE |
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index a5f12b7e228d..0c4f80b447fb 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -322,7 +322,6 @@ static struct dentry *__create_file(const char *name, umode_t mode, | |||
322 | if (!parent) | 322 | if (!parent) |
323 | parent = debugfs_mount->mnt_root; | 323 | parent = debugfs_mount->mnt_root; |
324 | 324 | ||
325 | dentry = NULL; | ||
326 | mutex_lock(&parent->d_inode->i_mutex); | 325 | mutex_lock(&parent->d_inode->i_mutex); |
327 | dentry = lookup_one_len(name, parent, strlen(name)); | 326 | dentry = lookup_one_len(name, parent, strlen(name)); |
328 | if (!IS_ERR(dentry)) { | 327 | if (!IS_ERR(dentry)) { |
diff --git a/fs/ecryptfs/Kconfig b/fs/ecryptfs/Kconfig index cc16562654de..e15ef38c24fa 100644 --- a/fs/ecryptfs/Kconfig +++ b/fs/ecryptfs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config ECRYPT_FS | 1 | config ECRYPT_FS |
2 | tristate "eCrypt filesystem layer support (EXPERIMENTAL)" | 2 | tristate "eCrypt filesystem layer support" |
3 | depends on EXPERIMENTAL && KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) | 3 | depends on KEYS && CRYPTO && (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) |
4 | select CRYPTO_ECB | 4 | select CRYPTO_ECB |
5 | select CRYPTO_CBC | 5 | select CRYPTO_CBC |
6 | select CRYPTO_MD5 | 6 | select CRYPTO_MD5 |
diff --git a/fs/efs/Kconfig b/fs/efs/Kconfig index 6ebfc1c207a8..d020e3c30fea 100644 --- a/fs/efs/Kconfig +++ b/fs/efs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config EFS_FS | 1 | config EFS_FS |
2 | tristate "EFS file system support (read only) (EXPERIMENTAL)" | 2 | tristate "EFS file system support (read only)" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | help | 4 | help |
5 | EFS is an older file system used for non-ISO9660 CD-ROMs and hard | 5 | EFS is an older file system used for non-ISO9660 CD-ROMs and hard |
6 | disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer | 6 | disk partitions by SGI's IRIX operating system (IRIX 6.0 and newer |
diff --git a/fs/hfs/Kconfig b/fs/hfs/Kconfig index b77c5bc20f8a..998e3a6decf3 100644 --- a/fs/hfs/Kconfig +++ b/fs/hfs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config HFS_FS | 1 | config HFS_FS |
2 | tristate "Apple Macintosh file system support (EXPERIMENTAL)" | 2 | tristate "Apple Macintosh file system support" |
3 | depends on BLOCK && EXPERIMENTAL | 3 | depends on BLOCK |
4 | select NLS | 4 | select NLS |
5 | help | 5 | help |
6 | If you say Y here, you will be able to mount Macintosh-formatted | 6 | If you say Y here, you will be able to mount Macintosh-formatted |
diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig index 6ae169cd8faa..d8bb6c411e96 100644 --- a/fs/jffs2/Kconfig +++ b/fs/jffs2/Kconfig | |||
@@ -50,8 +50,8 @@ config JFFS2_FS_WBUF_VERIFY | |||
50 | write-buffer, and check for errors. | 50 | write-buffer, and check for errors. |
51 | 51 | ||
52 | config JFFS2_SUMMARY | 52 | config JFFS2_SUMMARY |
53 | bool "JFFS2 summary support (EXPERIMENTAL)" | 53 | bool "JFFS2 summary support" |
54 | depends on JFFS2_FS && EXPERIMENTAL | 54 | depends on JFFS2_FS |
55 | default n | 55 | default n |
56 | help | 56 | help |
57 | This feature makes it possible to use summary information | 57 | This feature makes it possible to use summary information |
@@ -63,8 +63,8 @@ config JFFS2_SUMMARY | |||
63 | If unsure, say 'N'. | 63 | If unsure, say 'N'. |
64 | 64 | ||
65 | config JFFS2_FS_XATTR | 65 | config JFFS2_FS_XATTR |
66 | bool "JFFS2 XATTR support (EXPERIMENTAL)" | 66 | bool "JFFS2 XATTR support" |
67 | depends on JFFS2_FS && EXPERIMENTAL | 67 | depends on JFFS2_FS |
68 | default n | 68 | default n |
69 | help | 69 | help |
70 | Extended attributes are name:value pairs associated with inodes by | 70 | Extended attributes are name:value pairs associated with inodes by |
@@ -173,7 +173,7 @@ config JFFS2_CMODE_PRIORITY | |||
173 | successful one. | 173 | successful one. |
174 | 174 | ||
175 | config JFFS2_CMODE_SIZE | 175 | config JFFS2_CMODE_SIZE |
176 | bool "size (EXPERIMENTAL)" | 176 | bool "size" |
177 | help | 177 | help |
178 | Tries all compressors and chooses the one which has the smallest | 178 | Tries all compressors and chooses the one which has the smallest |
179 | result. | 179 | result. |
diff --git a/fs/logfs/Kconfig b/fs/logfs/Kconfig index daf9a9b32dd3..09ed066c0221 100644 --- a/fs/logfs/Kconfig +++ b/fs/logfs/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config LOGFS | 1 | config LOGFS |
2 | tristate "LogFS file system (EXPERIMENTAL)" | 2 | tristate "LogFS file system" |
3 | depends on (MTD || BLOCK) && EXPERIMENTAL | 3 | depends on (MTD || BLOCK) |
4 | select ZLIB_INFLATE | 4 | select ZLIB_INFLATE |
5 | select ZLIB_DEFLATE | 5 | select ZLIB_DEFLATE |
6 | select CRC32 | 6 | select CRC32 |
diff --git a/fs/nfsd/Kconfig b/fs/nfsd/Kconfig index 8df1ea4a6ff9..430b6872806f 100644 --- a/fs/nfsd/Kconfig +++ b/fs/nfsd/Kconfig | |||
@@ -65,8 +65,8 @@ config NFSD_V3_ACL | |||
65 | If unsure, say N. | 65 | If unsure, say N. |
66 | 66 | ||
67 | config NFSD_V4 | 67 | config NFSD_V4 |
68 | bool "NFS server support for NFS version 4 (EXPERIMENTAL)" | 68 | bool "NFS server support for NFS version 4" |
69 | depends on NFSD && PROC_FS && EXPERIMENTAL | 69 | depends on NFSD && PROC_FS |
70 | select NFSD_V3 | 70 | select NFSD_V3 |
71 | select FS_POSIX_ACL | 71 | select FS_POSIX_ACL |
72 | select SUNRPC_GSS | 72 | select SUNRPC_GSS |
diff --git a/fs/nilfs2/Kconfig b/fs/nilfs2/Kconfig index 251da07b2a1d..80da8eb27393 100644 --- a/fs/nilfs2/Kconfig +++ b/fs/nilfs2/Kconfig | |||
@@ -1,6 +1,5 @@ | |||
1 | config NILFS2_FS | 1 | config NILFS2_FS |
2 | tristate "NILFS2 file system support (EXPERIMENTAL)" | 2 | tristate "NILFS2 file system support" |
3 | depends on EXPERIMENTAL | ||
4 | select CRC32 | 3 | select CRC32 |
5 | help | 4 | help |
6 | NILFS2 is a log-structured file system (LFS) supporting continuous | 5 | NILFS2 is a log-structured file system (LFS) supporting continuous |
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c index db940a9be045..8d924b5ec733 100644 --- a/fs/sysfs/mount.c +++ b/fs/sysfs/mount.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * Please see Documentation/filesystems/sysfs.txt for more information. | 10 | * Please see Documentation/filesystems/sysfs.txt for more information. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #define DEBUG | 13 | #define DEBUG |
14 | 14 | ||
15 | #include <linux/fs.h> | 15 | #include <linux/fs.h> |
16 | #include <linux/mount.h> | 16 | #include <linux/mount.h> |
diff --git a/fs/ufs/Kconfig b/fs/ufs/Kconfig index e4f10a40768a..0bf6e16f8d79 100644 --- a/fs/ufs/Kconfig +++ b/fs/ufs/Kconfig | |||
@@ -29,7 +29,7 @@ config UFS_FS | |||
29 | 29 | ||
30 | config UFS_FS_WRITE | 30 | config UFS_FS_WRITE |
31 | bool "UFS file system write support (DANGEROUS)" | 31 | bool "UFS file system write support (DANGEROUS)" |
32 | depends on UFS_FS && EXPERIMENTAL | 32 | depends on UFS_FS |
33 | help | 33 | help |
34 | Say Y here if you want to try writing to UFS partitions. This is | 34 | Say Y here if you want to try writing to UFS partitions. This is |
35 | experimental, so you should back up your UFS partitions beforehand. | 35 | experimental, so you should back up your UFS partitions beforehand. |
diff --git a/fs/xfs/Kconfig b/fs/xfs/Kconfig index 5a7ffe54f5d5..cc33aaf219f1 100644 --- a/fs/xfs/Kconfig +++ b/fs/xfs/Kconfig | |||
@@ -70,8 +70,8 @@ config XFS_RT | |||
70 | If unsure, say N. | 70 | If unsure, say N. |
71 | 71 | ||
72 | config XFS_DEBUG | 72 | config XFS_DEBUG |
73 | bool "XFS Debugging support (EXPERIMENTAL)" | 73 | bool "XFS Debugging support" |
74 | depends on XFS_FS && EXPERIMENTAL | 74 | depends on XFS_FS |
75 | help | 75 | help |
76 | Say Y here to get an XFS build with many debugging features, | 76 | Say Y here to get an XFS build with many debugging features, |
77 | including ASSERT checks, function wrappers around macros, | 77 | including ASSERT checks, function wrappers around macros, |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 66c434f5dd1e..63f2465807d4 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -33,7 +33,7 @@ struct debugfs_reg32 { | |||
33 | }; | 33 | }; |
34 | 34 | ||
35 | struct debugfs_regset32 { | 35 | struct debugfs_regset32 { |
36 | struct debugfs_reg32 *regs; | 36 | const struct debugfs_reg32 *regs; |
37 | int nregs; | 37 | int nregs; |
38 | void __iomem *base; | 38 | void __iomem *base; |
39 | }; | 39 | }; |
diff --git a/include/linux/device.h b/include/linux/device.h index 001f6637aa47..9d6464ea99c6 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -396,8 +396,8 @@ extern int class_for_each_device(struct class *class, struct device *start, | |||
396 | void *data, | 396 | void *data, |
397 | int (*fn)(struct device *dev, void *data)); | 397 | int (*fn)(struct device *dev, void *data)); |
398 | extern struct device *class_find_device(struct class *class, | 398 | extern struct device *class_find_device(struct class *class, |
399 | struct device *start, void *data, | 399 | struct device *start, const void *data, |
400 | int (*match)(struct device *, void *)); | 400 | int (*match)(struct device *, const void *)); |
401 | 401 | ||
402 | struct class_attribute { | 402 | struct class_attribute { |
403 | struct attribute attr; | 403 | struct attribute attr; |
@@ -574,6 +574,7 @@ extern int devres_release_group(struct device *dev, void *id); | |||
574 | extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); | 574 | extern void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp); |
575 | extern void devm_kfree(struct device *dev, void *p); | 575 | extern void devm_kfree(struct device *dev, void *p); |
576 | 576 | ||
577 | void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res); | ||
577 | void __iomem *devm_request_and_ioremap(struct device *dev, | 578 | void __iomem *devm_request_and_ioremap(struct device *dev, |
578 | struct resource *res); | 579 | struct resource *res); |
579 | 580 | ||
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index 6dd4787a798a..2fe93b26b42f 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
@@ -95,6 +95,17 @@ do { \ | |||
95 | ##__VA_ARGS__); \ | 95 | ##__VA_ARGS__); \ |
96 | } while (0) | 96 | } while (0) |
97 | 97 | ||
98 | #define dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ | ||
99 | groupsize, buf, len, ascii) \ | ||
100 | do { \ | ||
101 | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, \ | ||
102 | __builtin_constant_p(prefix_str) ? prefix_str : "hexdump");\ | ||
103 | if (unlikely(descriptor.flags & _DPRINTK_FLAGS_PRINT)) \ | ||
104 | print_hex_dump(KERN_DEBUG, prefix_str, \ | ||
105 | prefix_type, rowsize, groupsize, \ | ||
106 | buf, len, ascii); \ | ||
107 | } while (0) | ||
108 | |||
98 | #else | 109 | #else |
99 | 110 | ||
100 | #include <linux/string.h> | 111 | #include <linux/string.h> |
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h index a9ded9a3c175..c082c71f7225 100644 --- a/include/linux/platform_device.h +++ b/include/linux/platform_device.h | |||
@@ -204,6 +204,24 @@ static inline void platform_set_drvdata(struct platform_device *pdev, void *data | |||
204 | module_driver(__platform_driver, platform_driver_register, \ | 204 | module_driver(__platform_driver, platform_driver_register, \ |
205 | platform_driver_unregister) | 205 | platform_driver_unregister) |
206 | 206 | ||
207 | /* module_platform_driver_probe() - Helper macro for drivers that don't do | ||
208 | * anything special in module init/exit. This eliminates a lot of | ||
209 | * boilerplate. Each module may only use this macro once, and | ||
210 | * calling it replaces module_init() and module_exit() | ||
211 | */ | ||
212 | #define module_platform_driver_probe(__platform_driver, __platform_probe) \ | ||
213 | static int __init __platform_driver##_init(void) \ | ||
214 | { \ | ||
215 | return platform_driver_probe(&(__platform_driver), \ | ||
216 | __platform_probe); \ | ||
217 | } \ | ||
218 | module_init(__platform_driver##_init); \ | ||
219 | static void __exit __platform_driver##_exit(void) \ | ||
220 | { \ | ||
221 | platform_driver_unregister(&(__platform_driver)); \ | ||
222 | } \ | ||
223 | module_exit(__platform_driver##_exit); | ||
224 | |||
207 | extern struct platform_device *platform_create_bundle(struct platform_driver *driver, | 225 | extern struct platform_device *platform_create_bundle(struct platform_driver *driver, |
208 | int (*probe)(struct platform_device *), | 226 | int (*probe)(struct platform_device *), |
209 | struct resource *res, unsigned int n_res, | 227 | struct resource *res, unsigned int n_res, |
diff --git a/include/linux/power_supply.h b/include/linux/power_supply.h index 25c0982eb9b1..002a99f96331 100644 --- a/include/linux/power_supply.h +++ b/include/linux/power_supply.h | |||
@@ -226,7 +226,7 @@ struct power_supply_info { | |||
226 | int use_for_apm; | 226 | int use_for_apm; |
227 | }; | 227 | }; |
228 | 228 | ||
229 | extern struct power_supply *power_supply_get_by_name(char *name); | 229 | extern struct power_supply *power_supply_get_by_name(const char *name); |
230 | extern void power_supply_changed(struct power_supply *psy); | 230 | extern void power_supply_changed(struct power_supply *psy); |
231 | extern int power_supply_am_i_supplied(struct power_supply *psy); | 231 | extern int power_supply_am_i_supplied(struct power_supply *psy); |
232 | extern int power_supply_set_battery_charged(struct power_supply *psy); | 232 | extern int power_supply_set_battery_charged(struct power_supply *psy); |
diff --git a/include/linux/printk.h b/include/linux/printk.h index 86c4b6294713..5bef3045218e 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h | |||
@@ -318,8 +318,13 @@ extern void hex_dump_to_buffer(const void *buf, size_t len, | |||
318 | extern void print_hex_dump(const char *level, const char *prefix_str, | 318 | extern void print_hex_dump(const char *level, const char *prefix_str, |
319 | int prefix_type, int rowsize, int groupsize, | 319 | int prefix_type, int rowsize, int groupsize, |
320 | const void *buf, size_t len, bool ascii); | 320 | const void *buf, size_t len, bool ascii); |
321 | #if defined(CONFIG_DYNAMIC_DEBUG) | ||
322 | #define print_hex_dump_bytes(prefix_str, prefix_type, buf, len) \ | ||
323 | dynamic_hex_dump(prefix_str, prefix_type, 16, 1, buf, len, true) | ||
324 | #else | ||
321 | extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, | 325 | extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type, |
322 | const void *buf, size_t len); | 326 | const void *buf, size_t len); |
327 | #endif /* defined(CONFIG_DYNAMIC_DEBUG) */ | ||
323 | #else | 328 | #else |
324 | static inline void print_hex_dump(const char *level, const char *prefix_str, | 329 | static inline void print_hex_dump(const char *level, const char *prefix_str, |
325 | int prefix_type, int rowsize, int groupsize, | 330 | int prefix_type, int rowsize, int groupsize, |
@@ -333,4 +338,16 @@ static inline void print_hex_dump_bytes(const char *prefix_str, int prefix_type, | |||
333 | 338 | ||
334 | #endif | 339 | #endif |
335 | 340 | ||
341 | #if defined(CONFIG_DYNAMIC_DEBUG) | ||
342 | #define print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ | ||
343 | groupsize, buf, len, ascii) \ | ||
344 | dynamic_hex_dump(prefix_str, prefix_type, rowsize, \ | ||
345 | groupsize, buf, len, ascii) | ||
346 | #else | ||
347 | #define print_hex_dump_debug(prefix_str, prefix_type, rowsize, \ | ||
348 | groupsize, buf, len, ascii) \ | ||
349 | print_hex_dump(KERN_DEBUG, prefix_str, prefix_type, rowsize, \ | ||
350 | groupsize, buf, len, ascii) | ||
351 | #endif /* defined(CONFIG_DYNAMIC_DEBUG) */ | ||
352 | |||
336 | #endif | 353 | #endif |
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 11d05f9fe8b6..580b24c8b8ca 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
@@ -149,7 +149,7 @@ extern int rtc_initialize_alarm(struct rtc_device *rtc, | |||
149 | extern void rtc_update_irq(struct rtc_device *rtc, | 149 | extern void rtc_update_irq(struct rtc_device *rtc, |
150 | unsigned long num, unsigned long events); | 150 | unsigned long num, unsigned long events); |
151 | 151 | ||
152 | extern struct rtc_device *rtc_class_open(char *name); | 152 | extern struct rtc_device *rtc_class_open(const char *name); |
153 | extern void rtc_class_close(struct rtc_device *rtc); | 153 | extern void rtc_class_close(struct rtc_device *rtc); |
154 | 154 | ||
155 | extern int rtc_irq_register(struct rtc_device *rtc, | 155 | extern int rtc_irq_register(struct rtc_device *rtc, |
diff --git a/init/Kconfig b/init/Kconfig index 7000d9657402..335a1f680c91 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -29,35 +29,8 @@ config BUILDTIME_EXTABLE_SORT | |||
29 | menu "General setup" | 29 | menu "General setup" |
30 | 30 | ||
31 | config EXPERIMENTAL | 31 | config EXPERIMENTAL |
32 | bool "Prompt for development and/or incomplete code/drivers" | 32 | bool |
33 | ---help--- | 33 | default y |
34 | Some of the various things that Linux supports (such as network | ||
35 | drivers, file systems, network protocols, etc.) can be in a state | ||
36 | of development where the functionality, stability, or the level of | ||
37 | testing is not yet high enough for general use. This is usually | ||
38 | known as the "alpha-test" phase among developers. If a feature is | ||
39 | currently in alpha-test, then the developers usually discourage | ||
40 | uninformed widespread use of this feature by the general public to | ||
41 | avoid "Why doesn't this work?" type mail messages. However, active | ||
42 | testing and use of these systems is welcomed. Just be aware that it | ||
43 | may not meet the normal level of reliability or it may fail to work | ||
44 | in some special cases. Detailed bug reports from people familiar | ||
45 | with the kernel internals are usually welcomed by the developers | ||
46 | (before submitting bug reports, please read the documents | ||
47 | <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, | ||
48 | <file:Documentation/BUG-HUNTING>, and | ||
49 | <file:Documentation/oops-tracing.txt> in the kernel source). | ||
50 | |||
51 | This option will also make obsoleted drivers available. These are | ||
52 | drivers that have been replaced by something else, and/or are | ||
53 | scheduled to be removed in a future kernel release. | ||
54 | |||
55 | Unless you intend to help test and develop a feature or driver that | ||
56 | falls into this category, or you have a situation that requires | ||
57 | using these features, you should probably say N here, which will | ||
58 | cause the configurator to present you with fewer choices. If | ||
59 | you say Y here, you will be offered the choice of using features or | ||
60 | drivers that are currently considered to be in the alpha-test phase. | ||
61 | 34 | ||
62 | config BROKEN | 35 | config BROKEN |
63 | bool | 36 | bool |
@@ -243,7 +216,7 @@ config SYSVIPC_SYSCTL | |||
243 | 216 | ||
244 | config POSIX_MQUEUE | 217 | config POSIX_MQUEUE |
245 | bool "POSIX Message Queues" | 218 | bool "POSIX Message Queues" |
246 | depends on NET && EXPERIMENTAL | 219 | depends on NET |
247 | ---help--- | 220 | ---help--- |
248 | POSIX variant of message queues is a part of IPC. In POSIX message | 221 | POSIX variant of message queues is a part of IPC. In POSIX message |
249 | queues every message has a priority which decides about succession | 222 | queues every message has a priority which decides about succession |
@@ -410,7 +383,7 @@ config BSD_PROCESS_ACCT_V3 | |||
410 | at <http://www.gnu.org/software/acct/>. | 383 | at <http://www.gnu.org/software/acct/>. |
411 | 384 | ||
412 | config TASKSTATS | 385 | config TASKSTATS |
413 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" | 386 | bool "Export task/process statistics through netlink" |
414 | depends on NET | 387 | depends on NET |
415 | default n | 388 | default n |
416 | help | 389 | help |
@@ -423,7 +396,7 @@ config TASKSTATS | |||
423 | Say N if unsure. | 396 | Say N if unsure. |
424 | 397 | ||
425 | config TASK_DELAY_ACCT | 398 | config TASK_DELAY_ACCT |
426 | bool "Enable per-task delay accounting (EXPERIMENTAL)" | 399 | bool "Enable per-task delay accounting" |
427 | depends on TASKSTATS | 400 | depends on TASKSTATS |
428 | help | 401 | help |
429 | Collect information on time spent by a task waiting for system | 402 | Collect information on time spent by a task waiting for system |
@@ -434,7 +407,7 @@ config TASK_DELAY_ACCT | |||
434 | Say N if unsure. | 407 | Say N if unsure. |
435 | 408 | ||
436 | config TASK_XACCT | 409 | config TASK_XACCT |
437 | bool "Enable extended accounting over taskstats (EXPERIMENTAL)" | 410 | bool "Enable extended accounting over taskstats" |
438 | depends on TASKSTATS | 411 | depends on TASKSTATS |
439 | help | 412 | help |
440 | Collect extended task accounting data and send the data | 413 | Collect extended task accounting data and send the data |
@@ -443,7 +416,7 @@ config TASK_XACCT | |||
443 | Say N if unsure. | 416 | Say N if unsure. |
444 | 417 | ||
445 | config TASK_IO_ACCOUNTING | 418 | config TASK_IO_ACCOUNTING |
446 | bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" | 419 | bool "Enable per-task storage I/O accounting" |
447 | depends on TASK_XACCT | 420 | depends on TASK_XACCT |
448 | help | 421 | help |
449 | Collect information on the number of bytes of storage I/O which this | 422 | Collect information on the number of bytes of storage I/O which this |
@@ -907,8 +880,8 @@ config MEMCG_SWAP_ENABLED | |||
907 | select this option (if, for some reason, they need to disable it | 880 | select this option (if, for some reason, they need to disable it |
908 | then swapaccount=0 does the trick). | 881 | then swapaccount=0 does the trick). |
909 | config MEMCG_KMEM | 882 | config MEMCG_KMEM |
910 | bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)" | 883 | bool "Memory Resource Controller Kernel Memory accounting" |
911 | depends on MEMCG && EXPERIMENTAL | 884 | depends on MEMCG |
912 | depends on SLUB || SLAB | 885 | depends on SLUB || SLAB |
913 | help | 886 | help |
914 | The Kernel Memory extension for Memory Resource Controller can limit | 887 | The Kernel Memory extension for Memory Resource Controller can limit |
@@ -920,7 +893,7 @@ config MEMCG_KMEM | |||
920 | 893 | ||
921 | config CGROUP_HUGETLB | 894 | config CGROUP_HUGETLB |
922 | bool "HugeTLB Resource Controller for Control Groups" | 895 | bool "HugeTLB Resource Controller for Control Groups" |
923 | depends on RESOURCE_COUNTERS && HUGETLB_PAGE && EXPERIMENTAL | 896 | depends on RESOURCE_COUNTERS && HUGETLB_PAGE |
924 | default n | 897 | default n |
925 | help | 898 | help |
926 | Provides a cgroup Resource Controller for HugeTLB pages. | 899 | Provides a cgroup Resource Controller for HugeTLB pages. |
@@ -959,7 +932,6 @@ config FAIR_GROUP_SCHED | |||
959 | 932 | ||
960 | config CFS_BANDWIDTH | 933 | config CFS_BANDWIDTH |
961 | bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" | 934 | bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" |
962 | depends on EXPERIMENTAL | ||
963 | depends on FAIR_GROUP_SCHED | 935 | depends on FAIR_GROUP_SCHED |
964 | default n | 936 | default n |
965 | help | 937 | help |
@@ -971,7 +943,6 @@ config CFS_BANDWIDTH | |||
971 | 943 | ||
972 | config RT_GROUP_SCHED | 944 | config RT_GROUP_SCHED |
973 | bool "Group scheduling for SCHED_RR/FIFO" | 945 | bool "Group scheduling for SCHED_RR/FIFO" |
974 | depends on EXPERIMENTAL | ||
975 | depends on CGROUP_SCHED | 946 | depends on CGROUP_SCHED |
976 | default n | 947 | default n |
977 | help | 948 | help |
@@ -1053,8 +1024,7 @@ config IPC_NS | |||
1053 | different IPC objects in different namespaces. | 1024 | different IPC objects in different namespaces. |
1054 | 1025 | ||
1055 | config USER_NS | 1026 | config USER_NS |
1056 | bool "User namespace (EXPERIMENTAL)" | 1027 | bool "User namespace" |
1057 | depends on EXPERIMENTAL | ||
1058 | depends on UIDGID_CONVERTED | 1028 | depends on UIDGID_CONVERTED |
1059 | select UIDGID_STRICT_TYPE_CHECKS | 1029 | select UIDGID_STRICT_TYPE_CHECKS |
1060 | 1030 | ||
@@ -1636,7 +1606,7 @@ config MODULE_UNLOAD | |||
1636 | 1606 | ||
1637 | config MODULE_FORCE_UNLOAD | 1607 | config MODULE_FORCE_UNLOAD |
1638 | bool "Forced module unloading" | 1608 | bool "Forced module unloading" |
1639 | depends on MODULE_UNLOAD && EXPERIMENTAL | 1609 | depends on MODULE_UNLOAD |
1640 | help | 1610 | help |
1641 | This option allows you to force a module to unload, even if the | 1611 | This option allows you to force a module to unload, even if the |
1642 | kernel believes it is unsafe: the kernel will remove the module | 1612 | kernel believes it is unsafe: the kernel will remove the module |
diff --git a/init/do_mounts.c b/init/do_mounts.c index 1d1b6348f903..a2b49f2c1bd8 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c | |||
@@ -81,9 +81,9 @@ struct uuidcmp { | |||
81 | * | 81 | * |
82 | * Returns 1 if the device matches, and 0 otherwise. | 82 | * Returns 1 if the device matches, and 0 otherwise. |
83 | */ | 83 | */ |
84 | static int match_dev_by_uuid(struct device *dev, void *data) | 84 | static int match_dev_by_uuid(struct device *dev, const void *data) |
85 | { | 85 | { |
86 | struct uuidcmp *cmp = data; | 86 | const struct uuidcmp *cmp = data; |
87 | struct hd_struct *part = dev_to_part(dev); | 87 | struct hd_struct *part = dev_to_part(dev); |
88 | 88 | ||
89 | if (!part->info) | 89 | if (!part->info) |
diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig index a92028196cc1..d4da55d1fb65 100644 --- a/kernel/gcov/Kconfig +++ b/kernel/gcov/Kconfig | |||
@@ -35,7 +35,7 @@ config GCOV_KERNEL | |||
35 | config GCOV_PROFILE_ALL | 35 | config GCOV_PROFILE_ALL |
36 | bool "Profile entire Kernel" | 36 | bool "Profile entire Kernel" |
37 | depends on GCOV_KERNEL | 37 | depends on GCOV_KERNEL |
38 | depends on SUPERH || S390 || X86 || (PPC && EXPERIMENTAL) || MICROBLAZE | 38 | depends on SUPERH || S390 || X86 || PPC || MICROBLAZE |
39 | default n | 39 | default n |
40 | ---help--- | 40 | ---help--- |
41 | This options activates profiling for the entire kernel. | 41 | This options activates profiling for the entire kernel. |
diff --git a/kernel/power/suspend_test.c b/kernel/power/suspend_test.c index 25596e450ac7..9b2a1d58558d 100644 --- a/kernel/power/suspend_test.c +++ b/kernel/power/suspend_test.c | |||
@@ -112,7 +112,7 @@ static void __init test_wakealarm(struct rtc_device *rtc, suspend_state_t state) | |||
112 | rtc_set_alarm(rtc, &alm); | 112 | rtc_set_alarm(rtc, &alm); |
113 | } | 113 | } |
114 | 114 | ||
115 | static int __init has_wakealarm(struct device *dev, void *name_ptr) | 115 | static int __init has_wakealarm(struct device *dev, const void *data) |
116 | { | 116 | { |
117 | struct rtc_device *candidate = to_rtc_device(dev); | 117 | struct rtc_device *candidate = to_rtc_device(dev); |
118 | 118 | ||
@@ -121,7 +121,6 @@ static int __init has_wakealarm(struct device *dev, void *name_ptr) | |||
121 | if (!device_may_wakeup(candidate->dev.parent)) | 121 | if (!device_may_wakeup(candidate->dev.parent)) |
122 | return 0; | 122 | return 0; |
123 | 123 | ||
124 | *(const char **)name_ptr = dev_name(dev); | ||
125 | return 1; | 124 | return 1; |
126 | } | 125 | } |
127 | 126 | ||
@@ -159,8 +158,8 @@ static int __init test_suspend(void) | |||
159 | static char warn_no_rtc[] __initdata = | 158 | static char warn_no_rtc[] __initdata = |
160 | KERN_WARNING "PM: no wakealarm-capable RTC driver is ready\n"; | 159 | KERN_WARNING "PM: no wakealarm-capable RTC driver is ready\n"; |
161 | 160 | ||
162 | char *pony = NULL; | ||
163 | struct rtc_device *rtc = NULL; | 161 | struct rtc_device *rtc = NULL; |
162 | struct device *dev; | ||
164 | 163 | ||
165 | /* PM is initialized by now; is that state testable? */ | 164 | /* PM is initialized by now; is that state testable? */ |
166 | if (test_state == PM_SUSPEND_ON) | 165 | if (test_state == PM_SUSPEND_ON) |
@@ -171,9 +170,9 @@ static int __init test_suspend(void) | |||
171 | } | 170 | } |
172 | 171 | ||
173 | /* RTCs have initialized by now too ... can we use one? */ | 172 | /* RTCs have initialized by now too ... can we use one? */ |
174 | class_find_device(rtc_class, NULL, &pony, has_wakealarm); | 173 | dev = class_find_device(rtc_class, NULL, NULL, has_wakealarm); |
175 | if (pony) | 174 | if (dev) |
176 | rtc = rtc_class_open(pony); | 175 | rtc = rtc_class_open(dev_name(dev)); |
177 | if (!rtc) { | 176 | if (!rtc) { |
178 | printk(warn_no_rtc); | 177 | printk(warn_no_rtc); |
179 | goto done; | 178 | goto done; |
diff --git a/lib/Kconfig b/lib/Kconfig index 75cdb77fa49d..3958dc4389f9 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -322,7 +322,7 @@ config CPUMASK_OFFSTACK | |||
322 | 322 | ||
323 | config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | 323 | config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS |
324 | bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS | 324 | bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS |
325 | depends on EXPERIMENTAL && BROKEN | 325 | depends on BROKEN |
326 | 326 | ||
327 | config CPU_RMAP | 327 | config CPU_RMAP |
328 | bool | 328 | bool |
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a1714c897e3f..bb8d9b136cf9 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -455,7 +455,7 @@ config HAVE_DEBUG_KMEMLEAK | |||
455 | 455 | ||
456 | config DEBUG_KMEMLEAK | 456 | config DEBUG_KMEMLEAK |
457 | bool "Kernel memory leak detector" | 457 | bool "Kernel memory leak detector" |
458 | depends on DEBUG_KERNEL && EXPERIMENTAL && HAVE_DEBUG_KMEMLEAK | 458 | depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK |
459 | select DEBUG_FS | 459 | select DEBUG_FS |
460 | select STACKTRACE if STACKTRACE_SUPPORT | 460 | select STACKTRACE if STACKTRACE_SUPPORT |
461 | select KALLSYMS | 461 | select KALLSYMS |
diff --git a/lib/Kconfig.kgdb b/lib/Kconfig.kgdb index 43cb93fa2651..77439eb8528d 100644 --- a/lib/Kconfig.kgdb +++ b/lib/Kconfig.kgdb | |||
@@ -5,7 +5,7 @@ config HAVE_ARCH_KGDB | |||
5 | menuconfig KGDB | 5 | menuconfig KGDB |
6 | bool "KGDB: kernel debugger" | 6 | bool "KGDB: kernel debugger" |
7 | depends on HAVE_ARCH_KGDB | 7 | depends on HAVE_ARCH_KGDB |
8 | depends on DEBUG_KERNEL && EXPERIMENTAL | 8 | depends on DEBUG_KERNEL |
9 | help | 9 | help |
10 | If you say Y here, it will be possible to remotely debug the | 10 | If you say Y here, it will be possible to remotely debug the |
11 | kernel using gdb. It is recommended but not required, that | 11 | kernel using gdb. It is recommended but not required, that |
diff --git a/lib/devres.c b/lib/devres.c index 80b9c76d436a..88ad75952a76 100644 --- a/lib/devres.c +++ b/lib/devres.c | |||
@@ -1,3 +1,4 @@ | |||
1 | #include <linux/err.h> | ||
1 | #include <linux/pci.h> | 2 | #include <linux/pci.h> |
2 | #include <linux/io.h> | 3 | #include <linux/io.h> |
3 | #include <linux/gfp.h> | 4 | #include <linux/gfp.h> |
@@ -86,22 +87,24 @@ void devm_iounmap(struct device *dev, void __iomem *addr) | |||
86 | EXPORT_SYMBOL(devm_iounmap); | 87 | EXPORT_SYMBOL(devm_iounmap); |
87 | 88 | ||
88 | /** | 89 | /** |
89 | * devm_request_and_ioremap() - Check, request region, and ioremap resource | 90 | * devm_ioremap_resource() - check, request region, and ioremap resource |
90 | * @dev: Generic device to handle the resource for | 91 | * @dev: generic device to handle the resource for |
91 | * @res: resource to be handled | 92 | * @res: resource to be handled |
92 | * | 93 | * |
93 | * Takes all necessary steps to ioremap a mem resource. Uses managed device, so | 94 | * Checks that a resource is a valid memory region, requests the memory region |
94 | * everything is undone on driver detach. Checks arguments, so you can feed | 95 | * and ioremaps it either as cacheable or as non-cacheable memory depending on |
95 | * it the result from e.g. platform_get_resource() directly. Returns the | 96 | * the resource's flags. All operations are managed and will be undone on |
96 | * remapped pointer or NULL on error. Usage example: | 97 | * driver detach. |
98 | * | ||
99 | * Returns a pointer to the remapped memory or an ERR_PTR() encoded error code | ||
100 | * on failure. Usage example: | ||
97 | * | 101 | * |
98 | * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 102 | * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
99 | * base = devm_request_and_ioremap(&pdev->dev, res); | 103 | * base = devm_ioremap_resource(&pdev->dev, res); |
100 | * if (!base) | 104 | * if (IS_ERR(base)) |
101 | * return -EADDRNOTAVAIL; | 105 | * return PTR_ERR(base); |
102 | */ | 106 | */ |
103 | void __iomem *devm_request_and_ioremap(struct device *dev, | 107 | void __iomem *devm_ioremap_resource(struct device *dev, struct resource *res) |
104 | struct resource *res) | ||
105 | { | 108 | { |
106 | resource_size_t size; | 109 | resource_size_t size; |
107 | const char *name; | 110 | const char *name; |
@@ -111,7 +114,7 @@ void __iomem *devm_request_and_ioremap(struct device *dev, | |||
111 | 114 | ||
112 | if (!res || resource_type(res) != IORESOURCE_MEM) { | 115 | if (!res || resource_type(res) != IORESOURCE_MEM) { |
113 | dev_err(dev, "invalid resource\n"); | 116 | dev_err(dev, "invalid resource\n"); |
114 | return NULL; | 117 | return ERR_PTR(-EINVAL); |
115 | } | 118 | } |
116 | 119 | ||
117 | size = resource_size(res); | 120 | size = resource_size(res); |
@@ -119,7 +122,7 @@ void __iomem *devm_request_and_ioremap(struct device *dev, | |||
119 | 122 | ||
120 | if (!devm_request_mem_region(dev, res->start, size, name)) { | 123 | if (!devm_request_mem_region(dev, res->start, size, name)) { |
121 | dev_err(dev, "can't request region for resource %pR\n", res); | 124 | dev_err(dev, "can't request region for resource %pR\n", res); |
122 | return NULL; | 125 | return ERR_PTR(-EBUSY); |
123 | } | 126 | } |
124 | 127 | ||
125 | if (res->flags & IORESOURCE_CACHEABLE) | 128 | if (res->flags & IORESOURCE_CACHEABLE) |
@@ -130,10 +133,39 @@ void __iomem *devm_request_and_ioremap(struct device *dev, | |||
130 | if (!dest_ptr) { | 133 | if (!dest_ptr) { |
131 | dev_err(dev, "ioremap failed for resource %pR\n", res); | 134 | dev_err(dev, "ioremap failed for resource %pR\n", res); |
132 | devm_release_mem_region(dev, res->start, size); | 135 | devm_release_mem_region(dev, res->start, size); |
136 | dest_ptr = ERR_PTR(-ENOMEM); | ||
133 | } | 137 | } |
134 | 138 | ||
135 | return dest_ptr; | 139 | return dest_ptr; |
136 | } | 140 | } |
141 | EXPORT_SYMBOL(devm_ioremap_resource); | ||
142 | |||
143 | /** | ||
144 | * devm_request_and_ioremap() - Check, request region, and ioremap resource | ||
145 | * @dev: Generic device to handle the resource for | ||
146 | * @res: resource to be handled | ||
147 | * | ||
148 | * Takes all necessary steps to ioremap a mem resource. Uses managed device, so | ||
149 | * everything is undone on driver detach. Checks arguments, so you can feed | ||
150 | * it the result from e.g. platform_get_resource() directly. Returns the | ||
151 | * remapped pointer or NULL on error. Usage example: | ||
152 | * | ||
153 | * res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
154 | * base = devm_request_and_ioremap(&pdev->dev, res); | ||
155 | * if (!base) | ||
156 | * return -EADDRNOTAVAIL; | ||
157 | */ | ||
158 | void __iomem *devm_request_and_ioremap(struct device *device, | ||
159 | struct resource *res) | ||
160 | { | ||
161 | void __iomem *dest_ptr; | ||
162 | |||
163 | dest_ptr = devm_ioremap_resource(device, res); | ||
164 | if (IS_ERR(dest_ptr)) | ||
165 | return NULL; | ||
166 | |||
167 | return dest_ptr; | ||
168 | } | ||
137 | EXPORT_SYMBOL(devm_request_and_ioremap); | 169 | EXPORT_SYMBOL(devm_request_and_ioremap); |
138 | 170 | ||
139 | #ifdef CONFIG_HAS_IOPORT | 171 | #ifdef CONFIG_HAS_IOPORT |
diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 1db1fc660538..5276b99ca650 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c | |||
@@ -59,7 +59,7 @@ struct ddebug_iter { | |||
59 | 59 | ||
60 | static DEFINE_MUTEX(ddebug_lock); | 60 | static DEFINE_MUTEX(ddebug_lock); |
61 | static LIST_HEAD(ddebug_tables); | 61 | static LIST_HEAD(ddebug_tables); |
62 | static int verbose = 0; | 62 | static int verbose; |
63 | module_param(verbose, int, 0644); | 63 | module_param(verbose, int, 0644); |
64 | 64 | ||
65 | /* Return the path relative to source root */ | 65 | /* Return the path relative to source root */ |
@@ -100,24 +100,32 @@ static char *ddebug_describe_flags(struct _ddebug *dp, char *buf, | |||
100 | return buf; | 100 | return buf; |
101 | } | 101 | } |
102 | 102 | ||
103 | #define vpr_info(fmt, ...) \ | 103 | #define vpr_info(fmt, ...) \ |
104 | if (verbose) do { pr_info(fmt, ##__VA_ARGS__); } while (0) | ||
105 | |||
106 | #define vpr_info_dq(q, msg) \ | ||
107 | do { \ | 104 | do { \ |
108 | /* trim last char off format print */ \ | 105 | if (verbose) \ |
109 | vpr_info("%s: func=\"%s\" file=\"%s\" " \ | 106 | pr_info(fmt, ##__VA_ARGS__); \ |
110 | "module=\"%s\" format=\"%.*s\" " \ | ||
111 | "lineno=%u-%u", \ | ||
112 | msg, \ | ||
113 | q->function ? q->function : "", \ | ||
114 | q->filename ? q->filename : "", \ | ||
115 | q->module ? q->module : "", \ | ||
116 | (int)(q->format ? strlen(q->format) - 1 : 0), \ | ||
117 | q->format ? q->format : "", \ | ||
118 | q->first_lineno, q->last_lineno); \ | ||
119 | } while (0) | 107 | } while (0) |
120 | 108 | ||
109 | static void vpr_info_dq(const struct ddebug_query *query, const char *msg) | ||
110 | { | ||
111 | /* trim any trailing newlines */ | ||
112 | int fmtlen = 0; | ||
113 | |||
114 | if (query->format) { | ||
115 | fmtlen = strlen(query->format); | ||
116 | while (fmtlen && query->format[fmtlen - 1] == '\n') | ||
117 | fmtlen--; | ||
118 | } | ||
119 | |||
120 | vpr_info("%s: func=\"%s\" file=\"%s\" module=\"%s\" format=\"%.*s\" lineno=%u-%u\n", | ||
121 | msg, | ||
122 | query->function ? query->function : "", | ||
123 | query->filename ? query->filename : "", | ||
124 | query->module ? query->module : "", | ||
125 | fmtlen, query->format ? query->format : "", | ||
126 | query->first_lineno, query->last_lineno); | ||
127 | } | ||
128 | |||
121 | /* | 129 | /* |
122 | * Search the tables for _ddebug's which match the given `query' and | 130 | * Search the tables for _ddebug's which match the given `query' and |
123 | * apply the `flags' and `mask' to them. Returns number of matching | 131 | * apply the `flags' and `mask' to them. Returns number of matching |
@@ -141,7 +149,7 @@ static int ddebug_change(const struct ddebug_query *query, | |||
141 | if (query->module && strcmp(query->module, dt->mod_name)) | 149 | if (query->module && strcmp(query->module, dt->mod_name)) |
142 | continue; | 150 | continue; |
143 | 151 | ||
144 | for (i = 0 ; i < dt->num_ddebugs ; i++) { | 152 | for (i = 0; i < dt->num_ddebugs; i++) { |
145 | struct _ddebug *dp = &dt->ddebugs[i]; | 153 | struct _ddebug *dp = &dt->ddebugs[i]; |
146 | 154 | ||
147 | /* match against the source filename */ | 155 | /* match against the source filename */ |
@@ -176,10 +184,10 @@ static int ddebug_change(const struct ddebug_query *query, | |||
176 | continue; | 184 | continue; |
177 | dp->flags = newflags; | 185 | dp->flags = newflags; |
178 | vpr_info("changed %s:%d [%s]%s =%s\n", | 186 | vpr_info("changed %s:%d [%s]%s =%s\n", |
179 | trim_prefix(dp->filename), dp->lineno, | 187 | trim_prefix(dp->filename), dp->lineno, |
180 | dt->mod_name, dp->function, | 188 | dt->mod_name, dp->function, |
181 | ddebug_describe_flags(dp, flagbuf, | 189 | ddebug_describe_flags(dp, flagbuf, |
182 | sizeof(flagbuf))); | 190 | sizeof(flagbuf))); |
183 | } | 191 | } |
184 | } | 192 | } |
185 | mutex_unlock(&ddebug_lock); | 193 | mutex_unlock(&ddebug_lock); |
@@ -213,19 +221,23 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords) | |||
213 | /* find `end' of word, whitespace separated or quoted */ | 221 | /* find `end' of word, whitespace separated or quoted */ |
214 | if (*buf == '"' || *buf == '\'') { | 222 | if (*buf == '"' || *buf == '\'') { |
215 | int quote = *buf++; | 223 | int quote = *buf++; |
216 | for (end = buf ; *end && *end != quote ; end++) | 224 | for (end = buf; *end && *end != quote; end++) |
217 | ; | 225 | ; |
218 | if (!*end) | 226 | if (!*end) { |
227 | pr_err("unclosed quote: %s\n", buf); | ||
219 | return -EINVAL; /* unclosed quote */ | 228 | return -EINVAL; /* unclosed quote */ |
229 | } | ||
220 | } else { | 230 | } else { |
221 | for (end = buf ; *end && !isspace(*end) ; end++) | 231 | for (end = buf; *end && !isspace(*end); end++) |
222 | ; | 232 | ; |
223 | BUG_ON(end == buf); | 233 | BUG_ON(end == buf); |
224 | } | 234 | } |
225 | 235 | ||
226 | /* `buf' is start of word, `end' is one past its end */ | 236 | /* `buf' is start of word, `end' is one past its end */ |
227 | if (nwords == maxwords) | 237 | if (nwords == maxwords) { |
238 | pr_err("too many words, legal max <=%d\n", maxwords); | ||
228 | return -EINVAL; /* ran out of words[] before bytes */ | 239 | return -EINVAL; /* ran out of words[] before bytes */ |
240 | } | ||
229 | if (*end) | 241 | if (*end) |
230 | *end++ = '\0'; /* terminate the word */ | 242 | *end++ = '\0'; /* terminate the word */ |
231 | words[nwords++] = buf; | 243 | words[nwords++] = buf; |
@@ -235,7 +247,7 @@ static int ddebug_tokenize(char *buf, char *words[], int maxwords) | |||
235 | if (verbose) { | 247 | if (verbose) { |
236 | int i; | 248 | int i; |
237 | pr_info("split into words:"); | 249 | pr_info("split into words:"); |
238 | for (i = 0 ; i < nwords ; i++) | 250 | for (i = 0; i < nwords; i++) |
239 | pr_cont(" \"%s\"", words[i]); | 251 | pr_cont(" \"%s\"", words[i]); |
240 | pr_cont("\n"); | 252 | pr_cont("\n"); |
241 | } | 253 | } |
@@ -257,7 +269,11 @@ static inline int parse_lineno(const char *str, unsigned int *val) | |||
257 | return 0; | 269 | return 0; |
258 | } | 270 | } |
259 | *val = simple_strtoul(str, &end, 10); | 271 | *val = simple_strtoul(str, &end, 10); |
260 | return end == NULL || end == str || *end != '\0' ? -EINVAL : 0; | 272 | if (end == NULL || end == str || *end != '\0') { |
273 | pr_err("bad line-number: %s\n", str); | ||
274 | return -EINVAL; | ||
275 | } | ||
276 | return 0; | ||
261 | } | 277 | } |
262 | 278 | ||
263 | /* | 279 | /* |
@@ -286,11 +302,11 @@ static char *unescape(char *str) | |||
286 | in += 2; | 302 | in += 2; |
287 | continue; | 303 | continue; |
288 | } else if (isodigit(in[1]) && | 304 | } else if (isodigit(in[1]) && |
289 | isodigit(in[2]) && | 305 | isodigit(in[2]) && |
290 | isodigit(in[3])) { | 306 | isodigit(in[3])) { |
291 | *out++ = ((in[1] - '0')<<6) | | 307 | *out++ = (((in[1] - '0') << 6) | |
292 | ((in[2] - '0')<<3) | | 308 | ((in[2] - '0') << 3) | |
293 | (in[3] - '0'); | 309 | (in[3] - '0')); |
294 | in += 4; | 310 | in += 4; |
295 | continue; | 311 | continue; |
296 | } | 312 | } |
@@ -308,8 +324,8 @@ static int check_set(const char **dest, char *src, char *name) | |||
308 | 324 | ||
309 | if (*dest) { | 325 | if (*dest) { |
310 | rc = -EINVAL; | 326 | rc = -EINVAL; |
311 | pr_err("match-spec:%s val:%s overridden by %s", | 327 | pr_err("match-spec:%s val:%s overridden by %s\n", |
312 | name, *dest, src); | 328 | name, *dest, src); |
313 | } | 329 | } |
314 | *dest = src; | 330 | *dest = src; |
315 | return rc; | 331 | return rc; |
@@ -337,40 +353,46 @@ static int ddebug_parse_query(char *words[], int nwords, | |||
337 | int rc; | 353 | int rc; |
338 | 354 | ||
339 | /* check we have an even number of words */ | 355 | /* check we have an even number of words */ |
340 | if (nwords % 2 != 0) | 356 | if (nwords % 2 != 0) { |
357 | pr_err("expecting pairs of match-spec <value>\n"); | ||
341 | return -EINVAL; | 358 | return -EINVAL; |
359 | } | ||
342 | memset(query, 0, sizeof(*query)); | 360 | memset(query, 0, sizeof(*query)); |
343 | 361 | ||
344 | if (modname) | 362 | if (modname) |
345 | /* support $modname.dyndbg=<multiple queries> */ | 363 | /* support $modname.dyndbg=<multiple queries> */ |
346 | query->module = modname; | 364 | query->module = modname; |
347 | 365 | ||
348 | for (i = 0 ; i < nwords ; i += 2) { | 366 | for (i = 0; i < nwords; i += 2) { |
349 | if (!strcmp(words[i], "func")) | 367 | if (!strcmp(words[i], "func")) { |
350 | rc = check_set(&query->function, words[i+1], "func"); | 368 | rc = check_set(&query->function, words[i+1], "func"); |
351 | else if (!strcmp(words[i], "file")) | 369 | } else if (!strcmp(words[i], "file")) { |
352 | rc = check_set(&query->filename, words[i+1], "file"); | 370 | rc = check_set(&query->filename, words[i+1], "file"); |
353 | else if (!strcmp(words[i], "module")) | 371 | } else if (!strcmp(words[i], "module")) { |
354 | rc = check_set(&query->module, words[i+1], "module"); | 372 | rc = check_set(&query->module, words[i+1], "module"); |
355 | else if (!strcmp(words[i], "format")) | 373 | } else if (!strcmp(words[i], "format")) { |
356 | rc = check_set(&query->format, unescape(words[i+1]), | 374 | rc = check_set(&query->format, unescape(words[i+1]), |
357 | "format"); | 375 | "format"); |
358 | else if (!strcmp(words[i], "line")) { | 376 | } else if (!strcmp(words[i], "line")) { |
359 | char *first = words[i+1]; | 377 | char *first = words[i+1]; |
360 | char *last = strchr(first, '-'); | 378 | char *last = strchr(first, '-'); |
361 | if (query->first_lineno || query->last_lineno) { | 379 | if (query->first_lineno || query->last_lineno) { |
362 | pr_err("match-spec:line given 2 times\n"); | 380 | pr_err("match-spec: line used 2x\n"); |
363 | return -EINVAL; | 381 | return -EINVAL; |
364 | } | 382 | } |
365 | if (last) | 383 | if (last) |
366 | *last++ = '\0'; | 384 | *last++ = '\0'; |
367 | if (parse_lineno(first, &query->first_lineno) < 0) | 385 | if (parse_lineno(first, &query->first_lineno) < 0) { |
386 | pr_err("line-number is <0\n"); | ||
368 | return -EINVAL; | 387 | return -EINVAL; |
388 | } | ||
369 | if (last) { | 389 | if (last) { |
370 | /* range <first>-<last> */ | 390 | /* range <first>-<last> */ |
371 | if (parse_lineno(last, &query->last_lineno) | 391 | if (parse_lineno(last, &query->last_lineno) |
372 | < query->first_lineno) { | 392 | < query->first_lineno) { |
373 | pr_err("last-line < 1st-line\n"); | 393 | pr_err("last-line:%d < 1st-line:%d\n", |
394 | query->last_lineno, | ||
395 | query->first_lineno); | ||
374 | return -EINVAL; | 396 | return -EINVAL; |
375 | } | 397 | } |
376 | } else { | 398 | } else { |
@@ -406,19 +428,22 @@ static int ddebug_parse_flags(const char *str, unsigned int *flagsp, | |||
406 | op = *str++; | 428 | op = *str++; |
407 | break; | 429 | break; |
408 | default: | 430 | default: |
431 | pr_err("bad flag-op %c, at start of %s\n", *str, str); | ||
409 | return -EINVAL; | 432 | return -EINVAL; |
410 | } | 433 | } |
411 | vpr_info("op='%c'\n", op); | 434 | vpr_info("op='%c'\n", op); |
412 | 435 | ||
413 | for ( ; *str ; ++str) { | 436 | for (; *str ; ++str) { |
414 | for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) { | 437 | for (i = ARRAY_SIZE(opt_array) - 1; i >= 0; i--) { |
415 | if (*str == opt_array[i].opt_char) { | 438 | if (*str == opt_array[i].opt_char) { |
416 | flags |= opt_array[i].flag; | 439 | flags |= opt_array[i].flag; |
417 | break; | 440 | break; |
418 | } | 441 | } |
419 | } | 442 | } |
420 | if (i < 0) | 443 | if (i < 0) { |
444 | pr_err("unknown flag '%c' in \"%s\"\n", *str, str); | ||
421 | return -EINVAL; | 445 | return -EINVAL; |
446 | } | ||
422 | } | 447 | } |
423 | vpr_info("flags=0x%x\n", flags); | 448 | vpr_info("flags=0x%x\n", flags); |
424 | 449 | ||
@@ -450,16 +475,22 @@ static int ddebug_exec_query(char *query_string, const char *modname) | |||
450 | char *words[MAXWORDS]; | 475 | char *words[MAXWORDS]; |
451 | 476 | ||
452 | nwords = ddebug_tokenize(query_string, words, MAXWORDS); | 477 | nwords = ddebug_tokenize(query_string, words, MAXWORDS); |
453 | if (nwords <= 0) | 478 | if (nwords <= 0) { |
479 | pr_err("tokenize failed\n"); | ||
454 | return -EINVAL; | 480 | return -EINVAL; |
455 | if (ddebug_parse_query(words, nwords-1, &query, modname)) | 481 | } |
482 | /* check flags 1st (last arg) so query is pairs of spec,val */ | ||
483 | if (ddebug_parse_flags(words[nwords-1], &flags, &mask)) { | ||
484 | pr_err("flags parse failed\n"); | ||
456 | return -EINVAL; | 485 | return -EINVAL; |
457 | if (ddebug_parse_flags(words[nwords-1], &flags, &mask)) | 486 | } |
487 | if (ddebug_parse_query(words, nwords-1, &query, modname)) { | ||
488 | pr_err("query parse failed\n"); | ||
458 | return -EINVAL; | 489 | return -EINVAL; |
459 | 490 | } | |
460 | /* actually go and implement the change */ | 491 | /* actually go and implement the change */ |
461 | nfound = ddebug_change(&query, flags, mask); | 492 | nfound = ddebug_change(&query, flags, mask); |
462 | vpr_info_dq((&query), (nfound) ? "applied" : "no-match"); | 493 | vpr_info_dq(&query, nfound ? "applied" : "no-match"); |
463 | 494 | ||
464 | return nfound; | 495 | return nfound; |
465 | } | 496 | } |
@@ -488,8 +519,9 @@ static int ddebug_exec_queries(char *query, const char *modname) | |||
488 | if (rc < 0) { | 519 | if (rc < 0) { |
489 | errs++; | 520 | errs++; |
490 | exitcode = rc; | 521 | exitcode = rc; |
491 | } else | 522 | } else { |
492 | nfound += rc; | 523 | nfound += rc; |
524 | } | ||
493 | i++; | 525 | i++; |
494 | } | 526 | } |
495 | vpr_info("processed %d queries, with %d matches, %d errs\n", | 527 | vpr_info("processed %d queries, with %d matches, %d errs\n", |
@@ -765,7 +797,7 @@ static void *ddebug_proc_next(struct seq_file *m, void *p, loff_t *pos) | |||
765 | struct _ddebug *dp; | 797 | struct _ddebug *dp; |
766 | 798 | ||
767 | vpr_info("called m=%p p=%p *pos=%lld\n", | 799 | vpr_info("called m=%p p=%p *pos=%lld\n", |
768 | m, p, (unsigned long long)*pos); | 800 | m, p, (unsigned long long)*pos); |
769 | 801 | ||
770 | if (p == SEQ_START_TOKEN) | 802 | if (p == SEQ_START_TOKEN) |
771 | dp = ddebug_iter_first(iter); | 803 | dp = ddebug_iter_first(iter); |
@@ -791,14 +823,14 @@ static int ddebug_proc_show(struct seq_file *m, void *p) | |||
791 | 823 | ||
792 | if (p == SEQ_START_TOKEN) { | 824 | if (p == SEQ_START_TOKEN) { |
793 | seq_puts(m, | 825 | seq_puts(m, |
794 | "# filename:lineno [module]function flags format\n"); | 826 | "# filename:lineno [module]function flags format\n"); |
795 | return 0; | 827 | return 0; |
796 | } | 828 | } |
797 | 829 | ||
798 | seq_printf(m, "%s:%u [%s]%s =%s \"", | 830 | seq_printf(m, "%s:%u [%s]%s =%s \"", |
799 | trim_prefix(dp->filename), dp->lineno, | 831 | trim_prefix(dp->filename), dp->lineno, |
800 | iter->table->mod_name, dp->function, | 832 | iter->table->mod_name, dp->function, |
801 | ddebug_describe_flags(dp, flagsbuf, sizeof(flagsbuf))); | 833 | ddebug_describe_flags(dp, flagsbuf, sizeof(flagsbuf))); |
802 | seq_escape(m, dp->format, "\t\r\n\""); | 834 | seq_escape(m, dp->format, "\t\r\n\""); |
803 | seq_puts(m, "\"\n"); | 835 | seq_puts(m, "\"\n"); |
804 | 836 | ||
@@ -845,7 +877,7 @@ static int ddebug_proc_open(struct inode *inode, struct file *file) | |||
845 | kfree(iter); | 877 | kfree(iter); |
846 | return err; | 878 | return err; |
847 | } | 879 | } |
848 | ((struct seq_file *) file->private_data)->private = iter; | 880 | ((struct seq_file *)file->private_data)->private = iter; |
849 | return 0; | 881 | return 0; |
850 | } | 882 | } |
851 | 883 | ||
@@ -1002,8 +1034,7 @@ static int __init dynamic_debug_init(void) | |||
1002 | int verbose_bytes = 0; | 1034 | int verbose_bytes = 0; |
1003 | 1035 | ||
1004 | if (__start___verbose == __stop___verbose) { | 1036 | if (__start___verbose == __stop___verbose) { |
1005 | pr_warn("_ddebug table is empty in a " | 1037 | pr_warn("_ddebug table is empty in a CONFIG_DYNAMIC_DEBUG build\n"); |
1006 | "CONFIG_DYNAMIC_DEBUG build"); | ||
1007 | return 1; | 1038 | return 1; |
1008 | } | 1039 | } |
1009 | iter = __start___verbose; | 1040 | iter = __start___verbose; |
@@ -1030,18 +1061,16 @@ static int __init dynamic_debug_init(void) | |||
1030 | goto out_err; | 1061 | goto out_err; |
1031 | 1062 | ||
1032 | ddebug_init_success = 1; | 1063 | ddebug_init_success = 1; |
1033 | vpr_info("%d modules, %d entries and %d bytes in ddebug tables," | 1064 | vpr_info("%d modules, %d entries and %d bytes in ddebug tables, %d bytes in (readonly) verbose section\n", |
1034 | " %d bytes in (readonly) verbose section\n", | 1065 | modct, entries, (int)(modct * sizeof(struct ddebug_table)), |
1035 | modct, entries, (int)( modct * sizeof(struct ddebug_table)), | 1066 | verbose_bytes + (int)(__stop___verbose - __start___verbose)); |
1036 | verbose_bytes + (int)(__stop___verbose - __start___verbose)); | ||
1037 | 1067 | ||
1038 | /* apply ddebug_query boot param, dont unload tables on err */ | 1068 | /* apply ddebug_query boot param, dont unload tables on err */ |
1039 | if (ddebug_setup_string[0] != '\0') { | 1069 | if (ddebug_setup_string[0] != '\0') { |
1040 | pr_warn("ddebug_query param name is deprecated," | 1070 | pr_warn("ddebug_query param name is deprecated, change it to dyndbg\n"); |
1041 | " change it to dyndbg\n"); | ||
1042 | ret = ddebug_exec_queries(ddebug_setup_string, NULL); | 1071 | ret = ddebug_exec_queries(ddebug_setup_string, NULL); |
1043 | if (ret < 0) | 1072 | if (ret < 0) |
1044 | pr_warn("Invalid ddebug boot param %s", | 1073 | pr_warn("Invalid ddebug boot param %s\n", |
1045 | ddebug_setup_string); | 1074 | ddebug_setup_string); |
1046 | else | 1075 | else |
1047 | pr_info("%d changes by ddebug_query\n", ret); | 1076 | pr_info("%d changes by ddebug_query\n", ret); |
diff --git a/lib/hexdump.c b/lib/hexdump.c index 6540d657dca4..3f0494c9d57a 100644 --- a/lib/hexdump.c +++ b/lib/hexdump.c | |||
@@ -227,6 +227,7 @@ void print_hex_dump(const char *level, const char *prefix_str, int prefix_type, | |||
227 | } | 227 | } |
228 | EXPORT_SYMBOL(print_hex_dump); | 228 | EXPORT_SYMBOL(print_hex_dump); |
229 | 229 | ||
230 | #if !defined(CONFIG_DYNAMIC_DEBUG) | ||
230 | /** | 231 | /** |
231 | * print_hex_dump_bytes - shorthand form of print_hex_dump() with default params | 232 | * print_hex_dump_bytes - shorthand form of print_hex_dump() with default params |
232 | * @prefix_str: string to prefix each line with; | 233 | * @prefix_str: string to prefix each line with; |
@@ -246,4 +247,5 @@ void print_hex_dump_bytes(const char *prefix_str, int prefix_type, | |||
246 | buf, len, true); | 247 | buf, len, true); |
247 | } | 248 | } |
248 | EXPORT_SYMBOL(print_hex_dump_bytes); | 249 | EXPORT_SYMBOL(print_hex_dump_bytes); |
249 | #endif | 250 | #endif /* !defined(CONFIG_DYNAMIC_DEBUG) */ |
251 | #endif /* defined(CONFIG_PRINTK) */ | ||
diff --git a/mm/Kconfig b/mm/Kconfig index 278e3ab1f169..308fdcaeed77 100644 --- a/mm/Kconfig +++ b/mm/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config SELECT_MEMORY_MODEL | 1 | config SELECT_MEMORY_MODEL |
2 | def_bool y | 2 | def_bool y |
3 | depends on EXPERIMENTAL || ARCH_SELECT_MEMORY_MODEL | 3 | depends on ARCH_SELECT_MEMORY_MODEL |
4 | 4 | ||
5 | choice | 5 | choice |
6 | prompt "Memory model" | 6 | prompt "Memory model" |
diff --git a/net/9p/Kconfig b/net/9p/Kconfig index d9ea09b11cf8..a75174a33723 100644 --- a/net/9p/Kconfig +++ b/net/9p/Kconfig | |||
@@ -23,7 +23,7 @@ config NET_9P_VIRTIO | |||
23 | guest partitions and a host partition. | 23 | guest partitions and a host partition. |
24 | 24 | ||
25 | config NET_9P_RDMA | 25 | config NET_9P_RDMA |
26 | depends on INET && INFINIBAND && INFINIBAND_ADDR_TRANS && EXPERIMENTAL | 26 | depends on INET && INFINIBAND && INFINIBAND_ADDR_TRANS |
27 | tristate "9P RDMA Transport (Experimental)" | 27 | tristate "9P RDMA Transport (Experimental)" |
28 | help | 28 | help |
29 | This builds support for an RDMA transport. | 29 | This builds support for an RDMA transport. |
diff --git a/net/Kconfig b/net/Kconfig index 5a1888bb036d..6f676ab885be 100644 --- a/net/Kconfig +++ b/net/Kconfig | |||
@@ -90,7 +90,6 @@ config NETWORK_SECMARK | |||
90 | 90 | ||
91 | config NETWORK_PHY_TIMESTAMPING | 91 | config NETWORK_PHY_TIMESTAMPING |
92 | bool "Timestamping in PHY devices" | 92 | bool "Timestamping in PHY devices" |
93 | depends on EXPERIMENTAL | ||
94 | help | 93 | help |
95 | This allows timestamping of network packets by PHYs with | 94 | This allows timestamping of network packets by PHYs with |
96 | hardware timestamping capabilities. This option adds some | 95 | hardware timestamping capabilities. This option adds some |
@@ -278,7 +277,7 @@ config NET_PKTGEN | |||
278 | 277 | ||
279 | config NET_TCPPROBE | 278 | config NET_TCPPROBE |
280 | tristate "TCP connection probing" | 279 | tristate "TCP connection probing" |
281 | depends on INET && EXPERIMENTAL && PROC_FS && KPROBES | 280 | depends on INET && PROC_FS && KPROBES |
282 | ---help--- | 281 | ---help--- |
283 | This module allows for capturing the changes to TCP connection | 282 | This module allows for capturing the changes to TCP connection |
284 | state in response to incoming packets. It is used for debugging | 283 | state in response to incoming packets. It is used for debugging |
@@ -295,7 +294,7 @@ config NET_TCPPROBE | |||
295 | 294 | ||
296 | config NET_DROP_MONITOR | 295 | config NET_DROP_MONITOR |
297 | tristate "Network packet drop alerting service" | 296 | tristate "Network packet drop alerting service" |
298 | depends on INET && EXPERIMENTAL && TRACEPOINTS | 297 | depends on INET && TRACEPOINTS |
299 | ---help--- | 298 | ---help--- |
300 | This feature provides an alerting service to userspace in the | 299 | This feature provides an alerting service to userspace in the |
301 | event that packets are discarded in the network stack. Alerts | 300 | event that packets are discarded in the network stack. Alerts |
diff --git a/net/ceph/Kconfig b/net/ceph/Kconfig index cc04dd667a10..e50cc69ae8ca 100644 --- a/net/ceph/Kconfig +++ b/net/ceph/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config CEPH_LIB | 1 | config CEPH_LIB |
2 | tristate "Ceph core library (EXPERIMENTAL)" | 2 | tristate "Ceph core library" |
3 | depends on INET && EXPERIMENTAL | 3 | depends on INET |
4 | select LIBCRC32C | 4 | select LIBCRC32C |
5 | select CRYPTO_AES | 5 | select CRYPTO_AES |
6 | select CRYPTO | 6 | select CRYPTO |
diff --git a/net/dccp/Kconfig b/net/dccp/Kconfig index b75968a04017..8c0ef71bed2f 100644 --- a/net/dccp/Kconfig +++ b/net/dccp/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | menuconfig IP_DCCP | 1 | menuconfig IP_DCCP |
2 | tristate "The DCCP Protocol (EXPERIMENTAL)" | 2 | tristate "The DCCP Protocol" |
3 | depends on INET && EXPERIMENTAL | 3 | depends on INET |
4 | ---help--- | 4 | ---help--- |
5 | Datagram Congestion Control Protocol (RFC 4340) | 5 | Datagram Congestion Control Protocol (RFC 4340) |
6 | 6 | ||
diff --git a/net/dccp/ccids/Kconfig b/net/dccp/ccids/Kconfig index 0581143cb800..8ba3fc9d6d16 100644 --- a/net/dccp/ccids/Kconfig +++ b/net/dccp/ccids/Kconfig | |||
@@ -1,5 +1,4 @@ | |||
1 | menu "DCCP CCIDs Configuration (EXPERIMENTAL)" | 1 | menu "DCCP CCIDs Configuration" |
2 | depends on EXPERIMENTAL | ||
3 | 2 | ||
4 | config IP_DCCP_CCID2_DEBUG | 3 | config IP_DCCP_CCID2_DEBUG |
5 | bool "CCID-2 debugging messages" | 4 | bool "CCID-2 debugging messages" |
@@ -12,7 +11,7 @@ config IP_DCCP_CCID2_DEBUG | |||
12 | If in doubt, say N. | 11 | If in doubt, say N. |
13 | 12 | ||
14 | config IP_DCCP_CCID3 | 13 | config IP_DCCP_CCID3 |
15 | bool "CCID-3 (TCP-Friendly) (EXPERIMENTAL)" | 14 | bool "CCID-3 (TCP-Friendly)" |
16 | def_bool y if (IP_DCCP = y || IP_DCCP = m) | 15 | def_bool y if (IP_DCCP = y || IP_DCCP = m) |
17 | ---help--- | 16 | ---help--- |
18 | CCID-3 denotes TCP-Friendly Rate Control (TFRC), an equation-based | 17 | CCID-3 denotes TCP-Friendly Rate Control (TFRC), an equation-based |
diff --git a/net/decnet/Kconfig b/net/decnet/Kconfig index 7914fd619c5c..f3393e154f0f 100644 --- a/net/decnet/Kconfig +++ b/net/decnet/Kconfig | |||
@@ -25,8 +25,8 @@ config DECNET | |||
25 | The module is called decnet. | 25 | The module is called decnet. |
26 | 26 | ||
27 | config DECNET_ROUTER | 27 | config DECNET_ROUTER |
28 | bool "DECnet: router support (EXPERIMENTAL)" | 28 | bool "DECnet: router support" |
29 | depends on DECNET && EXPERIMENTAL | 29 | depends on DECNET |
30 | select FIB_RULES | 30 | select FIB_RULES |
31 | ---help--- | 31 | ---help--- |
32 | Add support for turning your DECnet Endnode into a level 1 or 2 | 32 | Add support for turning your DECnet Endnode into a level 1 or 2 |
diff --git a/net/decnet/netfilter/Kconfig b/net/decnet/netfilter/Kconfig index 2f81de5e752f..8d7c109d5109 100644 --- a/net/decnet/netfilter/Kconfig +++ b/net/decnet/netfilter/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | menu "DECnet: Netfilter Configuration" | 5 | menu "DECnet: Netfilter Configuration" |
6 | depends on DECNET && NETFILTER && EXPERIMENTAL | 6 | depends on DECNET && NETFILTER |
7 | depends on NETFILTER_ADVANCED | 7 | depends on NETFILTER_ADVANCED |
8 | 8 | ||
9 | config DECNET_NF_GRABULATOR | 9 | config DECNET_NF_GRABULATOR |
diff --git a/net/ieee802154/Kconfig b/net/ieee802154/Kconfig index 7dee65052925..b2e06df0076c 100644 --- a/net/ieee802154/Kconfig +++ b/net/ieee802154/Kconfig | |||
@@ -1,6 +1,5 @@ | |||
1 | config IEEE802154 | 1 | config IEEE802154 |
2 | tristate "IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support (EXPERIMENTAL)" | 2 | tristate "IEEE Std 802.15.4 Low-Rate Wireless Personal Area Networks support" |
3 | depends on EXPERIMENTAL | ||
4 | ---help--- | 3 | ---help--- |
5 | IEEE Std 802.15.4 defines a low data rate, low power and low | 4 | IEEE Std 802.15.4 defines a low data rate, low power and low |
6 | complexity short range wireless personal area networks. It was | 5 | complexity short range wireless personal area networks. It was |
diff --git a/net/ieee802154/wpan-class.c b/net/ieee802154/wpan-class.c index 1627ef2e8522..13571eae6bae 100644 --- a/net/ieee802154/wpan-class.c +++ b/net/ieee802154/wpan-class.c | |||
@@ -91,7 +91,7 @@ static struct class wpan_phy_class = { | |||
91 | static DEFINE_MUTEX(wpan_phy_mutex); | 91 | static DEFINE_MUTEX(wpan_phy_mutex); |
92 | static int wpan_phy_idx; | 92 | static int wpan_phy_idx; |
93 | 93 | ||
94 | static int wpan_phy_match(struct device *dev, void *data) | 94 | static int wpan_phy_match(struct device *dev, const void *data) |
95 | { | 95 | { |
96 | return !strcmp(dev_name(dev), (const char *)data); | 96 | return !strcmp(dev_name(dev), (const char *)data); |
97 | } | 97 | } |
@@ -103,8 +103,7 @@ struct wpan_phy *wpan_phy_find(const char *str) | |||
103 | if (WARN_ON(!str)) | 103 | if (WARN_ON(!str)) |
104 | return NULL; | 104 | return NULL; |
105 | 105 | ||
106 | dev = class_find_device(&wpan_phy_class, NULL, | 106 | dev = class_find_device(&wpan_phy_class, NULL, str, wpan_phy_match); |
107 | (void *)str, wpan_phy_match); | ||
108 | if (!dev) | 107 | if (!dev) |
109 | return NULL; | 108 | return NULL; |
110 | 109 | ||
diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig index 5a19aeb86094..7944df768454 100644 --- a/net/ipv4/Kconfig +++ b/net/ipv4/Kconfig | |||
@@ -488,7 +488,6 @@ config TCP_CONG_HTCP | |||
488 | 488 | ||
489 | config TCP_CONG_HSTCP | 489 | config TCP_CONG_HSTCP |
490 | tristate "High Speed TCP" | 490 | tristate "High Speed TCP" |
491 | depends on EXPERIMENTAL | ||
492 | default n | 491 | default n |
493 | ---help--- | 492 | ---help--- |
494 | Sally Floyd's High Speed TCP (RFC 3649) congestion control. | 493 | Sally Floyd's High Speed TCP (RFC 3649) congestion control. |
@@ -499,7 +498,6 @@ config TCP_CONG_HSTCP | |||
499 | 498 | ||
500 | config TCP_CONG_HYBLA | 499 | config TCP_CONG_HYBLA |
501 | tristate "TCP-Hybla congestion control algorithm" | 500 | tristate "TCP-Hybla congestion control algorithm" |
502 | depends on EXPERIMENTAL | ||
503 | default n | 501 | default n |
504 | ---help--- | 502 | ---help--- |
505 | TCP-Hybla is a sender-side only change that eliminates penalization of | 503 | TCP-Hybla is a sender-side only change that eliminates penalization of |
@@ -509,7 +507,6 @@ config TCP_CONG_HYBLA | |||
509 | 507 | ||
510 | config TCP_CONG_VEGAS | 508 | config TCP_CONG_VEGAS |
511 | tristate "TCP Vegas" | 509 | tristate "TCP Vegas" |
512 | depends on EXPERIMENTAL | ||
513 | default n | 510 | default n |
514 | ---help--- | 511 | ---help--- |
515 | TCP Vegas is a sender-side only change to TCP that anticipates | 512 | TCP Vegas is a sender-side only change to TCP that anticipates |
@@ -520,7 +517,6 @@ config TCP_CONG_VEGAS | |||
520 | 517 | ||
521 | config TCP_CONG_SCALABLE | 518 | config TCP_CONG_SCALABLE |
522 | tristate "Scalable TCP" | 519 | tristate "Scalable TCP" |
523 | depends on EXPERIMENTAL | ||
524 | default n | 520 | default n |
525 | ---help--- | 521 | ---help--- |
526 | Scalable TCP is a sender-side only change to TCP which uses a | 522 | Scalable TCP is a sender-side only change to TCP which uses a |
@@ -530,7 +526,6 @@ config TCP_CONG_SCALABLE | |||
530 | 526 | ||
531 | config TCP_CONG_LP | 527 | config TCP_CONG_LP |
532 | tristate "TCP Low Priority" | 528 | tristate "TCP Low Priority" |
533 | depends on EXPERIMENTAL | ||
534 | default n | 529 | default n |
535 | ---help--- | 530 | ---help--- |
536 | TCP Low Priority (TCP-LP), a distributed algorithm whose goal is | 531 | TCP Low Priority (TCP-LP), a distributed algorithm whose goal is |
@@ -540,7 +535,6 @@ config TCP_CONG_LP | |||
540 | 535 | ||
541 | config TCP_CONG_VENO | 536 | config TCP_CONG_VENO |
542 | tristate "TCP Veno" | 537 | tristate "TCP Veno" |
543 | depends on EXPERIMENTAL | ||
544 | default n | 538 | default n |
545 | ---help--- | 539 | ---help--- |
546 | TCP Veno is a sender-side only enhancement of TCP to obtain better | 540 | TCP Veno is a sender-side only enhancement of TCP to obtain better |
@@ -552,7 +546,6 @@ config TCP_CONG_VENO | |||
552 | 546 | ||
553 | config TCP_CONG_YEAH | 547 | config TCP_CONG_YEAH |
554 | tristate "YeAH TCP" | 548 | tristate "YeAH TCP" |
555 | depends on EXPERIMENTAL | ||
556 | select TCP_CONG_VEGAS | 549 | select TCP_CONG_VEGAS |
557 | default n | 550 | default n |
558 | ---help--- | 551 | ---help--- |
@@ -567,7 +560,6 @@ config TCP_CONG_YEAH | |||
567 | 560 | ||
568 | config TCP_CONG_ILLINOIS | 561 | config TCP_CONG_ILLINOIS |
569 | tristate "TCP Illinois" | 562 | tristate "TCP Illinois" |
570 | depends on EXPERIMENTAL | ||
571 | default n | 563 | default n |
572 | ---help--- | 564 | ---help--- |
573 | TCP-Illinois is a sender-side modification of TCP Reno for | 565 | TCP-Illinois is a sender-side modification of TCP Reno for |
@@ -631,8 +623,7 @@ config DEFAULT_TCP_CONG | |||
631 | default "cubic" | 623 | default "cubic" |
632 | 624 | ||
633 | config TCP_MD5SIG | 625 | config TCP_MD5SIG |
634 | bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)" | 626 | bool "TCP: MD5 Signature Option support (RFC2385)" |
635 | depends on EXPERIMENTAL | ||
636 | select CRYPTO | 627 | select CRYPTO |
637 | select CRYPTO_MD5 | 628 | select CRYPTO_MD5 |
638 | ---help--- | 629 | ---help--- |
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig index d8d6f2a5bf12..ce2d43e1f09f 100644 --- a/net/ipv4/netfilter/Kconfig +++ b/net/ipv4/netfilter/Kconfig | |||
@@ -241,8 +241,8 @@ config IP_NF_MANGLE | |||
241 | To compile it as a module, choose M here. If unsure, say N. | 241 | To compile it as a module, choose M here. If unsure, say N. |
242 | 242 | ||
243 | config IP_NF_TARGET_CLUSTERIP | 243 | config IP_NF_TARGET_CLUSTERIP |
244 | tristate "CLUSTERIP target support (EXPERIMENTAL)" | 244 | tristate "CLUSTERIP target support" |
245 | depends on IP_NF_MANGLE && EXPERIMENTAL | 245 | depends on IP_NF_MANGLE |
246 | depends on NF_CONNTRACK_IPV4 | 246 | depends on NF_CONNTRACK_IPV4 |
247 | depends on NETFILTER_ADVANCED | 247 | depends on NETFILTER_ADVANCED |
248 | select NF_CONNTRACK_MARK | 248 | select NF_CONNTRACK_MARK |
diff --git a/net/ipv6/Kconfig b/net/ipv6/Kconfig index 4f7fe7270e37..3f2eb57cc51d 100644 --- a/net/ipv6/Kconfig +++ b/net/ipv6/Kconfig | |||
@@ -50,16 +50,15 @@ config IPV6_ROUTER_PREF | |||
50 | If unsure, say N. | 50 | If unsure, say N. |
51 | 51 | ||
52 | config IPV6_ROUTE_INFO | 52 | config IPV6_ROUTE_INFO |
53 | bool "IPv6: Route Information (RFC 4191) support (EXPERIMENTAL)" | 53 | bool "IPv6: Route Information (RFC 4191) support" |
54 | depends on IPV6_ROUTER_PREF && EXPERIMENTAL | 54 | depends on IPV6_ROUTER_PREF |
55 | ---help--- | 55 | ---help--- |
56 | This is experimental support of Route Information. | 56 | This is experimental support of Route Information. |
57 | 57 | ||
58 | If unsure, say N. | 58 | If unsure, say N. |
59 | 59 | ||
60 | config IPV6_OPTIMISTIC_DAD | 60 | config IPV6_OPTIMISTIC_DAD |
61 | bool "IPv6: Enable RFC 4429 Optimistic DAD (EXPERIMENTAL)" | 61 | bool "IPv6: Enable RFC 4429 Optimistic DAD" |
62 | depends on EXPERIMENTAL | ||
63 | ---help--- | 62 | ---help--- |
64 | This is experimental support for optimistic Duplicate | 63 | This is experimental support for optimistic Duplicate |
65 | Address Detection. It allows for autoconfigured addresses | 64 | Address Detection. It allows for autoconfigured addresses |
@@ -105,8 +104,7 @@ config INET6_IPCOMP | |||
105 | If unsure, say Y. | 104 | If unsure, say Y. |
106 | 105 | ||
107 | config IPV6_MIP6 | 106 | config IPV6_MIP6 |
108 | tristate "IPv6: Mobility (EXPERIMENTAL)" | 107 | tristate "IPv6: Mobility" |
109 | depends on EXPERIMENTAL | ||
110 | select XFRM | 108 | select XFRM |
111 | ---help--- | 109 | ---help--- |
112 | Support for IPv6 Mobility described in RFC 3775. | 110 | Support for IPv6 Mobility described in RFC 3775. |
@@ -150,8 +148,7 @@ config INET6_XFRM_MODE_BEET | |||
150 | If unsure, say Y. | 148 | If unsure, say Y. |
151 | 149 | ||
152 | config INET6_XFRM_MODE_ROUTEOPTIMIZATION | 150 | config INET6_XFRM_MODE_ROUTEOPTIMIZATION |
153 | tristate "IPv6: MIPv6 route optimization mode (EXPERIMENTAL)" | 151 | tristate "IPv6: MIPv6 route optimization mode" |
154 | depends on EXPERIMENTAL | ||
155 | select XFRM | 152 | select XFRM |
156 | ---help--- | 153 | ---help--- |
157 | Support for MIPv6 route optimization mode. | 154 | Support for MIPv6 route optimization mode. |
@@ -171,8 +168,8 @@ config IPV6_SIT | |||
171 | Saying M here will produce a module called sit. If unsure, say Y. | 168 | Saying M here will produce a module called sit. If unsure, say Y. |
172 | 169 | ||
173 | config IPV6_SIT_6RD | 170 | config IPV6_SIT_6RD |
174 | bool "IPv6: IPv6 Rapid Deployment (6RD) (EXPERIMENTAL)" | 171 | bool "IPv6: IPv6 Rapid Deployment (6RD)" |
175 | depends on IPV6_SIT && EXPERIMENTAL | 172 | depends on IPV6_SIT |
176 | default n | 173 | default n |
177 | ---help--- | 174 | ---help--- |
178 | IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon | 175 | IPv6 Rapid Deployment (6rd; draft-ietf-softwire-ipv6-6rd) builds upon |
@@ -219,7 +216,6 @@ config IPV6_GRE | |||
219 | 216 | ||
220 | config IPV6_MULTIPLE_TABLES | 217 | config IPV6_MULTIPLE_TABLES |
221 | bool "IPv6: Multiple Routing Tables" | 218 | bool "IPv6: Multiple Routing Tables" |
222 | depends on EXPERIMENTAL | ||
223 | select FIB_RULES | 219 | select FIB_RULES |
224 | ---help--- | 220 | ---help--- |
225 | Support multiple routing tables. | 221 | Support multiple routing tables. |
@@ -239,8 +235,8 @@ config IPV6_SUBTREES | |||
239 | If unsure, say N. | 235 | If unsure, say N. |
240 | 236 | ||
241 | config IPV6_MROUTE | 237 | config IPV6_MROUTE |
242 | bool "IPv6: multicast routing (EXPERIMENTAL)" | 238 | bool "IPv6: multicast routing" |
243 | depends on IPV6 && EXPERIMENTAL | 239 | depends on IPV6 |
244 | ---help--- | 240 | ---help--- |
245 | Experimental support for IPv6 multicast forwarding. | 241 | Experimental support for IPv6 multicast forwarding. |
246 | If unsure, say N. | 242 | If unsure, say N. |
@@ -260,7 +256,7 @@ config IPV6_MROUTE_MULTIPLE_TABLES | |||
260 | If unsure, say N. | 256 | If unsure, say N. |
261 | 257 | ||
262 | config IPV6_PIMSM_V2 | 258 | config IPV6_PIMSM_V2 |
263 | bool "IPv6: PIM-SM version 2 support (EXPERIMENTAL)" | 259 | bool "IPv6: PIM-SM version 2 support" |
264 | depends on IPV6_MROUTE | 260 | depends on IPV6_MROUTE |
265 | ---help--- | 261 | ---help--- |
266 | Support for IPv6 PIM multicast routing protocol PIM-SMv2. | 262 | Support for IPv6 PIM multicast routing protocol PIM-SMv2. |
diff --git a/net/l2tp/Kconfig b/net/l2tp/Kconfig index 147a8fd47a17..adb9843dd7cf 100644 --- a/net/l2tp/Kconfig +++ b/net/l2tp/Kconfig | |||
@@ -46,8 +46,8 @@ config L2TP_DEBUGFS | |||
46 | will be called l2tp_debugfs. | 46 | will be called l2tp_debugfs. |
47 | 47 | ||
48 | config L2TP_V3 | 48 | config L2TP_V3 |
49 | bool "L2TPv3 support (EXPERIMENTAL)" | 49 | bool "L2TPv3 support" |
50 | depends on EXPERIMENTAL && L2TP | 50 | depends on L2TP |
51 | help | 51 | help |
52 | Layer Two Tunneling Protocol Version 3 | 52 | Layer Two Tunneling Protocol Version 3 |
53 | 53 | ||
diff --git a/net/lapb/Kconfig b/net/lapb/Kconfig index f0b5efb31a00..6481839b76c9 100644 --- a/net/lapb/Kconfig +++ b/net/lapb/Kconfig | |||
@@ -3,8 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | config LAPB | 5 | config LAPB |
6 | tristate "LAPB Data Link Driver (EXPERIMENTAL)" | 6 | tristate "LAPB Data Link Driver" |
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | 7 | ---help--- |
9 | Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. | 8 | Link Access Procedure, Balanced (LAPB) is the data link layer (i.e. |
10 | the lower) part of the X.25 protocol. It offers a reliable | 9 | the lower) part of the X.25 protocol. It offers a reliable |
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig index 0ecf947ad378..62535fe9f570 100644 --- a/net/mac80211/Kconfig +++ b/net/mac80211/Kconfig | |||
@@ -81,7 +81,7 @@ comment "Some wireless drivers require a rate control algorithm" | |||
81 | 81 | ||
82 | config MAC80211_MESH | 82 | config MAC80211_MESH |
83 | bool "Enable mac80211 mesh networking (pre-802.11s) support" | 83 | bool "Enable mac80211 mesh networking (pre-802.11s) support" |
84 | depends on MAC80211 && EXPERIMENTAL | 84 | depends on MAC80211 |
85 | ---help--- | 85 | ---help--- |
86 | This options enables support of Draft 802.11s mesh networking. | 86 | This options enables support of Draft 802.11s mesh networking. |
87 | The implementation is based on Draft 2.08 of the Mesh Networking | 87 | The implementation is based on Draft 2.08 of the Mesh Networking |
diff --git a/net/mac802154/Kconfig b/net/mac802154/Kconfig index a967ddaa4e2f..b33dd76d4307 100644 --- a/net/mac802154/Kconfig +++ b/net/mac802154/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config MAC802154 | 1 | config MAC802154 |
2 | tristate "Generic IEEE 802.15.4 Soft Networking Stack (mac802154)" | 2 | tristate "Generic IEEE 802.15.4 Soft Networking Stack (mac802154)" |
3 | depends on IEEE802154 && EXPERIMENTAL | 3 | depends on IEEE802154 |
4 | select CRC_CCITT | 4 | select CRC_CCITT |
5 | ---help--- | 5 | ---help--- |
6 | This option enables the hardware independent IEEE 802.15.4 | 6 | This option enables the hardware independent IEEE 802.15.4 |
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig index d4dd702574e4..56d22cae5906 100644 --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig | |||
@@ -131,8 +131,7 @@ config NF_CONNTRACK_LABELS | |||
131 | to connection tracking entries. It selected by the connlabel match. | 131 | to connection tracking entries. It selected by the connlabel match. |
132 | 132 | ||
133 | config NF_CT_PROTO_DCCP | 133 | config NF_CT_PROTO_DCCP |
134 | tristate 'DCCP protocol connection tracking support (EXPERIMENTAL)' | 134 | tristate 'DCCP protocol connection tracking support' |
135 | depends on EXPERIMENTAL | ||
136 | depends on NETFILTER_ADVANCED | 135 | depends on NETFILTER_ADVANCED |
137 | default IP_DCCP | 136 | default IP_DCCP |
138 | help | 137 | help |
@@ -145,8 +144,7 @@ config NF_CT_PROTO_GRE | |||
145 | tristate | 144 | tristate |
146 | 145 | ||
147 | config NF_CT_PROTO_SCTP | 146 | config NF_CT_PROTO_SCTP |
148 | tristate 'SCTP protocol connection tracking support (EXPERIMENTAL)' | 147 | tristate 'SCTP protocol connection tracking support' |
149 | depends on EXPERIMENTAL | ||
150 | depends on NETFILTER_ADVANCED | 148 | depends on NETFILTER_ADVANCED |
151 | default IP_SCTP | 149 | default IP_SCTP |
152 | help | 150 | help |
@@ -287,8 +285,7 @@ config NF_CONNTRACK_PPTP | |||
287 | To compile it as a module, choose M here. If unsure, say N. | 285 | To compile it as a module, choose M here. If unsure, say N. |
288 | 286 | ||
289 | config NF_CONNTRACK_SANE | 287 | config NF_CONNTRACK_SANE |
290 | tristate "SANE protocol support (EXPERIMENTAL)" | 288 | tristate "SANE protocol support" |
291 | depends on EXPERIMENTAL | ||
292 | depends on NETFILTER_ADVANCED | 289 | depends on NETFILTER_ADVANCED |
293 | help | 290 | help |
294 | SANE is a protocol for remote access to scanners as implemented | 291 | SANE is a protocol for remote access to scanners as implemented |
@@ -415,8 +412,7 @@ endif # NF_CONNTRACK | |||
415 | 412 | ||
416 | # transparent proxy support | 413 | # transparent proxy support |
417 | config NETFILTER_TPROXY | 414 | config NETFILTER_TPROXY |
418 | tristate "Transparent proxying support (EXPERIMENTAL)" | 415 | tristate "Transparent proxying support" |
419 | depends on EXPERIMENTAL | ||
420 | depends on IP_NF_MANGLE | 416 | depends on IP_NF_MANGLE |
421 | depends on NETFILTER_ADVANCED | 417 | depends on NETFILTER_ADVANCED |
422 | help | 418 | help |
@@ -724,8 +720,7 @@ config NETFILTER_XT_TARGET_TEE | |||
724 | this clone be rerouted to another nexthop. | 720 | this clone be rerouted to another nexthop. |
725 | 721 | ||
726 | config NETFILTER_XT_TARGET_TPROXY | 722 | config NETFILTER_XT_TARGET_TPROXY |
727 | tristate '"TPROXY" target support (EXPERIMENTAL)' | 723 | tristate '"TPROXY" target support' |
728 | depends on EXPERIMENTAL | ||
729 | depends on NETFILTER_TPROXY | 724 | depends on NETFILTER_TPROXY |
730 | depends on NETFILTER_XTABLES | 725 | depends on NETFILTER_XTABLES |
731 | depends on NETFILTER_ADVANCED | 726 | depends on NETFILTER_ADVANCED |
@@ -789,8 +784,7 @@ config NETFILTER_XT_TARGET_TCPMSS | |||
789 | To compile it as a module, choose M here. If unsure, say N. | 784 | To compile it as a module, choose M here. If unsure, say N. |
790 | 785 | ||
791 | config NETFILTER_XT_TARGET_TCPOPTSTRIP | 786 | config NETFILTER_XT_TARGET_TCPOPTSTRIP |
792 | tristate '"TCPOPTSTRIP" target support (EXPERIMENTAL)' | 787 | tristate '"TCPOPTSTRIP" target support' |
793 | depends on EXPERIMENTAL | ||
794 | depends on IP_NF_MANGLE || IP6_NF_MANGLE | 788 | depends on IP_NF_MANGLE || IP6_NF_MANGLE |
795 | depends on NETFILTER_ADVANCED | 789 | depends on NETFILTER_ADVANCED |
796 | help | 790 | help |
@@ -1173,8 +1167,7 @@ config NETFILTER_XT_MATCH_RECENT | |||
1173 | Official Website: <http://snowman.net/projects/ipt_recent/> | 1167 | Official Website: <http://snowman.net/projects/ipt_recent/> |
1174 | 1168 | ||
1175 | config NETFILTER_XT_MATCH_SCTP | 1169 | config NETFILTER_XT_MATCH_SCTP |
1176 | tristate '"sctp" protocol match support (EXPERIMENTAL)' | 1170 | tristate '"sctp" protocol match support' |
1177 | depends on EXPERIMENTAL | ||
1178 | depends on NETFILTER_ADVANCED | 1171 | depends on NETFILTER_ADVANCED |
1179 | default IP_SCTP | 1172 | default IP_SCTP |
1180 | help | 1173 | help |
@@ -1186,8 +1179,7 @@ config NETFILTER_XT_MATCH_SCTP | |||
1186 | <file:Documentation/kbuild/modules.txt>. If unsure, say `N'. | 1179 | <file:Documentation/kbuild/modules.txt>. If unsure, say `N'. |
1187 | 1180 | ||
1188 | config NETFILTER_XT_MATCH_SOCKET | 1181 | config NETFILTER_XT_MATCH_SOCKET |
1189 | tristate '"socket" match support (EXPERIMENTAL)' | 1182 | tristate '"socket" match support' |
1190 | depends on EXPERIMENTAL | ||
1191 | depends on NETFILTER_TPROXY | 1183 | depends on NETFILTER_TPROXY |
1192 | depends on NETFILTER_XTABLES | 1184 | depends on NETFILTER_XTABLES |
1193 | depends on NETFILTER_ADVANCED | 1185 | depends on NETFILTER_ADVANCED |
diff --git a/net/nfc/core.c b/net/nfc/core.c index 25522e56d350..6ceee8e181ca 100644 --- a/net/nfc/core.c +++ b/net/nfc/core.c | |||
@@ -730,10 +730,10 @@ struct class nfc_class = { | |||
730 | }; | 730 | }; |
731 | EXPORT_SYMBOL(nfc_class); | 731 | EXPORT_SYMBOL(nfc_class); |
732 | 732 | ||
733 | static int match_idx(struct device *d, void *data) | 733 | static int match_idx(struct device *d, const void *data) |
734 | { | 734 | { |
735 | struct nfc_dev *dev = to_nfc_dev(d); | 735 | struct nfc_dev *dev = to_nfc_dev(d); |
736 | unsigned int *idx = data; | 736 | const unsigned int *idx = data; |
737 | 737 | ||
738 | return dev->idx == *idx; | 738 | return dev->idx == *idx; |
739 | } | 739 | } |
diff --git a/net/rds/Kconfig b/net/rds/Kconfig index ec753b3ae72a..f2c670ba7b9b 100644 --- a/net/rds/Kconfig +++ b/net/rds/Kconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | 1 | ||
2 | config RDS | 2 | config RDS |
3 | tristate "The RDS Protocol (EXPERIMENTAL)" | 3 | tristate "The RDS Protocol" |
4 | depends on INET && EXPERIMENTAL | 4 | depends on INET |
5 | ---help--- | 5 | ---help--- |
6 | The RDS (Reliable Datagram Sockets) protocol provides reliable, | 6 | The RDS (Reliable Datagram Sockets) protocol provides reliable, |
7 | sequenced delivery of datagrams over Infiniband, iWARP, | 7 | sequenced delivery of datagrams over Infiniband, iWARP, |
diff --git a/net/rxrpc/Kconfig b/net/rxrpc/Kconfig index 0d3103c4f11c..23dcef12b986 100644 --- a/net/rxrpc/Kconfig +++ b/net/rxrpc/Kconfig | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | config AF_RXRPC | 5 | config AF_RXRPC |
6 | tristate "RxRPC session sockets" | 6 | tristate "RxRPC session sockets" |
7 | depends on INET && EXPERIMENTAL | 7 | depends on INET |
8 | select CRYPTO | 8 | select CRYPTO |
9 | select KEYS | 9 | select KEYS |
10 | help | 10 | help |
diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig index 03d03e37a7d5..516fe2caac2c 100644 --- a/net/sunrpc/Kconfig +++ b/net/sunrpc/Kconfig | |||
@@ -10,7 +10,7 @@ config SUNRPC_BACKCHANNEL | |||
10 | 10 | ||
11 | config SUNRPC_XPRT_RDMA | 11 | config SUNRPC_XPRT_RDMA |
12 | tristate | 12 | tristate |
13 | depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS && EXPERIMENTAL | 13 | depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS |
14 | default SUNRPC && INFINIBAND | 14 | default SUNRPC && INFINIBAND |
15 | help | 15 | help |
16 | This option allows the NFS client and server to support | 16 | This option allows the NFS client and server to support |
diff --git a/net/tipc/Kconfig b/net/tipc/Kconfig index bc41bd31eadc..4f99600a5fed 100644 --- a/net/tipc/Kconfig +++ b/net/tipc/Kconfig | |||
@@ -3,8 +3,8 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | menuconfig TIPC | 5 | menuconfig TIPC |
6 | tristate "The TIPC Protocol (EXPERIMENTAL)" | 6 | tristate "The TIPC Protocol" |
7 | depends on INET && EXPERIMENTAL | 7 | depends on INET |
8 | ---help--- | 8 | ---help--- |
9 | The Transparent Inter Process Communication (TIPC) protocol is | 9 | The Transparent Inter Process Communication (TIPC) protocol is |
10 | specially designed for intra cluster communication. This protocol | 10 | specially designed for intra cluster communication. This protocol |
diff --git a/net/x25/Kconfig b/net/x25/Kconfig index e6759c9660bb..c959312c45e3 100644 --- a/net/x25/Kconfig +++ b/net/x25/Kconfig | |||
@@ -3,8 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | config X25 | 5 | config X25 |
6 | tristate "CCITT X.25 Packet Layer (EXPERIMENTAL)" | 6 | tristate "CCITT X.25 Packet Layer" |
7 | depends on EXPERIMENTAL | ||
8 | ---help--- | 7 | ---help--- |
9 | X.25 is a set of standardized network protocols, similar in scope to | 8 | X.25 is a set of standardized network protocols, similar in scope to |
10 | frame relay; the one physical line from your box to the X.25 network | 9 | frame relay; the one physical line from your box to the X.25 network |
diff --git a/net/xfrm/Kconfig b/net/xfrm/Kconfig index ce90b8d92365..bda1a13628a8 100644 --- a/net/xfrm/Kconfig +++ b/net/xfrm/Kconfig | |||
@@ -21,8 +21,8 @@ config XFRM_USER | |||
21 | If unsure, say Y. | 21 | If unsure, say Y. |
22 | 22 | ||
23 | config XFRM_SUB_POLICY | 23 | config XFRM_SUB_POLICY |
24 | bool "Transformation sub policy support (EXPERIMENTAL)" | 24 | bool "Transformation sub policy support" |
25 | depends on XFRM && EXPERIMENTAL | 25 | depends on XFRM |
26 | ---help--- | 26 | ---help--- |
27 | Support sub policy for developers. By using sub policy with main | 27 | Support sub policy for developers. By using sub policy with main |
28 | one, two policies can be applied to the same packet at once. | 28 | one, two policies can be applied to the same packet at once. |
@@ -31,8 +31,8 @@ config XFRM_SUB_POLICY | |||
31 | If unsure, say N. | 31 | If unsure, say N. |
32 | 32 | ||
33 | config XFRM_MIGRATE | 33 | config XFRM_MIGRATE |
34 | bool "Transformation migrate database (EXPERIMENTAL)" | 34 | bool "Transformation migrate database" |
35 | depends on XFRM && EXPERIMENTAL | 35 | depends on XFRM |
36 | ---help--- | 36 | ---help--- |
37 | A feature to update locator(s) of a given IPsec security | 37 | A feature to update locator(s) of a given IPsec security |
38 | association dynamically. This feature is required, for | 38 | association dynamically. This feature is required, for |
@@ -42,8 +42,8 @@ config XFRM_MIGRATE | |||
42 | If unsure, say N. | 42 | If unsure, say N. |
43 | 43 | ||
44 | config XFRM_STATISTICS | 44 | config XFRM_STATISTICS |
45 | bool "Transformation statistics (EXPERIMENTAL)" | 45 | bool "Transformation statistics" |
46 | depends on INET && XFRM && PROC_FS && EXPERIMENTAL | 46 | depends on INET && XFRM && PROC_FS |
47 | ---help--- | 47 | ---help--- |
48 | This statistics is not a SNMP/MIB specification but shows | 48 | This statistics is not a SNMP/MIB specification but shows |
49 | statistics about transformation error (or almost error) factor | 49 | statistics about transformation error (or almost error) factor |
@@ -68,8 +68,8 @@ config NET_KEY | |||
68 | Say Y unless you know what you are doing. | 68 | Say Y unless you know what you are doing. |
69 | 69 | ||
70 | config NET_KEY_MIGRATE | 70 | config NET_KEY_MIGRATE |
71 | bool "PF_KEY MIGRATE (EXPERIMENTAL)" | 71 | bool "PF_KEY MIGRATE" |
72 | depends on NET_KEY && EXPERIMENTAL | 72 | depends on NET_KEY |
73 | select XFRM_MIGRATE | 73 | select XFRM_MIGRATE |
74 | ---help--- | 74 | ---help--- |
75 | Add a PF_KEY MIGRATE message to PF_KEYv2 socket family. | 75 | Add a PF_KEY MIGRATE message to PF_KEYv2 socket family. |
diff --git a/scripts/coccinelle/api/devm_ioremap_resource.cocci b/scripts/coccinelle/api/devm_ioremap_resource.cocci new file mode 100644 index 000000000000..495daa3dbf77 --- /dev/null +++ b/scripts/coccinelle/api/devm_ioremap_resource.cocci | |||
@@ -0,0 +1,90 @@ | |||
1 | virtual patch | ||
2 | virtual report | ||
3 | |||
4 | @depends on patch@ | ||
5 | expression base, dev, res; | ||
6 | @@ | ||
7 | |||
8 | -base = devm_request_and_ioremap(dev, res); | ||
9 | +base = devm_ioremap_resource(dev, res); | ||
10 | ... | ||
11 | if ( | ||
12 | -base == NULL | ||
13 | +IS_ERR(base) | ||
14 | || ...) { | ||
15 | <... | ||
16 | - return ...; | ||
17 | + return PTR_ERR(base); | ||
18 | ...> | ||
19 | } | ||
20 | |||
21 | @depends on patch@ | ||
22 | expression e, E, ret; | ||
23 | identifier l; | ||
24 | @@ | ||
25 | |||
26 | e = devm_ioremap_resource(...); | ||
27 | ... | ||
28 | if (IS_ERR(e) || ...) { | ||
29 | ... when any | ||
30 | - ret = E; | ||
31 | + ret = PTR_ERR(e); | ||
32 | ... | ||
33 | ( | ||
34 | return ret; | ||
35 | | | ||
36 | goto l; | ||
37 | ) | ||
38 | } | ||
39 | |||
40 | @depends on patch@ | ||
41 | expression e; | ||
42 | @@ | ||
43 | |||
44 | e = devm_ioremap_resource(...); | ||
45 | ... | ||
46 | if (IS_ERR(e) || ...) { | ||
47 | ... | ||
48 | - \(dev_dbg\|dev_err\|pr_debug\|pr_err\|DRM_ERROR\)(...); | ||
49 | ... | ||
50 | } | ||
51 | |||
52 | @depends on patch@ | ||
53 | expression e; | ||
54 | identifier l; | ||
55 | @@ | ||
56 | |||
57 | e = devm_ioremap_resource(...); | ||
58 | ... | ||
59 | if (IS_ERR(e) || ...) | ||
60 | -{ | ||
61 | ( | ||
62 | return ...; | ||
63 | | | ||
64 | goto l; | ||
65 | ) | ||
66 | -} | ||
67 | |||
68 | @r depends on report@ | ||
69 | expression e; | ||
70 | identifier l; | ||
71 | position p1; | ||
72 | @@ | ||
73 | |||
74 | *e = devm_request_and_ioremap@p1(...); | ||
75 | ... | ||
76 | if (e == NULL || ...) { | ||
77 | ... | ||
78 | ( | ||
79 | return ...; | ||
80 | | | ||
81 | goto l; | ||
82 | ) | ||
83 | } | ||
84 | |||
85 | @script:python depends on r@ | ||
86 | p1 << r.p1; | ||
87 | @@ | ||
88 | |||
89 | msg = "ERROR: deprecated devm_request_and_ioremap() API used on line %s" % (p1[0].line) | ||
90 | coccilib.report.print_report(p1[0], msg) | ||
diff --git a/sound/soc/cirrus/ep93xx-ac97.c b/sound/soc/cirrus/ep93xx-ac97.c index f3f50e6fd6eb..1738d28fb04f 100644 --- a/sound/soc/cirrus/ep93xx-ac97.c +++ b/sound/soc/cirrus/ep93xx-ac97.c | |||
@@ -11,6 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
14 | #include <linux/err.h> | ||
14 | #include <linux/io.h> | 15 | #include <linux/io.h> |
15 | #include <linux/init.h> | 16 | #include <linux/init.h> |
16 | #include <linux/module.h> | 17 | #include <linux/module.h> |
@@ -367,9 +368,9 @@ static int ep93xx_ac97_probe(struct platform_device *pdev) | |||
367 | if (!res) | 368 | if (!res) |
368 | return -ENODEV; | 369 | return -ENODEV; |
369 | 370 | ||
370 | info->regs = devm_request_and_ioremap(&pdev->dev, res); | 371 | info->regs = devm_ioremap_resource(&pdev->dev, res); |
371 | if (!info->regs) | 372 | if (IS_ERR(info->regs)) |
372 | return -ENXIO; | 373 | return PTR_ERR(info->regs); |
373 | 374 | ||
374 | irq = platform_get_irq(pdev, 0); | 375 | irq = platform_get_irq(pdev, 0); |
375 | if (!irq) | 376 | if (!irq) |
diff --git a/sound/soc/cirrus/ep93xx-i2s.c b/sound/soc/cirrus/ep93xx-i2s.c index 3365d4e843b7..323ed69b7975 100644 --- a/sound/soc/cirrus/ep93xx-i2s.c +++ b/sound/soc/cirrus/ep93xx-i2s.c | |||
@@ -380,9 +380,9 @@ static int ep93xx_i2s_probe(struct platform_device *pdev) | |||
380 | if (!res) | 380 | if (!res) |
381 | return -ENODEV; | 381 | return -ENODEV; |
382 | 382 | ||
383 | info->regs = devm_request_and_ioremap(&pdev->dev, res); | 383 | info->regs = devm_ioremap_resource(&pdev->dev, res); |
384 | if (!info->regs) | 384 | if (IS_ERR(info->regs)) |
385 | return -ENXIO; | 385 | return PTR_ERR(info->regs); |
386 | 386 | ||
387 | info->mclk = clk_get(&pdev->dev, "mclk"); | 387 | info->mclk = clk_get(&pdev->dev, "mclk"); |
388 | if (IS_ERR(info->mclk)) { | 388 | if (IS_ERR(info->mclk)) { |
diff --git a/sound/soc/codecs/jz4740.c b/sound/soc/codecs/jz4740.c index d991529e1aff..5f607b35b68b 100644 --- a/sound/soc/codecs/jz4740.c +++ b/sound/soc/codecs/jz4740.c | |||
@@ -361,9 +361,9 @@ static int jz4740_codec_probe(struct platform_device *pdev) | |||
361 | return -ENOMEM; | 361 | return -ENOMEM; |
362 | 362 | ||
363 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 363 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
364 | base = devm_request_and_ioremap(&pdev->dev, mem); | 364 | base = devm_ioremap_resource(&pdev->dev, mem); |
365 | if (!base) | 365 | if (IS_ERR(base)) |
366 | return -EBUSY; | 366 | return PTR_ERR(base); |
367 | 367 | ||
368 | jz4740_codec->regmap = devm_regmap_init_mmio(&pdev->dev, base, | 368 | jz4740_codec->regmap = devm_regmap_init_mmio(&pdev->dev, base, |
369 | &jz4740_codec_regmap_config); | 369 | &jz4740_codec_regmap_config); |
diff --git a/sound/soc/fsl/imx-audmux.c b/sound/soc/fsl/imx-audmux.c index fab912ea7a50..3f333e5b4673 100644 --- a/sound/soc/fsl/imx-audmux.c +++ b/sound/soc/fsl/imx-audmux.c | |||
@@ -252,9 +252,9 @@ static int imx_audmux_probe(struct platform_device *pdev) | |||
252 | of_match_device(imx_audmux_dt_ids, &pdev->dev); | 252 | of_match_device(imx_audmux_dt_ids, &pdev->dev); |
253 | 253 | ||
254 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 254 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
255 | audmux_base = devm_request_and_ioremap(&pdev->dev, res); | 255 | audmux_base = devm_ioremap_resource(&pdev->dev, res); |
256 | if (!audmux_base) | 256 | if (IS_ERR(audmux_base)) |
257 | return -EADDRNOTAVAIL; | 257 | return PTR_ERR(audmux_base); |
258 | 258 | ||
259 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); | 259 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); |
260 | if (IS_ERR(pinctrl)) { | 260 | if (IS_ERR(pinctrl)) { |
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c index 3b480423747f..55464a5b0706 100644 --- a/sound/soc/fsl/imx-ssi.c +++ b/sound/soc/fsl/imx-ssi.c | |||
@@ -550,10 +550,9 @@ static int imx_ssi_probe(struct platform_device *pdev) | |||
550 | goto failed_get_resource; | 550 | goto failed_get_resource; |
551 | } | 551 | } |
552 | 552 | ||
553 | ssi->base = devm_request_and_ioremap(&pdev->dev, res); | 553 | ssi->base = devm_ioremap_resource(&pdev->dev, res); |
554 | if (!ssi->base) { | 554 | if (IS_ERR(ssi->base)) { |
555 | dev_err(&pdev->dev, "ioremap failed\n"); | 555 | ret = PTR_ERR(ssi->base); |
556 | ret = -ENODEV; | ||
557 | goto failed_register; | 556 | goto failed_register; |
558 | } | 557 | } |
559 | 558 | ||
diff --git a/sound/soc/kirkwood/kirkwood-i2s.c b/sound/soc/kirkwood/kirkwood-i2s.c index 282d8b1163ba..c74c89065493 100644 --- a/sound/soc/kirkwood/kirkwood-i2s.c +++ b/sound/soc/kirkwood/kirkwood-i2s.c | |||
@@ -472,11 +472,9 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev) | |||
472 | return -ENXIO; | 472 | return -ENXIO; |
473 | } | 473 | } |
474 | 474 | ||
475 | priv->io = devm_request_and_ioremap(&pdev->dev, mem); | 475 | priv->io = devm_ioremap_resource(&pdev->dev, mem); |
476 | if (!priv->io) { | 476 | if (IS_ERR(priv->io)) |
477 | dev_err(&pdev->dev, "devm_request_and_ioremap failed\n"); | 477 | return PTR_ERR(priv->io); |
478 | return -ENOMEM; | ||
479 | } | ||
480 | 478 | ||
481 | priv->irq = platform_get_irq(pdev, 0); | 479 | priv->irq = platform_get_irq(pdev, 0); |
482 | if (priv->irq <= 0) { | 480 | if (priv->irq <= 0) { |
diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c index e70e6c844f96..3a2aa1d19b93 100644 --- a/sound/soc/mxs/mxs-saif.c +++ b/sound/soc/mxs/mxs-saif.c | |||
@@ -717,11 +717,9 @@ static int mxs_saif_probe(struct platform_device *pdev) | |||
717 | 717 | ||
718 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 718 | iores = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
719 | 719 | ||
720 | saif->base = devm_request_and_ioremap(&pdev->dev, iores); | 720 | saif->base = devm_ioremap_resource(&pdev->dev, iores); |
721 | if (!saif->base) { | 721 | if (IS_ERR(saif->base)) |
722 | dev_err(&pdev->dev, "ioremap failed\n"); | 722 | return PTR_ERR(saif->base); |
723 | return -ENODEV; | ||
724 | } | ||
725 | 723 | ||
726 | dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); | 724 | dmares = platform_get_resource(pdev, IORESOURCE_DMA, 0); |
727 | if (!dmares) { | 725 | if (!dmares) { |
diff --git a/sound/soc/pxa/mmp-sspa.c b/sound/soc/pxa/mmp-sspa.c index 41c3a09b53ea..9140c4abafbc 100644 --- a/sound/soc/pxa/mmp-sspa.c +++ b/sound/soc/pxa/mmp-sspa.c | |||
@@ -429,9 +429,9 @@ static int asoc_mmp_sspa_probe(struct platform_device *pdev) | |||
429 | if (res == NULL) | 429 | if (res == NULL) |
430 | return -ENOMEM; | 430 | return -ENOMEM; |
431 | 431 | ||
432 | priv->sspa->mmio_base = devm_request_and_ioremap(&pdev->dev, res); | 432 | priv->sspa->mmio_base = devm_ioremap_resource(&pdev->dev, res); |
433 | if (priv->sspa->mmio_base == NULL) | 433 | if (IS_ERR(priv->sspa->mmio_base)) |
434 | return -ENODEV; | 434 | return PTR_ERR(priv->sspa->mmio_base); |
435 | 435 | ||
436 | priv->sspa->clk = devm_clk_get(&pdev->dev, NULL); | 436 | priv->sspa->clk = devm_clk_get(&pdev->dev, NULL); |
437 | if (IS_ERR(priv->sspa->clk)) | 437 | if (IS_ERR(priv->sspa->clk)) |
diff --git a/tools/lguest/lguest.txt b/tools/lguest/lguest.txt index bff0c554485d..7203ace65e83 100644 --- a/tools/lguest/lguest.txt +++ b/tools/lguest/lguest.txt | |||
@@ -29,10 +29,6 @@ Running Lguest: | |||
29 | 29 | ||
30 | You will need to configure your kernel with the following options: | 30 | You will need to configure your kernel with the following options: |
31 | 31 | ||
32 | "General setup": | ||
33 | "Prompt for development and/or incomplete code/drivers" = Y | ||
34 | (CONFIG_EXPERIMENTAL=y) | ||
35 | |||
36 | "Processor type and features": | 32 | "Processor type and features": |
37 | "Paravirtualized guest support" = Y | 33 | "Paravirtualized guest support" = Y |
38 | "Lguest guest support" = Y | 34 | "Lguest guest support" = Y |
@@ -43,10 +39,10 @@ Running Lguest: | |||
43 | 39 | ||
44 | "Device Drivers": | 40 | "Device Drivers": |
45 | "Block devices" | 41 | "Block devices" |
46 | "Virtio block driver (EXPERIMENTAL)" = M/Y | 42 | "Virtio block driver" = M/Y |
47 | "Network device support" | 43 | "Network device support" |
48 | "Universal TUN/TAP device driver support" = M/Y | 44 | "Universal TUN/TAP device driver support" = M/Y |
49 | "Virtio network driver (EXPERIMENTAL)" = M/Y | 45 | "Virtio network driver" = M/Y |
50 | (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m) | 46 | (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m) |
51 | 47 | ||
52 | "Virtualization" | 48 | "Virtualization" |