Skip to content
Snippets Groups Projects
Select Git revision
  • fff168b028c767ac0497ae2450bb4043fc546b38
  • master default protected
  • android-msm-bullhead-3.10-nougat_kgdb_less_changes
  • android-msm-bullhead-3.10-nougat_kgdb
  • android-msm-bullhead-3.10-nougat_klist
  • android-4.4
  • android-msm-vega-4.4-oreo-daydream
  • android-msm-wahoo-4.4-p-preview-5
  • android-msm-wahoo-4.4-pie
  • android-msm-marlin-3.18-p-preview-5
  • android-msm-marlin-3.18-pie
  • android-msm-wahoo-2018.07-oreo-m2
  • android-msm-wahoo-2018.07-oreo-m4
  • android-msm-wahoo-4.4-p-preview-4
  • android-msm-bullhead-3.10-oreo-m6
  • android-msm-angler-3.10-oreo-m6
  • android-msm-marlin-3.18-p-preview-4
  • android-msm-stargazer-3.18-oreo-wear-dr
  • android-msm-catshark-3.18-oreo-wear-dr
  • android-msm-wahoo-4.4-oreo-m2
  • android-msm-wahoo-4.4-oreo-m4
  • android-daydreamos-8.0.0_r0.5
  • android-8.1.0_r0.92
  • android-8.1.0_r0.91
  • android-daydreamos-8.0.0_r0.4
  • android-p-preview-5_r0.2
  • android-p-preview-5_r0.1
  • android-9.0.0_r0.5
  • android-9.0.0_r0.4
  • android-9.0.0_r0.2
  • android-9.0.0_r0.1
  • android-8.1.0_r0.81
  • android-8.1.0_r0.80
  • android-8.1.0_r0.78
  • android-8.1.0_r0.76
  • android-8.1.0_r0.75
  • android-8.1.0_r0.72
  • android-8.1.0_r0.70
  • android-p-preview-4_r0.2
  • android-p-preview-4_r0.1
  • android-wear-8.0.0_r0.30
41 results

async.c

Blame
  • firmware_class.c 42.31 KiB
    /*
     * firmware_class.c - Multi purpose firmware loading support
     *
     * Copyright (c) 2003 Manuel Estrada Sainz
     *
     * Please see Documentation/firmware_class/ for more information.
     *
     */
    
    #include <linux/capability.h>
    #include <linux/device.h>
    #include <linux/module.h>
    #include <linux/init.h>
    #include <linux/timer.h>
    #include <linux/vmalloc.h>
    #include <linux/interrupt.h>
    #include <linux/bitops.h>
    #include <linux/mutex.h>
    #include <linux/workqueue.h>
    #include <linux/highmem.h>
    #include <linux/firmware.h>
    #include <linux/slab.h>
    #include <linux/sched.h>
    #include <linux/file.h>
    #include <linux/list.h>
    #include <linux/async.h>
    #include <linux/pm.h>
    #include <linux/suspend.h>
    #include <linux/syscore_ops.h>
    #include <linux/io.h>
    
    #include <generated/utsrelease.h>
    
    #include "base.h"
    
    MODULE_AUTHOR("Manuel Estrada Sainz");
    MODULE_DESCRIPTION("Multi purpose firmware loading support");
    MODULE_LICENSE("GPL");
    
    /* Builtin firmware support */
    
    #ifdef CONFIG_FW_LOADER
    
    extern struct builtin_fw __start_builtin_fw[];
    extern struct builtin_fw __end_builtin_fw[];
    
    static bool fw_get_builtin_firmware(struct firmware *fw, const char *name)
    {
    	struct builtin_fw *b_fw;
    
    	for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) {
    		if (strcmp(name, b_fw->name) == 0) {
    			fw->size = b_fw->size;
    			fw->data = b_fw->data;
    			return true;
    		}
    	}
    
    	return false;
    }
    
    static bool fw_is_builtin_firmware(const struct firmware *fw)
    {
    	struct builtin_fw *b_fw;
    
    	for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++)
    		if (fw->data == b_fw->data)
    			return true;
    
    	return false;