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" |
