#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/wait.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include "sbshc.h"
#define ACPI_SMB_HC_CLASS …
#define ACPI_SMB_HC_DEVICE_NAME …
struct acpi_smb_hc { … };
static int acpi_smbus_hc_add(struct acpi_device *device);
static void acpi_smbus_hc_remove(struct acpi_device *device);
static const struct acpi_device_id sbs_device_ids[] = …;
MODULE_DEVICE_TABLE(acpi, sbs_device_ids);
static struct acpi_driver acpi_smb_hc_driver = …;
acpi_smb_status;
enum acpi_smb_status_codes { … };
enum acpi_smb_offset { … };
static inline int smb_hc_read(struct acpi_smb_hc *hc, u8 address, u8 *data)
{ … }
static inline int smb_hc_write(struct acpi_smb_hc *hc, u8 address, u8 data)
{ … }
static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout)
{ … }
static int acpi_smbus_transaction(struct acpi_smb_hc *hc, u8 protocol,
u8 address, u8 command, u8 *data, u8 length)
{ … }
int acpi_smbus_read(struct acpi_smb_hc *hc, u8 protocol, u8 address,
u8 command, u8 *data)
{ … }
EXPORT_SYMBOL_GPL(…);
int acpi_smbus_write(struct acpi_smb_hc *hc, u8 protocol, u8 address,
u8 command, u8 *data, u8 length)
{ … }
EXPORT_SYMBOL_GPL(…);
int acpi_smbus_register_callback(struct acpi_smb_hc *hc,
smbus_alarm_callback callback, void *context)
{ … }
EXPORT_SYMBOL_GPL(…);
int acpi_smbus_unregister_callback(struct acpi_smb_hc *hc)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline void acpi_smbus_callback(void *context)
{ … }
static int smbus_alarm(void *context)
{ … }
acpi_ec_query_func;
extern int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
acpi_handle handle, acpi_ec_query_func func,
void *data);
static int acpi_smbus_hc_add(struct acpi_device *device)
{ … }
extern void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
static void acpi_smbus_hc_remove(struct acpi_device *device)
{ … }
module_acpi_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;