dmaengine: ti: k3-psil: optimize struct psil_endpoint_config for size
authorGrygorii Strashko <grygorii.strashko@ti.com>
Fri, 29 Jan 2021 19:31:17 +0000 (21:31 +0200)
committerVinod Koul <vkoul@kernel.org>
Mon, 1 Feb 2021 05:59:11 +0000 (11:29 +0530)
Optimize struct psil_endpoint_config for size by
- reordering fields
- grouping bitfields
- change mapped_channel_id type to s16 (32K channel is enough)
- default_flow_id type to s16 as it's assigned to -1

before:
text            data     bss    dec         hex filename
12654100 5211472  666904 18532476 11ac87c vmlinux

after:
12654100 5208528  666904 18529532 11abcfc vmlinux

diff: 2944 bytes

Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Link: https://lore.kernel.org/r/20210129193117.28833-1-grygorii.strashko@ti.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
include/linux/dma/k3-psil.h

index 36e22c5..5f106d8 100644 (file)
@@ -42,14 +42,14 @@ enum psil_endpoint_type {
 /**
  * struct psil_endpoint_config - PSI-L Endpoint configuration
  * @ep_type:           PSI-L endpoint type
+ * @channel_tpl:       Desired throughput level for the channel
  * @pkt_mode:          If set, the channel must be in Packet mode, otherwise in
  *                     TR mode
  * @notdpkt:           TDCM must be suppressed on the TX channel
  * @needs_epib:                Endpoint needs EPIB
- * @psd_size:          If set, PSdata is used by the endpoint
- * @channel_tpl:       Desired throughput level for the channel
  * @pdma_acc32:                ACC32 must be enabled on the PDMA side
  * @pdma_burst:                BURST must be enabled on the PDMA side
+ * @psd_size:          If set, PSdata is used by the endpoint
  * @mapped_channel_id: PKTDMA thread to channel mapping for mapped channels.
  *                     The thread must be serviced by the specified channel if
  *                     mapped_channel_id is >= 0 in case of PKTDMA
@@ -62,23 +62,22 @@ enum psil_endpoint_type {
  */
 struct psil_endpoint_config {
        enum psil_endpoint_type ep_type;
+       enum udma_tp_level channel_tpl;
 
        unsigned pkt_mode:1;
        unsigned notdpkt:1;
        unsigned needs_epib:1;
-       u32 psd_size;
-       enum udma_tp_level channel_tpl;
-
        /* PDMA properties, valid for PSIL_EP_PDMA_* */
        unsigned pdma_acc32:1;
        unsigned pdma_burst:1;
 
+       u32 psd_size;
        /* PKDMA mapped channel */
-       int mapped_channel_id;
+       s16 mapped_channel_id;
        /* PKTDMA tflow and rflow ranges for mapped channel */
        u16 flow_start;
        u16 flow_num;
-       u16 default_flow_id;
+       s16 default_flow_id;
 };
 
 int psil_set_new_ep_config(struct device *dev, const char *name,