[PATCH 2/5] drm: port the drm backend to the new init api
Giulio Camuffo
giuliocamuffo at gmail.com
Thu Apr 14 16:09:34 UTC 2016
2016-04-13 14:30 GMT+03:00 Pekka Paalanen <ppaalanen at gmail.com>:
> On Tue, 12 Apr 2016 21:34:28 -0700
> Bryce Harrington <bryce at osg.samsung.com> wrote:
>
>> On Wed, Apr 06, 2016 at 11:37:57AM +0300, Pekka Paalanen wrote:
>> > On Wed, 9 Mar 2016 16:49:29 -0800
>> > Bryce Harrington <bryce at osg.samsung.com> wrote:
>> >
>> > > From: Giulio Camuffo <giuliocamuffo at gmail.com>
>> > >
>> > > Signed-off-by: Bryce Harrington <bryce at osg.samsung.com>
>> > > Reviewed-by: Quentin Glidic <sardemff7+git at sardemff7.net>
>> > > Acked-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>> > > ---
>> > > v4: Update to current trunk
>> > > - Add missing param doc for mode in drm_output_choose_initial_mode
>> > > - Rebase to account for code changes by 91880f1e to make vt
>> > > switching configurable.
>> > >
>> > > Makefile.am | 3 +
>> > > src/compositor-drm.c | 196 ++++++++++++++++++---------------------------------
>> > > src/compositor.h | 2 -
>> > > src/main.c | 94 +++++++++++++++++++++++-
>> > > 4 files changed, 165 insertions(+), 130 deletions(-)
>> >
>> > Hi Giulio and Bryce,
>> >
>> > I'm sorry it has taken so long for me to come back to this.
>
>> > > +static int
>> > > +load_drm_backend(struct weston_compositor *c, const char *backend,
>> > > + int *argc, char **argv, struct weston_config *wc)
>> > > +{
>> > > + struct drm_config *config;
>> > > + struct weston_config_section *section;
>> > > + int ret = 0;
>> > > +
>> > > + config = zalloc(sizeof *config);
>> > > + if (!config)
>> > > + return -1;
>> >
>> > This function will be affected by the struct versioning too.
>>
>> The subsequent patch adds the versioning, although later in the routine
>> than here.
>>
>> > > + const struct weston_option options[] = {
>> > > + { WESTON_OPTION_INTEGER, "connector", 0, &config->base.connector },
>> > > + { WESTON_OPTION_STRING, "seat", 0, &config->base.seat_id },
>> > > + { WESTON_OPTION_INTEGER, "tty", 0, &config->base.tty },
>> > > + { WESTON_OPTION_BOOLEAN, "current-mode", 0,
>> > > + &config->use_current_mode },
>> > > + { WESTON_OPTION_BOOLEAN, "use-pixman", 0, &config->base.use_pixman },
>> > > + };
>> >
>> > Mixed declarations and code.
>>
>> Hmm, I'm not sure best how to address this. Options is being
>> initialized with pointers that are created by the zalloc, so I don't
>> think I can just separate the declaration from the initialization. Does
>> options need to be changed to be dynamically allocated as well?
>
> Hi,
>
> I suppose the simplest solution is to make another function, define
> 'options[]' in it, and get 'config' as an argument. Then it can call
> the parser and return. Something like ...fill_from_command_line(struct
> drm_config *config, argc, argv...).
>
> It's fine to keep your changes as separate patches as long as every
> patch is bisectable.
>
> I'm going through the new series right now, and noticed these emails
> from you just now.
I think this is one of the cases where strict style compliance goes in
the way of better code. Adding a function just adds an indirect level
but gives nothing in return, because it would really be just a wapper
around the options[] variable. I don't see it much different to a "int
value_1() { return 1; }".
But more importantly imho, it requires another revision.
Cheers,
Giulio
>
>
> Thanks,
> pq
More information about the wayland-devel
mailing list