#define pr_fmt(fmt) …
#include <linux/device.h>
#include <linux/debugfs.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/firmware.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/i2c.h>
#include <linux/of_irq.h>
#include <linux/of_address.h>
#include <linux/of_graph.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/videodev2.h>
#include <media/videobuf2-dma-contig.h>
#include "media-dev.h"
#include "fimc-is.h"
#include "fimc-is-command.h"
#include "fimc-is-errno.h"
#include "fimc-is-i2c.h"
#include "fimc-is-param.h"
#include "fimc-is-regs.h"
static char *fimc_is_clocks[ISS_CLKS_MAX] = …;
static void fimc_is_put_clocks(struct fimc_is *is)
{ … }
static int fimc_is_get_clocks(struct fimc_is *is)
{ … }
static int fimc_is_setup_clocks(struct fimc_is *is)
{ … }
static int fimc_is_enable_clocks(struct fimc_is *is)
{ … }
static void fimc_is_disable_clocks(struct fimc_is *is)
{ … }
static int fimc_is_parse_sensor_config(struct fimc_is *is, unsigned int index,
struct device_node *node)
{ … }
static int fimc_is_register_subdevs(struct fimc_is *is)
{ … }
static int fimc_is_unregister_subdevs(struct fimc_is *is)
{ … }
static int fimc_is_load_setfile(struct fimc_is *is, char *file_name)
{ … }
int fimc_is_cpu_set_power(struct fimc_is *is, int on)
{ … }
int fimc_is_wait_event(struct fimc_is *is, unsigned long bit,
unsigned int state, unsigned int timeout)
{ … }
int fimc_is_start_firmware(struct fimc_is *is)
{ … }
static int fimc_is_alloc_cpu_memory(struct fimc_is *is)
{ … }
static void fimc_is_free_cpu_memory(struct fimc_is *is)
{ … }
static void fimc_is_load_firmware(const struct firmware *fw, void *context)
{ … }
static int fimc_is_request_firmware(struct fimc_is *is, const char *fw_name)
{ … }
static void fimc_is_general_irq_handler(struct fimc_is *is)
{ … }
static irqreturn_t fimc_is_irq_handler(int irq, void *priv)
{ … }
static int fimc_is_hw_open_sensor(struct fimc_is *is,
struct fimc_is_sensor *sensor)
{ … }
int fimc_is_hw_initialize(struct fimc_is *is)
{ … }
static int fimc_is_show(struct seq_file *s, void *data)
{ … }
DEFINE_SHOW_ATTRIBUTE(…);
static void fimc_is_debugfs_remove(struct fimc_is *is)
{ … }
static void fimc_is_debugfs_create(struct fimc_is *is)
{ … }
static int fimc_is_runtime_resume(struct device *dev);
static int fimc_is_runtime_suspend(struct device *dev);
static void __iomem *fimc_is_get_pmu_regs(struct device *dev)
{ … }
static int fimc_is_probe(struct platform_device *pdev)
{ … }
static int fimc_is_runtime_resume(struct device *dev)
{ … }
static int fimc_is_runtime_suspend(struct device *dev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int fimc_is_resume(struct device *dev)
{ … }
static int fimc_is_suspend(struct device *dev)
{ … }
#endif
static void fimc_is_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id fimc_is_of_match[] = …;
MODULE_DEVICE_TABLE(of, fimc_is_of_match);
static const struct dev_pm_ops fimc_is_pm_ops = …;
static struct platform_driver fimc_is_driver = …;
static int fimc_is_module_init(void)
{ … }
static void fimc_is_module_exit(void)
{ … }
module_init(…) …;
module_exit(fimc_is_module_exit);
MODULE_ALIAS(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;