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

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

Merge "RTC6226: set the the Channel spacing value in Radio Config register"

parents 7a2431a9 f7eea46a
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -1763,7 +1763,6 @@ int rtc6226_vidioc_s_ctrl(struct file *file, void *priv,
{
	struct rtc6226_device *radio = video_drvdata(file);
	int retval = 0;
	int space_s = 0;

	FMDBG("%s enter, ctrl->id: %x, value:%d\n", __func__,
		ctrl->id, ctrl->value);
@@ -1815,13 +1814,6 @@ int rtc6226_vidioc_s_ctrl(struct file *file, void *priv,
		/*radio->registers[SYSCFG] |= SYSCFG_CSR0_RDS_EN;*/
		retval = rtc6226_set_register(radio, SYSCFG);
		break;
	case V4L2_CID_PRIVATE_RTC6226_SPACING:
		space_s = ctrl->value;
		radio->space = ctrl->value;
		radio->registers[CHANNEL] &= ~CHANNEL_CSR0_CHSPACE;
		radio->registers[CHANNEL] |= (space_s << 10);
		retval = rtc6226_set_register(radio, CHANNEL);
		break;
	case V4L2_CID_PRIVATE_RTC6226_SRCHON:
		rtc6226_search(radio, (bool)ctrl->value);
		break;
@@ -1973,18 +1965,22 @@ int rtc6226_vidioc_s_ctrl(struct file *file, void *priv,
		retval = rtc6226_set_register(radio, RADIOSEEKCFG1);
		retval = rtc6226_set_register(radio, RADIOSEEKCFG2);
		break;
	case V4L2_CID_PRIVATE_RTC6226_SPACING:
	case V4L2_CID_PRIVATE_CSR0_CHSPACE:
		FMDBG("V4L2_CID_PRIVATE_CSR0_CHSPACE : FM_SPACE=%d %d\n",
			radio->registers[RADIOCFG], ctrl->value);
		radio->space = ctrl->value;
		radio->registers[RADIOCFG] &= ~CHANNEL_CSR0_CHSPACE;

		switch (ctrl->value) {
		case FMSPACE_200_KHZ:
			radio->registers[RADIOCFG] = 20;
			radio->registers[RADIOCFG] |= 0x1400;
			break;
		case FMSPACE_100_KHZ:
			radio->registers[RADIOCFG] = 10;
			radio->registers[RADIOCFG] |= 0x0A00;
			break;
		case FMSPACE_50_KHZ:
			radio->registers[RADIOCFG] = 5;
			radio->registers[RADIOCFG] |= 0x0500;
			break;
		default:
			retval = -EINVAL;