linux/include/linux/platform_profile.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * Platform profile sysfs interface
   4 *
   5 * See Documentation/userspace-api/sysfs-platform_profile.rst for more
   6 * information.
   7 */
   8
   9#ifndef _PLATFORM_PROFILE_H_
  10#define _PLATFORM_PROFILE_H_
  11
  12#include <linux/bitops.h>
  13
  14/*
  15 * If more options are added please update profile_names array in
  16 * platform_profile.c and sysfs-platform_profile documentation.
  17 */
  18
  19enum platform_profile_option {
  20        PLATFORM_PROFILE_LOW_POWER,
  21        PLATFORM_PROFILE_COOL,
  22        PLATFORM_PROFILE_QUIET,
  23        PLATFORM_PROFILE_BALANCED,
  24        PLATFORM_PROFILE_BALANCED_PERFORMANCE,
  25        PLATFORM_PROFILE_PERFORMANCE,
  26        PLATFORM_PROFILE_LAST, /*must always be last */
  27};
  28
  29struct platform_profile_handler {
  30        unsigned long choices[BITS_TO_LONGS(PLATFORM_PROFILE_LAST)];
  31        int (*profile_get)(struct platform_profile_handler *pprof,
  32                                enum platform_profile_option *profile);
  33        int (*profile_set)(struct platform_profile_handler *pprof,
  34                                enum platform_profile_option profile);
  35};
  36
  37int platform_profile_register(struct platform_profile_handler *pprof);
  38int platform_profile_remove(void);
  39void platform_profile_notify(void);
  40
  41#endif  /*_PLATFORM_PROFILE_H_*/
  42