diff mbox

[v3,1/4] i2c: qup: add probe path for Centriq ACPI devices

Message ID 1524604882-25377-2-git-send-email-austinwc@codeaurora.org (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Austin Christ April 24, 2018, 9:21 p.m. UTC
Add support for Qualcomm Centriq devices that are qup-v2 compatible but
do not support DMA, so nodma needs to be set.

Signed-off-by: Austin Christ <austinwc@codeaurora.org>
---
v1:
	- Initial
v2:
	- Remove whitespace error
v3:
	- Move branch to QUPv2 segment of probe
---
 drivers/i2c/busses/i2c-qup.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

Comments

Sricharan Ramabadhran April 25, 2018, 10:46 a.m. UTC | #1
On 4/25/2018 2:51 AM, Austin Christ wrote:
> Add support for Qualcomm Centriq devices that are qup-v2 compatible but
> do not support DMA, so nodma needs to be set.
> 

 Reviewed-by: Sricharan R <sricharan@codeaurora.org>

Regards,
 Sricharan

> Signed-off-by: Austin Christ <austinwc@codeaurora.org>
> ---
> v1:
> 	- Initial
> v2:
> 	- Remove whitespace error
> v3:
> 	- Move branch to QUPv2 segment of probe
> ---
>  drivers/i2c/busses/i2c-qup.c | 21 ++++++++++++---------
>  1 file changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
> index 904dfec..c024f85 100644
> --- a/drivers/i2c/busses/i2c-qup.c
> +++ b/drivers/i2c/busses/i2c-qup.c
> @@ -1648,6 +1648,14 @@ static void qup_i2c_disable_clocks(struct qup_i2c_dev *qup)
>  	clk_disable_unprepare(qup->pclk);
>  }
>  
> +#if IS_ENABLED(CONFIG_ACPI)
> +static const struct acpi_device_id qup_i2c_acpi_match[] = {
> +	{ "QCOM8010"},
> +	{ },
> +};
> +MODULE_DEVICE_TABLE(acpi, qup_i2c_acpi_match);
> +#endif
> +
>  static int qup_i2c_probe(struct platform_device *pdev)
>  {
>  	static const int blk_sizes[] = {4, 16, 32};
> @@ -1682,7 +1690,10 @@ static int qup_i2c_probe(struct platform_device *pdev)
>  	} else {
>  		qup->adap.algo = &qup_i2c_algo_v2;
>  		is_qup_v1 = false;
> -		ret = qup_i2c_req_dma(qup);
> +		if (acpi_match_device(qup_i2c_acpi_match, qup->dev))
> +			goto nodma;
> +		else
> +			ret = qup_i2c_req_dma(qup);
>  
>  		if (ret == -EPROBE_DEFER)
>  			goto fail_dma;
> @@ -1959,14 +1970,6 @@ static int qup_i2c_resume(struct device *device)
>  };
>  MODULE_DEVICE_TABLE(of, qup_i2c_dt_match);
>  
> -#if IS_ENABLED(CONFIG_ACPI)
> -static const struct acpi_device_id qup_i2c_acpi_match[] = {
> -	{ "QCOM8010"},
> -	{ },
> -};
> -MODULE_DEVICE_TABLE(acpi, qup_i2c_acpi_match);
> -#endif
> -
>  static struct platform_driver qup_i2c_driver = {
>  	.probe  = qup_i2c_probe,
>  	.remove = qup_i2c_remove,
>
diff mbox

Patch

diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index 904dfec..c024f85 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -1648,6 +1648,14 @@  static void qup_i2c_disable_clocks(struct qup_i2c_dev *qup)
 	clk_disable_unprepare(qup->pclk);
 }
 
+#if IS_ENABLED(CONFIG_ACPI)
+static const struct acpi_device_id qup_i2c_acpi_match[] = {
+	{ "QCOM8010"},
+	{ },
+};
+MODULE_DEVICE_TABLE(acpi, qup_i2c_acpi_match);
+#endif
+
 static int qup_i2c_probe(struct platform_device *pdev)
 {
 	static const int blk_sizes[] = {4, 16, 32};
@@ -1682,7 +1690,10 @@  static int qup_i2c_probe(struct platform_device *pdev)
 	} else {
 		qup->adap.algo = &qup_i2c_algo_v2;
 		is_qup_v1 = false;
-		ret = qup_i2c_req_dma(qup);
+		if (acpi_match_device(qup_i2c_acpi_match, qup->dev))
+			goto nodma;
+		else
+			ret = qup_i2c_req_dma(qup);
 
 		if (ret == -EPROBE_DEFER)
 			goto fail_dma;
@@ -1959,14 +1970,6 @@  static int qup_i2c_resume(struct device *device)
 };
 MODULE_DEVICE_TABLE(of, qup_i2c_dt_match);
 
-#if IS_ENABLED(CONFIG_ACPI)
-static const struct acpi_device_id qup_i2c_acpi_match[] = {
-	{ "QCOM8010"},
-	{ },
-};
-MODULE_DEVICE_TABLE(acpi, qup_i2c_acpi_match);
-#endif
-
 static struct platform_driver qup_i2c_driver = {
 	.probe  = qup_i2c_probe,
 	.remove = qup_i2c_remove,