#include <asm/irq.h>
#include <linux/busfreq-imx.h>
+#include <linux/pm_qos.h>
#include <linux/platform_data/serial-imx.h>
#include <linux/platform_data/dma-imx.h>
unsigned int dma_tx_nents;
unsigned int saved_reg[10];
bool context_saved;
+
+ struct pm_qos_request pm_qos_req;
};
struct imx_port_ucrs {
sport->dma_chan_tx = NULL;
}
+ pm_qos_remove_request(&sport->pm_qos_req);
release_bus_freq(BUS_FREQ_HIGH);
}
struct device *dev = sport->port.dev;
int ret;
+ /* request high bus for DMA mode */
+ request_bus_freq(BUS_FREQ_HIGH);
+ pm_qos_add_request(&sport->pm_qos_req, PM_QOS_CPU_DMA_LATENCY, 0);
+
/* Prepare for RX : */
sport->dma_chan_rx = dma_request_slave_channel(dev, "rx");
if (!sport->dma_chan_rx) {
goto err;
}
- request_bus_freq(BUS_FREQ_HIGH);
-
return 0;
err:
imx_uart_dma_exit(sport);