From: Andrey Shvetsov <[email protected]>

This patch increases the size of the asynchronous and control DBR buffers
in the Tx path to twice the max. message size. This patch is needed to
increase the throughput for big messages.

Signed-off-by: Andrey Shvetsov <[email protected]>
Signed-off-by: Christian Gromm <[email protected]>
---
 drivers/staging/most/hdm-dim2/dim2_hdm.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/most/hdm-dim2/dim2_hdm.c 
b/drivers/staging/most/hdm-dim2/dim2_hdm.c
index 8bef73c..78ce747 100644
--- a/drivers/staging/most/hdm-dim2/dim2_hdm.c
+++ b/drivers/staging/most/hdm-dim2/dim2_hdm.c
@@ -526,7 +526,7 @@ static int configure_channel(struct most_interface 
*most_iface, int ch_idx,
                                hdm_ch->name, buf_size, new_size);
                spin_lock_irqsave(&dim_lock, flags);
                hal_ret = dim_init_control(&hdm_ch->ch, is_tx, ch_addr,
-                                          new_size);
+                                          is_tx ? new_size * 2 : new_size);
                break;
        case MOST_CH_ASYNC:
                new_size = dim_norm_ctrl_async_buffer_size(buf_size);
@@ -539,7 +539,8 @@ static int configure_channel(struct most_interface 
*most_iface, int ch_idx,
                        pr_warn("%s: fixed buffer size (%d -> %d)\n",
                                hdm_ch->name, buf_size, new_size);
                spin_lock_irqsave(&dim_lock, flags);
-               hal_ret = dim_init_async(&hdm_ch->ch, is_tx, ch_addr, new_size);
+               hal_ret = dim_init_async(&hdm_ch->ch, is_tx, ch_addr,
+                                        is_tx ? new_size * 2 : new_size);
                break;
        case MOST_CH_ISOC_AVP:
                new_size = dim_norm_isoc_buffer_size(buf_size, sub_size);
-- 
1.9.1

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to