Hi Linus.
On Sat, Jan 04, 2020 at 01:10:26AM +0100, Linus Walleij wrote:
The Sony ACX424AKP is a command/videomode DSI panel for mobile devices. It is used on the ST-Ericsson HREF520 reference design. We support video mode by default, but it is possible to switch the panel into command mode by using the bool property "dsi-command-mode".
Cc: Stephan Gerhold stephan@gerhold.net Signed-off-by: Linus Walleij linus.walleij@linaro.org
Driver looks good but there are a few issues yet to address: It does not build on top of drm-misc-next due to changes to the drm_panel code.
And then there is a few checkpatch warnings that needs to be looked at: -:25: WARNING:CONFIG_DESCRIPTION: please write a paragraph that describes the config symbol fully #25: FILE: drivers/gpu/drm/panel/Kconfig:330: +config DRM_PANEL_SONY_ACX424AKP
-:52: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does MAINTAINERS need updating? #52: new file mode 100644
-:307: CHECK:USLEEP_RANGE: usleep_range is preferred over udelay; see Documentation/timers/timers-howto.rst #307: FILE: drivers/gpu/drm/panel/panel-sony-acx424akp.c:251: + udelay(20);
-:310: WARNING:MSLEEP: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.rst #310: FILE: drivers/gpu/drm/panel/panel-sony-acx424akp.c:254: + msleep(11);
-:319: WARNING:MSLEEP: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.rst #319: FILE: drivers/gpu/drm/panel/panel-sony-acx424akp.c:263: + msleep(11);
-:543: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis #543: FILE: drivers/gpu/drm/panel/panel-sony-acx424akp.c:487: + acx->reset_gpio = devm_gpiod_get_optional(dev, "reset", + GPIOD_OUT_HIGH);
The build errors was easy to fix - but please have a look at the other warnings.
I did the following changes locally to fix the build. But I did not try to look into the delay stuff.
Sam
diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c index fe33f97cd812..38c83f5b16d5 100644 --- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c @@ -407,17 +407,17 @@ static int acx424akp_disable(struct drm_panel *panel) return 0; }
-static int acx424akp_get_modes(struct drm_panel *panel) +static int acx424akp_get_modes(struct drm_panel *panel, + struct drm_connector *connector) { struct acx424akp *acx = panel_to_acx424akp(panel); - struct drm_connector *connector = panel->connector; struct drm_display_mode *mode;
if (acx->video_mode) - mode = drm_mode_duplicate(panel->drm, + mode = drm_mode_duplicate(connector->dev, &sony_acx424akp_vid_mode); else - mode = drm_mode_duplicate(panel->drm, + mode = drm_mode_duplicate(connector->dev, &sony_acx424akp_cmd_mode); if (!mode) { DRM_ERROR("bad mode or failed to add mode\n"); @@ -484,7 +484,7 @@ static int acx424akp_probe(struct mipi_dsi_device *dsi)
/* This asserts RESET by default */ acx->reset_gpio = devm_gpiod_get_optional(dev, "reset", - GPIOD_OUT_HIGH); + GPIOD_OUT_HIGH); if (IS_ERR(acx->reset_gpio)) { ret = PTR_ERR(acx->reset_gpio); if (ret != -EPROBE_DEFER)