Commit edaea3d9 authored by Jiri Kosina's avatar Jiri Kosina
Browse files

Merge branch 'for-5.1/ish' into for-linus

Power management improvements from Song Hongyan
Switch to new UUID API from Andy Shevchenko
Generalization the driver bindin to support more than just sensors from Srinivas Pandruvada
parents 487b6d0c 1578461a
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -91,7 +91,10 @@ static bool check_generated_interrupt(struct ishtp_device *dev)
			IPC_INT_FROM_ISH_TO_HOST_CHV_AB(pisr_val);
	} else {
		pisr_val = ish_reg_read(dev, IPC_REG_PISR_BXT);
		interrupt_generated = IPC_INT_FROM_ISH_TO_HOST_BXT(pisr_val);
		interrupt_generated = !!pisr_val;
		/* only busy-clear bit is RW, others are RO */
		if (pisr_val)
			ish_reg_write(dev, IPC_REG_PISR_BXT, pisr_val);
	}

	return interrupt_generated;
@@ -839,11 +842,11 @@ int ish_hw_start(struct ishtp_device *dev)
{
	ish_set_host_rdy(dev);

	set_host_ready(dev);

	/* After that we can enable ISH DMA operation and wakeup ISHFW */
	ish_wakeup(dev);

	set_host_ready(dev);

	/* wait for FW-initiated reset flow */
	if (!dev->recvd_hw_ready)
		wait_event_interruptible_timeout(dev->wait_hw_ready,
+2 −2
Original line number Diff line number Diff line
@@ -788,8 +788,8 @@ static int hid_ishtp_cl_probe(struct ishtp_cl_device *cl_device)
	if (!cl_device)
		return	-ENODEV;

	if (uuid_le_cmp(hid_ishtp_guid,
			cl_device->fw_client->props.protocol_name) != 0)
	if (!guid_equal(&hid_ishtp_guid,
			&cl_device->fw_client->props.protocol_name))
		return	-ENODEV;

	client_data = devm_kzalloc(&cl_device->dev, sizeof(*client_data),
+2 −2
Original line number Diff line number Diff line
@@ -206,8 +206,8 @@ int ishtp_hid_probe(unsigned int cur_hid_dev,
	hid->bus = BUS_INTEL_ISHTP;
	hid->dev.parent = &client_data->cl_device->dev;
	hid->version = le16_to_cpu(ISH_HID_VERSION);
	hid->vendor = le16_to_cpu(ISH_HID_VENDOR);
	hid->product = le16_to_cpu(ISH_HID_PRODUCT);
	hid->vendor = le16_to_cpu(client_data->hid_devices[cur_hid_dev].vid);
	hid->product = le16_to_cpu(client_data->hid_devices[cur_hid_dev].pid);
	snprintf(hid->name, sizeof(hid->name), "%s %04X:%04X", "hid-ishtp",
		hid->vendor, hid->product);

+3 −3
Original line number Diff line number Diff line
@@ -29,9 +29,9 @@
		client->cl_device->ishtp_dev, __VA_ARGS__)

/* ISH Transport protocol (ISHTP in short) GUID */
static const uuid_le hid_ishtp_guid = UUID_LE(0x33AECD58, 0xB679, 0x4E54,
					      0x9B, 0xD9, 0xA0, 0x4D, 0x34,
					      0xF0, 0xC2, 0x26);
static const guid_t hid_ishtp_guid =
	GUID_INIT(0x33AECD58, 0xB679, 0x4E54,
		  0x9B, 0xD9, 0xA0, 0x4D, 0x34, 0xF0, 0xC2, 0x26);

/* ISH HID message structure */
struct hostif_msg_hdr {
+9 −12
Original line number Diff line number Diff line
@@ -133,18 +133,15 @@ int ishtp_write_message(struct ishtp_device *dev, struct ishtp_msg_hdr *hdr,
 *
 * Return: fw client index or -ENOENT if not found
 */
int ishtp_fw_cl_by_uuid(struct ishtp_device *dev, const uuid_le *uuid)
int ishtp_fw_cl_by_uuid(struct ishtp_device *dev, const guid_t *uuid)
{
	int i, res = -ENOENT;
	unsigned int i;

	for (i = 0; i < dev->fw_clients_num; ++i) {
		if (uuid_le_cmp(*uuid, dev->fw_clients[i].props.protocol_name)
				== 0) {
			res = i;
			break;
		if (guid_equal(uuid, &dev->fw_clients[i].props.protocol_name))
			return i;
	}
	}
	return res;
	return -ENOENT;
}
EXPORT_SYMBOL(ishtp_fw_cl_by_uuid);

@@ -158,7 +155,7 @@ EXPORT_SYMBOL(ishtp_fw_cl_by_uuid);
 * Return: pointer of client information on success, NULL on failure.
 */
struct ishtp_fw_client *ishtp_fw_cl_get_client(struct ishtp_device *dev,
						const uuid_le *uuid)
					       const guid_t *uuid)
{
	int i;
	unsigned long flags;
@@ -401,7 +398,7 @@ static const struct device_type ishtp_cl_device_type = {
 * Return: ishtp_cl_device pointer or NULL on failure
 */
static struct ishtp_cl_device *ishtp_bus_add_device(struct ishtp_device *dev,
						    uuid_le uuid, char *name)
						    guid_t uuid, char *name)
{
	struct ishtp_cl_device *device;
	int status;
@@ -629,7 +626,7 @@ int ishtp_bus_new_client(struct ishtp_device *dev)
	int	i;
	char	*dev_name;
	struct ishtp_cl_device	*cl_device;
	uuid_le	device_uuid;
	guid_t	device_uuid;

	/*
	 * For all reported clients, create an unconnected client and add its
@@ -639,7 +636,7 @@ int ishtp_bus_new_client(struct ishtp_device *dev)
	 */
	i = dev->fw_client_presentation_num - 1;
	device_uuid = dev->fw_clients[i].props.protocol_name;
	dev_name = kasprintf(GFP_KERNEL, "{%pUL}", device_uuid.b);
	dev_name = kasprintf(GFP_KERNEL, "{%pUL}", &device_uuid);
	if (!dev_name)
		return	-ENOMEM;

Loading