Re: [PATCH 3/3] nouveau/gsp: add some basic registry entries.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On Tue, 28 Nov 2023 at 06:48, Timur Tabi <timur@xxxxxxxxxx> wrote:
>
> On Tue, Oct 31, 2023 at 12:20 AM Dave Airlie <airlied@xxxxxxxxx> wrote:
> >         rpc->size = sizeof(*rpc);
> > -       rpc->numEntries = 1;
> > -       rpc->entries[0].nameOffset = offsetof(typeof(*rpc), entries[1]);
> > -       rpc->entries[0].type = 1;
> > -       rpc->entries[0].data = 0;
> > -       rpc->entries[0].length = 4;
> > -
> > -       strings = (char *)&rpc->entries[1];
> > -       strings[0] = '\0';
> > +       rpc->numEntries = NV_GSP_REG_NUM_ENTRIES;
> > +
> > +       str_offset = offsetof(typeof(*rpc), entries[NV_GSP_REG_NUM_ENTRIES]);
> > +       strings = (char *)&rpc->entries[NV_GSP_REG_NUM_ENTRIES];
> > +       for (i = 0; i < NV_GSP_REG_NUM_ENTRIES; i++) {
> > +               int name_len = strlen(r535_registry_entries[i].name) + 1;
> > +               rpc->entries[i].nameOffset = str_offset;
> > +               rpc->entries[i].type = 1;
> > +               rpc->entries[i].data = r535_registry_entries[i].value;
> > +               rpc->entries[i].length = 4;
> > +               memcpy(strings, r535_registry_entries[i].name, name_len);
> > +               strings += name_len;
> > +               str_offset += name_len;
> > +       }
>
> I'm working on a patch that replaces this code with a
> dynamically-generated registry so that we can set registry keys via
> the driver's command-line (like the Nvidia driver).

I'm not sure we'd want that, except maybe as a debugging aid, I'd
really like to have nouveau just pick the correct set of registry
entries, but I suppose there might be some cases where setting the
from the command line would be good for testing.

> a bug here.  rpc->size must be the total size of the RPC, including
> all the PACKED_REGISTRY_ENTRY structs and the strings that follow
> them.  You can see this by looking at RmPackageRegistry() and
> regCountEntriesAndSize() in OpenRM.

Oh interesting, I'll take a look today.

Dave.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux