#include <linux/of_device.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/rpmsg.h>
#include <linux/slab.h>
#include <linux/soc/qcom/pdr.h>
#include <linux/debugfs.h>
#define CREATE_TRACE_POINTS
#include "pmic_pdcharger_ulog.h"
#define MSG_OWNER_CHG_ULOG …
#define MSG_TYPE_REQ_RESP …
#define GET_CHG_ULOG_REQ …
#define SET_CHG_ULOG_PROP_REQ …
#define LOG_DEFAULT_TIME_MS …
#define MAX_ULOG_SIZE …
struct pmic_pdcharger_ulog_hdr { … };
struct pmic_pdcharger_ulog { … };
struct get_ulog_req_msg { … };
struct get_ulog_resp_msg { … };
static int pmic_pdcharger_ulog_write_async(struct pmic_pdcharger_ulog *pg, void *data, size_t len)
{ … }
static int pmic_pdcharger_ulog_request(struct pmic_pdcharger_ulog *pg)
{ … }
static void pmic_pdcharger_ulog_work(struct work_struct *work)
{ … }
static void pmic_pdcharger_ulog_handle_message(struct pmic_pdcharger_ulog *pg,
struct get_ulog_resp_msg *resp_msg,
size_t len)
{ … }
static int pmic_pdcharger_ulog_rpmsg_callback(struct rpmsg_device *rpdev, void *data,
int len, void *priv, u32 addr)
{ … }
static int pmic_pdcharger_ulog_rpmsg_probe(struct rpmsg_device *rpdev)
{ … }
static void pmic_pdcharger_ulog_rpmsg_remove(struct rpmsg_device *rpdev)
{ … }
static const struct rpmsg_device_id pmic_pdcharger_ulog_rpmsg_id_match[] = …;
static struct rpmsg_driver pmic_pdcharger_ulog_rpmsg_driver = …;
module_rpmsg_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;