[RFC PATCH v3] drivers: bus: add ARM CCI support
Lorenzo Pieralisi
lorenzo.pieralisi at arm.com
Tue May 21 05:21:19 EDT 2013
On Mon, May 20, 2013 at 01:11:21PM +0100, Jon Medhurst (Tixy) wrote:
> On Thu, 2013-05-09 at 11:34 +0100, Lorenzo Pieralisi wrote:
> [...]
> > +static int __init cci_probe(void)
> > +{
> > + struct cci_nb_ports const *cci_config;
> > + int ret, i, nb_ace = 0, nb_ace_lite = 0;
> > + struct device_node *np, *cp;
> > + const char *match_str;
> > + bool is_ace;
> > +
> > + np = of_find_matching_node(NULL, arm_cci_matches);
> > + if (!np)
> > + return -ENODEV;
> > +
> > + cci_config = of_match_node(arm_cci_matches, np)->data;
> > + if (!cci_config)
> > + return -ENODEV;
> > +
> > + nb_cci_ports = cci_config->nb_ace + cci_config->nb_ace_lite;
> > +
> > + ports = kcalloc(sizeof(*ports), nb_cci_ports, GFP_KERNEL);
> > + if (!ports)
> > + return -ENOMEM;
> > +
> > + cci_ctrl_base = of_iomap(np, 0);
> > +
> > + if (!cci_ctrl_base) {
> > + WARN(1, "unable to ioremap CCI ctrl\n");
> > + ret = -ENXIO;
> > + goto memalloc_err;
> > + }
> > +
> > + for_each_child_of_node(np, cp) {
> > + i = nb_ace + nb_ace_lite;
> > +
> > + if (i >= nb_cci_ports)
> > + break;
>
> I know this is a bit late, but...
>
> Would it not be best to check here that the node type is in fact
> "slave-if", that way if we add support in later versions for other node
> types (e.g. for the PMU) then we don't cause backward compatibility
> issues. I'm thinking here of the same concerns that Rob raised with
> "ARM: kernel: fix arm_dt_init_cpu_maps() to skip non-cpu nodes"
The node name, not type, but point is taken. I prefer to add a
compatible property to slave-if nodes (eg "arm,cci-400-control-if"),
I do not think that checking the node name is the standard way of doing
things in DT world.
Thoughts ?
Thanks,
Lorenzo
> > + if (of_property_read_string(cp, "interface-type",
> > + &match_str)) {
> > + WARN(1, "node %s missing interface-type property\n",
> > + cp->full_name);
> > + continue;
> > + }
> > +
> [..]
>
> --
> Tixy
>
>
More information about the linux-arm-kernel
mailing list