On Mon Jul 21, 2025 at 10:30 AM MDT, Doug Anderson wrote: >> +void mpi_dsi_dual_generic_write_multi(struct mipi_dsi_device *dsi1, > > BUG: above should be "mipi", not "mpi" > >> + struct mipi_dsi_device *dsi2, >> + struct mipi_dsi_multi_context *ctx, >> + const void *payload, size_t size) >> +{ >> + ctx->dsi = dsi1; >> + mipi_dsi_generic_write_multi(ctx, data, len); > > BUG: "data" and "len" are not valid local variables... > >> + * mipi_dsi_dual - send the same MIPI DSI command to two interfaces > > It could be worth also pointing people to > mipi_dsi_dual_generic_write_seq_multi() and > mipi_dsi_dual_dcs_write_seq_multi() below? > >> + * @_func: MIPI DSI function or macro to pass context and arguments into > > nit: remove "or macro". > >> + struct mipi_dsi_multi_context *_ctxcpy = (_ctx); \ >> + (_ctxcpy)->dsi = (_dsi1); \ > > nit: now that "_ctxcpy" is a local variable you no longer need the > extra parenthesis around it. > >> + mipi_dsi_dual_generic_write_multi(_dsi1, _dsi2, _ctx, d, >> \ >> + ARRAY_SIZE(d)); >> \ > > nit: the indentation of ARRAY_SIZE() is slightly off. > >> +#define mipi_dsi_dual_dcs_write_seq_multi(_dsi1, _dsi2, _ctx, _cmd, _seq) >> \ > > BUG: doesn't "_seq" need to be "_seq..." ? > > BUG: You need to remove the definition of this macro from > `panel-novatek-nt36523.c` or else it won't compile anymore since the > name of your macro is the exact same as theirs and they include this > header file. It would be OK w/ me if you squashed that into the same > patch since otherwise rejiggering things would just be churn...
Sorry to have sent out such a poor quality patch, Doug! I always compile changed files and test my changes when I can, but I think I must have compiled just the lpm102a188a panel C source file itself by mistake when I sent out this series revision. From now on, I'll simply enable the relevant kernel config options and rebuild the entire kernel. I'll address each of these items in v6. > I guess we also chose different argument orders than they did (that's > probably my fault, sorry!). They had the "ctx" still first and this > patch consistently has "dsi1" and "dsi2" first. I don't think it > really matters, but we should be consistent which means either > adjusting your patch or theirs. It's probably worth confirming that > the novatek driver at least compiles before you submit v6. No, this was my fault. You had suggested the correct order. When I implemented the change, I preferred to put `ctx` after `dsi1` and `dsi2` because that's what I had done when I implemented the mipi_dsi_dual macro. I'll swap up the order, remove the function definition from the novatek driver, and compile both lpm102a188a and the novatek driver before sending out v6. By the way, we can discuss this further when I've sent out v6, but the novatek driver appears to pass a mipi_dsi_context struct into the write_seq_multi macro directly instead of a mipi_dsi_context struct pointer. We opted to use a pointer in this patch series so that it can be passed to a function in order to reduce the compiled size of drivers. For now, I'll plan to solve this by changing calls to write_seq_multi in the novatek driver to pass a pointer. I hope that the churn that this will cause in the novatek driver isn't unacceptable. Thanks for your patience, Brigham