slot fsm: fake ccid setparameter response

This secretly disables the PPS exchange to set a different baud rate and
ensures proper multislot operation at the default rate @ 2.5Mhz.

Change-Id: I72bd2bbabe55c00e771626d2e473f6f8e88793d2
diff --git a/ccid_common/ccid_slot_fsm.c b/ccid_common/ccid_slot_fsm.c
index 5ef30a2..788e3ae 100644
--- a/ccid_common/ccid_slot_fsm.c
+++ b/ccid_common/ccid_slot_fsm.c
@@ -32,6 +32,8 @@
 #include "iso7816_fsm.h"
 #include "iso7816_3.h"
 
+#define FAKE_CCID_SETPARAMETERS
+
 struct iso_fsm_slot {
 	/* CCID slot above us */
 	struct ccid_slot *cs;
@@ -280,11 +282,20 @@
 		 * - after ATR while card is idle
 		 * - after PPS while card is idle
 		 */
+#ifndef FAKE_CCID_SETPARAMETERS
 		card_uart_ctrl(ss->cuart, CUART_CTL_SET_CLOCK_FREQ, fmax);
 		card_uart_ctrl(ss->cuart, CUART_CTL_SET_FD, F/D);
 		card_uart_ctrl(ss->cuart, CUART_CTL_WTIME, cs->proposed_pars.t0.waiting_integer * 960 * D_or_one);
 
 		cs->pars = cs->proposed_pars;
+#else
+		//card_uart_ctrl(ss->cuart, CUART_CTL_SET_CLOCK_FREQ, fmax);
+		card_uart_ctrl(ss->cuart, CUART_CTL_SET_FD, F/D);
+		//card_uart_ctrl(ss->cuart, CUART_CTL_WTIME, cs->proposed_pars.t0.waiting_integer);
+
+		cs->pars.fi = cs->proposed_pars.fi;
+		cs->pars.di = cs->proposed_pars.di;
+#endif
 		resp = ccid_gen_parameters_t0(cs, ss->seq, CCID_CMD_STATUS_OK, 0);
 
 		ccid_slot_send_unbusy(cs, resp);
@@ -408,8 +419,13 @@
 
 	LOGPCS(cs, LOGL_DEBUG, "scheduling PPS transfer, PPS1: %2x\n", PPS1);
 
+#ifdef FAKE_CCID_SETPARAMETERS
+	ccid_slot_send_unbusy(cs, ccid_gen_parameters_t0(cs, ss->seq, CCID_CMD_STATUS_OK, 0));
+#else
 	/* pass PPS1 instead of msgb */
 	osmo_fsm_inst_dispatch(ss->fi, ISO7816_E_XCEIVE_PPS_CMD, (void*)PPS1);
+#endif
+
 	/* continues in iso_fsm_clot_user_cb once response/error/timeout is received */
 	return 0;
 }