mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-01 00:58:39 +02:00 
			
		
		
		
	module: Convert symbol namespace to string literal
Clean up the existing export namespace code along the same lines of
commit 33def8498f ("treewide: Convert macro and uses of __section(foo)
to __section("foo")") and for the same reason, it is not desired for the
namespace argument to be a macro expansion itself.
Scripted using
  git grep -l -e MODULE_IMPORT_NS -e EXPORT_SYMBOL_NS | while read file;
  do
    awk -i inplace '
      /^#define EXPORT_SYMBOL_NS/ {
        gsub(/__stringify\(ns\)/, "ns");
        print;
        next;
      }
      /^#define MODULE_IMPORT_NS/ {
        gsub(/__stringify\(ns\)/, "ns");
        print;
        next;
      }
      /MODULE_IMPORT_NS/ {
        $0 = gensub(/MODULE_IMPORT_NS\(([^)]*)\)/, "MODULE_IMPORT_NS(\"\\1\")", "g");
      }
      /EXPORT_SYMBOL_NS/ {
        if ($0 ~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+),/) {
  	if ($0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/ &&
  	    $0 !~ /(EXPORT_SYMBOL_NS[^(]*)\(\)/ &&
  	    $0 !~ /^my/) {
  	  getline line;
  	  gsub(/[[:space:]]*\\$/, "");
  	  gsub(/[[:space:]]/, "", line);
  	  $0 = $0 " " line;
  	}
  	$0 = gensub(/(EXPORT_SYMBOL_NS[^(]*)\(([^,]+), ([^)]+)\)/,
  		    "\\1(\\2, \"\\3\")", "g");
        }
      }
      { print }' $file;
  done
Requested-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://mail.google.com/mail/u/2/#inbox/FMfcgzQXKWgMmjdFwwdsfgxzKpVHWPlc
Acked-by: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									e70140ba0d
								
							
						
					
					
						commit
						cdd30ebb1b
					
				
					 876 changed files with 2189 additions and 2196 deletions
				
			
		|  | @ -46,7 +46,7 @@ Please note that due to macro expansion that argument needs to be a | ||||||
| preprocessor symbol. E.g. to export the symbol ``usb_stor_suspend`` into the | preprocessor symbol. E.g. to export the symbol ``usb_stor_suspend`` into the | ||||||
| namespace ``USB_STORAGE``, use:: | namespace ``USB_STORAGE``, use:: | ||||||
| 
 | 
 | ||||||
| 	EXPORT_SYMBOL_NS(usb_stor_suspend, USB_STORAGE); | 	EXPORT_SYMBOL_NS(usb_stor_suspend, "USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| The corresponding ksymtab entry struct ``kernel_symbol`` will have the member | The corresponding ksymtab entry struct ``kernel_symbol`` will have the member | ||||||
| ``namespace`` set accordingly. A symbol that is exported without a namespace will | ``namespace`` set accordingly. A symbol that is exported without a namespace will | ||||||
|  | @ -94,7 +94,7 @@ for the namespaces it uses symbols from. E.g. a module using the | ||||||
| usb_stor_suspend symbol from above, needs to import the namespace USB_STORAGE | usb_stor_suspend symbol from above, needs to import the namespace USB_STORAGE | ||||||
| using a statement like:: | using a statement like:: | ||||||
| 
 | 
 | ||||||
| 	MODULE_IMPORT_NS(USB_STORAGE); | 	MODULE_IMPORT_NS("USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| This will create a ``modinfo`` tag in the module for each imported namespace. | This will create a ``modinfo`` tag in the module for each imported namespace. | ||||||
| This has the side effect, that the imported namespaces of a module can be | This has the side effect, that the imported namespaces of a module can be | ||||||
|  | @ -106,7 +106,7 @@ inspected with modinfo:: | ||||||
| 	[...] | 	[...] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| It is advisable to add the MODULE_IMPORT_NS() statement close to other module | It is advisable to add the MODULE_IMPORT_NS("") statement close to other module | ||||||
| metadata definitions like MODULE_AUTHOR() or MODULE_LICENSE(). Refer to section | metadata definitions like MODULE_AUTHOR() or MODULE_LICENSE(). Refer to section | ||||||
| 5. for a way to create missing import statements automatically. | 5. for a way to create missing import statements automatically. | ||||||
| 
 | 
 | ||||||
|  | @ -128,7 +128,7 @@ enable loading regardless, but will emit a warning. | ||||||
| Missing namespaces imports can easily be detected at build time. In fact, | Missing namespaces imports can easily be detected at build time. In fact, | ||||||
| modpost will emit a warning if a module uses a symbol from a namespace | modpost will emit a warning if a module uses a symbol from a namespace | ||||||
| without importing it. | without importing it. | ||||||
| MODULE_IMPORT_NS() statements will usually be added at a definite location | MODULE_IMPORT_NS("") statements will usually be added at a definite location | ||||||
| (along with other module meta data). To make the life of module authors (and | (along with other module meta data). To make the life of module authors (and | ||||||
| subsystem maintainers) easier, a script and make target is available to fixup | subsystem maintainers) easier, a script and make target is available to fixup | ||||||
| missing imports. Fixing missing imports can be done with:: | missing imports. Fixing missing imports can be done with:: | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ Tenete presente che per via dell'espansione delle macro questo argomento deve | ||||||
| essere un simbolo di preprocessore. Per esempio per esportare il | essere un simbolo di preprocessore. Per esempio per esportare il | ||||||
| simbolo ``usb_stor_suspend`` nello spazio dei nomi ``USB_STORAGE`` usate:: | simbolo ``usb_stor_suspend`` nello spazio dei nomi ``USB_STORAGE`` usate:: | ||||||
| 
 | 
 | ||||||
| 	EXPORT_SYMBOL_NS(usb_stor_suspend, USB_STORAGE); | 	EXPORT_SYMBOL_NS(usb_stor_suspend, "USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| Di conseguenza, nella tabella dei simboli del kernel ci sarà una voce | Di conseguenza, nella tabella dei simboli del kernel ci sarà una voce | ||||||
| rappresentata dalla struttura ``kernel_symbol`` che avrà il campo | rappresentata dalla struttura ``kernel_symbol`` che avrà il campo | ||||||
|  | @ -94,7 +94,7 @@ dei nomi che contiene i simboli desiderati. Per esempio un modulo che | ||||||
| usa il simbolo usb_stor_suspend deve importare lo spazio dei nomi | usa il simbolo usb_stor_suspend deve importare lo spazio dei nomi | ||||||
| USB_STORAGE usando la seguente dichiarazione:: | USB_STORAGE usando la seguente dichiarazione:: | ||||||
| 
 | 
 | ||||||
| 	MODULE_IMPORT_NS(USB_STORAGE); | 	MODULE_IMPORT_NS("USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| Questo creerà un'etichetta ``modinfo`` per ogni spazio dei nomi | Questo creerà un'etichetta ``modinfo`` per ogni spazio dei nomi | ||||||
| importato. Un risvolto di questo fatto è che gli spazi dei | importato. Un risvolto di questo fatto è che gli spazi dei | ||||||
|  | @ -107,7 +107,7 @@ modinfo:: | ||||||
| 	[...] | 	[...] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Si consiglia di posizionare la dichiarazione MODULE_IMPORT_NS() vicino | Si consiglia di posizionare la dichiarazione MODULE_IMPORT_NS("") vicino | ||||||
| ai metadati del modulo come MODULE_AUTHOR() o MODULE_LICENSE(). Fate | ai metadati del modulo come MODULE_AUTHOR() o MODULE_LICENSE(). Fate | ||||||
| riferimento alla sezione 5. per creare automaticamente le importazioni | riferimento alla sezione 5. per creare automaticamente le importazioni | ||||||
| mancanti. | mancanti. | ||||||
|  | @ -131,7 +131,7 @@ emetterà un avviso. | ||||||
| La mancanza di un'importazione può essere individuata facilmente al momento | La mancanza di un'importazione può essere individuata facilmente al momento | ||||||
| della compilazione. Infatti, modpost emetterà un avviso se il modulo usa | della compilazione. Infatti, modpost emetterà un avviso se il modulo usa | ||||||
| un simbolo da uno spazio dei nomi che non è stato importato. | un simbolo da uno spazio dei nomi che non è stato importato. | ||||||
| La dichiarazione MODULE_IMPORT_NS() viene solitamente aggiunta in un posto | La dichiarazione MODULE_IMPORT_NS("") viene solitamente aggiunta in un posto | ||||||
| ben definito (assieme agli altri metadati del modulo). Per facilitare | ben definito (assieme agli altri metadati del modulo). Per facilitare | ||||||
| la vita di chi scrive moduli (e i manutentori di sottosistemi), esistono uno | la vita di chi scrive moduli (e i manutentori di sottosistemi), esistono uno | ||||||
| script e un target make per correggere le importazioni mancanti. Questo può | script e un target make per correggere le importazioni mancanti. Questo può | ||||||
|  |  | ||||||
|  | @ -48,7 +48,7 @@ | ||||||
| 要是一个预处理器符号。例如,要把符号 ``usb_stor_suspend`` 导出到命名空间 ``USB_STORAGE``, | 要是一个预处理器符号。例如,要把符号 ``usb_stor_suspend`` 导出到命名空间 ``USB_STORAGE``, | ||||||
| 请使用:: | 请使用:: | ||||||
| 
 | 
 | ||||||
|        EXPORT_SYMBOL_NS(usb_stor_suspend, USB_STORAGE); |        EXPORT_SYMBOL_NS(usb_stor_suspend, "USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| 相应的 ksymtab 条目结构体 ``kernel_symbol`` 将有相应的成员 ``命名空间`` 集。 | 相应的 ksymtab 条目结构体 ``kernel_symbol`` 将有相应的成员 ``命名空间`` 集。 | ||||||
| 导出时未指明命名空间的符号将指向 ``NULL`` 。如果没有定义命名空间,则默认没有。 | 导出时未指明命名空间的符号将指向 ``NULL`` 。如果没有定义命名空间,则默认没有。 | ||||||
|  | @ -88,7 +88,7 @@ | ||||||
| 表示它所使用的命名空间的符号。例如,一个使用usb_stor_suspend符号的 | 表示它所使用的命名空间的符号。例如,一个使用usb_stor_suspend符号的 | ||||||
| 模块,需要使用如下语句导入命名空间USB_STORAGE:: | 模块,需要使用如下语句导入命名空间USB_STORAGE:: | ||||||
| 
 | 
 | ||||||
|        MODULE_IMPORT_NS(USB_STORAGE); |        MODULE_IMPORT_NS("USB_STORAGE"); | ||||||
| 
 | 
 | ||||||
| 这将在模块中为每个导入的命名空间创建一个 ``modinfo`` 标签。这也顺带 | 这将在模块中为每个导入的命名空间创建一个 ``modinfo`` 标签。这也顺带 | ||||||
| 使得可以用modinfo检查模块已导入的命名空间:: | 使得可以用modinfo检查模块已导入的命名空间:: | ||||||
|  | @ -99,7 +99,7 @@ | ||||||
|        [...] |        [...] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 建议将 MODULE_IMPORT_NS() 语句添加到靠近其他模块元数据定义的地方, | 建议将 MODULE_IMPORT_NS("") 语句添加到靠近其他模块元数据定义的地方, | ||||||
| 如 MODULE_AUTHOR() 或 MODULE_LICENSE() 。关于自动创建缺失的导入 | 如 MODULE_AUTHOR() 或 MODULE_LICENSE() 。关于自动创建缺失的导入 | ||||||
| 语句的方法,请参考第5节。 | 语句的方法,请参考第5节。 | ||||||
| 
 | 
 | ||||||
|  | @ -118,7 +118,7 @@ EINVAL方式失败。要允许加载不满足这个前提条件的模块,可 | ||||||
| 
 | 
 | ||||||
| 缺少命名空间的导入可以在构建时很容易被检测到。事实上,如果一个模块 | 缺少命名空间的导入可以在构建时很容易被检测到。事实上,如果一个模块 | ||||||
| 使用了一个命名空间的符号而没有导入它,modpost会发出警告。 | 使用了一个命名空间的符号而没有导入它,modpost会发出警告。 | ||||||
| MODULE_IMPORT_NS()语句通常会被添加到一个明确的位置(和其他模块元 | MODULE_IMPORT_NS("")语句通常会被添加到一个明确的位置(和其他模块元 | ||||||
| 数据一起)。为了使模块作者(和子系统维护者)的生活更加轻松,我们提 | 数据一起)。为了使模块作者(和子系统维护者)的生活更加轻松,我们提 | ||||||
| 供了一个脚本和make目标来修复丢失的导入。修复丢失的导入可以用:: | 供了一个脚本和make目标来修复丢失的导入。修复丢失的导入可以用:: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "aes-ce-setkey.h" | #include "aes-ce-setkey.h" | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
| 
 | 
 | ||||||
| static int num_rounds(struct crypto_aes_ctx *ctx) | static int num_rounds(struct crypto_aes_ctx *ctx) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -1048,7 +1048,7 @@ static int __init aes_init(void) | ||||||
| 
 | 
 | ||||||
| #ifdef USE_V8_CRYPTO_EXTENSIONS | #ifdef USE_V8_CRYPTO_EXTENSIONS | ||||||
| module_cpu_feature_match(AES, aes_init); | module_cpu_feature_match(AES, aes_init); | ||||||
| EXPORT_SYMBOL_NS(ce_aes_mac_update, CRYPTO_INTERNAL); | EXPORT_SYMBOL_NS(ce_aes_mac_update, "CRYPTO_INTERNAL"); | ||||||
| #else | #else | ||||||
| module_init(aes_init); | module_init(aes_init); | ||||||
| EXPORT_SYMBOL(neon_aes_ecb_encrypt); | EXPORT_SYMBOL(neon_aes_ecb_encrypt); | ||||||
|  |  | ||||||
|  | @ -74,4 +74,4 @@ MODULE_DESCRIPTION("IBM VMX cryptographic acceleration instructions " | ||||||
| 		   "support on Power 8"); | 		   "support on Power 8"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_VERSION("1.0.0"); | MODULE_VERSION("1.0.0"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -1168,4 +1168,4 @@ MODULE_ALIAS_CRYPTO("aes-all"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); | MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -354,7 +354,7 @@ bool cpu_cache_has_invalidate_memregion(void) | ||||||
| { | { | ||||||
| 	return !cpu_feature_enabled(X86_FEATURE_HYPERVISOR); | 	return !cpu_feature_enabled(X86_FEATURE_HYPERVISOR); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cpu_cache_has_invalidate_memregion, DEVMEM); | EXPORT_SYMBOL_NS_GPL(cpu_cache_has_invalidate_memregion, "DEVMEM"); | ||||||
| 
 | 
 | ||||||
| int cpu_cache_invalidate_memregion(int res_desc) | int cpu_cache_invalidate_memregion(int res_desc) | ||||||
| { | { | ||||||
|  | @ -363,7 +363,7 @@ int cpu_cache_invalidate_memregion(int res_desc) | ||||||
| 	wbinvd_on_all_cpus(); | 	wbinvd_on_all_cpus(); | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cpu_cache_invalidate_memregion, DEVMEM); | EXPORT_SYMBOL_NS_GPL(cpu_cache_invalidate_memregion, "DEVMEM"); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| static void __cpa_flush_all(void *arg) | static void __cpa_flush_all(void *arg) | ||||||
|  |  | ||||||
|  | @ -646,4 +646,4 @@ MODULE_DESCRIPTION("Adiantum length-preserving encryption mode"); | ||||||
| MODULE_LICENSE("GPL v2"); | MODULE_LICENSE("GPL v2"); | ||||||
| MODULE_AUTHOR("Eric Biggers <ebiggers@google.com>"); | MODULE_AUTHOR("Eric Biggers <ebiggers@google.com>"); | ||||||
| MODULE_ALIAS_CRYPTO("adiantum"); | MODULE_ALIAS_CRYPTO("adiantum"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -471,4 +471,4 @@ subsys_initcall(prng_mod_init); | ||||||
| module_exit(prng_mod_fini); | module_exit(prng_mod_fini); | ||||||
| MODULE_ALIAS_CRYPTO("stdrng"); | MODULE_ALIAS_CRYPTO("stdrng"); | ||||||
| MODULE_ALIAS_CRYPTO("ansi_cprng"); | MODULE_ALIAS_CRYPTO("ansi_cprng"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -949,4 +949,4 @@ MODULE_ALIAS_CRYPTO("ccm_base"); | ||||||
| MODULE_ALIAS_CRYPTO("rfc4309"); | MODULE_ALIAS_CRYPTO("rfc4309"); | ||||||
| MODULE_ALIAS_CRYPTO("ccm"); | MODULE_ALIAS_CRYPTO("ccm"); | ||||||
| MODULE_ALIAS_CRYPTO("cbcmac"); | MODULE_ALIAS_CRYPTO("cbcmac"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -53,7 +53,7 @@ int crypto_cipher_setkey(struct crypto_cipher *tfm, | ||||||
| 
 | 
 | ||||||
| 	return cia->cia_setkey(crypto_cipher_tfm(tfm), key, keylen); | 	return cia->cia_setkey(crypto_cipher_tfm(tfm), key, keylen); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(crypto_cipher_setkey, CRYPTO_INTERNAL); | EXPORT_SYMBOL_NS_GPL(crypto_cipher_setkey, "CRYPTO_INTERNAL"); | ||||||
| 
 | 
 | ||||||
| static inline void cipher_crypt_one(struct crypto_cipher *tfm, | static inline void cipher_crypt_one(struct crypto_cipher *tfm, | ||||||
| 				    u8 *dst, const u8 *src, bool enc) | 				    u8 *dst, const u8 *src, bool enc) | ||||||
|  | @ -81,14 +81,14 @@ void crypto_cipher_encrypt_one(struct crypto_cipher *tfm, | ||||||
| { | { | ||||||
| 	cipher_crypt_one(tfm, dst, src, true); | 	cipher_crypt_one(tfm, dst, src, true); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(crypto_cipher_encrypt_one, CRYPTO_INTERNAL); | EXPORT_SYMBOL_NS_GPL(crypto_cipher_encrypt_one, "CRYPTO_INTERNAL"); | ||||||
| 
 | 
 | ||||||
| void crypto_cipher_decrypt_one(struct crypto_cipher *tfm, | void crypto_cipher_decrypt_one(struct crypto_cipher *tfm, | ||||||
| 			       u8 *dst, const u8 *src) | 			       u8 *dst, const u8 *src) | ||||||
| { | { | ||||||
| 	cipher_crypt_one(tfm, dst, src, false); | 	cipher_crypt_one(tfm, dst, src, false); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(crypto_cipher_decrypt_one, CRYPTO_INTERNAL); | EXPORT_SYMBOL_NS_GPL(crypto_cipher_decrypt_one, "CRYPTO_INTERNAL"); | ||||||
| 
 | 
 | ||||||
| struct crypto_cipher *crypto_clone_cipher(struct crypto_cipher *cipher) | struct crypto_cipher *crypto_clone_cipher(struct crypto_cipher *cipher) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -313,4 +313,4 @@ module_exit(crypto_cmac_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("CMAC keyed hash algorithm"); | MODULE_DESCRIPTION("CMAC keyed hash algorithm"); | ||||||
| MODULE_ALIAS_CRYPTO("cmac"); | MODULE_ALIAS_CRYPTO("cmac"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -357,4 +357,4 @@ MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("CTR block cipher mode of operation"); | MODULE_DESCRIPTION("CTR block cipher mode of operation"); | ||||||
| MODULE_ALIAS_CRYPTO("rfc3686"); | MODULE_ALIAS_CRYPTO("rfc3686"); | ||||||
| MODULE_ALIAS_CRYPTO("ctr"); | MODULE_ALIAS_CRYPTO("ctr"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -2151,4 +2151,4 @@ MODULE_DESCRIPTION("NIST SP800-90A Deterministic Random Bit Generator (DRBG) " | ||||||
| 		   CRYPTO_DRBG_HMAC_STRING | 		   CRYPTO_DRBG_HMAC_STRING | ||||||
| 		   CRYPTO_DRBG_CTR_STRING); | 		   CRYPTO_DRBG_CTR_STRING); | ||||||
| MODULE_ALIAS_CRYPTO("stdrng"); | MODULE_ALIAS_CRYPTO("stdrng"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -225,4 +225,4 @@ module_exit(crypto_ecb_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("ECB block cipher mode of operation"); | MODULE_DESCRIPTION("ECB block cipher mode of operation"); | ||||||
| MODULE_ALIAS_CRYPTO("ecb"); | MODULE_ALIAS_CRYPTO("ecb"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -649,4 +649,4 @@ module_exit(essiv_module_exit); | ||||||
| MODULE_DESCRIPTION("ESSIV skcipher/aead wrapper for block encryption"); | MODULE_DESCRIPTION("ESSIV skcipher/aead wrapper for block encryption"); | ||||||
| MODULE_LICENSE("GPL v2"); | MODULE_LICENSE("GPL v2"); | ||||||
| MODULE_ALIAS_CRYPTO("essiv"); | MODULE_ALIAS_CRYPTO("essiv"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -576,4 +576,4 @@ module_exit(hctr2_module_exit); | ||||||
| MODULE_DESCRIPTION("HCTR2 length-preserving encryption mode"); | MODULE_DESCRIPTION("HCTR2 length-preserving encryption mode"); | ||||||
| MODULE_LICENSE("GPL v2"); | MODULE_LICENSE("GPL v2"); | ||||||
| MODULE_ALIAS_CRYPTO("hctr2"); | MODULE_ALIAS_CRYPTO("hctr2"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -317,4 +317,4 @@ MODULE_LICENSE("Dual BSD/GPL"); | ||||||
| MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>"); | MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>"); | ||||||
| MODULE_DESCRIPTION("Key Wrapping (RFC3394 / NIST SP800-38F)"); | MODULE_DESCRIPTION("Key Wrapping (RFC3394 / NIST SP800-38F)"); | ||||||
| MODULE_ALIAS_CRYPTO("kw"); | MODULE_ALIAS_CRYPTO("kw"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -192,4 +192,4 @@ module_exit(crypto_pcbc_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("PCBC block cipher mode of operation"); | MODULE_DESCRIPTION("PCBC block cipher mode of operation"); | ||||||
| MODULE_ALIAS_CRYPTO("pcbc"); | MODULE_ALIAS_CRYPTO("pcbc"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -1085,4 +1085,4 @@ EXPORT_SYMBOL_GPL(skcipher_alloc_instance_simple); | ||||||
| 
 | 
 | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("Symmetric key cipher type"); | MODULE_DESCRIPTION("Symmetric key cipher type"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -39,7 +39,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "internal.h" | #include "internal.h" | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
| 
 | 
 | ||||||
| static bool notests; | static bool notests; | ||||||
| module_param(notests, bool, 0644); | module_param(notests, bool, 0644); | ||||||
|  |  | ||||||
|  | @ -693,4 +693,4 @@ module_exit(vmac_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("VMAC hash algorithm"); | MODULE_DESCRIPTION("VMAC hash algorithm"); | ||||||
| MODULE_ALIAS_CRYPTO("vmac64"); | MODULE_ALIAS_CRYPTO("vmac64"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -261,4 +261,4 @@ module_exit(crypto_xcbc_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("XCBC keyed hash algorithm"); | MODULE_DESCRIPTION("XCBC keyed hash algorithm"); | ||||||
| MODULE_ALIAS_CRYPTO("xcbc"); | MODULE_ALIAS_CRYPTO("xcbc"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -188,4 +188,4 @@ module_exit(crypto_xctr_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("XCTR block cipher mode of operation"); | MODULE_DESCRIPTION("XCTR block cipher mode of operation"); | ||||||
| MODULE_ALIAS_CRYPTO("xctr"); | MODULE_ALIAS_CRYPTO("xctr"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
|  |  | ||||||
|  | @ -472,5 +472,5 @@ module_exit(xts_module_exit); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_DESCRIPTION("XTS block cipher mode"); | MODULE_DESCRIPTION("XTS block cipher mode"); | ||||||
| MODULE_ALIAS_CRYPTO("xts"); | MODULE_ALIAS_CRYPTO("xts"); | ||||||
| MODULE_IMPORT_NS(CRYPTO_INTERNAL); | MODULE_IMPORT_NS("CRYPTO_INTERNAL"); | ||||||
| MODULE_SOFTDEP("pre: ecb"); | MODULE_SOFTDEP("pre: ecb"); | ||||||
|  |  | ||||||
|  | @ -14,7 +14,7 @@ | ||||||
| #include <linux/vmalloc.h> | #include <linux/vmalloc.h> | ||||||
| #include <linux/pci-p2pdma.h> | #include <linux/pci-p2pdma.h> | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(DMA_BUF); | MODULE_IMPORT_NS("DMA_BUF"); | ||||||
| 
 | 
 | ||||||
| #define HL_MMU_DEBUG	0 | #define HL_MMU_DEBUG	0 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ | ||||||
| #include "qaic_timesync.h" | #include "qaic_timesync.h" | ||||||
| #include "sahara.h" | #include "sahara.h" | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(DMA_BUF); | MODULE_IMPORT_NS("DMA_BUF"); | ||||||
| 
 | 
 | ||||||
| #define PCI_DEV_AIC080			0xa080 | #define PCI_DEV_AIC080			0xa080 | ||||||
| #define PCI_DEV_AIC100			0xa100 | #define PCI_DEV_AIC100			0xa100 | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ int einj_cxl_available_error_type_show(struct seq_file *m, void *v) | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(einj_cxl_available_error_type_show, CXL); | EXPORT_SYMBOL_NS_GPL(einj_cxl_available_error_type_show, "CXL"); | ||||||
| 
 | 
 | ||||||
| static int cxl_dport_get_sbdf(struct pci_dev *dport_dev, u64 *sbdf) | static int cxl_dport_get_sbdf(struct pci_dev *dport_dev, u64 *sbdf) | ||||||
| { | { | ||||||
|  | @ -83,7 +83,7 @@ int einj_cxl_inject_rch_error(u64 rcrb, u64 type) | ||||||
| 	return einj_cxl_rch_error_inject(type, 0x2, rcrb, GENMASK_ULL(63, 0), | 	return einj_cxl_rch_error_inject(type, 0x2, rcrb, GENMASK_ULL(63, 0), | ||||||
| 					 0, 0); | 					 0, 0); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_rch_error, CXL); | EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_rch_error, "CXL"); | ||||||
| 
 | 
 | ||||||
| int einj_cxl_inject_error(struct pci_dev *dport, u64 type) | int einj_cxl_inject_error(struct pci_dev *dport, u64 type) | ||||||
| { | { | ||||||
|  | @ -104,10 +104,10 @@ int einj_cxl_inject_error(struct pci_dev *dport, u64 type) | ||||||
| 
 | 
 | ||||||
| 	return einj_error_inject(type, 0x4, 0, 0, 0, param4); | 	return einj_error_inject(type, 0x4, 0, 0, 0, param4); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_error, CXL); | EXPORT_SYMBOL_NS_GPL(einj_cxl_inject_error, "CXL"); | ||||||
| 
 | 
 | ||||||
| bool einj_cxl_is_initialized(void) | bool einj_cxl_is_initialized(void) | ||||||
| { | { | ||||||
| 	return einj_initialized; | 	return einj_initialized; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(einj_cxl_is_initialized, CXL); | EXPORT_SYMBOL_NS_GPL(einj_cxl_is_initialized, "CXL"); | ||||||
|  |  | ||||||
|  | @ -726,7 +726,7 @@ int cxl_cper_register_work(struct work_struct *work) | ||||||
| 	cxl_cper_work = work; | 	cxl_cper_work = work; | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cxl_cper_register_work, CXL); | EXPORT_SYMBOL_NS_GPL(cxl_cper_register_work, "CXL"); | ||||||
| 
 | 
 | ||||||
| int cxl_cper_unregister_work(struct work_struct *work) | int cxl_cper_unregister_work(struct work_struct *work) | ||||||
| { | { | ||||||
|  | @ -737,13 +737,13 @@ int cxl_cper_unregister_work(struct work_struct *work) | ||||||
| 	cxl_cper_work = NULL; | 	cxl_cper_work = NULL; | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cxl_cper_unregister_work, CXL); | EXPORT_SYMBOL_NS_GPL(cxl_cper_unregister_work, "CXL"); | ||||||
| 
 | 
 | ||||||
| int cxl_cper_kfifo_get(struct cxl_cper_work_data *wd) | int cxl_cper_kfifo_get(struct cxl_cper_work_data *wd) | ||||||
| { | { | ||||||
| 	return kfifo_get(&cxl_cper_fifo, wd); | 	return kfifo_get(&cxl_cper_fifo, wd); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cxl_cper_kfifo_get, CXL); | EXPORT_SYMBOL_NS_GPL(cxl_cper_kfifo_get, "CXL"); | ||||||
| 
 | 
 | ||||||
| static bool ghes_do_proc(struct ghes *ghes, | static bool ghes_do_proc(struct ghes *ghes, | ||||||
| 			 const struct acpi_hest_generic_status *estatus) | 			 const struct acpi_hest_generic_status *estatus) | ||||||
|  |  | ||||||
|  | @ -151,7 +151,7 @@ int acpi_get_genport_coordinates(u32 uid, | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(acpi_get_genport_coordinates, CXL); | EXPORT_SYMBOL_NS_GPL(acpi_get_genport_coordinates, "CXL"); | ||||||
| 
 | 
 | ||||||
| static __init void alloc_memory_initiator(unsigned int cpu_pxm) | static __init void alloc_memory_initiator(unsigned int cpu_pxm) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -1082,7 +1082,7 @@ static void __exit acpi_thermal_exit(void) | ||||||
| module_init(acpi_thermal_init); | module_init(acpi_thermal_init); | ||||||
| module_exit(acpi_thermal_exit); | module_exit(acpi_thermal_exit); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(ACPI_THERMAL); | MODULE_IMPORT_NS("ACPI_THERMAL"); | ||||||
| MODULE_AUTHOR("Paul Diefenbaugh"); | MODULE_AUTHOR("Paul Diefenbaugh"); | ||||||
| MODULE_DESCRIPTION("ACPI Thermal Zone Driver"); | MODULE_DESCRIPTION("ACPI Thermal Zone Driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -53,25 +53,25 @@ int acpi_active_trip_temp(struct acpi_device *adev, int id, int *ret_temp) | ||||||
| 
 | 
 | ||||||
| 	return acpi_trip_temp(adev, obj_name, ret_temp); | 	return acpi_trip_temp(adev, obj_name, ret_temp); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(acpi_active_trip_temp, ACPI_THERMAL); | EXPORT_SYMBOL_NS_GPL(acpi_active_trip_temp, "ACPI_THERMAL"); | ||||||
| 
 | 
 | ||||||
| int acpi_passive_trip_temp(struct acpi_device *adev, int *ret_temp) | int acpi_passive_trip_temp(struct acpi_device *adev, int *ret_temp) | ||||||
| { | { | ||||||
| 	return acpi_trip_temp(adev, "_PSV", ret_temp); | 	return acpi_trip_temp(adev, "_PSV", ret_temp); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(acpi_passive_trip_temp, ACPI_THERMAL); | EXPORT_SYMBOL_NS_GPL(acpi_passive_trip_temp, "ACPI_THERMAL"); | ||||||
| 
 | 
 | ||||||
| int acpi_hot_trip_temp(struct acpi_device *adev, int *ret_temp) | int acpi_hot_trip_temp(struct acpi_device *adev, int *ret_temp) | ||||||
| { | { | ||||||
| 	return acpi_trip_temp(adev, "_HOT", ret_temp); | 	return acpi_trip_temp(adev, "_HOT", ret_temp); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(acpi_hot_trip_temp, ACPI_THERMAL); | EXPORT_SYMBOL_NS_GPL(acpi_hot_trip_temp, "ACPI_THERMAL"); | ||||||
| 
 | 
 | ||||||
| int acpi_critical_trip_temp(struct acpi_device *adev, int *ret_temp) | int acpi_critical_trip_temp(struct acpi_device *adev, int *ret_temp) | ||||||
| { | { | ||||||
| 	return acpi_trip_temp(adev, "_CRT", ret_temp); | 	return acpi_trip_temp(adev, "_CRT", ret_temp); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(acpi_critical_trip_temp, ACPI_THERMAL); | EXPORT_SYMBOL_NS_GPL(acpi_critical_trip_temp, "ACPI_THERMAL"); | ||||||
| 
 | 
 | ||||||
| static int thermal_temp(int error, int temp_decik, int *ret_temp) | static int thermal_temp(int error, int temp_decik, int *ret_temp) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -780,5 +780,5 @@ module_i2c_driver(ht16k33_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Holtek HT16K33 driver"); | MODULE_DESCRIPTION("Holtek HT16K33 driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(LINEDISP); | MODULE_IMPORT_NS("LINEDISP"); | ||||||
| MODULE_AUTHOR("Robin van der Gracht <robin@protonic.nl>"); | MODULE_AUTHOR("Robin van der Gracht <robin@protonic.nl>"); | ||||||
|  |  | ||||||
|  | @ -298,4 +298,4 @@ module_platform_driver(img_ascii_lcd_driver); | ||||||
| MODULE_DESCRIPTION("Imagination Technologies ASCII LCD Display"); | MODULE_DESCRIPTION("Imagination Technologies ASCII LCD Display"); | ||||||
| MODULE_AUTHOR("Paul Burton <paul.burton@mips.com>"); | MODULE_AUTHOR("Paul Burton <paul.burton@mips.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(LINEDISP); | MODULE_IMPORT_NS("LINEDISP"); | ||||||
|  |  | ||||||
|  | @ -381,7 +381,7 @@ int linedisp_register(struct linedisp *linedisp, struct device *parent, | ||||||
| 	put_device(&linedisp->dev); | 	put_device(&linedisp->dev); | ||||||
| 	return err; | 	return err; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(linedisp_register, LINEDISP); | EXPORT_SYMBOL_NS_GPL(linedisp_register, "LINEDISP"); | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * linedisp_unregister - unregister a character line display |  * linedisp_unregister - unregister a character line display | ||||||
|  | @ -394,7 +394,7 @@ void linedisp_unregister(struct linedisp *linedisp) | ||||||
| 	del_timer_sync(&linedisp->timer); | 	del_timer_sync(&linedisp->timer); | ||||||
| 	put_device(&linedisp->dev); | 	put_device(&linedisp->dev); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(linedisp_unregister, LINEDISP); | EXPORT_SYMBOL_NS_GPL(linedisp_unregister, "LINEDISP"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Character line display core support"); | MODULE_DESCRIPTION("Character line display core support"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -191,4 +191,4 @@ module_i2c_driver(max6959_i2c_driver); | ||||||
| MODULE_DESCRIPTION("MAX6958/6959 7-segment LED controller"); | MODULE_DESCRIPTION("MAX6958/6959 7-segment LED controller"); | ||||||
| MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>"); | MODULE_AUTHOR("Andy Shevchenko <andriy.shevchenko@linux.intel.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(LINEDISP); | MODULE_IMPORT_NS("LINEDISP"); | ||||||
|  |  | ||||||
|  | @ -108,4 +108,4 @@ module_platform_driver(seg_led_driver); | ||||||
| MODULE_AUTHOR("Chris Packham <chris.packham@alliedtelesis.co.nz>"); | MODULE_AUTHOR("Chris Packham <chris.packham@alliedtelesis.co.nz>"); | ||||||
| MODULE_DESCRIPTION("7 segment LED driver"); | MODULE_DESCRIPTION("7 segment LED driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(LINEDISP); | MODULE_IMPORT_NS("LINEDISP"); | ||||||
|  |  | ||||||
|  | @ -61,7 +61,7 @@ bool firmware_request_builtin(struct firmware *fw, const char *name) | ||||||
| 
 | 
 | ||||||
| 	return false; | 	return false; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(firmware_request_builtin, TEST_FIRMWARE); | EXPORT_SYMBOL_NS_GPL(firmware_request_builtin, "TEST_FIRMWARE"); | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * firmware_request_builtin_buf() - load builtin firmware into optional buffer |  * firmware_request_builtin_buf() - load builtin firmware into optional buffer | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ struct firmware_fallback_config fw_fallback_config = { | ||||||
| 	.loading_timeout = 60, | 	.loading_timeout = 60, | ||||||
| 	.old_timeout = 60, | 	.old_timeout = 60, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(fw_fallback_config, FIRMWARE_LOADER_PRIVATE); | EXPORT_SYMBOL_NS_GPL(fw_fallback_config, "FIRMWARE_LOADER_PRIVATE"); | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SYSCTL | #ifdef CONFIG_SYSCTL | ||||||
| static struct ctl_table firmware_config_table[] = { | static struct ctl_table firmware_config_table[] = { | ||||||
|  | @ -56,13 +56,13 @@ int register_firmware_config_sysctl(void) | ||||||
| 		return -ENOMEM; | 		return -ENOMEM; | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(register_firmware_config_sysctl, FIRMWARE_LOADER_PRIVATE); | EXPORT_SYMBOL_NS_GPL(register_firmware_config_sysctl, "FIRMWARE_LOADER_PRIVATE"); | ||||||
| 
 | 
 | ||||||
| void unregister_firmware_config_sysctl(void) | void unregister_firmware_config_sysctl(void) | ||||||
| { | { | ||||||
| 	unregister_sysctl_table(firmware_config_sysct_table_header); | 	unregister_sysctl_table(firmware_config_sysct_table_header); | ||||||
| 	firmware_config_sysct_table_header = NULL; | 	firmware_config_sysct_table_header = NULL; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(unregister_firmware_config_sysctl, FIRMWARE_LOADER_PRIVATE); | EXPORT_SYMBOL_NS_GPL(unregister_firmware_config_sysctl, "FIRMWARE_LOADER_PRIVATE"); | ||||||
| 
 | 
 | ||||||
| #endif /* CONFIG_SYSCTL */ | #endif /* CONFIG_SYSCTL */ | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "firmware.h" | #include "firmware.h" | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(FIRMWARE_LOADER_PRIVATE); | MODULE_IMPORT_NS("FIRMWARE_LOADER_PRIVATE"); | ||||||
| 
 | 
 | ||||||
| extern struct firmware_fallback_config fw_fallback_config; | extern struct firmware_fallback_config fw_fallback_config; | ||||||
| extern struct device_attribute dev_attr_loading; | extern struct device_attribute dev_attr_loading; | ||||||
|  |  | ||||||
|  | @ -868,7 +868,7 @@ int cdx_device_add(struct cdx_dev_params *dev_params) | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cdx_device_add, CDX_BUS_CONTROLLER); | EXPORT_SYMBOL_NS_GPL(cdx_device_add, "CDX_BUS_CONTROLLER"); | ||||||
| 
 | 
 | ||||||
| struct device *cdx_bus_add(struct cdx_controller *cdx, u8 bus_num) | struct device *cdx_bus_add(struct cdx_controller *cdx, u8 bus_num) | ||||||
| { | { | ||||||
|  | @ -915,7 +915,7 @@ struct device *cdx_bus_add(struct cdx_controller *cdx, u8 bus_num) | ||||||
| 
 | 
 | ||||||
| 	return NULL; | 	return NULL; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cdx_bus_add, CDX_BUS_CONTROLLER); | EXPORT_SYMBOL_NS_GPL(cdx_bus_add, "CDX_BUS_CONTROLLER"); | ||||||
| 
 | 
 | ||||||
| int cdx_register_controller(struct cdx_controller *cdx) | int cdx_register_controller(struct cdx_controller *cdx) | ||||||
| { | { | ||||||
|  | @ -940,7 +940,7 @@ int cdx_register_controller(struct cdx_controller *cdx) | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cdx_register_controller, CDX_BUS_CONTROLLER); | EXPORT_SYMBOL_NS_GPL(cdx_register_controller, "CDX_BUS_CONTROLLER"); | ||||||
| 
 | 
 | ||||||
| void cdx_unregister_controller(struct cdx_controller *cdx) | void cdx_unregister_controller(struct cdx_controller *cdx) | ||||||
| { | { | ||||||
|  | @ -955,7 +955,7 @@ void cdx_unregister_controller(struct cdx_controller *cdx) | ||||||
| 
 | 
 | ||||||
| 	mutex_unlock(&cdx_controller_lock); | 	mutex_unlock(&cdx_controller_lock); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cdx_unregister_controller, CDX_BUS_CONTROLLER); | EXPORT_SYMBOL_NS_GPL(cdx_unregister_controller, "CDX_BUS_CONTROLLER"); | ||||||
| 
 | 
 | ||||||
| static int __init cdx_bus_init(void) | static int __init cdx_bus_init(void) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -189,4 +189,4 @@ struct irq_domain *cdx_msi_domain_init(struct device *dev) | ||||||
| 
 | 
 | ||||||
| 	return cdx_msi_domain; | 	return cdx_msi_domain; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(cdx_msi_domain_init, CDX_BUS_CONTROLLER); | EXPORT_SYMBOL_NS_GPL(cdx_msi_domain_init, "CDX_BUS_CONTROLLER"); | ||||||
|  |  | ||||||
|  | @ -275,4 +275,4 @@ module_exit(cdx_controller_exit); | ||||||
| MODULE_AUTHOR("AMD Inc."); | MODULE_AUTHOR("AMD Inc."); | ||||||
| MODULE_DESCRIPTION("CDX controller for AMD devices"); | MODULE_DESCRIPTION("CDX controller for AMD devices"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CDX_BUS_CONTROLLER); | MODULE_IMPORT_NS("CDX_BUS_CONTROLLER"); | ||||||
|  |  | ||||||
|  | @ -2246,4 +2246,4 @@ MODULE_DESCRIPTION("Amlogic A1 Peripherals Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Jian Hu <jian.hu@amlogic.com>"); | MODULE_AUTHOR("Jian Hu <jian.hu@amlogic.com>"); | ||||||
| MODULE_AUTHOR("Dmitry Rokosov <ddrokosov@sberdevices.ru>"); | MODULE_AUTHOR("Dmitry Rokosov <ddrokosov@sberdevices.ru>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -360,4 +360,4 @@ MODULE_DESCRIPTION("Amlogic S4 PLL Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Jian Hu <jian.hu@amlogic.com>"); | MODULE_AUTHOR("Jian Hu <jian.hu@amlogic.com>"); | ||||||
| MODULE_AUTHOR("Dmitry Rokosov <ddrokosov@sberdevices.ru>"); | MODULE_AUTHOR("Dmitry Rokosov <ddrokosov@sberdevices.ru>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -342,4 +342,4 @@ module_platform_driver(axg_aoclkc_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic AXG Always-ON Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic AXG Always-ON Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -1821,4 +1821,4 @@ module_platform_driver(axg_audio_driver); | ||||||
| MODULE_DESCRIPTION("Amlogic AXG/G12A/SM1 Audio Clock driver"); | MODULE_DESCRIPTION("Amlogic AXG/G12A/SM1 Audio Clock driver"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -2181,4 +2181,4 @@ module_platform_driver(axg_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic AXG Main Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic AXG Main Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -2364,4 +2364,4 @@ module_platform_driver(c3_peripherals_driver); | ||||||
| MODULE_DESCRIPTION("Amlogic C3 Peripherals Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic C3 Peripherals Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Chuan Liu <chuan.liu@amlogic.com>"); | MODULE_AUTHOR("Chuan Liu <chuan.liu@amlogic.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -746,4 +746,4 @@ module_platform_driver(c3_pll_driver); | ||||||
| MODULE_DESCRIPTION("Amlogic C3 PLL Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic C3 PLL Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Chuan Liu <chuan.liu@amlogic.com>"); | MODULE_AUTHOR("Chuan Liu <chuan.liu@amlogic.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -65,9 +65,9 @@ const struct clk_ops meson_clk_cpu_dyndiv_ops = { | ||||||
| 	.determine_rate = meson_clk_cpu_dyndiv_determine_rate, | 	.determine_rate = meson_clk_cpu_dyndiv_determine_rate, | ||||||
| 	.set_rate = meson_clk_cpu_dyndiv_set_rate, | 	.set_rate = meson_clk_cpu_dyndiv_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_cpu_dyndiv_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_cpu_dyndiv_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic CPU Dynamic Clock divider"); | MODULE_DESCRIPTION("Amlogic CPU Dynamic Clock divider"); | ||||||
| MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -130,15 +130,15 @@ const struct clk_ops meson_clk_dualdiv_ops = { | ||||||
| 	.determine_rate	= meson_clk_dualdiv_determine_rate, | 	.determine_rate	= meson_clk_dualdiv_determine_rate, | ||||||
| 	.set_rate	= meson_clk_dualdiv_set_rate, | 	.set_rate	= meson_clk_dualdiv_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_dualdiv_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_dualdiv_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops meson_clk_dualdiv_ro_ops = { | const struct clk_ops meson_clk_dualdiv_ro_ops = { | ||||||
| 	.recalc_rate	= meson_clk_dualdiv_recalc_rate, | 	.recalc_rate	= meson_clk_dualdiv_recalc_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_dualdiv_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_dualdiv_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic dual divider driver"); | MODULE_DESCRIPTION("Amlogic dual divider driver"); | ||||||
| MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -154,7 +154,7 @@ const struct clk_ops meson_clk_mpll_ro_ops = { | ||||||
| 	.recalc_rate	= mpll_recalc_rate, | 	.recalc_rate	= mpll_recalc_rate, | ||||||
| 	.determine_rate	= mpll_determine_rate, | 	.determine_rate	= mpll_determine_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_mpll_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_mpll_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops meson_clk_mpll_ops = { | const struct clk_ops meson_clk_mpll_ops = { | ||||||
| 	.recalc_rate	= mpll_recalc_rate, | 	.recalc_rate	= mpll_recalc_rate, | ||||||
|  | @ -162,9 +162,9 @@ const struct clk_ops meson_clk_mpll_ops = { | ||||||
| 	.set_rate	= mpll_set_rate, | 	.set_rate	= mpll_set_rate, | ||||||
| 	.init		= mpll_init, | 	.init		= mpll_init, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_mpll_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_mpll_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic MPLL driver"); | MODULE_DESCRIPTION("Amlogic MPLL driver"); | ||||||
| MODULE_AUTHOR("Michael Turquette <mturquette@baylibre.com>"); | MODULE_AUTHOR("Michael Turquette <mturquette@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -61,7 +61,7 @@ const struct clk_ops meson_clk_phase_ops = { | ||||||
| 	.get_phase	= meson_clk_phase_get_phase, | 	.get_phase	= meson_clk_phase_get_phase, | ||||||
| 	.set_phase	= meson_clk_phase_set_phase, | 	.set_phase	= meson_clk_phase_set_phase, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_phase_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_phase_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * This is a special clock for the audio controller. |  * This is a special clock for the audio controller. | ||||||
|  | @ -123,7 +123,7 @@ const struct clk_ops meson_clk_triphase_ops = { | ||||||
| 	.get_phase	= meson_clk_triphase_get_phase, | 	.get_phase	= meson_clk_triphase_get_phase, | ||||||
| 	.set_phase	= meson_clk_triphase_set_phase, | 	.set_phase	= meson_clk_triphase_set_phase, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_triphase_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_triphase_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * This is a special clock for the audio controller. |  * This is a special clock for the audio controller. | ||||||
|  | @ -178,9 +178,9 @@ const struct clk_ops meson_sclk_ws_inv_ops = { | ||||||
| 	.get_phase	= meson_sclk_ws_inv_get_phase, | 	.get_phase	= meson_sclk_ws_inv_get_phase, | ||||||
| 	.set_phase	= meson_sclk_ws_inv_set_phase, | 	.set_phase	= meson_sclk_ws_inv_set_phase, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_sclk_ws_inv_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_sclk_ws_inv_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic phase driver"); | MODULE_DESCRIPTION("Amlogic phase driver"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -474,7 +474,7 @@ const struct clk_ops meson_clk_pcie_pll_ops = { | ||||||
| 	.enable		= meson_clk_pcie_pll_enable, | 	.enable		= meson_clk_pcie_pll_enable, | ||||||
| 	.disable	= meson_clk_pll_disable | 	.disable	= meson_clk_pll_disable | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_pcie_pll_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_pcie_pll_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops meson_clk_pll_ops = { | const struct clk_ops meson_clk_pll_ops = { | ||||||
| 	.init		= meson_clk_pll_init, | 	.init		= meson_clk_pll_init, | ||||||
|  | @ -485,16 +485,16 @@ const struct clk_ops meson_clk_pll_ops = { | ||||||
| 	.enable		= meson_clk_pll_enable, | 	.enable		= meson_clk_pll_enable, | ||||||
| 	.disable	= meson_clk_pll_disable | 	.disable	= meson_clk_pll_disable | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_pll_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_pll_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops meson_clk_pll_ro_ops = { | const struct clk_ops meson_clk_pll_ro_ops = { | ||||||
| 	.recalc_rate	= meson_clk_pll_recalc_rate, | 	.recalc_rate	= meson_clk_pll_recalc_rate, | ||||||
| 	.is_enabled	= meson_clk_pll_is_enabled, | 	.is_enabled	= meson_clk_pll_is_enabled, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_pll_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_pll_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic PLL driver"); | MODULE_DESCRIPTION("Amlogic PLL driver"); | ||||||
| MODULE_AUTHOR("Carlo Caione <carlo@endlessm.com>"); | MODULE_AUTHOR("Carlo Caione <carlo@endlessm.com>"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -49,12 +49,12 @@ const struct clk_ops clk_regmap_gate_ops = { | ||||||
| 	.disable = clk_regmap_gate_disable, | 	.disable = clk_regmap_gate_disable, | ||||||
| 	.is_enabled = clk_regmap_gate_is_enabled, | 	.is_enabled = clk_regmap_gate_is_enabled, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_gate_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_gate_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops clk_regmap_gate_ro_ops = { | const struct clk_ops clk_regmap_gate_ro_ops = { | ||||||
| 	.is_enabled = clk_regmap_gate_is_enabled, | 	.is_enabled = clk_regmap_gate_is_enabled, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_gate_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_gate_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| static unsigned long clk_regmap_div_recalc_rate(struct clk_hw *hw, | static unsigned long clk_regmap_div_recalc_rate(struct clk_hw *hw, | ||||||
| 						unsigned long prate) | 						unsigned long prate) | ||||||
|  | @ -125,13 +125,13 @@ const struct clk_ops clk_regmap_divider_ops = { | ||||||
| 	.determine_rate = clk_regmap_div_determine_rate, | 	.determine_rate = clk_regmap_div_determine_rate, | ||||||
| 	.set_rate = clk_regmap_div_set_rate, | 	.set_rate = clk_regmap_div_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_divider_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_divider_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops clk_regmap_divider_ro_ops = { | const struct clk_ops clk_regmap_divider_ro_ops = { | ||||||
| 	.recalc_rate = clk_regmap_div_recalc_rate, | 	.recalc_rate = clk_regmap_div_recalc_rate, | ||||||
| 	.determine_rate = clk_regmap_div_determine_rate, | 	.determine_rate = clk_regmap_div_determine_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_divider_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_divider_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| static u8 clk_regmap_mux_get_parent(struct clk_hw *hw) | static u8 clk_regmap_mux_get_parent(struct clk_hw *hw) | ||||||
| { | { | ||||||
|  | @ -174,14 +174,14 @@ const struct clk_ops clk_regmap_mux_ops = { | ||||||
| 	.set_parent = clk_regmap_mux_set_parent, | 	.set_parent = clk_regmap_mux_set_parent, | ||||||
| 	.determine_rate = clk_regmap_mux_determine_rate, | 	.determine_rate = clk_regmap_mux_determine_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_mux_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_mux_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| const struct clk_ops clk_regmap_mux_ro_ops = { | const struct clk_ops clk_regmap_mux_ro_ops = { | ||||||
| 	.get_parent = clk_regmap_mux_get_parent, | 	.get_parent = clk_regmap_mux_get_parent, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(clk_regmap_mux_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(clk_regmap_mux_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic regmap backed clock driver"); | MODULE_DESCRIPTION("Amlogic regmap backed clock driver"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -477,4 +477,4 @@ module_platform_driver(g12a_aoclkc_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic G12A Always-ON Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic G12A Always-ON Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -5610,4 +5610,4 @@ module_platform_driver(g12a_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic G12/SM1 Main Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic G12/SM1 Main Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -303,4 +303,4 @@ module_platform_driver(gxbb_aoclkc_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic GXBB Always-ON Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic GXBB Always-ON Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -3565,4 +3565,4 @@ module_platform_driver(gxbb_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic GXBB Main Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic GXBB Main Clock Controller driver"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -88,8 +88,8 @@ int meson_aoclkc_probe(struct platform_device *pdev) | ||||||
| 
 | 
 | ||||||
| 	return devm_of_clk_add_hw_provider(dev, meson_clk_hw_get, (void *)&data->hw_clks); | 	return devm_of_clk_add_hw_provider(dev, meson_clk_hw_get, (void *)&data->hw_clks); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_aoclkc_probe, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_aoclkc_probe, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic Always-ON Clock Controller helpers"); | MODULE_DESCRIPTION("Amlogic Always-ON Clock Controller helpers"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -20,8 +20,8 @@ struct clk_hw *meson_clk_hw_get(struct of_phandle_args *clkspec, void *clk_hw_da | ||||||
| 
 | 
 | ||||||
| 	return data->hws[idx]; | 	return data->hws[idx]; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_clk_hw_get, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_clk_hw_get, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic Clock Controller Utilities"); | MODULE_DESCRIPTION("Amlogic Clock Controller Utilities"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -57,8 +57,8 @@ int meson_eeclkc_probe(struct platform_device *pdev) | ||||||
| 
 | 
 | ||||||
| 	return devm_of_clk_add_hw_provider(dev, meson_clk_hw_get, (void *)&data->hw_clks); | 	return devm_of_clk_add_hw_provider(dev, meson_clk_hw_get, (void *)&data->hw_clks); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_eeclkc_probe, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_eeclkc_probe, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic Main Clock Controller Helpers"); | MODULE_DESCRIPTION("Amlogic Main Clock Controller Helpers"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -3814,4 +3814,4 @@ module_platform_driver(s4_driver); | ||||||
| MODULE_DESCRIPTION("Amlogic S4 Peripherals Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic S4 Peripherals Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Yu Tu <yu.tu@amlogic.com>"); | MODULE_AUTHOR("Yu Tu <yu.tu@amlogic.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -872,4 +872,4 @@ module_platform_driver(s4_driver); | ||||||
| MODULE_DESCRIPTION("Amlogic S4 PLL Clock Controller driver"); | MODULE_DESCRIPTION("Amlogic S4 PLL Clock Controller driver"); | ||||||
| MODULE_AUTHOR("Yu Tu <yu.tu@amlogic.com>"); | MODULE_AUTHOR("Yu Tu <yu.tu@amlogic.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -247,9 +247,9 @@ const struct clk_ops meson_sclk_div_ops = { | ||||||
| 	.set_duty_cycle = sclk_div_set_duty_cycle, | 	.set_duty_cycle = sclk_div_set_duty_cycle, | ||||||
| 	.init		= sclk_div_init, | 	.init		= sclk_div_init, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_sclk_div_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_sclk_div_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic Sample divider driver"); | MODULE_DESCRIPTION("Amlogic Sample divider driver"); | ||||||
| MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ const struct clk_ops meson_vclk_gate_ops = { | ||||||
| 	.disable = meson_vclk_gate_disable, | 	.disable = meson_vclk_gate_disable, | ||||||
| 	.is_enabled = meson_vclk_gate_is_enabled, | 	.is_enabled = meson_vclk_gate_is_enabled, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_vclk_gate_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_vclk_gate_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| /* The VCLK Divider has supplementary reset & enable bits */ | /* The VCLK Divider has supplementary reset & enable bits */ | ||||||
| 
 | 
 | ||||||
|  | @ -134,9 +134,9 @@ const struct clk_ops meson_vclk_div_ops = { | ||||||
| 	.disable = meson_vclk_div_disable, | 	.disable = meson_vclk_div_disable, | ||||||
| 	.is_enabled = meson_vclk_div_is_enabled, | 	.is_enabled = meson_vclk_div_is_enabled, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_vclk_div_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_vclk_div_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic vclk clock driver"); | MODULE_DESCRIPTION("Amlogic vclk clock driver"); | ||||||
| MODULE_AUTHOR("Neil Armstrong <neil.armstrong@linaro.org>"); | MODULE_AUTHOR("Neil Armstrong <neil.armstrong@linaro.org>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -92,9 +92,9 @@ static unsigned long meson_vid_pll_div_recalc_rate(struct clk_hw *hw, | ||||||
| const struct clk_ops meson_vid_pll_div_ro_ops = { | const struct clk_ops meson_vid_pll_div_ro_ops = { | ||||||
| 	.recalc_rate	= meson_vid_pll_div_recalc_rate, | 	.recalc_rate	= meson_vid_pll_div_recalc_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(meson_vid_pll_div_ro_ops, CLK_MESON); | EXPORT_SYMBOL_NS_GPL(meson_vid_pll_div_ro_ops, "CLK_MESON"); | ||||||
| 
 | 
 | ||||||
| MODULE_DESCRIPTION("Amlogic video pll divider driver"); | MODULE_DESCRIPTION("Amlogic video pll divider driver"); | ||||||
| MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | MODULE_AUTHOR("Neil Armstrong <narmstrong@baylibre.com>"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
| MODULE_IMPORT_NS(CLK_MESON); | MODULE_IMPORT_NS("CLK_MESON"); | ||||||
|  |  | ||||||
|  | @ -443,4 +443,4 @@ MODULE_DESCRIPTION("Microchip PolarFire SoC Clock Driver"); | ||||||
| MODULE_AUTHOR("Padmarao Begari <padmarao.begari@microchip.com>"); | MODULE_AUTHOR("Padmarao Begari <padmarao.begari@microchip.com>"); | ||||||
| MODULE_AUTHOR("Daire McNamara <daire.mcnamara@microchip.com>"); | MODULE_AUTHOR("Daire McNamara <daire.mcnamara@microchip.com>"); | ||||||
| MODULE_AUTHOR("Conor Dooley <conor.dooley@microchip.com>"); | MODULE_AUTHOR("Conor Dooley <conor.dooley@microchip.com>"); | ||||||
| MODULE_IMPORT_NS(MCHP_CLK_MPFS); | MODULE_IMPORT_NS("MCHP_CLK_MPFS"); | ||||||
|  |  | ||||||
|  | @ -137,6 +137,6 @@ static struct platform_driver sun20i_d1_r_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun20i_d1_r_ccu_driver); | module_platform_driver(sun20i_d1_r_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner D1/R528/T113 PRCM CCU"); | MODULE_DESCRIPTION("Support for the Allwinner D1/R528/T113 PRCM CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1406,6 +1406,6 @@ static struct platform_driver sun20i_d1_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun20i_d1_ccu_driver); | module_platform_driver(sun20i_d1_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner D1/R528/T113 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner D1/R528/T113 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1493,6 +1493,6 @@ static struct platform_driver sun4i_a10_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun4i_a10_ccu_driver); | module_platform_driver(sun4i_a10_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A10/A20 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A10/A20 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -214,6 +214,6 @@ static struct platform_driver sun50i_a100_r_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_a100_r_ccu_driver); | module_platform_driver(sun50i_a100_r_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A100 PRCM CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A100 PRCM CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1276,6 +1276,6 @@ static struct platform_driver sun50i_a100_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_a100_ccu_driver); | module_platform_driver(sun50i_a100_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A100 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A100 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -994,6 +994,6 @@ static struct platform_driver sun50i_a64_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_a64_ccu_driver); | module_platform_driver(sun50i_a64_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A64 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A64 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -256,6 +256,6 @@ static struct platform_driver sun50i_h6_r_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_h6_r_ccu_driver); | module_platform_driver(sun50i_h6_r_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner H6 and H616 PRCM CCU"); | MODULE_DESCRIPTION("Support for the Allwinner H6 and H616 PRCM CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1286,6 +1286,6 @@ static struct platform_driver sun50i_h6_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_h6_ccu_driver); | module_platform_driver(sun50i_h6_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner H6 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner H6 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1185,6 +1185,6 @@ static struct platform_driver sun50i_h616_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun50i_h616_ccu_driver); | module_platform_driver(sun50i_h616_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner H616 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner H616 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1283,6 +1283,6 @@ static struct platform_driver sun6i_a31_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun6i_a31_ccu_driver); | module_platform_driver(sun6i_a31_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A31/A31s CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A31/A31s CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -381,6 +381,6 @@ int sun6i_rtc_ccu_probe(struct device *dev, void __iomem *reg) | ||||||
| 	return devm_sunxi_ccu_probe(dev, reg, &sun6i_rtc_ccu_desc); | 	return devm_sunxi_ccu_probe(dev, reg, &sun6i_rtc_ccu_desc); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner H616/R329 RTC CCU"); | MODULE_DESCRIPTION("Support for the Allwinner H616/R329 RTC CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -763,6 +763,6 @@ static struct platform_driver sun8i_a23_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_a23_ccu_driver); | module_platform_driver(sun8i_a23_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A23 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A23 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -835,6 +835,6 @@ static struct platform_driver sun8i_a33_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_a33_ccu_driver); | module_platform_driver(sun8i_a33_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A33 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A33 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -923,6 +923,6 @@ static struct platform_driver sun8i_a83t_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_a83t_ccu_driver); | module_platform_driver(sun8i_a83t_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A83T CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A83T CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -348,6 +348,6 @@ static struct platform_driver sunxi_de2_clk_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sunxi_de2_clk_driver); | module_platform_driver(sunxi_de2_clk_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner SoCs DE2 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner SoCs DE2 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1094,6 +1094,6 @@ static struct platform_driver sun8i_h3_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_h3_ccu_driver); | module_platform_driver(sun8i_h3_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner H3 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner H3 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -274,6 +274,6 @@ static struct platform_driver sun8i_r_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_r_ccu_driver); | module_platform_driver(sun8i_r_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for Allwinner SoCs' PRCM CCUs"); | MODULE_DESCRIPTION("Support for Allwinner SoCs' PRCM CCUs"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1375,6 +1375,6 @@ static struct platform_driver sun8i_r40_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_r40_ccu_driver); | module_platform_driver(sun8i_r40_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner R40 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner R40 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -780,6 +780,6 @@ static struct platform_driver sun8i_v3s_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun8i_v3s_ccu_driver); | module_platform_driver(sun8i_v3s_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner V3s CCU"); | MODULE_DESCRIPTION("Support for the Allwinner V3s CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -266,6 +266,6 @@ static struct platform_driver sun9i_a80_de_clk_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun9i_a80_de_clk_driver); | module_platform_driver(sun9i_a80_de_clk_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A80 Display Engine CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A80 Display Engine CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -138,6 +138,6 @@ static struct platform_driver sun9i_a80_usb_clk_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun9i_a80_usb_clk_driver); | module_platform_driver(sun9i_a80_usb_clk_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A80 USB CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A80 USB CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -1248,6 +1248,6 @@ static struct platform_driver sun9i_a80_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(sun9i_a80_ccu_driver); | module_platform_driver(sun9i_a80_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner A80 CCU"); | MODULE_DESCRIPTION("Support for the Allwinner A80 CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -577,6 +577,6 @@ static struct platform_driver suniv_f1c100s_ccu_driver = { | ||||||
| }; | }; | ||||||
| module_platform_driver(suniv_f1c100s_ccu_driver); | module_platform_driver(suniv_f1c100s_ccu_driver); | ||||||
| 
 | 
 | ||||||
| MODULE_IMPORT_NS(SUNXI_CCU); | MODULE_IMPORT_NS("SUNXI_CCU"); | ||||||
| MODULE_DESCRIPTION("Support for the Allwinner newer F1C100s CCU"); | MODULE_DESCRIPTION("Support for the Allwinner newer F1C100s CCU"); | ||||||
| MODULE_LICENSE("GPL"); | MODULE_LICENSE("GPL"); | ||||||
|  |  | ||||||
|  | @ -37,7 +37,7 @@ void ccu_helper_wait_for_lock(struct ccu_common *common, u32 lock) | ||||||
| 
 | 
 | ||||||
| 	WARN_ON(readl_relaxed_poll_timeout(addr, reg, reg & lock, 100, 70000)); | 	WARN_ON(readl_relaxed_poll_timeout(addr, reg, reg & lock, 100, 70000)); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_helper_wait_for_lock, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_helper_wait_for_lock, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| bool ccu_is_better_rate(struct ccu_common *common, | bool ccu_is_better_rate(struct ccu_common *common, | ||||||
| 			unsigned long target_rate, | 			unsigned long target_rate, | ||||||
|  | @ -59,7 +59,7 @@ bool ccu_is_better_rate(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return current_rate <= target_rate && current_rate > best_rate; | 	return current_rate <= target_rate && current_rate > best_rate; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_is_better_rate, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_is_better_rate, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * This clock notifier is called when the frequency of a PLL clock is |  * This clock notifier is called when the frequency of a PLL clock is | ||||||
|  | @ -107,7 +107,7 @@ int ccu_pll_notifier_register(struct ccu_pll_nb *pll_nb) | ||||||
| 	return clk_notifier_register(pll_nb->common->hw.clk, | 	return clk_notifier_register(pll_nb->common->hw.clk, | ||||||
| 				     &pll_nb->clk_nb); | 				     &pll_nb->clk_nb); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_pll_notifier_register, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_pll_notifier_register, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static int sunxi_ccu_probe(struct sunxi_ccu *ccu, struct device *dev, | static int sunxi_ccu_probe(struct sunxi_ccu *ccu, struct device *dev, | ||||||
| 			   struct device_node *node, void __iomem *reg, | 			   struct device_node *node, void __iomem *reg, | ||||||
|  | @ -234,7 +234,7 @@ int devm_sunxi_ccu_probe(struct device *dev, void __iomem *reg, | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(devm_sunxi_ccu_probe, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(devm_sunxi_ccu_probe, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| void of_sunxi_ccu_probe(struct device_node *node, void __iomem *reg, | void of_sunxi_ccu_probe(struct device_node *node, void __iomem *reg, | ||||||
| 			const struct sunxi_ccu_desc *desc) | 			const struct sunxi_ccu_desc *desc) | ||||||
|  |  | ||||||
|  | @ -141,4 +141,4 @@ const struct clk_ops ccu_div_ops = { | ||||||
| 	.recalc_rate	= ccu_div_recalc_rate, | 	.recalc_rate	= ccu_div_recalc_rate, | ||||||
| 	.set_rate	= ccu_div_set_rate, | 	.set_rate	= ccu_div_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_div_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_div_ops, "SUNXI_CCU"); | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ bool ccu_frac_helper_is_enabled(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return !(readl(common->base + common->reg) & cf->enable); | 	return !(readl(common->base + common->reg) & cf->enable); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_is_enabled, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_is_enabled, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| void ccu_frac_helper_enable(struct ccu_common *common, | void ccu_frac_helper_enable(struct ccu_common *common, | ||||||
| 			    struct ccu_frac_internal *cf) | 			    struct ccu_frac_internal *cf) | ||||||
|  | @ -34,7 +34,7 @@ void ccu_frac_helper_enable(struct ccu_common *common, | ||||||
| 	writel(reg & ~cf->enable, common->base + common->reg); | 	writel(reg & ~cf->enable, common->base + common->reg); | ||||||
| 	spin_unlock_irqrestore(common->lock, flags); | 	spin_unlock_irqrestore(common->lock, flags); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_enable, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_enable, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| void ccu_frac_helper_disable(struct ccu_common *common, | void ccu_frac_helper_disable(struct ccu_common *common, | ||||||
| 			     struct ccu_frac_internal *cf) | 			     struct ccu_frac_internal *cf) | ||||||
|  | @ -50,7 +50,7 @@ void ccu_frac_helper_disable(struct ccu_common *common, | ||||||
| 	writel(reg | cf->enable, common->base + common->reg); | 	writel(reg | cf->enable, common->base + common->reg); | ||||||
| 	spin_unlock_irqrestore(common->lock, flags); | 	spin_unlock_irqrestore(common->lock, flags); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_disable, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_disable, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| bool ccu_frac_helper_has_rate(struct ccu_common *common, | bool ccu_frac_helper_has_rate(struct ccu_common *common, | ||||||
| 			      struct ccu_frac_internal *cf, | 			      struct ccu_frac_internal *cf, | ||||||
|  | @ -61,7 +61,7 @@ bool ccu_frac_helper_has_rate(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return (cf->rates[0] == rate) || (cf->rates[1] == rate); | 	return (cf->rates[0] == rate) || (cf->rates[1] == rate); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_has_rate, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_has_rate, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| unsigned long ccu_frac_helper_read_rate(struct ccu_common *common, | unsigned long ccu_frac_helper_read_rate(struct ccu_common *common, | ||||||
| 					struct ccu_frac_internal *cf) | 					struct ccu_frac_internal *cf) | ||||||
|  | @ -83,7 +83,7 @@ unsigned long ccu_frac_helper_read_rate(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return (reg & cf->select) ? cf->rates[1] : cf->rates[0]; | 	return (reg & cf->select) ? cf->rates[1] : cf->rates[0]; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_read_rate, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_read_rate, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| int ccu_frac_helper_set_rate(struct ccu_common *common, | int ccu_frac_helper_set_rate(struct ccu_common *common, | ||||||
| 			     struct ccu_frac_internal *cf, | 			     struct ccu_frac_internal *cf, | ||||||
|  | @ -112,4 +112,4 @@ int ccu_frac_helper_set_rate(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_set_rate, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_frac_helper_set_rate, "SUNXI_CCU"); | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ void ccu_gate_helper_disable(struct ccu_common *common, u32 gate) | ||||||
| 
 | 
 | ||||||
| 	spin_unlock_irqrestore(common->lock, flags); | 	spin_unlock_irqrestore(common->lock, flags); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_disable, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_disable, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static void ccu_gate_disable(struct clk_hw *hw) | static void ccu_gate_disable(struct clk_hw *hw) | ||||||
| { | { | ||||||
|  | @ -50,7 +50,7 @@ int ccu_gate_helper_enable(struct ccu_common *common, u32 gate) | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_enable, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_enable, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static int ccu_gate_enable(struct clk_hw *hw) | static int ccu_gate_enable(struct clk_hw *hw) | ||||||
| { | { | ||||||
|  | @ -66,7 +66,7 @@ int ccu_gate_helper_is_enabled(struct ccu_common *common, u32 gate) | ||||||
| 
 | 
 | ||||||
| 	return readl(common->base + common->reg) & gate; | 	return readl(common->base + common->reg) & gate; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_is_enabled, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_gate_helper_is_enabled, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static int ccu_gate_is_enabled(struct clk_hw *hw) | static int ccu_gate_is_enabled(struct clk_hw *hw) | ||||||
| { | { | ||||||
|  | @ -127,4 +127,4 @@ const struct clk_ops ccu_gate_ops = { | ||||||
| 	.set_rate	= ccu_gate_set_rate, | 	.set_rate	= ccu_gate_set_rate, | ||||||
| 	.recalc_rate	= ccu_gate_recalc_rate, | 	.recalc_rate	= ccu_gate_recalc_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_gate_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_gate_ops, "SUNXI_CCU"); | ||||||
|  |  | ||||||
|  | @ -246,7 +246,7 @@ const struct clk_ops ccu_mp_ops = { | ||||||
| 	.recalc_rate	= ccu_mp_recalc_rate, | 	.recalc_rate	= ccu_mp_recalc_rate, | ||||||
| 	.set_rate	= ccu_mp_set_rate, | 	.set_rate	= ccu_mp_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mp_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mp_ops, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Support for MMC timing mode switching |  * Support for MMC timing mode switching | ||||||
|  | @ -327,4 +327,4 @@ const struct clk_ops ccu_mp_mmc_ops = { | ||||||
| 	.recalc_rate	= ccu_mp_mmc_recalc_rate, | 	.recalc_rate	= ccu_mp_mmc_recalc_rate, | ||||||
| 	.set_rate	= ccu_mp_mmc_set_rate, | 	.set_rate	= ccu_mp_mmc_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mp_mmc_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mp_mmc_ops, "SUNXI_CCU"); | ||||||
|  |  | ||||||
|  | @ -170,4 +170,4 @@ const struct clk_ops ccu_mult_ops = { | ||||||
| 	.recalc_rate	= ccu_mult_recalc_rate, | 	.recalc_rate	= ccu_mult_recalc_rate, | ||||||
| 	.set_rate	= ccu_mult_set_rate, | 	.set_rate	= ccu_mult_set_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mult_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mult_ops, "SUNXI_CCU"); | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ unsigned long ccu_mux_helper_apply_prediv(struct ccu_common *common, | ||||||
| { | { | ||||||
| 	return parent_rate / ccu_mux_get_prediv(common, cm, parent_index); | 	return parent_rate / ccu_mux_get_prediv(common, cm, parent_index); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_apply_prediv, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_apply_prediv, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static unsigned long ccu_mux_helper_unapply_prediv(struct ccu_common *common, | static unsigned long ccu_mux_helper_unapply_prediv(struct ccu_common *common, | ||||||
| 					    struct ccu_mux_internal *cm, | 					    struct ccu_mux_internal *cm, | ||||||
|  | @ -155,7 +155,7 @@ int ccu_mux_helper_determine_rate(struct ccu_common *common, | ||||||
| 	req->rate = best_rate; | 	req->rate = best_rate; | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_determine_rate, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_determine_rate, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| u8 ccu_mux_helper_get_parent(struct ccu_common *common, | u8 ccu_mux_helper_get_parent(struct ccu_common *common, | ||||||
| 			     struct ccu_mux_internal *cm) | 			     struct ccu_mux_internal *cm) | ||||||
|  | @ -178,7 +178,7 @@ u8 ccu_mux_helper_get_parent(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return parent; | 	return parent; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_get_parent, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_get_parent, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| int ccu_mux_helper_set_parent(struct ccu_common *common, | int ccu_mux_helper_set_parent(struct ccu_common *common, | ||||||
| 			      struct ccu_mux_internal *cm, | 			      struct ccu_mux_internal *cm, | ||||||
|  | @ -205,7 +205,7 @@ int ccu_mux_helper_set_parent(struct ccu_common *common, | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_set_parent, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_helper_set_parent, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| static void ccu_mux_disable(struct clk_hw *hw) | static void ccu_mux_disable(struct clk_hw *hw) | ||||||
| { | { | ||||||
|  | @ -273,7 +273,7 @@ const struct clk_ops ccu_mux_ops = { | ||||||
| 	.determine_rate	= ccu_mux_determine_rate, | 	.determine_rate	= ccu_mux_determine_rate, | ||||||
| 	.recalc_rate	= ccu_mux_recalc_rate, | 	.recalc_rate	= ccu_mux_recalc_rate, | ||||||
| }; | }; | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_ops, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_ops, "SUNXI_CCU"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * This clock notifier is called when the frequency of the of the parent |  * This clock notifier is called when the frequency of the of the parent | ||||||
|  | @ -308,4 +308,4 @@ int ccu_mux_notifier_register(struct clk *clk, struct ccu_mux_nb *mux_nb) | ||||||
| 
 | 
 | ||||||
| 	return clk_notifier_register(clk, &mux_nb->clk_nb); | 	return clk_notifier_register(clk, &mux_nb->clk_nb); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_NS_GPL(ccu_mux_notifier_register, SUNXI_CCU); | EXPORT_SYMBOL_NS_GPL(ccu_mux_notifier_register, "SUNXI_CCU"); | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue
	
	 Peter Zijlstra
						Peter Zijlstra