Commit 260c9ca9 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'drivers_soc_for_4.20' of...

Merge tag 'drivers_soc_for_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into next/drivers

soc: driver soc update for v4.20

  - Enable host-id as an optional dt property
  - Fix minor typo in knav driver

* tag 'drivers_soc_for_4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone

:
  soc: ti: fix spelling mistake "instace" -> "instance"
  firmware: ti_sci: Provide host-id as an optional dt parameter
  Documentation: dt: keystone: ti-sci: Add optional host-id parameter

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 5bc45db5 7bcfe20d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -45,11 +45,15 @@ Optional Properties:
	debug_messages - Map the Debug message region
- reg:  register space corresponding to the debug_messages
- ti,system-reboot-controller: If system reboot can be triggered by SoC reboot
- ti,host-id: Integer value corresponding to the host ID assigned by Firmware
	for identification of host processing entities such as virtual
	machines

Example (K2G):
-------------
	pmmc: pmmc {
		compatible = "ti,k2g-sci";
		ti,host-id = <2>;
		mbox-names = "rx", "tx";
		mboxes= <&msgmgr &msgmgr_proxy_pmmc_rx>,
			<&msgmgr &msgmgr_proxy_pmmc_tx>;
+20 −4
Original line number Diff line number Diff line
@@ -66,14 +66,14 @@ struct ti_sci_xfers_info {

/**
 * struct ti_sci_desc - Description of SoC integration
 * @host_id:		Host identifier representing the compute entity
 * @default_host_id:	Host identifier representing the compute entity
 * @max_rx_timeout_ms:	Timeout for communication with SoC (in Milliseconds)
 * @max_msgs: Maximum number of messages that can be pending
 *		  simultaneously in the system
 * @max_msg_size: Maximum size of data per message that can be handled.
 */
struct ti_sci_desc {
	u8 host_id;
	u8 default_host_id;
	int max_rx_timeout_ms;
	int max_msgs;
	int max_msg_size;
@@ -94,6 +94,7 @@ struct ti_sci_desc {
 * @chan_rx:	Receive mailbox channel
 * @minfo:	Message info
 * @node:	list head
 * @host_id:	Host ID
 * @users:	Number of users of this instance
 */
struct ti_sci_info {
@@ -110,6 +111,7 @@ struct ti_sci_info {
	struct mbox_chan *chan_rx;
	struct ti_sci_xfers_info minfo;
	struct list_head node;
	u8 host_id;
	/* protected by ti_sci_list_mutex */
	int users;

@@ -370,7 +372,7 @@ static struct ti_sci_xfer *ti_sci_get_one_xfer(struct ti_sci_info *info,

	hdr->seq = xfer_id;
	hdr->type = msg_type;
	hdr->host = info->desc->host_id;
	hdr->host = info->host_id;
	hdr->flags = msg_flags;

	return xfer;
@@ -1793,7 +1795,7 @@ static int tisci_reboot_handler(struct notifier_block *nb, unsigned long mode,

/* Description for K2G */
static const struct ti_sci_desc ti_sci_pmmc_k2g_desc = {
	.host_id = 2,
	.default_host_id = 2,
	/* Conservative duration */
	.max_rx_timeout_ms = 1000,
	/* Limited by MBOX_TX_QUEUE_LEN. K2G can handle upto 128 messages! */
@@ -1819,6 +1821,7 @@ static int ti_sci_probe(struct platform_device *pdev)
	int ret = -EINVAL;
	int i;
	int reboot = 0;
	u32 h_id;

	of_id = of_match_device(ti_sci_of_match, dev);
	if (!of_id) {
@@ -1833,6 +1836,19 @@ static int ti_sci_probe(struct platform_device *pdev)

	info->dev = dev;
	info->desc = desc;
	ret = of_property_read_u32(dev->of_node, "ti,host-id", &h_id);
	/* if the property is not present in DT, use a default from desc */
	if (ret < 0) {
		info->host_id = info->desc->default_host_id;
	} else {
		if (!h_id) {
			dev_warn(dev, "Host ID 0 is reserved for firmware\n");
			info->host_id = info->desc->default_host_id;
		} else {
			info->host_id = h_id;
		}
	}

	reboot = of_property_read_bool(dev->of_node,
				       "ti,system-reboot-controller");
	INIT_LIST_HEAD(&info->node);
+2 −2
Original line number Diff line number Diff line
@@ -438,7 +438,7 @@ void *knav_dma_open_channel(struct device *dev, const char *name,

	chan_num = of_channel_match_helper(dev->of_node, name, &instance);
	if (chan_num < 0) {
		dev_err(kdev->dev, "No DMA instace with name %s\n", name);
		dev_err(kdev->dev, "No DMA instance with name %s\n", name);
		return (void *)-EINVAL;
	}

@@ -461,7 +461,7 @@ void *knav_dma_open_channel(struct device *dev, const char *name,
		}
	}
	if (!found) {
		dev_err(kdev->dev, "No DMA instace with name %s\n", instance);
		dev_err(kdev->dev, "No DMA instance with name %s\n", instance);
		return (void *)-EINVAL;
	}

+3 −3
Original line number Diff line number Diff line
@@ -240,14 +240,14 @@ struct knav_pool {
};

/**
 * struct knav_queue_inst:		qmss queue instace properties
 * struct knav_queue_inst:		qmss queue instance properties
 * @descs:				descriptor pointer
 * @desc_head, desc_tail, desc_count:	descriptor counters
 * @acc:				accumulator channel pointer
 * @kdev:				qmss device pointer
 * @range:				range info
 * @qmgr:				queue manager info
 * @id:					queue instace id
 * @id:					queue instance id
 * @irq_num:				irq line number
 * @notify_needed:			notifier needed based on queue type
 * @num_notifiers:			total notifiers
@@ -274,7 +274,7 @@ struct knav_queue_inst {
/**
 * struct knav_queue:			qmss queue properties
 * @reg_push, reg_pop, reg_peek:	push, pop queue registers
 * @inst:				qmss queue instace properties
 * @inst:				qmss queue instance properties
 * @notifier_fn:			notifier function
 * @notifier_fn_arg:			notifier function argument
 * @notifier_enabled:			notier enabled for a give queue