summaryrefslogtreecommitdiff
path: root/sound/pci/oxygen/xonar.h
blob: 0434c207e811a00e51b4c465617e7e299defbb9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef XONAR_H_INCLUDED
#define XONAR_H_INCLUDED

#include "oxygen.h"

struct xonar_generic {
	unsigned int anti_pop_delay;
	u16 output_enable_bit;
	u8 ext_power_reg;
	u8 ext_power_int_reg;
	u8 ext_power_bit;
	u8 has_power;
};

struct xonar_hdmi {
	u8 params[5];
};

/* generic helper functions */

void xonar_enable_output(struct oxygen *chip);
void xonar_disable_output(struct oxygen *chip);
void xonar_init_ext_power(struct oxygen *chip);
void xonar_init_cs53x1(struct oxygen *chip);
void xonar_set_cs53x1_params(struct oxygen *chip,
			     struct snd_pcm_hw_params *params);

#define XONAR_GPIO_BIT_INVERT	(1 << 16)
int xonar_gpio_bit_switch_get(struct snd_kcontrol *ctl,
			      struct snd_ctl_elem_value *value);
int xonar_gpio_bit_switch_put(struct snd_kcontrol *ctl,
			      struct snd_ctl_elem_value *value);

/* model-specific card drivers */

int get_xonar_pcm179x_model(struct oxygen *chip,
			    const struct pci_device_id *id);
int get_xonar_cs43xx_model(struct oxygen *chip,
			   const struct pci_device_id *id);
int get_xonar_wm87x6_model(struct oxygen *chip,
			   const struct pci_device_id *id);

/* HDMI helper functions */

void xonar_hdmi_init(struct oxygen *chip, struct xonar_hdmi *data);
void xonar_hdmi_cleanup(struct oxygen *chip);
void xonar_hdmi_resume(struct oxygen *chip, struct xonar_hdmi *hdmi);
void xonar_hdmi_pcm_hardware_filter(unsigned int channel,
				    struct snd_pcm_hardware *hardware);
void xonar_set_hdmi_params(struct oxygen *chip, struct xonar_hdmi *hdmi,
			   struct snd_pcm_hw_params *params);
void xonar_hdmi_uart_input(struct oxygen *chip);

#endif
me. Previously using the wrong dev for a call to dev_to_iio_dev. * dht11 - Something seems to have caused a regression in timing on the raspberry pi 2B. However, the bug that it threw up was real. msleep was occasionally resulting in very long sleeps, over the limit possible to read from this chip. Switch to usleep_range to avoid this. The timing needed by this part is very fiddly. * max30100 - wrong parenthesis around fifo count check meant it always read after the almost_full state had been reached. I've tagged this with a fixes tag which covers the last patch that it will not need precursor patches. The bug predates that but will need backporting. * palmas_gpadc. - retrieve valid iio_dev in suspend / resume. Previously using the wrong dev for a call to dev_to_iio_dev.
Diffstat (limited to 'drivers/usb/dwc2/debug.h')