Hi, On Mon, Jul 21, 2025 at 5:43 PM Brigham Campbell <m...@brighamcampbell.com> wrote: > > 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.
Don't worry too much about it. While it's good to make sure you test your patches, everyone makes mistakes! :-) > > 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. Looks fine. It probably should have been a pointer in the novatek driver to begin with, but when it was a macro it didn't really matter. -Doug