|
@@ -210,3 +210,58 @@ void edma_free_slot(unsigned slot);
|
|
|
int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count);
|
|
|
int edma_free_cont_slots(unsigned slot, int count);
|
|
|
|
|
|
+/* calls that operate on part of a parameter RAM slot */
|
|
|
+void edma_set_src(unsigned slot, dma_addr_t src_port,
|
|
|
+ enum address_mode mode, enum fifo_width);
|
|
|
+void edma_set_dest(unsigned slot, dma_addr_t dest_port,
|
|
|
+ enum address_mode mode, enum fifo_width);
|
|
|
+void edma_get_position(unsigned slot, dma_addr_t *src, dma_addr_t *dst);
|
|
|
+void edma_set_src_index(unsigned slot, s16 src_bidx, s16 src_cidx);
|
|
|
+void edma_set_dest_index(unsigned slot, s16 dest_bidx, s16 dest_cidx);
|
|
|
+void edma_set_transfer_params(unsigned slot, u16 acnt, u16 bcnt, u16 ccnt,
|
|
|
+ u16 bcnt_rld, enum sync_dimension sync_mode);
|
|
|
+void edma_link(unsigned from, unsigned to);
|
|
|
+void edma_unlink(unsigned from);
|
|
|
+
|
|
|
+/* calls that operate on an entire parameter RAM slot */
|
|
|
+void edma_write_slot(unsigned slot, const struct edmacc_param *params);
|
|
|
+void edma_read_slot(unsigned slot, struct edmacc_param *params);
|
|
|
+
|
|
|
+/* channel control operations */
|
|
|
+int edma_start(unsigned channel);
|
|
|
+void edma_stop(unsigned channel);
|
|
|
+void edma_clean_channel(unsigned channel);
|
|
|
+void edma_clear_event(unsigned channel);
|
|
|
+void edma_pause(unsigned channel);
|
|
|
+void edma_resume(unsigned channel);
|
|
|
+
|
|
|
+struct edma_rsv_info {
|
|
|
+
|
|
|
+ const s16 (*rsv_chans)[2];
|
|
|
+ const s16 (*rsv_slots)[2];
|
|
|
+};
|
|
|
+
|
|
|
+/* platform_data for EDMA driver */
|
|
|
+struct edma_soc_info {
|
|
|
+
|
|
|
+ /* how many dma resources of each type */
|
|
|
+ unsigned n_channel;
|
|
|
+ unsigned n_region;
|
|
|
+ unsigned n_slot;
|
|
|
+ unsigned n_tc;
|
|
|
+ unsigned n_cc;
|
|
|
+ /*
|
|
|
+ * Default queue is expected to be a low-priority queue.
|
|
|
+ * This way, long transfers on the default queue started
|
|
|
+ * by the codec engine will not cause audio defects.
|
|
|
+ */
|
|
|
+ enum dma_event_q default_queue;
|
|
|
+
|
|
|
+ /* Resource reservation for other cores */
|
|
|
+ struct edma_rsv_info *rsv;
|
|
|
+
|
|
|
+ const s8 (*queue_tc_mapping)[2];
|
|
|
+ const s8 (*queue_priority_mapping)[2];
|
|
|
+};
|
|
|
+
|
|
|
+#endif
|