#include <linux/dma-mapping.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/module.h>
#include "../interface/vchiq_arm/vchiq_bus.h"
#include "bcm2835.h"
static bool enable_hdmi;
static bool enable_headphones = …;
static int num_channels = …;
module_param(enable_hdmi, bool, 0444);
MODULE_PARM_DESC(…) …;
module_param(enable_headphones, bool, 0444);
MODULE_PARM_DESC(…) …;
module_param(num_channels, int, 0644);
MODULE_PARM_DESC(…) …;
static void bcm2835_devm_free_vchi_ctx(struct device *dev, void *res)
{ … }
static int bcm2835_devm_add_vchi_ctx(struct device *dev)
{ … }
struct bcm2835_audio_driver { … };
static int bcm2835_audio_dual_newpcm(struct bcm2835_chip *chip,
const char *name,
enum snd_bcm2835_route route,
u32 numchannels)
{ … }
static int bcm2835_audio_simple_newpcm(struct bcm2835_chip *chip,
const char *name,
enum snd_bcm2835_route route,
u32 numchannels)
{ … }
static struct bcm2835_audio_driver bcm2835_audio_hdmi = …;
static struct bcm2835_audio_driver bcm2835_audio_headphones = …;
struct bcm2835_audio_drivers { … };
static struct bcm2835_audio_drivers children_devices[] = …;
static void bcm2835_card_free(void *data)
{ … }
static int snd_add_child_device(struct device *dev,
struct bcm2835_audio_driver *audio_driver,
u32 numchans)
{ … }
static int snd_add_child_devices(struct device *device, u32 numchans)
{ … }
static int snd_bcm2835_alsa_probe(struct vchiq_device *device)
{ … }
#ifdef CONFIG_PM
static int snd_bcm2835_alsa_suspend(struct vchiq_device *device,
pm_message_t state)
{ … }
static int snd_bcm2835_alsa_resume(struct vchiq_device *device)
{ … }
#endif
static struct vchiq_device_id device_id_table[] = …;
MODULE_DEVICE_TABLE(vchiq, device_id_table);
static struct vchiq_driver bcm2835_alsa_driver = …;
module_vchiq_driver(…);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;