lkml.org 
[lkml]   [2016]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH V3 16/17] irqchip/gic: Prepare for adding platform driver
    On Fri, 6 May 2016 15:09:51 +0100
    Jon Hunter <jonathanh@nvidia.com> wrote:

    Hi Jon,

    [...]

    > > +int gic_of_setup(struct device_node *node, struct device *dev,
    > > + struct gic_chip_data **gicp)
    > > +{
    > > + struct gic_chip_data *gic;
    > >
    > > - *cpu_base = of_iomap(node, 1);
    > > - if (WARN(!*cpu_base, "unable to map gic cpu registers\n")) {
    > > - iounmap(*dist_base);
    > > - return -ENOMEM;
    > > + if (!node || !gicp)
    > > + return -EINVAL;
    > > +
    > > + if (dev) {
    > > + *gicp = devm_kzalloc(dev, sizeof(*gic), GFP_KERNEL);
    > > + if (!*gicp)
    > > + return -ENOMEM;
    > > }
    > >
    > > - if (of_property_read_u32(node, "cpu-offset", percpu_offset))
    > > - *percpu_offset = 0;
    > > + gic = *gicp;
    > > +
    > > + gic->raw_dist_base = of_iomap(node, 0);
    > > + if (WARN(!gic->raw_dist_base, "unable to map gic dist registers\n"))
    > > + goto err;
    > > +
    > > + gic->raw_cpu_base = of_iomap(node, 1);
    > > + if (WARN(!gic->raw_cpu_base, "unable to map gic cpu registers\n"))
    > > + goto err;
    > > +
    > > + if (of_property_read_u32(node, "cpu-offset", &gic->percpu_offset))
    > > + gic->percpu_offset = 0;
    > >
    > > + gic->chip.parent_device = dev;
    >
    > We can't initialise the device here as it gets overwritten in the
    > gic_init_bases. So I have had to re-organise things a bit. Good news is
    > that I have eliminated the call from the platform driver to
    > gic_init_bases so we only have a single call to initialise the GIC.

    Ah, good. That sounds a lot better. Looking forward to v4.

    Thanks,

    M.
    --
    Jazz is not dead. It just smells funny.

    \
     
     \ /
      Last update: 2016-05-06 17:01    [W:3.234 / U:0.892 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site