On 8.03.2023 01:45, Jianhua Lu wrote: > On Tue, Mar 07, 2023 at 11:34:55PM +0100, Linus Walleij wrote: >> Hi Jianhua, >> >> thanks for your patch! >> >> It appears Konrad is working on a very similar driver, so I suggest merging >> them into one Novatek NT36523 driver. >> >> Possibly we can fix this up first and then add Konrads Lenovo-panel with >> a patch on top. >> >> On Mon, Feb 20, 2023 at 1:13 PM Jianhua Lu <lujianhua000@xxxxxxxxx> wrote: >> >>> Add a driver for panels using the Novatek NT36523 display driver IC. >>> >>> Signed-off-by: Jianhua Lu <lujianhua000@xxxxxxxxx> >> >> (...) >> >> I like how you abstract the panel with init commands in the panel info. >> >>> +enum dsi_cmd_type { >>> + INIT_DCS_CMD, >>> + DELAY_CMD, >>> +}; >>> + >>> +struct panel_init_cmd { >>> + enum dsi_cmd_type type; >>> + size_t len; >>> + const char *data; >>> +}; >>> + >>> +#define _INIT_DCS_CMD(...) { \ >>> + .type = INIT_DCS_CMD, \ >>> + .len = sizeof((char[]){__VA_ARGS__}), \ >>> + .data = (char[]){__VA_ARGS__} } >>> + >>> +#define _INIT_DELAY_CMD(...) { \ >>> + .type = DELAY_CMD,\ >>> + .len = sizeof((char[]){__VA_ARGS__}), \ >>> + .data = (char[]){__VA_ARGS__} } >> >> I have seen this type of reinvented wheels a few times now. Don't do this. >> >> Look into other recently merged drivers and look how they do it, for example >> drivers/gpu/drm/panel/panel-himax-hx8394.c >> >> For example: >> >> - Use mipi_dsi_dcs_write_seq() >> >> - If the delay is just used at one point in the sequence, do not invent >> a command language like above for it, open code the delay instead >> >> - Try to decode as much magic as possible, if you look in Konrads >> driver you clearly see some standard MIPI commands, I bet you have >> some too. >> >> - Maybe use callbacks to send sequences instead of tables, like in >> the himax driver? > Maybe I should create a wrapper of mipi_dsi_dcs_write_seq() for sync dual dsi mode. Yes please, it'll come in useful. Konrad >> >> Other than that it seems like something that could also handle the Lenovo >> display, or the other way around, I don't know which driver is the best >> starting point, but this one has the right Novatek name at least. >> >> Yours, >> Linus Walleij