linux/drivers/platform/x86/intel/intel_plr_tpmi.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Performance Limit Reasons via TPMI
 *
 * Copyright (c) 2024, Intel Corporation.
 */

#include <linux/array_size.h>
#include <linux/auxiliary_bus.h>
#include <linux/bitfield.h>
#include <linux/bitmap.h>
#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/err.h>
#include <linux/gfp_types.h>
#include <linux/intel_tpmi.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/kstrtox.h>
#include <linux/lockdep.h>
#include <linux/module.h>
#include <linux/mod_devicetable.h>
#include <linux/mutex.h>
#include <linux/seq_file.h>
#include <linux/sprintf.h>
#include <linux/types.h>

#include "tpmi_power_domains.h"

#define PLR_HEADER
#define PLR_MAILBOX_INTERFACE
#define PLR_MAILBOX_DATA
#define PLR_DIE_LEVEL

#define PLR_MODULE_ID_MASK
#define PLR_RUN_BUSY

#define PLR_COMMAND_WRITE

#define PLR_INVALID

#define PLR_TIMEOUT_US
#define PLR_TIMEOUT_MAX_US

#define PLR_COARSE_REASON_BITS

struct tpmi_plr;

struct tpmi_plr_die {};

struct tpmi_plr {};

static const char * const plr_coarse_reasons[] =;

static const char * const plr_fine_reasons[] =;

static u64 plr_read(struct tpmi_plr_die *plr_die, int offset)
{}

static void plr_write(u64 val, struct tpmi_plr_die *plr_die, int offset)
{}

static int plr_read_cpu_status(struct tpmi_plr_die *plr_die, int cpu,
			       u64 *status)
{}

static int plr_clear_cpu_status(struct tpmi_plr_die *plr_die, int cpu)
{}

static void plr_print_bits(struct seq_file *s, u64 val, int bits)
{}

static int plr_status_show(struct seq_file *s, void *unused)
{}

static ssize_t plr_status_write(struct file *filp, const char __user *ubuf,
				size_t count, loff_t *ppos)
{}
DEFINE_SHOW_STORE_ATTRIBUTE();

static int intel_plr_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
{}

static void intel_plr_remove(struct auxiliary_device *auxdev)
{}

static const struct auxiliary_device_id intel_plr_id_table[] =;
MODULE_DEVICE_TABLE(auxiliary, intel_plr_id_table);

static struct auxiliary_driver intel_plr_aux_driver =;
module_auxiliary_driver();

MODULE_IMPORT_NS();
MODULE_IMPORT_NS();
MODULE_DESCRIPTION();
MODULE_LICENSE();