Re: [PATCH 1/2] drm/mipi-dsi: add more multi functions for better error handling

From: Doug Anderson
Date: Tue Jul 09 2024 - 16:56:09 EST


Hi,

On Tue, Jul 9, 2024 at 4:18 AM Tejas Vipin <tejasvipin76@xxxxxxxxx> wrote:
>
> On 7/9/24 5:50 AM, Doug Anderson wrote:
> > Hi,
> >
> > On Fri, Jun 28, 2024 at 11:25 AM Tejas Vipin <tejasvipin76@xxxxxxxxx> wrote:
> >>
> >> +/**
> >> + * mipi_dsi_dcs_set_page_address_multi() - define the column extent of the
> >> + * frame memory accessed by the host processor
> >> + * @ctx: Context for multiple DSI transactions
> >> + * @start: first column of frame memory
> >> + * @end: last column of frame memory
> >
> > nit: "start" and "end" comments should say "first page" and "last
> > page", not "first column" and "last column". The previous function was
> > the one about columns.
> >
> >> + *
> >> + * Like mipi_dsi_dcs_set_page_address() but deals with errors in a way that
> >> + * makes it convenient to make several calls in a row.
> >> + */
> >> +void mipi_dsi_dcs_set_page_address_multi(struct mipi_dsi_multi_context *ctx,
> >> + u16 start, u16 end)
> >
> > nit: indentation of the above line isn't _quite_ right.
> >
> >
> > Other than the two nits, this looks fine to me, but I'd prefer if
> > someone else provides an "Ack" in addition to me that they're OK
> > adding these extra "multi" functions. Both Dmitry and Linus W were
> > involved in the original "multi" functions, so maybe they'd be willing
> > to offer their opinions?
>
> I think a better way to go forward with multi style functions is to
> use macros. All the multi style functions are basically exactly the
> same with the only difference being the function called internally
> and the dev_err. This can be represented in the form of a macro, and
> would save on a ton of otherwise redundant code, while also allowing
> us to "convert" any function to multi style as and when we please.
>
> We would ideally have 2 macros, one for the main functions where we
> desire to modify accum_err on an error arising, and another macro that
> just checks accum_err to see if the function should be a no op.
>
> If you guys think this is a good idea, I'll work on the macros and
> do the multi conversions in this new way.

I had a similar thought but I wasn't sure how easy it would be. If you
want to prototype it out and send out patches if they look good then
that'd be nice. We'd want to make sure that we actually generate
functions for the "multi" variants since we don't want all that inline
code on every caller, but generating those functions with a macro does
seem like it would work. I guess you'd also need to include some sort
of string for use in the error messages.

-Doug