Hi Paweł

Looks good, thanks for addressing all the review feedback.

On Fri, Feb 01, 2019 at 06:28:52PM +0100, Paweł Chmiel wrote:
> This patch adds Samsung S6E63M0 AMOLED LCD panel driver, connected over
> spi. It's based on already removed, non dt s6e63m0 driver and
> panel-samsung-ld9040. It can be found for example in some of Samsung
> Aries based phones.
> 
> Signed-off-by: Paweł Chmiel <pawel.mikolaj.chm...@gmail.com>
If you consider (do not change unless you think it better) the
following nits than you can add my:

Reviewed-by: Sam Ravnborg <s...@ravnborg.org>

        Sam

> diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig
> index 3f3537719beb..be05ed5218eb 100644
> --- a/drivers/gpu/drm/panel/Kconfig
> +++ b/drivers/gpu/drm/panel/Kconfig
> @@ -158,6 +158,13 @@ config DRM_PANEL_SAMSUNG_S6E63J0X03
>       depends on BACKLIGHT_CLASS_DEVICE
>       select VIDEOMODE_HELPERS
>  
> +config DRM_PANEL_SAMSUNG_S6E63M0
> +     tristate "Samsung S6E63M0 RGB/SPI panel"
> +     depends on OF
> +     depends on SPI
> +     depends on BACKLIGHT_CLASS_DEVICE
> +     select VIDEOMODE_HELPERS
With the use of display_mode the above "select VIDEOMODE_HELPERS"
is likely no longer required. Please check.

A help text would be nice.

> +
>  config DRM_PANEL_SAMSUNG_S6E8AA0
>       tristate "Samsung S6E8AA0 DSI video mode panel"
>       depends on OF


> +#include <video/of_videomode.h>
> +#include <video/videomode.h>
Please check if these two files are required.

> +struct s6e63m0 {
> +     struct device *dev;
> +     struct drm_panel panel;
> +     struct backlight_device *bl_dev;
> +
> +     struct regulator_bulk_data supplies[2];
> +     struct gpio_desc *reset_gpio;
> +     struct videomode vm;
vm is no longer used - delete it.

> +
> +     bool prepared;
> +     bool enabled;
> +
> +     /*
> +      * This field is tested by functions directly accessing bus before
> +      * transfer, transfer is skipped if it is set. In case of transfer
> +      * failure or unexpected response the field is set to error value.
> +      * Such construct allows to eliminate many checks in higher level
> +      * functions.
> +      */
> +     int error;
> +};
> +

> +static int s6e63m0_get_modes(struct drm_panel *panel)
> +{
> +     struct drm_connector *connector = panel->connector;
> +     struct drm_display_mode *mode;
> +
> +     mode = drm_mode_duplicate(panel->drm, &default_mode);
> +     if (!mode) {
> +             DRM_ERROR("failed to add mode %ux%ux@%u\n",
> +                       default_mode.hdisplay, default_mode.vdisplay,
> +                       default_mode.vrefresh);
I recall I have seen a generic way to print the above,
but I have failed to find it.
Maybe it is just my memory that fools me.

The above is fine.

> +
> +     s6e63m0_backlight_register(ctx);

Is it correct that we continue even if we fail to register backlight?


> +
> +     return 0;
> +}
> +
> +
> +static const struct of_device_id s6e63m0_of_match[] = {
> +     { .compatible = "samsung,s6e63m0" },
> +     { }

Add /* sentinel */ comment?

> +};

Reply via email to