Message ID | 20240710-x1e80100-crd-backlight-v1-0-eb242311a23e@linaro.org |
---|---|
Headers | show |
Series | drm/panel: atna33xc20: Fix the Samsung ATNA45AF01 panel | expand |
On 10/07/2024 19:35, Doug Anderson wrote: > Hi, > > On Wed, Jul 10, 2024 at 10:05 AM Stephan Gerhold > <stephan.gerhold@linaro.org> wrote: >> >> The Samsung ATNA45AF01 panel is an AMOLED eDP panel that has backlight >> control over the DP AUX channel. While it works almost correctly with the >> generic "edp-panel" compatible, the backlight needs special handling to >> work correctly. It is similar to the existing ATNA33XC20 panel, just with >> a larger resolution and size. >> >> Add a new "samsung,atna45af01" compatible to describe this panel in the DT. >> >> Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org> >> --- >> .../devicetree/bindings/display/panel/samsung,atna33xc20.yaml | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml b/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml >> index 765ca155c83a..d668e8d0d296 100644 >> --- a/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml >> +++ b/Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml >> @@ -14,7 +14,11 @@ allOf: >> >> properties: >> compatible: >> - const: samsung,atna33xc20 >> + enum: >> + # Samsung 13.3" FHD (1920x1080 pixels) eDP AMOLED panel >> + - samsung,atna33xc20 >> + # Samsung 14.5" WQXGA+ (2880x1800 pixels) eDP AMOLED panel >> + - samsung,atna45af01 > > Seems OK, but a few thoughts: > > 1. Is it worth renaming this file? Something like > "samsung,atna-oled-panel.yaml"? I'd be interested in DT maintainer > folks' opinions here. No, rather keep existing name, because it should be based on compatible. Best regards, Krzysztof
On Wed, Jul 10, 2024 at 12:16:58PM -0700, Doug Anderson wrote: > On Wed, Jul 10, 2024 at 12:03 PM Stephan Gerhold > <stephan.gerhold@linaro.org> wrote: > > > > > 2. In theory you could make your compatible look like this: > > > > > > compatible = "samsung,atna45af01", "samsung,atna33xc20" > > > > > > ...which would say "I have a 45af01 but if the OS doesn't have > > > anything special to do that it would be fine to use the 33xc20 > > > driver". That would allow device trees to work without the kernel > > > changes and would allow you to land the DT changes in parallel with > > > the driver changes and things would keep working. > > > > > > ...and, in fact, that would mean you _didn't_ need to add the new > > > compatible string to the driver, which is nice. > > > > > > > Yeah, I considered this. I mentioned the reason why I decided against > > this in patch 2: > > > > > While ATNA45AF01 would also work with "samsung,atna33xc20" as a fallback > > > compatible, the original submission of the compatible in commit > > > 4bfe6c8f7c23 ("drm/panel-simple: Add Samsung ATNA33XC20") had the timings > > > and resolution hardcoded. These would not work for ATNA45AF01. > > > > Basically, it works with the current driver. But if you would run the > > kernel at the state of the original submission then it would behave > > incorrectly. This is why I considered the resolution and timings to be > > part of the "samsung,atna33xc20" "ABI". The new panel would not be > > compatible with that. > > Ah, oops. My eyes totally glazed over the description since the patch > was so simple. :-P Sorry about that. > > IMO I'd still prefer using the fallback compatible, but happy to hear > other opinions. In the original commit things were pretty broken still > (sorta like how it's broken for you using "edp-panel") and the > resolution hasn't been hardcoded for a long while... I briefly discussed this with Krzysztof on IRC yesterday and we concluded that a fallback compatible is better. If one considers just the non-discoverable part of the interface for the binding (i.e. the non-standard power sequence), then the two panels are indeed compatible. I will send a v2 with the fallback compatible on Monday. I think this can also simplify backporting the backlight fix as you mentioned, since then no driver change is required to make it work. Thanks, Stephan
The backlight of the Samsung ATNA45AF01 panel used in the Qualcomm X1E80100 CRD does not work correctly with the current display panel configuration and drivers: It works after boot, but once the display gets disabled it is not possible to get it back on. It turns out that the ATNA45AF01 panel needs exactly the same non-standard power sequence as implemented for ATNA33XC20 in the panel-samsung-atna33xc20 driver. Move the ATNA45AF01 panel from the generic panel-edp driver to the panel-samsung-atna33xc20 driver and fix the panel configuration in the x1e80100-crd device tree to make the panel work correctly. The DT changes are included here for reference and easier testing, I assume Bjorn or Konrad will pick them up after the DRM panel changes were applied. Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org> --- Stephan Gerhold (5): dt-bindings: display: panel: samsung,atna33xc20: Document ATNA45AF01 drm/panel: samsung-atna33xc20: Add compatible for ATNA45AF01 Revert "drm/panel-edp: Add SDC ATNA45AF01" arm64: dts: qcom: x1e80100-crd: Fix backlight arm64: defconfig: Add CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 .../bindings/display/panel/samsung,atna33xc20.yaml | 6 +++++- arch/arm64/boot/dts/qcom/x1e80100-crd.dts | 17 +++++++++++++++-- arch/arm64/configs/defconfig | 1 + drivers/gpu/drm/panel/panel-edp.c | 2 -- drivers/gpu/drm/panel/panel-samsung-atna33xc20.c | 1 + 5 files changed, 22 insertions(+), 5 deletions(-) --- base-commit: 523b23f0bee3014a7a752c9bb9f5c54f0eddae88 change-id: 20240710-x1e80100-crd-backlight-632f9bf936ef Best regards,