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

Commit 3ce086a9 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: bgcom_dev: add register write interface for bgcom"

parents 942d80d9 57670e28
Loading
Loading
Loading
Loading
+16 −6
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ static int bgchar_read_cmd(struct bg_ui_data *fui_obj_msg,
	return ret;
}

static int bgchar_write_cmd(struct bg_ui_data *fui_obj_msg)
static int bgchar_write_cmd(struct bg_ui_data *fui_obj_msg, int type)
{
	void              *write_buf;
	int               ret;
@@ -152,10 +152,19 @@ static int bgchar_write_cmd(struct bg_ui_data *fui_obj_msg)
		kfree(write_buf);
		return ret;
	}
	switch (type) {
	case REG_WRITE:
		ret = bgcom_reg_write(handle, fui_obj_msg->cmd,
				fui_obj_msg->num_of_words,
				write_buf);
		break;
	case AHB_WRITE:
		ret = bgcom_ahb_write(handle,
				fui_obj_msg->bg_address,
				fui_obj_msg->num_of_words,
				write_buf);
		break;
	}
	kfree(write_buf);
	return ret;
}
@@ -180,12 +189,13 @@ static long bg_com_ioctl(struct file *filp,
			pr_err("bgchar_read_cmd failed\n");
		break;
	case AHB_WRITE:
	case REG_WRITE:
		if (copy_from_user(&ui_obj_msg, (void __user *) arg,
				sizeof(ui_obj_msg))) {
			pr_err("The copy from user failed\n");
			ret = -EFAULT;
		}
		ret = bgchar_write_cmd(&ui_obj_msg);
		ret = bgchar_write_cmd(&ui_obj_msg, ui_bgcom_cmd);
		if (ret < 0)
			pr_err("bgchar_write_cmd failed\n");
		break;
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#define BGCOM_AHB_WRITE 2
#define BGCOM_SET_SPI_FREE  3
#define BGCOM_SET_SPI_BUSY  4
#define BGCOM_REG_WRITE  5
#define EXCHANGE_CODE  'V'

struct bg_ui_data {
@@ -37,4 +38,7 @@ enum bg_event_type {
#define SET_SPI_BUSY \
	_IOR(EXCHANGE_CODE, BGCOM_SET_SPI_BUSY, \
	struct bg_ui_data)
#define REG_WRITE \
	_IOWR(EXCHANGE_CODE, BGCOM_REG_WRITE, \
	struct bg_ui_data)
#endif