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

Commit 5262f25f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull HSI updates from Sebastian Reichel:
 "Misc fixes"

* tag 'hsi-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
  HSI: nokia-modem: use flags argument of devm_gpiod_get to set direction
  HSI: nokia-modem: Reduce missing driver message to debug level
  HSI: cmt_speech: fix timestamp interface
parents acd53127 f451e76f
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -451,9 +451,14 @@ static void cs_hsi_read_on_control_complete(struct hsi_msg *msg)
	dev_dbg(&hi->cl->device, "Read on control: %08X\n", cmd);
	dev_dbg(&hi->cl->device, "Read on control: %08X\n", cmd);
	cs_release_cmd(msg);
	cs_release_cmd(msg);
	if (hi->flags & CS_FEAT_TSTAMP_RX_CTRL) {
	if (hi->flags & CS_FEAT_TSTAMP_RX_CTRL) {
		struct timespec *tstamp =
		struct timespec tspec;
		struct cs_timestamp *tstamp =
			&hi->mmap_cfg->tstamp_rx_ctrl;
			&hi->mmap_cfg->tstamp_rx_ctrl;
		do_posix_clock_monotonic_gettime(tstamp);

		ktime_get_ts(&tspec);

		tstamp->tv_sec = (__u32) tspec.tv_sec;
		tstamp->tv_nsec = (__u32) tspec.tv_nsec;
	}
	}
	spin_unlock(&hi->lock);
	spin_unlock(&hi->lock);


+4 −7
Original line number Original line Diff line number Diff line
@@ -112,7 +112,8 @@ static int nokia_modem_gpio_probe(struct device *dev)
	modem->gpio_amount = gpio_count;
	modem->gpio_amount = gpio_count;


	for (i = 0; i < gpio_count; i++) {
	for (i = 0; i < gpio_count; i++) {
		modem->gpios[i].gpio = devm_gpiod_get_index(dev, NULL, i);
		modem->gpios[i].gpio = devm_gpiod_get_index(dev, NULL, i,
							    GPIOD_OUT_LOW);
		if (IS_ERR(modem->gpios[i].gpio)) {
		if (IS_ERR(modem->gpios[i].gpio)) {
			dev_err(dev, "Could not get gpio %d\n", i);
			dev_err(dev, "Could not get gpio %d\n", i);
			return PTR_ERR(modem->gpios[i].gpio);
			return PTR_ERR(modem->gpios[i].gpio);
@@ -125,10 +126,6 @@ static int nokia_modem_gpio_probe(struct device *dev)
			return err;
			return err;
		}
		}


		err = gpiod_direction_output(modem->gpios[i].gpio, 0);
		if (err)
			return err;

		err = gpiod_export(modem->gpios[i].gpio, 0);
		err = gpiod_export(modem->gpios[i].gpio, 0);
		if (err)
		if (err)
			return err;
			return err;
@@ -208,7 +205,7 @@ static int nokia_modem_probe(struct device *dev)


	err = device_attach(&modem->ssi_protocol->device);
	err = device_attach(&modem->ssi_protocol->device);
	if (err == 0) {
	if (err == 0) {
		dev_err(dev, "Missing ssi-protocol driver\n");
		dev_dbg(dev, "Missing ssi-protocol driver\n");
		err = -EPROBE_DEFER;
		err = -EPROBE_DEFER;
		goto error3;
		goto error3;
	} else if (err < 0) {
	} else if (err < 0) {
@@ -231,7 +228,7 @@ static int nokia_modem_probe(struct device *dev)


	err = device_attach(&modem->cmt_speech->device);
	err = device_attach(&modem->cmt_speech->device);
	if (err == 0) {
	if (err == 0) {
		dev_err(dev, "Missing cmt-speech driver\n");
		dev_dbg(dev, "Missing cmt-speech driver\n");
		err = -EPROBE_DEFER;
		err = -EPROBE_DEFER;
		goto error4;
		goto error4;
	} else if (err < 0) {
	} else if (err < 0) {
+11 −5
Original line number Original line Diff line number Diff line
@@ -75,6 +75,15 @@ struct cs_buffer_config {
	__u32 reserved[4];
	__u32 reserved[4];
};
};


/*
 * struct for monotonic timestamp taken when the
 * last control command was received
 */
struct cs_timestamp {
	__u32 tv_sec;  /* seconds */
	__u32 tv_nsec; /* nanoseconds */
};

/*
/*
 * Struct describing the layout and contents of the driver mmap area.
 * Struct describing the layout and contents of the driver mmap area.
 * This information is meant as read-only information for the application.
 * This information is meant as read-only information for the application.
@@ -91,11 +100,8 @@ struct cs_mmap_config_block {
	__u32 rx_ptr;
	__u32 rx_ptr;
	__u32 rx_ptr_boundary;
	__u32 rx_ptr_boundary;
	__u32 reserved3[2];
	__u32 reserved3[2];
	/*
	/* enabled with CS_FEAT_TSTAMP_RX_CTRL */
	 * if enabled with CS_FEAT_TSTAMP_RX_CTRL, monotonic
	struct cs_timestamp tstamp_rx_ctrl;
	 * timestamp taken when the last control command was received
	 */
	struct timespec tstamp_rx_ctrl;
};
};


#define CS_IO_MAGIC		'C'
#define CS_IO_MAGIC		'C'