aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ctxfi/cthardware.h
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-06-05 16:11:07 +0200
committerTakashi Iwai <tiwai@suse.de>2009-06-05 16:44:13 +0200
commitb7bbf876087e0e2c0ba723a8398083c9a9ac1dfd (patch)
tree69a3e70658fc751ffc99eef5a6f047b19f61a4a2 /sound/pci/ctxfi/cthardware.h
parent6bc5874a1ddf98ac0fe6c4eab7d286c11cb1c748 (diff)
downloadkernel_samsung_smdk4412-b7bbf876087e0e2c0ba723a8398083c9a9ac1dfd.zip
kernel_samsung_smdk4412-b7bbf876087e0e2c0ba723a8398083c9a9ac1dfd.tar.gz
kernel_samsung_smdk4412-b7bbf876087e0e2c0ba723a8398083c9a9ac1dfd.tar.bz2
ALSA: ctxfi - Use native timer interrupt on emu20k1
emu20k1 has a native timer interrupt based on the audio clock, which is more accurate than the system timer (from the synchronization POV). This patch adds the code to handle this with multiple streams. The system timer is still used on emu20k2, and can be used also for emu20k1 easily by changing USE_SYSTEM_TIMER to 1 in cttimer.c. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/ctxfi/cthardware.h')
-rw-r--r--sound/pci/ctxfi/cthardware.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/sound/pci/ctxfi/cthardware.h b/sound/pci/ctxfi/cthardware.h
index b0512df..35350cf 100644
--- a/sound/pci/ctxfi/cthardware.h
+++ b/sound/pci/ctxfi/cthardware.h
@@ -145,6 +145,12 @@ struct hw {
int (*daio_mgr_set_imapaddr)(void *blk, unsigned int addr);
int (*daio_mgr_commit_write)(struct hw *hw, void *blk);
+ int (*set_timer_irq)(struct hw *hw, int enable);
+ int (*set_timer_tick)(struct hw *hw, unsigned int tick);
+
+ void (*irq_callback)(void *data, unsigned int bit);
+ void *irq_callback_data;
+
struct pci_dev *pci; /* the pci kernel structure of this card */
int irq;
unsigned long io_base;
@@ -157,4 +163,17 @@ int destroy_hw_obj(struct hw *hw);
unsigned int get_field(unsigned int data, unsigned int field);
void set_field(unsigned int *data, unsigned int field, unsigned int value);
+/* IRQ bits */
+#define PLL_INT (1 << 10) /* PLL input-clock out-of-range */
+#define FI_INT (1 << 9) /* forced interrupt */
+#define IT_INT (1 << 8) /* timer interrupt */
+#define PCI_INT (1 << 7) /* PCI bus error pending */
+#define URT_INT (1 << 6) /* UART Tx/Rx */
+#define GPI_INT (1 << 5) /* GPI pin */
+#define MIX_INT (1 << 4) /* mixer parameter segment FIFO channels */
+#define DAI_INT (1 << 3) /* DAI (SR-tracker or SPDIF-receiver) */
+#define TP_INT (1 << 2) /* transport priority queue */
+#define DSP_INT (1 << 1) /* DSP */
+#define SRC_INT (1 << 0) /* SRC channels */
+
#endif /* CTHARDWARE_H */