staging: most: hdm-dim2: double size of DBR buffer
authorAndrey Shvetsov <andrey.shvetsov@k2l.de>
Thu, 15 Sep 2016 14:19:06 +0000 (16:19 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Sep 2016 17:23:29 +0000 (19:23 +0200)
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 <andrey.shvetsov@k2l.de>
Signed-off-by: Christian Gromm <christian.gromm@microchip.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/most/hdm-dim2/dim2_hdm.c

index 8bef73cd9c4791cc8310e438e820022022bc0350..78ce7472f837ea4ae1b5e1672425a5d5cd53e0bd 100644 (file)
@@ -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);