#define pr_fmt(fmt) …
#include <linux/types.h>
#include <linux/module.h>
#include <linux/device.h>
#include <linux/io.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/bitmap.h>
#include <linux/pm_runtime.h>
#include "intel_th.h"
#include "gth.h"
struct gth_device;
struct gth_output { … };
struct gth_device { … };
static void gth_output_set(struct gth_device *gth, int port,
unsigned int config)
{ … }
static unsigned int gth_output_get(struct gth_device *gth, int port)
{ … }
static void gth_smcfreq_set(struct gth_device *gth, int port,
unsigned int freq)
{ … }
static unsigned int gth_smcfreq_get(struct gth_device *gth, int port)
{ … }
struct master_attribute { … };
static void
gth_master_set(struct gth_device *gth, unsigned int master, int port)
{ … }
static ssize_t master_attr_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t master_attr_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{ … }
struct output_attribute { … };
#define OUTPUT_PARM(_name, _mask, _r, _w, _what) …
static const struct output_parm { … } output_parms[] = …;
static void
gth_output_parm_set(struct gth_device *gth, int port, unsigned int parm,
unsigned int val)
{ … }
static unsigned int
gth_output_parm_get(struct gth_device *gth, int port, unsigned int parm)
{ … }
static int intel_th_gth_reset(struct gth_device *gth)
{ … }
static ssize_t output_attr_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{ … }
static ssize_t output_attr_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{ … }
static int intel_th_master_attributes(struct gth_device *gth)
{ … }
static int intel_th_output_attributes(struct gth_device *gth)
{ … }
static void intel_th_gth_stop(struct gth_device *gth,
struct intel_th_output *output,
bool capture_done)
{ … }
static void intel_th_gth_start(struct gth_device *gth,
struct intel_th_output *output)
{ … }
static void intel_th_gth_disable(struct intel_th_device *thdev,
struct intel_th_output *output)
{ … }
static void gth_tscu_resync(struct gth_device *gth)
{ … }
static void intel_th_gth_prepare(struct intel_th_device *thdev,
struct intel_th_output *output)
{ … }
static void intel_th_gth_enable(struct intel_th_device *thdev,
struct intel_th_output *output)
{ … }
static void intel_th_gth_switch(struct intel_th_device *thdev,
struct intel_th_output *output)
{ … }
static int intel_th_gth_assign(struct intel_th_device *thdev,
struct intel_th_device *othdev)
{ … }
static void intel_th_gth_unassign(struct intel_th_device *thdev,
struct intel_th_device *othdev)
{ … }
static int
intel_th_gth_set_output(struct intel_th_device *thdev, unsigned int master)
{ … }
static int intel_th_gth_probe(struct intel_th_device *thdev)
{ … }
static void intel_th_gth_remove(struct intel_th_device *thdev)
{ … }
static struct intel_th_driver intel_th_gth_driver = …;
module_driver(…);
MODULE_ALIAS(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;