lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190610080859.GJ4797@dell>
Date:   Mon, 10 Jun 2019 09:08:59 +0100
From:   Lee Jones <lee.jones@...aro.org>
To:     Robert Hancock <hancock@...systems.ca>
Cc:     linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] mfd: core: Support multiple OF child devices of the
 same type

On Thu, 06 Jun 2019, Robert Hancock wrote:

> On 2019-06-05 11:27 p.m., Lee Jones wrote:
> >>>> Without having the .of_full_name support, both MFD cells ended up
> >>>> wrongly matching against the i2c@...00 device tree node since we just
> >>>> picked the first one where of_compatible matched.
> >>>
> >>> What is contained in each of their resources?
> >>
> >> These are the resource entries for those two devices:
> >>
> >> static const struct resource dbe_i2c1_resources[] = {
> >> {
> >> 	.start		= 0xc0000,
> >> 	.end		= 0xcffff,
> >> 	.name		= "xi2c1_regs",
> >> 	.flags		= IORESOURCE_MEM,
> >> 	.desc		= IORES_DESC_NONE
> >> },
> >> };
> >>
> >> static const struct resource dbe_i2c2_resources[] = {
> >> {
> >> 	.start		= 0xd0000,
> >> 	.end		= 0xdffff,
> >> 	.name		= "xi2c2_regs",
> >> 	.flags		= IORESOURCE_MEM,
> >> 	.desc		= IORES_DESC_NONE
> >> },
> >> };
> > 
> > This is your problem.  You are providing the memory resources through
> > *both* DT and MFD.  I don't believe I've seen your MFD driver, but it
> > looks like it's probably not required at all.  Just allow DT to probe
> > each of your child devices.  You can obtain the IO memory from there
> > directly using the usual platform_get_resource() calls.
> 
> As far as I can tell, the DT child devices underneath a PCIe device
> don't get probed and drivers loaded automatically - possibly for valid
> reasons. The MFD driver appears to be required in order to actually get
> drivers attached to those DT nodes.

You need to call of_platform_populate().

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ