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

Commit 1ae77761 authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'qcom-drivers-for-4.11' of...

Merge tag 'qcom-drivers-for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/drivers

Qualcomm ARM Based Driver Updates for v4.11

* Fix issues with SCM compile testing
* Add SCM set remote state API
* Mask APQ8064 SCM clock dependency issue
* Add Qualcomm DMA folder to MAINTAINERS
* Fix EBI2 dependencies

* tag 'qcom-drivers-for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux

:
  firmware: qcom_scm: Add set remote state API
  MAINTAINERS: Update the files to include the Qualcomm DMA folder
  bus: qcom_ebi2: default y if ARCH_QCOM
  firmware: qcom: scm: Mask APQ8064 core clk dependency
  firmware: qcom: scm: Add empty functions to help compile testing

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 5f1223c5 a811b420
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1628,6 +1628,7 @@ F: arch/arm64/boot/dts/qcom/*
F:	drivers/i2c/busses/i2c-qup.c
F:	drivers/clk/qcom/
F:	drivers/pinctrl/qcom/
F:	drivers/dma/qcom/
F:	drivers/soc/qcom/
F:	drivers/spi/spi-qup.c
F:	drivers/tty/serial/msm_serial.h
+1 −0
Original line number Diff line number Diff line
@@ -112,6 +112,7 @@ config QCOM_EBI2
	bool "Qualcomm External Bus Interface 2 (EBI2)"
	depends on HAS_IOMEM
	depends on ARCH_QCOM || COMPILE_TEST
	default ARCH_QCOM
	help
	  Say y here to enable support for the Qualcomm External Bus
	  Interface 2, which can be used to connect things like NAND Flash,
+18 −0
Original line number Diff line number Diff line
@@ -560,3 +560,21 @@ int __qcom_scm_pas_mss_reset(struct device *dev, bool reset)

	return ret ? : le32_to_cpu(out);
}

int __qcom_scm_set_remote_state(struct device *dev, u32 state, u32 id)
{
	struct {
		__le32 state;
		__le32 id;
	} req;
	__le32 scm_ret = 0;
	int ret;

	req.state = cpu_to_le32(state);
	req.id = cpu_to_le32(id);

	ret = qcom_scm_call(dev, QCOM_SCM_SVC_BOOT, QCOM_SCM_SET_REMOTE_STATE,
			    &req, sizeof(req), &scm_ret, sizeof(scm_ret));

	return ret ? : le32_to_cpu(scm_ret);
}
+16 −0
Original line number Diff line number Diff line
@@ -358,3 +358,19 @@ int __qcom_scm_pas_mss_reset(struct device *dev, bool reset)

	return ret ? : res.a1;
}

int __qcom_scm_set_remote_state(struct device *dev, u32 state, u32 id)
{
	struct qcom_scm_desc desc = {0};
	struct arm_smccc_res res;
	int ret;

	desc.args[0] = state;
	desc.args[1] = id;
	desc.arginfo = QCOM_SCM_ARGS(2);

	ret = qcom_scm_call(dev, QCOM_SCM_SVC_BOOT, QCOM_SCM_SET_REMOTE_STATE,
			    &desc, &res);

	return ret ? : res.a1;
}
+7 −1
Original line number Diff line number Diff line
@@ -324,6 +324,12 @@ bool qcom_scm_is_available(void)
}
EXPORT_SYMBOL(qcom_scm_is_available);

int qcom_scm_set_remote_state(u32 state, u32 id)
{
	return __qcom_scm_set_remote_state(__scm->dev, state, id);
}
EXPORT_SYMBOL(qcom_scm_set_remote_state);

static int qcom_scm_probe(struct platform_device *pdev)
{
	struct qcom_scm *scm;
@@ -387,7 +393,7 @@ static int qcom_scm_probe(struct platform_device *pdev)

static const struct of_device_id qcom_scm_dt_match[] = {
	{ .compatible = "qcom,scm-apq8064",
	  .data = (void *) SCM_HAS_CORE_CLK,
	  /* FIXME: This should have .data = (void *) SCM_HAS_CORE_CLK */
	},
	{ .compatible = "qcom,scm-msm8660",
	  .data = (void *) SCM_HAS_CORE_CLK,
Loading