return 0;
 }
 
-static int qmc_chan_setup_tsa_32rx_32tx(struct qmc_chan *chan, const struct tsa_serial_info *info,
-                                       bool enable)
+static int qmc_chan_setup_tsa_32rx(struct qmc_chan *chan, const struct tsa_serial_info *info,
+                                  bool enable)
 {
        unsigned int i;
        u16 curr;
        u16 val;
 
-       /* Use a Tx 32 entries table and a Rx 32 entries table */
+       /* Use a Rx 32 entries table */
 
        val = QMC_TSA_VALID | QMC_TSA_MASK | QMC_TSA_CHANNEL(chan->id);
 
                        return -EBUSY;
                }
        }
+
+       /* Set entries based on Rx stuff */
+       for (i = 0; i < info->nb_rx_ts; i++) {
+               if (!(chan->rx_ts_mask & (((u64)1) << i)))
+                       continue;
+
+               qmc_clrsetbits16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2),
+                                ~QMC_TSA_WRAP, enable ? val : 0x0000);
+       }
+
+       return 0;
+}
+
+static int qmc_chan_setup_tsa_32tx(struct qmc_chan *chan, const struct tsa_serial_info *info,
+                                  bool enable)
+{
+       unsigned int i;
+       u16 curr;
+       u16 val;
+
+       /* Use a Tx 32 entries table */
+
+       val = QMC_TSA_VALID | QMC_TSA_MASK | QMC_TSA_CHANNEL(chan->id);
+
        /* Check entries based on Tx stuff */
        for (i = 0; i < info->nb_tx_ts; i++) {
                if (!(chan->tx_ts_mask & (((u64)1) << i)))
                }
        }
 
-       /* Set entries based on Rx stuff */
-       for (i = 0; i < info->nb_rx_ts; i++) {
-               if (!(chan->rx_ts_mask & (((u64)1) << i)))
-                       continue;
-
-               qmc_clrsetbits16(chan->qmc->scc_pram + QMC_GBL_TSATRX + (i * 2),
-                                ~QMC_TSA_WRAP, enable ? val : 0x0000);
-       }
        /* Set entries based on Tx stuff */
        for (i = 0; i < info->nb_tx_ts; i++) {
                if (!(chan->tx_ts_mask & (((u64)1) << i)))
         * Setup one common 64 entries table or two 32 entries (one for Tx
         * and one for Tx) according to assigned TS numbers.
         */
-       return ((info.nb_tx_ts > 32) || (info.nb_rx_ts > 32)) ?
-               qmc_chan_setup_tsa_64rxtx(chan, &info, enable) :
-               qmc_chan_setup_tsa_32rx_32tx(chan, &info, enable);
+       if (info.nb_tx_ts > 32 || info.nb_rx_ts > 32)
+               return qmc_chan_setup_tsa_64rxtx(chan, &info, enable);
+
+       ret = qmc_chan_setup_tsa_32rx(chan, &info, enable);
+       if (ret)
+               return ret;
+
+       return qmc_chan_setup_tsa_32tx(chan, &info, enable);
 }
 
 static int qmc_chan_command(struct qmc_chan *chan, u8 qmc_opcode)