#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/io-64-nonatomic-lo-hi.h>
#include "processor_thermal_device.h"
#define MBOX_OFFSET_DATA …
#define MBOX_OFFSET_INTERFACE …
#define MBOX_BUSY_BIT …
#define MBOX_RETRY_COUNT …
static DEFINE_MUTEX(mbox_lock);
static int wait_for_mbox_ready(struct proc_thermal_device *proc_priv)
{ … }
static int send_mbox_write_cmd(struct pci_dev *pdev, u16 id, u32 data)
{ … }
static int send_mbox_read_cmd(struct pci_dev *pdev, u16 id, u64 *resp)
{ … }
int processor_thermal_send_mbox_read_cmd(struct pci_dev *pdev, u16 id, u64 *resp)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
int processor_thermal_send_mbox_write_cmd(struct pci_dev *pdev, u16 id, u32 data)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
#define MBOX_CAMARILLO_RD_INTR_CONFIG …
#define MBOX_CAMARILLO_WR_INTR_CONFIG …
#define WLT_TW_MASK …
#define SOC_PREDICTION_TW_SHIFT …
int processor_thermal_mbox_interrupt_config(struct pci_dev *pdev, bool enable,
int enable_bit, int time_window)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;