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@xxxxxxxxxxxxxx> Regards, Sricharan > Signed-off-by: Austin Christ <austinwc@xxxxxxxxxxxxxx> > --- > 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, > -- "QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation