Hi Austin, On 4/12/2018 8:57 PM, Christ, Austin wrote: > Hey Sricharan, > > On 4/11/2018 10:28 PM, Sricharan R wrote: >> Hi Austin, >> >> On 4/5/2018 1:14 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. >>> >>> Signed-off-by: Austin Christ <austinwc@xxxxxxxxxxxxxx> >>> --- >>> v1: >>> - Initial >>> v2: >>> - Remove whitespace error >>> --- >>> drivers/i2c/busses/i2c-qup.c | 22 ++++++++++++++-------- >>> 1 file changed, 14 insertions(+), 8 deletions(-) >>> >>> diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c >>> index 904dfec..80af973 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}; >>> @@ -1675,6 +1683,12 @@ static int qup_i2c_probe(struct platform_device *pdev) >>> DEFAULT_CLK_FREQ); >>> } >>> + if (acpi_match_device(qup_i2c_acpi_match, qup->dev)) { >>> + qup->adap.algo = &qup_i2c_algo_v2; >>> + is_qup_v1 = false; >>> + goto nodma; >>> + } >>> + >> >> What happens without the above check. Does it not get resolved below, >> when qup_i2c_req_dma fails ? >> >> Regards, >> Sricharan >> > > Yes currently qup_i2c_req_dma fails and then the nodma: path is chosen. However, this causes unexpected logging of "tx channel not available" for the Centriq platform. This seemed a more correct solution to those incorrect logging statements than lowering the dev_err to dev_info or dev_notify. hmm, then just push this if (acpi_match_device(qup_i2c_acpi_match, qup->dev) down. if (of_device_is_compatible(pdev->dev.of_node, "qcom,i2c-qup-v1.1.1")) { .... } else { qup->adap.algo = &qup_i2c_algo_v2; is_qup_v1 = false; if (acpi_match_device(qup_i2c_acpi_match, qup->dev)) goto nodma; else ret = qup_i2c_req_dma(qup); Regards, Sricharan -- "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html