[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bf2296e4-aa05-5b71-6217-e15e6a300ab3@connolly.tech>
Date: Fri, 19 Aug 2022 02:45:10 +0000
From: Caleb Connolly <caleb@...nolly.tech>
To: Konrad Dybcio <konrad.dybcio@...ainline.org>,
Joel Selvaraj <jo@...amily.in>, Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>
Cc: linux-arm-msm@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
~postmarketos/upstreaming@...ts.sr.ht, phone-devel@...r.kernel.org
Subject: Re: [PATCH 0/5] Add support for Xiaomi Poco F1 EBBG variant
On 08/07/2022 21:43, Konrad Dybcio wrote:
>
>
> On 8.07.2022 13:12, Joel Selvaraj wrote:
>> There are two variants of Xiaomi Poco F1.
>> - Tianma variant with NOVATEK NT36672A panel + touchscreen manufactured
>> by Tianma
>> - EBBG variant with Focaltech FT8719 panel + touchscreen manufactured
>> by EBBG
>>
>> The current sdm845-xiaomi-beryllium.dts represents tianma panel variant.
>>
>> To add support for the EBBG variant, let's split this into 3 files,
>> - sdm845-xiaomi-beryllium-common.dtsi which contains all the common nodes
>> - sdm845-xiaomi-beryllium-tianma.dts for the tianma variant
>> - sdm845-xiaomi-beryllium-ebbg.dts for the ebbg variant
>>
>> Note:
>> -----
>> Both the panels are already upstreamed and the split is based on them.
>> There were patches earlier for both the touchscreens, but they are not
>> accepted upstream yet. Once they are accepted, we will add them to
>> respective variants.
> Hi,
>
> I believe this is not the correct approach. This may work short-term, but
> you will have to prepare 2 separate images for the device and mistaking them
> may cause irreversible hw damage at worst, or lots of user complaining at best.
> Instead, I think it's about time we should look into implementing dynamic panel
> detection.
>
> Qualcomm devices do this by parsing the command line [1], as LK/XBL
> gives you a nice-ish string to work with that you can simply match
> against a label. Other vendors may use custom mechanisms, such as
> a resistor / GPIO to determine which panel (or generally hw config),
> but implementing this mechanism would make upstreaming of lots of other
> devices easier..
Regarding dynamic panel detection. A mechanism for choosing DT nodes based on some
generic (read: extensible) matching feature would be pretty neat....
e.g. matching cmdline:
panel {
compatible = "some,w3ird-panel";
/* Only attempt to probe a driver for this node if cmdline contains
* this string. How this is described and the type(s) of matching to
* use could be defined.
*/
match-if-cmdline = "msm_drm.dsi_display0=some_w3ird-panel";
};
or perhaps GPIO state:
panel {
compatible = "some,w3ird-panel";
/* Only attempt to probe a driver for this node if GPIO 43 on tlmm is high,
* and GPIO 44 is low.
*/
match-if-gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>, <&tlmm 44 GPIO_ACTIVE_LOW>;
};
This certainly introduces the temptation to do awful things...
>
> This issue concerns many phones (and well, devices in general), as
> they are seldom made with only one configuration due to supply chain
> strategies.
It would be really nice to solve this in-kernel, chainloading a bootloader sometimes kinda sucks.
>
>
> Konrad
>
> [1] https://github.com/LineageOS/android_kernel_xiaomi_sdm845/blob/lineage-19.1/drivers/gpu/drm/msm/dsi-staging/dsi_display.c
--
Kind Regards,
Caleb
Powered by blists - more mailing lists