Loading Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +6 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,12 @@ Required properties: - qti,msm-pcm-low-latency : Flag indicating whether the device node is of type low latency. - qti,latency-level : Flag indicating whether the device node is of type regular low latency or ultra low latency. regular : regular low latency stream ultra : ultra low latency stream * msm-pcm-routing Required properties: Loading include/sound/q6adm-v2.h +4 −4 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ struct route_payload { int srs_trumedia_open(int port_id, int srs_tech_id, void *srs_params); int adm_open(int port, int path, int rate, int mode, int topology, bool perf_mode, uint16_t bits_per_sample); int perf_mode, uint16_t bits_per_sample); int adm_get_params(int port_id, uint32_t module_id, uint32_t param_id, uint32_t params_length, char *params); Loading @@ -40,7 +40,7 @@ int adm_dolby_dap_send_params(int port_id, char *params, uint32_t params_length); int adm_multi_ch_copp_open(int port, int path, int rate, int mode, int topology, bool perf_mode, uint16_t bits_per_sample); int topology, int perf_mode, uint16_t bits_per_sample); int adm_unmap_cal_blocks(void); Loading @@ -53,10 +53,10 @@ int adm_memory_map_regions(int port_id, uint32_t *buf_add, uint32_t mempool_id, int adm_memory_unmap_regions(int port_id); int adm_close(int port, bool perf_mode); int adm_close(int port, int perf_mode); int adm_matrix_map(int session_id, int path, int num_copps, unsigned int *port_id, int copp_id, bool perf_mode); unsigned int *port_id, int copp_id, int perf_mode); int adm_connect_afe_port(int mode, int session_id, int port_id); Loading include/sound/q6asm-v2.h +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ struct audio_client { struct audio_port_data port[2]; wait_queue_head_t cmd_wait; wait_queue_head_t time_wait; bool perf_mode; int perf_mode; int stream_id; /* audio cache operations fptr*/ int (*fptr_cache_ops)(struct audio_buffer *abuff, int cache_op); Loading include/sound/q6audio-v2.h +7 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,13 @@ #include <mach/qdsp6v2/apr.h> enum { LEGACY_PCM_MODE = 0, LOW_LATENCY_PCM_MODE, ULTRA_LOW_LATENCY_PCM_MODE, }; int q6audio_get_port_index(u16 port_id); int q6audio_convert_virtual_to_portid(u16 port_id); Loading sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c +13 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <sound/pcm.h> #include <sound/initval.h> #include <sound/control.h> #include <sound/q6audio-v2.h> #include <asm/dma.h> #include <linux/dma-mapping.h> #include <linux/msm_audio_ion.h> Loading Loading @@ -918,6 +919,7 @@ static int msm_pcm_probe(struct platform_device *pdev) int rc; int id; struct msm_plat_data *pdata; const char *latency_level; rc = of_property_read_u32(pdev->dev.of_node, "qti,msm-pcm-dsp-id", &id); Loading @@ -934,10 +936,18 @@ static int msm_pcm_probe(struct platform_device *pdev) } if (of_property_read_bool(pdev->dev.of_node, "qti,msm-pcm-low-latency")) pdata->perf_mode = 1; "qti,msm-pcm-low-latency")) { pdata->perf_mode = LOW_LATENCY_PCM_MODE; rc = of_property_read_string(pdev->dev.of_node, "qti,latency-level", &latency_level); if (!rc) { if (!strcmp(latency_level, "ultra")) pdata->perf_mode = ULTRA_LOW_LATENCY_PCM_MODE; } } else pdata->perf_mode = 0; pdata->perf_mode = LEGACY_PCM_MODE; dev_set_drvdata(&pdev->dev, pdata); Loading Loading
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +6 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,12 @@ Required properties: - qti,msm-pcm-low-latency : Flag indicating whether the device node is of type low latency. - qti,latency-level : Flag indicating whether the device node is of type regular low latency or ultra low latency. regular : regular low latency stream ultra : ultra low latency stream * msm-pcm-routing Required properties: Loading
include/sound/q6adm-v2.h +4 −4 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ struct route_payload { int srs_trumedia_open(int port_id, int srs_tech_id, void *srs_params); int adm_open(int port, int path, int rate, int mode, int topology, bool perf_mode, uint16_t bits_per_sample); int perf_mode, uint16_t bits_per_sample); int adm_get_params(int port_id, uint32_t module_id, uint32_t param_id, uint32_t params_length, char *params); Loading @@ -40,7 +40,7 @@ int adm_dolby_dap_send_params(int port_id, char *params, uint32_t params_length); int adm_multi_ch_copp_open(int port, int path, int rate, int mode, int topology, bool perf_mode, uint16_t bits_per_sample); int topology, int perf_mode, uint16_t bits_per_sample); int adm_unmap_cal_blocks(void); Loading @@ -53,10 +53,10 @@ int adm_memory_map_regions(int port_id, uint32_t *buf_add, uint32_t mempool_id, int adm_memory_unmap_regions(int port_id); int adm_close(int port, bool perf_mode); int adm_close(int port, int perf_mode); int adm_matrix_map(int session_id, int path, int num_copps, unsigned int *port_id, int copp_id, bool perf_mode); unsigned int *port_id, int copp_id, int perf_mode); int adm_connect_afe_port(int mode, int session_id, int port_id); Loading
include/sound/q6asm-v2.h +1 −1 Original line number Diff line number Diff line Loading @@ -175,7 +175,7 @@ struct audio_client { struct audio_port_data port[2]; wait_queue_head_t cmd_wait; wait_queue_head_t time_wait; bool perf_mode; int perf_mode; int stream_id; /* audio cache operations fptr*/ int (*fptr_cache_ops)(struct audio_buffer *abuff, int cache_op); Loading
include/sound/q6audio-v2.h +7 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,13 @@ #include <mach/qdsp6v2/apr.h> enum { LEGACY_PCM_MODE = 0, LOW_LATENCY_PCM_MODE, ULTRA_LOW_LATENCY_PCM_MODE, }; int q6audio_get_port_index(u16 port_id); int q6audio_convert_virtual_to_portid(u16 port_id); Loading
sound/soc/msm/qdsp6v2/msm-pcm-q6-v2.c +13 −3 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <sound/pcm.h> #include <sound/initval.h> #include <sound/control.h> #include <sound/q6audio-v2.h> #include <asm/dma.h> #include <linux/dma-mapping.h> #include <linux/msm_audio_ion.h> Loading Loading @@ -918,6 +919,7 @@ static int msm_pcm_probe(struct platform_device *pdev) int rc; int id; struct msm_plat_data *pdata; const char *latency_level; rc = of_property_read_u32(pdev->dev.of_node, "qti,msm-pcm-dsp-id", &id); Loading @@ -934,10 +936,18 @@ static int msm_pcm_probe(struct platform_device *pdev) } if (of_property_read_bool(pdev->dev.of_node, "qti,msm-pcm-low-latency")) pdata->perf_mode = 1; "qti,msm-pcm-low-latency")) { pdata->perf_mode = LOW_LATENCY_PCM_MODE; rc = of_property_read_string(pdev->dev.of_node, "qti,latency-level", &latency_level); if (!rc) { if (!strcmp(latency_level, "ultra")) pdata->perf_mode = ULTRA_LOW_LATENCY_PCM_MODE; } } else pdata->perf_mode = 0; pdata->perf_mode = LEGACY_PCM_MODE; dev_set_drvdata(&pdev->dev, pdata); Loading