linux/drivers/misc/mei/platform-vsc.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2023, Intel Corporation.
 * Intel Visual Sensing Controller Interface Linux driver
 */

#include <linux/align.h>
#include <linux/cache.h>
#include <linux/cleanup.h>
#include <linux/iopoll.h>
#include <linux/list.h>
#include <linux/mei.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/overflow.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/timekeeping.h>
#include <linux/types.h>

#include <asm-generic/bug.h>
#include <asm-generic/unaligned.h>

#include "mei_dev.h"
#include "vsc-tp.h"

#define MEI_VSC_DRV_NAME

#define MEI_VSC_MAX_MSG_SIZE

#define MEI_VSC_POLL_DELAY_US
#define MEI_VSC_POLL_TIMEOUT_US

#define mei_dev_to_vsc_hw(dev)

struct mei_vsc_host_timestamp {};

struct mei_vsc_hw {};

static int mei_vsc_read_helper(struct mei_vsc_hw *hw, u8 *buf,
			       u32 max_len)
{}

static int mei_vsc_write_helper(struct mei_vsc_hw *hw, u8 *buf, u32 len)
{}

static int mei_vsc_fw_status(struct mei_device *mei_dev,
			     struct mei_fw_status *fw_status)
{}

static inline enum mei_pg_state mei_vsc_pg_state(struct mei_device *mei_dev)
{}

static void mei_vsc_intr_enable(struct mei_device *mei_dev)
{}

static void mei_vsc_intr_disable(struct mei_device *mei_dev)
{}

/* mei framework requires this ops */
static void mei_vsc_intr_clear(struct mei_device *mei_dev)
{}

/* wait for pending irq handler */
static void mei_vsc_synchronize_irq(struct mei_device *mei_dev)
{}

static int mei_vsc_hw_config(struct mei_device *mei_dev)
{}

static bool mei_vsc_host_is_ready(struct mei_device *mei_dev)
{}

static bool mei_vsc_hw_is_ready(struct mei_device *mei_dev)
{}

static int mei_vsc_hw_start(struct mei_device *mei_dev)
{}

static bool mei_vsc_hbuf_is_ready(struct mei_device *mei_dev)
{}

static int mei_vsc_hbuf_empty_slots(struct mei_device *mei_dev)
{}

static u32 mei_vsc_hbuf_depth(const struct mei_device *mei_dev)
{}

static int mei_vsc_write(struct mei_device *mei_dev,
			 const void *hdr, size_t hdr_len,
			 const void *data, size_t data_len)
{}

static inline u32 mei_vsc_read(const struct mei_device *mei_dev)
{}

static int mei_vsc_count_full_read_slots(struct mei_device *mei_dev)
{}

static int mei_vsc_read_slots(struct mei_device *mei_dev, unsigned char *buf,
			      unsigned long len)
{}

static bool mei_vsc_pg_in_transition(struct mei_device *mei_dev)
{}

static bool mei_vsc_pg_is_enabled(struct mei_device *mei_dev)
{}

static int mei_vsc_hw_reset(struct mei_device *mei_dev, bool intr_enable)
{}

static const struct mei_hw_ops mei_vsc_hw_ops =;

static void mei_vsc_event_cb(void *context)
{}

static int mei_vsc_probe(struct platform_device *pdev)
{}

static void mei_vsc_remove(struct platform_device *pdev)
{}

static int mei_vsc_suspend(struct device *dev)
{}

static int mei_vsc_resume(struct device *dev)
{}

static DEFINE_SIMPLE_DEV_PM_OPS(mei_vsc_pm_ops, mei_vsc_suspend, mei_vsc_resume);

static const struct platform_device_id mei_vsc_id_table[] =;
MODULE_DEVICE_TABLE(platform, mei_vsc_id_table);

static struct platform_driver mei_vsc_drv =;
module_platform_driver();

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