[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <72a37c8c-12e4-eb51-2644-3436d19cf314@connolly.tech>
Date: Sun, 22 Nov 2020 17:59:44 +0000
From: Caleb Connolly <caleb@...nolly.tech>
To: Bjorn Andersson <bjorn.andersson@...aro.org>
Cc: linux-arm-msm@...r.kernel.org, Andy Gross <agross@...nel.org>,
Akash Asthana <akashast@...eaurora.org>,
Mukesh Savaliya <msavaliy@...eaurora.org>,
phone-devel@...r.kernel.org, ~postmarketos/upstreaming@...ts.sr.ht,
linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/5] i2c: geni: sdm845: dont perform DMA for OnePlus 6 devices
Hi Bjorn,
It looks like I still have the same issue even with this patch applied.
Regards,
Caleb
On 2020-11-22 03:47, Bjorn Andersson wrote:
> On Thu 12 Nov 10:22 CST 2020, Caleb Connolly wrote:
>
>> The OnePlus 6/T has the same issue as the Yoga c630 causing a crash when DMA
>> is used for i2c, so disable it.
>>
>> https://patchwork.kernel.org/patch/11133827/
>>
>> Signed-off-by: Caleb Connolly <caleb@...nolly.tech>
>> ---
>> drivers/i2c/busses/i2c-qcom-geni.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
>> index 8b4c35f47a70..9acdcfe73be2 100644
>> --- a/drivers/i2c/busses/i2c-qcom-geni.c
>> +++ b/drivers/i2c/busses/i2c-qcom-geni.c
>> @@ -357,7 +357,8 @@ static int geni_i2c_rx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
>> struct geni_se *se = &gi2c->se;
>> size_t len = msg->len;
>>
>> - if (!of_machine_is_compatible("lenovo,yoga-c630"))
>> + if (!of_machine_is_compatible("lenovo,yoga-c630") &&
>> + !of_machine_is_compatible("oneplus,oneplus6"))
> This hack seems to have been working around two separate issues. First
> with iommu active the GENI wrappers needs to have their stream mapping
> configured. Secondly there was a bug in the transaction setup that was
> recently fixed by Doug Anderson.
>
> So can you please give the following patch a go? I've yet to test it on
> the Lenovo machine, but I think it allows us to remove the quirk.
>
> https://lore.kernel.org/lkml/20201122034149.626045-1-bjorn.andersson@linaro.org/T/#u
>
> Regards,
> Bjorn
>
>> dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
>>
>> if (dma_buf)
>> @@ -399,7 +400,8 @@ static int geni_i2c_tx_one_msg(struct geni_i2c_dev *gi2c, struct i2c_msg *msg,
>> struct geni_se *se = &gi2c->se;
>> size_t len = msg->len;
>>
>> - if (!of_machine_is_compatible("lenovo,yoga-c630"))
>> + if (!of_machine_is_compatible("lenovo,yoga-c630") &&
>> + !of_machine_is_compatible("oneplus,oneplus6"))
>> dma_buf = i2c_get_dma_safe_msg_buf(msg, 32);
>>
>> if (dma_buf)
>> --
>> 2.29.2
>>
>>
Powered by blists - more mailing lists