Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fce72704 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "bt: Unset multi channel bit for 44.1/88.2Khz A2DP Rx"

parents 89f31c16 ce3ab0ec
Loading
Loading
Loading
Loading
+17 −4
Original line number Original line Diff line number Diff line
@@ -81,14 +81,12 @@ int btfm_slim_slave_enable_port(struct btfmslim *btfmslim, uint8_t port_num,
	uint8_t reg_val = 0, en;
	uint8_t reg_val = 0, en;
	uint8_t rxport_num = 0;
	uint8_t rxport_num = 0;
	uint16_t reg;
	uint16_t reg;
	uint8_t prev_reg_val = 0;


	BTFMSLIM_DBG("port(%d) enable(%d)", port_num, enable);
	BTFMSLIM_DBG("port(%d) enable(%d)", port_num, enable);
	if (rxport) {
	if (rxport) {
		BTFMSLIM_DBG("sample rate is %d", btfmslim->sample_rate);
		BTFMSLIM_DBG("sample rate is %d", btfmslim->sample_rate);
		if (enable &&
		if (enable) {
			btfmslim->sample_rate != 44100 &&
			btfmslim->sample_rate != 88200) {
			BTFMSLIM_DBG("setting multichannel bit");
			/* For SCO Rx, A2DP Rx other than 44.1 and 88.2Khz */
			/* For SCO Rx, A2DP Rx other than 44.1 and 88.2Khz */
			if (port_num < 24) {
			if (port_num < 24) {
				rxport_num = port_num - 16;
				rxport_num = port_num - 16;
@@ -102,6 +100,21 @@ int btfm_slim_slave_enable_port(struct btfmslim *btfmslim, uint8_t port_num,
					rxport_num);
					rxport_num);
			}
			}


			if (btfmslim->sample_rate == 44100 ||
				btfmslim->sample_rate == 88200) {
				BTFMSLIM_DBG("unsetting multichannel bit");
				ret = btfm_slim_read(btfmslim, reg,  1,
							&prev_reg_val, IFD);
				if (ret < 0) {
					BTFMSLIM_ERR("error %d reading", ret);
					prev_reg_val = 0;
				}
				BTFMSLIM_DBG("prev_reg_val (%d) from reg(%x)",
						prev_reg_val, reg);
				reg_val = prev_reg_val & ~reg_val;
			} else
				BTFMSLIM_DBG("setting multichannel bit");

			BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)",
			BTFMSLIM_DBG("writing reg_val (%d) to reg(%x)",
				reg_val, reg);
				reg_val, reg);
			ret = btfm_slim_write(btfmslim, reg, 1, &reg_val, IFD);
			ret = btfm_slim_write(btfmslim, reg, 1, &reg_val, IFD);