LCOV - code coverage report
Current view: top level - drivers/acpi - internal.h (source / functions) Hit Total Coverage
Test: combined.info Lines: 2 2 100.0 %
Date: 2022-04-01 14:58:12 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: GPL-2.0-only */
       2                 :            : /*
       3                 :            :  * acpi/internal.h
       4                 :            :  * For use by Linux/ACPI infrastructure, not drivers
       5                 :            :  *
       6                 :            :  * Copyright (c) 2009, Intel Corporation.
       7                 :            :  */
       8                 :            : 
       9                 :            : #ifndef _ACPI_INTERNAL_H_
      10                 :            : #define _ACPI_INTERNAL_H_
      11                 :            : 
      12                 :            : #define PREFIX "ACPI: "
      13                 :            : 
      14                 :            : int early_acpi_osi_init(void);
      15                 :            : int acpi_osi_init(void);
      16                 :            : acpi_status acpi_os_initialize1(void);
      17                 :            : int acpi_scan_init(void);
      18                 :            : #ifdef CONFIG_PCI
      19                 :            : void acpi_pci_root_init(void);
      20                 :            : void acpi_pci_link_init(void);
      21                 :            : #else
      22                 :            : static inline void acpi_pci_root_init(void) {}
      23                 :            : static inline void acpi_pci_link_init(void) {}
      24                 :            : #endif
      25                 :            : void acpi_processor_init(void);
      26                 :            : void acpi_platform_init(void);
      27                 :            : void acpi_pnp_init(void);
      28                 :            : void acpi_int340x_thermal_init(void);
      29                 :            : #ifdef CONFIG_ARM_AMBA
      30                 :            : void acpi_amba_init(void);
      31                 :            : #else
      32                 :          3 : static inline void acpi_amba_init(void) {}
      33                 :            : #endif
      34                 :            : int acpi_sysfs_init(void);
      35                 :            : void acpi_gpe_apply_masked_gpes(void);
      36                 :            : void acpi_container_init(void);
      37                 :            : void acpi_memory_hotplug_init(void);
      38                 :            : #ifdef  CONFIG_ACPI_HOTPLUG_IOAPIC
      39                 :            : void pci_ioapic_remove(struct acpi_pci_root *root);
      40                 :            : int acpi_ioapic_remove(struct acpi_pci_root *root);
      41                 :            : #else
      42                 :            : static inline void pci_ioapic_remove(struct acpi_pci_root *root) { return; }
      43                 :            : static inline int acpi_ioapic_remove(struct acpi_pci_root *root) { return 0; }
      44                 :            : #endif
      45                 :            : #ifdef CONFIG_ACPI_DOCK
      46                 :            : void register_dock_dependent_device(struct acpi_device *adev,
      47                 :            :                                     acpi_handle dshandle);
      48                 :            : int dock_notify(struct acpi_device *adev, u32 event);
      49                 :            : void acpi_dock_add(struct acpi_device *adev);
      50                 :            : #else
      51                 :            : static inline void register_dock_dependent_device(struct acpi_device *adev,
      52                 :            :                                                   acpi_handle dshandle) {}
      53                 :            : static inline int dock_notify(struct acpi_device *adev, u32 event) { return -ENODEV; }
      54                 :            : static inline void acpi_dock_add(struct acpi_device *adev) {}
      55                 :            : #endif
      56                 :            : #ifdef CONFIG_X86
      57                 :            : void acpi_cmos_rtc_init(void);
      58                 :            : #else
      59                 :            : static inline void acpi_cmos_rtc_init(void) {}
      60                 :            : #endif
      61                 :            : int acpi_rev_override_setup(char *str);
      62                 :            : 
      63                 :            : void acpi_sysfs_add_hotplug_profile(struct acpi_hotplug_profile *hotplug,
      64                 :            :                                     const char *name);
      65                 :            : int acpi_scan_add_handler_with_hotplug(struct acpi_scan_handler *handler,
      66                 :            :                                        const char *hotplug_profile_name);
      67                 :            : void acpi_scan_hotplug_enabled(struct acpi_hotplug_profile *hotplug, bool val);
      68                 :            : 
      69                 :            : #ifdef CONFIG_DEBUG_FS
      70                 :            : extern struct dentry *acpi_debugfs_dir;
      71                 :            : void acpi_debugfs_init(void);
      72                 :            : #else
      73                 :            : static inline void acpi_debugfs_init(void) { return; }
      74                 :            : #endif
      75                 :            : #ifdef CONFIG_PCI
      76                 :            : void acpi_lpss_init(void);
      77                 :            : #else
      78                 :            : static inline void acpi_lpss_init(void) {}
      79                 :            : #endif
      80                 :            : 
      81                 :            : void acpi_apd_init(void);
      82                 :            : 
      83                 :            : acpi_status acpi_hotplug_schedule(struct acpi_device *adev, u32 src);
      84                 :            : bool acpi_queue_hotplug_work(struct work_struct *work);
      85                 :            : void acpi_device_hotplug(struct acpi_device *adev, u32 src);
      86                 :            : bool acpi_scan_is_offline(struct acpi_device *adev, bool uevent);
      87                 :            : 
      88                 :            : acpi_status acpi_sysfs_table_handler(u32 event, void *table, void *context);
      89                 :            : void acpi_scan_table_handler(u32 event, void *table, void *context);
      90                 :            : 
      91                 :            : /* --------------------------------------------------------------------------
      92                 :            :                      Device Node Initialization / Removal
      93                 :            :    -------------------------------------------------------------------------- */
      94                 :            : #define ACPI_STA_DEFAULT (ACPI_STA_DEVICE_PRESENT | ACPI_STA_DEVICE_ENABLED | \
      95                 :            :                           ACPI_STA_DEVICE_UI | ACPI_STA_DEVICE_FUNCTIONING)
      96                 :            : 
      97                 :            : extern struct list_head acpi_bus_id_list;
      98                 :            : 
      99                 :            : struct acpi_device_bus_id {
     100                 :            :         char bus_id[15];
     101                 :            :         unsigned int instance_no;
     102                 :            :         struct list_head node;
     103                 :            : };
     104                 :            : 
     105                 :            : int acpi_device_add(struct acpi_device *device,
     106                 :            :                     void (*release)(struct device *));
     107                 :            : void acpi_init_device_object(struct acpi_device *device, acpi_handle handle,
     108                 :            :                              int type, unsigned long long sta);
     109                 :            : int acpi_device_setup_files(struct acpi_device *dev);
     110                 :            : void acpi_device_remove_files(struct acpi_device *dev);
     111                 :            : void acpi_device_add_finalize(struct acpi_device *device);
     112                 :            : void acpi_free_pnp_ids(struct acpi_device_pnp *pnp);
     113                 :            : bool acpi_device_is_present(const struct acpi_device *adev);
     114                 :            : bool acpi_device_is_battery(struct acpi_device *adev);
     115                 :            : bool acpi_device_is_first_physical_node(struct acpi_device *adev,
     116                 :            :                                         const struct device *dev);
     117                 :            : int acpi_bus_register_early_device(int type);
     118                 :            : 
     119                 :            : /* --------------------------------------------------------------------------
     120                 :            :                      Device Matching and Notification
     121                 :            :    -------------------------------------------------------------------------- */
     122                 :            : struct acpi_device *acpi_companion_match(const struct device *dev);
     123                 :            : int __acpi_device_uevent_modalias(struct acpi_device *adev,
     124                 :            :                                   struct kobj_uevent_env *env);
     125                 :            : 
     126                 :            : /* --------------------------------------------------------------------------
     127                 :            :                                   Power Resource
     128                 :            :    -------------------------------------------------------------------------- */
     129                 :            : int acpi_power_init(void);
     130                 :            : void acpi_power_resources_list_free(struct list_head *list);
     131                 :            : int acpi_extract_power_resources(union acpi_object *package, unsigned int start,
     132                 :            :                                  struct list_head *list);
     133                 :            : int acpi_add_power_resource(acpi_handle handle);
     134                 :            : void acpi_power_add_remove_device(struct acpi_device *adev, bool add);
     135                 :            : int acpi_power_wakeup_list_init(struct list_head *list, int *system_level);
     136                 :            : int acpi_device_sleep_wake(struct acpi_device *dev,
     137                 :            :                            int enable, int sleep_state, int dev_state);
     138                 :            : int acpi_power_get_inferred_state(struct acpi_device *device, int *state);
     139                 :            : int acpi_power_on_resources(struct acpi_device *device, int state);
     140                 :            : int acpi_power_transition(struct acpi_device *device, int state);
     141                 :            : 
     142                 :            : /* --------------------------------------------------------------------------
     143                 :            :                               Device Power Management
     144                 :            :    -------------------------------------------------------------------------- */
     145                 :            : int acpi_device_get_power(struct acpi_device *device, int *state);
     146                 :            : int acpi_wakeup_device_init(void);
     147                 :            : 
     148                 :            : /* --------------------------------------------------------------------------
     149                 :            :                                   Processor
     150                 :            :    -------------------------------------------------------------------------- */
     151                 :            : #ifdef CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC
     152                 :            : void acpi_early_processor_set_pdc(void);
     153                 :            : #else
     154                 :            : static inline void acpi_early_processor_set_pdc(void) {}
     155                 :            : #endif
     156                 :            : 
     157                 :            : #ifdef CONFIG_X86
     158                 :            : void acpi_early_processor_osc(void);
     159                 :            : #else
     160                 :            : static inline void acpi_early_processor_osc(void) {}
     161                 :            : #endif
     162                 :            : 
     163                 :            : /* --------------------------------------------------------------------------
     164                 :            :                                   Embedded Controller
     165                 :            :    -------------------------------------------------------------------------- */
     166                 :            : struct acpi_ec {
     167                 :            :         acpi_handle handle;
     168                 :            :         int gpe;
     169                 :            :         int irq;
     170                 :            :         unsigned long command_addr;
     171                 :            :         unsigned long data_addr;
     172                 :            :         bool global_lock;
     173                 :            :         unsigned long flags;
     174                 :            :         unsigned long reference_count;
     175                 :            :         struct mutex mutex;
     176                 :            :         wait_queue_head_t wait;
     177                 :            :         struct list_head list;
     178                 :            :         struct transaction *curr;
     179                 :            :         spinlock_t lock;
     180                 :            :         struct work_struct work;
     181                 :            :         unsigned long timestamp;
     182                 :            :         unsigned long nr_pending_queries;
     183                 :            :         bool busy_polling;
     184                 :            :         unsigned int polling_guard;
     185                 :            : };
     186                 :            : 
     187                 :            : extern struct acpi_ec *first_ec;
     188                 :            : 
     189                 :            : /* If we find an EC via the ECDT, we need to keep a ptr to its context */
     190                 :            : /* External interfaces use first EC only, so remember */
     191                 :            : typedef int (*acpi_ec_query_func) (void *data);
     192                 :            : 
     193                 :            : int acpi_ec_init(void);
     194                 :            : void acpi_ec_ecdt_probe(void);
     195                 :            : void acpi_ec_dsdt_probe(void);
     196                 :            : void acpi_ec_block_transactions(void);
     197                 :            : void acpi_ec_unblock_transactions(void);
     198                 :            : int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
     199                 :            :                               acpi_handle handle, acpi_ec_query_func func,
     200                 :            :                               void *data);
     201                 :            : void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
     202                 :            : 
     203                 :            : #ifdef CONFIG_PM_SLEEP
     204                 :            : void acpi_ec_flush_work(void);
     205                 :            : bool acpi_ec_dispatch_gpe(void);
     206                 :            : #endif
     207                 :            : 
     208                 :            : 
     209                 :            : /*--------------------------------------------------------------------------
     210                 :            :                                   Suspend/Resume
     211                 :            :   -------------------------------------------------------------------------- */
     212                 :            : #ifdef CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT
     213                 :            : extern bool acpi_s2idle_wakeup(void);
     214                 :            : extern int acpi_sleep_init(void);
     215                 :            : #else
     216                 :            : static inline bool acpi_s2idle_wakeup(void) { return false; }
     217                 :            : static inline int acpi_sleep_init(void) { return -ENXIO; }
     218                 :            : #endif
     219                 :            : 
     220                 :            : #ifdef CONFIG_ACPI_SLEEP
     221                 :            : void acpi_sleep_proc_init(void);
     222                 :            : int suspend_nvs_alloc(void);
     223                 :            : void suspend_nvs_free(void);
     224                 :            : int suspend_nvs_save(void);
     225                 :            : void suspend_nvs_restore(void);
     226                 :            : #else
     227                 :            : static inline void acpi_sleep_proc_init(void) {}
     228                 :            : static inline int suspend_nvs_alloc(void) { return 0; }
     229                 :            : static inline void suspend_nvs_free(void) {}
     230                 :            : static inline int suspend_nvs_save(void) { return 0; }
     231                 :            : static inline void suspend_nvs_restore(void) {}
     232                 :            : #endif
     233                 :            : 
     234                 :            : /*--------------------------------------------------------------------------
     235                 :            :                                 Device properties
     236                 :            :   -------------------------------------------------------------------------- */
     237                 :            : #define ACPI_DT_NAMESPACE_HID   "PRP0001"
     238                 :            : 
     239                 :            : void acpi_init_properties(struct acpi_device *adev);
     240                 :            : void acpi_free_properties(struct acpi_device *adev);
     241                 :            : 
     242                 :            : #ifdef CONFIG_X86
     243                 :            : void acpi_extract_apple_properties(struct acpi_device *adev);
     244                 :            : #else
     245                 :            : static inline void acpi_extract_apple_properties(struct acpi_device *adev) {}
     246                 :            : #endif
     247                 :            : 
     248                 :            : /*--------------------------------------------------------------------------
     249                 :            :                                 Watchdog
     250                 :            :   -------------------------------------------------------------------------- */
     251                 :            : 
     252                 :            : #ifdef CONFIG_ACPI_WATCHDOG
     253                 :            : void acpi_watchdog_init(void);
     254                 :            : #else
     255                 :          3 : static inline void acpi_watchdog_init(void) {}
     256                 :            : #endif
     257                 :            : 
     258                 :            : #ifdef CONFIG_ACPI_LPIT
     259                 :            : void acpi_init_lpit(void);
     260                 :            : #else
     261                 :            : static inline void acpi_init_lpit(void) { }
     262                 :            : #endif
     263                 :            : 
     264                 :            : #endif /* _ACPI_INTERNAL_H_ */

Generated by: LCOV version 1.14